Replace NULL with nullptr
authorreaverb <reaverb.Crawl@gmail.com>
Sun, 30 Nov 2014 01:00:31 +0000 (20:00 -0500)
committerreaverb <reaverb.Crawl@gmail.com>
Sun, 30 Nov 2014 03:26:21 +0000 (22:26 -0500)
253 files changed:
crawl-ref/source/ability.cc
crawl-ref/source/abyss.cc
crawl-ref/source/acquire.cc
crawl-ref/source/acquire.h
crawl-ref/source/actor.cc
crawl-ref/source/actor.h
crawl-ref/source/areas.cc
crawl-ref/source/arena.cc
crawl-ref/source/art-func.h
crawl-ref/source/attack.cc
crawl-ref/source/attack.h
crawl-ref/source/attitude-change.cc
crawl-ref/source/beam.cc
crawl-ref/source/beam.h
crawl-ref/source/behold.cc
crawl-ref/source/bloodspatter.h
crawl-ref/source/branch-data.h
crawl-ref/source/chardump.cc
crawl-ref/source/chardump.h
crawl-ref/source/cio.cc
crawl-ref/source/cio.h
crawl-ref/source/cloud.cc
crawl-ref/source/clua.cc
crawl-ref/source/clua.h
crawl-ref/source/cluautil.cc
crawl-ref/source/cluautil.h
crawl-ref/source/colour.cc
crawl-ref/source/command.cc
crawl-ref/source/crash.cc
crawl-ref/source/ctest.cc
crawl-ref/source/database.cc
crawl-ref/source/database.h
crawl-ref/source/dbg-asrt.cc
crawl-ref/source/dbg-scan.cc
crawl-ref/source/decks.cc
crawl-ref/source/delay.cc
crawl-ref/source/delay.h
crawl-ref/source/describe-god.cc
crawl-ref/source/describe.cc
crawl-ref/source/describe.h
crawl-ref/source/dgn-labyrinth.cc
crawl-ref/source/dgn-shoals.cc
crawl-ref/source/dgn-swamp.cc
crawl-ref/source/dgnevent.cc
crawl-ref/source/directn.cc
crawl-ref/source/directn.h
crawl-ref/source/dlua.cc
crawl-ref/source/dungeon.cc
crawl-ref/source/dungeon.h
crawl-ref/source/effects.cc
crawl-ref/source/effects.h
crawl-ref/source/end.h
crawl-ref/source/english.cc
crawl-ref/source/english.h
crawl-ref/source/evoke.cc
crawl-ref/source/fearmonger.cc
crawl-ref/source/fight.cc
crawl-ref/source/fight.h
crawl-ref/source/files.cc
crawl-ref/source/files.h
crawl-ref/source/fineff.cc
crawl-ref/source/flood_find.h
crawl-ref/source/fontwrapper-ft.cc
crawl-ref/source/food.cc
crawl-ref/source/format.cc
crawl-ref/source/format.h
crawl-ref/source/ghost.cc
crawl-ref/source/glwrapper-ogl.cc
crawl-ref/source/godabil.cc
crawl-ref/source/godblessing.cc
crawl-ref/source/godblessing.h
crawl-ref/source/godconduct.cc
crawl-ref/source/godconduct.h
crawl-ref/source/godwrath.cc
crawl-ref/source/hiscores.cc
crawl-ref/source/hiscores.h
crawl-ref/source/initfile.cc
crawl-ref/source/invent.cc
crawl-ref/source/invent.h
crawl-ref/source/item_use.cc
crawl-ref/source/item_use.h
crawl-ref/source/itemname.cc
crawl-ref/source/itemname.h
crawl-ref/source/itemprop.h
crawl-ref/source/items.cc
crawl-ref/source/items.h
crawl-ref/source/json.cc
crawl-ref/source/json.h
crawl-ref/source/kills.cc
crawl-ref/source/l_colour.cc
crawl-ref/source/l_crawl.cc
crawl-ref/source/l_debug.cc
crawl-ref/source/l_dgn.cc
crawl-ref/source/l_dgnbld.cc
crawl-ref/source/l_dgnevt.cc
crawl-ref/source/l_dgngrd.cc
crawl-ref/source/l_dgnit.cc
crawl-ref/source/l_dgnlvl.cc
crawl-ref/source/l_dgnmon.cc
crawl-ref/source/l_dgntil.cc
crawl-ref/source/l_feat.cc
crawl-ref/source/l_file.cc
crawl-ref/source/l_food.cc
crawl-ref/source/l_item.cc
crawl-ref/source/l_los.cc
crawl-ref/source/l_mapgrd.cc
crawl-ref/source/l_mapmrk.cc
crawl-ref/source/l_moninf.cc
crawl-ref/source/l_mons.cc
crawl-ref/source/l_option.cc
crawl-ref/source/l_spells.cc
crawl-ref/source/l_subvault.cc
crawl-ref/source/l_travel.cc
crawl-ref/source/l_view.cc
crawl-ref/source/l_you.cc
crawl-ref/source/libutil.cc
crawl-ref/source/libw32c.cc
crawl-ref/source/los.cc
crawl-ref/source/losglobal.cc
crawl-ref/source/losparam.cc
crawl-ref/source/luaterp.cc
crawl-ref/source/macro.cc
crawl-ref/source/macro.h
crawl-ref/source/main.cc
crawl-ref/source/mapdef.cc
crawl-ref/source/mapdef.h
crawl-ref/source/mapmark.cc
crawl-ref/source/mapmark.h
crawl-ref/source/maps.cc
crawl-ref/source/matrix.h
crawl-ref/source/melee_attack.cc
crawl-ref/source/menu.cc
crawl-ref/source/menu.h
crawl-ref/source/message.cc
crawl-ref/source/message.h
crawl-ref/source/mgen_data.h
crawl-ref/source/misc.cc
crawl-ref/source/misc.h
crawl-ref/source/mon-abil.cc
crawl-ref/source/mon-act.cc
crawl-ref/source/mon-behv.cc
crawl-ref/source/mon-cast.cc
crawl-ref/source/mon-cast.h
crawl-ref/source/mon-clone.cc
crawl-ref/source/mon-clone.h
crawl-ref/source/mon-death.cc
crawl-ref/source/mon-ench.cc
crawl-ref/source/mon-grow.cc
crawl-ref/source/mon-info.cc
crawl-ref/source/mon-movetarget.cc
crawl-ref/source/mon-pathfind.cc
crawl-ref/source/mon-place.cc
crawl-ref/source/mon-poly.cc
crawl-ref/source/mon-speak.cc
crawl-ref/source/mon-tentacle.cc
crawl-ref/source/mon-transit.cc
crawl-ref/source/mon-util.cc
crawl-ref/source/monster.cc
crawl-ref/source/monster.h
crawl-ref/source/newgame.cc
crawl-ref/source/ng-init.cc
crawl-ref/source/options.h
crawl-ref/source/orb.h
crawl-ref/source/ouch.cc
crawl-ref/source/ouch.h
crawl-ref/source/pattern.cc
crawl-ref/source/pattern.h
crawl-ref/source/player-act.cc
crawl-ref/source/player-equip.cc
crawl-ref/source/player-reacts.cc
crawl-ref/source/player-stats.cc
crawl-ref/source/player-stats.h
crawl-ref/source/player.cc
crawl-ref/source/player.h
crawl-ref/source/prompt.h
crawl-ref/source/quiver.cc
crawl-ref/source/random-var.h
crawl-ref/source/random-weight.h
crawl-ref/source/random.cc
crawl-ref/source/ranged_attack.h
crawl-ref/source/religion.cc
crawl-ref/source/religion.h
crawl-ref/source/sacrifice-data.h
crawl-ref/source/shopping.cc
crawl-ref/source/shopping.h
crawl-ref/source/shout.cc
crawl-ref/source/shout.h
crawl-ref/source/skill_menu.cc
crawl-ref/source/spl-book.cc
crawl-ref/source/spl-cast.cc
crawl-ref/source/spl-cast.h
crawl-ref/source/spl-damage.cc
crawl-ref/source/spl-data.h
crawl-ref/source/spl-goditem.cc
crawl-ref/source/spl-miscast.cc
crawl-ref/source/spl-miscast.h
crawl-ref/source/spl-other.cc
crawl-ref/source/spl-selfench.cc
crawl-ref/source/spl-summoning.cc
crawl-ref/source/spl-summoning.h
crawl-ref/source/spl-util.cc
crawl-ref/source/spl-util.h
crawl-ref/source/spl-wpnench.cc
crawl-ref/source/sqldbm.cc
crawl-ref/source/startup.cc
crawl-ref/source/stash.cc
crawl-ref/source/stash.h
crawl-ref/source/state.cc
crawl-ref/source/status.cc
crawl-ref/source/store.cc
crawl-ref/source/syscalls.cc
crawl-ref/source/tags.cc
crawl-ref/source/target.cc
crawl-ref/source/terrain.cc
crawl-ref/source/terrain.h
crawl-ref/source/throw.cc
crawl-ref/source/throw.h
crawl-ref/source/tilebuf.cc
crawl-ref/source/tilebuf.h
crawl-ref/source/tiledoll.cc
crawl-ref/source/tilemcache.cc
crawl-ref/source/tilemcache.h
crawl-ref/source/tilereg-crt.cc
crawl-ref/source/tilereg-dgn.cc
crawl-ref/source/tilereg-grid.cc
crawl-ref/source/tilereg-map.cc
crawl-ref/source/tilereg-mon.cc
crawl-ref/source/tilereg-tab.cc
crawl-ref/source/tilereg-text.cc
crawl-ref/source/tilesdl.cc
crawl-ref/source/tilesdl.h
crawl-ref/source/tiletex.cc
crawl-ref/source/tiletex.h
crawl-ref/source/tileweb-text.cc
crawl-ref/source/tileweb.cc
crawl-ref/source/transform.cc
crawl-ref/source/traps.cc
crawl-ref/source/traps.h
crawl-ref/source/travel.cc
crawl-ref/source/travel.h
crawl-ref/source/view.cc
crawl-ref/source/view.h
crawl-ref/source/viewgeom.cc
crawl-ref/source/viewmap.cc
crawl-ref/source/windowmanager-sdl.cc
crawl-ref/source/windowmanager-sdl.h
crawl-ref/source/windowmanager.h
crawl-ref/source/wiz-fsim.cc
crawl-ref/source/wiz-mon.cc
crawl-ref/source/wiz-you.cc
crawl-ref/source/xom.cc
crawl-ref/source/zap-data.h
crawl-ref/source/zotdef.cc

index e89f974..6895ac0 100644 (file)
@@ -1617,7 +1617,8 @@ static bool _check_ability_possible(const ability_def& abil,
 
     case ABIL_OKAWARU_FINESSE:
         if (stasis_blocks_effect(false,
-                                 quiet ? NULL : "%s makes your neck tingle."))
+                                 quiet ? nullptr
+                                       : "%s makes your neck tingle."))
         {
             return false;
         }
@@ -2131,14 +2132,14 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
         targetter_beam tgt(&you, beam.range, ZAP_FIREBALL, power, 1, 1);
 
         if (!spell_direction(spd, beam, DIR_NONE, TARG_HOSTILE, beam.range,
-                             true, true, false, NULL,
+                             true, true, false, nullptr,
                              "Aiming: <white>Delayed Fireball</white>",
                              false, &tgt))
         {
             return SPRET_ABORT;
         }
 
-        if (!zapping(ZAP_FIREBALL, power, beam, true, NULL, false))
+        if (!zapping(ZAP_FIREBALL, power, beam, true, nullptr, false))
             return SPRET_ABORT;
 
         // Only one allowed, since this is instantaneous. - bwr
@@ -2177,7 +2178,7 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
         beam.range = 1;
         if (!spell_direction(abild, beam,
                              DIR_NONE, TARG_HOSTILE, 0, true, true, false,
-                             NULL, NULL, false,
+                             nullptr, nullptr, false,
                              &hitfunc))
         {
             return SPRET_ABORT;
@@ -2458,7 +2459,7 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
 
         monster* mons = monster_at(beam.target);
 
-        if (mons == NULL || !you.can_see(mons))
+        if (mons == nullptr || !you.can_see(mons))
         {
             mpr("There is no monster there to imprison!");
             return SPRET_ABORT;
@@ -2578,7 +2579,7 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
         }
 
         monster* mons = monster_at(beam.target);
-        if (mons == NULL || !you.can_see(mons)
+        if (mons == nullptr || !you.can_see(mons)
             || !ench_flavour_affects_monster(BEAM_ENSLAVE_SOUL, mons))
         {
             mpr("You see nothing there to enslave the soul of!");
@@ -2593,7 +2594,7 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
         }
         fail_check();
 
-        return zapping(ZAP_ENSLAVE_SOUL, power, beam, false, NULL, fail);
+        return zapping(ZAP_ENSLAVE_SOUL, power, beam, false, nullptr, fail);
     }
 
     case ABIL_SIF_MUNA_CHANNEL_ENERGY:
@@ -2834,7 +2835,7 @@ static spret_type _do_ability(const ability_def& abil, bool fail)
         }
 
         return zapping(ZAP_BANISHMENT, 16 + you.skill(SK_INVOCATIONS, 8), beam,
-                       true, NULL, fail);
+                       true, nullptr, fail);
 
     case ABIL_LUGONU_CORRUPT:
         fail_check();
@@ -3236,7 +3237,7 @@ static void _pay_ability_costs(const ability_def& abil, int zpcost)
 
     if (abil.flags & ABFLAG_NECRO_MISCAST_MINOR)
     {
-        MiscastEffect(&you, NULL, ABIL_MISCAST, SPTYP_NECROMANCY, 5, 90,
+        MiscastEffect(&you, nullptr, ABIL_MISCAST, SPTYP_NECROMANCY, 5, 90,
                       "power out of control");
     }
     if (abil.flags & ABFLAG_LEVEL_DRAIN)
@@ -3261,7 +3262,7 @@ int choose_ability_menu(const vector<talent>& talents)
                              | MF_TOGGLE_ACTION | MF_ALWAYS_SHOW_MORE,
                              text_only);
 
-    abil_menu.set_highlighter(NULL);
+    abil_menu.set_highlighter(nullptr);
 #ifdef USE_TILE_LOCAL
     {
         // Hack like the one in spl-cast.cc:list_spells() to align the title.
index d3fead4..bd67abd 100644 (file)
@@ -1021,7 +1021,7 @@ static ProceduralSample _abyss_grid(const coord_def &p)
         return sample;
     }
 
