{
if (is_in_dungeon(creature_ptr) && (d_info[creature_ptr->dungeon_idx].flags.has(DF::NO_MAGIC))) {
msg_print(_("ダンジョンが魔法を吸収した!", "The dungeon absorbs all attempted magic!"));
- msg_print(NULL);
+ msg_print(nullptr);
return true;
}
{
if (creature_ptr->current_floor_ptr->inside_arena) {
msg_print(_("アリーナが魔法を吸収した!", "The arena absorbs all attempted magic!"));
- msg_print(NULL);
+ msg_print(nullptr);
return true;
}
if (ae_ptr->o_ptr->is_random_artifact()) {
const activation_type *const act_ptr = find_activation_info(ae_ptr->o_ptr);
- if (act_ptr != NULL)
+ if (act_ptr != nullptr)
ae_ptr->lev = act_ptr->level;
return;
{
const int index = activation_index(o_ptr);
const activation_type *p;
- for (p = activation_info; p->flag != NULL; ++p)
+ for (p = activation_info; p->flag != nullptr; ++p)
if (p->index == index)
return p;
- return NULL;
+ return nullptr;
}
return;
autopick_type an_entry, *entry = &an_entry;
- concptr str1 = NULL, str2 = NULL;
+ concptr str1 = nullptr, str2 = nullptr;
for (int j = 0; j < DESCRIPT_HGT; j++) {
term_erase(0, tb->hgt + 2 + j, tb->wid);
}
break;
}
case EC_HELP: {
- (void)show_file(player_ptr, true, _("jeditor.txt", "editor.txt"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("jeditor.txt", "editor.txt"), nullptr, 0, 0);
tb->dirty_flags |= DIRTY_SCREEN;
break;
}
if (tb->old_com_id != com_id) {
kill_yank_chain(tb);
- tb->yank = NULL;
+ tb->yank = nullptr;
}
if (tb->cx < len) {
for (i = tb->cy; tb->lines_list[i + 1]; i++)
tb->lines_list[i] = tb->lines_list[i + 1];
- tb->lines_list[i] = NULL;
+ tb->lines_list[i] = nullptr;
tb->cy--;
tb->dirty_flags |= DIRTY_ALL;
tb->dirty_flags |= DIRTY_EXPRESSION;
size_t len = strlen(str);
auto *chain = static_cast<chain_str_type *>(std::malloc(sizeof(chain_str_type) + len * sizeof(char)));
strcpy(chain->s, str);
- chain->next = NULL;
+ chain->next = nullptr;
return chain;
}
void kill_yank_chain(text_body_type *tb)
{
chain_str_type *chain = tb->yank;
- tb->yank = NULL;
+ tb->yank = nullptr;
tb->yank_eol = true;
while (chain) {
break;
}
- concptr insc = NULL;
+ concptr insc = nullptr;
char buf[MAX_LINELEN];
int i;
for (i = 0; *str; i++) {
concptr prev_ptr, ptr;
ptr = prev_ptr = buf;
- concptr old_ptr = NULL;
+ concptr old_ptr = nullptr;
while (old_ptr != ptr) {
old_ptr = ptr;
if (MATCH_KEY(KEY_ALL))
concptr q = _("どのアイテムを登録しますか? ", "Enter which item? ");
concptr s = _("アイテムを持っていない。", "You have nothing to enter.");
object_type *o_ptr;
- o_ptr = choose_object(player_ptr, NULL, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
+ o_ptr = choose_object(player_ptr, nullptr, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
if (!o_ptr)
return false;
concptr q = _("どのアイテムを検索しますか? ", "Enter which item? ");
concptr s = _("アイテムを持っていない。", "You have nothing to enter.");
object_type *o_ptr;
- o_ptr = choose_object(player_ptr, NULL, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
+ o_ptr = choose_object(player_ptr, nullptr, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
if (!o_ptr)
return false;
return (back ? -1 : 1);
string_free(*search_strp);
*search_strp = string_make(buf);
- *o_handle = NULL;
+ *o_handle = nullptr;
return (back ? -1 : 1);
case KTRL('i'):
c = (char)skey;
if (color != TERM_WHITE) {
if (color == TERM_L_GREEN) {
- *o_handle = NULL;
+ *o_handle = nullptr;
string_free(*search_strp);
- *search_strp = NULL;
+ *search_strp = nullptr;
}
buf[0] = '\0';
}
}
- if (*o_handle == NULL || color == TERM_L_GREEN)
+ if (*o_handle == nullptr || color == TERM_L_GREEN)
continue;
- *o_handle = NULL;
+ *o_handle = nullptr;
buf[0] = '\0';
string_free(*search_strp);
- *search_strp = NULL;
+ *search_strp = nullptr;
}
}
int i;
for (i = y; tb->lines_list[i + 1]; i++)
tb->lines_list[i] = tb->lines_list[i + 1];
- tb->lines_list[i] = NULL;
+ tb->lines_list[i] = nullptr;
tb->dirty_flags |= DIRTY_EXPRESSION;
{ MN_DELETE_CHAR, -1, 0x7F, EC_DELETE_CHAR },
- { NULL, -1, -1, 0 } };
\ No newline at end of file
+ { nullptr, -1, -1, 0 } };
\ No newline at end of file
return format("%s-%s.prf", namebase, player_ptr->base_name);
default:
- return NULL;
+ return nullptr;
}
}
*/
static concptr *read_text_lines(concptr filename)
{
- concptr *lines_list = NULL;
+ concptr *lines_list = nullptr;
FILE *fff;
int lines = 0;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, filename);
fff = angband_fopen(buf, "r");
if (!fff)
- return NULL;
+ return nullptr;
C_MAKE(lines_list, MAX_LINES, concptr);
while (angband_fgets(fff, buf, sizeof(buf)) == 0) {
{
const concptr messages[] = { _("あなたは「自動拾いエディタ」を初めて起動しました。", "You have activated the Auto-Picker Editor for the first time."),
_("自動拾いのユーザー設定ファイルがまだ書かれていないので、", "Since user pref file for autopick is not yet created,"),
- _("基本的な自動拾い設定ファイルをlib/pref/picktype.prfからコピーします。", "the default setting is loaded from lib/pref/pickpref.prf ."), NULL };
+ _("基本的な自動拾い設定ファイルをlib/pref/picktype.prfからコピーします。", "the default setting is loaded from lib/pref/pickpref.prf ."), nullptr };
concptr filename = pickpref_filename(player_ptr, PT_DEFAULT);
for (int i = 0; messages[i]; i++) {
msg_print(messages[i]);
}
- msg_print(NULL);
+ msg_print(nullptr);
char buf[1024];
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, filename);
FILE *user_fp;
if (!tmp_fff) {
fclose(pref_fff);
msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), tmp_file);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
pref_fff = angband_fopen(pref_file, "a");
if (!pref_fff) {
msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), pref_file);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
*/
int max_autopick = 0; /*!< 現在登録している自動拾い/破壊設定の数 */
int max_max_autopick = 0; /*!< 自動拾い/破壊設定の限界数 */
-autopick_type *autopick_list = NULL; /*!< 自動拾い/破壊設定構造体のポインタ配列 */
+autopick_type *autopick_list = nullptr; /*!< 自動拾い/破壊設定構造体のポインタ配列 */
/*!
* @brief Automatically destroy an item if it is to be destroyed
{
string_free(entry->name);
string_free(entry->insc);
- entry->name = NULL;
- entry->insc = NULL;
+ entry->name = nullptr;
+ entry->insc = nullptr;
}
/*!
*/
void birth_quit(void)
{
- quit(NULL);
+ quit(nullptr);
}
/*!
void show_help(player_type* creature_ptr, concptr helpfile)
{
screen_save();
- (void)show_file(creature_ptr, true, helpfile, NULL, 0, 0);
+ (void)show_file(creature_ptr, true, helpfile, nullptr, 0, 0);
screen_load();
}
message_add(" ");
exe_write_diary(creature_ptr, DIARY_GAMESTART, 1, _("-------- 新規ゲーム開始 --------", "------- Started New Game -------"));
- exe_write_diary(creature_ptr, DIARY_DIALY, 0, NULL);
+ exe_write_diary(creature_ptr, DIARY_DIALY, 0, nullptr);
char buf[80];
sprintf(buf, _("%s性別に%sを選択した。", "%schose %s gender."), indent, sex_info[creature_ptr->psex].title);
exe_write_diary(creature_ptr, DIARY_DESCRIPTION, 1, buf);
if (creature_ptr->last_message)
string_free(creature_ptr->last_message);
- if (creature_ptr->inventory_list != NULL)
+ if (creature_ptr->inventory_list != nullptr)
C_KILL(creature_ptr->inventory_list, INVEN_TOTAL, object_type);
(void)WIPE(creature_ptr, player_type);
break;
case player_race_type::BALROG:
/* Demon can drain vitality from humanoid corpse */
- get_mon_num_prep(creature_ptr, monster_hook_human, NULL);
+ get_mon_num_prep(creature_ptr, monster_hook_human, nullptr);
for (int i = rand_range(3, 4); i > 0; i--) {
q_ptr->prep(lookup_kind(TV_CORPSE, SV_CORPSE));
q_ptr->pval = get_mon_num(creature_ptr, 0, 2, 0);
put_str(_("クイック・スタートを使いますか?[y/N]", "Use quick start? [y/N]"), 14, 10);
c = inkey();
if (c == 'Q')
- quit(NULL);
+ quit(nullptr);
else if (c == 'S')
return false;
else if (c == '?')
case MUTA::TENTACLES:
default: {
MonsterDamageProcessor mdp(attacker_ptr, m_idx, k, fear);
- *mdeath = mdp.mon_take_hit(NULL);
+ *mdeath = mdp.mon_take_hit(nullptr);
break;
}
}
flush();
/* Warning */
msg_print(_("MPが足りません。", "You do not have enough mana to use this power."));
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
if (creature_ptr->last_message)
string_free(creature_ptr->last_message);
- creature_ptr->last_message = NULL;
+ creature_ptr->last_message = nullptr;
creature_ptr->playing = false;
creature_ptr->is_dead = true;
creature_ptr->leaving = true;
monster_desc(creature_ptr, m_name, m_ptr, 0);
msg_format(_("%sに名前をつける。", "Name %s."), m_name);
- msg_print(NULL);
+ msg_print(nullptr);
/* Start with nothing */
strcpy(out_val, "");
msg_format("You can learn %d new %s%s.", caster_ptr->new_spells, p, (caster_ptr->new_spells == 1 ? "" : "s"));
#endif
- msg_print(NULL);
+ msg_print(nullptr);
/* Restrict choices to "useful" books */
auto item_tester = get_learnable_spellbook_tester(caster_ptr);
static void town_history(player_type *player_ptr)
{
screen_save();
- (void)show_file(player_ptr, true, _("jbldg.txt", "bldg.txt"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("jbldg.txt", "bldg.txt"), nullptr, 0, 0);
screen_load();
}
}
msg_print(_("治すべき突然変異が無い。", "You have no mutations."));
- msg_print(NULL);
+ msg_print(nullptr);
break;
}
if (!customer_ptr->poisoned && !customer_ptr->cut) return true;
msg_print(_("あなたに必要なのは部屋ではなく、治療者です。", "You need a healer, not a room."));
- msg_print(NULL);
+ msg_print(nullptr);
msg_print(_("すみません、でもうちで誰かに死なれちゃ困りますんで。", "Sorry, but I don't want anyone dying in here."));
return false;
}
while (true)
{
- sanity_blast(customer_ptr, NULL, false);
+ sanity_blast(customer_ptr, nullptr, false);
if (!one_in_(3)) break;
}
if ((prev_hour >= 18) && (prev_hour <= 23)) {
determine_daily_bounty(customer_ptr, false); /* Update daily bounty */
- exe_write_diary(customer_ptr, DIARY_DIALY, 0, NULL);
+ exe_write_diary(customer_ptr, DIARY_DIALY, 0, nullptr);
}
customer_ptr->chp = customer_ptr->mhp;
tb->old_wid = tb->old_hgt = -1;
tb->old_com_id = 0;
- tb->yank = NULL;
- tb->search_o_ptr = NULL;
- tb->search_str = NULL;
- tb->last_destroyed = NULL;
+ tb->yank = nullptr;
+ tb->search_o_ptr = nullptr;
+ tb->search_str = nullptr;
+ tb->last_destroyed = nullptr;
tb->dirty_flags = DIRTY_ALL | DIRTY_MODE | DIRTY_EXPRESSION;
tb->dirty_line = -1;
tb->filename_mode = PT_DEFAULT;
kill_yank_chain(tb);
process_autopick_file(player_ptr, buf);
- current_world_ptr->start_time = (uint32_t)time(NULL);
+ current_world_ptr->start_time = (uint32_t)time(nullptr);
cx_save = tb->cx;
cy_save = tb->cy;
}
{
GAME_TEXT file_name[MAX_NLEN];
char buf[256];
- FILE *fff = NULL;
+ FILE *fff = nullptr;
if (!get_check(_("本当に記録を消去しますか?", "Do you really want to delete all your records? ")))
return;
msg_format(_("%s の消去に失敗しました。", "failed to delete %s."), buf);
}
- msg_print(NULL);
+ msg_print(nullptr);
}
/*!
}
case '?': {
- (void)show_file(player_ptr, true, _("joption.txt#Autosave", "option.txt#Autosave"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt#Autosave", "option.txt#Autosave"), nullptr, 0, 0);
term_clear();
break;
}
set_window_flag(x, y);
break;
case '?':
- (void)show_file(player_ptr, true, _("joption.txt#Window", "option.txt#Window"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt#Window", "option.txt#Window"), nullptr, 0, 0);
term_clear();
break;
default:
}
case '?': {
strnfmt(buf, sizeof(buf), _("joption.txt#%s", "option.txt#%s"), cheat_info[k].o_text);
- (void)show_file(player_ptr, true, buf, NULL, 0, 0);
+ (void)show_file(player_ptr, true, buf, nullptr, 0, 0);
term_clear();
break;
}
if (k == ESCAPE)
break;
else if (k == '?') {
- (void)show_file(player_ptr, true, _("joption.txt#BaseDelay", "option.txt#BaseDelay"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt#BaseDelay", "option.txt#BaseDelay"), nullptr, 0, 0);
term_clear();
} else if (isdigit(k))
delay_factor = D2I(k);
if (k == ESCAPE)
break;
else if (k == '?') {
- (void)show_file(player_ptr, true, _("joption.txt#Hitpoint", "option.txt#Hitpoint"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt#Hitpoint", "option.txt#Hitpoint"), nullptr, 0, 0);
term_clear();
} else if (isdigit(k))
hitpoint_warn = D2I(k);
if (k == ESCAPE)
break;
else if (k == '?') {
- (void)show_file(player_ptr, true, _("joption.txt#Manapoint", "option.txt#Manapoint"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt#Manapoint", "option.txt#Manapoint"), nullptr, 0, 0);
term_clear();
} else if (isdigit(k))
mana_warn = D2I(k);
break;
}
case '?':
- (void)show_file(player_ptr, true, _("joption.txt", "option.txt"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("joption.txt", "option.txt"), nullptr, 0, 0);
term_clear();
break;
default: {
}
case '?': {
strnfmt(buf, sizeof(buf), _("joption.txt#%s", "option.txt#%s"), option_info[opt[k]].o_text);
- (void)show_file(player_ptr, true, buf, NULL, 0, 0);
+ (void)show_file(player_ptr, true, buf, nullptr, 0, 0);
term_clear();
break;
}
void do_cmd_help(player_type *creature_ptr)
{
screen_save();
- (void)show_file(creature_ptr, true, _("jhelp.hlp", "help.hlp"), NULL, 0, 0);
+ (void)show_file(creature_ptr, true, _("jhelp.hlp", "help.hlp"), nullptr, 0, 0);
screen_load();
}
prt(_("押すキー: ", "Keypress: "), 18, 0);
do_cmd_macro_aux_keymap(buf);
string_free(keymap_act[mode][(byte)(buf[0])]);
- keymap_act[mode][(byte)(buf[0])] = NULL;
+ keymap_act[mode][(byte)(buf[0])] = nullptr;
msg_print(_("キー配置を削除しました。", "Removed a keymap."));
} else if (key == '0') {
prt(_("コマンド: マクロ行動の入力", "Command: Enter a new action"), 16, 0);
char c = ' ';
for (TERM_LEN x = 0; x < wid - 1; x++)
{
- concptr cc = NULL;
+ concptr cc = nullptr;
(void)(term_what(x, y, &a, &c));
switch (c)
{
if (message == 0) return false;
msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), filename);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
if (message)
{
msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
- msg_print(NULL);
+ msg_print(nullptr);
}
if (message)
return;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, tmp);
- msg_print(NULL);
+ msg_print(nullptr);
do_cmd_save_screen_html_aux(buf, 1);
}
if (fff) return true;
msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
fprintf(fff, "\n");
angband_fclose(fff);
msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return true;
}
if (!fff)
{
msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
else
disturb(creature_ptr, true, true);
- msg_print(NULL);
+ msg_print(nullptr);
handle_stuff(creature_ptr);
prt(_("ゲームをセーブしています...", "Saving game..."), 0, 0);
term_fresh();
/*
* Add a macro definition (or redefinition).
*
- * We should use "act == NULL" to "remove" a macro, but this might make it
+ * We should use "act == nullptr" to "remove" a macro, but this might make it
* impossible to save the "removal" of a macro definition.
*
* We should consider refusing to allow macros which contain existing macros,
describe_flavor(creature_ptr, destroy_ptr->o_name, destroy_ptr->o_ptr, OD_OMIT_PREFIX);
sprintf(destroy_ptr->out_val, _("本当に%sを壊しますか? [y/n/Auto]", "Really destroy %s? [y/n/Auto]"), destroy_ptr->o_name);
- msg_print(NULL);
+ msg_print(nullptr);
message_add(destroy_ptr->out_val);
creature_ptr->window_flags |= PW_MESSAGE;
handle_stuff(creature_ptr);
concptr q = _("どのアイテムを壊しますか? ", "Destroy which item? ");
concptr s = _("壊せるアイテムを持っていない。", "You have nothing to destroy.");
destroy_ptr->o_ptr = choose_object(creature_ptr, &destroy_ptr->item, q, s, USE_INVEN | USE_FLOOR);
- if (destroy_ptr->o_ptr == NULL)
+ if (destroy_ptr->o_ptr == nullptr)
return false;
if (!check_destory_item(creature_ptr, destroy_ptr))
if (destroy_ptr->o_ptr->number <= 1)
return true;
- destroy_ptr->amt = get_quantity(NULL, destroy_ptr->o_ptr->number);
+ destroy_ptr->amt = get_quantity(nullptr, destroy_ptr->o_ptr->number);
return destroy_ptr->amt > 0;
}
}
if (o_ptr->number > 1) {
- amt = get_quantity(NULL, o_ptr->number);
+ amt = get_quantity(nullptr, o_ptr->number);
if (amt <= 0)
return;
}
describe_flavor(creature_ptr, o_name, o_ptr, OD_OMIT_INSCRIPTION);
msg_format(_("%sに銘を刻む。", "Inscribing %s."), o_name);
- msg_print(NULL);
+ msg_print(nullptr);
strcpy(out_val, "");
if (o_ptr->inscription)
strcpy(out_val, quark_str(o_ptr->inscription));
if (tval == TV_ROD) {
if (creature_ptr->magic_num1[ext + i] > k_info[lookup_kind(tval, i)].pval * (creature_ptr->magic_num2[ext + i] - 1) * EATER_ROD_CHARGE) {
msg_print(_("その魔法はまだ充填している最中だ。", "The magic is still charging."));
- msg_print(NULL);
+ msg_print(nullptr);
if (use_menu)
ask = true;
continue;
} else {
if (creature_ptr->magic_num1[ext + i] < EATER_CHARGE) {
msg_print(_("その魔法は使用回数が切れている。", "The magic has no charges left."));
- msg_print(NULL);
+ msg_print(nullptr);
if (use_menu)
ask = true;
continue;
{ ESSENCE_SH_COLD, "冷気オーラ", 7, -1, 50 }, { ESSENCE_RESISTANCE, "全耐性", 2, -1, 150 }, { ESSENCE_SUSTAIN, "装備保持", 10, -1, 10 },
{ ESSENCE_SLAY_GLOVE, "殺戮の小手", 1, TR_ES_ATTACK, 200 },
- { -1, NULL, 0, -1, 0 } };
+ { -1, nullptr, 0, -1, 0 } };
#else
static essence_type essence_info[] = { { TR_STR, "strength", 4, TR_STR, 20 }, { TR_INT, "intelligence", 4, TR_INT, 20 }, { TR_WIS, "wisdom", 4, TR_WIS, 20 },
{ TR_DEX, "dexterity", 4, TR_DEX, 20 }, { TR_CON, "constitution", 4, TR_CON, 20 }, { TR_CHR, "charisma", 4, TR_CHR, 20 },
{ ESSENCE_RESISTANCE, "resistance", 2, -1, 150 }, { ESSENCE_SUSTAIN, "elements proof", 10, -1, 10 },
{ ESSENCE_SLAY_GLOVE, "gauntlets of slaying", 1, TR_ES_ATTACK, 200 },
- { -1, NULL, 0, -1, 0 } };
+ { -1, nullptr, 0, -1, 0 } };
#endif
/*!
"", "", "反魔法", "", "", "警告", "", "", "", "浮遊", "永久光源", "可視透明", "テレパシー", "遅消化", "急速回復", "", "", "", "", "", "", "", "",
"テレポート", "", "", "攻撃", "防御",
- NULL };
+ nullptr };
#else
"", "anti magic", "", "", "warning", "", "", "", "levitation", "perm. light", "see invis.", "telepathy", "slow dige.", "regen.", "", "", "", "", "", "", "",
"", "teleport", "", "", "weapon enc.", "armor enc.",
- NULL };
+ nullptr };
#endif
static concptr const kaji_tips[5] = {
creature_ptr->magic_num1[i] += drain_value[i];
creature_ptr->magic_num1[i] = MIN(20000, creature_ptr->magic_num1[i]);
- msg_print(NULL);
+ msg_print(nullptr);
msg_format("%s...%d%s", essence_name[i], drain_value[i], _("。", ". "));
}
}
char shower_str[81];
char finder_str[81];
char back_str[81];
- concptr shower = NULL;
+ concptr shower = nullptr;
int wid, hgt;
term_get_size(&wid, &hgt);
int num_lines = hgt - 4;
if (!shower || !shower[0]) continue;
concptr str = msg;
- while ((str = angband_strstr(str, shower)) != NULL)
+ while ((str = angband_strstr(str, shower)) != nullptr)
{
int len = strlen(shower);
term_putstr(str - msg, num_lines + 1 - j, len, TERM_YELLOW, shower);
prt(_("強調: ", "Show: "), hgt - 1, 0);
strcpy(back_str, shower_str);
if (askfor(shower_str, 80))
- shower = shower_str[0] ? shower_str : NULL;
+ shower = shower_str[0] ? shower_str : nullptr;
else
strcpy(shower_str, back_str);
}
else if (!finder_str[0])
{
- shower = NULL;
+ shower = nullptr;
continue;
}
if (!get_string(format("Input new number(0-%d): ", max - 1), str, 4))
return false;
- IDX tmp = (IDX)strtol(str, NULL, 0);
+ IDX tmp = (IDX)strtol(str, nullptr, 0);
if (tmp >= 0 && tmp < max)
*num = tmp;
} else if (isupper(i))
screen_save();
while (true) {
term_clear();
- print_visuals_menu(NULL);
+ print_visuals_menu(nullptr);
int i = inkey();
if (i == ESCAPE)
break;
bool get_string(concptr prompt, char *buf, int len)
{
bool res;
- msg_print(NULL);
+ msg_print(nullptr);
prt(prompt, 0, 0);
res = askfor(buf, len);
prt("", 0, 0);
num_more = 0;
}
- msg_print(NULL);
+ msg_print(nullptr);
prt(buf, 0, 0);
if (!(mode & CHECK_NO_HISTORY) && player_ptr->playing) {
*/
bool get_com(concptr prompt, char *command, bool z_escape)
{
- msg_print(NULL);
+ msg_print(nullptr);
prt(prompt, 0, 0);
if (get_com_no_macros)
*command = (char)inkey_special(false);
prompt = tmp;
}
- msg_print(NULL);
+ msg_print(nullptr);
prt(prompt, 0, 0);
amt = 1;
sprintf(buf, "%d", amt);
{
bool do_send = true;
handle_stuff(player_ptr);
- msg_print(NULL);
+ msg_print(nullptr);
flush();
signals_ignore_tstp();
if (!player_ptr->wait_report_score)
(void)top_twenty(player_ptr);
} else if (highscore_fd >= 0) {
- display_scores(0, 10, -1, NULL);
+ display_scores(0, 10, -1, nullptr);
}
clear_floor(player_ptr);
player_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
update_creature(player_ptr);
player_ptr->is_dead = true;
- current_world_ptr->start_time = (uint32_t)time(NULL);
+ current_world_ptr->start_time = (uint32_t)time(nullptr);
signals_ignore_tstp();
current_world_ptr->character_icky_depth = 1;
path_build(buf, sizeof(buf), ANGBAND_DIR_APEX, "scores.raw");
current_world_ptr->timewalk_m_idx = 0;
player_ptr->now_damaged = false;
now_message = 0;
- current_world_ptr->start_time = time(NULL) - 1;
+ current_world_ptr->start_time = time(nullptr) - 1;
record_o_name[0] = '\0';
}
if (!player_ptr->is_dead)
wipe_monsters_list(player_ptr);
- msg_print(NULL);
+ msg_print(nullptr);
load_game = false;
decide_arena_death(player_ptr);
if (player_ptr->is_dead)
select_floor_music(player_ptr);
process_game_turn(player_ptr);
close_game(player_ptr);
- quit(NULL);
+ quit(nullptr);
}
if (one_in_(1000)) {
MONRACE_IDX r_idx;
bool success = false;
- get_mon_num_prep(creature_ptr, monster_is_fishing_target, NULL);
+ get_mon_num_prep(creature_ptr, monster_is_fishing_target, nullptr);
r_idx = get_mon_num(creature_ptr, 0,
is_in_dungeon(creature_ptr) ? creature_ptr->current_floor_ptr->dun_level
: wilderness[creature_ptr->wilderness_y][creature_ptr->wilderness_x].level,
0);
- msg_print(NULL);
+ msg_print(nullptr);
if (r_idx && one_in_(2)) {
POSITION y, x;
y = creature_ptr->y + ddy[creature_ptr->fishing_dir];
creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
msg_print(_("「時は動きだす…」", "You feel time flowing around you once more."));
- msg_print(NULL);
+ msg_print(nullptr);
creature_ptr->timewalk = false;
creature_ptr->energy_need = ENERGY_NEED();
/* Hack -- Display the top fifteen scores */
if (j < 10) {
- display_scores(0, 15, j, NULL);
+ display_scores(0, 15, j, nullptr);
return 0;
}
/* Display the scores surrounding the player */
- display_scores(0, 5, j, NULL);
- display_scores(j - 2, j + 7, j, NULL);
+ display_scores(0, 5, j, nullptr);
+ display_scores(j - 2, j + 7, j, nullptr);
return 0;
}
/* No score file */
if (highscore_fd < 0) {
msg_print(_("スコア・ファイルが使用できません。", "Score file unavailable."));
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
return 0;
}
- display_scores(0, 5, -1, NULL);
+ display_scores(0, 5, -1, nullptr);
display_scores(j - 2, j + 7, j, &the_score);
return 0;
}
if (highscore_fd < 0) {
msg_print(_("スコア・ファイルが使用できません。", "Score file unavailable."));
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
if (highscore_fd < 0) {
msg_print(_("スコア・ファイルが使用できません。", "Score file unavailable."));
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
for (int i = 0; i < MAX_RACES; i++) {
race_score(current_player_ptr, i);
msg_print(_("何かキーを押すとゲームに戻ります", "Hit any key to continue"));
- msg_print(NULL);
+ msg_print(nullptr);
for (int j = 5; j < 19; j++)
prt("", j, 0);
}
/* No score file */
if (highscore_fd < 0) {
msg_print(_("スコア・ファイルが使用できません。", "Score file unavailable."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
/* Wizard-mode pre-empts scoring */
if (current_world_ptr->noscore & 0x000F) {
msg_print(_("ウィザード・モードではスコアが記録されません。", "Score not registered for wizards."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
/* Cheaters are not scored */
if (current_world_ptr->noscore & 0xFF00) {
msg_print(_("詐欺をやった人はスコアが記録されません。", "Score not registered for cheaters."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
/* Interupted */
if (!current_world_ptr->total_winner && streq(current_player_ptr->died_from, _("強制終了", "Interrupting"))) {
msg_print(_("強制終了のためスコアが記録されません。", "Score not registered due to interruption."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
/* Quitter */
if (!current_world_ptr->total_winner && streq(current_player_ptr->died_from, _("途中終了", "Quitting"))) {
msg_print(_("途中終了のためスコアが記録されません。", "Score not registered due to quitting."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
return true;
str_tolower(lcstr);
ptr = angband_strstr(lcstr, shower);
- textcolor = (ptr == NULL) ? TERM_L_DARK : TERM_WHITE;
+ textcolor = (ptr == nullptr) ? TERM_L_DARK : TERM_WHITE;
}
int cx = 0;
strcpy(filename, name);
int n = strlen(filename);
- concptr tag = NULL;
+ concptr tag = nullptr;
for (int i = 0; i < n; i++) {
if (filename[i] == '#') {
filename[i] = '\0';
}
name = filename;
- FILE *fff = NULL;
+ FILE *fff = nullptr;
char path[1024];
if (what) {
strcpy(caption, what);
if (!fff) {
msg_format(_("'%s'をオープンできません。", "Cannot open '%s'."), name);
- msg_print(NULL);
+ msg_print(nullptr);
return true;
}
term_clear();
- concptr find = NULL;
- concptr shower = NULL;
+ concptr find = nullptr;
+ concptr shower = nullptr;
while (true) {
if (line >= size - rows)
line = size - rows;
continue;
}
- find = NULL;
+ find = nullptr;
show_file_aux_line(str, row_count + 2, shower);
row_count++;
}
if (find) {
bell();
line = back;
- find = NULL;
+ find = nullptr;
continue;
}
switch (skey) {
case '?':
if (strcmp(name, _("jhelpinfo.txt", "helpinfo.txt")) != 0)
- show_file(creature_ptr, true, _("jhelpinfo.txt", "helpinfo.txt"), NULL, 0, mode);
+ show_file(creature_ptr, true, _("jhelpinfo.txt", "helpinfo.txt"), nullptr, 0, mode);
break;
case '=':
prt(_("強調: ", "Show: "), hgt - 1, 0);
str_tolower(shower_str);
shower = shower_str;
} else
- shower = NULL;
+ shower = nullptr;
} else
strcpy(shower_str, back_str);
break;
str_tolower(finder_str);
shower = finder_str;
} else
- shower = NULL;
+ shower = nullptr;
} else
strcpy(finder_str, back_str);
break;
strcpy(tmp, _("jhelp.hlp", "help.hlp"));
if (askfor(tmp, 80)) {
- if (!show_file(creature_ptr, true, tmp, NULL, 0, mode))
+ if (!show_file(creature_ptr, true, tmp, nullptr, 0, mode))
skey = 'q';
}
if ((key > -1) && hook[key][0]) {
/* Recurse on that file */
- if (!show_file(creature_ptr, true, hook[key], NULL, 0, mode))
+ if (!show_file(creature_ptr, true, hook[key], nullptr, 0, mode))
skey = 'q';
}
}
if (creature_ptr->redraw & (PR_WIPE)) {
creature_ptr->redraw &= ~(PR_WIPE);
- msg_print(NULL);
+ msg_print(nullptr);
term_clear();
}
if ((max_dlv[player_ptr->dungeon_idx] < floor_ptr->dun_level) && !floor_ptr->inside_quest) {
max_dlv[player_ptr->dungeon_idx] = floor_ptr->dun_level;
if (record_maxdepth)
- exe_write_diary(player_ptr, DIARY_MAXDEAPTH, floor_ptr->dun_level, NULL);
+ exe_write_diary(player_ptr, DIARY_MAXDEAPTH, floor_ptr->dun_level, nullptr);
}
(void)calculate_upkeep(player_ptr);
update_gambling_monsters(player_ptr);
} else {
msg_print(_("試合開始!", "Ready..Fight!"));
- msg_print(NULL);
+ msg_print(nullptr);
}
}
else
{
msg_format(_("まだ%sに入ったことはない。", "You haven't entered %s yet."), d_info[DUNGEON_ANGBAND].name.c_str());
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
}
*/
void determine_random_questor(player_type *player_ptr, quest_type *q_ptr)
{
- get_mon_num_prep(player_ptr, mon_hook_quest, NULL);
+ get_mon_num_prep(player_ptr, mon_hook_quest, nullptr);
MONRACE_IDX r_idx;
while (true) {
switch (q_ptr->type) {
case QUEST_TYPE_RANDOM:
if (record_rand_quest)
- exe_write_diary(player_ptr, DIARY_RAND_QUEST_C, quest_num, NULL);
+ exe_write_diary(player_ptr, DIARY_RAND_QUEST_C, quest_num, nullptr);
break;
default:
if (record_fix_quest)
- exe_write_diary(player_ptr, DIARY_FIX_QUEST_C, quest_num, NULL);
+ exe_write_diary(player_ptr, DIARY_FIX_QUEST_C, quest_num, nullptr);
break;
}
play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST_CLEAR);
msg_print(_("クエストを達成した!", "You just completed your quest!"));
- msg_print(NULL);
+ msg_print(nullptr);
}
/*!
strcpy(name, (r_ptr->name.c_str()));
msg_print(find_quest[rand_range(0, 4)]);
- msg_print(NULL);
+ msg_print(nullptr);
if (q_num != 1) {
#ifdef JP
/* Record finishing a quest */
if (q_ptr->type == QUEST_TYPE_RANDOM) {
if (record_rand_quest)
- exe_write_diary(player_ptr, DIARY_RAND_QUEST_F, leaving_quest, NULL);
+ exe_write_diary(player_ptr, DIARY_RAND_QUEST_F, leaving_quest, nullptr);
return;
}
if (record_fix_quest)
- exe_write_diary(player_ptr, DIARY_FIX_QUEST_F, leaving_quest, NULL);
+ exe_write_diary(player_ptr, DIARY_FIX_QUEST_F, leaving_quest, nullptr);
}
/*!
message = _("消滅した", "vanished.");
break;
default:
- message = NULL;
+ message = nullptr;
break;
}
object_type *o_ptr = &caster_ptr->current_floor_ptr->o_list[this_o_idx];
bool ignore = false;
bool do_kill = false;
- concptr note_kill = NULL;
+ concptr note_kill = nullptr;
#ifdef JP
#else
return;
}
- em_ptr->note = NULL;
+ em_ptr->note = nullptr;
msg_format(_("%^sの堕落した精神は攻撃を跳ね返した!",
(em_ptr->seen ? "%^s's corrupted mind backlashes your attack!" : "%^ss corrupted mind backlashes your attack!")),
em_ptr->m_name);
if (!is_corrupted)
return false;
- em_ptr->note = NULL;
+ em_ptr->note = nullptr;
msg_format(_("%^sの堕落した精神は攻撃を跳ね返した!",
(em_ptr->seen ? "%^s's corrupted mind backlashes your attack!" : "%^ss corrupted mind backlashes your attack!")),
em_ptr->m_name);
floor_type *floor_ptr = caster_ptr->current_floor_ptr;
em_ptr->g_ptr = &floor_ptr->grid_array[em_ptr->y][em_ptr->x];
em_ptr->m_ptr = &floor_ptr->m_list[em_ptr->g_ptr->m_idx];
- em_ptr->m_caster_ptr = (em_ptr->who > 0) ? &floor_ptr->m_list[em_ptr->who] : NULL;
+ em_ptr->m_caster_ptr = (em_ptr->who > 0) ? &floor_ptr->m_list[em_ptr->who] : nullptr;
em_ptr->r_ptr = &r_info[em_ptr->m_ptr->r_idx];
em_ptr->seen = em_ptr->m_ptr->ml;
em_ptr->seen_msg = is_seen(caster_ptr, em_ptr->m_ptr);
em_ptr->do_time = 0;
em_ptr->heal_leper = false;
em_ptr->photo = 0;
- em_ptr->note = NULL;
+ em_ptr->note = nullptr;
em_ptr->note_dies = extract_note_dies(real_r_idx(em_ptr->m_ptr));
em_ptr->caster_lev = (em_ptr->who > 0) ? r_info[em_ptr->m_caster_ptr->r_idx].level : (caster_ptr->lev * 2);
return em_ptr;
msg_print(_("恐ろしい光景が頭に浮かんできた。", "A horrible vision enters your mind."));
/* Have some nightmares */
- sanity_blast(target_ptr, NULL, false);
+ sanity_blast(target_ptr, nullptr, false);
}
set_paralyzed(target_ptr, target_ptr->paralyzed + ep_ptr->dam);
static void effect_player_time_one_disability(player_type *target_ptr)
{
int k = 0;
- concptr act = NULL;
+ concptr act = nullptr;
switch (randint1(6)) {
case 1:
k = A_STR;
static effect_player_type *initialize_effect_player(effect_player_type *ep_ptr, MONSTER_IDX who, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag)
{
ep_ptr->rlev = 0;
- ep_ptr->m_ptr = NULL;
+ ep_ptr->m_ptr = nullptr;
ep_ptr->get_damage = 0;
ep_ptr->who = who;
ep_ptr->dam = dam;
/*! @brief アイテムの価値記述テーブル */
const concptr game_inscriptions[MAX_GAME_INSCRIPTIONS] = {
- NULL, /* FEEL_NONE */
+ nullptr, /* FEEL_NONE */
_("壊れている", "broken"), /* FEEL_BROKEN */
_("恐ろしい", "terrible"), /* FEEL_TERRIBLE */
_("無価値", "worthless"), /* FEEL_WORTHLESS */
*/
static void describe_inscription(flavor_type *flavor_ptr)
{
- for (flavor_ptr->s0 = NULL; *flavor_ptr->s || flavor_ptr->s0;) {
+ for (flavor_ptr->s0 = nullptr; *flavor_ptr->s || flavor_ptr->s0;) {
if (!*flavor_ptr->s) {
flavor_ptr->s = flavor_ptr->s0 + 1;
- flavor_ptr->s0 = NULL;
+ flavor_ptr->s0 = nullptr;
} else if ((*flavor_ptr->s == '#') && !flavor_ptr->s0) {
flavor_ptr->s0 = flavor_ptr->s;
flavor_ptr->s = flavor_ptr->modstr;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
reset_lite_area(floor_ptr);
set_floor_and_wall(floor_ptr->dungeon_idx);
- get_mon_num_prep(player_ptr, get_monster_hook(player_ptr), NULL);
+ get_mon_num_prep(player_ptr, get_monster_hook(player_ptr), nullptr);
dun_data_type tmp_dd;
dun_data_type *dd_ptr = initialize_dun_data_type(&tmp_dd, why);
floor_ptr->object_level = floor_ptr->base_level;
floor_ptr->monster_level = floor_ptr->base_level;
if (record_stair)
- exe_write_diary(player_ptr, DIARY_TO_QUEST, floor_ptr->inside_quest, NULL);
+ exe_write_diary(player_ptr, DIARY_TO_QUEST, floor_ptr->inside_quest, nullptr);
- get_mon_num_prep(player_ptr, get_monster_hook(player_ptr), NULL);
+ get_mon_num_prep(player_ptr, get_monster_hook(player_ptr), nullptr);
init_flags = INIT_CREATE_DUNGEON;
parse_fixed_map(player_ptr, "q_info.txt", 0, 0, MAX_HGT, MAX_WID);
}
set_floor_and_wall(floor_ptr->dungeon_idx);
for (int num = 0; true; num++) {
bool okay = true;
- concptr why = NULL;
+ concptr why = nullptr;
clear_cave(player_ptr);
player_ptr->x = player_ptr->y = 0;
if (floor_ptr->inside_arena)
return;
new_floor_id = get_new_floor_id(creature_ptr);
- if ((g_ptr != NULL) && !feat_uses_special(g_ptr->feat))
+ if ((g_ptr != nullptr) && !feat_uses_special(g_ptr->feat))
g_ptr->special = new_floor_id;
}
static void exe_leave_floor(player_type *creature_ptr, saved_floor_type *sf_ptr)
{
- grid_type *g_ptr = NULL;
+ grid_type *g_ptr = nullptr;
set_grid_by_leaving_floor(creature_ptr, &g_ptr);
jump_floors(creature_ptr);
exit_to_wilderness(creature_ptr);
creature_ptr->wild_mode = false;
leave_quest_check(creature_ptr);
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_WIZ_TELE, 0, NULL);
+ exe_write_diary(creature_ptr, DIARY_WIZ_TELE, 0, nullptr);
creature_ptr->current_floor_ptr->inside_quest = 0;
PlayerEnergy(creature_ptr).reset_player_turn();
k_idx = get_obj_num(owner_ptr, base, mode);
if (get_obj_num_hook) {
- get_obj_num_hook = NULL;
+ get_obj_num_hook = nullptr;
get_obj_num_prep();
}
FixItemTesterSetter setter(item_tester);
if (!get_item(owner_ptr, &item, q, s, option, item_tester))
- return NULL;
+ return nullptr;
if (idx)
*idx = item;
if (item == INVEN_FORCE)
- return NULL;
+ return nullptr;
return ref_item(owner_ptr, item);
}
max_floor_id = 1;
latest_visit_mark = 1;
- saved_floor_file_sign = (uint32_t)time(NULL);
+ saved_floor_file_sign = (uint32_t)time(nullptr);
new_floor_id = 0;
creature_ptr->change_floor_mode = 0;
}
/*!
* @brief 保存フロアIDから参照ポインタを得る / Get a pointer for an item of the saved_floors array.
* @param floor_id 保存フロアID
- * @return IDに対応する保存フロアのポインタ、ない場合はNULLを返す。
+ * @return IDに対応する保存フロアのポインタ、ない場合はnullptrを返す。
*/
saved_floor_type *get_sf_ptr(FLOOR_IDX floor_id)
{
if (!floor_id)
- return NULL;
+ return nullptr;
for (int i = 0; i < MAX_SAVED_FLOORS; i++) {
saved_floor_type *sf_ptr = &saved_floors[i];
return sf_ptr;
}
- return NULL;
+ return nullptr;
}
/*!
*/
FLOOR_IDX get_new_floor_id(player_type *creature_ptr)
{
- saved_floor_type *sf_ptr = NULL;
+ saved_floor_type *sf_ptr = nullptr;
FLOOR_IDX fl_idx;
for (fl_idx = 0; fl_idx < MAX_SAVED_FLOORS; fl_idx++) {
sf_ptr = &saved_floors[fl_idx];
creature_ptr->current_floor_ptr->dun_level = command_arg;
leave_quest_check(creature_ptr);
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_PAT_TELE, 0, NULL);
+ exe_write_diary(creature_ptr, DIARY_PAT_TELE, 0, nullptr);
creature_ptr->current_floor_ptr->inside_quest = 0;
PlayerEnergy(creature_ptr).reset_player_turn();
parse_fixed_map(creature_ptr, "w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
POSITION x = creature_ptr->wilderness_x;
POSITION y = creature_ptr->wilderness_y;
- get_mon_num_prep(creature_ptr, get_monster_hook(creature_ptr), NULL);
+ get_mon_num_prep(creature_ptr, get_monster_hook(creature_ptr), nullptr);
/* North border */
generate_area(creature_ptr, y - 1, x, true, false);
{ &record_named_pet, false, OPT_PAGE_PLAYRECORD, 4, 23, "record_named_pet", _("名前つきペットの情報を記録する", "Record information about named pets") },
/*** End of Table ***/
- { NULL, 0, 0, 0, 0, NULL, NULL }
+ { nullptr, 0, 0, 0, 0, nullptr, nullptr }
}};
/*!
/*
* Available "options"
- * - Address of actual option variable (or NULL)
+ * - Address of actual option variable (or nullptr)
* - Normal Value (TRUE or FALSE)
* - Option Page Number (or zero)
* - Savefile Set (or zero)
* - Savefile Bit in that set
- * - Textual name (or NULL)
+ * - Textual name (or nullptr)
* - Textual description
*/
struct option_type {
msg_print(_("身の毛もよだつ光景が頭に浮かんだ。", "A horrible vision enters your mind."));
/* Have some nightmares */
- sanity_blast(trapped_ptr, NULL, false);
+ sanity_blast(trapped_ptr, nullptr, false);
}
(void)set_paralyzed(trapped_ptr, trapped_ptr->paralyzed + randint0(10) + 5);
}
take_hit(creature_ptr, DAMAGE_NOESCAPE, damage, format(_("%sの上に浮遊したダメージ", "flying over %s"), f_info[g_ptr->get_feat_mimic()].name.c_str()));
- if (additional_effect != NULL)
+ if (additional_effect != nullptr)
additional_effect(creature_ptr, damage);
} else {
concptr name = f_info[creature_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x].get_feat_mimic()].name.c_str();
msg_format(_("%s%s!", "The %s %s!"), name, msg_normal);
take_hit(creature_ptr, DAMAGE_NOESCAPE, damage, name);
- if (additional_effect != NULL)
+ if (additional_effect != nullptr)
additional_effect(creature_ptr, damage);
}
if (f_ptr->flags.has(FF::LAVA) && !is_invuln(creature_ptr) && !has_immune_fire(creature_ptr)) {
cave_no_regen = deal_damege_by_feat(
- creature_ptr, g_ptr, _("熱で火傷した!", "The heat burns you!"), _("で火傷した!", "burns you!"), calc_fire_damage_rate, NULL);
+ creature_ptr, g_ptr, _("熱で火傷した!", "The heat burns you!"), _("で火傷した!", "burns you!"), calc_fire_damage_rate, nullptr);
}
if (f_ptr->flags.has(FF::COLD_PUDDLE) && !is_invuln(creature_ptr) && !has_immune_cold(creature_ptr)) {
cave_no_regen = deal_damege_by_feat(
- creature_ptr, g_ptr, _("冷気に覆われた!", "The cold engulfs you!"), _("に凍えた!", "frostbites you!"), calc_cold_damage_rate, NULL);
+ creature_ptr, g_ptr, _("冷気に覆われた!", "The cold engulfs you!"), _("に凍えた!", "frostbites you!"), calc_cold_damage_rate, nullptr);
}
if (f_ptr->flags.has(FF::ELEC_PUDDLE) && !is_invuln(creature_ptr) && !has_immune_elec(creature_ptr)) {
cave_no_regen = deal_damege_by_feat(
- creature_ptr, g_ptr, _("電撃を受けた!", "The electricity shocks you!"), _("に感電した!", "shocks you!"), calc_elec_damage_rate, NULL);
+ creature_ptr, g_ptr, _("電撃を受けた!", "The electricity shocks you!"), _("に感電した!", "shocks you!"), calc_elec_damage_rate, nullptr);
}
if (f_ptr->flags.has(FF::ACID_PUDDLE) && !is_invuln(creature_ptr) && !has_immune_acid(creature_ptr)) {
cave_no_regen = deal_damege_by_feat(
- creature_ptr, g_ptr, _("酸が飛び散った!", "The acid melts you!"), _("に溶かされた!", "melts you!"), calc_acid_damage_rate, NULL);
+ creature_ptr, g_ptr, _("酸が飛び散った!", "The acid melts you!"), _("に溶かされた!", "melts you!"), calc_acid_damage_rate, nullptr);
}
if (f_ptr->flags.has(FF::POISON_PUDDLE) && !is_invuln(creature_ptr)) {
if ((creature_ptr->csp == 0) && (creature_ptr->csp_frac == 0)) {
while (upkeep_factor > 100) {
msg_print(_("こんなに多くのペットを制御できない!", "Too many pets to control at once!"));
- msg_print(NULL);
+ msg_print(nullptr);
do_cmd_pet_dismiss(creature_ptr);
upkeep_factor = calculate_upkeep(creature_ptr);
msg_format(_("維持MPは %d%%", "Upkeep: %d%% mana."), upkeep_factor);
- msg_print(NULL);
+ msg_print(nullptr);
}
}
*/
errr parse_a_info(std::string_view buf, angband_header *head)
{
- static artifact_type *a_ptr = NULL;
+ static artifact_type *a_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 10);
if (tokens[0] == "N") {
*/
errr parse_d_info(std::string_view buf, angband_header *head)
{
- static dungeon_type *d_ptr = NULL;
+ static dungeon_type *d_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false);
if (tokens[0] == "N") {
*/
errr parse_e_info(std::string_view buf, angband_header *head)
{
- static ego_item_type *e_ptr = NULL;
+ static ego_item_type *e_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 10);
error_idx = 0; //!< @note 順不同で登録しているため
*/
errr parse_f_info(std::string_view buf, angband_header *head)
{
- static feature_type *f_ptr = NULL;
+ static feature_type *f_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 10);
if (tokens[0] == "N") {
char buf[1024];
path_build(buf, sizeof(buf), ANGBAND_DIR_EDIT, name);
FILE *fp = angband_fopen(buf, "r");
- if (fp == NULL)
+ if (fp == nullptr)
return PARSE_ERROR_GENERIC;
int num = -1;
concptr oops = (((err > 0) && (err < PARSE_ERROR_MAX)) ? err_str[err] : "unknown");
msg_format("Error %d (%s) at line %d of '%s'.", err, oops, num, name);
msg_format(_("'%s'を解析中。", "Parsing '%s'."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
}
angband_fclose(fp);
byte grab_one_activation_flag(concptr what)
{
for (int i = 0;; i++) {
- if (activation_info[i].flag == NULL)
+ if (activation_info[i].flag == nullptr)
break;
if (streq(what, activation_info[i].flag)) {
*/
errr parse_k_info(std::string_view buf, angband_header *head)
{
- static object_kind *k_ptr = NULL;
+ static object_kind *k_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 10);
if (tokens[0] == "N") {
*/
errr parse_m_info(std::string_view buf, angband_header *head)
{
- static player_magic *m_ptr = NULL;
+ static player_magic *m_ptr = nullptr;
static int realm, magic_idx = 0, readable = 0;
const auto &tokens = str_split(buf, ':', false, 7);
*/
errr parse_r_info(std::string_view buf, angband_header *head)
{
- static monster_race *r_ptr = NULL;
+ static monster_race *r_ptr = nullptr;
const auto &tokens = str_split(buf, ':', true, 10);
if (tokens[0] == "N") {
*/
errr parse_s_info(std::string_view buf, angband_header *head)
{
- static skill_table *s_ptr = NULL;
+ static skill_table *s_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 5);
if (tokens[0] == "N") {
*/
errr parse_v_info(std::string_view buf, angband_header *head)
{
- static vault_type *v_ptr = NULL;
+ static vault_type *v_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 5);
if (tokens[0] == "N") {
if (check_floor_item_tag(owner_ptr, fis_ptr, &prev_tag, item_tester))
return true;
- msg_print(NULL);
+ msg_print(nullptr);
handle_stuff(owner_ptr);
test_inventory_floor(owner_ptr, fis_ptr, item_tester);
fis_ptr->done = false;
* @brief 現在呪いを保持している装備品を一つランダムに探し出す / Choose one of items that have cursed flag
* @param flag 探し出したい呪いフラグ配列
* @return 該当の呪いが一つでもあった場合にランダムに選ばれた装備品のオブジェクト構造体参照ポインタを返す。\n
- * 呪いがない場合NULLを返す。
+ * 呪いがない場合nullptrを返す。
*/
object_type *choose_cursed_obj_name(player_type *creature_ptr, TRC flag)
{
int choices[INVEN_TOTAL - INVEN_MAIN_HAND];
int number = 0;
if (creature_ptr->cursed.has_not(flag))
- return NULL;
+ return nullptr;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
object_type *o_ptr = &creature_ptr->inventory_list[i];
if (check_item_tag(owner_ptr, item_selection_ptr, &prev_tag, item_tester))
return true;
- msg_print(NULL);
+ msg_print(nullptr);
item_selection_ptr->done = false;
item_selection_ptr->item = false;
item_selection_ptr->i1 = 0;
orig_fff = angband_fopen(orig_file, "r");
if (!orig_fff) return;
- FILE *tmp_fff = NULL;
+ FILE *tmp_fff = nullptr;
char tmp_file[FILE_NAME_SIZE];
if (!open_temporary_file(&tmp_fff, tmp_file)) return;
bool open_temporary_file(FILE **fff, char *file_name)
{
*fff = angband_fopen_temp(file_name, FILE_NAME_SIZE);
- if (*fff != NULL) return true;
+ if (*fff != nullptr) return true;
msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
fd = -1;
}
- FILE *fff = NULL;
+ FILE *fff = nullptr;
if (fd < 0)
fff = angband_fopen(buf, "w");
make_character_dump(creature_ptr, fff, display_player);
angband_fclose(fff);
msg_print(_("キャラクタ情報のファイルへの書き出しに成功しました。", "Character dump successful."));
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
val0.it_value.tv_usec = 0;
/* アラーム解除 */
- setitimer(ITIMER_REAL, &val0, NULL);
+ setitimer(ITIMER_REAL, &val0, nullptr);
signal(SIGALRM, sig_alm_saved);
signal(SIGINT, sig_int_saved);
#endif
sig_alm_saved = signal(SIGALRM, interrupt_report);
/* タイムアウトの時間を設定 */
- setitimer(ITIMER_REAL, &val, NULL);
+ setitimer(ITIMER_REAL, &val, nullptr);
#else
/* Unused in Windows */
(void)timeout;
/* プロキシが設定されていればプロキシに繋ぐ */
if (proxy && proxy[0]) {
- if ((hp = gethostbyname(proxy)) == NULL) {
+ if ((hp = gethostbyname(proxy)) == nullptr) {
#ifdef JP
errstr = "エラー: プロキシのアドレスが不正です";
#else
return -1;
}
- } else if ((hp = gethostbyname(host)) == NULL) {
+ } else if ((hp = gethostbyname(host)) == nullptr) {
#ifdef JP
errstr = "エラー: サーバのアドレスが不正です";
#else
* trigger any macros, and cannot be bypassed by the Borg. It is used
* in Angband to handle "keymaps".
*/
-concptr inkey_next = NULL;
+concptr inkey_next = nullptr;
/* Save macro trigger string for use in inkey_special() */
static char inkey_macro_trigger_string[1024];
return (ch);
}
- inkey_next = NULL;
+ inkey_next = nullptr;
if (inkey_xtra) {
parse_macro = false;
parse_under = false;
} modifier_key_list[] = {
{ "shift-", SKEY_MOD_SHIFT },
{ "control-", SKEY_MOD_CONTROL },
- { NULL, 0 },
+ { nullptr, 0 },
};
static const struct {
{ true, "KP_3]", SKEY_PGDOWN },
{ true, "KP_7]", SKEY_TOP },
{ true, "KP_1]", SKEY_BOTTOM },
- { false, NULL, 0 },
+ { false, nullptr, 0 },
};
static const struct {
{ "4~", SKEY_BOTTOM },
{ "5~", SKEY_PGUP },
{ "6~", SKEY_PGDOWN },
- { NULL, 0 },
+ { nullptr, 0 },
};
char buf[1024];
msg_print(_("ウィザードモードはデバッグと実験のためのモードです。 ", "Wizard mode is for debugging and experimenting."));
msg_print(_("一度ウィザードモードに入るとスコアは記録されません。", "The game will not be scored if you enter wizard mode."));
- msg_print(NULL);
+ msg_print(nullptr);
if (!get_check(_("本当にウィザードモードに入りたいのですか? ", "Are you sure you want to enter wizard mode? "))) {
return false;
}
msg_print(_("デバッグ・コマンドはデバッグと実験のためのコマンドです。 ", "The debug commands are for debugging and experimenting."));
msg_print(_("デバッグ・コマンドを使うとスコアは記録されません。", "The game will not be scored if you use debug commands."));
- msg_print(NULL);
+ msg_print(nullptr);
if (!get_check(_("本当にデバッグ・コマンドを使いますか? ", "Are you sure you want to use debug commands? "))) {
return false;
}
if (floor_ptr->dun_level && d_info[creature_ptr->dungeon_idx].flags.has(DF::NO_MAGIC) && (creature_ptr->pclass != CLASS_BERSERKER)
&& (creature_ptr->pclass != CLASS_SMITH)) {
msg_print(_("ダンジョンが魔法を吸収した!", "The dungeon absorbs all attempted magic!"));
- msg_print(NULL);
+ msg_print(nullptr);
break;
}
#ifdef JP
for (int i = 0; i < 256; i++) {
concptr s;
- if ((s = keymap_act[mode][i]) != NULL) {
+ if ((s = keymap_act[mode][i]) != nullptr) {
if (*s == command_cmd && *(s + 1) == 0) {
caretcmd = i;
break;
#define MAX_MACRO_CHARS 16128 // 1つのマクロキー押下で実行可能なコマンド最大数 (エスケープシーケンス含む).
-char *histpref_buf = NULL;
+char *histpref_buf = nullptr;
/*!
* @brief Rトークンの解釈 / Process "R:<num>:<a>/<c>" -- attr/char for monster races
if (tokenize(buf + 2, 3, zz, TOKENIZE_CHECKQUOTE) != 3) return 1;
monster_race *r_ptr;
- int i = (int)strtol(zz[0], NULL, 0);
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
- SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ int i = (int)strtol(zz[0], nullptr, 0);
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
+ SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], nullptr, 0);
if (i >= max_r_idx) return 1;
r_ptr = &r_info[i];
if (tokenize(buf + 2, 3, zz, TOKENIZE_CHECKQUOTE) != 3) return 1;
object_kind *k_ptr;
- int i = (int)strtol(zz[0], NULL, 0);
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
- SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ int i = (int)strtol(zz[0], nullptr, 0);
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
+ SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], nullptr, 0);
if (i >= max_k_idx) return 1;
k_ptr = &k_info[i];
feature_type *f_ptr;
f_ptr = &f_info[i];
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
- SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
+ SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], nullptr, 0);
if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[F_LIT_STANDARD] = n1; /* Allow TERM_DARK text */
if (n2) f_ptr->x_char[F_LIT_STANDARD] = n2;
/* Use desired lighting */
for (int j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
{
- n1 = (TERM_COLOR)strtol(zz[j * 2 + 1], NULL, 0);
- n2 = (SYMBOL_CODE)strtol(zz[j * 2 + 2], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[j * 2 + 1], nullptr, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[j * 2 + 2], nullptr, 0);
if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[j] = n1; /* Allow TERM_DARK text */
if (n2) f_ptr->x_char[j] = n2;
}
if ((num != 3) && (num != 4) && (num != F_LIT_MAX * 2 + 1)) return 1;
else if ((num == 4) && !streq(zz[3], "LIT")) return 1;
- int i = (int)strtol(zz[0], NULL, 0);
+ int i = (int)strtol(zz[0], nullptr, 0);
if (i >= max_f_idx) return 1;
return decide_feature_type(i, num, zz);
char *zz[16];
if (tokenize(buf + 2, 3, zz, TOKENIZE_CHECKQUOTE) != 3) return 1;
- int j = (byte)strtol(zz[0], NULL, 0);
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
- SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ int j = (byte)strtol(zz[0], nullptr, 0);
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
+ SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], nullptr, 0);
misc_to_attr[j] = n1;
misc_to_char[j] = n2;
return 0;
char *zz[16];
if (tokenize(buf + 2, 3, zz, TOKENIZE_CHECKQUOTE) != 3) return 1;
- int j = (int)strtol(zz[0], NULL, 0);
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
- SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ int j = (int)strtol(zz[0], nullptr, 0);
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
+ SYMBOL_CODE n2 = (SYMBOL_CODE)strtol(zz[2], nullptr, 0);
for (int i = 1; i < max_k_idx; i++)
{
object_kind *k_ptr = &k_info[i];
char *zz[16];
if (tokenize(buf + 2, 2, zz, TOKENIZE_CHECKQUOTE) != 2) return 1;
- int j = (byte)strtol(zz[0], NULL, 0) % 128;
- TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
+ int j = (byte)strtol(zz[0], nullptr, 0) % 128;
+ TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
if (n1) tval_to_attr[j] = n1;
return 0;
}
char *zz[16];
if (tokenize(buf + 2, 2, zz, TOKENIZE_CHECKQUOTE) != 2) return 1;
- int mode = strtol(zz[0], NULL, 0);
+ int mode = strtol(zz[0], nullptr, 0);
if ((mode < 0) || (mode >= KEYMAP_MODES)) return 1;
char tmp[1024];
char *zz[16];
if (tokenize(buf + 2, 5, zz, TOKENIZE_CHECKQUOTE) != 5) return 1;
- int i = (byte)strtol(zz[0], NULL, 0);
- angband_color_table[i][0] = (byte)strtol(zz[1], NULL, 0);
- angband_color_table[i][1] = (byte)strtol(zz[2], NULL, 0);
- angband_color_table[i][2] = (byte)strtol(zz[3], NULL, 0);
- angband_color_table[i][3] = (byte)strtol(zz[4], NULL, 0);
+ int i = (byte)strtol(zz[0], nullptr, 0);
+ angband_color_table[i][0] = (byte)strtol(zz[1], nullptr, 0);
+ angband_color_table[i][1] = (byte)strtol(zz[2], nullptr, 0);
+ angband_color_table[i][2] = (byte)strtol(zz[3], nullptr, 0);
+ angband_color_table[i][3] = (byte)strtol(zz[4], nullptr, 0);
return 0;
}
{
for (int i = 0; option_info[i].o_desc; i++)
{
- bool is_option = option_info[i].o_var != NULL;
- is_option &= option_info[i].o_text != NULL;
+ bool is_option = option_info[i].o_var != nullptr;
+ is_option &= option_info[i].o_text != nullptr;
is_option &= streq(option_info[i].o_text, buf + 2);
if (!is_option) continue;
(OPT_PAGE_BIRTH == option_info[i].o_page) && !current_world_ptr->wizard)
{
msg_format(_("初期オプションは変更できません! '%s'", "Birth options can not changed! '%s'"), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
}
msg_format(_("オプションの名前が正しくありません: %s", "Ignored invalid option: %s"), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
*/
static errr decide_template_modifier(int tok, char **zz)
{
- if (macro_template != NULL)
+ if (macro_template != nullptr)
{
int macro_modifier_length = strlen(macro_modifier_chr);
string_free(macro_template);
- macro_template = NULL;
+ macro_template = nullptr;
string_free(macro_modifier_chr);
for (int i = 0; i < macro_modifier_length; i++)
{
/* ToDo: Add better error messages */
msg_format(_("ファイル'%s'の%d行でエラー番号%dのエラー。", "Error %d in line %d of file '%s'."), _(name, err), line, _(err, name));
msg_format(_("('%s'を解析中)", "Parsing '%s'"), file_read__swp);
- msg_print(NULL);
+ msg_print(nullptr);
}
angband_fclose(fp);
*fpp = angband_fopen(buf, "a");
if (!fpp) {
msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
if (err) {
msg_print(_("生い立ち設定ファイルの読み込みに失敗しました。", "Failed to load background history preference."));
- msg_print(NULL);
- histpref_buf = NULL;
+ msg_print(nullptr);
+ histpref_buf = nullptr;
return false;
} else if (!histpref_buf[0]) {
msg_print(_("有効な生い立ち設定はこのファイルにありません。", "There does not exist valid background history preference."));
- msg_print(NULL);
- histpref_buf = NULL;
+ msg_print(nullptr);
+ histpref_buf = nullptr;
return false;
}
creature_ptr->history[i][59] = '\0';
}
- histpref_buf = NULL;
+ histpref_buf = nullptr;
return true;
}
ring.wptr = ring.rptr = ring.inlen = 0;
fresh_queue.time[0] = 0;
ring.buf = static_cast<char*>(malloc(RINGBUF_SIZE));
- if (ring.buf == NULL)
+ if (ring.buf == nullptr)
return -1;
return 0;
return timeGetTime() / 100;
#else
struct timeval tv;
- gettimeofday(&tv, NULL);
+ gettimeofday(&tv, nullptr);
return (tv.tv_sec * 10 + tv.tv_usec / 100000);
#endif
#endif
#include <curl/curl.h>
-concptr screen_dump = NULL;
+concptr screen_dump = nullptr;
/*
* internet resource value
BUF *p;
p = static_cast<BUF*>(malloc(sizeof(BUF)));
if (!p)
- return NULL;
+ return nullptr;
p->size = 0;
p->max_size = BUFSIZE;
p->data = static_cast<char*>(malloc(BUFSIZE));
if (!p->data) {
free(p);
- return NULL;
+ return nullptr;
}
return p;
{
while (buf->size + size > buf->max_size) {
char *tmp;
- if ((tmp = static_cast<char*>(malloc(buf->max_size * 2))) == NULL)
+ if ((tmp = static_cast<char*>(malloc(buf->max_size * 2))) == nullptr)
return -1;
memcpy(tmp, buf->data, buf->max_size);
{
bool succeeded = false;
CURL *curl = curl_easy_init();
- if (curl == NULL) {
+ if (curl == nullptr) {
return false;
}
- struct curl_slist *slist = NULL;
+ struct curl_slist *slist = nullptr;
slist = curl_slist_append(slist,
#ifdef JP
#ifdef SJIS
#else
msg_format("Failed to create temporary file %s.", file_name);
#endif
- msg_print(NULL);
+ msg_print(nullptr);
return 1;
}
/* Alloc buffer */
BUF *screen_buf;
screen_buf = buf_new();
- if (screen_buf == NULL)
+ if (screen_buf == nullptr)
return nullptr;
bool old_use_graphics = use_graphics;
if (old_use_graphics) {
/* Clear -more- prompt first */
- msg_print(NULL);
+ msg_print(nullptr);
use_graphics = false;
reset_visuals(creature_ptr);
SYMBOL_CODE c = ' ';
for (int x = 0; x < wid - 1; x++) {
int rv, gv, bv;
- concptr cc = NULL;
+ concptr cc = nullptr;
/* Get the attr/char */
(void)(term_what(x, y, &a, &c));
/* Screen dump size is too big ? */
concptr ret;
if (screen_buf->size + 1 > SCREEN_BUF_MAX_SIZE) {
- ret = NULL;
+ ret = nullptr;
} else {
/* Terminate string */
buf_append(screen_buf, "", 1);
}
}
#else
-concptr screen_dump = NULL;
+concptr screen_dump = nullptr;
#endif /* WORLD_SCORE */
{
(void)signal(sig, SIG_IGN);
if (!current_world_ptr->character_generated || current_world_ptr->character_saved)
- quit(NULL);
+ quit(nullptr);
signal_count++;
if (p_ptr->is_dead) {
(void)signal(sig, SIG_IGN);
if (!current_world_ptr->character_generated || current_world_ptr->character_saved)
- quit(NULL);
+ quit(nullptr);
forget_lite(p_ptr->current_floor_ptr);
forget_view(p_ptr->current_floor_ptr);
if (*fff) return true;
msg_format(_("%s を開くことができませんでした。プレイ記録を一時停止します。", "Failed to open %s. Play-Record is disabled temporarily."), buf);
- msg_format(NULL);
+ msg_format(nullptr);
*disable_diary = true;
return false;
}
creature_ptr->current_floor_ptr->inside_quest = old_quest;
}
- FILE *fff = NULL;
+ FILE *fff = nullptr;
if (!open_diary_file(&fff, &disable_diary)) return -1;
concptr note_level = "";
*/
void do_cmd_knowledge_autopick(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_weapon_exp(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_spell_exp(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
char skill_name[SKILL_MAX][20] = { _("マーシャルアーツ", "Martial Arts "), _("二刀流 ", "Dual Wielding "),
_("乗馬 ", "Riding "), _("盾 ", "Shield ") };
- FILE *fff = NULL;
+ FILE *fff = nullptr;
char file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
FEAT_IDX *feat_idx;
C_MAKE(feat_idx, max_f_idx, FEAT_IDX);
- concptr feature_group_text[] = { "terrains", NULL };
+ concptr feature_group_text[] = { "terrains", nullptr };
int len;
int max = 0;
int grp_cnt = 0;
byte char_left = 0;
TERM_LEN browser_rows = hgt - 8;
if (direct_f_idx < 0) {
- for (FEAT_IDX i = 0; feature_group_text[i] != NULL; i++) {
+ for (FEAT_IDX i = 0; feature_group_text[i] != nullptr; i++) {
len = strlen(feature_group_text[i]);
if (len > max)
max = len;
*/
void do_cmd_knowledge_dungeon(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_inventory(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_artifacts(player_type *player_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
return;
msg_print(_("特に変わったところはないようだ。", "You see nothing special."));
- msg_print(NULL);
+ msg_print(nullptr);
}
/**
int grp_cnt = 0;
if (direct_k_idx < 0) {
mode = visual_only ? 0x03 : 0x01;
- for (IDX i = 0; object_group_text[i] != NULL; i++) {
+ for (IDX i = 0; object_group_text[i] != nullptr; i++) {
len = strlen(object_group_text[i]);
if (len > max)
max = len;
*/
void do_cmd_knowledge_pets(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_kill_count(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
if (direct_r_idx < 0) {
mode = visual_only ? MONSTER_LORE_DEBUG : MONSTER_LORE_NORMAL;
int len;
- for (IDX i = 0; monster_group_text[i] != NULL; i++) {
+ for (IDX i = 0; monster_group_text[i] != nullptr; i++) {
len = strlen(monster_group_text[i]);
if (len > max)
max = len;
*/
void do_cmd_knowledge_bounty(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_mutations(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_quests(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_virtues(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
*/
void do_cmd_knowledge_stat(player_type *creature_ptr)
{
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
{
parse_fixed_map(player_ptr, "w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
{
unique_list_type tmp_list;
unique_list_type *unique_list_ptr = initialize_unique_lsit_type(&tmp_list, is_alive);
- FILE *fff = NULL;
+ FILE *fff = nullptr;
GAME_TEXT file_name[FILE_NAME_SIZE];
if (!open_temporary_file(&fff, file_name))
return;
"Lich", "Multi-Headed Reptile", "Mystery Living", "Ogre", "Giant Humanoid", "Quylthulg", "Reptile/Amphibian", "Spider/Scorpion/Tick", "Troll", "Vampire",
"Wight/Wraith/etc", "Xorn/Xaren/etc", "Yeti", "Zephyr Hound", "Mimic", "Wall/Plant/Gas", "Mushroom patch", "Ball", "Player",
#endif
- NULL
+ nullptr
};
/*
*/
concptr monster_group_char[] = { (char *)-1L, (char *)-2L, (char *)-3L, (char *)-4L, "a", "b", "c", "dD", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"pt", "q", "r", "s", "uU", "v", "w", "y", "z", "A", "B", "C", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "V", "W", "X",
- "Y", "Z", "!$&()+./=>?[\\]`{|~", "#%", ",", "*", "@", NULL };
+ "Y", "Z", "!$&()+./=>?[\\]`{|~", "#%", ",", "*", "@", nullptr };
_("鈍器", "Blunt Weapons"), _("長柄武器", "Polearms"), _("採掘道具", "Diggers"), _("飛び道具", "Bows"), _("弾", "Shots"), _("矢", "Arrows"),
_("ボルト", "Bolts"), _("軽装鎧", "Soft Armor"), _("重装鎧", "Hard Armor"), _("ドラゴン鎧", "Dragon Armor"), _("盾", "Shields"), _("クローク", "Cloaks"),
_("籠手", "Gloves"), _("ヘルメット", "Helms"), _("冠", "Crowns"), _("ブーツ", "Boots"), _("魔法書", "Spellbooks"), _("財宝", "Treasure"),
- _("何か", "Something"), NULL };
+ _("何か", "Something"), nullptr };
/*
* TVALs of items in each group
byte num;
rd_byte(&num);
if (num == 0) {
- err = rd_saved_floor(player_ptr, NULL);
+ err = rd_saved_floor(player_ptr, nullptr);
} else {
for (int i = 0; i < num; i++) {
saved_floor_type *sf_ptr = &saved_floors[i];
kanji_code = 1;
#endif
- FILE *old_fff = NULL;
+ FILE *old_fff = nullptr;
byte old_xor_byte = 0;
uint32_t old_v_check = 0;
uint32_t old_x_check = 0;
player_ptr->inven_cnt = 0;
player_ptr->equip_cnt = 0;
- if (player_ptr->inventory_list != NULL)
+ if (player_ptr->inventory_list != nullptr)
C_KILL(player_ptr->inventory_list, INVEN_TOTAL, object_type);
C_MAKE(player_ptr->inventory_list, INVEN_TOTAL, object_type);
#ifndef WINDOWS
if (access(savefile, 0) < 0) {
msg_print(_("セーブファイルがありません。", "Savefile does not exist."));
- msg_print(NULL);
+ msg_print(nullptr);
*new_game = true;
return true;
}
if (err) {
msg_format("%s: %s", what, savefile);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
msg_format(_("エラー(%s)がバージョン%d.%d.%d.%d 用セーブファイル読み込み中に発生。", "Error (%s) reading %d.%d.%d.% savefile."), what,
current_world_ptr->h_ver_major, current_world_ptr->h_ver_minor, current_world_ptr->h_ver_patch, current_world_ptr->h_ver_extra);
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
{ "za", "ザ" }, { "zi", "ジ" }, { "zu", "ズ" }, { "ze", "ゼ" }, { "zo", "ゾ" }, { "dh", "ズ" }, { "ch", "フ" }, { "th", "ス" }, { "b", "ブ" },
{ "c", "ク" }, { "d", "ド" }, { "f", "フ" }, { "g", "グ" }, { "h", "フ" }, { "j", "ジュ" }, { "k", "ク" }, { "l", "ル" }, { "m", "ム" }, { "n", "ン" },
{ "p", "プ" }, { "q", "ク" }, { "r", "ル" }, { "s", "ス" }, { "t", "ト" }, { "v", "ヴ" }, { "w", "ウ" }, { "y", "イ" }, { "a", "ア" }, { "i", "イ" },
- { "u", "ウ" }, { "e", "エ" }, { "o", "オ" }, { "-", "ー" }, { NULL, NULL } };
+ { "u", "ウ" }, { "e", "エ" }, { "o", "オ" }, { "-", "ー" }, { nullptr, nullptr } };
/*!
* @brief シンダリンを日本語の読みに変換する
if (isupper(kana[idx]))
kana[idx] = (char)tolower(kana[idx]);
- for (idx = 0; s2j_table[idx].key1 != NULL; idx++) {
+ for (idx = 0; s2j_table[idx].key1 != nullptr; idx++) {
concptr pat1 = s2j_table[idx].key1;
concptr pat2 = s2j_table[idx].key2;
int len = strlen(pat1);
{ "ぶ", { "び", "んで", "んだ" } },
{ "む", { "み", "んで", "んだ" } },
{ "る", { "り", "って", "った" } },
- { NULL, { "そして", "ことにより", "ことや" } },
+ { nullptr, { "そして", "ことにより", "ことや" } },
};
/*!
}
}
- if (p->from == NULL)
+ if (p->from == nullptr)
strcpy(&out[in_len], p->to[flag - 1]);
}
*/
int utf8_to_euc(char *utf8_str, size_t utf8_str_len, char *euc_buf, size_t euc_buf_len)
{
- static iconv_t cd = NULL;
+ static iconv_t cd = nullptr;
if (!cd)
cd = iconv_open("EUC-JP", "UTF-8");
*/
int euc_to_utf8(const char *euc_str, size_t euc_str_len, char *utf8_buf, size_t utf8_buf_len)
{
- static iconv_t cd = NULL;
+ static iconv_t cd = nullptr;
if (!cd)
cd = iconv_open("UTF-8", "EUC-JP");
}
/* UTF-8 -> SJIS(CP932) */
- if (WideCharToMultiByte(932, 0, utf16buf, -1, sys_str_buffer, sys_str_buflen, NULL, NULL) == 0) {
+ if (WideCharToMultiByte(932, 0, utf16buf, -1, sys_str_buffer, sys_str_buflen, nullptr, nullptr) == 0) {
C_KILL(utf16buf, input_len, WCHAR);
return false;
}
angband_strcpy(work, strbuf, buflen);
if (!utf8_to_sys(work, strbuf, buflen)) {
msg_print("警告:文字コードの変換に失敗しました");
- msg_print(NULL);
+ msg_print(nullptr);
}
C_KILL(work, buflen, char);
}
void set_monster_blow_method(lore_type *lore_ptr, int m)
{
rbm_type method = lore_ptr->r_ptr->blow[m].method;
- lore_ptr->p = NULL;
+ lore_ptr->p = nullptr;
lore_ptr->pc = TERM_WHITE;
switch (method) {
case RBM_HIT:
void set_monster_blow_effect(lore_type *lore_ptr, int m)
{
rbe_type effect = lore_ptr->r_ptr->blow[m].effect;
- lore_ptr->q = NULL;
+ lore_ptr->q = nullptr;
lore_ptr->qc = TERM_WHITE;
switch (effect) {
case RBE_SUPERHURT:
XColor xcolour;
if (!gamma_table_ready) {
concptr str = getenv("ANGBAND_X11_GAMMA");
- if (str != NULL)
+ if (str != nullptr)
gamma_val = atoi(str);
gamma_table_ready = true;
BITMAPFILEHEADER fileheader;
BITMAPINFOHEADER infoheader;
- XImage *Res = NULL;
+ XImage *Res = nullptr;
char *Data;
f = fopen(Name, "r");
/* No such file */
- if (f == NULL) {
+ if (f == nullptr) {
return nullptr;
}
Res = XCreateImage(dpy, visual, depth, ZPixmap, 0 /*offset*/, Data, infoheader.biWidth, infoheader.biHeight, 8 /*bitmap_pad*/, 0 /*bytes_per_line*/);
/* Failure */
- if (Res == NULL) {
+ if (Res == nullptr) {
C_KILL(Data, total, char);
fclose(f);
return nullptr;
*/
static void curs_set(int vis)
{
- char *v = NULL;
+ char *v = nullptr;
if (!vis) {
v = vi;
so = tgetstr("so", &next);
se = tgetstr("se", &next);
if (!so || !se)
- so = se = NULL;
+ so = se = nullptr;
/* Find out how to bold */
md = tgetstr("md", &next);
me = tgetstr("me", &next);
if (!md || !me)
- md = me = NULL;
+ md = me = nullptr;
/* Check the cursor visibility stuff */
vi = tgetstr("vi", &next);
keymap_game();
/* Hack -- Do NOT buffer stdout */
- setbuf(stdout, NULL);
+ setbuf(stdout, nullptr);
/*** Now prepare the term ***/
* <p>
* The various "warning" messages assume the existance of the "screen.w"
* window, I think, and only a few calls actually check for its existance,
- * this may be okay since "NULL" means "on top of all windows". (?) The
+ * this may be okay since "nullptr" means "on top of all windows". (?) The
* user must never be allowed to "hide" the main window, or the "menubar"
* will disappear.
* </p>
/*
* Full path to ANGBAND.INI
*/
-static concptr ini_file = NULL;
+static concptr ini_file = nullptr;
/*
* Name of application
break;
}
- quit(NULL);
+ quit(nullptr);
break;
}
case IDM_FILE_SCORE: {
} else {
screen_save();
term_clear();
- display_scores(0, MAX_HISCORES, -1, NULL);
+ display_scores(0, MAX_HISCORES, -1, nullptr);
(void)fd_close(highscore_fd);
highscore_fd = -1;
screen_load();
ofn.lpstrTitle = _(L"壁紙を選んでね。", L"Choose wall paper.");
ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- if (get_open_filename(&ofn, NULL, wallpaper_file, MAIN_WIN_MAX_PATH)) {
+ if (get_open_filename(&ofn, nullptr, wallpaper_file, MAIN_WIN_MAX_PATH)) {
change_bg_mode(bg_mode::BG_ONE, true, true);
}
break;
}
case WM_CLOSE: {
if (!game_in_progress || !current_world_ptr->character_generated) {
- quit(NULL);
+ quit(nullptr);
return 0;
}
}
case WM_QUERYENDSESSION: {
if (!game_in_progress || !current_world_ptr->character_generated) {
- quit(NULL);
+ quit(nullptr);
return 0;
}
signals_ignore_tstp();
(void)strcpy(p_ptr->died_from, _("(緊急セーブ)", "(panic save)"));
(void)save_player(p_ptr, SAVE_TYPE_CLOSE_GAME);
- quit(NULL);
+ quit(nullptr);
return 0;
}
case WM_QUIT: {
- quit(NULL);
+ quit(nullptr);
return 0;
}
case WM_COMMAND: {
break;
}
- quit(NULL);
+ quit(nullptr);
}
/*!
play_game(p_ptr, false, false);
}
- quit(NULL);
+ quit(nullptr);
return 0;
}
#endif /* WINDOWS */
static void create_console(void)
{
::AllocConsole();
- FILE *stream = NULL;
+ FILE *stream = nullptr;
freopen_s(&stream, "CONOUT$", "w+", stdout);
std::cout << "Hengband debug console" << std::endl;
}
::LocalFree(argv);
} else {
fprintf(stdout, "CommandLineToArgvW failed.");
- quit(NULL);
+ quit(nullptr);
}
}
char buf[MAIN_WIN_MAX_PATH];
BYTE wid, hgt, twid, thgt, ox, oy;
concptr name;
- concptr name_mask = NULL;
+ concptr name_mask = nullptr;
infGraph.delete_bitmap();
* @brief マップのキーに対応する値を取得する
* @param key1_type the "actions" value of "term_xtra()". see:z-term.h TERM_XTRA_xxxxx
* @param key2_val the 2nd parameter of "term_xtra()"
- * @return キーに対応する値を返す。登録されていない場合はNULLを返す。
+ * @return キーに対応する値を返す。登録されていない場合はnullptrを返す。
*/
static cfg_values *get_map_value(cfg_map *map, int key1_type, int key2_val)
{
- cfg_values *value = NULL;
+ cfg_values *value = nullptr;
auto ite = map->find(make_cfg_key(key1_type, key2_val));
if (ite != map->end()) {
value = ite->second;
* @brief 登録されている中からランダムに選択する
* @param type the "actions" value of "term_xtra()". see:z-term.h TERM_XTRA_xxxxx
* @param val the 2nd parameter of "term_xtra()"
- * @return キーに対応する値、複数のファイル名の中からからランダムに返す。登録されていない場合はNULLを返す。
+ * @return キーに対応する値、複数のファイル名の中からからランダムに返す。登録されていない場合はnullptrを返す。
*/
concptr CfgData::get_rand(int key1_type, int key2_val)
{
cfg_values *filenames = get_map_value(this->map, key1_type, key2_val);
if (!filenames) {
- return NULL;
+ return nullptr;
}
return filenames->at(Rand_external(filenames->size()));
bool has_data = false;
int index = 0;
concptr read_key;
- while ((read_key = section.key_at(index, key_buf)) != NULL) {
+ while ((read_key = section.key_at(index, key_buf)) != nullptr) {
GetPrivateProfileStringA(section.section_name, read_key, "", buf, MAIN_WIN_MAX_PATH, this->cfg_path.c_str());
if (*buf != '\0') {
cfg_values *filenames = new cfg_values();
* action-typeはaction_typeメンバで指定する。
* key_name_funcにより、action-valと.cfg内の読取対象キーの対応を取る。
* key_name_funcの引数にaction-valが渡され、対応する読取対象キーを返す。
- * key_name_func引数のaction-valは0から1,2,3...と順に呼ばれ、key_name_funcがNULLを返すまで続ける。
+ * key_name_func引数のaction-valは0から1,2,3...と順に呼ばれ、key_name_funcがnullptrを返すまで続ける。
*/
struct cfg_section {
* *action-val : the 2nd parameter of "term_xtra()"
*/
key_name_func key_at;
- //! 1つでもデータを読み込めた場合にtrueを設定する。(NULLの場合を除く)
- bool *has_data = NULL;
+ //! 1つでもデータを読み込めた場合にtrueを設定する。(nullptrの場合を除く)
+ bool *has_data = nullptr;
};
class CfgData {
(void)buf;
if (index >= MUSIC_BASIC_MAX)
- return NULL;
+ return nullptr;
return angband_music_basic_name[index];
}
static concptr dungeon_key_at(int index, char *buf)
{
if (index >= get_dungeon_count())
- return NULL;
+ return nullptr;
sprintf(buf, "dungeon%03d", index);
return buf;
static concptr quest_key_at(int index, char *buf)
{
if (index >= get_quest_count())
- return NULL;
+ return nullptr;
sprintf(buf, "quest%03d", index);
return buf;
static concptr town_key_at(int index, char *buf)
{
if (index >= get_town_count())
- return NULL;
+ return nullptr;
sprintf(buf, "town%03d", index);
return buf;
static concptr monster_key_at(int index, char *buf)
{
if (index >= get_monster_count())
- return NULL;
+ return nullptr;
sprintf(buf, "monster%04d", index);
return buf;
::waveOutUnprepareHeader(hwo, &wh, sizeof(WAVEHDR));
::waveOutClose(hwo);
hwo = NULL;
- wh.lpData = nullptr;
+ wh.lpData = NULL;
}
}
};
auto wf = reader.get_waveformat();
auto data_buffer = reader.read_data();
- if (data_buffer == nullptr)
+ if (data_buffer == NULL)
return false;
return add_sound_queue(wf, data_buffer, reader.get_data_chunk()->cksize);
(void)buf;
if (index >= SOUND_MAX)
- return NULL;
+ return nullptr;
return angband_sound_name[index];
}
#define Metadpy_set(M) Metadpy = M
/* Initialize 'M' using Display 'D' */
-#define Metadpy_init_dpy(D) Metadpy_init_2(D, cNULL)
+#define Metadpy_init_dpy(D) Metadpy_init_2(D, cnullptr)
/* Initialize 'M' using a Display named 'N' */
-#define Metadpy_init_name(N) Metadpy_init_2((Display *)(NULL), N)
+#define Metadpy_init_name(N) Metadpy_init_2((Display *)(nullptr), N)
/* Initialize 'M' using the standard Display */
#define Metadpy_init() Metadpy_init_name("")
-/* Init an infowin by giving father as an (info_win*) (or NULL), and data */
+/* Init an infowin by giving father as an (info_win*) (or nullptr), and data */
#define Infowin_init_dad(D, X, Y, W, H, B, FG, BG) Infowin_init_data(((D) ? ((D)->win) : (Window)(None)), X, Y, W, H, B, FG, BG)
/* Init a top level infowin by pos,size,bord,Colors */
* The "current" variables
*/
static metadpy *Metadpy = &metadpy_default;
-static infowin *Infowin = (infowin *)(NULL);
+static infowin *Infowin = (infowin *)(nullptr);
#ifdef USE_XIM
-static infowin *Focuswin = (infowin *)(NULL);
+static infowin *Focuswin = (infowin *)(nullptr);
#endif
-static infoclr *Infoclr = (infoclr *)(NULL);
-static infofnt *Infofnt = (infofnt *)(NULL);
+static infoclr *Infoclr = (infoclr *)(nullptr);
+static infofnt *Infofnt = (infofnt *)(nullptr);
/*
* Init the current metadpy, with various initialization stuff.
*
* Inputs:
- * dpy: The Display* to use (if NULL, create it)
- * name: The name of the Display (if NULL, the current)
+ * dpy: The Display* to use (if nullptr, create it)
+ * name: The name of the Display (if nullptr, the current)
*
* Notes:
- * If 'name' is NULL, but 'dpy' is set, extract name from dpy
- * If 'dpy' is NULL, then Create the named Display
- * If 'name' is NULL, and so is 'dpy', use current Display
+ * If 'name' is nullptr, but 'dpy' is set, extract name from dpy
+ * If 'dpy' is nullptr, then Create the named Display
+ * If 'name' is nullptr, and so is 'dpy', use current Display
*
* Return -1 if no Display given, and none can be opened.
*/
}
/*
- * A NULL terminated pair list of legal "operation names"
+ * A nullptr terminated pair list of legal "operation names"
*
* Pairs of values, first is texttual name, second is the string
* holding the decimal value that the operation corresponds to.
"+copyInverted", "12",
"+orInverted", "13",
"+nand", "14",
- NULL
+ nullptr
};
// clang-format on
valid_keysym = false;
}
} else {
- n = XLookupString(ev, buf, 125, &ks, NULL);
+ n = XLookupString(ev, buf, 125, &ks, nullptr);
}
#else
- n = XLookupString(ev, buf, 125, &ks, NULL);
+ n = XLookupString(ev, buf, 125, &ks, nullptr);
#endif
buf[n] = '\0';
XEvent xev_body, *xev = &xev_body;
- term_data *td = NULL;
- infowin *iwin = NULL;
+ term_data *td = nullptr;
+ infowin *iwin = nullptr;
int i;
{
XIM xim;
XIMCallback ximcallback;
- XIMStyles *xim_styles = NULL;
+ XIMStyles *xim_styles = nullptr;
int i;
(void)unused1;
(void)unused2;
- xim = XOpenIM(display, NULL, NULL, NULL);
+ xim = XOpenIM(display, nullptr, nullptr, nullptr);
if (!xim) {
printf("can't open IM\n");
return;
}
ximcallback.callback = IMDestroyCallback;
- ximcallback.client_data = NULL;
- XSetIMValues(xim, XNDestroyCallback, &ximcallback, NULL);
- XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL);
+ ximcallback.client_data = nullptr;
+ XSetIMValues(xim, XNDestroyCallback, &ximcallback, nullptr);
+ XGetIMValues(xim, XNQueryInputStyle, &xim_styles, nullptr);
for (i = 0; i < xim_styles->count_styles; i++) {
if (xim_styles->supported_styles[i] == (XIMPreeditNothing | XIMStatusNothing))
break;
infowin *iwin = data[i].win;
if (!iwin)
continue;
- iwin->xic = XCreateIC(xim, XNInputStyle, (XIMPreeditNothing | XIMStatusNothing), XNClientWindow, iwin->win, XNFocusWindow, iwin->win, NULL);
+ iwin->xic = XCreateIC(xim, XNInputStyle, (XIMPreeditNothing | XIMStatusNothing), XNClientWindow, iwin->win, XNFocusWindow, iwin->win, nullptr);
if (!iwin->xic) {
printf("Can't create input context for Term%d\n", i);
continue;
}
- if (XGetICValues(iwin->xic, XNFilterEvents, &iwin->xic_mask, NULL) != NULL) {
+ if (XGetICValues(iwin->xic, XNFilterEvents, &iwin->xic_mask, nullptr) != nullptr) {
iwin->xic_mask = 0L;
}
(void)xim;
(void)client_data;
- if (call_data == NULL) {
- XRegisterIMInstantiateCallback(Metadpy->dpy, NULL, NULL, NULL, IMInstantiateCallback, NULL);
+ if (call_data == nullptr) {
+ XRegisterIMInstantiateCallback(Metadpy->dpy, nullptr, nullptr, nullptr, IMInstantiateCallback, nullptr);
}
for (i = 0; i < MAX_TERM_DATA; i++) {
XSelectInput(Metadpy->dpy, iwin->win, iwin->mask);
iwin->xic_mask = 0L;
}
- iwin->xic = NULL;
+ iwin->xic = nullptr;
}
- Metadpy->xim = NULL;
+ Metadpy->xim = nullptr;
}
#endif
sprintf(buf, "ANGBAND_X11_AT_X_%d", i);
str = getenv(buf);
- x = (str != NULL) ? atoi(str) : -1;
+ x = (str != nullptr) ? atoi(str) : -1;
sprintf(buf, "ANGBAND_X11_AT_Y_%d", i);
str = getenv(buf);
- y = (str != NULL) ? atoi(str) : -1;
+ y = (str != nullptr) ? atoi(str) : -1;
sprintf(buf, "ANGBAND_X11_COLS_%d", i);
str = getenv(buf);
- val = (str != NULL) ? atoi(str) : -1;
+ val = (str != nullptr) ? atoi(str) : -1;
if (val > 0)
cols = val;
sprintf(buf, "ANGBAND_X11_ROWS_%d", i);
str = getenv(buf);
- val = (str != NULL) ? atoi(str) : -1;
+ val = (str != nullptr) ? atoi(str) : -1;
if (val > 0)
rows = val;
sprintf(buf, "ANGBAND_X11_IBOX_%d", i);
str = getenv(buf);
- val = (str != NULL) ? atoi(str) : -1;
+ val = (str != nullptr) ? atoi(str) : -1;
if (val > 0)
ox = val;
sprintf(buf, "ANGBAND_X11_IBOY_%d", i);
str = getenv(buf);
- val = (str != NULL) ? atoi(str) : -1;
+ val = (str != nullptr) ? atoi(str) : -1;
if (val > 0)
oy = val;
Infowin->oy = oy;
ch = XAllocClassHint();
- if (ch == NULL)
+ if (ch == nullptr)
quit("XAllocClassHint failed");
strcpy(res_name, name);
XSetClassHint(Metadpy->dpy, Infowin->win, ch);
sh = XAllocSizeHints();
- if (sh == NULL)
+ if (sh == nullptr)
quit("XAllocSizeHints failed");
if (i == 0) {
#ifdef USE_XIM
wh = XAllocWMHints();
- if (wh == NULL)
+ if (wh == nullptr)
quit("XAllocWMHints failed");
wh->flags = InputHint;
wh->input = True;
setlocale(LC_ALL, "");
#ifdef DEFAULT_LOCALE
- if (!strcmp(setlocale(LC_ALL, NULL), "C")) {
+ if (!strcmp(setlocale(LC_ALL, nullptr), "C")) {
printf("try default locale \"%s\"\n", DEFAULT_LOCALE);
setlocale(LC_ALL, DEFAULT_LOCALE);
}
#endif
- if (!strcmp(setlocale(LC_ALL, NULL), "C")) {
+ if (!strcmp(setlocale(LC_ALL, nullptr), "C")) {
printf("WARNING: Locale is not supported. Non-english font may be displayed incorrectly.\n");
}
p = XSetLocaleModifiers("@im=");
}
}
- XRegisterIMInstantiateCallback(Metadpy->dpy, NULL, NULL, NULL, IMInstantiateCallback, NULL);
+ XRegisterIMInstantiateCallback(Metadpy->dpy, nullptr, nullptr, nullptr, IMInstantiateCallback, nullptr);
#endif
if (arg_sound)
border BorderColor Pixel XtDefaultForeground
borderWidth BorderWidth Dimension 1
cursor Cursor Cursor None
-cursorName Cursor String NULL
-destroyCallback Callback Pointer NULL
+cursorName Cursor String nullptr
+destroyCallback Callback Pointer nullptr
height Height Dimension 0
insensitiveBorder Insensitive Pixmap Gray
mappedWhenManaged MappedWhenManaged Boolean True
{ XtNcolor14, XtCColor, XtRPixel, sizeof(Pixel), offset(color[14]), XtRString, "#00c8ff" },
{ XtNcolor15, XtCColor, XtRPixel, sizeof(Pixel), offset(color[15]), XtRString, "#ffcc80" },
- { XtNredrawCallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(redraw_callbacks), XtRCallback, (XtPointer)NULL } };
+ { XtNredrawCallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(redraw_callbacks), XtRCallback, (XtPointer)nullptr } };
#undef offset
/* superclass */ (WidgetClass)superclass,
/* class_name */ "Angband",
/* widget_size */ sizeof(AngbandRec),
- /* class_initialize */ NULL,
- /* class_part_initialize*/ NULL,
+ /* class_initialize */ nullptr,
+ /* class_part_initialize*/ nullptr,
/* class_inited */ false,
/* initialize */ (XtInitProc)Initialize,
- /* initialize_hook */ NULL,
+ /* initialize_hook */ nullptr,
/* realize */ XtInheritRealize,
- /* actions */ NULL,
+ /* actions */ nullptr,
/* num_actions */ 0,
/* resources */ resources,
/* num_resources */ XtNumber(resources),
- /* xrm_class */ NULLQUARK,
+ /* xrm_class */ nullptrQUARK,
/* compress_motion */ true,
/* compress_exposure */ XtExposeCompressMultiple,
/* compress_enterleave */ true,
/* visible_interest */ false,
/* destroy */ (XtWidgetProc)Destroy,
- /* resize */ NULL,
+ /* resize */ nullptr,
/* expose */ (XtExposeProc)Redisplay,
/* set_values */ (XtSetValuesFunc)SetValues,
- /* set_values_hook */ NULL,
+ /* set_values_hook */ nullptr,
/* set_values_almost */ XtInheritSetValuesAlmost,
- /* get_values_hook */ NULL,
- /* accept_focus */ NULL,
+ /* get_values_hook */ nullptr,
+ /* accept_focus */ nullptr,
/* version */ XtVersion,
- /* callback_private */ NULL,
- /* tm_table */ NULL,
- /* query_geometry */ NULL,
+ /* callback_private */ nullptr,
+ /* tm_table */ nullptr,
+ /* query_geometry */ nullptr,
/* display_accelerator */ XtInheritDisplayAccelerator,
- /* extension */ NULL },
+ /* extension */ nullptr },
/* Simple class fields initialization */
{ /* change_sensitive */ XtInheritChangeSensitive },
/* Angband class fields initialization */
static void Redisplay(AngbandWidget widget, XEvent *event, Region region)
{
if (XtHasCallbacks((Widget)widget, XtNredrawCallback) == XtCallbackHasSome)
- XtCallCallbacks((Widget)widget, XtNredrawCallback, NULL);
+ XtCallCallbacks((Widget)widget, XtNredrawCallback, nullptr);
}
/*
new->angband.fnt = getFont(new, new->angband.font, FALSE);
/* The font didn't exist */
- if (new->angband.fnt == NULL) {
+ if (new->angband.fnt == nullptr) {
new->angband.fnt = current->angband.fnt;
new->angband.font = current->angband.font;
XtWarning("Couldn't find the request font!");
+ 2 * new->angband.internal_border;
/* Get the new width */
- if (XtMakeResizeRequest((Widget) new, width, height, NULL, NULL) == XtGeometryNo) {
+ if (XtMakeResizeRequest((Widget) new, width, height, nullptr, nullptr) == XtGeometryNo) {
/* Not allowed */
XtWarning("Size change denied!");
} else {
{
Display *dpy = XtDisplay((Widget)widget);
char buf[256];
- XFontStruct *fnt = NULL;
+ XFontStruct *fnt = nullptr;
if (!(fnt = XLoadQueryFont(dpy, font)) && fallback) {
sprintf(buf, "Can't find the font \"%s\", trying fixed\n", font);
"Angband.recall.title: Recall", "Angband.choice.iconName: Choice", "Angband.choice.title: Choice",
"Angband.term-4.iconName: Term 4", "Angband.term-4.title: Term 4", "Angband.term-5.iconName: Term 5",
"Angband.term-5.title: Term 5", "Angband.term-6.iconName: Term 6", "Angband.term-6.title: Term 6",
- "Angband.term-7.iconName: Term 7", "Angband.term-7.title: Term 7", NULL };
+ "Angband.term-7.iconName: Term 7", "Angband.term-7.title: Term 7", nullptr };
/*
* Do a redraw
char msg[128];
/* Check for "normal" keypresses */
- n = XLookupString(ev, buf, 125, &ks, NULL);
+ n = XLookupString(ev, buf, 125, &ks, nullptr);
/* Terminate */
buf[n] = '\0';
term *t = &td->t;
/* Create the shell widget */
- parent = XtCreatePopupShell(name, topLevelShellWidgetClass, topLevel, NULL, 0);
+ parent = XtCreatePopupShell(name, topLevelShellWidgetClass, topLevel, nullptr, 0);
/* Create the interior widget */
td->widget = (AngbandWidget)XtCreateManagedWidget(name, angbandWidgetClass, parent, widget_arg, widget_arg_no);
argv[0] = argv0;
/* Terminate */
- argv[1] = NULL;
+ argv[1] = nullptr;
/* Attempt to open the local display */
dpy = XOpenDisplay("");
#ifdef USE_XAW_LANG
/* Support locale processing */
- XtSetLanguageProc(NULL, NULL, NULL);
+ XtSetLanguageProc(nullptr, nullptr, nullptr);
#endif
/* Initialize the toolkit */
- topLevel = XtAppInitialize(&appcon, "Angband", NULL, 0, &argc, argv, fallback, NULL, 0);
+ topLevel = XtAppInitialize(&appcon, "Angband", nullptr, 0, &argc, argv, fallback, nullptr, 0);
/* Initialize the windows */
for (i = 0; i < MAX_TERM_DATA; i++) {
#endif /* USE_CAP */
/* Actually abort the process */
- quit(NULL);
+ quit(nullptr);
}
/*
switch (output_all_spoilers()) {
case spoiler_output_status::SPOILER_OUTPUT_SUCCESS:
puts("Successfully created a spoiler file.");
- quit(NULL);
+ quit(nullptr);
break;
case spoiler_output_status::SPOILER_OUTPUT_FAIL_FOPEN:
quit("Cannot create spoiler file.");
bool done = false;
bool new_game = false;
int show_score = 0;
- concptr mstr = NULL;
+ concptr mstr = nullptr;
bool args = true;
/* Save the "program name" XXX XXX XXX */
/* Hack -- Forget standard args */
if (args) {
argc = 1;
- argv[1] = NULL;
+ argv[1] = nullptr;
}
/* Process the player name */
play_game(p_ptr, new_game, browsing_movie);
/* Quit */
- quit(NULL);
+ quit(nullptr);
/* Exit */
return (0);
strcpy(libtail, "xtra");
ANGBAND_DIR_XTRA = string_make(libpath);
- time_t now = time(NULL);
+ time_t now = time(nullptr);
struct tm *t = localtime(&now);
char tmp[128];
strftime(tmp, sizeof(tmp), "%Y-%m-%d-%H-%M-%S", t);
#endif
msg_format(_("レコード %d は '%s' エラーがあります。", "Record %d contains a '%s' error."), error_idx, oops);
msg_format(_("構文 '%s'。", "Parsing '%s'."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
quit(format(_("'%s.txt'ファイルにエラー", "Error in '%s.txt' file."), filename));
}
errr init_k_info()
{
init_header(&k_head, max_k_idx);
- return init_info("k_info", k_head, k_info, parse_k_info, NULL);
+ return init_info("k_info", k_head, k_info, parse_k_info, nullptr);
}
/*!
errr init_a_info()
{
init_header(&a_head, max_a_idx);
- return init_info("a_info", a_head, a_info, parse_a_info, NULL);
+ return init_info("a_info", a_head, a_info, parse_a_info, nullptr);
}
/*!
errr init_e_info()
{
init_header(&e_head, max_e_idx);
- return init_info("e_info", e_head, e_info, parse_e_info, NULL);
+ return init_info("e_info", e_head, e_info, parse_e_info, nullptr);
}
/*!
errr init_r_info()
{
init_header(&r_head, max_r_idx);
- return init_info("r_info", r_head, r_info, parse_r_info, NULL);
+ return init_info("r_info", r_head, r_info, parse_r_info, nullptr);
}
/*!
errr init_d_info()
{
init_header(&d_head, current_world_ptr->max_d_idx);
- return init_info("d_info", d_head, d_info, parse_d_info, NULL);
+ return init_info("d_info", d_head, d_info, parse_d_info, nullptr);
}
/*!
errr init_v_info()
{
init_header(&v_head, max_v_idx);
- return init_info("v_info", v_head, v_info, parse_v_info, NULL);
+ return init_info("v_info", v_head, v_info, parse_v_info, nullptr);
}
/*!
errr init_s_info()
{
init_header(&s_head, MAX_CLASS);
- return init_info("s_info", s_head, s_info, parse_s_info, NULL);
+ return init_info("s_info", s_head, s_info, parse_s_info, nullptr);
}
/*!
errr init_m_info()
{
init_header(&m_head, MAX_CLASS);
- return init_info("m_info", m_head, m_info, parse_m_info, NULL);
+ return init_info("m_info", m_head, m_info, parse_m_info, nullptr);
}
* エラーメッセージの名称定義 / Standard error message text
*/
concptr err_str[PARSE_ERROR_MAX] = {
- NULL,
+ nullptr,
_("文法エラー", "parse error"),
_("古いファイル", "obsolete file"),
_("記録ヘッダがない", "missing record header"),
void clear_scene_target_monster()
{
- scene_target_monster.ap_r_ptr = NULL;
+ scene_target_monster.ap_r_ptr = nullptr;
}
static GAME_TURN get_game_turn()
*/
void set_temp_mute_scene_monster(int sec)
{
- scene_target_monster.mute_until = (uint32_t)time(NULL) + sec;
+ scene_target_monster.mute_until = (uint32_t)time(nullptr) + sec;
}
/*!
*/
inline static bool can_mute_scene_monster()
{
- return (scene_target_monster.mute_until > time(NULL));
+ return (scene_target_monster.mute_until > time(nullptr));
}
/*!
prt("", 11, 0);
player_ptr->au += 1000000L;
msg_print(_("スペースキーで続行", "Press the space bar to continue"));
- msg_print(NULL);
+ msg_print(nullptr);
player_ptr->arena_number++;
return true;
}
if (player_ptr->arena_number >= MAX_ARENA_MONS + 2) {
msg_print(_("あなたはアリーナに入り、しばらくの間栄光にひたった。", "You enter the arena briefly and bask in your glory."));
- msg_print(NULL);
+ msg_print(nullptr);
return true;
}
msg_print(_("君のために最強の挑戦者を用意しておいた。", "The strongest challenger is waiting for you."));
- msg_print(NULL);
+ msg_print(nullptr);
if (!get_check(_("挑戦するかね?", "Do you fight? "))) {
msg_print(_("残念だ。", "We are disappointed."));
return true;
}
msg_print(_("死ぬがよい。", "Die, maggots."));
- msg_print(NULL);
+ msg_print(nullptr);
player_ptr->exit_bldg = false;
reset_tim_flags(player_ptr);
if (player_ptr->riding && (player_ptr->pclass != CLASS_BEASTMASTER) && (player_ptr->pclass != CLASS_CAVALRY)) {
msg_print(_("ペットに乗ったままではアリーナへ入れさせてもらえなかった。", "You don't have permission to enter with pet."));
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
screen_save();
/* Peruse the on_defeat_arena_monster help file */
- (void)show_file(player_ptr, true, _("arena_j.txt", "arena.txt"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("arena_j.txt", "arena.txt"), nullptr, 0, 0);
screen_load();
break;
}
MONRACE_IDX r_idx;
int j;
while (true) {
- get_mon_num_prep(player_ptr, monster_can_entry_arena, NULL);
+ get_mon_num_prep(player_ptr, monster_can_entry_arena, nullptr);
r_idx = get_mon_num(player_ptr, 0, mon_level, GMN_ARENA);
if (!r_idx)
continue;
/* No money */
if (player_ptr->au <= 1) {
msg_print(_("おい!おまえ一文なしじゃないか!こっから出ていけ!", "Hey! You don't have gold - get out of here!"));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return false;
}
if (wager > player_ptr->au) {
msg_print(_("おい!金が足りないじゃないか!出ていけ!", "Hey! You don't have the gold - get out of here!"));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return false;
} else if (wager > maxbet) {
wager = 1;
}
- msg_print(NULL);
+ msg_print(nullptr);
battle_odds = MAX(wager + 1, wager * battle_odds / 100);
kakekin = wager;
player_ptr->au -= wager;
return true;
msg_print(_("賞金を得られそうなものは持っていなかった。", "You have nothing."));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
if (player_ptr->au < cost) {
describe_flavor(player_ptr, basenm, o_ptr, OD_NAME_ONLY);
msg_format(_("%sを修復するだけのゴールドがありません!", "You do not have the gold to repair %s!"), basenm);
- msg_print(NULL);
+ msg_print(nullptr);
return 0;
}
#else
msg_format("Repaired into %s for %d gold.", basenm, cost);
#endif
- msg_print(NULL);
+ msg_print(nullptr);
o_ptr->ident &= ~(IDENT_BROKEN);
o_ptr->discount = 99;
if (total + cost > customer_ptr->au) {
msg_print(_("お金が足りません!", "You don't have enough money!"));
- msg_print(NULL);
+ msg_print(nullptr);
continue;
}
if (i2_ptr == o_ptr[0] || (n == 2 && i2_ptr == o_ptr[1])) {
msg_print(_("表示中の武器は選べません!", "Select a different weapon than those displayed."));
- msg_print(NULL);
+ msg_print(nullptr);
continue;
}
clear_bldg(4, 18);
msg_print(_("放棄しました。", "You gave up."));
- msg_print(NULL);
+ msg_print(nullptr);
record_quest_final_status(q_ptr, player_ptr->lev, QUEST_STATUS_FAILED);
}
char tmp_str[MAX_NLEN];
if (!o_ptr->is_known()) {
msg_format(_("充填する前に鑑定されている必要があります!", "The item must be identified first!"));
- msg_print(NULL);
+ msg_print(nullptr);
if ((player_ptr->au >= 50) && get_check(_("$50で鑑定しますか? ", "Identify for 50 gold? ")))
if (!total_cost) {
msg_print(_("充填する必要はありません。", "No need to recharge."));
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
if (player_ptr->au < total_cost) {
msg_format(_("すべてのアイテムを再充填するには$%d 必要です!", "You need %d gold to recharge all items!"), total_cost);
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
}
msg_format(_("$%d で再充填しました。", "You pay %d gold."), total_cost);
- msg_print(NULL);
+ msg_print(nullptr);
player_ptr->update |= (PU_COMBINE | PU_REORDER);
player_ptr->window_flags |= (PW_INVEN);
player_ptr->au -= total_cost;
screen_save();
if (cmd == BACT_GAMBLE_RULES) {
- (void)show_file(player_ptr, true, _("jgambling.txt", "gambling.txt"), NULL, 0, 0);
+ (void)show_file(player_ptr, true, _("jgambling.txt", "gambling.txt"), nullptr, 0, 0);
screen_load();
return true;
}
if (player_ptr->au < 1) {
msg_print(_("おい!おまえ一文なしじゃないか!こっから出ていけ!", "Hey! You don't have gold - get out of here!"));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return false;
}
* the int16_t value returned by get_quantity().
*/
if (!get_string(tmp_str, out_val, 32)) {
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return true;
}
wager = atol(p);
if (wager > player_ptr->au) {
msg_print(_("おい!金が足りないじゃないか!出ていけ!", "Hey! You don't have the gold - get out of here!"));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return false;
} else if (wager > maxbet) {
msg_print(_("OK、1ゴールドからはじめよう。", "Ok, we'll start with 1 gold."));
wager = 1;
}
- msg_print(NULL);
+ msg_print(nullptr);
win = 0;
odds = 0;
oldgold = player_ptr->au;
do {
msg_print(_("なにかキーを押すともう一回振ります。", "Hit any key to roll again"));
- msg_print(NULL);
+ msg_print(nullptr);
roll1 = randint1(6);
roll2 = randint1(6);
roll3 = roll1 + roll2;
msg_print(_("OK、9番にしとくぜ。", "Ok, I'll put you down for 9."));
choice = 9;
}
- msg_print(NULL);
+ msg_print(nullptr);
roll1 = randint0(10);
sprintf(tmp_str, _("ルーレットは回り、止まった。勝者は %d番だ。", "The wheel spins to a stop and the winner is %d"), roll1);
prt(tmp_str, 13, 3);
prt("", 18, 37);
if (wager > player_ptr->au) {
msg_print(_("おい!金が足りないじゃないか!ここから出て行け!", "Hey! You don't have the gold - get out of here!"));
- msg_print(NULL);
+ msg_print(nullptr);
/* Get out here */
break;
chg_virtue(player_ptr, V_CHANCE, -3);
}
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return true;
}
* @param dam ダメージ量
* @param dead 目標となったモンスターの死亡状態を返す参照ポインタ
* @param fear 目標となったモンスターの恐慌状態を返す参照ポインタ
- * @param note 目標モンスターが死亡した場合の特別メッセージ(NULLならば標準表示を行う)
+ * @param note 目標モンスターが死亡した場合の特別メッセージ(nullptrならば標準表示を行う)
* @param who 打撃を行ったモンスターの参照ID
* @todo 打撃が当たった時の後処理 (爆発持ちのモンスターを爆発させる等)なので、関数名を変更する必要あり
*/
ms_ptr->dam = 0;
floor_type *floor_ptr = target_ptr->current_floor_ptr;
ms_ptr->m_ptr = &floor_ptr->m_list[m_idx];
- ms_ptr->t_ptr = NULL;
+ ms_ptr->t_ptr = nullptr;
ms_ptr->r_ptr = &r_info[ms_ptr->m_ptr->r_idx];
ms_ptr->see_m = is_seen(target_ptr, ms_ptr->m_ptr);
ms_ptr->maneable = player_has_los_bold(target_ptr, ms_ptr->m_ptr->fy, ms_ptr->m_ptr->fx);
static void describe_silly_melee(mam_type *mam_ptr)
{
char temp[MAX_NLEN];
- if ((mam_ptr->act == NULL) || !mam_ptr->see_either)
+ if ((mam_ptr->act == nullptr) || !mam_ptr->see_either)
return;
#ifdef JP
x += ddx[dir];
if (player_can_enter(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat, 0)
&& !is_trap(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat) && !caster_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
- msg_print(NULL);
+ msg_print(nullptr);
(void)move_player_effect(caster_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
}
static int interpret_realm_select_key(int cs, int n, char c)
{
if (c == 'Q')
- quit(NULL);
+ quit(nullptr);
if (c == '8')
if (cs >= 5)
set_oppose_fire(caster_ptr, (TIME_EFFECT)plev, false);
break;
case NYUSIN:
- return rush_attack(caster_ptr, NULL);
+ return rush_attack(caster_ptr, nullptr);
case SYURIKEN_SPREADING: {
for (int i = 0; i < 8; i++) {
OBJECT_IDX slot;
}
msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
POSITION x = creature_ptr->x + ddx[dir];
if (!creature_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
- msg_print(NULL);
+ msg_print(nullptr);
return true;
}
static void describe_silly_attacks(monap_type *monap_ptr)
{
- if (monap_ptr->act == NULL)
+ if (monap_ptr->act == nullptr)
return;
if (monap_ptr->do_silly_attack) {
sound(SOUND_EXPLODE);
MonsterDamageProcessor mdp(target_ptr, monap_ptr->m_idx, monap_ptr->m_ptr->hp + 1, &monap_ptr->fear);
- if (mdp.mon_take_hit(NULL)) {
+ if (mdp.mon_take_hit(nullptr)) {
monap_ptr->blinked = false;
monap_ptr->alive = false;
}
for (int ap_cnt = 0; ap_cnt < MAX_NUM_BLOWS; ap_cnt++) {
monap_ptr->obvious = false;
monap_ptr->damage = 0;
- monap_ptr->act = NULL;
+ monap_ptr->act = nullptr;
monap_ptr->effect = r_ptr->blow[ap_cnt].effect;
monap_ptr->method = r_ptr->blow[ap_cnt].method;
monap_ptr->d_dice = r_ptr->blow[ap_cnt].d_dice;
monap_ptr->m_idx = m_idx;
floor_type *floor_ptr = target_ptr->current_floor_ptr;
monap_ptr->m_ptr = &floor_ptr->m_list[m_idx];
- monap_ptr->act = NULL;
+ monap_ptr->act = nullptr;
monap_ptr->touched = false;
monap_ptr->explode = false;
monap_ptr->do_silly_attack = one_in_(2) && target_ptr->image;
return false;
if (r_ptr->flags7 & RF7_FRIENDLY) {
- if (monster_has_hostile_align(player_ptr, NULL, 1, -1, z_ptr))
+ if (monster_has_hostile_align(player_ptr, nullptr, 1, -1, z_ptr))
return false;
}
floor_type *floor_ptr = player_ptr->current_floor_ptr;
MONRACE_IDX r_idx = 0;
int attempts = 1000;
- monster_race *r_ptr = NULL;
+ monster_race *r_ptr = nullptr;
while (--attempts) {
r_idx = get_mon_num(player_ptr, 0, floor_ptr->monster_level, 0);
if (!r_idx)
if (monster_has_hostile_align(player_ptr, m_ptr, 0, 0, r_ptr))
return false;
} else if (summon_specific_who < 0) {
- if (monster_has_hostile_align(player_ptr, NULL, 10, -10, r_ptr) && !one_in_(ABS(player_ptr->alignment) / 2 + 1))
+ if (monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr) && !one_in_(ABS(player_ptr->alignment) / 2 + 1))
return false;
}
return true;
if ((summon_specific_who < 0) && ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL))
- && monster_has_hostile_align(player_ptr, NULL, 10, -10, r_ptr))
+ && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr))
return false;
if ((r_ptr->flags7 & RF7_CHAMELEON) && d_info[player_ptr->dungeon_idx].flags.has(DF::CHAMELEON))
if (none_bits(r_info[r_idx].flags7, RF7_TANUKI))
return r_idx;
- get_mon_num_prep(player_ptr, monster_hook_tanuki, NULL);
+ get_mon_num_prep(player_ptr, monster_hook_tanuki, nullptr);
int attempts = 1000;
DEPTH min = MIN(floor_ptr->base_level - 5, 50);
while (--attempts) {
color = _("白く", "white");
o_ptr = choose_warning_item(player_ptr);
- if (o_ptr != NULL) {
+ if (o_ptr != nullptr) {
describe_flavor(player_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
msg_format(_("%sは%s光った。", "%s glows %s."), o_name, color);
} else {
if (any_bits(mode, PM_FORCE_PET)) {
set_pet(player_ptr, m_ptr);
} else if (((who == 0) && any_bits(r_ptr->flags7, RF7_FRIENDLY)) || is_friendly_idx(player_ptr, who) || any_bits(mode, PM_FORCE_FRIENDLY)) {
- if (!monster_has_hostile_align(player_ptr, NULL, 0, -1, r_ptr) && !player_ptr->current_floor_ptr->inside_arena)
+ if (!monster_has_hostile_align(player_ptr, nullptr, 0, -1, r_ptr) && !player_ptr->current_floor_ptr->inside_arena)
set_friendly(m_ptr);
}
return;
ARTIFACT_IDX a_idx = 0;
- artifact_type *a_ptr = NULL;
+ artifact_type *a_ptr = nullptr;
do {
switch (randint0(3)) {
case 0:
* @brief 死亡時ドロップとしてランダムアーティファクトのみを生成する
* @param player_ptr プレーヤーへの参照ポインタ
* @param md_ptr モンスター撃破構造体への参照ポインタ
- * @param object_hook_pf アイテム種別指定、特になければNULLで良い
+ * @param object_hook_pf アイテム種別指定、特になければnullptrで良い
* @return なし
* @details
* 最初のアイテム生成でいきなり☆が生成された場合を除き、中途半端な☆ (例:呪われている)は生成しない.
{
object_type forge;
object_type *q_ptr = &forge;
- auto is_object_hook_null = object_hook_pf == NULL;
+ auto is_object_hook_null = object_hook_pf == nullptr;
auto drop_mode = md_ptr->mo_mode | AM_NO_FIXED_ART;
while (true) {
// make_object() の中でアイテム種別をキャンセルしている
*/
void vault_prep_clone(player_type *player_ptr)
{
- get_mon_num_prep(player_ptr, vault_aux_simple, NULL);
+ get_mon_num_prep(player_ptr, vault_aux_simple, nullptr);
vault_aux_race = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, 0);
- get_mon_num_prep(player_ptr, NULL, NULL);
+ get_mon_num_prep(player_ptr, nullptr, nullptr);
}
/*!
*/
void vault_prep_symbol(player_type *player_ptr)
{
- get_mon_num_prep(player_ptr, vault_aux_simple, NULL);
+ get_mon_num_prep(player_ptr, vault_aux_simple, nullptr);
MONRACE_IDX r_idx = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, 0);
- get_mon_num_prep(player_ptr, NULL, NULL);
+ get_mon_num_prep(player_ptr, nullptr, nullptr);
vault_aux_char = r_info[r_idx].d_char;
}
* @param r_ptr モンスター種族情報の構造体参照ポインタ
* @return プレイヤーに敵意を持つならばTRUEを返す
* @details
- * If user is player, m_ptr == NULL.
+ * If user is player, m_ptr == nullptr.
*/
bool monster_has_hostile_align(player_type *player_ptr, monster_type *m_ptr, int pa_good, int pa_evil, monster_race *r_ptr)
{
monster_race *r_ptr = &r_info[m_ptr->ap_r_idx];
- if (angband_strchr("/|\\()[]=$,.!?&`#%<>+~", r_ptr->d_char) == NULL)
+ if (angband_strchr("/|\\()[]=$,.!?&`#%<>+~", r_ptr->d_char) == nullptr)
return false;
if (none_bits(r_ptr->flags1, RF1_NEVER_MOVE) && !monster_csleep_remaining(m_ptr)) {
chameleon_change_m_idx = m_idx;
if (old_unique)
- get_mon_num_prep(player_ptr, monster_hook_chameleon_lord, NULL);
+ get_mon_num_prep(player_ptr, monster_hook_chameleon_lord, nullptr);
else
- get_mon_num_prep(player_ptr, monster_hook_chameleon, NULL);
+ get_mon_num_prep(player_ptr, monster_hook_chameleon, nullptr);
if (old_unique)
level = r_info[MON_CHAMELEON_K].level;
gets_angry = true;
if (is_pet(m_ptr)
- && ((((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(target_ptr, NULL, 10, -10, r_ptr))
+ && ((((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(target_ptr, nullptr, 10, -10, r_ptr))
|| (r_ptr->flagsr & RFR_RES_ALL)))
gets_angry = true;
}
msg_format(mes, m_name);
- msg_print(NULL);
+ msg_print(nullptr);
}
current_world_ptr->timewalk_m_idx = hack_m_idx;
}
msg_print(mes);
- msg_print(NULL);
+ msg_print(nullptr);
}
handle_stuff(target_ptr);
/*!
* @brief モンスター生成テーブルの重みを指定条件に従って変更する。
* @param player_ptr
- * @param hook1 生成制約関数1 (NULL の場合、制約なし)
- * @param hook2 生成制約関数2 (NULL の場合、制約なし)
+ * @param hook1 生成制約関数1 (nullptr の場合、制約なし)
+ * @param hook2 生成制約関数2 (nullptr の場合、制約なし)
* @param restrict_to_dungeon 現在プレイヤーのいるダンジョンの制約を適用するか
* @return 常に 0
*
/*!
* @brief モンスター生成テーブルの重み修正
* @param player_ptr
- * @param hook1 生成制約関数1 (NULL の場合、制約なし)
- * @param hook2 生成制約関数2 (NULL の場合、制約なし)
+ * @param hook1 生成制約関数1 (nullptr の場合、制約なし)
+ * @param hook2 生成制約関数2 (nullptr の場合、制約なし)
* @return 常に 0
*
* get_mon_num() を呼ぶ前に get_mon_num_prep() 系関数のいずれかを呼ぶこと。
*/
errr get_mon_num_prep_bounty(player_type *player_ptr)
{
- return do_get_mon_num_prep(player_ptr, NULL, NULL, false);
+ return do_get_mon_num_prep(player_ptr, nullptr, nullptr, false);
}
{
int hp = target_ptr->chp;
int shoot_dd = 1, shoot_ds = 1, shoot_base = 0;
- object_type *o_ptr = NULL;
+ object_type *o_ptr = nullptr;
if (has_melee_weapon(target_ptr, INVEN_MAIN_HAND))
o_ptr = &target_ptr->inventory_list[INVEN_MAIN_HAND];
else
msg_format(_("%^sが魔法で幽鬼戦隊を召喚した!", "%^s magically summons rangers of Nazgul!"), m_name);
- msg_print(NULL);
+ msg_print(nullptr);
int count = 0;
for (int k = 0; k < 30; k++) {
else
msg_format(_("「同じく%d号、ナズグル・ブラック!」", "Another one says 'Number %d, Nazgul-Black!'"), count);
- msg_print(NULL);
+ msg_print(nullptr);
}
msg_format(_("「%d人そろって、リングレンジャー!」", "They say 'The %d meets! We are the Ring-Ranger!'."), count);
- msg_print(NULL);
+ msg_print(nullptr);
return count;
}
if (!has_resist_nexus(creature_ptr) && creature_ptr->muta.has_not(MUTA::VTELEPORT) && !creature_ptr->anti_tele) {
disturb(creature_ptr, false, true);
msg_print(_("あなたの位置は突然ひじょうに不確定になった...", "Your position suddenly seems very uncertain..."));
- msg_print(NULL);
+ msg_print(nullptr);
teleport_player(creature_ptr, 40, TELEPORT_PASSIVE);
}
}
if (!has_resist_chaos(creature_ptr)) {
if (one_in_(20)) {
- msg_print(NULL);
+ msg_print(nullptr);
if (one_in_(3))
lose_all_info(creature_ptr);
else
if (creature_ptr->muta.has(MUTA::FLATULENT) && (randint1(3000) == 13)) {
disturb(creature_ptr, false, true);
msg_print(_("ブゥーーッ!おっと。", "BRRAAAP! Oops."));
- msg_print(NULL);
+ msg_print(nullptr);
fire_ball(creature_ptr, GF_POIS, 0, creature_ptr->lev, 3);
}
"Magical energy flows through you! You must release it!"));
flush();
- msg_print(NULL);
+ msg_print(nullptr);
(void)get_hack_dir(creature_ptr, &dire);
fire_ball(creature_ptr, GF_MANA, dire, creature_ptr->lev * 2, 3);
}
}
}
- msg_print(NULL);
+ msg_print(nullptr);
}
if (creature_ptr->muta.has(MUTA::BANISH_ALL) && one_in_(9000)) {
msg_print(_("店の主人が丘に向かって走っている!", "You see one of the shopkeepers running for the hills!"));
store_shuffle(creature_ptr, n);
}
- msg_print(NULL);
+ msg_print(nullptr);
}
if (creature_ptr->muta.has(MUTA::EAT_LIGHT) && one_in_(3000)) {
object_type *o_ptr;
msg_print(_("影につつまれた。", "A shadow passes over you."));
- msg_print(NULL);
+ msg_print(nullptr);
if ((creature_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x].info & (CAVE_GLOW | CAVE_MNDK)) == CAVE_GLOW) {
hp_player(creature_ptr, 10);
if (creature_ptr->muta.has(MUTA::RAW_CHAOS) && !creature_ptr->anti_magic && one_in_(8000)) {
disturb(creature_ptr, false, true);
msg_print(_("周りの空間が歪んでいる気がする!", "You feel the world warping around you!"));
- msg_print(NULL);
+ msg_print(nullptr);
fire_ball(creature_ptr, GF_CHAOS, 0, creature_ptr->lev, 8);
}
if (creature_ptr->muta.has(MUTA::WRAITH) && !creature_ptr->anti_magic && one_in_(3000)) {
disturb(creature_ptr, false, true);
msg_print(_("非物質化した!", "You feel insubstantial!"));
- msg_print(NULL);
+ msg_print(nullptr);
set_wraith_form(creature_ptr, randint1(creature_ptr->lev / 2) + (creature_ptr->lev / 2), false);
}
if (!sustained) {
disturb(creature_ptr, false, true);
msg_print(_("自分が衰弱していくのが分かる!", "You can feel yourself wasting away!"));
- msg_print(NULL);
+ msg_print(nullptr);
(void)dec_stat(creature_ptr, which_stat, randint1(6) + 6, one_in_(3));
}
}
if (creature_ptr->muta.has(MUTA::NAUSEA) && !creature_ptr->slow_digest && one_in_(9000)) {
disturb(creature_ptr, false, true);
msg_print(_("胃が痙攣し、食事を失った!", "Your stomach roils, and you lose your lunch!"));
- msg_print(NULL);
+ msg_print(nullptr);
set_food(creature_ptr, PY_FOOD_WEAK);
if (music_singing_any(creature_ptr))
stop_singing(creature_ptr);
if (creature_ptr->muta.has(MUTA::INVULN) && !creature_ptr->anti_magic && one_in_(5000)) {
disturb(creature_ptr, false, true);
msg_print(_("無敵な気がする!", "You feel invincible!"));
- msg_print(NULL);
+ msg_print(nullptr);
(void)set_invuln(creature_ptr, randint1(8) + 8, false);
}
bool drop_weapons(player_type *creature_ptr)
{
INVENTORY_IDX slot = 0;
- object_type *o_ptr = NULL;
+ object_type *o_ptr = nullptr;
if (creature_ptr->wild_mode)
return false;
- msg_print(NULL);
+ msg_print(nullptr);
if (has_melee_weapon(creature_ptr, INVEN_MAIN_HAND)) {
slot = INVEN_MAIN_HAND;
o_ptr = &creature_ptr->inventory_list[INVEN_MAIN_HAND];
{ "ELBERETH", ACT_ELBERETH, 10, 30000, { 75, 0 }, _("エルベレスの結界", "Rune of Elbereth") },
{ "DETECT_TREASURE", ACT_DETECT_TREASURE, 10, 3000, {35, 0}, _("財宝感知", "detect treasure") },
- { NULL, 0, 0, 0, { 0, 0 }, "" },
+ { nullptr, 0, 0, 0, { 0, 0 }, "" },
};
match = RF9_DROP_CORPSE;
}
- get_mon_num_prep(owner_ptr, item_monster_okay, NULL);
+ get_mon_num_prep(owner_ptr, item_monster_okay, nullptr);
while (true) {
i = get_mon_num(owner_ptr, 0, floor_ptr->dun_level, 0);
r_ptr = &r_info[i];
{ TR_RES_NETHER, GF_NETHER, _("地獄", "nether") },
{ TR_RES_CHAOS, GF_CHAOS, _("カオス", "chaos") },
{ TR_RES_DISEN, GF_DISENCHANT, _("劣化", "disenchantment") },
- { TR_STR, 0, NULL }
+ { TR_STR, 0, nullptr }
};
msg_print(_("恐ろしい光景が頭に浮かんできた。", "A horrible vision enters your mind."));
/* Have some nightmares */
- sanity_blast(creature_ptr, NULL, false);
+ sanity_blast(creature_ptr, nullptr, false);
}
if (set_paralyzed(creature_ptr, creature_ptr->paralyzed + randint0(4) + 4)) {
ident = true;
msg_print(_("更なる啓蒙を感じた...", "You begin to feel more enlightened..."));
chg_virtue(creature_ptr, V_KNOWLEDGE, 1);
chg_virtue(creature_ptr, V_ENLIGHTEN, 2);
- msg_print(NULL);
+ msg_print(nullptr);
wiz_lite(creature_ptr, false);
(void)do_inc_stat(creature_ptr, A_INT);
(void)do_inc_stat(creature_ptr, A_WIS);
case SV_POTION_SELF_KNOWLEDGE:
msg_print(_("自分自身のことが少しは分かった気がする...", "You begin to know yourself a little better..."));
- msg_print(NULL);
+ msg_print(nullptr);
self_knowledge(creature_ptr);
ident = true;
break;
case SV_POTION_TSUYOSHI:
msg_print(_("「オクレ兄さん!」", "Brother OKURE!"));
- msg_print(NULL);
+ msg_print(nullptr);
creature_ptr->tsuyoshi = 1;
(void)set_tsuyoshi(creature_ptr, 0, true);
if (!has_resist_chaos(creature_ptr)) {
}
case SV_SCROLL_RUMOR: {
msg_print(_("巻物にはメッセージが書かれている:", "There is message on the scroll. It says:"));
- msg_print(NULL);
+ msg_print(nullptr);
display_rumor(creature_ptr, true);
- msg_print(NULL);
+ msg_print(nullptr);
msg_print(_("巻物は煙を立てて消え去った!", "The scroll disappears in a puff of smoke!"));
ident = true;
break;
used_up = false;
} else if (o_ptr->name1 == ART_POWER) {
msg_print(_("「一つの指輪は全てを統べ、", "'One Ring to rule them all, "));
- msg_print(NULL);
+ msg_print(nullptr);
msg_print(_("一つの指輪は全てを見つけ、", "One Ring to find them, "));
- msg_print(NULL);
+ msg_print(nullptr);
msg_print(_("一つの指輪は全てを捕らえて", "One Ring to bring them all "));
- msg_print(NULL);
+ msg_print(nullptr);
msg_print(_("暗闇の中に繋ぎとめる。」", "and in the darkness bind them.'"));
used_up = false;
} else if (o_ptr->tval == TV_PARCHMENT) {
if (this->creature_ptr->current_floor_ptr->inside_arena && !this->boomerang && (this->o_ptr->tval != TV_SPIKE)) {
msg_print(_("アリーナではアイテムを使えない!", "You're in the arena now. This is hand-to-hand!"));
- msg_print(NULL);
+ msg_print(nullptr);
return false;
}
/*!
* @brief オブジェクトの発動効果名称を返す(メインルーチン) /
- * Determine the "Activation" (if any) for an artifact Return a string, or NULL for "no activation"
+ * Determine the "Activation" (if any) for an artifact Return a string, or nullptr for "no activation"
* @param o_ptr 名称を取得する元のオブジェクト構造体参照ポインタ
* @return concptr 発動名称を返す文字列ポインタ
*/
/* Paranoia -- Player has no warning ability */
if (!creature_ptr->warning)
- return NULL;
+ return nullptr;
/* Search Inventory */
int number = 0;
}
/* Choice one of them */
- return number ? &creature_ptr->inventory_list[choices[randint0(number)]] : NULL;
+ return number ? &creature_ptr->inventory_list[choices[randint0(number)]] : nullptr;
}
/*!
return true;
object_type *o_ptr = choose_warning_item(creature_ptr);
- if (o_ptr != NULL)
+ if (o_ptr != nullptr)
describe_flavor(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
else
strcpy(o_name, _("体", "body")); /* Warning ability without item */
}
/*!
- * @brief 重度擬似鑑定の判断処理 / Return a "feeling" (or NULL) about an item. Method 1 (Heavy).
+ * @brief 重度擬似鑑定の判断処理 / Return a "feeling" (or nullptr) about an item. Method 1 (Heavy).
* @param o_ptr 擬似鑑定を行うオブジェクトの参照ポインタ。
* @return 擬似鑑定結果のIDを返す。
*/
}
/*!
- * @brief 軽度擬似鑑定の判断処理 / Return a "feeling" (or NULL) about an item. Method 2 (Light).
+ * @brief 軽度擬似鑑定の判断処理 / Return a "feeling" (or nullptr) about an item. Method 2 (Light).
* @param o_ptr 擬似鑑定を行うオブジェクトの参照ポインタ。
* @return 擬似鑑定結果のIDを返す。
*/
static void attack_probe(player_type *attacker_ptr, player_attack_type *pa_ptr)
{
msg_print(_("刃が敵を調査した...", "The blade probed your enemy..."));
- msg_print(NULL);
+ msg_print(nullptr);
char buf[256];
probed_monster_info(buf, attacker_ptr, pa_ptr->m_ptr, pa_ptr->r_ptr);
msg_print(buf);
- msg_print(NULL);
+ msg_print(nullptr);
(void)lore_do_probe(attacker_ptr, pa_ptr->r_idx);
}
static bool check_fear_death(player_type *attacker_ptr, player_attack_type *pa_ptr, const int num, const bool is_lowlevel)
{
MonsterDamageProcessor mdp(attacker_ptr, pa_ptr->m_idx, pa_ptr->attack_damage, pa_ptr->fear);
- if (!mdp.mon_take_hit(NULL))
+ if (!mdp.mon_take_hit(nullptr))
return false;
*(pa_ptr->mdeath) = true;
/*!
* @brief ELDRITCH_HORRORによるプレイヤーの精神破壊処理
- * @param m_ptr ELDRITCH_HORRORを引き起こしたモンスターの参照ポインタ。薬・罠・魔法の影響ならNULL
+ * @param m_ptr ELDRITCH_HORRORを引き起こしたモンスターの参照ポインタ。薬・罠・魔法の影響ならnullptr
* @param necro 暗黒領域魔法の詠唱失敗によるものならばTRUEを返す
*/
void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro)
monster_race *r_ptr;
GAME_TEXT m_name[MAX_NLEN];
concptr desc;
- get_mon_num_prep(creature_ptr, get_nightmare, NULL);
+ get_mon_num_prep(creature_ptr, get_nightmare, nullptr);
r_ptr = &r_info[get_mon_num(creature_ptr, 0, MAX_DEPTH, 0)];
power = r_ptr->level + 10;
desc = r_ptr->name.c_str();
- get_mon_num_prep(creature_ptr, NULL, NULL);
+ get_mon_num_prep(creature_ptr, nullptr, nullptr);
#ifdef JP
#else
char wrath_reason[32] = "";
int nasty_chance = 6;
int type, effect;
- concptr reward = NULL;
+ concptr reward = nullptr;
GAME_TEXT o_name[MAX_NLEN];
int count = 0;
*/
static bool acid_minus_ac(player_type *creature_ptr)
{
- object_type *o_ptr = NULL;
+ object_type *o_ptr = nullptr;
switch (randint1(7)) {
case 1:
o_ptr = &creature_ptr->inventory_list[INVEN_MAIN_HAND];
break;
}
- if ((o_ptr == NULL) || (o_ptr->k_idx == 0) || !o_ptr->is_armour())
+ if ((o_ptr == nullptr) || (o_ptr->k_idx == 0) || !o_ptr->is_armour())
return false;
GAME_TEXT o_name[MAX_NLEN];
if (creature_ptr->current_floor_ptr->inside_arena) {
concptr m_name = r_info[arena_info[creature_ptr->arena_number].r_idx].name.c_str();
msg_format(_("あなたは%sの前に敗れ去った。", "You are beaten by %s."), m_name);
- msg_print(NULL);
+ msg_print(nullptr);
if (record_arena)
exe_write_diary(creature_ptr, DIARY_ARENA, -1 - creature_ptr->arena_number, m_name);
} else {
if (creature_ptr->last_message)
string_free(creature_ptr->last_message);
- creature_ptr->last_message = NULL;
+ creature_ptr->last_message = nullptr;
if (!last_words) {
#ifdef JP
msg_format("あなたは%sました。", android ? "壊れ" : "死に");
msg_print(android ? "You are broken." : "You die.");
#endif
- msg_print(NULL);
+ msg_print(nullptr);
} else {
if (winning_seppuku) {
get_rnd_line(_("seppuku_j.txt", "seppuku.txt"), 0, death_message);
str += 2;
str2 = angband_strstr(str, "」");
- if (str2 != NULL)
+ if (str2 != nullptr)
*str2 = '\0';
i = 0;
while (i < 9) {
str2 = angband_strstr(str, " ");
- if (str2 == NULL)
+ if (str2 == nullptr)
len = strlen(str);
else
len = str2 - str;
if (len != 0) {
term_putstr_v(w * 3 / 4 - 2 - msg_pos_x[i] * 2, msg_pos_y[i], len, TERM_WHITE, str);
- if (str2 == NULL)
+ if (str2 == nullptr)
break;
i++;
}
creature_ptr->now_damaged = true;
msg_print(_("*** 警告:低ヒット・ポイント! ***", "*** LOW HITPOINT WARNING! ***"));
- msg_print(NULL);
+ msg_print(nullptr);
flush();
}
}
level_inc_stat = true;
- exe_write_diary(creature_ptr, DIARY_LEVELUP, creature_ptr->lev, NULL);
+ exe_write_diary(creature_ptr, DIARY_LEVELUP, creature_ptr->lev, nullptr);
}
sound(SOUND_LEVEL);
*/
static void file_character_auto(player_type *creature_ptr, display_player_pf display_player)
{
- time_t now_t = time(NULL);
+ time_t now_t = time(nullptr);
struct tm *now_tm = localtime(&now_t);
char datetime[32];
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_ELEC, dir, damroll(dice, sides));
}
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
wizard_lock(caster_ptr, dir);
}
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
destroy_door(caster_ptr, dir);
}
{
if (cast) {
if (!ident_spell(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
wall_to_mud(caster_ptr, dir, 20 + randint1(30));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
msg_print(_("光線が放たれた。", "A line of light appears."));
lite_line(caster_ptr, dir, damroll(6, 8));
{
if (cast) {
if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
- return NULL;
+ return nullptr;
teleport_level(caster_ptr, 0);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
}
int type;
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
switch (randint1(4)) {
case 1:
if (cast) {
if (!recall_player(caster_ptr, randint0(21) + 15))
- return NULL;
+ return nullptr;
}
}
break;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_chaos_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_MISSILE, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_MISSILE, dir, damroll(dice, sides) + base, rad);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_FIRE, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_DISINTEGRATE, dir, damroll(dice, sides), 0);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
cast_wonder(caster_ptr, dir);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_CHAOS, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_MANA, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_FIRE, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_CHAOS, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
poly_monster(caster_ptr, dir, plev);
}
return info_power(power);
if (cast) {
if (!recharge(caster_ptr, power))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_DISINTEGRATE, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
msg_print(_("ロケット発射!", "You launch a rocket!"));
fire_rocket(caster_ptr, GF_ROCKET, dir, dam, rad);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_GRAVITY, dir, damroll(dice, sides));
}
}
{
if (cast) {
if (!get_check(_("変身します。よろしいですか?", "You will polymorph yourself. Are you sure? ")))
- return NULL;
+ return nullptr;
do_poly_self(caster_ptr);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_MANA, dir, dam, rad);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_CHAOS, dir, dam, rad);
}
* @brief 匠領域魔法の各処理を行う
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!choose_ele_attack(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!mundane_spell(caster_ptr, true))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!enchant_spell(caster_ptr, randint0(4) + 1, randint0(4) + 1, 0))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!enchant_spell(caster_ptr, 0, 0, randint0(3) + 2))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!choose_ele_immune(caster_ptr, base + randint1(base)))
- return NULL;
+ return nullptr;
}
}
break;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
return info_damage(dice, sides, 0);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_ELEC, dir, damroll(dice, sides));
}
}
return info_power(power);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fear_monster(caster_ptr, dir, power);
}
}
return info_multi_damage_dice(dice, sides);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_blast(caster_ptr, GF_LITE, dir, dice, sides, 10, 3);
}
}
return info_power(power);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_AWAY_EVIL, dir, power, 0);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_HOLY_FIRE, dir, damroll(dice, sides) + base, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt(caster_ptr, GF_ELEC, dir, dam);
}
}
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
destroy_door(caster_ptr, dir);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
stasis_evil(caster_ptr, dir);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_LITE, dir, dam, rad);
}
if (cast) {
if (!cast_wrath_of_the_god(caster_ptr, dam, rad))
- return NULL;
+ return nullptr;
}
}
break;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
/*
* A radius-0 ball may (1) be aimed at
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_POIS, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
sleep_monster(caster_ptr, dir, plev);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fear_monster(caster_ptr, dir, plev);
stun_monster(caster_ptr, dir, plev);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
control_one_undead(caster_ptr, dir, plev);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_HYPODYNAMIA, dir, damroll(dice, sides) + base, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_NETHER, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball_hide(caster_ptr, GF_GENOCIDE, dir, power, 0);
}
HIT_POINT dam = base + damroll(dice, sides);
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
if (hypodynamic_bolt(caster_ptr, dir, dam)) {
chg_virtue(caster_ptr, V_SACRIFICE, -1);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
cast_invoke_spirits(caster_ptr, dir);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_DARK, dir, damroll(dice, sides));
}
int i;
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
chg_virtue(caster_ptr, V_SACRIFICE, -1);
chg_virtue(caster_ptr, V_VITALITY, -1);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_DARK, dir, dam, rad);
}
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
death_ray(caster_ptr, dir, plev);
}
if (cast) {
if (randint1(50) > plev) {
if (!ident_spell(caster_ptr, false))
- return NULL;
+ return nullptr;
} else {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_HELL_FIRE, dir, dam, rad);
take_hit(caster_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("地獄の劫火の呪文を唱えた疲労", "the strain of casting Hellfire"));
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_MISSILE, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fear_monster(caster_ptr, dir, power);
stun_monster(caster_ptr, dir, power);
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_NETHER, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
control_one_demon(caster_ptr, dir, plev);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_PLASMA, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_FIRE, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_NETHER, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_PLASMA, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_NEXUS, dir, dam, rad);
}
}
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
else
msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
{
if (cast) {
if (!cast_summon_greater_demon(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_NETHER, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball_hide(caster_ptr, GF_BLOOD_CURSE, dir, dam, rad);
take_hit(caster_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("血の呪い", "Blood curse"));
* @brief 呪術領域魔法の各処理を行う
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_CONT / SPELL_STOP)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_CONT / SPELL_STOP 時はnullptr文字列を返す。
*/
concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (hex_revenge_turn(caster_ptr) > 0) {
msg_print(_("すでに我慢をしている。", "You are already biding your time for vengeance."));
- return NULL;
+ return nullptr;
}
hex_revenge_type(caster_ptr) = 1;
return info_power(power);
if (cast) {
if (!recharge(caster_ptr, power))
- return NULL;
+ return nullptr;
add = false;
}
break;
if (!o_ptr->k_idx) {
msg_print(_("クロークを身につけていない!", "You are not wearing a cloak."));
- return NULL;
+ return nullptr;
} else if (!o_ptr->is_cursed()) {
msg_print(_("クロークは呪われていない!", "Your cloak is not cursed."));
- return NULL;
+ return nullptr;
} else {
msg_print(_("影のオーラを身にまとった。", "You are enveloped by a shadowy aura!"));
}
if (hex_revenge_turn(caster_ptr) > 0) {
msg_print(_("すでに復讐は宣告済みだ。", "You've already declared your revenge."));
- return NULL;
+ return nullptr;
}
hex_revenge_type(caster_ptr) = 2;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 剣術ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_hissatsu_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
project_length = 2;
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
project_hook(caster_ptr, GF_ATTACK, dir, HISSATSU_2, PROJECT_STOP | PROJECT_KILL);
}
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
for (cdir = 0; cdir < 8; cdir++) {
if (cdd[cdir] == dir)
}
if (cdir == 8)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy_cdd[cdir];
x = caster_ptr->x + ddx_cdd[cdir];
if (cast) {
if (!ThrowCommand(caster_ptr).do_cmd_throw(1, true, -1))
- return NULL;
+ return nullptr;
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_FIRE);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_MINEUCHI);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (caster_ptr->riding) {
msg_print(_("乗馬中には無理だ。", "You cannot do it when riding."));
- return NULL;
+ return nullptr;
}
msg_print(_("相手の攻撃に対して身構えた。", "You prepare to counterattack."));
caster_ptr->counter = true;
if (caster_ptr->riding) {
msg_print(_("乗馬中には無理だ。", "You cannot do it when riding."));
- return NULL;
+ return nullptr;
}
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
if (!caster_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
do_cmd_attack(caster_ptr, y, x, HISSATSU_NONE);
if (player_can_enter(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat, 0)
&& !is_trap(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat) && !caster_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
- msg_print(NULL);
+ msg_print(nullptr);
(void)move_player_effect(caster_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
}
}
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_POISON);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_ZANMA);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_NONE);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
if (d_info[caster_ptr->dungeon_idx].flags.has(DF::NO_MELEE)) {
return "";
if (cast) {
if (plev > 44) {
if (!identify_fully(caster_ptr, true))
- return NULL;
+ return nullptr;
} else {
if (!ident_spell(caster_ptr, true))
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_COLD);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_KYUSHO);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_MAJIN);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_SUTEMI);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
caster_ptr->sutemi = true;
}
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_ELEC);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
return _("素早く相手に近寄り攻撃する。", "Steps close to a monster and attacks at the same time.");
if (cast) {
- if (!rush_attack(caster_ptr, NULL))
- return NULL;
+ if (!rush_attack(caster_ptr, nullptr))
+ return nullptr;
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
int total_damage = 0, basedam, i;
object_type *o_ptr;
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
msg_print(_("武器を大きく振り下ろした。", "You swing your weapon downward."));
for (i = 0; i < 2; i++) {
int damage;
int i;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
for (i = 0; i < 3; i++) {
POSITION y, x;
do_cmd_attack(caster_ptr, y, x, HISSATSU_3DAN);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
if (d_info[caster_ptr->dungeon_idx].flags.has(DF::NO_MELEE)) {
if (!monster_can_enter(caster_ptr, ny, nx, &r_info[m_ptr->r_idx], 0)) {
/* -more- */
if (i < 2)
- msg_print(NULL);
+ msg_print(nullptr);
continue;
}
/* -more- */
if (i < 2)
- msg_print(NULL);
+ msg_print(nullptr);
}
}
break;
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_DRAIN);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
}
break;
} while (caster_ptr->csp > mana_cost_per_monster);
if (is_new)
- return NULL;
+ return nullptr;
/* Restore reserved mana */
caster_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
POSITION y, x;
if (!tgt_pt(caster_ptr, &x, &y))
- return NULL;
+ return nullptr;
if (!cave_player_teleportable_bold(caster_ptr, y, x, TELEPORT_SPONTANEOUS) || (distance(y, x, caster_ptr->y, caster_ptr->x) > MAX_SIGHT / 2)
|| !projectable(caster_ptr, caster_ptr->y, caster_ptr->x, y, x)) {
POSITION x, y;
if (!get_rep_dir(caster_ptr, &dir, false))
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
}
} else {
msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
- return NULL;
+ return nullptr;
}
}
break;
object_type *o_ptr;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
POSITION y, x;
if (!get_direction(caster_ptr, &dir, false, false))
- return NULL;
+ return nullptr;
if (dir == 5)
- return NULL;
+ return nullptr;
y = caster_ptr->y + ddy[dir];
x = caster_ptr->x + ddx[dir];
do_cmd_attack(caster_ptr, y, x, HISSATSU_UNDEAD);
else {
msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
- return NULL;
+ return nullptr;
}
take_hit(caster_ptr, DAMAGE_NOESCAPE, 100 + randint1(100), _("慶雲鬼忍剣を使った衝撃", "exhaustion on using Keiun-Kininken"));
}
if (cast) {
int i;
if (!get_check(_("本当に自殺しますか?", "Do you really want to commit suicide? ")))
- return NULL;
+ return nullptr;
/* Special Verification for suicide */
prt(_("確認のため '@' を押して下さい。", "Please verify SUICIDE by typing the '@' sign: "), 0, 0);
i = inkey();
prt("", 0, 0);
if (i != '@')
- return NULL;
+ return nullptr;
if (current_world_ptr->total_winner) {
take_hit(caster_ptr, DAMAGE_FORCE, 9999, "Seppuku");
current_world_ptr->total_winner = true;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
{
if (cast) {
if (!ident_spell(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
if (cast) {
if (!recall_player(caster_ptr, randint0(21) + 15))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
project_length = range;
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_ELEC, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
charm_animal(caster_ptr, dir, plev);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
wall_to_mud(caster_ptr, dir, 20 + randint1(30));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_COLD, dir, damroll(dice, sides));
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr) - 10, GF_FIRE, dir, damroll(dice, sides));
}
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
msg_print(_("太陽光線が現れた。", "A line of sunlight appears."));
lite_line(caster_ptr, dir, damroll(6, 8));
}
{
if (cast) {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!rustproof(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_COLD, dir, dam, rad);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_ELEC, dir, dam, rad);
break;
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_WATER, dir, dam, rad);
}
}
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 歌ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP 時はnullptr文字列を返す。
*/
concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_bolt(caster_ptr, GF_SOUND, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_SOUND, dir, damroll(dice, sides));
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_ball(caster_ptr, GF_SOUND, dir, damroll(dice, sides), rad);
}
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
confuse_monster(caster_ptr, dir, power);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
sleep_monster(caster_ptr, dir, plev);
}
if (cast) {
if (!recharge(caster_ptr, power))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!ident_spell(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
slow_monster(caster_ptr, dir, plev);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
}
{
if (cast) {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
charm_monster(caster_ptr, dir, plev);
}
{
if (cast) {
if (!tele_town(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
{
if (cast) {
if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
- return NULL;
+ return nullptr;
teleport_level(caster_ptr, 0);
}
}
if (cast) {
if (!recall_player(caster_ptr, randint0(21) + 15))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
msg_print(_("次元の扉が開いた。目的地を選んで下さい。", "You open a dimensional gate. Choose a destination."));
if (!dimension_door(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fetch_item(caster_ptr, dir, weight, false);
}
{
if (cast) {
if (!alchemy(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
+ * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
*/
concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
{
{
if (cast) {
if (!reset_recall(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
}
if (cast) {
if (!get_aim_dir(caster_ptr, &dir))
- return NULL;
+ return nullptr;
fetch_item(caster_ptr, dir, weight, false);
}
if (cast) {
if (!target_set(caster_ptr, TARGET_KILL))
- return NULL;
+ return nullptr;
x = target_col;
y = target_row;
} else {
target_pet = old_target_pet;
if (!result)
- return NULL;
+ return nullptr;
speed_monster(caster_ptr, dir, plev);
}
{
if (cast) {
if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
- return NULL;
+ return nullptr;
teleport_level(caster_ptr, 0);
}
}
if (cast) {
msg_print(_("次元の扉が開いた。目的地を選んで下さい。", "You open a dimensional gate. Choose a destination."));
if (!dimension_door(caster_ptr))
- return NULL;
+ return nullptr;
}
}
break;
if (cast) {
if (!recall_player(caster_ptr, randint0(21) + 15))
- return NULL;
+ return nullptr;
}
}
break;
project_length = 0;
if (!result)
- return NULL;
+ return nullptr;
teleport_swap(caster_ptr, dir);
}
{
if (cast) {
if (!identify_fully(caster_ptr, false))
- return NULL;
+ return nullptr;
}
}
break;
target_pet = old_target_pet;
if (!result)
- return NULL;
+ return nullptr;
heal_monster(caster_ptr, dir, heal);
}
*/
std::vector<nest_pit_type> nest_types = {
{ _("クローン", "clone"), vault_aux_clone, vault_prep_clone, 5, 3 },
- { _("ゼリー", "jelly"), vault_aux_jelly, NULL, 5, 6 },
+ { _("ゼリー", "jelly"), vault_aux_jelly, nullptr, 5, 6 },
{ _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 25, 2 },
{ _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 25, 2 },
- { _("ミミック", "mimic"), vault_aux_mimic, NULL, 30, 4 },
- { _("狂気", "lovecraftian"), vault_aux_cthulhu, NULL, 70, 2 },
- { _("犬小屋", "kennel"), vault_aux_kennel, NULL, 45, 4 },
- { _("動物園", "animal"), vault_aux_animal, NULL, 35, 5 },
- { _("教会", "chapel"), vault_aux_chapel_g, NULL, 75, 4 },
- { _("アンデッド", "undead"), vault_aux_undead, NULL, 75, 5 },
+ { _("ミミック", "mimic"), vault_aux_mimic, nullptr, 30, 4 },
+ { _("狂気", "lovecraftian"), vault_aux_cthulhu, nullptr, 70, 2 },
+ { _("犬小屋", "kennel"), vault_aux_kennel, nullptr, 45, 4 },
+ { _("動物園", "animal"), vault_aux_animal, nullptr, 35, 5 },
+ { _("教会", "chapel"), vault_aux_chapel_g, nullptr, 75, 4 },
+ { _("アンデッド", "undead"), vault_aux_undead, nullptr, 75, 5 },
};
/*!
/* Process a preparation function if necessary */
if (n_ptr->prep_func)
(*(n_ptr->prep_func))(player_ptr);
- get_mon_num_prep(player_ptr, n_ptr->hook_func, NULL);
+ get_mon_num_prep(player_ptr, n_ptr->hook_func, nullptr);
align.sub_align = SUB_ALIGN_NEUTRAL;
for (i = 0; i < NUM_NEST_MON_TYPE; i++) {
MONRACE_IDX r_idx = 0;
int attempts = 100;
- monster_race *r_ptr = NULL;
+ monster_race *r_ptr = nullptr;
while (attempts--) {
/* Get a (hard) monster type */
}
if (cheat_room) {
- ang_sort(player_ptr, nest_mon_info, NULL, NUM_NEST_MON_TYPE, ang_sort_comp_nest_mon_info, ang_sort_swap_nest_mon_info);
+ ang_sort(player_ptr, nest_mon_info, nullptr, NUM_NEST_MON_TYPE, ang_sort_comp_nest_mon_info, ang_sort_swap_nest_mon_info);
/* Dump the entries (prevent multi-printing) */
for (i = 0; i < NUM_NEST_MON_TYPE; i++) {
* @brief 生成するPitの情報テーブル
*/
std::vector<nest_pit_type> pit_types = {
- { _("オーク", "orc"), vault_aux_orc, NULL, 5, 6 },
- { _("トロル", "troll"), vault_aux_troll, NULL, 20, 6 },
- { _("巨人", "giant"), vault_aux_giant, NULL, 50, 6 },
- { _("狂気", "lovecraftian"), vault_aux_cthulhu, NULL, 80, 2 },
+ { _("オーク", "orc"), vault_aux_orc, nullptr, 5, 6 },
+ { _("トロル", "troll"), vault_aux_troll, nullptr, 20, 6 },
+ { _("巨人", "giant"), vault_aux_giant, nullptr, 50, 6 },
+ { _("狂気", "lovecraftian"), vault_aux_cthulhu, nullptr, 80, 2 },
{ _("シンボル(善)", "symbol good"), vault_aux_symbol_g, vault_prep_symbol, 70, 1 },
{ _("シンボル(悪)", "symbol evil"), vault_aux_symbol_e, vault_prep_symbol, 70, 1 },
- { _("教会", "chapel"), vault_aux_chapel_g, NULL, 65, 2 },
+ { _("教会", "chapel"), vault_aux_chapel_g, nullptr, 65, 2 },
{ _("ドラゴン", "dragon"), vault_aux_dragon, vault_prep_dragon, 70, 6 },
- { _("デーモン", "demon"), vault_aux_demon, NULL, 80, 6 },
- { _("ダークエルフ", "dark elf"), vault_aux_dark_elf, NULL, 45, 4 },
+ { _("デーモン", "demon"), vault_aux_demon, nullptr, 80, 6 },
+ { _("ダークエルフ", "dark elf"), vault_aux_dark_elf, nullptr, 45, 4 },
};
/*!
/* Process a preparation function if necessary */
if (n_ptr->prep_func)
(*(n_ptr->prep_func))(player_ptr);
- get_mon_num_prep(player_ptr, n_ptr->hook_func, NULL);
+ get_mon_num_prep(player_ptr, n_ptr->hook_func, nullptr);
align.sub_align = SUB_ALIGN_NEUTRAL;
for (i = 0; i < 16; i++) {
MONRACE_IDX r_idx = 0;
int attempts = 100;
- monster_race *r_ptr = NULL;
+ monster_race *r_ptr = nullptr;
while (attempts--) {
/* Get a (hard) monster type */
for (i = 0; i < 16; i++) {
MONRACE_IDX r_idx = 0;
int attempts = 100;
- monster_race *r_ptr = NULL;
+ monster_race *r_ptr = nullptr;
while (attempts--) {
/* Get a (hard) monster type */
case 1: /* 4 lite breathers + potion */
{
DIRECTION dir1, dir2;
- get_mon_num_prep(player_ptr, vault_aux_lite, NULL);
+ get_mon_num_prep(player_ptr, vault_aux_lite, nullptr);
/* Place fixed lite berathers */
for (dir1 = 4; dir1 < 8; dir1++) {
g_ptr = &floor_ptr->grid_array[y2 - 1][x2 - 1];
place_grid(player_ptr, g_ptr, GB_INNER);
g_ptr->feat = feat_glass_wall;
- get_mon_num_prep(player_ptr, vault_aux_lite, NULL);
+ get_mon_num_prep(player_ptr, vault_aux_lite, nullptr);
r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level, 0);
if (r_idx)
g_ptr->feat = feat_glass_wall;
}
- get_mon_num_prep(player_ptr, vault_aux_shards, NULL);
+ get_mon_num_prep(player_ptr, vault_aux_shards, nullptr);
/* Place shard berathers */
for (dir1 = 4; dir1 < 8; dir1++) {
*/
bool build_type7(player_type *player_ptr, dun_data_type *dd_ptr)
{
- vault_type *v_ptr = NULL;
+ vault_type *v_ptr = nullptr;
int dummy;
POSITION x, y;
POSITION xval, yval;
*/
bool build_type17(player_type *player_ptr, dun_data_type *dd_ptr)
{
- vault_type *v_ptr = NULL;
+ vault_type *v_ptr = nullptr;
int dummy;
POSITION x, y;
POSITION xval, yval;
if (!player_ptr->floor_id) {
/* No array elements */
wr_byte(0);
- wr_saved_floor(player_ptr, NULL);
+ wr_saved_floor(player_ptr, nullptr);
return true;
}
*/
bool save_floor(player_type *player_ptr, saved_floor_type *sf_ptr, BIT_FLAGS mode)
{
- FILE *old_fff = NULL;
+ FILE *old_fff = nullptr;
byte old_xor_byte = 0;
uint32_t old_v_stamp = 0;
uint32_t old_x_stamp = 0;
safe_setuid_grab(player_ptr);
fd_kill(floor_savefile);
safe_setuid_drop();
- saving_savefile = NULL;
+ saving_savefile = nullptr;
safe_setuid_grab(player_ptr);
int fd = fd_make(floor_savefile, 0644);
safe_setuid_drop();
bool is_save_successful = false;
- saving_savefile = NULL;
+ saving_savefile = nullptr;
if (fd >= 0) {
(void)fd_close(fd);
safe_setuid_grab(player_ptr);
}
msg_format(_("%sの存在を感じとった!", "You sense the presence of %s!"), desc_monsters);
- msg_print(NULL);
+ msg_print(nullptr);
}
return flag;
if (!probe)
msg_print(_("調査中...", "Probing..."));
- msg_print(NULL);
+ msg_print(nullptr);
probed_monster_info(buf, caster_ptr, m_ptr, r_ptr);
prt(buf, 0, 0);
plural_aux(buf);
msg_format("You now know more about %s.", buf);
#endif
- msg_print(NULL);
+ msg_print(nullptr);
}
probe = true;
}
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, 1, NULL);
+ exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, 1, nullptr);
if (autosave_l)
do_cmd_save_game(creature_ptr, true);
if (m_idx <= 0) {
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, -1, NULL);
+ exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, -1, nullptr);
if (autosave_l)
do_cmd_save_game(creature_ptr, true);
if (m_idx <= 0) {
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, -1, NULL);
+ exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, -1, nullptr);
if (autosave_l)
do_cmd_save_game(creature_ptr, true);
if (m_idx <= 0) {
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, 1, NULL);
+ exe_write_diary(creature_ptr, DIARY_TELEPORT_LEVEL, 1, nullptr);
if (autosave_l)
do_cmd_save_game(creature_ptr, true);
if (num == 0) {
msg_print(_("まだ行けるところがない。", "You have not yet visited any town."));
- msg_print(NULL);
+ msg_print(nullptr);
screen_load();
return false;
}
OBJECT_IDX item;
object_type *o_ptr = choose_object(caster_ptr, &item, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT, TvalItemTester(TV_SHIELD));
- if (o_ptr == NULL)
+ if (o_ptr == nullptr)
return false;
GAME_TEXT o_name[MAX_NLEN];
concptr s = _("錆止めできるものがありません。", "You have nothing to rustproof.");
OBJECT_IDX item;
object_type *o_ptr = choose_object(caster_ptr, &item, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT, FuncItemTester(&object_type::is_armour));
- if (o_ptr == NULL)
+ if (o_ptr == nullptr)
return false;
GAME_TEXT o_name[MAX_NLEN];
int amt = 1;
if (o_ptr->number > 1) {
- amt = get_quantity(NULL, o_ptr->number);
+ amt = get_quantity(nullptr, o_ptr->number);
if (amt <= 0)
return false;
}
* @param realm 魔法領域のID
* @param spell 各領域の魔法ID
* @param mode 求める処理
- * @return 各領域魔法に各種テキストを求めた場合は文字列参照ポインタ、そうでない場合はNULLポインタを返す。
+ * @return 各領域魔法に各種テキストを求めた場合は文字列参照ポインタ、そうでない場合はnullptrポインタを返す。
*/
concptr exe_spell(player_type *caster_ptr, int16_t realm, SPELL_IDX spell, spell_type mode)
{
case REALM_HEX: return do_hex_spell(caster_ptr, spell, mode);
}
- return NULL;
+ return nullptr;
}
GAME_TEXT o_name[MAX_NLEN];
describe_flavor(caster_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
- concptr act = NULL;
+ concptr act = nullptr;
switch (brand_type) {
case 17:
if (o_ptr->tval == TV_SWORD) {
creature_ptr->timewalk = true;
msg_print(_("「時よ!」", "You yell 'Time!'"));
// msg_print(_("「『ザ・ワールド』!時は止まった!」", "You yell 'The World! Time has stopped!'"));
- msg_print(NULL);
+ msg_print(nullptr);
creature_ptr->energy_need -= 1000 + (100 + creature_ptr->csp - 50) * TURNS_PER_TICK / 10;
creature_ptr->redraw |= (PR_MAP);
msg_format(_("一つにつき $%ldです。", "That costs %ld gold per item."), (long)(best));
}
- amt = get_quantity(NULL, o_ptr->number);
+ amt = get_quantity(nullptr, o_ptr->number);
if (amt <= 0)
return;
}
GAME_TEXT o_name[MAX_NLEN];
describe_flavor(player_ptr, o_name, j_ptr, 0);
msg_format(_("%s(%c)を購入する。", "Buying %s (%c)."), o_name, I2A(item));
- msg_print(NULL);
+ msg_print(nullptr);
auto res = prompt_to_buy(player_ptr, j_ptr);
if (st_ptr->store_open >= current_world_ptr->game_turn)
return;
}
- concptr rumor_eff_format = NULL;
+ concptr rumor_eff_format = nullptr;
char fullname[1024] = "";
if (strcmp(zz[0], "ARTIFACT") == 0) {
ARTIFACT_IDX a_idx;
concptr rumor_msg = rumor_bind_name(zz[2], fullname);
msg_print(rumor_msg);
if (rumor_eff_format) {
- msg_print(NULL);
+ msg_print(nullptr);
msg_format(rumor_eff_format, fullname);
}
}
int amt = 1;
if (o_ptr->number > 1) {
- amt = get_quantity(NULL, o_ptr->number);
+ amt = get_quantity(nullptr, o_ptr->number);
if (amt <= 0)
return;
}
bool placed = false;
if ((cur_store_num != STORE_HOME) && (cur_store_num != STORE_MUSEUM)) {
msg_format(_("%s(%c)を売却する。", "Selling %s (%c)."), o_name, index_to_label(item));
- msg_print(NULL);
+ msg_print(nullptr);
auto res = prompt_to_sell(owner_ptr, q_ptr);
placed = res.has_value();
case TV_STATUE: {
monster_race *r_ptr = &r_info[o_ptr->pval];
if (!(r_ptr->flags3 & RF3_EVIL))
- if (((r_ptr->flags3 & RF3_GOOD) != 0) || ((r_ptr->flags3 & RF3_ANIMAL) != 0) || (angband_strchr("?!", r_ptr->d_char) != NULL))
+ if (((r_ptr->flags3 & RF3_GOOD) != 0) || ((r_ptr->flags3 & RF3_ANIMAL) != 0) || (angband_strchr("?!", r_ptr->d_char) != nullptr))
return true;
}
/* Fall through */
#include "world/world-object.h"
int cur_store_num = 0;
-store_type *st_ptr = NULL;
+store_type *st_ptr = nullptr;
/*!
* @brief 店舗のオブジェクト数を増やす /
int store_top = 0;
int store_bottom = 0;
int xtra_stock = 0;
-const owner_type *ot_ptr = NULL;
+const owner_type *ot_ptr = nullptr;
int16_t old_town_num = 0;
int16_t inner_town_num = 0;
if (repeat_pull(com_val) && (*com_val >= i) && (*com_val <= j))
return true;
- msg_print(NULL);
+ msg_print(nullptr);
*com_val = (-1);
char lo = I2A(i);
char hi = (j > 25) ? toupper(I2A(j - 26)) : I2A(j);
_("呪文一覧", "Display spell list"),
_("キャラクタ情報", "Display character"),
_("視界内のモンスター表示", "Display monsters in sight"),
- NULL,
+ nullptr,
_("メッセージ", "Display messages"),
_("ダンジョン全体図", "Display overhead view"),
_("モンスターの思い出", "Display monster recall"),
_("自分の周囲を表示", "Display dungeon view"),
_("記念撮影", "Display snap-shot"),
_("足元/床上のアイテム一覧", "Display items on floor"),
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr
};
"~:Fluid terrain (or miscellaneous item)",
#endif
- NULL
+ nullptr
};
/*
*/
void screen_save()
{
- msg_print(NULL);
+ msg_print(nullptr);
term_save();
*/
void screen_load(SCREEN_LOAD_OPT opt)
{
- msg_print(NULL);
+ msg_print(nullptr);
switch (opt) {
case SCREEN_LOAD_OPT::ONE:
* Format("%s", concptr s)
* Append the string "s".
* Do not use the "+" or "0" flags.
- * Note that a "NULL" value of "s" is converted to the empty string.
+ * Note that a "nullptr" value of "s" is converted to the empty string.
*
* Format("%V", vptr v)
* Note -- possibly significant mode flag
*
*
* For examples below, assume "int n = 0; int m = 100; char buf[100];",
- * plus "char *s = NULL;", and unknown values "char *txt; int i;".
+ * plus "char *s = nullptr;", and unknown values "char *txt; int i;".
*
* For example: "n = strnfmt(buf, -1, "(Max %d)", i);" will have a
* similar effect as "sprintf(buf, "(Max %d)", i); n = strlen(buf);".
/* Access next argument */
arg = va_arg(vp, concptr);
- /* Hack -- convert NULL to EMPTY */
+ /* Hack -- convert nullptr to EMPTY */
if (!arg)
arg = "";
*/
char *vformat(concptr fmt, va_list vp)
{
- static char *format_buf = NULL;
+ static char *format_buf = nullptr;
static ulong format_len = 0;
/* Initial allocation */
HCRYPTPROV hProvider;
- CryptAcquireContext(&hProvider, NULL, NULL, PROV_RSA_FULL, 0);
+ CryptAcquireContext(&hProvider, nullptr, nullptr, PROV_RSA_FULL, 0);
do {
CryptGenRandom(hProvider, sizeof(Rand_state[0]) * 4, (BYTE *)Rand_state);
#else
/* Basic seed */
- uint32_t seed = (time(NULL));
+ uint32_t seed = (time(nullptr));
#ifdef SET_UID
/* Mutate the seed on Unix machines */
seed = ((seed >> 3) * (getpid() << 1));
if (!initialized) {
/* Initialize with new seed */
- uint32_t seed = (uint32_t)time(NULL);
+ uint32_t seed = (uint32_t)time(nullptr);
Rand_seed(seed, Rand_state_external);
initialized = true;
}
#endif
/* The current "term" */
-term_type *Term = NULL;
+term_type *Term = nullptr;
/*** Local routines ***/
/*
* Convenient storage of the program name
*/
-concptr argv0 = NULL;
+concptr argv0 = nullptr;
/*
/*
* Redefinable "plog" action
*/
-void (*plog_aux)(concptr) = NULL;
+void (*plog_aux)(concptr) = nullptr;
/*
* Print (or log) a "warning" message (ala "perror()")
/*
* Redefinable "quit" action
*/
-void (*quit_aux)(concptr) = NULL;
+void (*quit_aux)(concptr) = nullptr;
/*
- * Exit (ala "exit()"). If 'str' is NULL, do "exit(0)".
+ * Exit (ala "exit()"). If 'str' is nullptr, do "exit(0)".
* If 'str' begins with "+" or "-", do "exit(atoi(str))".
* Otherwise, plog() 'str' and exit with an error code of -1.
* But always use 'quit_aux', if set, before anything else.
/*
* Redefinable "core" action
*/
-void (*core_aux)(concptr) = NULL;
+void (*core_aux)(concptr) = nullptr;
/*
* Dump a core file, after printing a warning message
*/
void core(concptr str)
{
- char *crash = NULL;
+ char *crash = nullptr;
/* Use the aux function */
if (core_aux) (*core_aux)(str);
/* Load a thing of type T, at location P1, from another, at location P2 */
#define COPY(P1, P2, T) (copy_impl<T>(P1, P2))
-/* Free an array of N things of type T at P, return NULL */
+/* Free an array of N things of type T at P, return nullptr */
#define C_FREE(P, N, T) (c_free_impl<T>(P, N))
-/* Free one thing of type T at P, return NULL */
+/* Free one thing of type T at P, return nullptr */
#define FREE(P, T) (free_impl<T>(P))
/* Allocate, and return, an array of type T[N] */
/* Allocate a wiped thing of type T, assign to pointer P */
#define MAKE(P, T) ((P) = ZNEW(T))
-/* Free an array of type T[N], at location P, and set P to NULL */
+/* Free an array of type T[N], at location P, and set P to nullptr */
#define C_KILL(P, N, T) ((P) = C_FREE(P, N, T))
-/* Free a thing of type T, at location P, and set P to NULL */
+/* Free a thing of type T, at location P, and set P to nullptr */
#define KILL(P, T) ((P) = FREE(P, T))
/**** Available functions ****/
int nfds = 0;
- fd_set *no_fds = NULL;
+ fd_set *no_fds = nullptr;
if (usecs > 4000000L)
core(_("不当な usleep() 呼び出し", "Illegal usleep() call"));
*/
static errr path_temp(char *buf, int max)
{
- concptr s = tmpnam(NULL);
+ concptr s = tmpnam(nullptr);
if (!s)
return -1;
{
concptr q;
- /* Return NULL for an invalid index */
+ /* Return nullptr for an invalid index */
if ((i < 1) || (i >= quark__num))
- return NULL;
+ return nullptr;
/* Access the quark */
q = quark__str[i];
if (ca_ptr->m_idx && ma_ptr->ml)
ap_ra_ptr = &r_info[ma_ptr->ap_r_idx];
else
- ap_ra_ptr = NULL;
+ ap_ra_ptr = nullptr;
if (cb_ptr->m_idx && mb_ptr->ml)
ap_rb_ptr = &r_info[mb_ptr->ap_r_idx];
else
- ap_rb_ptr = NULL;
+ ap_rb_ptr = nullptr;
if (ap_ra_ptr && !ap_rb_ptr)
return true;
const char hexsym[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int max_macrotrigger = 0; /*!< 現在登録中のマクロ(トリガー)の数 */
-concptr macro_template = NULL; /*!< Angband設定ファイルのT: タグ情報から読み込んだ長いTコードを処理するために利用する文字列ポインタ */
+concptr macro_template = nullptr; /*!< Angband設定ファイルのT: タグ情報から読み込んだ長いTコードを処理するために利用する文字列ポインタ */
concptr macro_modifier_chr; /*!< &x# で指定されるマクロトリガーに関する情報を記録する文字列ポインタ */
concptr macro_modifier_name[MAX_MACRO_MOD]; /*!< マクロ上で取り扱う特殊キーを文字列上で表現するためのフォーマットを記録した文字列ポインタ配列 */
concptr macro_trigger_name[MAX_MACRO_TRIG]; /*!< マクロのトリガーコード */
int shiftstatus = 0;
concptr key_code;
- if (macro_template == NULL)
+ if (macro_template == nullptr)
return;
for (i = 0; macro_modifier_chr[i]; i++)
concptr str = *strptr;
char key_code[100];
int i;
- if (macro_template == NULL)
+ if (macro_template == nullptr)
return false;
*s++ = '\\';
}
}
- return NULL;
+ return nullptr;
}
/*
#endif
}
- return NULL;
+ return nullptr;
}
/*!
}
/* XXしてYYし/XXしてYYする/XXし/XXする */
- if (lore_ptr->q != NULL)
+ if (lore_ptr->q != nullptr)
jverb(lore_ptr->p, lore_ptr->jverb_buf, JVERB_TO);
else if (attack_numbers != lore_ptr->count - 1)
jverb(lore_ptr->p, lore_ptr->jverb_buf, JVERB_AND);
hooked_roff(", and ");
}
- if (lore_ptr->p == NULL) {
+ if (lore_ptr->p == nullptr) {
lore_ptr->p = "do something weird";
lore_ptr->pc = TERM_VIOLET;
}
hook_c_roff(lore_ptr->pc, lore_ptr->p);
- if (lore_ptr->q != NULL) {
+ if (lore_ptr->q != nullptr) {
hooked_roff(" to ");
hook_c_roff(lore_ptr->qc, lore_ptr->q);
if (d1 && d2 && (lore_ptr->know_everything || know_damage(lore_ptr->r_idx, m))) {
lore_ptr->sin = false;
#endif
} else {
- lore_ptr->drop_quality = NULL;
+ lore_ptr->drop_quality = nullptr;
}
}
lore_ptr->sin = false;
#endif
- if (lore_ptr->drop_quality != NULL)
+ if (lore_ptr->drop_quality != nullptr)
hooked_roff(lore_ptr->drop_quality);
hooked_roff(_("アイテム", " object"));
#ifdef JP
#else
- if (lore_ptr->drop_quality == NULL)
+ if (lore_ptr->drop_quality == nullptr)
lore_ptr->sin = false;
if (lore_ptr->sin)
lore_ptr->sin = false;
#endif
- if (lore_ptr->drop_quality != NULL)
+ if (lore_ptr->drop_quality != nullptr)
hooked_roff(lore_ptr->drop_quality);
hooked_roff(_("財宝", " treasure"));
void msg_erase(void)
{
- msg_print(NULL);
+ msg_print(nullptr);
}
/*!
*
* Note that we must be very careful about using the
* "msg_print()" functions without explicitly calling the special
- * "msg_print(NULL)" function, since this may result in the loss
+ * "msg_print(nullptr)" function, since this may result in the loss
* of information if the screen is cleared, or if anything is
* displayed on the top line.
*
- * Note that "msg_print(NULL)" will clear the top line
+ * Note that "msg_print(nullptr)" will clear the top line
* even if no messages are pending. This is probably a hack.
* @todo ここのp_ptrを削除するのは破滅的に作業が増えるので保留
*/
if ((note == j) && score) {
the_score = (*score);
attr = TERM_L_GREEN;
- score = NULL;
+ score = nullptr;
note = -1;
j--;
} else if (highscore_seek(j) || highscore_read(&the_score)) {
}
term_clear();
- display_scores(from, to, -1, NULL);
+ display_scores(from, to, -1, nullptr);
(void)fd_close(highscore_fd);
highscore_fd = -1;
- quit(NULL);
+ quit(nullptr);
}
#endif
{ TERM_SLATE, _("宣", "Rv"), _("宣告", "Revenge") }, { TERM_L_DARK, _("剣", "Rs"), _("魔剣化", "RuneSword") },
{ TERM_RED, _("吸", "Vm"), _("吸血打撃", "Vampiric") }, { TERM_WHITE, _("回", "Cu"), _("回復", "Cure") },
{ TERM_L_DARK, _("感", "ET"), _("邪悪感知", "EvilTele") }, { TERM_VIOLET, _("視", "NSi"), _("暗視", "NgtSgt") },
- { 0, NULL, NULL } };
+ { 0, nullptr, nullptr } };
void print_monster_list(floor_type *floor_ptr, const std::vector<MONSTER_IDX> &monster_list, TERM_LEN x, TERM_LEN y, TERM_LEN max_lines)
{
TERM_LEN line = y;
- monster_type *last_mons = NULL;
+ monster_type *last_mons = nullptr;
int n_same = 0;
size_t i;
for (i = 0; i < monster_list.size(); i++) {
* @brief 床上のモンスター情報を返す
* @param floor_ptr 階の情報への参照ポインタ
* @param grid_prt 座標グリッドの情報への参照ポインタ
- * @return モンスターが見える場合にはモンスター情報への参照ポインタ、それ以外はNULL
+ * @return モンスターが見える場合にはモンスター情報への参照ポインタ、それ以外はnullptr
* @details
* Lookコマンドでカーソルを合わせた場合に合わせてミミックは考慮しない。
*/
static monster_type *monster_on_floor_items(const floor_type *floor_ptr, const grid_type *g_ptr)
{
if (g_ptr->m_idx == 0)
- return NULL;
+ return nullptr;
monster_type *m_ptr = &floor_ptr->m_list[g_ptr->m_idx];
if (!monster_is_valid(m_ptr) || !m_ptr->ml)
- return NULL;
+ return nullptr;
return m_ptr;
}
// 先頭行を書く。
if (player_bold(player_ptr, y, x))
sprintf(line, _("(X:%03d Y:%03d) あなたの足元のアイテム一覧", "Items at (%03d,%03d) under you"), x, y);
- else if (const auto *m_ptr = monster_on_floor_items(floor_ptr, g_ptr); m_ptr != NULL) {
+ else if (const auto *m_ptr = monster_on_floor_items(floor_ptr, g_ptr); m_ptr != nullptr) {
if (player_ptr->image) {
sprintf(line, _("(X:%03d Y:%03d) 何か奇妙な物の足元の発見済みアイテム一覧", "Found items at (%03d,%03d) under something strange"), x, y);
} else {
static concptr simplify_list[][2] = {
#ifdef JP
- { "の魔法書", "" }, { NULL, NULL }
+ { "の魔法書", "" }, { nullptr, nullptr }
#else
{ "^Ring of ", "=" }, { "^Amulet of ", "\"" }, { "^Scroll of ", "?" }, { "^Scroll titled ", "?" }, { "^Wand of ", "-" }, { "^Rod of ", "-" },
{ "^Staff of ", "_" }, { "^Potion of ", "!" }, { " Spellbook ", "" }, { "^Book of ", "" }, { " Magic [", "[" }, { " Book [", "[" }, { " Arts [", "[" },
- { "^Set of ", "" }, { "^Pair of ", "" }, { NULL, NULL }
+ { "^Set of ", "" }, { "^Pair of ", "" }, { nullptr, nullptr }
#endif
};
vector<vector<SYMBOL_CODE>> mc(hgt + 2, vector<SYMBOL_CODE>(wid + 2, ' '));
vector<vector<byte>> mp(hgt + 2, vector<byte>(wid + 2, 0));
vector<vector<int>> match_autopick_yx(hgt + 2, vector<int>(wid + 2, -1));
- vector<vector<object_type *>> object_autopick_yx(hgt + 2, vector<object_type *>(wid + 2, NULL));
+ vector<vector<object_type *>> object_autopick_yx(hgt + 2, vector<object_type *>(wid + 2, nullptr));
vector<vector<TERM_COLOR>> bigma(floor_ptr->height + 2, vector<TERM_COLOR>(floor_ptr->width + 2, TERM_WHITE));
vector<vector<SYMBOL_CODE>> bigmc(floor_ptr->height + 2, vector<SYMBOL_CODE>(floor_ptr->width + 2, ' '));
y = j / yrat + 1;
match_autopick = -1;
- autopick_obj = NULL;
+ autopick_obj = nullptr;
feat_priority = -1;
map_info(player_ptr, j, i, &ta, &tc, &ta, &tc);
tp = (byte)feat_priority;
}
affects_list = spoiler_flag_aux(flgs, pval_flags1_desc, affects_list, N_ELEMENTS(pval_flags1_desc));
- *affects_list = NULL;
+ *affects_list = nullptr;
}
/*!
{
auto flgs = object_flags(o_ptr);
slay_list = spoiler_flag_aux(flgs, slay_flags_desc, slay_list, N_ELEMENTS(slay_flags_desc));
- *slay_list = NULL;
+ *slay_list = nullptr;
}
/*!
{
auto flgs = object_flags(o_ptr);
brand_list = spoiler_flag_aux(flgs, brand_flags_desc, brand_list, N_ELEMENTS(brand_flags_desc));
- *brand_list = NULL;
+ *brand_list = nullptr;
}
/*!
{
auto flgs = object_flags(o_ptr);
resist_list = spoiler_flag_aux(flgs, resist_flags_desc, resist_list, N_ELEMENTS(resist_flags_desc));
- *resist_list = NULL;
+ *resist_list = nullptr;
}
/*!
{
auto flgs = object_flags(o_ptr);
immune_list = spoiler_flag_aux(flgs, immune_flags_desc, immune_list, N_ELEMENTS(immune_flags_desc));
- *immune_list = NULL;
+ *immune_list = nullptr;
}
/*!
sustain_list = spoiler_flag_aux(flgs, sustain_flags_desc, sustain_list, N_ELEMENTS(sustain_flags_desc));
}
- *sustain_list = NULL;
+ *sustain_list = nullptr;
}
/*!
if (has_flag(flgs, TR_ADD_H_CURSE))
*misc_list++ = _("強力な呪いを増やす", "Heavily Cursing");
- *misc_list = NULL;
+ *misc_list = nullptr;
}
/*!
void spoiler_outlist(concptr header, concptr *list, char separator)
{
char line[MAX_LINE_LEN + 20], buf[80];
- if (*list == NULL)
+ if (*list == nullptr)
return;
strcpy(line, spoiler_indent);
PRICE t1;
PRICE t2;
- kind_info(&dummy, NULL, NULL, NULL, NULL, &e1, &t1, who[i1]);
- kind_info(&dummy, NULL, NULL, NULL, NULL, &e2, &t2, who[i2]);
+ kind_info(&dummy, nullptr, nullptr, nullptr, nullptr, &e1, &t1, who[i1]);
+ kind_info(&dummy, nullptr, nullptr, nullptr, nullptr, &e2, &t2, who[i2]);
if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) {
uint16_t tmp = who[i1];
sprintf(buf, "Exp:%ld\n", (long)(r_ptr->mexp));
spoil_out(buf);
output_monster_spoiler(who[i], roff_func);
- spoil_out(NULL);
+ spoil_out(nullptr);
}
C_KILL(who, max_r_idx, int16_t);
#include "wizard/spoiler-table.h"
/* The basic items categorized by type */
-grouper group_item[MAX_GROUPER_ITEM] = { { TV_SHOT, _("射撃物", "Ammo") }, { TV_ARROW, NULL }, { TV_BOLT, NULL }, { TV_BOW, _("弓", "Bows") },
- { TV_DIGGING, _("武器", "Weapons") }, { TV_POLEARM, NULL }, { TV_HAFTED, NULL }, { TV_SWORD, NULL }, { TV_SOFT_ARMOR, _("防具 (体)", "Armour (Body)") },
- { TV_HARD_ARMOR, NULL }, { TV_DRAG_ARMOR, NULL }, { TV_BOOTS, _("防具 (その他)", "Armour (Misc)") }, { TV_GLOVES, NULL }, { TV_HELM, NULL },
- { TV_CROWN, NULL }, { TV_SHIELD, NULL }, { TV_CLOAK, NULL },
+grouper group_item[MAX_GROUPER_ITEM] = { { TV_SHOT, _("射撃物", "Ammo") }, { TV_ARROW, nullptr }, { TV_BOLT, nullptr }, { TV_BOW, _("弓", "Bows") },
+ { TV_DIGGING, _("武器", "Weapons") }, { TV_POLEARM, nullptr }, { TV_HAFTED, nullptr }, { TV_SWORD, nullptr }, { TV_SOFT_ARMOR, _("防具 (体)", "Armour (Body)") },
+ { TV_HARD_ARMOR, nullptr }, { TV_DRAG_ARMOR, nullptr }, { TV_BOOTS, _("防具 (その他)", "Armour (Misc)") }, { TV_GLOVES, nullptr }, { TV_HELM, nullptr },
+ { TV_CROWN, nullptr }, { TV_SHIELD, nullptr }, { TV_CLOAK, nullptr },
{ TV_LITE, _("光源", "Light Sources") }, { TV_AMULET, _("アミュレット", "Amulets") }, { TV_RING, _("指輪", "Rings") }, { TV_STAFF, _("杖", "Staffs") },
{ TV_WAND, _("魔法棒", "Wands") }, { TV_ROD, _("ロッド", "Rods") }, { TV_SCROLL, _("巻物", "Scrolls") }, { TV_POTION, _("薬", "Potions") },
{ TV_FIGURINE, _("人形", "Magical Figurines") }, { TV_STATUE, _("像", "Statues") }, { TV_CORPSE, _("死体", "Corpses") },
- { TV_SKELETON, _("その他", "Misc") }, { TV_BOTTLE, NULL }, { TV_JUNK, NULL }, { TV_SPIKE, NULL }, { TV_FLASK, NULL }, { TV_PARCHMENT, NULL },
+ { TV_SKELETON, _("その他", "Misc") }, { TV_BOTTLE, nullptr }, { TV_JUNK, nullptr }, { TV_SPIKE, nullptr }, { TV_FLASK, nullptr }, { TV_PARCHMENT, nullptr },
{ TV_NONE, "" } };
{ TV_DIGGING, _("シャベル/つるはし", "Shovels/Picks") },
{ TV_BOW, _("飛び道具", "Bows") },
{ TV_ARROW, _("矢", "Ammo") },
- { TV_BOLT, NULL },
+ { TV_BOLT, nullptr },
{ TV_SOFT_ARMOR, _("鎧", "Body Armor") },
- { TV_HARD_ARMOR, NULL },
- { TV_DRAG_ARMOR, NULL },
+ { TV_HARD_ARMOR, nullptr },
+ { TV_DRAG_ARMOR, nullptr },
{ TV_CLOAK, _("クローク", "Cloaks") },
{ TV_SHIELD, _("盾", "Shields") },
- { TV_CARD, NULL },
+ { TV_CARD, nullptr },
{ TV_HELM, _("兜/冠", "Helms/Crowns") },
- { TV_CROWN, NULL },
+ { TV_CROWN, nullptr },
{ TV_GLOVES, _("籠手", "Gloves") },
{ TV_BOOTS, _("靴", "Boots") },
{ TV_LITE, _("光源", "Light Sources") },
{ TV_AMULET, _("アミュレット", "Amulets") },
{ TV_RING, _("指輪", "Rings") },
- { TV_NONE, NULL },
+ { TV_NONE, nullptr },
};
flag_desc stat_flags_desc[MAX_STAT_FLAGS_DESCRIPTION] = { { TR_STR, _("腕力", "STR") }, { TR_INT, _("知能", "INT") }, { TR_WIS, _("賢さ", "WIS") },
concptr spoiler_indent = " ";
/* The spoiler file being created */
-FILE *spoiler_file = NULL;
+FILE *spoiler_file = nullptr;
/*!
* @brief ファイルポインタ先に同じ文字を複数出力する /
#endif
static char *roff_p = roff_buf;
- static char *roff_s = NULL;
+ static char *roff_s = nullptr;
static bool waiting_output = false;
if (!str) {
if (waiting_output) {
}
roff_p = roff_buf;
- roff_s = NULL;
+ roff_s = nullptr;
roff_buf[0] = '\0';
return;
}
else
strcpy(roff_waiting_buf, roff_buf);
- roff_s = NULL;
+ roff_s = nullptr;
roff_p = roff_buf;
#ifdef JP
if (cbak != ' ')
concptr misc_magic[N_ELEMENTS(misc_flags2_desc) + N_ELEMENTS(misc_flags3_desc) + 1 /* Permanent Light */
+ 1 /* TY curse */
+ 1 /* type of curse */
- + 1]; /* sentinel NULL */
+ + 1]; /* sentinel nullptr */
char addition[80]; /* Additional ability or resistance */
concptr activation; /* A string describing an artifact's activation */
{ TV_CRUSADE_BOOK, "Crusade Spellbook" }, { TV_MUSIC_BOOK, "Music Spellbook" }, { TV_HISSATSU_BOOK, "Book of Kendo" }, { TV_HEX_BOOK, "Hex Spellbook" },
{ TV_PARCHMENT, "Parchment" }, { TV_WHISTLE, "Whistle" }, { TV_SPIKE, "Spikes" }, { TV_DIGGING, "Digger" }, { TV_CHEST, "Chest" },
{ TV_CAPTURE, "Capture Ball" }, { TV_CARD, "Express Card" }, { TV_FIGURINE, "Magical Figurine" }, { TV_STATUE, "Statue" }, { TV_CORPSE, "Corpse" },
- { TV_FOOD, "Food" }, { TV_FLASK, "Flask" }, { TV_JUNK, "Junk" }, { TV_SKELETON, "Skeleton" }, { 0, NULL } };
+ { TV_FOOD, "Food" }, { TV_FLASK, "Flask" }, { TV_JUNK, "Junk" }, { TV_SKELETON, "Skeleton" }, { 0, nullptr } };
/*!
* 選択処理用キーコード /
{
if (!creature_ptr->current_floor_ptr->inside_quest) {
msg_print("No current quest");
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
monster_race *r_ptr = &r_info[r_idx];
if (r_ptr->name.empty()) {
msg_print("そのモンスターは存在しません。");
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
if (n == 0) {
msg_print("出現数に制限がないモンスターです。");
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
std::stringstream ss;
ss << r_ptr->name << _("の出現数を復元しました。", " can appear again now.");
msg_print(ss.str().c_str());
- msg_print(NULL);
+ msg_print(nullptr);
}
test_roll = atol(tmp_val);
test_roll = MAX(1, test_roll);
msg_format("Creating a lot of %s items. Base level = %d.", quality, caster_ptr->current_floor_ptr->dun_level);
- msg_print(NULL);
+ msg_print(nullptr);
correct = matches = better = worse = other = 0;
for (i = 0; i <= test_roll; i++) {
}
msg_format(q, i, correct, matches, better, worse, other);
- msg_print(NULL);
+ msg_print(nullptr);
}
if (o_ptr->is_fixed_artifact())
"corrodeproof",
"fixed",
#endif
- NULL,
+ nullptr,
};
char buf[MAX_NLEN] = "\0";
blessed = true;
}
- for (int i = 0; fixed_str[i] != NULL; i++) {
+ for (int i = 0; fixed_str[i] != nullptr; i++) {
int len = strlen(fixed_str[i]);
if (!strncmp(str, fixed_str[i], len)) {
str = ltrim(str + len);
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, "opt_info.txt");
FILE *fff;
fff = angband_fopen(buf, "a");
- if (fff == NULL) {
+ if (fff == nullptr) {
msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), buf);
- msg_print(NULL);
+ msg_print(nullptr);
return;
}
current_world_ptr->noscore |= 0x0001;
msg_print(_("ウィザードモードに念を送り、死を欺いた。", "You invoke wizard mode and cheat death."));
- msg_print(NULL);
+ msg_print(nullptr);
creature_ptr->is_dead = false;
(void)life_stream(creature_ptr, false, false);
}
}
- ang_sort(&dummy, evol_tree, NULL, max_r_idx, ang_sort_comp_evol_tree, ang_sort_swap_evol_tree);
+ ang_sort(&dummy, evol_tree, nullptr, max_r_idx, ang_sort_comp_evol_tree, ang_sort_swap_evol_tree);
for (i = 0; i < max_r_idx; i++) {
r_idx = evol_tree[i][0];
if (!r_idx)
if (creature_ptr->dungeon_idx)
creature_ptr->recall_dungeon = creature_ptr->dungeon_idx;
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_RECALL, floor_ptr->dun_level, NULL);
+ exe_write_diary(creature_ptr, DIARY_RECALL, floor_ptr->dun_level, nullptr);
floor_ptr->dun_level = 0;
creature_ptr->dungeon_idx = 0;
msg_print(_("下に引きずり降ろされる感じがする!", "You feel yourself yanked downwards!"));
creature_ptr->dungeon_idx = creature_ptr->recall_dungeon;
if (record_stair)
- exe_write_diary(creature_ptr, DIARY_RECALL, floor_ptr->dun_level, NULL);
+ exe_write_diary(creature_ptr, DIARY_RECALL, floor_ptr->dun_level, nullptr);
floor_ptr->dun_level = max_dlv[creature_ptr->dungeon_idx];
if (floor_ptr->dun_level < 1)
process_world_monsters();
if (!this->hour && !this->min) {
if (this->min != prev_min) {
- exe_write_diary(this->player_ptr, DIARY_DIALY, 0, NULL);
+ exe_write_diary(this->player_ptr, DIARY_DIALY, 0, nullptr);
determine_daily_bounty(this->player_ptr, false);
}
}
if (number_mon == 0) {
msg_print(_("相打ちに終わりました。", "Nothing survived."));
- msg_print(NULL);
+ msg_print(nullptr);
this->player_ptr->energy_need = 0;
update_gambling_monsters(this->player_ptr);
return;
auto *wm_ptr = &this->player_ptr->current_floor_ptr->m_list[win_m_idx];
monster_desc(this->player_ptr, m_name, wm_ptr, 0);
msg_format(_("%sが勝利した!", "%s won!"), m_name);
- msg_print(NULL);
+ msg_print(nullptr);
if (win_m_idx == (sel_monster + 1)) {
msg_print(_("おめでとうございます。", "Congratulations."));
msg_print(_("残念でした。", "You lost gold."));
}
- msg_print(NULL);
+ msg_print(nullptr);
this->player_ptr->energy_need = 0;
update_gambling_monsters(this->player_ptr);
}
msg_print(_("申し訳ありませんが、この勝負は引き分けとさせていただきます。", "Sorry, but this battle ended in a draw."));
this->player_ptr->au += kakekin;
- msg_print(NULL);
+ msg_print(nullptr);
this->player_ptr->energy_need = 0;
update_gambling_monsters(this->player_ptr);
}
void update_playtime(void)
{
if (current_world_ptr->start_time != 0) {
- uint32_t tmp = (uint32_t)time(NULL);
+ uint32_t tmp = (uint32_t)time(nullptr);
current_world_ptr->play_time += (tmp - current_world_ptr->start_time);
current_world_ptr->start_time = tmp;
}