-    if (abyssLayout == NULL)
+    if (abyssLayout == nullptr)
     {
         const level_id lid = _get_random_level();
         levelLayout = new LevelLayout(lid, 5, rivers);
@@ -1244,13 +1244,13 @@ static void _abyss_apply_terrain(const map_bitmask &abyss_genlevel_mask,
         you.char_direction != GDT_GAME_START
         && _abyss_check_place_feat(p, 10000,
                                    &altars_wanted,
-                                   NULL,
+                                   nullptr,
                                    _abyss_pick_altar(),
                                    abyss_genlevel_mask)
         ||
         you.char_direction != GDT_GAME_START
         && level_id::current().depth < brdepth[BRANCH_ABYSS]
-        && _abyss_check_place_feat(p, 1900, NULL, NULL,
+        && _abyss_check_place_feat(p, 1900, nullptr, nullptr,
                                    DNGN_ABYSSAL_STAIR,
                                    abyss_genlevel_mask);
     }
index 97b88ed..ea25602 100644 (file)
@@ -1518,7 +1518,7 @@ bool acquirement(object_class_type class_wanted, int agent,
 
     int thing_created = NON_ITEM;
 
-    if (item_index == NULL)
+    if (item_index == nullptr)
         item_index = &thing_created;
 
     *item_index = NON_ITEM;
index 97015d2..39ff774 100644 (file)
@@ -7,7 +7,7 @@
 #define ACQUIRE_H
 
 bool acquirement(object_class_type force_class, int agent,
-                 bool quiet = false, int *item_index = NULL,
+                 bool quiet = false, int *item_index = nullptr,
                  bool debug = false);
 
 int acquirement_create_item(object_class_type class_wanted,
index 188a307..2e6e63c 100644 (file)
@@ -73,13 +73,13 @@ hands_reqd_type actor::hands_reqd(const item_def &item) const
 
 /**
  * Wrapper around the virtual actor::can_wield(const item_def&,bool,bool,bool,bool) const overload.
- * @param item May be NULL, in which case a dummy item will be passed in.
+ * @param item May be nullptr, in which case a dummy item will be passed in.
  */
 bool actor::can_wield(const item_def* item, bool ignore_curse,
                       bool ignore_brand, bool ignore_shield,
                       bool ignore_transform) const
 {
-    if (item == NULL)
+    if (item == nullptr)
     {
         // Unarmed combat.
         item_def fake;
@@ -113,7 +113,7 @@ bool actor::handle_trap()
     trap_def* trap = find_trap(pos());
     if (trap)
         trap->trigger(*this);
-    return trap != NULL;
+    return trap != nullptr;
 }
 
 int actor::skill_rdiv(skill_type sk, int mult, int div) const
index fc04212..152266e 100644 (file)
@@ -43,8 +43,8 @@ public:
     virtual bool      alive() const = 0;
 
     // Should return false for perma-summoned things.
-    virtual bool is_summoned(int* duration = NULL,
-                             int* summon_type = NULL) const = 0;
+    virtual bool is_summoned(int* duration = nullptr,
+                             int* summon_type = nullptr) const = 0;
 
     virtual bool is_perm_summoned() const = 0;
 
@@ -102,7 +102,7 @@ public:
         return weapon(0);
     }
     virtual random_var attack_delay(const item_def *weapon,
-                                    const item_def *projectile = NULL,
+                                    const item_def *projectile = nullptr,
                                     bool random = true, bool scaled = true,
                                     bool shield = true)
                                    const = 0;
@@ -116,7 +116,7 @@ public:
                             bool calc_unid = true) const = 0;
     virtual int scan_artefacts(artefact_prop_type which_property,
                                bool calc_unid = true,
-                               vector<item_def> *matches = NULL) const = 0;
+                               vector<item_def> *matches = nullptr) const = 0;
 
     virtual hands_reqd_type hands_reqd(const item_def &item) const;
 
@@ -152,9 +152,9 @@ public:
     virtual string pronoun(pronoun_type which_pronoun,
                            bool force_visible = false) const = 0;
     virtual string conj_verb(const string &verb) const = 0;
-    virtual string hand_name(bool plural, bool *can_plural = NULL) const = 0;
-    virtual string foot_name(bool plural, bool *can_plural = NULL) const = 0;
-    virtual string arm_name(bool plural, bool *can_plural = NULL) const = 0;
+    virtual string hand_name(bool plural, bool *can_plural = nullptr) const = 0;
+    virtual string foot_name(bool plural, bool *can_plural = nullptr) const = 0;
+    virtual string arm_name(bool plural, bool *can_plural = nullptr) const = 0;
 
     virtual bool fumbles_attack() = 0;
 
@@ -229,7 +229,7 @@ public:
     virtual void drain_stat(stat_type stat, int amount, actor* attacker) { }
     virtual void splash_with_acid(const actor* evildoer, int acid_strength = -1,
                                   bool allow_corrosion = true,
-                                  const char* hurt_msg = NULL) = 0;
+                                  const char* hurt_msg = nullptr) = 0;
 
     virtual bool can_hibernate(bool holi_only = false,
                                bool intrinsic_only = false) const;
@@ -314,7 +314,8 @@ public:
     virtual bool gourmand(bool calc_unid = true, bool items = true) const;
 
     virtual bool res_corr(bool calc_unid = true, bool items = true) const;
-    bool has_notele_item(bool calc_unid = true, vector<item_def> *matches = NULL) const;
+    bool has_notele_item(bool calc_unid = true,
+                         vector<item_def> *matches = nullptr) const;
     virtual bool stasis(bool calc_unid = true, bool items = true) const;
     virtual bool run(bool calc_unid = true, bool items = true) const;
     virtual bool angry(bool calc_unid = true, bool items = true) const;
@@ -420,7 +421,7 @@ public:
 
     // Map from mid to duration.
     typedef map<mid_t, int> constricting_t;
-    // Freed and set to NULL when empty.
+    // Freed and set to nullptr when empty.
     constricting_t *constricting;
 
     void start_constricting(actor &whom, int duration = 0);
index dc86fbd..a7c3650 100644 (file)
@@ -416,7 +416,7 @@ void create_sanctuary(const coord_def& center, int time)
     int       trap_count  = 0;
     int       scare_count = 0;
     int       cloud_count = 0;
-    monster* seen_mon    = NULL;
+    monster* seen_mon    = nullptr;
 
     // Since revealing mimics can move monsters, we do it first.
     for (radius_iterator ri(center, radius, C_POINTY); ri; ++ri)
@@ -520,7 +520,7 @@ void create_sanctuary(const coord_def& center, int time)
     if (blood_count > 0)
         mprf(MSGCH_GOD, "By Zin's power, all blood is cleared from the sanctuary.");
 
-    if (scare_count == 1 && seen_mon != NULL)
+    if (scare_count == 1 && seen_mon != nullptr)
         simple_monster_message(seen_mon, " turns to flee the light!");
     else if (scare_count > 0)
         mpr("The monsters scatter in all directions!");
index e9a152b..03d7fed 100644 (file)
@@ -128,7 +128,7 @@ namespace arena
     static bool cycle_random     = false;
     static uint32_t cycle_random_pos = 0;
 
-    static FILE *file = NULL;
+    static FILE *file = nullptr;
     static level_id place(BRANCH_DEPTHS, 1);
 
     static void adjust_spells(monster* mons, bool no_summons, bool no_animate)
@@ -152,7 +152,7 @@ namespace arena
 
     static void list_eq(const monster *mon)
     {
-        if (!Options.arena_list_eq || file == NULL)
+        if (!Options.arena_list_eq || file == nullptr)
             return;
 
         vector<int> items;
@@ -575,7 +575,7 @@ namespace arena
 
     static void dump_messages()
     {
-        if (!Options.arena_dump_msgs || file == NULL)
+        if (!Options.arena_dump_msgs || file == nullptr)
             return;
 
         vector<string> messages;
@@ -692,7 +692,7 @@ namespace arena
             return;
         }
 
-        if (file != NULL)
+        if (file != nullptr)
             fflush(file);
 
         cursor_control coff(true);
@@ -916,11 +916,11 @@ namespace arena
             game_ended_with_error(error);
         }
 
-        if (file != NULL)
+        if (file != nullptr)
             end(0, false, "Results file already open");
         file = fopen("arena.result", "w");
 
-        if (file != NULL)
+        if (file != nullptr)
         {
             string spec = find_monster_spec();
             fprintf(file, "%s\n", spec.c_str());
@@ -943,15 +943,15 @@ namespace arena
 
     static void global_shutdown()
     {
-        if (file != NULL)
+        if (file != nullptr)
             fclose(file);
 
-        file = NULL;
+        file = nullptr;
     }
 
     static void write_results()
     {
-        if (file != NULL)
+        if (file != nullptr)
         {
             if (Options.arena_dump_msgs || Options.arena_list_eq)
                 fprintf(file, "========================================\n");
@@ -965,12 +965,12 @@ namespace arena
 
     static void write_error(const string &error)
     {
-        if (file != NULL)
+        if (file != nullptr)
         {
             fprintf(file, "err: %s\n", error.c_str());
             fclose(file);
         }
-        file = NULL;
+        file = nullptr;
     }
 
     static void simulate()
@@ -1226,7 +1226,7 @@ void arena_monster_died(monster* mons, killer_type killer,
              && killer == KILL_MISC
              && killer_index == NON_MONSTER))
     {
-        arena::faction *fac = NULL;
+        arena::faction *fac = nullptr;
         if (mons->attitude == ATT_FRIENDLY)
             fac = &arena::faction_a;
         else if (mons->attitude == ATT_HOSTILE)
index 444249e..8f14e9f 100644 (file)
@@ -46,7 +46,7 @@ static void _equip_mpr(bool* show_msgs, const char* msg,
                        msg_channel_type chan = MSGCH_PLAIN)
 {
     bool do_show = true;
-    if (show_msgs == NULL)
+    if (show_msgs == nullptr)
         show_msgs = &do_show;
 
     if (*show_msgs)
@@ -153,7 +153,7 @@ static void _CURSES_equip(item_def *item, bool *show_msgs, bool unmeld)
     _equip_mpr(show_msgs, "A shiver runs down your spine.");
     if (!unmeld)
     {
-        MiscastEffect(&you, NULL, WIELD_MISCAST, SPTYP_NECROMANCY, random2(9),
+        MiscastEffect(&you, nullptr, WIELD_MISCAST, SPTYP_NECROMANCY, random2(9),
                       random2(70), "the Scythe of Curses", NH_NEVER);
     }
 }
@@ -327,7 +327,7 @@ static void _SINGING_SWORD_equip(item_def *item, bool *show_msgs, bool unmeld)
 {
     bool def_show = true;
 
-    if (show_msgs == NULL)
+    if (show_msgs == nullptr)
         show_msgs = &def_show;
 
     if (!*show_msgs)
@@ -450,7 +450,7 @@ static void _TROG_unequip(item_def *item, bool *show_msgs)
 
 static void _wucad_miscast(actor* victim, int power,int fail)
 {
-    MiscastEffect(victim, NULL, WIELD_MISCAST, SPTYP_DIVINATION, power, fail,
+    MiscastEffect(victim, nullptr, WIELD_MISCAST, SPTYP_DIVINATION, power, fail,
                   "the Staff of Wucad Mu", NH_NEVER);
 }
 
@@ -628,7 +628,7 @@ static monster* _find_nearest_possible_beholder()
         }
     }
 
-    return NULL;
+    return nullptr;
 }
 
 static void _DEMON_AXE_world_reacts(item_def *item)
@@ -982,7 +982,7 @@ static void _ELEMENTAL_STAFF_melee_effects(item_def*, actor* attacker,
     if (mondied || !(x_chance_in_y(evoc, 27*27) || x_chance_in_y(evoc, 27*27)))
         return;
 
-    const char *verb = NULL;
+    const char *verb = nullptr;
     beam_type flavour = BEAM_NONE;
 
     switch (random2(4))
index c77753f..2db78b4 100644 (file)
@@ -50,14 +50,14 @@ attack::attack(actor *attk, actor *defn, actor *blame)
       damage_done(0), special_damage(0), aux_damage(0), min_delay(0),
       final_attack_delay(0), special_damage_flavour(BEAM_NONE),
       stab_attempt(false), stab_bonus(0), apply_bleeding(false),
-      ev_margin(0), weapon(NULL),
+      ev_margin(0), weapon(nullptr),
       damage_brand(SPWPN_NORMAL), wpn_skill(SK_UNARMED_COMBAT),
-      shield(NULL), art_props(0), unrand_entry(NULL),
+      shield(nullptr), art_props(0), unrand_entry(nullptr),
       attacker_to_hit_penalty(0), attack_verb("bug"), verb_degree(),
       no_damage_message(), special_damage_message(), aux_attack(), aux_verb(),
       attacker_armour_tohit_penalty(0), attacker_shield_tohit_penalty(0),
-      defender_shield(NULL), miscast_level(-1), miscast_type(SPTYP_NONE),
-      miscast_target(NULL), fake_chaos_attack(false), simu(false),
+      defender_shield(nullptr), miscast_level(-1), miscast_type(SPTYP_NONE),
+      miscast_target(nullptr), fake_chaos_attack(false), simu(false),
       aux_source(""), kill_type(KILLED_BY_MONSTER)
 {
     // No effective code should execute, we'll call init_attack again from
@@ -284,7 +284,7 @@ int attack::calc_to_hit(bool random)
 
     // If no defender, we're calculating to-hit for debug-display
     // purposes, so don't drop down to defender code below
-    if (defender == NULL)
+    if (defender == nullptr)
         return mhit;
 
     if (!defender->visible_to(attacker))
@@ -577,7 +577,7 @@ bool attack::distortion_affects_defender()
 void attack::antimagic_affects_defender(int pow)
 {
     obvious_effect =
-        enchant_actor_with_flavour(defender, NULL, BEAM_DRAIN_MAGIC, pow);
+        enchant_actor_with_flavour(defender, nullptr, BEAM_DRAIN_MAGIC, pow);
 }
 
 void attack::pain_affects_defender()
@@ -993,7 +993,7 @@ void attack::do_miscast()
     if (miscast_level == -1)
         return;
 
-    ASSERT(miscast_target != NULL);
+    ASSERT(miscast_target != nullptr);
     ASSERT_RANGE(miscast_level, 0, 4);
     ASSERT(count_bits(miscast_type) == 1);
 
@@ -1233,7 +1233,7 @@ string attack::def_name(description_level_type desc)
  */
 string attack::wep_name(description_level_type desc, iflags_t ignre_flags)
 {
-    ASSERT(weapon != NULL);
+    ASSERT(weapon != nullptr);
 
     if (attacker->is_player())
         return weapon->name(desc, false, false, false, false, ignre_flags);
index fd2ded0..d3cfe05 100644 (file)
@@ -141,11 +141,11 @@ protected:
     // Determine if we're blocking (partially or entirely)
     virtual bool attack_shield_blocked(bool verbose);
     virtual bool attack_ignores_shield(bool verbose) = 0;
-    virtual bool apply_damage_brand(const char *what = NULL);
+    virtual bool apply_damage_brand(const char *what = nullptr);
     void calc_elemental_brand_damage(beam_type flavour,
                                      int res,
                                      const char *verb,
-                                     const char *what = NULL);
+                                     const char *what = nullptr);
 
     /* Weapon Effects */
     virtual bool check_unrand_effects() = 0;
index 7a06a45..8abfc27 100644 (file)
@@ -161,7 +161,7 @@ bool yred_slaves_abandon_you()
     for (radius_iterator ri(you.pos(), LOS_DEFAULT); ri; ++ri)
     {
         monster* mons = monster_at(*ri);
-        if (mons == NULL)
+        if (mons == nullptr)
             continue;
 
         if (is_yred_undead_slave(mons))
@@ -212,7 +212,7 @@ bool beogh_followers_abandon_you()
     for (radius_iterator ri(you.pos(), LOS_DEFAULT); ri; ++ri)
     {
         monster* mons = monster_at(*ri);
-        if (mons == NULL)
+        if (mons == nullptr)
             continue;
 
         // Note that orc high priests' summons are gifts of Beogh,
@@ -414,7 +414,7 @@ void gozag_set_bribe(monster* traitor)
         const monster* leader =
             traitor->props.exists("band_leader")
             ? monster_by_mid(traitor->props["band_leader"].get_int())
-            : NULL;
+            : nullptr;
 
         int cost = max(1, exper_value(traitor) / 20);
 
index ad6f406..af09cf4 100644 (file)
@@ -78,7 +78,7 @@
 #define SAP_MAGIC_CHANCE() x_chance_in_y(7, 10)
 
 // Helper functions (some of these should probably be public).
-static void _ench_animation(int flavour, const monster* mon = NULL,
+static void _ench_animation(int flavour, const monster* mon = nullptr,
                             bool force = false);
 static beam_type _chaos_beam_flavour(bolt* beam);
 static string _beam_type_name(beam_type type);
@@ -141,7 +141,7 @@ kill_category bolt::whose_kill() const
 
 // A simple animated flash from Rupert Smith (expanded to be more
 // generic).
-static void _zap_animation(int colour, const monster* mon = NULL,
+static void _zap_animation(int colour, const monster* mon = nullptr,
                            bool force = false)
 {
     coord_def p = you.pos();
@@ -357,7 +357,7 @@ public:
 struct zap_info
 {
     zap_type ztype;
-    const char* name;           // NULL means handled specially
+    const char* name;           // nullptr means handled specially
     int power_cap;
     dam_deducer* damage;
     tohit_deducer* tohit;       // Enchantments have power modifier here
@@ -388,7 +388,7 @@ static const zap_info* _seek_zap(zap_type z_type)
 {
     ASSERT_RANGE(z_type, 0, NUM_ZAPS);
     if (zap_index[z_type] == -1)
-        return NULL;
+        return nullptr;
     else
         return &zap_data[zap_index[z_type]];
 }
@@ -405,7 +405,7 @@ void zappy(zap_type z_type, int power, bolt &pbolt)
     const zap_info* zinfo = _seek_zap(z_type);
 
     // None found?
-    if (zinfo == NULL)
+    if (zinfo == nullptr)
     {
 #ifdef DEBUG_DIAGNOSTICS
         mprf(MSGCH_ERROR, "Couldn't find zap type %d", z_type);
@@ -545,11 +545,11 @@ void bolt::initialise_fire()
     use_target_as_pos  = false;
     hit_count.clear();
 
-    if (special_explosion != NULL)
+    if (special_explosion != nullptr)
     {
         ASSERT(!is_explosion);
         ASSERT(special_explosion->is_explosion);
-        ASSERT(special_explosion->special_explosion == NULL);
+        ASSERT(special_explosion->special_explosion == nullptr);
         special_explosion->in_explosion_phase = false;
         special_explosion->use_target_as_pos  = false;
     }
@@ -1210,12 +1210,12 @@ void bolt::fire()
     if (is_tracer)
     {
         bolt boltcopy = *this;
-        if (special_explosion != NULL)
+        if (special_explosion != nullptr)
             boltcopy.special_explosion = new bolt(*special_explosion);
 
         do_fire();
 
-        if (special_explosion != NULL)
+        if (special_explosion != nullptr)
         {
             _undo_tracer(*special_explosion, *boltcopy.special_explosion);
             delete boltcopy.special_explosion;
@@ -1226,7 +1226,7 @@ void bolt::fire()
     else
         do_fire();
 
-    if (special_explosion != NULL)
+    if (special_explosion != nullptr)
     {
         seen           = seen  || special_explosion->seen;
         heard          = heard || special_explosion->heard;
@@ -1840,8 +1840,8 @@ static bool _monster_resists_mass_enchantment(monster* mons,
 }
 
 // Enchants all monsters in player's sight.
-// If m_succumbed is non-NULL, will be set to the number of monsters that
-// were enchanted. If m_attempted is non-NULL, will be set to the number of
+// If m_succumbed is non-nullptr, will be set to the number of monsters that
+// were enchanted. If m_attempted is not nullptr, will be set to the number of
 // monsters that we tried to enchant.
 spret_type mass_enchantment(enchant_type wh_enchant, int pow, bool fail)
 {
@@ -1880,7 +1880,7 @@ spret_type mass_enchantment(enchant_type wh_enchant, int pow, bool fail)
             case ENCH_FEAR:      msg = " looks frightened!";      break;
             case ENCH_CONFUSION: msg = " looks rather confused."; break;
             case ENCH_CHARM:     msg = " submits to your will.";  break;
-            default:             msg = NULL;                      break;
+            default:             msg = nullptr;                   break;
             }
             if (msg && simple_monster_message(*mi, msg))
                 did_msg = true;
@@ -2621,7 +2621,7 @@ bool bolt::stop_at_target() const
 
 void bolt::drop_object()
 {
-    ASSERT(item != NULL);
+    ASSERT(item != nullptr);
     ASSERT(item->defined());
 
     // Conditions: beam is missile and not tracer.
@@ -2706,7 +2706,7 @@ void bolt::affect_ground()
 
             if (create_monster(mgen_data(MONS_BALLISTOMYCETE,
                                          beh,
-                                         NULL,
+                                         nullptr,
                                          0,
                                          0,
                                          pos(),
@@ -2901,7 +2901,7 @@ void bolt::affect_place_explosion_clouds()
                          p, MHITNOT, 0, god);
 
             // Spell-summoned monsters need to have a live summoner.
-            if (summ == NULL || !summ->alive())
+            if (summ == nullptr || !summ->alive())
             {
                 if (!source_name.empty())
                     mg.non_actor_summoner = source_name;
@@ -2917,7 +2917,7 @@ void bolt::affect_place_explosion_clouds()
 // A little helper function to handle the calling of ouch()...
 void bolt::internal_ouch(int dam)
 {
-    monster* monst = NULL;
+    monster* monst = nullptr;
     monst = monster_by_mid(source_id);
 
     const char *what = aux_source.empty() ? name.c_str() : aux_source.c_str();
@@ -2930,8 +2930,8 @@ void bolt::internal_ouch(int dam)
         && !monst->mname.empty())
     {
         ouch(dam, KILLED_BY_DIVINE_WRATH, MID_NOBODY,
-             aux_source.empty() ? NULL : aux_source.c_str(), true,
-             source_name.empty() ? NULL : source_name.c_str());
+             aux_source.empty() ? nullptr : aux_source.c_str(), true,
+             source_name.empty() ? nullptr : source_name.c_str());
     }
     else if (monst && (monst->type == MONS_GIANT_SPORE
                        || monst->type == MONS_BALL_LIGHTNING
@@ -2942,12 +2942,12 @@ void bolt::internal_ouch(int dam)
     {
         ouch(dam, KILLED_BY_SPORE, source_id,
              aux_source.c_str(), true,
-             source_name.empty() ? NULL : source_name.c_str());
+             source_name.empty() ? nullptr : source_name.c_str());
     }
     else if (flavour == BEAM_DISINTEGRATION || flavour == BEAM_DEVASTATION)
     {
         ouch(dam, KILLED_BY_DISINT, source_id, what, true,
-             source_name.empty() ? NULL : source_name.c_str());
+             source_name.empty() ? nullptr : source_name.c_str());
     }
     else if (YOU_KILL(thrower) && aux_source.empty())
     {
@@ -2966,7 +2966,7 @@ void bolt::internal_ouch(int dam)
     else if (MON_KILL(thrower) || aux_source == "exploding inner flame")
         ouch(dam, KILLED_BY_BEAM, source_id,
              aux_source.c_str(), true,
-             source_name.empty() ? NULL : source_name.c_str());
+             source_name.empty() ? nullptr : source_name.c_str());
     else // KILL_MISC || (YOU_KILL && aux_source)
         ouch(dam, KILLED_BY_WILD_MAGIC, source_id, aux_source.c_str());
 }
@@ -3447,7 +3447,7 @@ void bolt::affect_player_enchantment(bool resistible)
     {
     case BEAM_HIBERNATION:
     case BEAM_SLEEP:
-        you.put_to_sleep(NULL, ench_power, flavour == BEAM_HIBERNATION);
+        you.put_to_sleep(nullptr, ench_power, flavour == BEAM_HIBERNATION);
         break;
 
     case BEAM_CORONA:
@@ -5034,7 +5034,7 @@ bool bolt::ignores_monster(const monster* mon) const
     if (flavour == BEAM_DIGGING)
         return true;
 
-    // The targetters might call us with NULL in the event of a remembered
+    // The targetters might call us with nullptr in the event of a remembered
     // monster that is no longer there. Treat it as opaque.
     if (!mon)
         return false;
@@ -5822,8 +5822,8 @@ void bolt::refine_for_explosion()
 {
     ASSERT(!special_explosion);
 
-    const char *seeMsg  = NULL;
-    const char *hearMsg = NULL;
+    const char *seeMsg  = nullptr;
+    const char *hearMsg = nullptr;
 
     if (ex_size == 0)
         ex_size = 1;
@@ -5835,7 +5835,7 @@ void bolt::refine_for_explosion()
     // tmp needed so that what c_str() points to doesn't go out of scope
     // before the function ends.
     string tmp;
-    if (item != NULL)
+    if (item != nullptr)
     {
         tmp  = "The " + item->name(DESC_PLAIN, false, false, false)
                + " explodes!";
@@ -5912,7 +5912,7 @@ void bolt::refine_for_explosion()
         ex_size = 1;
     }
 
-    if (seeMsg == NULL)
+    if (seeMsg == nullptr)
     {
         seeMsg  = "The beam explodes into a cloud of software bugs!";
         hearMsg = "You hear the sound of one hand!";
@@ -6321,7 +6321,7 @@ bool bolt::nice_to(const monster* mon) const
 // (extended from setup_mons_cast() and zapping() which act as limited ones).
 bolt::bolt() : origin_spell(SPELL_NO_SPELL),
                range(-2), glyph('*'), colour(BLACK), flavour(BEAM_MAGIC),
-               real_flavour(BEAM_MAGIC), drop_item(false), item(NULL),
+               real_flavour(BEAM_MAGIC), drop_item(false), item(nullptr),
                source(), target(), damage(0, 0), ench_power(0), hit(0),
                thrower(KILL_MISC), ex_size(0), source_id(MID_NOBODY),
                source_name(), name(), short_name(), hit_verb(),
@@ -6330,7 +6330,7 @@ bolt::bolt() : origin_spell(SPELL_NO_SPELL),
                affects_nothing(false), affects_items(true), effect_known(true),
                effect_wanton(false),
                draw_delay(15), explode_delay(50),
-               special_explosion(NULL), was_missile(false),
+               special_explosion(nullptr), was_missile(false),
                animate(Options.use_animations & UA_BEAM),
                ac_rule(AC_NORMAL),
 #ifdef DEBUG_DIAGNOSTICS
@@ -6401,7 +6401,7 @@ void bolt::setup_retrace()
 
 void bolt::set_agent(actor *actor)
 {
-    // NULL actor is fine by us.
+    // nullptr actor is fine by us.
     if (!actor)
         return;
 
@@ -6442,7 +6442,7 @@ string bolt::get_short_name() const
     if (!short_name.empty())
         return short_name;
 
-    if (item != NULL && item->defined())
+    if (item != nullptr && item->defined())
     {
         return item->name(DESC_A, false, false, false, false,
                           ISFLAG_IDENT_MASK | ISFLAG_COSMETIC_MASK);
@@ -6578,7 +6578,7 @@ string bolt::get_source_name() const
  * The bolts that knockback flying actors or actors only when damage
  * is dealt will return when.
  *
- * @param act The target actor. If not-NULL, check if the actor is flying for
+ * @param act The target actor. If not-nullptr, check if the actor is flying for
  *            bolts that knockback flying actors.
  * @param dam The damage dealt. If non-negative, check that dam > 0 for bolts
  *             like force bolt that only push back upon damage.
index 6d9c079..54a4632 100644 (file)
@@ -282,7 +282,7 @@ public:
     void determine_affected_cells(explosion_map& m, const coord_def& delta,
                                   int count, int r,
                                   bool stop_at_statues, bool stop_at_walls);
-    bool can_knockback(const actor *act = NULL, int dam = -1) const;
+    bool can_knockback(const actor *act = nullptr, int dam = -1) const;
 };
 
 int mons_adjust_flavoured(monster* mons, bolt &pbolt, int hurted,
@@ -312,7 +312,7 @@ void fire_tracer(const monster* mons, bolt &pbolt,
 bool imb_can_splash(coord_def origin, coord_def center,
                     vector<coord_def> path_taken, coord_def target);
 spret_type zapping(zap_type ztype, int power, bolt &pbolt,
-                   bool needs_tracer = false, const char* msg = NULL,
+                   bool needs_tracer = false, const char* msg = nullptr,
                    bool fail = false);
 bool player_tracer(zap_type ztype, int power, bolt &pbolt, int range = 0);
 
index 67164c4..b718b41 100644 (file)
@@ -87,7 +87,7 @@ monster* player::get_beholder(const coord_def &target) const
         if (olddist < newdist)
             return mon;
     }
-    return NULL;
+    return nullptr;
 }
 
 monster* player::get_any_beholder() const
@@ -95,7 +95,7 @@ monster* player::get_any_beholder() const
     if (!beholders.empty())
         return monster_by_mid(beholders[0]);
     else
-        return NULL;
+        return nullptr;
 }
 
 // Removes a monster from the list of beholders if present.
index 1e82fa0..90f7c6c 100644 (file)
@@ -12,7 +12,7 @@ void bleed_onto_floor(const coord_def& where, monster_type mon, int damage,
                       const bool old_blood = false);
 void blood_spray(const coord_def& where, monster_type mon, int level);
 void generate_random_blood_spatter_on_level(
-                                            const map_bitmask *susceptible_area = NULL);
+                                            const map_bitmask *susceptible_area = nullptr);
 
 // Set FPROP_BLOODY after checking bleedability.
 bool maybe_bloodify_square(const coord_def& where);
index b36b5c1..7efefb0 100644 (file)
@@ -14,7 +14,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       NUM_FEATURES, DNGN_EXIT_DUNGEON,
       "Dungeon", "the Dungeon", "D",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'D', false, 0 },
 
@@ -22,7 +22,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_TEMPLE, DNGN_RETURN_FROM_TEMPLE,
       "Temple", "the Ecumenical Temple", "Temple",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'T', false, 0 },
 
@@ -30,7 +30,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_ORC, DNGN_RETURN_FROM_ORC,
       "Orcish Mines", "the Orcish Mines", "Orc",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'O', false, 4 },
 
@@ -38,7 +38,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_ELF, DNGN_RETURN_FROM_ELF,
       "Elven Halls", "the Elven Halls", "Elf",
-      NULL,
+      nullptr,
       WHITE, ETC_ELVEN_BRICK,
       'E', true, 0 },
 
@@ -47,7 +47,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_DWARF, DNGN_RETURN_FROM_DWARF,
       "Dwarven Hall", "the Dwarven Hall", "Dwarf",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'K', false, 0 },
 #endif
@@ -56,7 +56,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_LAIR, DNGN_RETURN_FROM_LAIR,
       "Lair", "the Lair of Beasts", "Lair",
-      NULL,
+      nullptr,
       GREEN, BROWN,
       'L', false, 4 },
 
@@ -64,7 +64,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_SWAMP, DNGN_RETURN_FROM_SWAMP,
       "Swamp", "the Swamp", "Swamp",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'S', true, 0 },
 
@@ -72,7 +72,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED, 0,
       DNGN_ENTER_SHOALS, DNGN_RETURN_FROM_SHOALS,
       "Shoals", "the Shoals", "Shoals",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'A', true, 3 },
 
@@ -80,7 +80,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_SNAKE, DNGN_RETURN_FROM_SNAKE,
       "Snake Pit", "the Snake Pit", "Snake",
-      NULL,
+      nullptr,
       LIGHTGREEN, YELLOW,
       'P', true, 0 },
 
@@ -88,7 +88,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_SPIDER, DNGN_RETURN_FROM_SPIDER,
       "Spider Nest", "the Spider Nest", "Spider",
-      NULL,
+      nullptr,
       BROWN, YELLOW,
       'N', true, 0 },
 
@@ -96,7 +96,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_SLIME, DNGN_RETURN_FROM_SLIME,
       "Slime Pits", "the Pits of Slime", "Slime",
-      NULL,
+      nullptr,
       GREEN, BROWN,
       'M', true, -5 },
 
@@ -104,7 +104,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_VAULTS, DNGN_RETURN_FROM_VAULTS,
       "Vaults", "the Vaults", "Vaults",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'V', true, 0 },
 #if TAG_MAJOR_VERSION == 34
@@ -112,7 +112,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_BLADE, DNGN_RETURN_FROM_BLADE,
       "Hall of Blades", "the Hall of Blades", "Blade",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'B', false, -7 },
 #endif
@@ -121,7 +121,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_CRYPT, DNGN_RETURN_FROM_CRYPT,
       "Crypt", "the Crypt", "Crypt",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'C', true, -3 },
 
@@ -129,7 +129,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED, LFLAG_NO_TELE_CONTROL,
       DNGN_ENTER_TOMB, DNGN_RETURN_FROM_TOMB,
       "Tomb", "the Tomb of the Ancients", "Tomb",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'W', true, -10 },
 
@@ -145,7 +145,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_DIS, DNGN_ENTER_HELL,
       "Dis", "the Iron City of Dis", "Dis",
-      NULL,
+      nullptr,
       CYAN, BROWN,
       'I', true, 0 },
 
@@ -153,7 +153,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_GEHENNA, DNGN_ENTER_HELL,
       "Gehenna", "Gehenna", "Geh",
-      NULL,
+      nullptr,
       BROWN, RED,
       'G', true, 0 },
 
@@ -161,7 +161,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_COCYTUS, DNGN_ENTER_HELL,
       "Cocytus", "Cocytus", "Coc",
-      NULL,
+      nullptr,
       LIGHTBLUE, LIGHTCYAN,
       'X', true, 0 },
 
@@ -169,7 +169,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_ISLANDED | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_TARTARUS, DNGN_ENTER_HELL,
       "Tartarus", "Tartarus", "Tar",
-      NULL,
+      nullptr,
       MAGENTA, MAGENTA,
       'Y', true, 0 },
 
@@ -177,7 +177,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_ZOT, DNGN_RETURN_FROM_ZOT,
       "Zot", "the Realm of Zot", "Zot",
-      NULL,
+      nullptr,
       BLACK, BLACK, // set per-map
       'Z', true, 0 },
 #if TAG_MAJOR_VERSION == 34
@@ -185,7 +185,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_FOREST, DNGN_RETURN_FROM_FOREST,
       "Forest", "the Enchanted Forest", "Forest",
-      NULL,
+      nullptr,
       BROWN, BROWN,
       'F', true, 0 },
 #endif
@@ -194,7 +194,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL, LFLAG_NO_TELE_CONTROL | LFLAG_NO_MAP,
       DNGN_ENTER_ABYSS, DNGN_EXIT_ABYSS,
       "Abyss", "the Abyss", "Abyss",
-      NULL,
+      nullptr,
       BLACK, BLACK, // set specially
       'J', false, 0 },
 
@@ -239,7 +239,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_TROVE, DNGN_EXIT_TROVE,
       "Trove", "a treasure trove", "Trove",
-      NULL,
+      nullptr,
       DARKGREY, BLUE,
       '2', false, 0 },
 
@@ -247,7 +247,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_SEWER, DNGN_EXIT_SEWER,
       "Sewer", "a sewer", "Sewer",
-      NULL,
+      nullptr,
       LIGHTGREY, BLUE,
       '3', false, 0 },
 
@@ -255,7 +255,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_OSSUARY, DNGN_EXIT_OSSUARY,
       "Ossuary", "an ossuary", "Ossuary",
-      NULL,
+      nullptr,
       WHITE, YELLOW,
       '4', false, 0 },
 
@@ -263,7 +263,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_BAILEY, DNGN_EXIT_BAILEY,
       "Bailey", "a bailey", "Bailey",
-      NULL,
+      nullptr,
       WHITE, LIGHTRED,
       '5', false, 0 },
 
@@ -271,7 +271,7 @@ const Branch branches[NUM_BRANCHES] =
           BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_ICE_CAVE, DNGN_EXIT_ICE_CAVE,
       "Ice Cave", "an ice cave", "IceCv",
-      NULL,
+      nullptr,
       BLUE, WHITE,
       '6', false, 0 },
 
@@ -279,7 +279,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_VOLCANO, DNGN_EXIT_VOLCANO,
       "Volcano", "a volcano", "Volcano",
-      NULL,
+      nullptr,
       RED, RED,
       '7', false, 0 },
 
@@ -287,7 +287,7 @@ const Branch branches[NUM_BRANCHES] =
       BFLAG_NO_XLEV_TRAVEL | BFLAG_NO_ITEMS, 0,
       DNGN_ENTER_WIZLAB, DNGN_EXIT_WIZLAB,
       "Wizlab", "a wizard's laboratory", "WizLab",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN, // set per-map
       '8', false, 0 },
 
@@ -295,7 +295,7 @@ const Branch branches[NUM_BRANCHES] =
       0, 0,
       DNGN_ENTER_DEPTHS, DNGN_RETURN_FROM_DEPTHS,
       "Depths", "the Depths", "Depths",
-      NULL,
+      nullptr,
       LIGHTGREY, BROWN,
       'U', false, 0 },
 };
index eaae09e..95cbf45 100644 (file)
@@ -102,7 +102,7 @@ struct dump_params
     const scorefile_entry *se;
 
     dump_params(string &_text, const string &sec = "",
-                bool id = false, const scorefile_entry *s = NULL)
+                bool id = false, const scorefile_entry *s = nullptr)
         : text(_text), section(sec), full_id(id), se(s)
     {
     }
@@ -141,9 +141,9 @@ static dump_section_handler dump_handlers[] =
     { "-",              _sdump_separator     },
 
 #ifdef CLUA_BINDINGS
-    { NULL,             _sdump_lua           }
+    { nullptr,          _sdump_lua           }
 #else
-    { NULL,             NULL                }
+    { nullptr,          nullptr              }
 #endif
 };
 
@@ -1410,7 +1410,7 @@ static bool _write_dump(const string &fname, dump_params &par, bool quiet)
 
     dprf("File name: %s", file_name.c_str());
 
-    if (handle != NULL)
+    if (handle != nullptr)
     {
         fputs(OUTS(par.text), handle);
         fclose(handle);
@@ -1532,7 +1532,7 @@ static bool _dgl_unknown_timestamp_file(const string &filename)
     return false;
 }
 
-// Returns a filehandle to use to write turn timestamps, NULL if
+// Returns a filehandle to use to write turn timestamps, nullptr if
 // timestamps should not be written.
 static FILE *_dgl_timestamp_filehandle()
 {
@@ -1602,7 +1602,7 @@ static void _dgl_record_timestamp(int turn)
 {
     if (turn && turn < TIMESTAMP_TURN_MAX && !(turn % TIMESTAMP_TURN_INTERVAL))
     {
-        const time_t now = time(NULL);
+        const time_t now = time(nullptr);
         const unsigned long offset =
             (VERSION_SIZE +
              (turn / TIMESTAMP_TURN_INTERVAL - 1) * TIMESTAMP_SIZE);
index 02f1193..ef80c27 100644 (file)
@@ -26,7 +26,7 @@ enum item_origin_dump_selector
 class scorefile_entry;
 string morgue_directory();
 bool dump_char(const string &fname, bool quiet = false, bool full_id = false,
-               const scorefile_entry *se = NULL);
+               const scorefile_entry *se = nullptr);
 void dump_map(const char* fname, bool debug = false, bool dist = false);
 void dump_map(FILE *fp, bool debug = false, bool dist = false);
 void display_notes();
index e9d4d25..7046196 100644 (file)
@@ -213,7 +213,7 @@ void input_history::new_input(const string &s)
 const string *input_history::prev()
 {
     if (history.empty())
-        return NULL;
+        return nullptr;
 
     if (pos == history.begin())
         pos = history.end();
@@ -224,7 +224,7 @@ const string *input_history::prev()
 const string *input_history::next()
 {
     if (history.empty())
-        return NULL;
+        return nullptr;
 
     if (pos == history.end() || ++pos == history.end())
         pos = history.begin();
@@ -247,9 +247,9 @@ void input_history::clear()
 // line_reader
 
 line_reader::line_reader(char *buf, size_t sz, int wrap)
-    : buffer(buf), bufsz(sz), history(NULL), region(GOTO_CRT),
-      start(coord_def(0,0)), keyfn(NULL), wrapcol(wrap),
-      cur(NULL), length(0), pos(-1)
+    : buffer(buf), bufsz(sz), history(nullptr), region(GOTO_CRT),
+      start(coord_def(0,0)), keyfn(nullptr), wrapcol(wrap),
+      cur(nullptr), length(0), pos(-1)
 {
 }
 
index 13a8ccb..4dec616 100644 (file)
@@ -55,8 +55,8 @@ void nowrap_eol_cprintf(PRINTF(0, ));
 // pressed Escape
 int cancellable_get_line(char *buf,
                          int len,
-                         input_history *mh = NULL,
-                         int (*keyproc)(int &c) = NULL,
+                         input_history *mh = nullptr,
+                         int (*keyproc)(int &c) = nullptr,
                          const string &fill = "",
                          const string &tag = "");
 
index fe1b916..5ef8cfc 100644 (file)
@@ -36,7 +36,7 @@ struct cloud_data
 {
     /// A (relatively) short name for the cloud. May be referenced from lua.
     const char* terse_name;
-    /// Another name for the cloud. If NULL, defaults to terse name.
+    /// Another name for the cloud. If nullptr, defaults to terse name.
     const char* verbose_name;
     /// The colour of the cloud in console.
     colour_t colour;
@@ -60,7 +60,7 @@ static const cloud_data clouds[] = {
        15, 46,                                  // base, expected random damage
     },
     // CLOUD_MEPHITIC,
-    { "noxious fumes", NULL,                    // terse, verbose name
+    { "noxious fumes", nullptr,                 // terse, verbose name
       GREEN,                                    // colour
       BEAM_MEPHITIC,                            // beam_effect
       0, 19,                                    // base, expected random damage
@@ -72,29 +72,29 @@ static const cloud_data clouds[] = {
       15, 46,                                   // base, expected random damage
     },
     // CLOUD_POISON,
-    { "poison gas", NULL,                       // terse, verbose name
+    { "poison gas", nullptr,                    // terse, verbose name
       LIGHTGREEN,                               // colour
       BEAM_POISON,                              // beam_effect
       0, 37,                                    // base, expected random damage
     },
     // CLOUD_BLACK_SMOKE,
-    { "black smoke",  NULL,                     // terse, verbose name
+    { "black smoke",  nullptr,                  // terse, verbose name
       DARKGREY,                                 // colour
     },
     // CLOUD_GREY_SMOKE,
-    { "grey smoke",  NULL,                      // terse, verbose name
+    { "grey smoke",  nullptr,                   // terse, verbose name
       LIGHTGREY,                                // colour
     },
     // CLOUD_BLUE_SMOKE,
-    { "blue smoke",  NULL,                      // terse, verbose name
+    { "blue smoke",  nullptr,                   // terse, verbose name
       LIGHTBLUE,                                // colour
     },
     // CLOUD_PURPLE_SMOKE,
-    { "purple smoke",  NULL,                    // terse, verbose name
+    { "purple smoke",  nullptr,                 // terse, verbose name
       MAGENTA,                                  // colour
     },
     // CLOUD_TLOC_ENERGY,
-    { "translocational energy",  NULL,          // terse, verbose name
+    { "translocational energy",  nullptr,       // terse, verbose name
       MAGENTA,                                  // colour
     },
     // CLOUD_FOREST_FIRE,
@@ -116,17 +116,17 @@ static const cloud_data clouds[] = {
     },
 #endif
     // CLOUD_INK,
-    { "ink",  NULL,                             // terse, verbose name
+    { "ink",  nullptr,                          // terse, verbose name
       DARKGREY,                                 // colour
       BEAM_INK,                                 // beam_effect
     },
     // CLOUD_PETRIFY,
-    { "calcifying dust",  NULL,                 // terse, verbose name
+    { "calcifying dust",  nullptr,              // terse, verbose name
       WHITE,                                    // colour
       BEAM_PETRIFYING_CLOUD,                    // beam_effect
     },
     // CLOUD_HOLY_FLAMES,
-    { "blessed fire", NULL,                     // terse, verbose name
+    { "blessed fire", nullptr,                  // terse, verbose name
       ETC_HOLY,                                 // colour
       BEAM_HOLY_FLAME,                          // beam_effect
       15, 46,                                   // base, expected random damage
@@ -137,11 +137,11 @@ static const cloud_data clouds[] = {
       BEAM_MIASMA,                              // beam_effect
     },
     // CLOUD_MIST,
-    { "thin mist", NULL,                        // terse, verbose name
+    { "thin mist", nullptr,                     // terse, verbose name
       ETC_MIST,                                 // colour
     },
     // CLOUD_CHAOS,
-    { "seething chaos", NULL,                   // terse, verbose name
+    { "seething chaos", nullptr,                // terse, verbose name
       ETC_RANDOM,                               // colour
       BEAM_CHAOS,                               // beam_effect
     },
@@ -150,29 +150,29 @@ static const cloud_data clouds[] = {
       ETC_MIST,                                 // colour
     },
     // CLOUD_MUTAGENIC,
-    { "mutagenic fog",  NULL,                   // terse, verbose name
+    { "mutagenic fog",  nullptr,                // terse, verbose name
       ETC_MUTAGENIC,                            // colour
     },
     // CLOUD_MAGIC_TRAIL,
-    { "magical condensation", NULL,             // terse, verbose name
+    { "magical condensation", nullptr,          // terse, verbose name
       ETC_MAGIC,                                // colour
     },
     // CLOUD_TORNADO,
-    { "raging winds", NULL,                     // terse, verbose name
+    { "raging winds", nullptr,                  // terse, verbose name
       ETC_TORNADO,                              // colour
     },
     // CLOUD_DUST_TRAIL,
-    { "sparse dust",  NULL,                     // terse, verbose name
+    { "sparse dust",  nullptr,                  // terse, verbose name
       ETC_EARTH,                                // colour
     },
     // CLOUD_GHOSTLY_FLAME,
-    { "ghostly flame", NULL,                    // terse, verbose name
+    { "ghostly flame", nullptr,                 // terse, verbose name
       ETC_ELECTRICITY,                          // colour
       BEAM_NONE,                                // beam_effect
       0, 25,                                    // base, expected random damage
     },
     // CLOUD_ACID,
-    { "acidic fog", NULL,                       // terse, verbose name
+    { "acidic fog", nullptr,                    // terse, verbose name
       YELLOW,                                   // colour
       BEAM_ACID,                                // beam_effect
       15, 46,                                   // base, random expected damage
@@ -184,7 +184,7 @@ static const cloud_data clouds[] = {
       60, 46,                                   // base, random expected damage
     },
     // CLOUD_NEGATIVE_ENERGY,
-    { "negative energy", NULL,                  // terse, verbose name
+    { "negative energy", nullptr,               // terse, verbose name
       ETC_INCARNADINE,                          // colour
       BEAM_NEG,                                 // beam_effect
       15, 46,                                   // base, random expected damage
@@ -522,7 +522,7 @@ void manage_clouds()
                 if (you_see && !you_worship(GOD_QAZLAL))
                     mpr("Lightning arcs down from a storm cloud!");
                 noisy(spell_effect_noise(SPELL_LIGHTNING_BOLT), cloud.pos,
-                      you_see || you_worship(GOD_QAZLAL) ? NULL
+                      you_see || you_worship(GOD_QAZLAL) ? nullptr
                       : "You hear a mighty clap of thunder!");
             }
             if (grd(cloud.pos) == DNGN_LAVA)
@@ -1056,7 +1056,7 @@ static bool _actor_apply_cloud_side_effects(actor *act,
                                             int final_damage)
 {
     const bool player = act->is_player();
-    monster *mons = !player? act->as_monster() : NULL;
+    monster *mons = !player? act->as_monster() : nullptr;
     switch (cloud.type)
     {
     case CLOUD_RAIN:
@@ -1329,7 +1329,7 @@ static int _actor_cloud_damage(const actor *act,
         noisy(spell_effect_noise(SPELL_LIGHTNING_BOLT), act->pos(),
               act->is_player() || you.see_cell(act->pos())
               || you_worship(GOD_QAZLAL)
-                ? NULL
+                ? nullptr
                 : "You hear a clap of thunder!");
 
         return lightning_dam;
@@ -1352,7 +1352,7 @@ int actor_apply_cloud(actor *act)
 
     const cloud_struct &cloud(env.cloud[cl]);
     const bool player = act->is_player();
-    monster *mons = !player? act->as_monster() : NULL;
+    monster *mons = !player? act->as_monster() : nullptr;
     const beam_type cloud_flavour = _cloud2beam(cloud.type);
 
     if (actor_cloud_immune(act, cloud))
@@ -1607,7 +1607,7 @@ string cloud_type_name(cloud_type type, bool terse)
         return "buggy goodness";
 
     ASSERT(clouds[type].terse_name);
-    if (terse || clouds[type].verbose_name == NULL)
+    if (terse || clouds[type].verbose_name == nullptr)
         return clouds[type].terse_name;
     return clouds[type].verbose_name;
 }
@@ -1819,7 +1819,7 @@ static void _spread_cloud(coord_def pos, cloud_type type, int radius, int pow,
         if ((exp_map(*di - pos + centre) < INT_MAX) && env.cgrid(*di) == EMPTY_CLOUD
             && (di.radius() < radius || x_chance_in_y(ratio, 100)))
         {
-            place_cloud(type, *di, pow + random2(pow), NULL);
+            place_cloud(type, *di, pow + random2(pow), nullptr);
             --remaining;
 
             // Setting this way since the agent of the cloud may be dead before
index aeb947f..4920535 100644 (file)
@@ -53,7 +53,7 @@ CLua::CLua(bool managed)
       throttle_sleep_end(800), n_throttle_sleeps(0), mixed_call_depth(0),
       lua_call_depth(0), max_mixed_call_depth(8),
       max_lua_call_depth(100), memory_used(0),
-      _state(NULL), sourced_files(), uniqindex(0)
+      _state(nullptr), sourced_files(), uniqindex(0)
 {
 }
 
@@ -473,7 +473,7 @@ int CLua::return_count(lua_State *ls, const char *format)
     const char *cs = strchr(format, ':');
     if (cs && isdigit(*format))
     {
-        char *es = NULL;
+        char *es = nullptr;
         int ci = strtol(format, &es, 10);
         // We're capping return at 10 here, which is arbitrary, but avoids
         // blowing the stack.
@@ -560,7 +560,7 @@ bool CLua::callbooleanfn(bool def, const char *fn, const char *params, ...)
 
 bool CLua::proc_returns(const char *par) const
 {
-    return strchr(par, '>') != NULL;
+    return strchr(par, '>') != nullptr;
 }
 
 // Identical to lua_getglobal for simple names, but will look up
@@ -790,7 +790,7 @@ void CLua::print_stack()
         lua_getinfo(L, "lnuS", &dbg);
 
         char* file = strrchr(dbg.short_src, '/');
-        if (file == NULL)
+        if (file == nullptr)
             file = dbg.short_src;
         else
             file++;
@@ -910,7 +910,7 @@ bool lua_text_pattern::translate() const
 
     string textp;
     string luafn;
-    const lua_pat_op *currop = NULL;
+    const lua_pat_op *currop = nullptr;
     for (string::size_type i = 0; i < pattern.length(); ++i)
     {
         bool match = false;
@@ -996,13 +996,13 @@ static void *_clua_allocator(void *ud, void *ptr, size_t osize, size_t nsize)
     if (nsize > osize && cl->memory_used >= CLUA_MAX_MEMORY_USE * 1024
         && cl->mixed_call_depth)
     {
-        return NULL;
+        return nullptr;
     }
 
     if (!nsize)
     {
         free(ptr);
-        return NULL;
+        return nullptr;
     }
     else
         return realloc(ptr, nsize);
index c3dc85b..91fef47 100644 (file)
@@ -174,7 +174,7 @@ private:
 
 private:
     void init_lua();
-    void set_error(int err, lua_State *ls = NULL);
+    void set_error(int err, lua_State *ls = nullptr);
     void load_cmacro();
     void load_chooks();
     void init_throttle();
@@ -186,12 +186,12 @@ private:
     bool proc_returns(const char *par) const;
 
     bool calltopfn(lua_State *ls, const char *format, va_list args,
-                   int retc = -1, va_list *fnr = NULL);
+                   int retc = -1, va_list *fnr = nullptr);
     maybe_bool callmbooleanfn(const char *fn, const char *params,
                               va_list args);
 
     int push_args(lua_State *ls, const char *format, va_list args,
-                    va_list *cpto = NULL);
+                    va_list *cpto = nullptr);
     int return_count(lua_State *ls, const char *format);
 
     struct CLuaSave
index 82b6c19..6bd8036 100644 (file)
@@ -86,7 +86,7 @@ void clua_register_metatable(lua_State *ls, const char *tn,
     }
 
     if (lr)
-        luaL_openlib(ls, NULL, lr, 0);
+        luaL_openlib(ls, nullptr, lr, 0);
 }
 
 int clua_pushcxxstring(lua_State *ls, const string &s)
index d8748df..e5f6446 100644 (file)
@@ -56,7 +56,7 @@ void luaopen_setmeta(lua_State *ls,
 
 void clua_register_metatable(lua_State *ls, const char *tn,
                              const luaL_reg *lr,
-                             int (*gcfn)(lua_State *ls) = NULL);
+                             int (*gcfn)(lua_State *ls) = nullptr);
 
 int clua_stringtable(lua_State *ls, const vector<string> &s);
 
@@ -70,7 +70,7 @@ static inline T *clua_get_lightuserdata(lua_State *ls, int ndx)
 {
     return (lua_islightuserdata(ls, ndx))?
             static_cast<T *>(lua_touserdata(ls, ndx))
-          : NULL;
+          : nullptr;
 }
 
 template <class T>
index 0845c3c..d52a736 100644 (file)
@@ -799,7 +799,7 @@ int str_to_colour(const string &str, int default_colour, bool accept_number)
     {
         // Check if we have a direct colour index.
         const char *s = str.c_str();
-        char *es = NULL;
+        char *es = nullptr;
         const int ci = static_cast<int>(strtol(s, &es, 10));
         if (s != es && es && ci >= 0 && ci < 16)
             ret = ci;
index 3509bb5..4605449 100644 (file)
@@ -698,7 +698,7 @@ static help_file help_files[] =
 #ifdef USE_TILE_LOCAL
     { "tiles_help.txt",    'T', false },
 #endif
-    { NULL, 0, false }
+    { nullptr, 0, false }
 };
 
 static bool _compare_mon_names(MenuEntry *entry_a, MenuEntry* entry_b)
@@ -743,7 +743,7 @@ public:
         : Menu(_flags, "", _text_only), sort_alpha(true),
           showing_monsters(_show_mon)
         {
-            set_highlighter(NULL);
+            set_highlighter(nullptr);
 
             if (_show_mon)
                 toggle_sorting();
@@ -838,7 +838,7 @@ static vector<string> _get_monster_keys(ucs_t showchar)
 
         const monsterentry *me = get_monster_data(i);
 
-        if (me == NULL || me->name == NULL || me->name[0] == '\0')
+        if (me == nullptr || me->name == nullptr || me->name[0] == '\0')
             continue;
 
         if (me->mc != i)
@@ -917,7 +917,7 @@ static bool _skill_filter(string key, string body)
     for (int i = SK_FIRST_SKILL; i < NUM_SKILLS; i++)
     {
         skill_type sk = static_cast<skill_type>(i);
-        // There are a couple of NULL entries in the skill set.
+        // There are a couple of nullptr entries in the skill set.
         if (!skill_name(sk))
             continue;
 
@@ -1297,8 +1297,8 @@ static void _find_description(bool *again, string *error_inout)
     string    type;
     string    extra;
     string    suffix;
-    db_find_filter filter     = NULL;
-    db_keys_recap  recap      = NULL;
+    db_find_filter filter     = nullptr;
+    db_keys_recap  recap      = nullptr;
     bool           want_regex = true;
     bool           want_sort  = true;
 
@@ -1356,13 +1356,13 @@ static void _find_description(bool *again, string *error_inout)
         break;
     case 'G':
         type       = "god";
-        filter     = NULL;
+        filter     = nullptr;
         want_regex = false;
         doing_gods = true;
         break;
     case 'B':
         type           = "branch";
-        filter         = NULL;
+        filter         = nullptr;
         want_regex     = false;
         want_sort      = false;
         doing_branches = true;
@@ -1432,7 +1432,7 @@ static void _find_description(bool *again, string *error_inout)
     else
         key_list = _get_desc_keys(regex, filter);
 
-    if (recap != NULL)
+    if (recap != nullptr)
         (*recap)(key_list);
 
     if (key_list.empty())
@@ -1514,7 +1514,7 @@ static void _find_description(bool *again, string *error_inout)
         if (ends_with(str, suffix)) // perhaps we should assert this?
             str.erase(str.length() - suffix.length());
 
-        MenuEntry *me = NULL;
+        MenuEntry *me = nullptr;
 
         if (doing_mons)
         {
@@ -1803,7 +1803,7 @@ static int _show_keyhelp_menu(const vector<formatted_string> &lines,
 
     if (with_manual)
     {
-        for (int i = 0; help_files[i].name != NULL; ++i)
+        for (int i = 0; help_files[i].name != nullptr; ++i)
         {
             // Attempt to open this file, skip it if unsuccessful.
             string fname = canonicalise_file_separator(help_files[i].name);
index 785f0e3..405ef21 100644 (file)
@@ -119,11 +119,11 @@ void crash_signal_handler(int sig_num)
         char name[180];
 
         snprintf(name, sizeof(name), "%scrash-recursive-%s-%s.txt", dir.c_str(),
-                you.your_name.c_str(), make_file_time(time(NULL)).c_str());
+                you.your_name.c_str(), make_file_time(time(nullptr)).c_str());
 
         FILE* file = fopen_replace(name);
 
-        if (file == NULL)
+        if (file == nullptr)
             file = stderr;
 
         write_stack_trace(file, 0);
@@ -261,7 +261,7 @@ void dump_crash_info(FILE* file)
 {
 #if defined(UNIX)
     const char *name = strsignal(_crash_signal);
-    if (name == NULL)
+    if (name == nullptr)
         name = "INVALID";
 
     fprintf(file, "Crash caused by signal #%d: %s\n\n", _crash_signal,
@@ -291,7 +291,7 @@ void write_stack_trace(FILE* file, int ignore_count)
     char **symbols = backtrace_symbols(frames, num_frames);
 
 #if !defined(TARGET_OS_MACOSX)
-    if (symbols == NULL)
+    if (symbols == nullptr)
     {
         fprintf(stderr, "Out of memory.\n");
         fprintf(file,   "Out of memory.\n");
@@ -343,7 +343,7 @@ void write_stack_trace(FILE* file, int ignore_count)
             bt += ": ";
             *lastparen = '\0';
             char *realname = abi::__cxa_demangle(firstparen + 1, 0, 0, &status);
-            if (realname != NULL)
+            if (realname != nullptr)
                 bt += realname;
             free(realname);
         }
index fcf0e6e..509b174 100644 (file)
@@ -84,7 +84,7 @@ static const struct luaL_reg crawl_test_lib[] =
     { "begin_test", crawl_begin_test },
     { "test_success", crawl_test_success },
     { "script_args", crawl_script_args },
-    { NULL, NULL }
+    { nullptr, nullptr }
 };
 
 static void _init_test_bindings()
index 2feda7f..7d69a6f 100644 (file)
@@ -84,12 +84,12 @@ static TextDB AllDBs[] =
             "ability.txt",
             "cards.txt",
             "commands.txt",
-            NULL),
+            nullptr),
 
     TextDB("gamestart", "descript/",
             "species.txt",
             "backgrounds.txt",
-            NULL),
+            nullptr),
 
     TextDB("randart", "database/",
             "randname.txt",
@@ -99,7 +99,7 @@ static TextDB AllDBs[] =
             "randbook.txt", // artefact books
             // This doesn't really belong here, but they *are* god gifts...
             "monname.txt",  // orcish names for Beogh to choose from
-            NULL),
+            nullptr),
 
     TextDB("speak", "database/",
             "monspeak.txt", // monster speech
@@ -108,35 +108,35 @@ static TextDB AllDBs[] =
             "wpnnoise.txt", // noisy weapon speech
             "insult.txt",   // imp/demon taunts
             "godspeak.txt", // god speech
-            NULL),
+            nullptr),
 
     TextDB("shout", "database/",
             "shout.txt",
             "insult.txt",   // imp/demon taunts, again
-            NULL),
+            nullptr),
 
     TextDB("misc", "database/",
             "miscname.txt", // names for miscellaneous things
             "godname.txt",  // god-related names (mostly His Xomminess)
             "montitle.txt", // titles for monsters (i.e. uniques)
-            NULL),
+            nullptr),
 
     TextDB("quotes", "descript/",
             "quotes.txt",   // quotes for items and monsters
-            NULL),
+            nullptr),
 
     TextDB("help", "database/",
             "help.txt",     // database for outsourced help texts
-            NULL),
+            nullptr),
 
     TextDB("FAQ", "database/",
             "FAQ.txt",      // database for Frequently Asked Questions
-            NULL),
+            nullptr),
 
     TextDB("hints", "descript/",
             "hints.txt",    // hints mode
             "tutorial.txt", // tutorial mode
-            NULL),
+            nullptr),
 };
 
 static TextDB& DescriptionDB = AllDBs[0];
@@ -163,7 +163,7 @@ static string _db_cache_path(string db, const char *lang)
 
 TextDB::TextDB(const char* db_name, const char* dir, ...)
     : _db_name(db_name), _directory(dir),
-      _db(NULL), timestamp(""), _parent(0), translation(0)
+      _db(nullptr), timestamp(""), _parent(0), translation(0)
 {
     va_list args;
     va_start(args, dir);
@@ -183,7 +183,7 @@ TextDB::TextDB(const char* db_name, const char* dir, ...)
 
 TextDB::TextDB(TextDB *parent)
     : _db_name(parent->_db_name),
-      _db(NULL), timestamp(""), _parent(parent), translation(0)
+      _db(nullptr), timestamp(""), _parent(parent), translation(0)
 {
     _directory = parent->_directory + Options.lang_name + "/";
     _input_files = parent->_input_files; // FIXME: pointless copy
@@ -232,7 +232,7 @@ void TextDB::shutdown(bool recursive)
     if (_db)
     {
         dbm_close(_db);
-        _db = NULL;
+        _db = nullptr;
     }
     if (recursive && translation)
         translation->shutdown(recursive);
@@ -376,7 +376,7 @@ void databaseSystemShutdown()
 static datum _database_fetch(DBM *database, const string &key)
 {
     datum result;
-    result.dptr = NULL;
+    result.dptr = nullptr;
     result.dsize = 0;
     datum dbKey;
 
@@ -393,20 +393,20 @@ static datum _database_fetch(DBM *database, const string &key)
 static vector<string> _database_find_keys(DBM *database,
                                           const string &regex,
                                           bool ignore_case,
-                                          db_find_filter filter = NULL)
+                                          db_find_filter filter = nullptr)
 {
     text_pattern             tpat(regex, ignore_case);
     vector<string> matches;
 
     datum dbKey = dbm_firstkey(database);
 
-    while (dbKey.dptr != NULL)
+    while (dbKey.dptr != nullptr)
     {
         string key((const char *)dbKey.dptr, dbKey.dsize);
 
         if (tpat.matches(key)
             && key.find("__") == string::npos
-            && (filter == NULL || !(*filter)(key, "")))
+            && (filter == nullptr || !(*filter)(key, "")))
         {
             matches.push_back(key);
         }
@@ -420,14 +420,14 @@ static vector<string> _database_find_keys(DBM *database,
 static vector<string> _database_find_bodies(DBM *database,
                                             const string &regex,
                                             bool ignore_case,
-                                            db_find_filter filter = NULL)
+                                            db_find_filter filter = nullptr)
 {
     text_pattern             tpat(regex, ignore_case);
     vector<string> matches;
 
     datum dbKey = dbm_firstkey(database);
 
-    while (dbKey.dptr != NULL)
+    while (dbKey.dptr != nullptr)
     {
         string key((const char *)dbKey.dptr, dbKey.dsize);
 
@@ -436,7 +436,7 @@ static vector<string> _database_find_bodies(DBM *database,
 
         if (tpat.matches(body)
             && key.find("__") == string::npos
-            && (filter == NULL || !(*filter)(key, body)))
+            && (filter == nullptr || !(*filter)(key, body)))
         {
             matches.push_back(key);
         }
index b6858d9..4005ce6 100644 (file)
@@ -34,9 +34,9 @@ string getQuoteString(const string &key);
 string getLongDescription(const string &key);
 
 vector<string> getLongDescKeysByRegex(const string &regex,
-                                      db_find_filter filter = NULL);
+                                      db_find_filter filter = nullptr);
 vector<string> getLongDescBodiesByRegex(const string &regex,
-                                        db_find_filter filter = NULL);
+                                        db_find_filter filter = nullptr);
 
 string getGameStartDescription(const string &key);
 
index e29fafd..fc60d8a 100644 (file)
@@ -416,9 +416,9 @@ static void _debug_marker_scan()
     {
         map_marker* marker = markers[i];
 
-        if (marker == NULL)
+        if (marker == nullptr)
         {
-            mprf(MSGCH_ERROR, "Marker #%d is NULL", i);
+            mprf(MSGCH_ERROR, "Marker #%d is nullptr", i);
             continue;
         }
 
@@ -455,9 +455,9 @@ static void _debug_marker_scan()
         {
             map_marker *marker = at_pos[i];
 
-            if (marker == NULL)
+            if (marker == nullptr)
             {
-                mprf(MSGCH_ERROR, "Marker #%d at (%d, %d) NULL",
+                mprf(MSGCH_ERROR, "Marker #%d at (%d, %d) nullptr",
                      i, ri->x, ri->y);
                 continue;
             }
@@ -483,7 +483,7 @@ static void _debug_dump_markers()
     {
         map_marker* marker = markers[i];
 
-        if (marker == NULL || marker->get_type() == MAT_LUA_MARKER)
+        if (marker == nullptr || marker->get_type() == MAT_LUA_MARKER)
             continue;
 
         mprf(MSGCH_DIAGNOSTICS, "Marker %d at (%d, %d): %s",
@@ -500,7 +500,7 @@ static void _debug_dump_lua_markers(FILE *file)
     {
         map_marker* marker = markers[i];
 
-        if (marker == NULL || marker->get_type() != MAT_LUA_MARKER)
+        if (marker == nullptr || marker->get_type() != MAT_LUA_MARKER)
             continue;
 
         map_lua_marker* lua_marker = dynamic_cast<map_lua_marker*>(marker);
@@ -612,7 +612,7 @@ void do_crash_dump()
     }
 
     // Want same time for file name and crash milestone.
-    const time_t t = time(NULL);
+    const time_t t = time(nullptr);
 
     string dir = (!Options.morgue_dir.empty() ? Options.morgue_dir :
                   !SysEnv.crawl_dir.empty()   ? SysEnv.crawl_dir
@@ -639,7 +639,7 @@ void do_crash_dump()
 
     // The errno values are only relevant when the function in
     // question has returned a value indicating (possible) failure, so
-    // only freak out if freopen() returned NULL!
+    // only freak out if freopen() returned nullptr!
     if (!file)
     {
         fprintf(stdout, "\nUnable to open file '%s' for writing: %s\n",
@@ -649,7 +649,7 @@ void do_crash_dump()
 
     // Unbuffer the file, since if we recursively crash buffered lines
     // won't make it to the file.
-    setvbuf(file, NULL, _IONBF, 0);
+    setvbuf(file, nullptr, _IONBF, 0);
 
     set_msg_dump_file(file);
 
@@ -751,7 +751,7 @@ void do_crash_dump()
     _debug_dump_lua_markers(file);
     fprintf(file, ">>>>>>>>>>>>>>>>>>>>>>\n");
 
-    set_msg_dump_file(NULL);
+    set_msg_dump_file(nullptr);
 
     mark_milestone("crash", _assert_msg, "", t);
 
@@ -794,7 +794,7 @@ NORETURN static void _BreakStrToDebugger(const char *mesg, bool assert)
 
 #if defined(TARGET_OS_MACOSX)
 // raise(SIGINT);               // this is what DebugStr() does on OS X according to Tech Note 2030
-    int* p = NULL;              // but this gives us a stack crawl...
+    int* p = nullptr;           // but this gives us a stack crawl...
     *p = 0;
 #endif
 
index 9dcae31..cf79351 100644 (file)
@@ -160,7 +160,7 @@ void debug_item_scan()
         // (except to make sure that the monster is alive).
         if (mitm[i].pos.origin())
             _dump_item(name, i, mitm[i], "Unlinked temporary item:");
-        else if (mon != NULL && mon->type == MONS_NO_MONSTER)
+        else if (mon != nullptr && mon->type == MONS_NO_MONSTER)
             _dump_item(name, i, mitm[i], "Unlinked item held by dead monster:");
         else if ((mitm[i].pos.x > 0 || mitm[i].pos.y > 0) && !visited[i])
         {
@@ -202,10 +202,10 @@ void debug_item_scan()
         //
         // Theoretically some of these could match random names.
         //
-        if (strstr(name, "questionable") != NULL
-            || strstr(name, "eggplant") != NULL
-            || strstr(name, "buggy") != NULL
-            || strstr(name, "buggi") != NULL)
+        if (strstr(name, "questionable") != nullptr
+            || strstr(name, "eggplant") != nullptr
+            || strstr(name, "buggy") != nullptr
+            || strstr(name, "buggi") != nullptr)
         {
             _dump_item(name, i, mitm[i], "Bad item:");
         }
@@ -461,7 +461,7 @@ void debug_mons_scan()
 
             const monster* holder = item.holding_monster();
 
-            if (holder == NULL)
+            if (holder == nullptr)
             {
                 _announce_level_prob(warned);
                 warned = true;
index 94ce862..1c5a2a0 100644 (file)
@@ -768,7 +768,7 @@ static int _choose_inventory_deck(const char* prompt)
 {
     const int slot = prompt_invent_item(prompt,
                                         MT_INVLIST, OSEL_DRAW_DECK,
-                                        true, true, true, 0, -1, NULL,
+                                        true, true, true, 0, -1, nullptr,
                                         OPER_EVOKE);
 
     if (prompt_failed(slot))
@@ -1861,7 +1861,7 @@ static void _damaging_card(card_type card, int power, deck_rarity_type rarity,
     }
 
     if (spell_direction(target, beam, DIR_NONE, TARG_HOSTILE,
-                        LOS_RADIUS, true, true, false, NULL, prompt.c_str())
+                        LOS_RADIUS, true, true, false, nullptr, prompt.c_str())
         && player_tracer(ZAP_DEBUGGING_RAY, power/6, beam))
     {
         if (you.confused())
@@ -2405,7 +2405,7 @@ static void _summon_dancing_weapon(int power, deck_rarity_type rarity)
     if (mon)
     {
         // Override the weapon.
-        ASSERT(mon->weapon() != NULL);
+        ASSERT(mon->weapon() != nullptr);
         item_def& wpn(*mon->weapon());
 
         if (power_level == 0)
index f7f1a09..fc00c13 100644 (file)
@@ -1213,7 +1213,7 @@ static string _abyss_monster_creation_message(const monster* mon)
 static inline bool _monster_warning(activity_interrupt_type ai,
                                     const activity_interrupt_data &at,
                                     delay_type atype,
-                                    vector<string>* msgs_buf = NULL)
+                                    vector<string>* msgs_buf = nullptr)
 {
     if (ai == AI_SENSE_MONSTER)
     {
index 9a73550..4ced6ef 100644 (file)
@@ -27,7 +27,7 @@ struct activity_interrupt_data
     seen_context_type context;
 
     activity_interrupt_data()
-        : apt(AIP_NONE), data(NULL), context(SC_NONE)
+        : apt(AIP_NONE), data(nullptr), context(SC_NONE)
     {
     }
     activity_interrupt_data(const int *i)
@@ -86,11 +86,11 @@ bool is_delay_interruptible(delay_type delay);
 const char *delay_name(int delay);
 delay_type get_delay(const string &);
 
-void run_macro(const char *macroname = NULL);
+void run_macro(const char *macroname = nullptr);
 
 void autotoggle_autopickup(bool off);
 bool interrupt_activity(activity_interrupt_type ai,
                         const activity_interrupt_data &a
                             = activity_interrupt_data(),
-                        vector<string>* msgs_buf = NULL);
+                        vector<string>* msgs_buf = nullptr);
 #endif
index 5ac1272..db4a159 100644 (file)
@@ -576,7 +576,7 @@ static bool _check_description_cycle(god_desc_type gdesc)
     const int bottom_line = min(30, get_number_of_lines());
 
     cgotoxy(1, bottom_line);
-    const char* place = NULL;
+    const char* place = nullptr;
     switch (gdesc)
     {
         case GDESC_OVERVIEW: place = "<w>Overview</w>|Powers|Wrath"; break;
index ecbda8b..0ebdd85 100644 (file)
@@ -291,7 +291,7 @@ static vector<string> _randart_propnames(const item_def& item,
     if (is_unrandom_artefact(item))
     {
         const unrandart_entry *entry = get_unrand_entry(item.special);
-        if (entry && entry->inscrip != NULL)
+        if (entry && entry->inscrip != nullptr)
             propnames.push_back(entry->inscrip);
      }
 
@@ -2255,7 +2255,7 @@ static bool _actions_prompt(item_def &item, bool allow_inscribe, bool do_prompt)
 {
 #ifdef USE_TILE_LOCAL
     PrecisionMenu menu;
-    TextItem* tmp = NULL;
+    TextItem* tmp = nullptr;
     MenuFreeform* freeform = new MenuFreeform();
     menu.set_select_type(PrecisionMenu::PRECISION_SINGLESELECT);
     freeform->init(coord_def(1, 1),
@@ -2560,13 +2560,16 @@ void inscribe_item(item_def &item, bool msgwin)
     char buf[79];
     int ret;
     if (msgwin)
-        ret = msgwin_get_line(prompt, buf, sizeof buf, NULL, item.inscription);
+    {
+        ret = msgwin_get_line(prompt, buf, sizeof buf, nullptr,
+                              item.inscription);
+    }
     else
     {
         _safe_newline();
         prompt = "<cyan>" + prompt + "</cyan>";
         formatted_string::parse_string(prompt).display();
-        ret = cancellable_get_line(buf, sizeof buf, NULL, NULL,
+        ret = cancellable_get_line(buf, sizeof buf, nullptr, nullptr,
                                   item.inscription);
     }
 
@@ -2718,7 +2721,7 @@ string get_skill_description(skill_type skill, bool need_title)
 // forget it and BOOK_NEITHER if you can do neither
 static int _get_spell_description(const spell_type spell,
                                    string &description,
-                                   const item_def* item = NULL)
+                                   const item_def* item = nullptr)
 {
     description.reserve(500);
 
@@ -3647,7 +3650,7 @@ static string _monster_stat_description(const monster_info& mi)
         "tiny",
         "very small",
         "small",
-        NULL,     // don't display anything for 'medium'
+        nullptr,     // don't display anything for 'medium'
         "large",
         "very large",
         "giant",
index aea25a1..6cc3ac9 100644 (file)
@@ -70,7 +70,7 @@ void get_monster_db_desc(const monster_info &mi, describe_info &inf,
                          bool &has_stat_desc, bool force_seen = false);
 
 void get_spell_desc(const spell_type spell, describe_info &inf);
-void describe_spell(spell_type spelled, const item_def* item = NULL);
+void describe_spell(spell_type spelled, const item_def* item = nullptr);
 
 string short_ghost_description(const monster *mon, bool abbrev = false);
 string get_ghost_description(const monster_info &mi, bool concise = false);
index 846860e..75f0da0 100644 (file)
@@ -516,7 +516,7 @@ void dgn_build_labyrinth_level()
 
     if (!vault || !dgn_safe_place_map(vault, true, false))
     {
-        vault = NULL;
+        vault = nullptr;
         _labyrinth_place_exit(end);
     }
     else
index bca7614..5036714 100644 (file)
@@ -71,7 +71,7 @@ enum tide_direction
 };
 
 static tide_direction _shoals_tide_direction;
-static monster* tide_caller = NULL;
+static monster* tide_caller = nullptr;
 static coord_def tide_caller_pos;
 static int tide_called_turns = 0;
 static int tide_called_peak = 0;
@@ -510,7 +510,7 @@ static void _shoals_plant_cluster(coord_def c, int nplants, int radius,
 
 static void _shoals_plant_supercluster(coord_def c,
                                        dungeon_feature_type favoured_feat,
-                                       grid_bool *verboten = NULL)
+                                       grid_bool *verboten = nullptr)
 {
     _shoals_plant_cluster(c, random_range(10, 17, 2),
                           random_range(3, 9), favoured_feat,
@@ -918,7 +918,7 @@ static void _shoals_tide_sweep_items_clear(coord_def c)
         if (item_is_stationary(item) && !one_chance_in(5))
             continue;
 
-        const coord_def target(_shoals_escape_place_from(c, NULL, &item));
+        const coord_def target(_shoals_escape_place_from(c, nullptr, &item));
         if (!target.origin())
         {
             if (item_is_stationary_net(item))
@@ -961,7 +961,7 @@ static bool _shoals_tide_sweep_actors_clear(coord_def c)
         if (monster_habitable_grid(mvictim, DNGN_DEEP_WATER))
             return true;
     }
-    coord_def evacuation_point(_shoals_escape_place_from(c, victim, NULL));
+    coord_def evacuation_point(_shoals_escape_place_from(c, victim, nullptr));
     // The tide no longer drowns monster/player if it cannot push them
     // out of the way.
     if (evacuation_point.origin())
@@ -1187,7 +1187,7 @@ static monster* _shoals_find_tide_caller()
     for (monster_iterator mi; mi; ++mi)
         if (mi->has_ench(ENCH_TIDE))
             return *mi;
-    return NULL;
+    return nullptr;
 }
 
 void shoals_apply_tides(int turns_elapsed, bool force, bool incremental_tide)
@@ -1305,7 +1305,7 @@ void wizard_mod_tide()
              TIDE_MULTIPLIER);
         mpr("");
         const int res =
-            cancellable_get_line(buf, sizeof buf, NULL, _tidemod_keyfilter);
+            cancellable_get_line(buf, sizeof buf, nullptr, _tidemod_keyfilter);
         clear_messages(true);
         if (key_is_escape(res))
             break;
index 18b06d7..2069cf3 100644 (file)
@@ -65,5 +65,5 @@ void dgn_build_swamp_level()
     _swamp_slushy_patches(swamp_depth * 3);
     dgn_smooth_heights();
     _swamp_apply_features(2);
-    env.heightmap.reset(NULL);
+    env.heightmap.reset(nullptr);
 }
index 04cb7ae..07711cc 100644 (file)
@@ -20,12 +20,12 @@ void dgn_event_dispatcher::clear()
     listeners.clear();
     for (int y = 0; y < GYM; ++y)
         for (int x = 0; x < GXM; ++x)
-            grid_triggers[x][y].reset(NULL);
+            grid_triggers[x][y].reset(nullptr);
 }
 
 void dgn_event_dispatcher::clear_listeners_at(const coord_def &pos)
 {
-    grid_triggers[pos.x][pos.y].reset(NULL);
+    grid_triggers[pos.x][pos.y].reset(nullptr);
 }
 
 void dgn_event_dispatcher::move_listeners(
index 447931f..2baa117 100644 (file)
@@ -133,7 +133,7 @@ static void _debug_describe_feature_at(const coord_def &where);
 #ifdef WIZARD
 static void _wizard_make_friendly(monster* m)
 {
-    if (m == NULL)
+    if (m == nullptr)
         return;
 
     mon_attitude_type att = m->attitude;
@@ -317,20 +317,20 @@ monster* direction_chooser::targeted_monster() const
     if (m && you.can_see(m))
         return m;
     else
-        return NULL;
+        return nullptr;
 }
 
 // Return your target, if it still exists and is visible to you.
 static monster* _get_current_target()
 {
     if (invalid_monster_index(you.prev_targ))
-        return NULL;
+        return nullptr;
 
     monster* mon = &menv[you.prev_targ];
     if (mon->alive() && you.can_see(mon))
         return mon;
     else
-        return NULL;
+        return nullptr;
 }
 
 string direction_chooser::build_targeting_hint_string() const
@@ -665,7 +665,7 @@ void full_describe_view()
 #endif
             vector<formatted_string> fss;
             formatted_string::parse_string_to_multiple(str, fss);
-            MenuEntry *me = NULL;
+            MenuEntry *me = nullptr;
             for (unsigned int j = 0; j < fss.size(); ++j)
             {
                 if (j == 0)
@@ -947,7 +947,7 @@ range_view_annotator::~range_view_annotator()
 {
     if (crawl_state.darken_range)
     {
-        crawl_state.darken_range = NULL;
+        crawl_state.darken_range = nullptr;
         viewwindow(false);
     }
 }
@@ -966,7 +966,7 @@ monster_view_annotator::~monster_view_annotator()
     if ((Options.use_animations & UA_MONSTER_IN_SIGHT)
         && crawl_state.flash_monsters)
     {
-        crawl_state.flash_monsters = NULL;
+        crawl_state.flash_monsters = nullptr;
         viewwindow(false);
     }
 }
@@ -1024,11 +1024,11 @@ bool direction_chooser::move_is_ok() const
 // Assuming the target is in view, is line-of-fire
 // blocked, and by what?
 static bool _blocked_ray(const coord_def &where,
-                         dungeon_feature_type* feat = NULL)
+                         dungeon_feature_type* feat = nullptr)
 {
     if (exists_ray(you.pos(), where, opc_solid_see))
         return false;
-    if (feat == NULL)
+    if (feat == nullptr)
         return true;
     *feat = ray_blocker(you.pos(), where);
     return true;
@@ -1055,7 +1055,7 @@ bool direction_chooser::find_default_monster_target(coord_def& result) const
 
     // First try to pick our previous target.
     const monster* mons_target = _get_current_target();
-    if (mons_target != NULL
+    if (mons_target != nullptr
         && (mode != TARG_EVOLVABLE_PLANTS
             && mons_attitude(mons_target) == ATT_HOSTILE
             || mode == TARG_ENEMY && !mons_target->friendly()
@@ -2101,7 +2101,7 @@ bool direction_chooser::choose_direction()
                                                  : MOUSE_MODE_TARGET);
     targetter_smite legacy_range(&you, range, 0, 0, true);
     range_view_annotator rva(hitfunc ? hitfunc :
-                             (range >= 0) ? &legacy_range : NULL);
+                             (range >= 0) ? &legacy_range : nullptr);
 
     // init
     moves.delta.reset();
@@ -2339,7 +2339,7 @@ static bool _find_mlist(const coord_def& where, int idx, bool need_path,
         return false;
 
     const monster_info* mon = env.map_knowledge(where).monsterinfo();
-    if (mon == NULL)
+    if (mon == nullptr)
         return false;
 
     int real_idx = 0;
index b14a2cc..099345b 100644 (file)
@@ -96,7 +96,7 @@ struct direction_chooser_args
     coord_def default_place;
 
     direction_chooser_args() :
-        hitfunc(NULL),
+        hitfunc(nullptr),
         restricts(DIR_NONE),
         mode(TARG_ANY),
         range(-1),
@@ -104,11 +104,11 @@ struct direction_chooser_args
         needs_path(true),
         may_target_monster(true),
         may_target_self(false),
-        target_prefix(NULL),
-        behaviour(NULL),
+        target_prefix(nullptr),
+        behaviour(nullptr),
         cancel_at_self(false),
         show_floor_desc(false),
-        get_desc_func(NULL),
+        get_desc_func(nullptr),
         default_place(0, 0) {}
 };
 
@@ -246,7 +246,7 @@ private:
     bool may_target_self;       // If true then player won't be prompted
     const char *target_prefix;  // A string displayed before describing target
     string top_prompt;          // Shown at the top of the message window
-    targeting_behaviour *behaviour; // Can be NULL for default
+    targeting_behaviour *behaviour; // Can be nullptr for default
     bool cancel_at_self;        // Disallow self-targeting?
     bool show_floor_desc;       // Describe the floor of the current target
     targetter *hitfunc;         // Determine what would be hit.
index 4a7d461..f008869 100644 (file)
@@ -183,7 +183,7 @@ int dlua_chunk::run(CLua &interp)
     if (err)
         return err;
     // callfn returns true on success, but we want to return 0 on success.
-    return check_op(interp, !interp.callfn(NULL, 0, 0));
+    return check_op(interp, !interp.callfn(nullptr, 0, 0));
 }
 
 int dlua_chunk::load_call(CLua &interp, const char *fn)
index fe23cd4..ea215d7 100644 (file)
@@ -108,7 +108,7 @@ static void _pick_float_exits(vault_placement &place,
                               vector<coord_def> &targets);
 static bool _feat_is_wall_floor_liquid(dungeon_feature_type);
 static bool _connect_spotty(const coord_def& from,
-                            bool (*overwriteable)(dungeon_feature_type) = NULL);
+                            bool (*overwriteable)(dungeon_feature_type) = nullptr);
 static bool _connect_vault_exit(const coord_def& exit);
 
 // VAULT FUNCTIONS
@@ -171,7 +171,7 @@ static dungeon_feature_type _pick_temple_altar(vault_placement &place);
 static dungeon_feature_type _pick_an_altar();
 
 static vector<god_type> _temple_altar_list;
-static CrawlHashTable*       _current_temple_hash = NULL; // XXX: hack!
+static CrawlHashTable*       _current_temple_hash = nullptr; // XXX: hack!
 
 // MISC FUNCTIONS
 static void _dgn_set_floor_colours();
@@ -190,7 +190,7 @@ vector<vault_placement> Temp_Vaults;
 static FixedBitVector<NUM_MONSTERS> temp_unique_creatures;
 static FixedVector<unique_item_status_type, MAX_UNRANDARTS> temp_unique_items;
 
-const map_bitmask *Vault_Placement_Mask = NULL;
+const map_bitmask *Vault_Placement_Mask = nullptr;
 
 static bool use_random_maps = true;
 static bool dgn_check_connectivity = false;
@@ -593,7 +593,7 @@ static void _dgn_map_colour_fixup()
                 env.grid_colours[x][y] = BLACK;
             }
 
-    dgn_colour_grid.reset(NULL);
+    dgn_colour_grid.reset(nullptr);
 }
 
 bool set_level_flags(uint32_t flags, bool silent)
@@ -741,7 +741,7 @@ static bool _dgn_fill_zone(
     const coord_def &start, int zone,
     point_record &record_point,
     bool (*passable)(const coord_def &) = _dgn_square_is_passable,
-    bool (*iswanted)(const coord_def &) = NULL)
+    bool (*iswanted)(const coord_def &) = nullptr)
 {
     bool ret = false;
     list<coord_def> points[2];
@@ -907,7 +907,7 @@ static int _process_disconnected_zones(int x1, int y1, int x2, int y2,
                                _dgn_square_is_passable,
                                choose_stairless ? (at_branch_bottom() ?
                                                    _is_upwards_exit_stair :
-                                                   _is_exit_stair) : NULL);
+                                                   _is_exit_stair) : nullptr);
 
             // If we want only stairless zones, screen out zones that did
             // have stairs.
@@ -1064,7 +1064,7 @@ dgn_register_place(const vault_placement &place, bool register_vault)
     {
         const keyed_mapspec *spec = place.map.mapspec_at(*vi - place.pos);
 
-        if (spec != NULL)
+        if (spec != nullptr)
         {
             env.level_map_mask(*vi) |= (short)spec->map_mask.flags_set;
             env.level_map_mask(*vi) &= ~((short)spec->map_mask.flags_unset);
@@ -1198,18 +1198,18 @@ void dgn_reset_level(bool enable_random_maps)
     env.level_build_method.clear();
     env.level_layout_types.clear();
     level_clear_vault_memory();
-    dgn_colour_grid.reset(NULL);
+    dgn_colour_grid.reset(nullptr);
 
     use_random_maps = enable_random_maps;
     dgn_check_connectivity = false;
     dgn_zones        = 0;
 
     _temple_altar_list.clear();
-    _current_temple_hash = NULL;
+    _current_temple_hash = nullptr;
 
     // Forget level properties.
     env.properties.clear();
-    env.heightmap.reset(NULL);
+    env.heightmap.reset(nullptr);
 
     env.absdepth0 = absdungeon_depth(you.where_are_you, you.depth);
 
@@ -1966,7 +1966,7 @@ static void _build_overflow_temples()
 
         const int num_gods = _setup_temple_altars(temple);
 
-        const map_def *vault = NULL;
+        const map_def *vault = nullptr;
         string vault_tag = "";
         string name = "";
 
@@ -1975,7 +1975,7 @@ static void _build_overflow_temples()
             name = temple[TEMPLE_MAP_KEY].get_string();
 
             vault = find_map_by_name(name);
-            if (vault == NULL)
+            if (vault == nullptr)
             {
                 mprf(MSGCH_ERROR,
                      "Couldn't find overflow temple map '%s'!",
@@ -2018,7 +2018,7 @@ static void _build_overflow_temples()
 
                 vault = random_map_for_tag(vault_tag, true);
 #ifdef DEBUG_TEMPLES
-                if (vault == NULL)
+                if (vault == nullptr)
                 {
                     mprf(MSGCH_DIAGNOSTICS, "Couldn't find overflow temple "
                          "for combination of tags %s", vault_tag.c_str());
@@ -2026,13 +2026,13 @@ static void _build_overflow_temples()
 #endif
             }
 
-            if (vault == NULL)
+            if (vault == nullptr)
             {
                 vault_tag = make_stringf("temple_overflow_generic_%d",
                                          num_gods);
 
                 vault = random_map_for_tag(vault_tag, true);
-                if (vault == NULL)
+                if (vault == nullptr)
                 {
                     mprf(MSGCH_ERROR,
                          "Couldn't find overflow temple tag '%s'!",
@@ -2041,7 +2041,7 @@ static void _build_overflow_temples()
             }
         }
 
-        if (vault == NULL)
+        if (vault == nullptr)
             // Might as well build the rest of the level if we couldn't
             // find the overflow temple map, so don't veto the level.
             return;
@@ -2064,7 +2064,7 @@ static void _build_overflow_temples()
              vault->name.c_str());
 #endif
     }
-    _current_temple_hash = NULL; // XXX: hack!
+    _current_temple_hash = nullptr; // XXX: hack!
 }
 
 struct coord_feat
@@ -2592,7 +2592,7 @@ static bool _vault_can_use_layout(const map_def *vault, const map_def *layout)
 
 static const map_def *_pick_layout(const map_def *vault)
 {
-    const map_def *layout = NULL;
+    const map_def *layout = nullptr;
 
     // This is intended for use with primary vaults, so...
     ASSERT(vault);
@@ -2662,7 +2662,7 @@ static bool _pan_level()
                                        + pandemon_level_names[which_demon]));
     }
 
-    const map_def *vault = NULL;
+    const map_def *vault = nullptr;
 
     if (which_demon >= 0)
     {
@@ -2741,7 +2741,7 @@ static const map_def *_dgn_random_map_for_place(bool minivault)
             || crawl_state.game_is_tutorial()))
     {
         vault = find_map_by_name(crawl_state.map);
-        if (vault == NULL)
+        if (vault == nullptr)
         {
             end(1, false, "Couldn't find selected map '%s'.",
                 crawl_state.map.c_str());
@@ -2778,7 +2778,7 @@ struct map_component
 
     map_component()
     {
-        min_equivalent = NULL;
+        min_equivalent = nullptr;
     }
     map_component * min_equivalent;
 
@@ -2794,7 +2794,7 @@ struct map_component
         max_coord = pos;
 
         label = in_label;
-        min_equivalent = NULL;
+        min_equivalent = nullptr;
     }
 
     void add_coord(const coord_def & pos)
@@ -2905,7 +2905,7 @@ static void _ccomps_8(FixedArray<int, GXM, GYM > & connectivity_map,
     // Reindex root labels, and move them to output
     for (auto &entry : intermediate_components)
     {
-        if (entry.second.min_equivalent == NULL)
+        if (entry.second.min_equivalent == nullptr)
         {
             entry.second.label = reindexed_label++;
             components.push_back(entry.second);
@@ -3140,7 +3140,7 @@ static void _place_chance_vaults()
 
 static void _place_minivaults()
 {
-    const map_def *vault = NULL;
+    const map_def *vault = nullptr;
     // First place the vault requested with &P
     if (you.props.exists("force_minivault")
         && (vault = find_map_by_name(you.props["force_minivault"])))
@@ -3632,7 +3632,7 @@ static void _place_branch_entrances(bool use_vaults)
 
             // Otherwise place a single stair feature.
             // Try to use designated locations for entrances if possible.
-            const coord_def portal_pos = find_portal_place(NULL, false);
+            const coord_def portal_pos = find_portal_place(nullptr, false);
             if (!portal_pos.origin())
             {
                 env.grid(portal_pos) = it->entry_stairs;
@@ -4070,7 +4070,7 @@ const vault_placement *dgn_place_map(const map_def *mdef,
                                      const coord_def &where)
 {
     if (!mdef)
-        return NULL;
+        return nullptr;
 
     const dgn_colour_override_manager colour_man;
 
@@ -4082,7 +4082,7 @@ const vault_placement *dgn_place_map(const map_def *mdef,
                  "Cannot generate encompass map '%s' with check_collision=true",
                  mdef->name.c_str());
 
-            return NULL;
+            return nullptr;
         }
 
         // For encompass maps, clear the entire level.
@@ -4160,7 +4160,7 @@ const vault_placement *dgn_safe_place_map(const map_def *mdef,
                 mdef = find_map_by_name(mapname);
             }
             else
-                return NULL;
+                return nullptr;
         }
     }
 }
@@ -4168,7 +4168,8 @@ const vault_placement *dgn_safe_place_map(const map_def *mdef,
 vault_placement *dgn_vault_at(coord_def p)
 {
     const int map_index = env.level_map_ids(p);
-    return map_index == INVALID_MAP_INDEX ? NULL : env.level_vaults[map_index];
+    return map_index == INVALID_MAP_INDEX ? nullptr
+                                          : env.level_vaults[map_index];
 }
 
 void dgn_seen_vault_at(coord_def p)
@@ -4256,7 +4257,7 @@ static const vault_placement *_build_vault_impl(const map_def *vault,
          place.pos.x, place.pos.y, place.size.x, place.size.y);
 
     if (placed_vault_orientation == MAP_NONE)
-        return NULL;
+        return nullptr;
 
     const bool is_layout = place.map.is_overwritable_layout();
 
@@ -5028,7 +5029,7 @@ static bool _dgn_place_one_monster(const vault_placement &place,
 
 /* "Oddball grids" are handled in _vault_grid. */
 static dungeon_feature_type _glyph_to_feat(int glyph,
-                                           vault_placement *place = NULL)
+                                           vault_placement *place = nullptr)
 {
     return (glyph == 'x') ? DNGN_ROCK_WALL :
            (glyph == 'X') ? DNGN_PERMAROCK_WALL :
@@ -5073,7 +5074,7 @@ dungeon_feature_type map_feature_at(map_def *map, const coord_def &c,
     if (rawfeat == ' ')
         return NUM_FEATURES;
 
-    keyed_mapspec *mapsp = map? map->mapspec_at(c) : NULL;
+    keyed_mapspec *mapsp = map? map->mapspec_at(c) : nullptr;
     if (mapsp)
     {
         feature_spec f = mapsp->get_feat();
@@ -5088,7 +5089,7 @@ dungeon_feature_type map_feature_at(map_def *map, const coord_def &c,
         else if (f.feat >= 0)
             return static_cast<dungeon_feature_type>(f.feat);
         else if (f.glyph >= 0)
-            return map_feature_at(NULL, c, f.glyph);
+            return map_feature_at(nullptr, c, f.glyph);
         else if (f.shop.get())
             return DNGN_ENTER_SHOP;
 
@@ -5448,7 +5449,7 @@ static dungeon_feature_type _pick_temple_altar(vault_placement &place)
 {
     if (_temple_altar_list.empty())
     {
-        if (_current_temple_hash != NULL)
+        if (_current_temple_hash != nullptr)
         {
             // Altar god doesn't matter, setting up the whole machinery would
             // be too much work.
@@ -6665,7 +6666,7 @@ static bool _fixup_interlevel_connectivity()
         }
 
         _dgn_fill_zone(*ri, ++nzones, _dgn_point_record_stub,
-                       dgn_square_travel_ok, NULL);
+                       dgn_square_travel_ok, nullptr);
     }
 
     int max_region = 0;
@@ -6921,7 +6922,7 @@ string vault_placement::map_name_at(const coord_def &where) const
 
 void vault_placement::reset()
 {
-    if (_current_temple_hash != NULL)
+    if (_current_temple_hash != nullptr)
         _setup_temple_altars(*_current_temple_hash);
     else
         _temple_altar_list.clear();
index 2cd1ec9..bc6810f 100644 (file)
@@ -294,7 +294,7 @@ vector<coord_def> dgn_join_the_dots_pathfind(const coord_def &from,
 
 bool join_the_dots(const coord_def &from, const coord_def &to,
                    unsigned mmask,
-                   bool (*overwriteable)(dungeon_feature_type) = NULL);
+                   bool (*overwriteable)(dungeon_feature_type) = nullptr);
 int count_feature_in_box(int x0, int y0, int x1, int y1,
                          dungeon_feature_type feat);
 bool door_vetoed(const coord_def pos);
index 25ef455..9a7d239 100644 (file)
@@ -151,7 +151,7 @@ void holy_word_monsters(coord_def where, int pow, holy_word_source_type source,
         // because it can kill them, and because hostile
         // monsters don't use it.
         // Tolerate unknown scroll, to not annoy Yred worshippers too much.
-        if (attacker != NULL
+        if (attacker != nullptr
             && (attacker != &you
                 || source != HOLY_WORD_SCROLL
                 || item_type_known(OBJ_SCROLLS, SCR_HOLY_WORD)))
@@ -941,7 +941,7 @@ void yell(const actor* mon)
     int mons_targd = MHITNOT;
     dist targ;
 
-    const string shout_verb = you.shout_verb(mon != NULL);
+    const string shout_verb = you.shout_verb(mon != nullptr);
     string cap_shout = shout_verb;
     cap_shout[0] = toupper(cap_shout[0]);
     const int noise_level = you.shout_volume();
@@ -1098,7 +1098,7 @@ void yell(const actor* mon)
             if (!cancel)
             {
                 const monster* m = monster_at(targ.target);
-                cancel = (m == NULL || !you.can_see(m));
+                cancel = (m == nullptr || !you.can_see(m));
                 if (!cancel)
                     mons_targd = m->mindex();
             }
@@ -1235,7 +1235,7 @@ static void _hell_effects(int /*time_delta*/)
         else                // 1 in 8 odds {dlb}
             which_miscast = coinflip() ? SPTYP_HEXES : SPTYP_CHARMS;
 
-        MiscastEffect(&you, NULL, HELL_EFFECT_MISCAST, which_miscast,
+        MiscastEffect(&you, nullptr, HELL_EFFECT_MISCAST, which_miscast,
                       4 + random2(6), random2avg(97, 3),
                       "the effects of Hell");
     }
@@ -1278,7 +1278,7 @@ static void _hell_effects(int /*time_delta*/)
         }
         else
         {
-            MiscastEffect(&you, NULL, HELL_EFFECT_MISCAST, which_miscast,
+            MiscastEffect(&you, nullptr, HELL_EFFECT_MISCAST, which_miscast,
                           4 + random2(6), random2avg(97, 3),
                           "the effects of Hell");
         }
@@ -2103,16 +2103,16 @@ static struct timed_effect timed_effects[] =
     { TIMER_DETERIORATION, _deteriorate,                  100,   300, false },
     { TIMER_GOD_EFFECTS,   handle_god_time,               100,   300, false },
 #if TAG_MAJOR_VERSION == 34
-    { TIMER_SCREAM, NULL,                                   0,     0, false },
+    { TIMER_SCREAM, nullptr,                                0,     0, false },
 #endif
-    { TIMER_FOOD_ROT,      rot_inventory_food,           100,   300, false },
+    { TIMER_FOOD_ROT,      rot_inventory_food,            100,   300, false },
     { TIMER_PRACTICE,      _wait_practice,                100,   300, false },
     { TIMER_LABYRINTH,     _lab_change,                  1000,  3000, false },
     { TIMER_ABYSS_SPEED,   _abyss_speed,                  100,   300, false },
     { TIMER_JIYVA,         _jiyva_effects,                100,   300, false },
     { TIMER_EVOLUTION,     _evolve,                      5000, 15000, false },
 #if TAG_MAJOR_VERSION == 34
-    { TIMER_BRIBE_TIMEOUT, NULL,                            0,     0, false },
+    { TIMER_BRIBE_TIMEOUT, nullptr,                         0,     0, false },
 #endif
 };
 
@@ -3002,7 +3002,7 @@ void slime_wall_damage(actor* act, int delay)
     {
         if (!you_worship(GOD_JIYVA) || you.penance[GOD_JIYVA])
         {
-            you.splash_with_acid(NULL, strength, false,
+            you.splash_with_acid(nullptr, strength, false,
                                 (walls > 1) ? "The walls burn you!"
                                             : "The wall burns you!");
         }
@@ -3022,7 +3022,7 @@ void slime_wall_damage(actor* act, int delay)
             mprf((walls > 1) ? "The walls burn %s!" : "The wall burns %s!",
                   mon->name(DESC_THE).c_str());
         }
-        mon->hurt(NULL, dam, BEAM_ACID);
+        mon->hurt(nullptr, dam, BEAM_ACID);
     }
 }
 
index 9481aad..df80602 100644 (file)
@@ -42,21 +42,21 @@ int recharge_wand(bool known = true, const string &pre_msg = "");
 
 void direct_effect(monster* src, spell_type spl, bolt &pbolt, actor *defender);
 
-void yell(const actor* mon = NULL);
+void yell(const actor* mon = nullptr);
 
 void holy_word(int pow, holy_word_source_type source, const coord_def& where,
-               bool silent = false, actor *attacker = NULL);
+               bool silent = false, actor *attacker = nullptr);
 
 void holy_word_monsters(coord_def where, int pow, holy_word_source_type source,
-                        actor *attacker = NULL);
+                        actor *attacker = nullptr);
 
 void torment(actor *attacker, torment_source_type taux, const coord_def& where);
 void torment_player(actor *attacker, torment_source_type taux);
 
 void setup_cleansing_flame_beam(bolt &beam, int pow, int caster,
-                                coord_def where, actor *attacker = NULL);
+                                coord_def where, actor *attacker = nullptr);
 void cleansing_flame(int pow, int caster, coord_def where,
-                     actor *attacker = NULL);
+                     actor *attacker = nullptr);
 
 void change_labyrinth(bool msg = false);
 
index 27d1aed..bc6d08b 100644 (file)
@@ -8,7 +8,7 @@
 
 #include "hiscores.h" // scorefile_entry
 
-NORETURN void end(int exit_code, bool print_err = false, PRINTF(2, = NULL));
+NORETURN void end(int exit_code, bool print_err = false, PRINTF(2, = nullptr));
 NORETURN void end_game(scorefile_entry &se);
 NORETURN void game_ended();
 NORETURN void game_ended_with_error(const string &message);
index 3ceec37..7272dea 100644 (file)
@@ -16,7 +16,7 @@
 
 const char * const standard_plural_qualifiers[] =
 {
-    " of ", " labeled ", NULL
+    " of ", " labeled ", nullptr
 };
 
 bool is_vowel(const ucs_t chr)
index e4266bb..232ee7c 100644 (file)
@@ -18,7 +18,7 @@ bool is_vowel(const ucs_t chr);
 string pluralise(const string &name,
                  const char * const stock_plural_quals[]
                      = standard_plural_qualifiers,
-                 const char *no_of[] = NULL);
+                 const char *no_of[] = nullptr);
 string apostrophise(const string &name);
 string apostrophise_fixup(const string &msg);
 string conjugate_verb(const string &verb, bool plural);
index e8832f6..bdf87a0 100644 (file)
@@ -125,7 +125,7 @@ static bool _reaching_weapon_attack(const item_def& wpn)
     monster* mons = monster_at(beam.target);
     // don't allow targeting of submerged monsters (includes trapdoor spiders)
     if (mons && mons->submerged())
-        mons = NULL;
+        mons = nullptr;
 
     const int x_first_middle = you.pos().x + (delta.x)/2;
     const int y_first_middle = you.pos().y + (delta.y)/2;
@@ -213,7 +213,7 @@ static bool _reaching_weapon_attack(const item_def& wpn)
         }
     }
 
-    if (mons == NULL)
+    if (mons == nullptr)
     {
         // Must return true, otherwise you get a free discovery
         // of invisible monsters.
@@ -669,7 +669,7 @@ static bool _box_of_beasts(item_def &box)
     }
 
     bool success = false;
-    monster* mons = NULL;
+    monster* mons = nullptr;
 
     if (!one_chance_in(3))
     {
@@ -1042,8 +1042,8 @@ static bool _lamp_of_fire()
 
     const int pow = 8 + you.skill_rdiv(SK_EVOCATIONS, 9, 4);
     if (spell_direction(target, base_beam, DIR_TARGET, TARG_HOSTILE, 8,
-                        true, true, false, NULL,
-                        "Aim the lamp in which direction?", true, NULL))
+                        true, true, false, nullptr,
+                        "Aim the lamp in which direction?", true, nullptr))
     {
         if (you.confused())
             target.confusion_fuzz();
@@ -1513,7 +1513,7 @@ static bool _phial_of_floods()
     beam.aimed_at_spot = true;
 
     if (spell_direction(target, beam, DIR_NONE, TARG_HOSTILE,
-                        LOS_RADIUS, true, true, false, NULL,
+                        LOS_RADIUS, true, true, false, nullptr,
                         "Aim the phial where?"))
     {
         if (you.confused())
@@ -1576,12 +1576,12 @@ static void _expend_xp_evoker(item_def &item)
 static spret_type _phantom_mirror()
 {
     bolt beam;
-    monster* victim = NULL;
+    monster* victim = nullptr;
     dist spd;
     targetter_smite tgt(&you, LOS_RADIUS, 0, 0);
 
     if (!spell_direction(spd, beam, DIR_TARGET, TARG_ANY,
-                         LOS_RADIUS, false, true, false, NULL,
+                         LOS_RADIUS, false, true, false, nullptr,
                          "Aiming: <white>Phantom Mirror</white>", true,
                          &tgt))
     {
@@ -1735,7 +1735,7 @@ bool evoke_item(int slot, bool check_range)
         slot = prompt_invent_item("Evoke which item? (* to show all)",
                                    MT_INVLIST,
                                    OSEL_EVOKABLE, true, true, true, 0, -1,
-                                   NULL, OPER_EVOKE);
+                                   nullptr, OPER_EVOKE);
 
         if (prompt_failed(slot))
             return false;
@@ -1759,7 +1759,7 @@ bool evoke_item(int slot, bool check_range)
     bool unevokable = false;
 
     const unrandart_entry *entry = is_unrandom_artefact(item)
-        ? get_unrand_entry(item.special) : NULL;
+        ? get_unrand_entry(item.special) : nullptr;
 
     if (entry && entry->evoke_func)
     {
index cddfc53..59aa89f 100644 (file)
@@ -78,7 +78,7 @@ monster* player::get_fearmonger(const coord_def &target) const
         if (olddist > newdist)
             return mon;
     }
-    return NULL;
+    return nullptr;
 }
 
 monster* player::get_any_fearmonger() const
@@ -86,7 +86,7 @@ monster* player::get_any_fearmonger() const
     if (!fearmongers.empty())
         return monster_by_mid(fearmongers[0]);
     else
-        return NULL;
+        return nullptr;
 }
 
 // Removes a monster from the list of fearmongers if present.
index 9d16eb9..abbd1fe 100644 (file)
@@ -651,8 +651,8 @@ int mons_missile_damage(monster* mons, const item_def *launch,
 
 int mons_usable_missile(monster* mons, item_def **launcher)
 {
-    *launcher = NULL;
-    item_def *launch = NULL;
+    *launcher = nullptr;
+    item_def *launch = nullptr;
     for (int i = MSLOT_WEAPON; i <= MSLOT_ALT_WEAPON; ++i)
     {
         if (item_def *item = mons->mslot_item(static_cast<mon_inv_type>(i)))
@@ -664,7 +664,7 @@ int mons_usable_missile(monster* mons, item_def **launcher)
 
     const item_def *missiles = mons->missiles();
     if (launch && missiles && !missiles->launched_by(*launch))
-        launch = NULL;
+        launch = nullptr;
 
     const int fdam = mons_missile_damage(mons, launch, missiles);
 
index c684f31..ff8fcc1 100644 (file)
@@ -24,7 +24,7 @@ enum stab_type
     NUM_STAB
 };
 
-bool fight_melee(actor *attacker, actor *defender, bool *did_hit = NULL,
+bool fight_melee(actor *attacker, actor *defender, bool *did_hit = nullptr,
                  bool simu = false);
 
 int resist_adjust_damage(const actor *defender, beam_type flavour,
index 8b1b6d2..7bee86e 100644 (file)
@@ -918,14 +918,14 @@ static void _grab_followers()
     int non_stair_using_allies = 0;
     int non_stair_using_summons = 0;
 
-    monster* dowan = NULL;
-    monster* duvessa = NULL;
+    monster* dowan = nullptr;
+    monster* duvessa = nullptr;
 
     // Handle nearby ghosts.
     for (adjacent_iterator ai(you.pos()); ai; ++ai)
     {
         monster* fol = monster_at(*ai);
-        if (fol == NULL)
+        if (fol == nullptr)
             continue;
 
         if (mons_is_mons_class(fol, MONS_DUVESSA) && fol->alive())
@@ -2254,7 +2254,7 @@ static bool _ghost_version_compatible(reader &inf)
             return false;
 
         // Discard three more 32-bit words of padding.
-        inf.read(NULL, 3*4);
+        inf.read(nullptr, 3*4);
     }
     catch (short_read_exception &E)
     {
@@ -2270,7 +2270,7 @@ static bool _ghost_version_compatible(reader &inf)
  * Attempt to open a new bones file for saving ghosts.
  *
  * @param[out] return_gfilename     The name of the file created, if any.
- * @return                          A FILE object, or NULL.
+ * @return                          A FILE object, or nullptr.
  **/
 static FILE* _make_bones_file(string * return_gfilename)
 {
@@ -2296,7 +2296,7 @@ static FILE* _make_bones_file(string * return_gfilename)
         return gfil;
     }
 
-    return NULL;
+    return nullptr;
 }
 
 /**
@@ -2392,7 +2392,7 @@ bool unlock_file_handle(FILE *handle)
  *
  * @param mode      The file access mode. ('r', 'ab+', etc)
  * @param file      The path to the file to be opened.
- * @return          A handle for the specified file, if successful; else NULL.
+ * @return          A handle for the specified file, if successful; else nullptr.
  */
 FILE *lk_open(const char *mode, const string &file)
 {
@@ -2400,14 +2400,14 @@ FILE *lk_open(const char *mode, const string &file)
 
     FILE *handle = fopen_u(file.c_str(), mode);
     if (!handle)
-        return NULL;
+        return nullptr;
 
     const bool write_lock = mode[0] != 'r' || strchr(mode, '+');
     if (!lock_file_handle(handle, write_lock))
     {
         mprf(MSGCH_ERROR, "ERROR: Could not lock file %s", file.c_str());
         fclose(handle);
-        handle = NULL;
+        handle = nullptr;
     }
 
     return handle;
@@ -2419,19 +2419,19 @@ FILE *lk_open(const char *mode, const string &file)
  *
  * @param file The path to the file to be opened.
  * @return     A locked file handle for the specified file, if
- *             successful; else NULL.
+ *             successful; else nullptr.
  */
 FILE *lk_open_exclusive(const string &file)
 {
     int fd = open_u(file.c_str(), O_WRONLY|O_BINARY|O_EXCL|O_CREAT, 0666);
     if (fd < 0)
-        return NULL;
+        return nullptr;
 
     if (!lock_file(fd, true))
     {
         mprf(MSGCH_ERROR, "ERROR: Could not lock file %s", file.c_str());
         close(fd);
-        return NULL;
+        return nullptr;
     }
 
     return fdopen(fd, "wb");
@@ -2439,7 +2439,7 @@ FILE *lk_open_exclusive(const string &file)
 
 void lk_close(FILE *handle, const string &file)
 {
-    if (handle == NULL || handle == stdin)
+    if (handle == nullptr || handle == stdin)
         return;
 
     unlock_file_handle(handle);
@@ -2454,7 +2454,7 @@ void lk_close(FILE *handle, const string &file)
 // Locks a named file (usually an empty lock file), creating it if necessary.
 
 file_lock::file_lock(const string &s, const char *_mode, bool die_on_fail)
-    : handle(NULL), mode(_mode), filename(s)
+    : handle(nullptr), mode(_mode), filename(s)
 {
     if (!(handle = lk_open(mode, filename)) && die_on_fail)
         end(1, true, "Unable to open lock file \"%s\"", filename.c_str());
index 4466c27..e173890 100644 (file)
@@ -67,7 +67,7 @@ bool load_level(dungeon_feature_type stair_taken, load_mode_type load_mode,
                 const level_id& old_level);
 void delete_level(const level_id &level);
 
-void save_game(bool leave_game, const char *bye = NULL);
+void save_game(bool leave_game, const char *bye = nullptr);
 
 // Save game without exiting (used when changing levels).
 void save_game_state();
index 52ccda5..e58d4b9 100644 (file)
@@ -434,7 +434,7 @@ void starcursed_merge_fineff::fire()
 
 void shock_serpent_discharge_fineff::fire()
 {
-    monster* serpent = defender() ? defender()->as_monster() : NULL;
+    monster* serpent = defender() ? defender()->as_monster() : nullptr;
     int range = min(3, power);
 
     vector <actor*> targets;
index 684c5c8..02d6428 100644 (file)
@@ -43,7 +43,7 @@ flood_find<fgrd, bound_check>::flood_find(const fgrd &f, const bound_check &bc,
                                      bool avoid_vaults, bool _check_traversable)
     : travel_pathfind(), point_hunt(false), want_exit(false),
       no_vault(avoid_vaults), check_traversable(_check_traversable),
-      needed_features(), needed_points(), left_vault(true), vaults(NULL),
+      needed_features(), needed_points(), left_vault(true), vaults(nullptr),
       fgrid(f), bcheck(bc)
 {
     memset(needed_features, false, sizeof needed_features);
index dc7bae6..809b8c0 100644 (file)
@@ -38,7 +38,7 @@ FontWrapper* FontWrapper::create()
 }
 
 FTFontWrapper::FTFontWrapper() :
-    m_glyphs(NULL),
+    m_glyphs(nullptr),
     m_glyphs_lru(0),
     m_glyphs_mru(0),
     m_glyphs_top(0),  // reinitialised to 1 in load_font
@@ -146,7 +146,7 @@ bool FTFontWrapper::load_font(const char *font_name, unsigned int font_size,
             4 * m_ft_width * m_ft_height);
 
     // initialise empty texture of correct size
-    m_tex.load_texture(NULL, m_ft_width, m_ft_height, MIPMAP_NONE);
+    m_tex.load_texture(nullptr, m_ft_width, m_ft_height, MIPMAP_NONE);
 
     // Special case c = 0 for full block.
     {
index a8aaabf..9fa9eec 100644 (file)
@@ -160,7 +160,7 @@ bool prompt_eat_inventory_item(int slot)
         which_inventory_slot = prompt_invent_item("Eat which item?",
                                                   MT_INVLIST, OBJ_FOOD,
                                                   true, true, true, 0, -1,
-                                                  NULL, OPER_EAT);
+                                                  nullptr, OPER_EAT);
 
         if (prompt_failed(which_inventory_slot))
             return false;
@@ -621,7 +621,7 @@ bool eat_from_inventory()
         return 0;
 
     int inedible_food = 0;
-    item_def *wonteat = NULL;
+    item_def *wonteat = nullptr;
     bool found_valid = false;
 
     vector<item_def *> food_items;
index f431d1c..4b6ad5e 100644 (file)
@@ -92,7 +92,7 @@ void formatted_string::parse_string_to_multiple(const string &s,
         out.emplace_back();
         formatted_string& fs = out.back();
         fs.textcolour(colour_stack.back());
-        parse_string1(lines[i], fs, colour_stack, NULL);
+        parse_string1(lines[i], fs, colour_stack, nullptr);
         if (colour_stack.back() != colour_stack.front())
             fs.textcolour(colour_stack.front());
     }
index 9507e28..40a0846 100644 (file)
@@ -49,7 +49,7 @@ public:
     static formatted_string parse_string(
             const string &s,
             bool  eot_ends_format = true,
-            bool (*process_tag)(const string &tag) = NULL,
+            bool (*process_tag)(const string &tag) = nullptr,
             int main_colour = LIGHTGREY);
 
     static void parse_string_to_multiple(const string &s,
index 01dbc20..10141f6 100644 (file)
@@ -1000,7 +1000,7 @@ void ghost_demon::init_spellforged_servitor(actor* caster)
 {
     mon_spell_slot slot;
     slot.flags = MON_SPELL_WIZARD;
-    monster* mon = caster->is_monster() ? caster->as_monster() : NULL;
+    monster* mon = caster->is_monster() ? caster->as_monster() : nullptr;
 
     int pow = mon ? 12 * mon->spell_hd(SPELL_SPELLFORGED_SERVITOR)
                   : calc_spell_power(SPELL_SPELLFORGED_SERVITOR, true);
index 49b416c..7c99528 100644 (file)
@@ -41,7 +41,7 @@
 /////////////////////////////////////////////////////////////////////////////
 // Static functions from GLStateManager
 
-GLStateManager *glmanager = NULL;
+GLStateManager *glmanager = nullptr;
 
 void GLStateManager::init()
 {
@@ -54,7 +54,7 @@ void GLStateManager::init()
 void GLStateManager::shutdown()
 {
     delete glmanager;
-    glmanager = NULL;
+    glmanager = nullptr;
 }
 
 /////////////////////////////////////////////////////////////////////////////
@@ -444,7 +444,7 @@ OGLShapeBuffer::OGLShapeBuffer(bool texture, bool colour, drawing_modes prim) :
 
 const char *OGLShapeBuffer::print_statistics() const
 {
-    return NULL;
+    return nullptr;
 }
 
 unsigned int OGLShapeBuffer::size() const
index 0e241a2..68509ce 100644 (file)
@@ -1669,7 +1669,7 @@ void jiyva_paralyse_jellies()
     {
         monster* mon = monster_at(*ri);
         const int dur = 16 + random2(9);
-        if (mon != NULL && mons_is_slime(mon) && !mon->is_shapeshifter())
+        if (mon != nullptr && mons_is_slime(mon) && !mon->is_shapeshifter())
         {
             mon->add_ench(mon_enchant(ENCH_PARALYSIS, 0,
                                       &you, dur * BASELINE_DELAY));
@@ -2872,7 +2872,7 @@ int fedhas_corpse_spores(beh_type attitude)
 struct monster_conversion
 {
     monster_conversion() :
-        base_monster(NULL),
+        base_monster(nullptr),
         piety_cost(0),
         fruit_cost(0)
     {
@@ -3168,7 +3168,7 @@ void fedhas_evolve_flora()
 
 static int _lugonu_warp_monster(monster* mon, int pow)
 {
-    if (mon == NULL)
+    if (mon == nullptr)
         return 0;
 
     if (coinflip())
@@ -3249,7 +3249,7 @@ void cheibriados_time_bend(int pow)
 static int _slouchable(coord_def where, int pow, int, actor* agent)
 {
     monster* mon = monster_at(where);
-    if (mon == NULL || mon->is_stationary() || mon->cannot_move()
+    if (mon == nullptr || mon->is_stationary() || mon->cannot_move()
         || mons_is_projectile(mon->type)
         || mon->asleep() && !mons_is_confused(mon))
     {
@@ -3627,7 +3627,7 @@ static bool _dithmenos_shadow_acts()
 monster* shadow_monster(bool equip)
 {
     if (monster_at(you.pos()))
-        return NULL;
+        return nullptr;
 
     int wpn_index  = NON_ITEM;
 
@@ -3641,7 +3641,7 @@ monster* shadow_monster(bool equip)
     {
         wpn_index = get_mitm_slot(10);
         if (wpn_index == NON_ITEM)
-            return NULL;
+            return nullptr;
         item_def& new_item = mitm[wpn_index];
         if (wpn->base_type == OBJ_STAVES)
         {
@@ -3668,7 +3668,7 @@ monster* shadow_monster(bool equip)
     {
         if (wpn_index)
             destroy_item(wpn_index);
-        return NULL;
+        return nullptr;
     }
 
     mon->type       = MONS_PLAYER_SHADOW;
@@ -4369,7 +4369,7 @@ static void _gozag_place_shop_here(int index)
  */
 static void _gozag_place_shop(int index)
 {
-    vector<level_id> candidates = _get_gozag_shop_candidates(NULL);
+    vector<level_id> candidates = _get_gozag_shop_candidates(nullptr);
 
     if (candidates.size())
         _gozag_place_shop_offlevel(index, candidates);
@@ -4736,7 +4736,7 @@ spret_type qazlal_upheaval(coord_def target, bool quiet, bool fail)
         dist spd;
         targetter_smite tgt(&you, LOS_RADIUS, 0, max_radius);
         if (!spell_direction(spd, beam, DIR_TARGET, TARG_HOSTILE,
-                             LOS_RADIUS, false, true, false, NULL,
+                             LOS_RADIUS, false, true, false, nullptr,
                              "Aiming: <white>Upheaval</white>", true,
                              &tgt))
         {
@@ -5548,7 +5548,7 @@ static void _extra_sacrifice_code(ability_type sac)
         bool open_ring_slot = false;
 
         // Drop your shield if there is one
-        if (shield != NULL)
+        if (shield != nullptr)
         {
             mprf("You can no longer hold %s!",
                 shield->name(DESC_YOUR).c_str());
@@ -5556,7 +5556,7 @@ static void _extra_sacrifice_code(ability_type sac)
         }
 
         // And your two-handed weapon
-        if (weapon != NULL)
+        if (weapon != nullptr)
         {
             if (you.hands_reqd(*weapon) == HANDS_TWO)
             {
@@ -5567,7 +5567,7 @@ static void _extra_sacrifice_code(ability_type sac)
         }
 
         // And one ring
-        if (ring != NULL)
+        if (ring != nullptr)
         {
             if (you.species == SP_OCTOPODE)
             {
@@ -5890,7 +5890,7 @@ bool ru_power_leap()
     {
         targetter_smite tgt(&you, range, explosion_size, explosion_size);
         if (!spell_direction(beam, fake_beam, DIR_LEAP, TARG_ANY,
-                             range, false, false, false, NULL,
+                             range, false, false, false, nullptr,
                              "Aiming: <white>Power Leap</white>", true,
                              &tgt)
             && crawl_state.seen_hups)
@@ -5997,7 +5997,7 @@ bool ru_power_leap()
     for (adjacent_iterator ai(you.pos(), false); ai; ++ai)
     {
         monster* mon = monster_at(*ai);
-        if (mon == NULL || mons_is_projectile(mon->type) || mon->friendly())
+        if (mon == nullptr || mons_is_projectile(mon->type) || mon->friendly())
             continue;
         ASSERT(mon);
 
@@ -6013,7 +6013,7 @@ bool ru_power_leap()
 static int _apocalypseable(coord_def where, int pow, int, actor* agent)
 {
     monster* mon = monster_at(where);
-    if (mon == NULL || mons_is_projectile(mon->type) || mon->friendly())
+    if (mon == nullptr || mons_is_projectile(mon->type) || mon->friendly())
         return 0;
     return 1;
 }
index 7b90b16..0410d4a 100644 (file)
@@ -178,7 +178,7 @@ void gift_ammo_to_orc(monster* orc, bool initial_gift)
 static string _beogh_bless_melee_weapon(monster* mon)
 {
     item_def* wpn_ptr = mon->melee_weapon();
-    ASSERT(wpn_ptr != NULL);
+    ASSERT(wpn_ptr != nullptr);
     item_def& wpn = *wpn_ptr;
 
     const int old_weapon_type = wpn.sub_type;
@@ -227,11 +227,11 @@ static string _beogh_bless_ranged_weapon(monster* mon)
 {
     // if they already have a launcher, restock it.
     // likewise if they have a shield but no launcher (give tomahawks)
-    const bool mon_has_launcher = mon->launcher() != NULL;
-    if (mon_has_launcher || mon->shield() != NULL)
+    const bool mon_has_launcher = mon->launcher() != nullptr;
+    if (mon_has_launcher || mon->shield() != nullptr)
     {
         gift_ammo_to_orc(mon);
-        if (mon->missiles() != NULL)
+        if (mon->missiles() != nullptr)
             return mon_has_launcher ? "ammunition" : "ranged armament";
 
         dprf("Couldn't give ammo to follower!");
@@ -240,14 +240,14 @@ static string _beogh_bless_ranged_weapon(monster* mon)
 
     // no launcher, no shield: give them a crossbow & some ammo.
     _gift_weapon_to_orc(mon, WPN_ARBALEST);
-    if (mon->launcher() == NULL)
+    if (mon->launcher() == nullptr)
     {
         dprf("Couldn't give crossbow to follower!");
         return ""; // ?
     }
 
     gift_ammo_to_orc(mon, true);
-    if (mon->missiles() == NULL)
+    if (mon->missiles() == nullptr)
         dprf("Couldn't give initial ammo to follower");
     return "ranged armament";
 }
@@ -261,10 +261,10 @@ static string _beogh_bless_ranged_weapon(monster* mon)
 static string _beogh_bless_weapon(monster* mon)
 {
     const item_def* wpn_ptr = mon->melee_weapon();
-    if (wpn_ptr == NULL)
+    if (wpn_ptr == nullptr)
     {
         _gift_weapon_to_orc(mon, _orc_weapon_gift_type(mon->type));
-        if (mon->weapon() != NULL)
+        if (mon->weapon() != nullptr)
             return "armament";
 
         dprf("Couldn't give a weapon to follower!");
@@ -273,10 +273,10 @@ static string _beogh_bless_weapon(monster* mon)
 
     const item_def* launch_ptr = mon->launcher();
     const item_def* ammo_ptr = mon->missiles();
-    if (launch_ptr != NULL && ammo_ptr == NULL)
+    if (launch_ptr != nullptr && ammo_ptr == nullptr)
     {
         gift_ammo_to_orc(mon);
-        if (mon->missiles() != NULL)
+        if (mon->missiles() != nullptr)
             return "ammunition";
 
         dprf("Couldn't give ammo to follower!");
@@ -355,9 +355,9 @@ static string _beogh_bless_armour(monster* mon)
     // Pick either a monster's armour or its shield.
     const item_def* melee_weap = mon->melee_weapon();
     const item_def* launcher = mon->launcher();
-    const bool can_use_shield = (melee_weap == NULL
+    const bool can_use_shield = (melee_weap == nullptr
                                  || mon->hands_reqd(*melee_weap) != HANDS_TWO)
-                                && (launcher == NULL
+                                && (launcher == nullptr
                                    || mon->hands_reqd(*launcher) != HANDS_TWO);
     const int slot = coinflip() && can_use_shield ? shield : armour;
 
@@ -480,7 +480,7 @@ static string _tso_bless_weapon(monster* mon)
     }
 
     item_def* wpn_ptr = mon->weapon();
-    if (wpn_ptr == NULL)
+    if (wpn_ptr == nullptr)
     {
         dprf("Couldn't bless follower's weapon; they have none!");
         return "";
index b9bbb3a..60b2265 100644 (file)
@@ -10,7 +10,7 @@
 
 void gift_ammo_to_orc(monster* orc, bool initial_gift = false);
 
-bool bless_follower(monster* follower = NULL,
+bool bless_follower(monster* follower = nullptr,
                     god_type god = you.religion,
                     bool force = false);
 
index d3d1a92..38cef7e 100644 (file)
@@ -34,7 +34,7 @@ void god_conduct_trigger::set(conduct_type c, int pg, bool kn,
     conduct = c;
     pgain = pg;
     known = kn;
-    victim.reset(NULL);
+    victim.reset(nullptr);
     if (vict)
     {
         victim.reset(new monster);
@@ -109,7 +109,7 @@ static void _handle_piety_penance(int piety_change, int piety_denom,
  * Whether good gods that you folow are offended by you attacking a specific
  * holy monster.
  *
- * @param victim    The holy in question. (May be NULL.)
+ * @param victim    The holy in question. (May be nullptr.)
  * @return          Whether DID_ATTACK_HOLY applies.
  */
 static bool _attacking_holy_matters(const monster* victim)
@@ -132,10 +132,10 @@ struct dislike_response
     /// Something your god says when you accidentally triggered the conduct.
     /// Implies that unknowingly triggering the conduct is forgiven.
     const char *forgiveness_message;
-    /// Something your god says when you trigger this conduct. May be NULL.
+    /// Something your god says when you trigger this conduct. May be nullptr.
     const char *message;
     /// A function that checks the victim of the conduct to see if the conduct
-    /// should actually, really apply to it. If NULL, all victims are valid.
+    /// should actually, really apply to it. If nullptr, all victims are valid.
     bool (*valid_victim)(const monster* victim);
     /// A flat decrease to penance, after penance_factor is applied.
     int penance_offset;
@@ -201,12 +201,12 @@ static const dislike_response GOOD_BLOOD_RESPONSE = {
 
 /// Good gods', and Beogh's, response to cannibalism.
 static const dislike_response RUDE_CANNIBALISM_RESPONSE = {
-    5, 3, NULL, " expects more respect for your departed relatives."
+    5, 3, nullptr, " expects more respect for your departed relatives."
 };
 
 /// Zin and Ely's responses to desecrating holy remains.
 static const dislike_response GOOD_DESECRATE_HOLY_RESPONSE = {
-    1, 1, NULL, " expects more respect for holy creatures!"
+    1, 1, nullptr, " expects more respect for holy creatures!"
 };
 
 /// Zin and Ely's responses to unholy actions & necromancy.
@@ -216,18 +216,18 @@ static const dislike_response GOOD_UNHOLY_RESPONSE = {
 
 /// Zin and Ely's responses to the player attacking holy creatures.
 static const dislike_response GOOD_ATTACK_HOLY_RESPONSE = {
-    1, 1, NULL, NULL, _attacking_holy_matters
+    1, 1, nullptr, nullptr, _attacking_holy_matters
 };
 
 /// Good gods' response to the player killing holy creatures.
 static const dislike_response GOOD_KILL_HOLY_RESPONSE = {
-    3, 3, NULL, NULL, _attacking_holy_matters
+    3, 3, nullptr, nullptr, _attacking_holy_matters
 };
 
 /// TSO's response to the player stabbing or poisoning monsters.
 static const dislike_response TSO_UNCHIVALRIC_RESPONSE = {
     1, 2, " forgives your inadvertent dishonourable attack, just"
-              " this once.", NULL, [] (const monster* victim) {
+              " this once.", nullptr, [] (const monster* victim) {
         return !victim || !tso_unchivalric_attack_safe_monster(victim);
     }
 };
@@ -240,7 +240,7 @@ static const dislike_response GOOD_ATTACK_NEUTRAL_RESPONSE = {
 /// Various gods' response to attacking a pal.
 static const dislike_response ATTACK_FRIEND_RESPONSE = {
     1, 3, " forgives your inadvertent attack on an ally, just this once.",
-    NULL, [] (const monster* victim) {
+    nullptr, [] (const monster* victim) {
         dprf("hates friend : %d", god_hates_attacking_friend(you.religion, victim));
         return god_hates_attacking_friend(you.religion, victim);
     }
@@ -248,7 +248,7 @@ static const dislike_response ATTACK_FRIEND_RESPONSE = {
 
 /// Ely response to a friend dying.
 static const dislike_response ELY_FRIEND_DEATH_RESPONSE = {
-    1, 0, NULL, NULL, [] (const monster* victim) {
+    1, 0, nullptr, nullptr, [] (const monster* victim) {
         // For everyone but Fedhas, plants are items not creatures,
         // and animated items are, well, items as well.
         return victim && !mons_is_object(victim->type)
@@ -260,7 +260,7 @@ static const dislike_response ELY_FRIEND_DEATH_RESPONSE = {
 
 /// Fedhas's response to a friend(ly plant) dying.
 static const dislike_response FEDHAS_FRIEND_DEATH_RESPONSE = {
-    1, 0, NULL, NULL, [] (const monster* victim) {
+    1, 0, nullptr, nullptr, [] (const monster* victim) {
         // ballistomycetes are penalized separately.
         return victim && fedhas_protects(victim)
         && victim->mons_species() != MONS_BALLISTOMYCETE;
@@ -310,11 +310,11 @@ static peeve_map divine_peeves[] =
         { DID_DRINK_BLOOD, GOOD_BLOOD_RESPONSE },
         { DID_CANNIBALISM, RUDE_CANNIBALISM_RESPONSE },
         { DID_ATTACK_HOLY, {
-            1, 2, NULL, NULL, _attacking_holy_matters
+            1, 2, nullptr, nullptr, _attacking_holy_matters
         } },
         { DID_KILL_HOLY, GOOD_KILL_HOLY_RESPONSE },
         { DID_DESECRATE_HOLY_REMAINS, {
-            1, 2, NULL, " expects more respect for holy creatures!"
+            1, 2, nullptr, " expects more respect for holy creatures!"
         } },
         { DID_NECROMANCY, {
             1, 2, " forgives your inadvertent unholy act, just this once."
@@ -358,7 +358,7 @@ static peeve_map divine_peeves[] =
             1, 5,
         } },
         { DID_SPELL_PRACTISE, {
-            1, 0, NULL, " doesn't appreciate your training magic!"
+            1, 0, nullptr, " doesn't appreciate your training magic!"
         } },
     },
     // GOD_NEMELEX_XOBEH,
@@ -377,7 +377,7 @@ static peeve_map divine_peeves[] =
         { DID_FRIEND_DIED, ELY_FRIEND_DEATH_RESPONSE },
         { DID_SOULED_FRIEND_DIED, ELY_FRIEND_DEATH_RESPONSE },
         { DID_KILL_LIVING, {
-            1, 2, NULL, " does not appreciate your shedding blood"
+            1, 2, nullptr, " does not appreciate your shedding blood"
                             " when asking for salvation!",
             [] (const monster*) {
                 // Killing is only disapproved of during prayer.
@@ -397,12 +397,12 @@ static peeve_map divine_peeves[] =
     // GOD_JIYVA,
     {
         { DID_KILL_SLIME, {
-            1, 2, NULL, NULL, [] (const monster* victim) {
+            1, 2, nullptr, nullptr, [] (const monster* victim) {
                 return victim && !victim->is_shapeshifter();
             }
         } },
         { DID_ATTACK_NEUTRAL, {
-            1, 1, NULL, NULL, [] (const monster* victim) {
+            1, 1, nullptr, nullptr, [] (const monster* victim) {
                 return victim
                     && mons_is_slime(victim) && !victim->is_shapeshifter();
             }
@@ -425,7 +425,7 @@ static peeve_map divine_peeves[] =
     {
         { DID_HASTY, {
             1, 1, " forgives your accidental hurry, just this once.",
-            " thinks you should slow down.", NULL, -5
+            " thinks you should slow down.", nullptr, -5
         } },
     },
     // GOD_ASHENZARI,
@@ -434,7 +434,7 @@ static peeve_map divine_peeves[] =
     {
         { DID_FIRE, {
             1, 1, " forgives your accidental fire-starting, just this once.",
-            " does not appreciate your starting fires!", NULL, -5
+            " does not appreciate your starting fires!", nullptr, -5
         } },
     },
     // GOD_GOZAG,
@@ -477,10 +477,10 @@ struct like_response
     /// Degree to which your XL modifies piety gained. If zero, do not
     /// modify piety by XL; otherwise divide player XL by this value.
     int xl_denom;
-    /// Something your god says when you trigger this conduct. May be NULL.
+    /// Something your god says when you trigger this conduct. May be nullptr.
     const char *message;
     /// Special-case code for weird likes. May modify piety bonus/denom, or
-    /// may have other side effects. If NULL, doesn't trigger, ofc.
+    /// may have other side effects. If nullptr, doesn't trigger, ofc.
     void (*special)(int &piety, int &denom, const monster* victim);
 
     /// Apply this response to a given conduct, severity level, and victim.
@@ -552,7 +552,7 @@ static int _piety_bonus_for_holiness(mon_holy_type holiness)
  */
 static like_response _on_kill(mon_holy_type holiness, bool god_is_good = false,
                              void (*special)(int &piety, int &denom,
-                                             const monster* victim) = NULL)
+                                             const monster* victim) = nullptr)
 {
     like_response response = {
         _piety_bonus_for_holiness(holiness),
@@ -582,7 +582,7 @@ static const like_response GOOD_KILL_RESPONSE = _on_kill(MH_DEMONIC, true);
 // If you or any friendly kills one, you'll get the credit/blame.
 
 static const like_response OKAWARU_KILL = {
-    0, 0, 0, NULL, [] (int &piety, int &denom, const monster* victim)
+    0, 0, 0, nullptr, [] (int &piety, int &denom, const monster* victim)
     {
         piety = get_fuzzied_monster_difficulty(victim);
         dprf("fuzzied monster difficulty: %4.2f", piety * 0.01);
@@ -615,7 +615,7 @@ static like_map divine_likes[] =
         { DID_KILL_NATURAL_UNHOLY, GOOD_KILL_RESPONSE },
         { DID_KILL_NATURAL_EVIL, GOOD_KILL_RESPONSE },
         { DID_SEE_MONSTER, {
-            0, 0, 0, NULL, [] (int &piety, int &denom, const monster* victim)
+            0, 0, 0, nullptr, [] (int &piety, int &denom, const monster* victim)
             {
                 // don't give piety for seeing things we get piety for killing.
                 if (victim && (victim->is_evil() || victim->is_unholy()))
@@ -679,7 +679,8 @@ static like_map divine_likes[] =
     // GOD_SIF_MUNA,
     {
         { DID_SPELL_PRACTISE, {
-            0, 0, 0, NULL, [] (int &piety, int &denom, const monster* /*victim*/)
+            0, 0, 0, nullptr,
+            [] (int &piety, int &denom, const monster* /*victim*/)
             {
                 // piety = denom = level at the start of the function
                 denom = 4;
@@ -698,7 +699,8 @@ static like_map divine_likes[] =
     // GOD_NEMELEX_XOBEH,
     {
         { DID_EXPLORATION, {
-            0, 0, 0, NULL, [] (int &piety, int &denom, const monster* /*victim*/)
+            0, 0, 0, nullptr,
+            [] (int &piety, int &denom, const monster* /*victim*/)
             {
                 // piety = denom = level at the start of the function
                 piety = 14;
@@ -734,7 +736,8 @@ static like_map divine_likes[] =
     // GOD_CHEIBRIADOS,
     {
         { DID_KILL_FAST, {
-            -6, 18, 2, NULL, [] (int &piety, int &/*denom*/, const monster* victim)
+            -6, 18, 2, nullptr,
+            [] (int &piety, int &/*denom*/, const monster* victim)
             {
                 const int speed_delta =
                     cheibriados_monster_player_speed_delta(victim);
@@ -755,7 +758,8 @@ static like_map divine_likes[] =
     // GOD_ASHENZARI,
     {
         { DID_EXPLORATION, {
-            0, 0, 0, NULL, [] (int &piety, int &denom, const monster* /*victim*/)
+            0, 0, 0, nullptr,
+            [] (int &piety, int &denom, const monster* /*victim*/)
             {
                 const int level = denom; // also = piety
                 const int base_gain = 8; // base gain per dungeon level
@@ -787,7 +791,8 @@ static like_map divine_likes[] =
     // GOD_RU,
     {
         { DID_EXPLORATION, {
-            0, 0, 0, NULL, [] (int &piety, int &denom, const monster* /*victim*/)
+            0, 0, 0, nullptr,
+            [] (int &piety, int &denom, const monster* /*victim*/)
             {
                 piety = 0;
                 denom = 1;
index 7d01b7c..16a57fc 100644 (file)
@@ -18,19 +18,19 @@ struct god_conduct_trigger
     god_conduct_trigger(conduct_type c = NUM_CONDUCTS,
                         int pg = 0,
                         bool kn = true,
-                        const monster* vict = NULL);
+                        const monster* vict = nullptr);
 
     void set(conduct_type c = NUM_CONDUCTS,
              int pg = 0,
              bool kn = true,
-             const monster* vict = NULL);
+             const monster* vict = nullptr);
 
     ~god_conduct_trigger();
 };
 
 void did_kill_conduct(conduct_type thing_done, const monster &victim);
 void did_god_conduct(conduct_type thing_done, int level, bool known = true,
-                     const monster* victim = NULL);
+                     const monster* victim = nullptr);
 void set_attack_conducts(god_conduct_trigger conduct[3], const monster* mon,
                          bool known = true);
 void enable_attack_conducts(god_conduct_trigger conduct[3]);
index 9c7eb97..8b3498a 100644 (file)
@@ -51,9 +51,9 @@
 #include "view.h"
 #include "xom.h"
 
-static void _god_smites_you(god_type god, const char *message = NULL,
+static void _god_smites_you(god_type god, const char *message = nullptr,
                             kill_method_type death_type = NUM_KILLBY);
-static void _tso_blasts_cleansing_flame(const char *message = NULL);
+static void _tso_blasts_cleansing_flame(const char *message = nullptr);
 
 static const char *_god_wrath_adjectives[] =
 {
@@ -320,7 +320,7 @@ static bool _zin_retribution()
             confuse_player(3 + random2(10));
             break;
         case 1:
-            you.put_to_sleep(NULL, 30 + random2(20));
+            you.put_to_sleep(nullptr, 30 + random2(20));
             break;
         case 2:
             paralyse_player(_god_wrath_name(god));
@@ -350,7 +350,7 @@ static void _ely_dull_inventory_weapons()
     int num_dulled = 0;
     int quiver_link;
 
-    you.m_quiver->get_desired_item(NULL, &quiver_link);
+    you.m_quiver->get_desired_item(nullptr, &quiver_link);
 
     for (int i = 0; i < ENDOFPACK; ++i)
     {
@@ -412,7 +412,7 @@ static bool _elyvilon_retribution()
         break;
 
     case 2: // mostly flavour messages
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_POISON,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_POISON,
                       one_chance_in(3) ? 1 : 0, _god_wrath_name(god));
         break;
 
@@ -458,14 +458,14 @@ static bool _cheibriados_retribution()
     // Very high tension wrath
     case 4:
         simple_god_message(" adjusts the clock.", god);
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_RANDOM, 8, 90,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_RANDOM, 8, 90,
                       _god_wrath_name(god));
         if (one_chance_in(wrath_type - 1))
             break;
     // High tension wrath
     case 3:
         mpr("You lose track of time.");
-        you.put_to_sleep(NULL, 30 + random2(20));
+        you.put_to_sleep(nullptr, 30 + random2(20));
         dec_penance(god, 1);
         if (one_chance_in(wrath_type - 2))
             break;
@@ -558,13 +558,13 @@ static spell_type _makhleb_destruction_type()
  * destructive magic at foolish players.
  *
  * @param god           The god doing the wrath-hurling.
- * @return              An avatar monster, or NULL if none could be set up.
+ * @return              An avatar monster, or nullptr if none could be set up.
  */
 static monster* get_avatar(god_type god)
 {
     monster* avatar = shadow_monster(false);
     if (!avatar)
-        return NULL;
+        return nullptr;
 
     avatar->mname = _god_wrath_name(god);
     avatar->flags |= MF_NAME_REPLACE;
@@ -586,7 +586,7 @@ static bool _makhleb_call_down_destruction()
     monster* avatar = get_avatar(god);
     // can't be const because mons_cast() doesn't accept const monster*
 
-    if (avatar == NULL)
+    if (avatar == nullptr)
     {
         simple_god_message("has no time to deal with you just now.", god);
         return false; // not a very dazzling divine experience...
@@ -704,7 +704,7 @@ static bool _kikubaaqudgha_retribution()
     god_speaks(god, coinflip() ? "You hear Kikubaaqudgha cackling."
                                : "Kikubaaqudgha's malice focuses upon you.");
 
-    if (!count_corpses_in_los(NULL) || random2(you.experience_level) > 4)
+    if (!count_corpses_in_los(nullptr) || random2(you.experience_level) > 4)
     {
         // Either zombies, or corpse rot + skeletons.
         kiku_receive_corpses(you.experience_level * 4);
@@ -717,12 +717,13 @@ static bool _kikubaaqudgha_retribution()
     {
         // torment, or 3 necromancy miscasts
         if (!player_res_torment(false))
-            torment(NULL, TORMENT_KIKUBAAQUDGHA, you.pos());
+            torment(nullptr, TORMENT_KIKUBAAQUDGHA, you.pos());
         else
         {
             for (int i = 0; i < 3; ++i)
             {
-                MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_NECROMANCY,
+                MiscastEffect(&you, nullptr, GOD_MISCAST + god,
+                              SPTYP_NECROMANCY,
                               2 + div_rand_round(you.experience_level, 9),
                               random2avg(88, 3), _god_wrath_name(god));
             }
@@ -733,7 +734,7 @@ static bool _kikubaaqudgha_retribution()
         // necromancy miscast, 20% chance of additional miscast
         do
         {
-            MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_NECROMANCY,
+            MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_NECROMANCY,
                           2 + div_rand_round(you.experience_level, 9),
                           random2avg(88, 3), _god_wrath_name(god));
         }
@@ -787,7 +788,7 @@ static bool _yredelemnul_retribution()
     else
     {
         simple_god_message("'s anger turns toward you for a moment.", god);
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_NECROMANCY,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_NECROMANCY,
                       2 + div_rand_round(you.experience_level, 9),
                       random2avg(88, 3), _god_wrath_name(god));
     }
@@ -883,7 +884,7 @@ static bool _trog_retribution()
         //    fire magic. -- bwr
         dec_penance(god, 2);
         mprf(MSGCH_WARN, "You feel Trog's fiery rage upon you!");
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_FIRE,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_FIRE,
                       8 + you.experience_level, random2avg(98, 3),
                       _god_wrath_name(god));
     }
@@ -924,7 +925,7 @@ static bool _beogh_retribution()
                         _god_wrath_name(god),
                         true, 0, 0, you.pos(), 0, god)))
             {
-                ASSERT(mon->weapon() != NULL);
+                ASSERT(mon->weapon() != nullptr);
                 item_def& wpn(*mon->weapon());
 
                 set_item_ego_type(wpn, OBJ_WEAPONS, SPWPN_ELECTROCUTION);
@@ -1045,7 +1046,7 @@ static bool _sif_muna_retribution()
 
     case 5:
     case 6:
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_DIVINATION, 9, 90,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_DIVINATION, 9, 90,
                       _god_wrath_name(god));
         break;
 
@@ -1085,7 +1086,7 @@ static void _lugonu_transloc_retribution()
     if (coinflip())
     {
         simple_god_message("'s wrath finds you!", god);
-        MiscastEffect(&you, NULL, GOD_MISCAST + god, SPTYP_TRANSLOCATION, 9,
+        MiscastEffect(&you, nullptr, GOD_MISCAST + god, SPTYP_TRANSLOCATION, 9,
                       90, "Lugonu's touch");
     }
     else if (coinflip())
@@ -1300,7 +1301,7 @@ static void _jiyva_mutate_player()
  */
 static void _jiyva_slimify()
 {
-    monster* mon = NULL;
+    monster* mon = nullptr;
 
     const int max_tries = 10;
     bool success = false;
@@ -1420,7 +1421,7 @@ static void _fedhas_elemental_miscast()
 
     const spschool_flag_type stype = random_choose(SPTYP_ICE, SPTYP_FIRE,
                                                    SPTYP_EARTH, SPTYP_AIR);
-    MiscastEffect(&you, NULL, GOD_MISCAST + god, stype,
+    MiscastEffect(&you, nullptr, GOD_MISCAST + god, stype,
                   5 + you.experience_level, random2avg(88, 3),
                   _god_wrath_name(god));
 }
@@ -1607,7 +1608,7 @@ static bool _dithmenos_retribution()
     {
         // This is possibly kind of underwhelming?
         god_speaks(god, "You feel overwhelmed by the shadows around you.");
-        you.put_to_sleep(NULL, 30 + random2(20));
+        you.put_to_sleep(nullptr, 30 + random2(20));
         break;
     }
     case 3:
index 0a1c725..f069728 100644 (file)
@@ -101,12 +101,12 @@ void hiscores_new_entry(const scorefile_entry &ne)
     int i, total_entries;
     bool inserted = false;
 
-    // open highscore file (reading) -- NULL is fatal!
+    // open highscore file (reading) -- nullptr is fatal!
     //
     // Opening as a+ instead of r+ to force an exclusive lock (see
     // hs_open) and to create the file if it's not there already.
     scores = _hs_open("a+", _score_file_name());
-    if (scores == NULL)
+    if (scores == nullptr)
         end(1, true, "failed to open score file for writing");
 
     // we're at the end of the file, seek back to beginning.
@@ -170,7 +170,7 @@ void hiscores_new_entry(const scorefile_entry &ne)
     for (i = 0; i < total_entries; i++)
     {
         _hs_write(scores, *hs_list[i]);
-        hs_list[i].reset(NULL);
+        hs_list[i].reset(nullptr);
     }
 
     // close scorefile.
@@ -184,9 +184,9 @@ void logfile_new_entry(const scorefile_entry &ne)
     FILE *logfile;
     scorefile_entry le = ne;
 
-    // open logfile (appending) -- NULL *is* fatal here.
+    // open logfile (appending) -- nullptr *is* fatal here.
     logfile = _hs_open("a", _log_file_name());
-    if (logfile == NULL)
+    if (logfile == nullptr)
     {
         mprf(MSGCH_ERROR, "ERROR: failure writing to the logfile.");
         return;
@@ -225,7 +225,7 @@ void hiscores_print_all(int display_count, int format)
     unwind_bool scorefile_display(crawl_state.updating_scores, true);
 
     FILE *scores = _hs_open("r", _score_file_name());
-    if (scores == NULL)
+    if (scores == nullptr)
     {
         // will only happen from command line
         puts("No scores.");
@@ -261,7 +261,7 @@ void hiscores_print_list(int display_count, int format)
 
     // open highscore file (reading)
     scores = _hs_open("r", _score_file_name());
-    if (scores == NULL)
+    if (scores == nullptr)
         return;
 
     // read highscore file
@@ -303,7 +303,7 @@ void hiscores_print_list(int display_count, int format)
 
 static void _add_hiscore_row(MenuScroller* scroller, scorefile_entry& se, int id)
 {
-    TextItem* tmp = NULL;
+    TextItem* tmp = nullptr;
     tmp = new TextItem();
 
     coord_def min_coord(1,1);
@@ -326,7 +326,7 @@ static void _construct_hiscore_table(MenuScroller* scroller)
     FILE *scores = _hs_open("r", _score_file_name());
     int i;
 
-    if (scores == NULL)
+    if (scores == nullptr)
         return;
 
     // read highscore file
@@ -365,7 +365,7 @@ static void _show_morgue(scorefile_entry& se)
     char buf[200];
     string morgue_text = "";
 
-    while (fgets(buf, sizeof buf, morgue) != NULL)
+    while (fgets(buf, sizeof buf, morgue) != nullptr)
     {
         string line = string(buf);
         size_t newline_pos = line.find_last_of('\n');
@@ -460,7 +460,7 @@ void show_hiscore_table()
     menu.attach_object(highlighter);
 
     menu.set_active_object(score_entries);
-    score_entries->set_active_item((MenuItem*) NULL);
+    score_entries->set_active_item((MenuItem*) nullptr);
     score_entries->activate_first_item();
 
     enable_smart_cursor(false);
@@ -1197,7 +1197,7 @@ void scorefile_entry::init_death_cause(int dam, mid_t dsrc,
 
     // Set the default aux data value...
     // If aux is passed in (ie for a trap), we'll default to that.
-    if (aux == NULL)
+    if (aux == nullptr)
         auxkilldata.clear();
     else
         auxkilldata = aux;
@@ -1486,7 +1486,7 @@ void scorefile_entry::init(time_t dt)
 
     dlua.pushglobal("dgn.persist.calc_score");
     lua_pushboolean(dlua, death_type == KILLED_BY_WINNING);
-    if (dlua.callfn(NULL, 1, 2))
+    if (dlua.callfn(nullptr, 1, 2))
         dlua.fnreturns(">db", &points, &base_score);
 
     // If calc_score didn't exist, or returned true as its second value,
@@ -1597,7 +1597,7 @@ void scorefile_entry::init(time_t dt)
     }
 
     birth_time = you.birth_time;     // start time of game
-    death_time = (dt != 0 ? dt : time(NULL)); // end time of game
+    death_time = (dt != 0 ? dt : time(nullptr)); // end time of game
 
     handle_real_time(death_time);
     real_time = you.real_time;
@@ -2839,7 +2839,7 @@ void mark_milestone(const string &type, const string &milestone,
 
     const string milestone_file =
         (Options.save_dir + "milestones" + crawl_state.game_type_qualifier());
-    const scorefile_entry se(0, MID_NOBODY, KILL_MISC, NULL);
+    const scorefile_entry se(0, MID_NOBODY, KILL_MISC, nullptr);
     se.set_base_xlog_fields();
     xlog_fields xl = se.get_fields();
     if (!origin_level.empty())
@@ -2867,10 +2867,10 @@ void mark_milestone(const string &type, const string &milestone,
 #ifdef DGL_WHEREIS
 string xlog_status_line()
 {
-    const scorefile_entry se(0, MID_NOBODY, KILL_MISC, NULL);
+    const scorefile_entry se(0, MID_NOBODY, KILL_MISC, nullptr);
     se.set_base_xlog_fields();
     xlog_fields xl = se.get_fields();
-    xl.add_field("time", "%s", make_date_string(time(NULL)).c_str());
+    xl.add_field("time", "%s", make_date_string(time(nullptr)).c_str());
     return xl.xlog_line();
 }
 #endif // DGL_WHEREIS
index 4eee23b..2dfa2f2 100644 (file)
@@ -130,7 +130,7 @@ public:
     scorefile_entry();
     scorefile_entry(int damage, mid_t death_source, int death_type,
                     const char *aux, bool death_cause_only = false,
-                    const char *death_source_name = NULL,
+                    const char *death_source_name = nullptr,
                     time_t death_time = 0);
     scorefile_entry(const scorefile_entry &se);
 
index a9a7122..3f83628 100644 (file)
@@ -571,7 +571,7 @@ void game_options::set_default_activity_interrupts()
         "interrupt_uninterruptible =",
         "interrupt_weapon_swap =",
 
-        NULL
+        nullptr
     };
 
     for (int i = 0; default_activity_interrupts[i]; ++i)
@@ -1397,7 +1397,7 @@ static string _find_crawlrc()
         { "..", "init.txt" },
         { "../settings", "init.txt" },
 #endif
-        { NULL, NULL }                // placeholder to mark end
+        { nullptr, nullptr }                // placeholder to mark end
     };
 
     // We'll look for these files in any supplied -rcdirs.
@@ -1424,10 +1424,10 @@ static string _find_crawlrc()
     }
 
     // Check all possibilities for init.txt
-    for (int i = 0; locations_data[i][1] != NULL; ++i)
+    for (int i = 0; locations_data[i][1] != nullptr; ++i)
     {
         // Don't look at unset options
-        if (locations_data[i][0] != NULL)
+        if (locations_data[i][0] != nullptr)
         {
             const string rc = catpath(locations_data[i][0],
                                       locations_data[i][1]);
@@ -4094,7 +4094,7 @@ static string _find_executable_path()
     // resources.
 #if defined (TARGET_OS_WINDOWS)
     wchar_t tempPath[MAX_PATH];
-    if (GetModuleFileNameW(NULL, tempPath, MAX_PATH))
+    if (GetModuleFileNameW(nullptr, tempPath, MAX_PATH))
         return utf16_to_8(tempPath);
     else
         return "";
@@ -4535,7 +4535,7 @@ bool parse_args(int argc, char **argv, bool rc_only)
         if (current+1 < argc)
             next_arg = argv[current+1];
         else
-            next_arg = NULL;
+            next_arg = nullptr;
 
         nextUsed = false;
 
@@ -4583,7 +4583,7 @@ bool parse_args(int argc, char **argv, bool rc_only)
 
         // Partially parse next argument.
         bool next_is_param = false;
-        if (next_arg != NULL
+        if (next_arg != nullptr
             && (next_arg[0] != '-' || strlen(next_arg) == 1))
         {
             next_is_param = true;
index 3efc2ae..50128a2 100644 (file)
@@ -307,8 +307,8 @@ void InvEntry::set_show_glyph(bool doshow)
 }
 
 InvMenu::InvMenu(int mflags)
-    : Menu(mflags, "inventory", false), type(MT_INVLIST), pre_select(NULL),
-      title_annotate(NULL)
+    : Menu(mflags, "inventory", false), type(MT_INVLIST), pre_select(nullptr),
+      title_annotate(nullptr)
 {
 #ifdef USE_TILE_LOCAL
     if (Options.tile_menu_icons)
@@ -746,7 +746,7 @@ const menu_sort_condition *InvMenu::find_menu_sort_condition() const
         if (Options.sort_menus[i].matches(type))
             return &Options.sort_menus[i];
 
-    return NULL;
+    return nullptr;
 }
 
 void InvMenu::sort_menu(vector<InvEntry*> &invitems,
@@ -785,7 +785,7 @@ menu_letter InvMenu::load_items(const vector<const item_def*> &mitems,
         inv_class[ mitems[i]->base_type ]++;
 
     vector<InvEntry*> items_in_class;
-    const menu_sort_condition *cond = NULL;
+    const menu_sort_condition *cond = nullptr;
     if (sort) cond = find_menu_sort_condition();
 
     for (int obj = 0; obj < NUM_OBJECT_CLASSES; ++obj)
@@ -821,7 +821,7 @@ menu_letter InvMenu::load_items(const vector<const item_def*> &mitems,
         }
         items_in_class.clear();
 
-        InvEntry *forced_first = NULL;
+        InvEntry *forced_first = nullptr;
         for (int j = 0, count = mitems.size(); j < count; ++j)
         {
             if (mitems[j]->base_type != i)
@@ -1211,18 +1211,18 @@ bool any_items_to_select(int selector, bool msg, int excluded_slot)
     return false;
 }
 
-// Use title = NULL for stock Inventory title
+// Use title = nullptr for stock Inventory title
 // type = MT_DROP allows the multidrop toggle
-static unsigned char _invent_select(const char *title = NULL,
+static unsigned char _invent_select(const char *title = nullptr,
                                     menu_type type = MT_INVLIST,
                                     int item_selector = OSEL_ANY,
                                     int excluded_slot = -1,
                                     int flags = MF_NOSELECT,
-                                    invtitle_annotator titlefn = NULL,
-                                    vector<SelItem> *items = NULL,
-                                    vector<text_pattern> *filter = NULL,
-                                    Menu::selitem_tfn selitemfn = NULL,
-                                    const vector<SelItem> *pre_select = NULL)
+                                    invtitle_annotator titlefn = nullptr,
+                                    vector<SelItem> *items = nullptr,
+                                    vector<text_pattern> *filter = nullptr,
+                                    Menu::selitem_tfn selitemfn = nullptr,
+                                    const vector<SelItem> *pre_select = nullptr)
 {
     InvMenu menu(flags | MF_ALLOW_FORMATTING);
 
@@ -1255,7 +1255,7 @@ unsigned char get_invent(int invent_type, bool redraw)
 
     while (true)
     {
-        select = _invent_select(NULL, MT_INVLIST, invent_type, -1, flags);
+        select = _invent_select(nullptr, MT_INVLIST, invent_type, -1, flags);
 
         if (isaalpha(select))
         {
@@ -1901,7 +1901,7 @@ int prompt_invent_item(const char *prompt,
                         excluded_slot,
                         MF_SINGLESELECT | MF_ANYPRINTABLE | MF_NO_SELECT_QTY
                             | MF_EASY_EXIT,
-                        NULL,
+                        nullptr,
                         &items);
 
             if (allow_list_known && keyin == '\\')
@@ -1929,7 +1929,7 @@ int prompt_invent_item(const char *prompt,
                 }
             }
         }
-        else if (count != NULL && isadigit(keyin))
+        else if (count != nullptr && isadigit(keyin))
         {
             // The "read in quantity" mode
             keyin = _get_invent_quant(keyin, *count);
@@ -1940,7 +1940,7 @@ int prompt_invent_item(const char *prompt,
             if (auto_list)
                 need_redraw = true;
         }
-        else if (count == NULL && isadigit(keyin))
+        else if (count == nullptr && isadigit(keyin))
         {
             // scan for our item
             int res = _digit_to_index(keyin, oper);
index 46affeb..6d8a4a8 100644 (file)
@@ -51,8 +51,8 @@ struct SelItem
     int quantity;
     const item_def *item;
 
-    SelItem() : slot(0), quantity(0), item(NULL) { }
-    SelItem(int s, int q, const item_def *it = NULL)
+    SelItem() : slot(0), quantity(0), item(nullptr) { }
+    SelItem(int s, int q, const item_def *it = nullptr)
         : slot(s), quantity(q), item(it)
     {
     }
@@ -145,14 +145,14 @@ public:
     // for each MenuEntry added.
     // NOTE: Does not set menu title, ever! You *must* set the title explicitly
     menu_letter load_items(const vector<const item_def*> &items,
-                           MenuEntry *(*procfn)(MenuEntry *me) = NULL,
+                           MenuEntry *(*procfn)(MenuEntry *me) = nullptr,
                            menu_letter ckey = 'a', bool sort = true);
 
     // Loads items from the player's inventory into the menu, and sets the
     // title to the stock title. If "procfn" is provided, it'll be called for
     // each MenuEntry added, *excluding the title*.
     void load_inv_items(int item_selector = OSEL_ANY, int excluded_slot = -1,
-                        MenuEntry *(*procfn)(MenuEntry *me) = NULL);
+                        MenuEntry *(*procfn)(MenuEntry *me) = nullptr);
 
     vector<SelItem> get_selitems() const;
 
@@ -190,7 +190,7 @@ int prompt_invent_item(const char *prompt,
                        bool allow_easy_quit = true,
                        const char other_valid_char = '\0',
                        int excluded_slot = -1,
-                       int *const count = NULL,
+                       int *const count = nullptr,
                        operation_types oper = OPER_ANY,
                        bool allow_list_known = false,
                        bool do_warning = true);
@@ -199,19 +199,19 @@ vector<SelItem> select_items(
                         const vector<const item_def*> &items,
                         const char *title, bool noselect = false,
                         menu_type mtype = MT_PICKUP,
-                        invtitle_annotator titlefn = NULL);
+                        invtitle_annotator titlefn = nullptr);
 
 vector<SelItem> prompt_invent_items(
                         const char *prompt,
                         menu_type type,
                         int type_expect,
-                        invtitle_annotator titlefn = NULL,
+                        invtitle_annotator titlefn = nullptr,
                         bool auto_list = true,
                         bool allow_easy_quit = true,
                         const char other_valid_char = '\0',
-                        vector<text_pattern> *filter = NULL,
-                        Menu::selitem_tfn fn = NULL,
-                        const vector<SelItem> *pre_select = NULL);
+                        vector<text_pattern> *filter = nullptr,
+                        Menu::selitem_tfn fn = nullptr,
+                        const vector<SelItem> *pre_select = nullptr);
 
 unsigned char get_invent(int invent_type, bool redraw = true);
 
index 2d129d3..ded0576 100644 (file)
@@ -217,7 +217,7 @@ bool wield_weapon(bool auto_wield, int slot, bool show_weff_messages,
 
     // Look for conditions like berserking that could prevent wielding
     // weapons.
-    if (!can_wield(NULL, true, false, slot == SLOT_BARE_HANDS))
+    if (!can_wield(nullptr, true, false, slot == SLOT_BARE_HANDS))
         return false;
 
     int item_slot = 0;          // default is 'a'
@@ -250,7 +250,7 @@ bool wield_weapon(bool auto_wield, int slot, bool show_weff_messages,
             item_slot = prompt_invent_item(
                             "Wield which item (- for none, * to show all)?",
                             MT_INVLIST, OSEL_WIELD,
-                            true, true, true, '-', -1, NULL, OPER_WIELD);
+                            true, true, true, '-', -1, nullptr, OPER_WIELD);
         }
         else
             item_slot = SLOT_BARE_HANDS;
@@ -374,7 +374,7 @@ bool item_is_worn(int inv_slot)
 //---------------------------------------------------------------
 bool armour_prompt(const string & mesg, int *index, operation_types oper)
 {
-    ASSERT(index != NULL);
+    ASSERT(index != nullptr);
 
     if (inv_count() < 1)
         canned_msg(MSG_NOTHING_CARRIED);
@@ -386,7 +386,7 @@ bool armour_prompt(const string & mesg, int *index, operation_types oper)
         if (oper == OPER_TAKEOFF && !Options.equip_unequip)
             selector = OSEL_WORN_ARMOUR;
         int slot = prompt_invent_item(mesg.c_str(), MT_INVLIST, selector,
-                                      true, true, true, 0, -1, NULL,
+                                      true, true, true, 0, -1, nullptr,
                                       oper);
 
         if (!prompt_failed(slot))
@@ -1148,15 +1148,15 @@ static bool _swap_rings(int ring_slot)
     int melded = 0; // Both melded rings and unavailable slots.
     int available = 0;
     bool all_same = true;
-    item_def* first_ring = NULL;
+    item_def* first_ring = nullptr;
     for (auto eq : ring_types)
     {
         item_def* ring = you.slot_item(eq, true);
         if (!you_tran_can_wear(eq) || you.melded[eq])
             melded++;
-        else if (ring != NULL)
+        else if (ring != nullptr)
         {
-            if (first_ring == NULL)
+            if (first_ring == nullptr)
                 first_ring = ring;
             else if (all_same)
             {
@@ -1448,7 +1448,7 @@ bool puton_ring(int slot, bool allow_prompt)
     {
         item_slot = prompt_invent_item("Put on which piece of jewellery?",
                                         MT_INVLIST, OBJ_JEWELLERY, true, true,
-                                        true, 0, -1, NULL, OPER_PUTON);
+                                        true, 0, -1, nullptr, OPER_PUTON);
     }
 
     if (prompt_failed(item_slot))
@@ -1508,7 +1508,7 @@ bool remove_ring(int slot, bool announce)
             (slot == -1)? prompt_invent_item("Remove which piece of jewellery?",
                                              MT_INVLIST,
                                              OBJ_JEWELLERY, true, true, true,
-                                             0, -1, NULL, OPER_REMOVE,
+                                             0, -1, nullptr, OPER_REMOVE,
                                              false, false)
                         : slot;
 
@@ -1710,7 +1710,7 @@ void zap_wand(int slot)
         item_slot = prompt_invent_item("Zap which item?",
                                        MT_INVLIST,
                                        OBJ_WANDS,
-                                       true, true, true, 0, -1, NULL,
+                                       true, true, true, 0, -1, nullptr,
                                        OPER_ZAP);
     }
 
@@ -1812,7 +1812,7 @@ void zap_wand(int slot)
         }
         else if (wand.sub_type == WAND_HASTING
                  && stasis_blocks_effect(false, "%s prevents hasting.",
-                                         0, NULL, "You cannot haste."))
+                                         0, nullptr, "You cannot haste."))
         {
             return;
         }
@@ -2040,7 +2040,7 @@ void drink(int slot)
     {
         slot = prompt_invent_item("Drink which item?",
                                   MT_INVLIST, OBJ_POTIONS,
-                                  true, true, true, 0, -1, NULL,
+                                  true, true, true, 0, -1, nullptr,
                                   OPER_QUAFF);
         if (prompt_failed(slot))
         {
@@ -2306,7 +2306,7 @@ static object_selector _enchant_selector(scroll_type scroll)
     die("Invalid scroll type %d for _enchant_selector", (int)scroll);
 }
 
-// Returns NULL if no weapon was chosen.
+// Returns nullptr if no weapon was chosen.
 static item_def* _scroll_choose_weapon(bool alreadyknown, const string &pre_msg,
                                        scroll_type scroll)
 {
@@ -2323,7 +2323,7 @@ static item_def* _scroll_choose_weapon(bool alreadyknown, const string &pre_msg,
 
         // The scroll is used up if we didn't know what it was originally.
         if (item_slot == PROMPT_NOTHING)
-            return NULL;
+            return nullptr;
 
         if (item_slot == PROMPT_ABORT)
         {
@@ -2332,7 +2332,7 @@ static item_def* _scroll_choose_weapon(bool alreadyknown, const string &pre_msg,
                 || yesno("Really abort (and waste the scroll)?", false, 0))
             {
                 canned_msg(MSG_OK);
-                return NULL;
+                return nullptr;
             }
             else
                 continue;
@@ -2417,7 +2417,7 @@ static bool _identify(bool alreadyknown, const string &pre_msg)
             item_slot = prompt_invent_item(
                 "Identify which item? (\\ to view known items)",
                 MT_INVLIST, OSEL_UNIDENT, true, true, false, 0,
-                -1, NULL, OPER_ANY, true);
+                -1, nullptr, OPER_ANY, true);
         }
 
         if (item_slot == PROMPT_NOTHING)
@@ -2721,7 +2721,7 @@ void read_scroll(int slot)
                                                        MT_INVLIST,
                                                        OBJ_SCROLLS,
                                                        true, true, true, 0, -1,
-                                                       NULL, OPER_READ);
+                                                       nullptr, OPER_READ);
 
     if (prompt_failed(item_slot))
         return;
index 275d659..b0250eb 100644 (file)
@@ -51,8 +51,8 @@ void prompt_inscribe_item();
 
 bool stasis_blocks_effect(bool calc_unid,
                           const char *msg, int noise = 0,
-                          const char *silenced_msg = NULL,
-                          const char *formicid_msg = NULL);
+                          const char *silenced_msg = nullptr,
+                          const char *formicid_msg = nullptr);
 
 #ifdef USE_TILE
 void tile_item_use_floor(int idx);
index 813c2df..366bfbd 100644 (file)
@@ -2158,7 +2158,7 @@ class KnownMenu : public InvMenu
 public:
     // This loads items in the order they are put into the list (sequentially)
     menu_letter load_items_seq(const vector<const item_def*> &mitems,
-                               MenuEntry *(*procfn)(MenuEntry *me) = NULL,
+                               MenuEntry *(*procfn)(MenuEntry *me) = nullptr,
                                menu_letter ckey = 'a')
     {
         for (int i = 0, count = mitems.size(); i < count; ++i)
@@ -3890,7 +3890,7 @@ string get_corpse_name(const item_def &corpse, uint64_t *name_type)
     if (!corpse.props.exists(CORPSE_NAME_KEY))
         return "";
 
-    if (name_type != NULL)
+    if (name_type != nullptr)
         *name_type = corpse.props[CORPSE_NAME_TYPE_KEY].get_int64();
 
     return corpse.props[CORPSE_NAME_KEY].get_string();
index 57d357e..93e7b26 100644 (file)
@@ -141,7 +141,7 @@ vector<string> item_name_list_for_glyph(unsigned glyph);
 const char* rune_type_name(short p);
 
 bool   is_named_corpse(const item_def &corpse);
-string get_corpse_name(const item_def &corpse, uint64_t *name_type = NULL);
+string get_corpse_name(const item_def &corpse, uint64_t *name_type = nullptr);
 const char* deck_rarity_name(deck_rarity_type rarity);
 const char *base_type_string(object_class_type type);
 const char *base_type_string(const item_def &item);
index 4a4f25d..b853af1 100644 (file)
@@ -74,7 +74,7 @@ bool is_enchantable_armour(const item_def &arm, bool uncurse,
 
 bool is_shield(const item_def &item) PURE;
 bool is_shield_incompatible(const item_def &weapon,
-                            const item_def *shield = NULL) PURE;
+                            const item_def *shield = nullptr) PURE;
 bool shield_reflects(const item_def &shield) PURE;
 void ident_reflector(item_def *item);
 
index 354022c..d5d9c5d 100644 (file)
@@ -467,7 +467,7 @@ void unlink_item(int dest)
 
     monster* mons = mitm[dest].holding_monster();
 
-    if (mons != NULL)
+    if (mons != nullptr)
     {
         for (int i = 0; i < NUM_MONSTER_SLOTS; i++)
         {
@@ -1098,7 +1098,7 @@ bool origin_is_god_gift(const item_def& item, god_type *god)
 bool origin_is_acquirement(const item_def& item, item_source_type *type)
 {
     item_source_type junk;
-    if (type == NULL)
+    if (type == nullptr)
         type = &junk;
     *type = IT_SRC_NONE;
 
@@ -2253,7 +2253,7 @@ bool move_top_item(const coord_def &pos, const coord_def &dest)
 const item_def* top_item_at(const coord_def& where)
 {
     const int link = you.visible_igrd(where);
-    return (link == NON_ITEM) ? NULL : &mitm[link];
+    return (link == NON_ITEM) ? nullptr : &mitm[link];
 }
 
 bool multiple_items_at(const coord_def& where)
@@ -2501,7 +2501,7 @@ void drop()
 #else
     tmp_items = prompt_invent_items("Drop what? (_ for help)", MT_DROP,
 #endif
-                                     -1, NULL, true, true, 0,
+                                     -1, nullptr, true, true, 0,
                                      &Options.drop_filter, _drop_selitem_text,
                                      &items_for_multidrop);
 
@@ -3063,7 +3063,7 @@ item_def *find_floor_item(object_class_type cls, int sub_type)
                     return &*si;
                 }
 
-    return NULL;
+    return nullptr;
 }
 
 int item_on_floor(const item_def &item, const coord_def& where)
@@ -3216,10 +3216,10 @@ int item_def::armour_rating() const
 monster* item_def::holding_monster() const
 {
     if (!pos.equals(-2, -2))
-        return NULL;
+        return nullptr;
     const int midx = link - NON_ITEM - 1;
     if (invalid_monster_index(midx))
-        return NULL;
+        return nullptr;
 
     return &menv[midx];
 }
@@ -4145,12 +4145,12 @@ static void _deck_from_specs(const char* _specs, item_def &item)
         "plain",
         "ornate",
         "legendary",
-        NULL
+        nullptr
     };
 
     int rarity_val = -1;
 
-    for (int i = 0; rarities[i] != NULL; ++i)
+    for (int i = 0; rarities[i] != nullptr; ++i)
         if (specs.find(rarities[i]) != string::npos)
         {
             rarity_val = i;
index f74cb6d..b50194b 100644 (file)
@@ -88,7 +88,7 @@ coord_def item_pos(const item_def &item);
 
 bool move_top_item(const coord_def &src, const coord_def &dest);
 
-// Get the top item in a given cell. If there are no items, return NULL.
+// Get the top item in a given cell. If there are no items, return nullptr.
 const item_def* top_item_at(const coord_def& where);
 
 // Returns whether there is more than one item in a given cell.
@@ -118,9 +118,9 @@ void origin_acquired(item_def &item, int agent);
 void origin_set_startequip(item_def &item);
 void origin_set_unknown(item_def &item);
 void origin_set_inventory(void (*oset)(item_def &item));
-bool origin_is_god_gift(const item_def& item, god_type *god = NULL);
+bool origin_is_god_gift(const item_def& item, god_type *god = nullptr);
 bool origin_is_acquirement(const item_def& item,
-                           item_source_type *type = NULL);
+                           item_source_type *type = nullptr);
 
 bool item_needs_autopickup(const item_def &);
 bool can_autopickup();
index 79ffc81..520abd5 100644 (file)
@@ -40,7 +40,7 @@
 static char *json_strdup(const char *str)
 {
     char *ret = (char*)malloc(strlen(str) + 1);
-    if (ret == NULL)
+    if (ret == nullptr)
         out_of_memory();
     strcpy(ret, str);
     return ret;
@@ -58,7 +58,7 @@ typedef struct
 static void sb_init(SB *sb)
 {
     sb->start = (char*)malloc(17);
-    if (sb->start == NULL)
+    if (sb->start == nullptr)
         out_of_memory();
     sb->cur = sb->start;
     sb->end = sb->start + 16;
@@ -80,7 +80,7 @@ static void sb_grow(SB *sb, int need)
     while (alloc < length + need);
 
     sb->start = (char*)realloc(sb->start, alloc + 1);
-    if (sb->start == NULL)
+    if (sb->start == nullptr)
         out_of_memory();
     sb->cur = sb->start + length;
     sb->end = sb->start + alloc;
@@ -393,13 +393,13 @@ JsonNode *json_decode(const char *json)
 
     skip_space(&s);
     if (!parse_value(&s, &ret))
-        return NULL;
+        return nullptr;
 
     skip_space(&s);
     if (*s != 0)
     {
         json_delete(ret);
-        return NULL;
+        return nullptr;
     }
 
     return ret;
@@ -407,7 +407,7 @@ JsonNode *json_decode(const char *json)
 
 char *json_encode(const JsonNode *node)
 {
-    return json_stringify(node, NULL);
+    return json_stringify(node, nullptr);
 }
 
 char *json_encode_string(const char *str)
@@ -425,7 +425,7 @@ char *json_stringify(const JsonNode *node, const char *space)
     SB sb;
     sb_init(&sb);
 
-    if (space != NULL)
+    if (space != nullptr)
         emit_value_indented(&sb, node, space, 0);
     else
         emit_value(&sb, node);
@@ -435,7 +435,7 @@ char *json_stringify(const JsonNode *node, const char *space)
 
 void json_delete(JsonNode *node)
 {
-    if (node != NULL)
+    if (node != nullptr)
     {
         json_remove_from_parent(node);
 
@@ -448,7 +448,7 @@ void json_delete(JsonNode *node)
             case JSON_OBJECT:
             {
                 JsonNode *child, *next;
-                for (child = node->children.head; child != NULL; child = next)
+                for (child = node->children.head; child != nullptr; child = next)
                 {
                     next = child->next;
                     json_delete(child);
@@ -467,7 +467,7 @@ bool json_validate(const char *json)
     const char *s = json;
 
     skip_space(&s);
-    if (!parse_value(&s, NULL))
+    if (!parse_value(&s, nullptr))
         return false;
 
     skip_space(&s);
@@ -482,8 +482,8 @@ JsonNode *json_find_element(JsonNode *array, int index)
     JsonNode *element;
     int i = 0;
 
-    if (array == NULL || array->tag != JSON_ARRAY)
-        return NULL;
+    if (array == nullptr || array->tag != JSON_ARRAY)
+        return nullptr;
 
     json_foreach(element, array)
     {
@@ -492,34 +492,34 @@ JsonNode *json_find_element(JsonNode *array, int index)
         i++;
     }
 
-    return NULL;
+    return nullptr;
 }
 
 JsonNode *json_find_member(JsonNode *object, const char *name)
 {
     JsonNode *member;
 
-    if (object == NULL || object->tag != JSON_OBJECT)
-        return NULL;
+    if (object == nullptr || object->tag != JSON_OBJECT)
+        return nullptr;
 
     json_foreach(member, object)
         if (strcmp(member->key, name) == 0)
             return member;
 
-    return NULL;
+    return nullptr;
 }
 
 JsonNode *json_first_child(const JsonNode *node)
 {
-    if (node != NULL && (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT))
+    if (node != nullptr && (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT))
         return node->children.head;
-    return NULL;
+    return nullptr;
 }
 
 static JsonNode *mknode(JsonTag tag)
 {
     JsonNode *ret = (JsonNode*) calloc(1, sizeof(JsonNode));
-    if (ret == NULL)
+    if (ret == nullptr)
         out_of_memory();
     ret->tag = tag;
     return ret;
@@ -527,7 +527,7 @@ static JsonNode *mknode(JsonTag tag)
 
 JsonNode *json_mknull()
 {
-    return mknode(JSON_NULL);
+    return mknode(JSON_nullptr);
 }
 
 JsonNode *json_mkbool(bool b)
@@ -570,9 +570,9 @@ static void append_node(JsonNode *parent, JsonNode *child)
 {
     child->parent = parent;
     child->prev = parent->children.tail;
-    child->next = NULL;
+    child->next = nullptr;
 
-    if (parent->children.tail != NULL)
+    if (parent->children.tail != nullptr)
         parent->children.tail->next = child;
     else
         parent->children.head = child;
@@ -582,10 +582,10 @@ static void append_node(JsonNode *parent, JsonNode *child)
 static void prepend_node(JsonNode *parent, JsonNode *child)
 {
     child->parent = parent;
-    child->prev = NULL;
+    child->prev = nullptr;
     child->next = parent->children.head;
 
-    if (parent->children.head != NULL)
+    if (parent->children.head != nullptr)
         parent->children.head->prev = child;
     else
         parent->children.tail = child;
@@ -601,7 +601,7 @@ static void append_member(JsonNode *object, char *key, JsonNode *value)
 void json_append_element(JsonNode *array, JsonNode *element)
 {
     ASSERT(array->tag == JSON_ARRAY);
-    ASSERT(element->parent == NULL);
+    ASSERT(element->parent == nullptr);
 
     append_node(array, element);
 }
@@ -609,7 +609,7 @@ void json_append_element(JsonNode *array, JsonNode *element)
 void json_prepend_element(JsonNode *array, JsonNode *element)
 {
     ASSERT(array->tag == JSON_ARRAY);
-    ASSERT(element->parent == NULL);
+    ASSERT(element->parent == nullptr);
 
     prepend_node(array, element);
 }
@@ -617,7 +617,7 @@ void json_prepend_element(JsonNode *array, JsonNode *element)
 void json_append_member(JsonNode *object, const char *key, JsonNode *value)
 {
     ASSERT(object->tag == JSON_OBJECT);
-    ASSERT(value->parent == NULL);
+    ASSERT(value->parent == nullptr);
 
     append_member(object, json_strdup(key), value);
 }
@@ -625,7 +625,7 @@ void json_append_member(JsonNode *object, const char *key, JsonNode *value)
 void json_prepend_member(JsonNode *object, const char *key, JsonNode *value)
 {
     ASSERT(object->tag == JSON_OBJECT);
-    ASSERT(value->parent == NULL);
+    ASSERT(value->parent == nullptr);
 
     value->key = json_strdup(key);
     prepend_node(object, value);
@@ -635,22 +635,22 @@ void json_remove_from_parent(JsonNode *node)
 {
     JsonNode *parent = node->parent;
 
-    if (parent != NULL)
+    if (parent != nullptr)
     {
-        if (node->prev != NULL)
+        if (node->prev != nullptr)
             node->prev->next = node->next;
         else
             parent->children.head = node->next;
-        if (node->next != NULL)
+        if (node->next != nullptr)
             node->next->prev = node->prev;
         else
             parent->children.tail = node->prev;
 
         free(node->key);
 
-        node->parent = NULL;
-        node->prev = node->next = NULL;
-        node->key = NULL;
+        node->parent = nullptr;
+        node->prev = node->next = nullptr;
+        node->key = nullptr;
     }
 }
 
@@ -693,7 +693,7 @@ static bool parse_value(const char **sp, JsonNode **out)
     case '"':
     {
         char *str;
-        if (parse_string(&s, out ? &str : NULL))
+        if (parse_string(&s, out ? &str : nullptr))
         {
             if (out)
                 *out = mkstring(str);
@@ -722,7 +722,7 @@ static bool parse_value(const char **sp, JsonNode **out)
     default:
     {
         double num;
-        if (parse_number(&s, out ? &num : NULL))
+        if (parse_number(&s, out ? &num : nullptr))
         {
             if (out)
                 *out = json_mknumber(num);
@@ -737,7 +737,7 @@ static bool parse_value(const char **sp, JsonNode **out)
 static bool parse_array(const char **sp, JsonNode **out)
 {
     const char *s = *sp;
-    JsonNode *ret = out ? json_mkarray() : NULL;
+    JsonNode *ret = out ? json_mkarray() : nullptr;
     JsonNode *element;
 
     if (*s++ != '[')
@@ -752,7 +752,7 @@ static bool parse_array(const char **sp, JsonNode **out)
 
     for (;;)
     {
-        if (!parse_value(&s, out ? &element : NULL))
+        if (!parse_value(&s, out ? &element : nullptr))
             goto failure;
         skip_space(&s);
 
@@ -784,7 +784,7 @@ failure:
 static bool parse_object(const char **sp, JsonNode **out)
 {
     const char *s = *sp;
-    JsonNode *ret = out ? json_mkobject() : NULL;
+    JsonNode *ret = out ? json_mkobject() : nullptr;
     char *key;
     JsonNode *value;
 
@@ -800,7 +800,7 @@ static bool parse_object(const char **sp, JsonNode **out)
 
     for (;;)
     {
-        if (!parse_string(&s, out ? &key : NULL))
+        if (!parse_string(&s, out ? &key : nullptr))
             goto failure;
         skip_space(&s);
 
@@ -808,7 +808,7 @@ static bool parse_object(const char **sp, JsonNode **out)
             goto failure_free_key;
         skip_space(&s);
 
-        if (!parse_value(&s, out ? &value : NULL))
+        if (!parse_value(&s, out ? &value : nullptr))
             goto failure_free_key;
         skip_space(&s);
 
@@ -1016,7 +1016,7 @@ bool parse_number(const char **sp, double *out)
     }
 
     if (out)
-        *out = strtod(*sp, NULL);
+        *out = strtod(*sp, nullptr);
 
     *sp = s;
     return true;
@@ -1035,7 +1035,7 @@ static void emit_value(SB *out, const JsonNode *node)
     ASSERT(tag_is_valid(node->tag));
     switch (node->tag)
     {
-        case JSON_NULL:
+        case JSON_nullptr:
             sb_puts(out, "null");
             break;
         case JSON_BOOL:
@@ -1063,7 +1063,7 @@ void emit_value_indented(SB *out, const JsonNode *node, const char *space, int i
     ASSERT(tag_is_valid(node->tag));
     switch (node->tag)
     {
-        case JSON_NULL:
+        case JSON_nullptr:
             sb_puts(out, "null");
             break;
         case JSON_BOOL:
@@ -1094,7 +1094,7 @@ static void emit_array(SB *out, const JsonNode *array)
     json_foreach(element, array)
     {
         emit_value(out, element);
-        if (element->next != NULL)
+        if (element->next != nullptr)
             sb_putc(out, ',');
     }
     sb_putc(out, ']');
@@ -1105,21 +1105,21 @@ static void emit_array_indented(SB *out, const JsonNode *array, const char *spac
     const JsonNode *element = array->children.head;
     int i;
 
-    if (element == NULL)
+    if (element == nullptr)
     {
         sb_puts(out, "[]");
         return;
     }
 
     sb_puts(out, "[\n");
-    while (element != NULL)
+    while (element != nullptr)
     {
         for (i = 0; i < indent_level + 1; i++)
             sb_puts(out, space);
         emit_value_indented(out, element, space, indent_level + 1);
 
         element = element->next;
-        sb_puts(out, element != NULL ? ",\n" : "\n");
+        sb_puts(out, element != nullptr ? ",\n" : "\n");
     }
     for (i = 0; i < indent_level; i++)
         sb_puts(out, space);
@@ -1136,7 +1136,7 @@ static void emit_object(SB *out, const JsonNode *object)
         emit_string(out, member->key);
         sb_putc(out, ':');
         emit_value(out, member);
-        if (member->next != NULL)
+        if (member->next != nullptr)
             sb_putc(out, ',');
     }
     sb_putc(out, '}');
@@ -1147,14 +1147,14 @@ static void emit_object_indented(SB *out, const JsonNode *object, const char *sp
     const JsonNode *member = object->children.head;
     int i;
 
-    if (member == NULL)
+    if (member == nullptr)
     {
         sb_puts(out, "{}");
         return;
     }
 
     sb_puts(out, "{\n");
-    while (member != NULL)
+    while (member != nullptr)
     {
         for (i = 0; i < indent_level + 1; i++)
             sb_puts(out, space);
@@ -1163,7 +1163,7 @@ static void emit_object_indented(SB *out, const JsonNode *object, const char *sp
         emit_value_indented(out, member, space, indent_level + 1);
 
         member = member->next;
-        sb_puts(out, member != NULL ? ",\n" : "\n");
+        sb_puts(out, member != nullptr ? ",\n" : "\n");
     }
     for (i = 0; i < indent_level; i++)
         sb_puts(out, space);
@@ -1322,12 +1322,12 @@ static void emit_number(SB *out, double num)
 
 static bool tag_is_valid(unsigned int tag)
 {
-    return /* tag >= JSON_NULL && */ tag <= JSON_OBJECT;
+    return /* tag >= JSON_nullptr && */ tag <= JSON_OBJECT;
 }
 
 static bool number_is_valid(const char *num)
 {
-    return parse_number(&num, NULL) && *num == '\0';
+    return parse_number(&num, nullptr) && *num == '\0';
 }
 
 static bool expect_literal(const char **sp, const char *str)
@@ -1397,12 +1397,12 @@ static int write_hex16(char *out, uint16_t val)
 bool json_check(const JsonNode *node, char errmsg[256])
 {
     #define problem(...) do { \
-            if (errmsg != NULL) \
+            if (errmsg != nullptr) \
                 snprintf(errmsg, 256, __VA_ARGS__); \
             return false; \
         } while (0)
 
-    if (node->key != NULL && !utf8_validate(node->key))
+    if (node->key != nullptr && !utf8_validate(node->key))
         problem("key contains invalid UTF-8");
 
     if (!tag_is_valid(node->tag))
@@ -1415,8 +1415,8 @@ bool json_check(const JsonNode *node, char errmsg[256])
     }
     else if (node->tag == JSON_STRING)
     {
-        if (node->string_ == NULL)
-            problem("string_ is NULL");
+        if (node->string_ == nullptr)
+            problem("string_ is nullptr");
         if (!utf8_validate(node->string_))
             problem("string_ contains invalid UTF-8");
     }
@@ -1425,22 +1425,22 @@ bool json_check(const JsonNode *node, char errmsg[256])
         JsonNode *head = node->children.head;
         JsonNode *tail = node->children.tail;
 
-        if (head == NULL || tail == NULL)
+        if (head == nullptr || tail == nullptr)
         {
-            if (head != NULL)
-                problem("tail is NULL, but head is not");
-            if (tail != NULL)
-                problem("head is NULL, but tail is not");
+            if (head != nullptr)
+                problem("tail is nullptr, but head is not");
+            if (tail != nullptr)
+                problem("head is nullptr, but tail is not");
         }
         else
         {
             JsonNode *child;
-            JsonNode *last = NULL;
+            JsonNode *last = nullptr;
 
-            if (head->prev != NULL)
-                problem("First child's prev pointer is not NULL");
+            if (head->prev != nullptr)
+                problem("First child's prev pointer is not nullptr");
 
-            for (child = head; child != NULL; last = child, child = child->next)
+            for (child = head; child != nullptr; last = child, child = child->next)
             {
                 if (child == node)
                     problem("node is its own child");
@@ -1451,13 +1451,13 @@ bool json_check(const JsonNode *node, char errmsg[256])
 
                 if (child->parent != node)
                     problem("child does not point back to parent");
-                if (child->next != NULL && child->next->prev != child)
+                if (child->next != nullptr && child->next->prev != child)
                     problem("child->next does not point back to child");
 
-                if (node->tag == JSON_ARRAY && child->key != NULL)
-                    problem("Array element's key is not NULL");
-                if (node->tag == JSON_OBJECT && child->key == NULL)
-                    problem("Object member's key is NULL");
+                if (node->tag == JSON_ARRAY && child->key != nullptr)
+                    problem("Array element's key is not nullptr");
+                if (node->tag == JSON_OBJECT && child->key == nullptr)
+                    problem("Object member's key is nullptr");
 
                 if (!json_check(child, errmsg))
                     return false;
index 7384b3c..0f49ecf 100644 (file)
@@ -31,7 +31,7 @@
 
 typedef enum
 {
-    JSON_NULL,
+    JSON_nullptr,
     JSON_BOOL,
     JSON_STRING,
     JSON_NUMBER,
@@ -43,11 +43,11 @@ typedef struct JsonNode JsonNode;
 
 struct JsonNode
 {
-    /* only if parent is an object or array (NULL otherwise) */
+    /* only if parent is an object or array (nullptr otherwise) */
     JsonNode *parent;
     JsonNode *prev, *next;
 
-    /* only if parent is an object (NULL otherwise) */
+    /* only if parent is an object (nullptr otherwise) */
     char *key; /* Must be valid UTF-8. */
 
     JsonTag tag;
@@ -90,7 +90,7 @@ JsonNode   *json_first_child    (const JsonNode *node);
 
 #define json_foreach(i, object_or_array)            \
         for ((i) = json_first_child(object_or_array);   \
-                 (i) != NULL;                               \
+                 (i) != nullptr;                               \
                  (i) = (i)->next)
 
 /*** Construction and manipulation ***/
@@ -115,7 +115,7 @@ void json_remove_from_parent(JsonNode *node);
  * Look for structure and encoding problems in a JsonNode or its descendents.
  *
  * If a problem is detected, return false, writing a description of the problem
- * to errmsg (unless errmsg is NULL).
+ * to errmsg (unless errmsg is nullptr).
  */
 bool json_check(const JsonNode *node, char errmsg[256]);
 
index eea5614..6dde767 100644 (file)
@@ -61,7 +61,7 @@ const char *KillMaster::category_name(kill_category kc) const
 {
     if (kc >= KC_YOU && kc < KC_NCATEGORIES)
         return kill_category_names[kc];
-    return NULL;
+    return nullptr;
 }
 
 bool KillMaster::empty() const
@@ -155,7 +155,7 @@ string KillMaster::kill_info() const
         add_kill_info(killtext,
                        kills,
                        count,
-                       i == KC_YOU ? NULL
+                       i == KC_YOU ? nullptr
                                    : category_name((kill_category) i),
                        needseparator);
         needseparator = true;
@@ -175,7 +175,7 @@ string KillMaster::kill_info() const
     bool custom = false;
     unwind_var<int> lthrottle(clua.throttle_unit_lines, 500000);
     // Call the kill dump Lua function with null a, to tell it we're done.
-    if (!clua.callfn("c_kill_list", "ss>b", NULL, grandt.c_str(), &custom)
+    if (!clua.callfn("c_kill_list", "ss>b", nullptr, grandt.c_str(), &custom)
         || !custom)
 #endif
     {
@@ -433,7 +433,7 @@ kill_def::kill_def(const monster* mon) : kills(0), exp(0)
 // for zombies or skeletons).
 static const char *modifier_suffixes[] =
 {
-    "zombie", "skeleton", "simulacrum", NULL,
+    "zombie", "skeleton", "simulacrum", nullptr,
 };
 
 // For a non-unique monster, prefixes a suitable article if we have only one
@@ -1014,7 +1014,7 @@ static const struct luaL_reg kill_lib[] =
     { "rawwrite",   kill_lualc_rawwrite },
     { "write",      kill_lualc_write },
     { "summary",    kill_lualc_summary },
-    { NULL, NULL }
+    { nullptr, nullptr }
 };
 
 void cluaopen_kills(lua_State *ls)
index 6bfa080..62d3ec6 100644 (file)
@@ -58,7 +58,7 @@ static int _lua_element_colour(int rand, const coord_def& loc,
     lua_pushinteger(ls, rand);
     lua_pushinteger(ls, loc.x);
     lua_pushinteger(ls, loc.y);
-    if (!dlua.callfn(NULL, 3, 1))
+    if (!dlua.callfn(nullptr, 3, 1))
     {
         mprf(MSGCH_WARN, "%s", dlua.error.c_str());
         return BLACK;
@@ -99,7 +99,7 @@ static const struct luaL_reg colour_lib[] =
 {
     { "add_colour", l_add_colour },
 
-    { NULL, NULL }
+    { nullptr, nullptr }
 };
 
 void dluaopen_colour(lua_State *ls)
index b785868..daf6d0b 100644 (file)
@@ -444,7 +444,7 @@ static int crawl_read_options(lua_State *ls)
 
 static int crawl_bindkey(lua_State *ls)
 {
-    const char *s = NULL;
+    const char *s = nullptr;
     if (lua_isstring(ls, 1))
         s = lua_tostring(ls, 1);
 
@@ -545,7 +545,7 @@ static const luaL_reg crawl_regex_ops[] =
 {
     { "matches",        crawl_regex_find },
     { "equals",         crawl_regex_equals },
-    { NULL, NULL }
+    { nullptr, nullptr }
 };
 
 static int crawl_message_filter(lua_State *ls)
@@ -597,7 +597,7 @@ static const luaL_reg crawl_messf_ops[] =
 {
     { "matches",        crawl_messf_matches },
     { "equals",         crawl_messf_equals },
-    { NULL, NULL }
+    { nullptr, nullptr }
 };
 
 static int crawl_trim(lua_State *ls)
@@ -949,7 +949,7 @@ static int crawl_call_dlua(lua_State *ls)
         if (!lua_isnil(dlua, -1))
         {
             const char *msg = lua_tostring(dlua, -1);
-            if (msg == NULL)
+            if (msg == nullptr)
                 msg = "(error object is not a string)";
             mprf(MSGCH_ERROR, "%s", msg);
         }
@@ -1052,7 +1052,7 @@ static const struct luaL_reg crawl_clib[] =
     { "call_dlua",          crawl_call_dlua },
 #endif
 
-    { NULL, NULL },
+    { nullptr, nullptr },
 };
 
 void cluaopen_crawl(lua_State *ls)
@@ -1256,7 +1256,7 @@ static const struct luaL_reg crawl_dlib[] =
 { "hints_type", crawl_hints_type },
 { "unavailable_god", _crawl_unavailable_god },
 
-{ NULL, NULL }
+{ nullptr, nullptr }
 };
 
 void dluaopen_crawl(lua_State *ls)