diff options
author | Adam Borowski <kilobyte@angband.pl> | 2013-10-31 08:52:27 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2013-10-31 16:57:54 +0100 |
commit | 263ca91b08100ae09dce275d4629413c63f343c9 (patch) | |
tree | 165acf19905df3596277a6de5a522a045daa2ada | |
parent | a57962fa1975ecc27863c2f847fa2a1c4484f7fa (diff) | |
download | crawl-ref-263ca91b08100ae09dce275d4629413c63f343c9.tar.gz crawl-ref-263ca91b08100ae09dce275d4629413c63f343c9.zip |
Rewrite monster_iterator.
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
49 files changed, 94 insertions, 174 deletions
diff --git a/crawl-ref/source/Crawl.xcodeproj/project.pbxproj b/crawl-ref/source/Crawl.xcodeproj/project.pbxproj index 9ebea61a9f..34be8f46ff 100644 --- a/crawl-ref/source/Crawl.xcodeproj/project.pbxproj +++ b/crawl-ref/source/Crawl.xcodeproj/project.pbxproj @@ -222,7 +222,6 @@ 7B09F5D81133D6AB004F149D /* mon-gear.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6402D10BD494400A99626 /* mon-gear.cc */; }; 7B09F5D91133D6AB004F149D /* mon-grow.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6402F10BD494400A99626 /* mon-grow.cc */; }; 7B09F5DA1133D6AB004F149D /* mon-info.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403110BD494400A99626 /* mon-info.cc */; }; - 7B09F5DB1133D6AB004F149D /* mon-iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403310BD494400A99626 /* mon-iter.cc */; }; 7B09F5DC1133D6AB004F149D /* mon-movetarget.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403510BD494400A99626 /* mon-movetarget.cc */; }; 7B09F5DD1133D6AB004F149D /* mon-pathfind.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403710BD494400A99626 /* mon-pathfind.cc */; }; 7B09F5DE1133D6AB004F149D /* mon-pick.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403910BD494400A99626 /* mon-pick.cc */; }; @@ -577,7 +576,6 @@ E5D6412C10BD494500A99626 /* mon-gear.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6402D10BD494400A99626 /* mon-gear.cc */; }; E5D6412D10BD494500A99626 /* mon-grow.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6402F10BD494400A99626 /* mon-grow.cc */; }; E5D6412E10BD494500A99626 /* mon-info.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403110BD494400A99626 /* mon-info.cc */; }; - E5D6412F10BD494500A99626 /* mon-iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403310BD494400A99626 /* mon-iter.cc */; }; E5D6413010BD494500A99626 /* mon-movetarget.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403510BD494400A99626 /* mon-movetarget.cc */; }; E5D6413110BD494500A99626 /* mon-pathfind.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403710BD494400A99626 /* mon-pathfind.cc */; }; E5D6413210BD494500A99626 /* mon-pick.cc in Sources */ = {isa = PBXBuildFile; fileRef = E5D6403910BD494400A99626 /* mon-pick.cc */; }; @@ -1460,8 +1458,6 @@ E5D6403010BD494400A99626 /* mon-grow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mon-grow.h"; sourceTree = "<group>"; }; E5D6403110BD494400A99626 /* mon-info.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "mon-info.cc"; sourceTree = "<group>"; }; E5D6403210BD494400A99626 /* mon-info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mon-info.h"; sourceTree = "<group>"; }; - E5D6403310BD494400A99626 /* mon-iter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "mon-iter.cc"; sourceTree = "<group>"; }; - E5D6403410BD494400A99626 /* mon-iter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mon-iter.h"; sourceTree = "<group>"; }; E5D6403510BD494400A99626 /* mon-movetarget.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "mon-movetarget.cc"; sourceTree = "<group>"; }; E5D6403610BD494400A99626 /* mon-movetarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mon-movetarget.h"; sourceTree = "<group>"; }; E5D6403710BD494400A99626 /* mon-pathfind.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "mon-pathfind.cc"; sourceTree = "<group>"; }; @@ -2044,8 +2040,6 @@ E5D6403010BD494400A99626 /* mon-grow.h */, E5D6403110BD494400A99626 /* mon-info.cc */, E5D6403210BD494400A99626 /* mon-info.h */, - E5D6403310BD494400A99626 /* mon-iter.cc */, - E5D6403410BD494400A99626 /* mon-iter.h */, E5D6403510BD494400A99626 /* mon-movetarget.cc */, E5D6403610BD494400A99626 /* mon-movetarget.h */, 1F909B38148B244F00084E83 /* mon-mst.h */, @@ -3072,7 +3066,6 @@ 7B09F5D81133D6AB004F149D /* mon-gear.cc in Sources */, 7B09F5D91133D6AB004F149D /* mon-grow.cc in Sources */, 7B09F5DA1133D6AB004F149D /* mon-info.cc in Sources */, - 7B09F5DB1133D6AB004F149D /* mon-iter.cc in Sources */, 7B09F5DC1133D6AB004F149D /* mon-movetarget.cc in Sources */, 7B09F5DD1133D6AB004F149D /* mon-pathfind.cc in Sources */, 7B09F5DE1133D6AB004F149D /* mon-pick.cc in Sources */, @@ -3320,7 +3313,6 @@ E5D6412C10BD494500A99626 /* mon-gear.cc in Sources */, E5D6412D10BD494500A99626 /* mon-grow.cc in Sources */, E5D6412E10BD494500A99626 /* mon-info.cc in Sources */, - E5D6412F10BD494500A99626 /* mon-iter.cc in Sources */, E5D6413010BD494500A99626 /* mon-movetarget.cc in Sources */, E5D6413110BD494500A99626 /* mon-pathfind.cc in Sources */, E5D6413210BD494500A99626 /* mon-pick.cc in Sources */, diff --git a/crawl-ref/source/MSVC/crawl.vcproj b/crawl-ref/source/MSVC/crawl.vcproj index 3854c5174e..21e852e128 100644 --- a/crawl-ref/source/MSVC/crawl.vcproj +++ b/crawl-ref/source/MSVC/crawl.vcproj @@ -1934,14 +1934,6 @@ RelativePath="..\mon-info.h"
>
</File>
- <File
- RelativePath="..\mon-iter.cc" - > - </File> - <File - RelativePath="..\mon-iter.h" - > - </File> <File RelativePath="..\mon-movetarget.cc" > diff --git a/crawl-ref/source/MSVC/crawl.vcxproj b/crawl-ref/source/MSVC/crawl.vcxproj index 58f9141d2e..71a3dc13ec 100644 --- a/crawl-ref/source/MSVC/crawl.vcxproj +++ b/crawl-ref/source/MSVC/crawl.vcxproj @@ -420,7 +420,6 @@ perl.exe "util/gen-cflg.pl" compflag.h "<UNKNOWN>" "<UNKNOWN>" <ClCompile Include="..\mon-gear.cc" />
<ClCompile Include="..\mon-grow.cc" />
<ClCompile Include="..\mon-info.cc" />
- <ClCompile Include="..\mon-iter.cc" />
<ClCompile Include="..\mon-movetarget.cc" />
<ClCompile Include="..\mon-pathfind.cc" />
<ClCompile Include="..\mon-pick.cc" />
@@ -768,7 +767,6 @@ perl.exe "util/gen-cflg.pl" compflag.h "<UNKNOWN>" "<UNKNOWN>" <ClInclude Include="..\mon-gear.h" />
<ClInclude Include="..\mon-grow.h" />
<ClInclude Include="..\mon-info.h" />
- <ClInclude Include="..\mon-iter.h" />
<ClInclude Include="..\mon-movetarget.h" />
<ClInclude Include="..\mon-pathfind.h" />
<ClInclude Include="..\mon-pick.h" />
diff --git a/crawl-ref/source/MSVC/crawl.vcxproj.filters b/crawl-ref/source/MSVC/crawl.vcxproj.filters index c6199ec587..d6c74c6084 100644 --- a/crawl-ref/source/MSVC/crawl.vcxproj.filters +++ b/crawl-ref/source/MSVC/crawl.vcxproj.filters @@ -161,7 +161,6 @@ <ClCompile Include="..\mon-gear.cc" />
<ClCompile Include="..\mon-grow.cc" />
<ClCompile Include="..\mon-info.cc" />
- <ClCompile Include="..\mon-iter.cc" />
<ClCompile Include="..\mon-movetarget.cc" />
<ClCompile Include="..\mon-pathfind.cc" />
<ClCompile Include="..\mon-pick.cc" />
@@ -464,7 +463,6 @@ <ClInclude Include="..\mon-gear.h" />
<ClInclude Include="..\mon-grow.h" />
<ClInclude Include="..\mon-info.h" />
- <ClInclude Include="..\mon-iter.h" />
<ClInclude Include="..\mon-movetarget.h" />
<ClInclude Include="..\mon-pathfind.h" />
<ClInclude Include="..\mon-pick.h" />
diff --git a/crawl-ref/source/Makefile.obj b/crawl-ref/source/Makefile.obj index 07bcc39cec..7406cfc9f9 100644 --- a/crawl-ref/source/Makefile.obj +++ b/crawl-ref/source/Makefile.obj @@ -143,7 +143,6 @@ mon-ench.o \ mon-gear.o \ mon-grow.o \ mon-info.o \ -mon-iter.o \ mon-movetarget.o \ mon-pathfind.o \ mon-pick.o \ diff --git a/crawl-ref/source/abyss.cc b/crawl-ref/source/abyss.cc index 2c65b91705..fb2defa706 100644 --- a/crawl-ref/source/abyss.cc +++ b/crawl-ref/source/abyss.cc @@ -11,6 +11,7 @@ #include <queue> #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "branch.h" @@ -34,7 +35,6 @@ #include "mgen_data.h" #include "misc.h" #include "mon-abil.h" -#include "mon-iter.h" #include "mon-pathfind.h" #include "mon-pick.h" #include "mon-place.h" diff --git a/crawl-ref/source/act-iter.cc b/crawl-ref/source/act-iter.cc index 8e62e1acdb..06eeca8779 100644 --- a/crawl-ref/source/act-iter.cc +++ b/crawl-ref/source/act-iter.cc @@ -132,3 +132,53 @@ void monster_near_iterator::advance() return; while (!valid(**this)); } + +////////////////////////////////////////////////////////////////////////// + +monster_iterator::monster_iterator() + : i(0) +{ + while (i < MAX_MONSTERS && !menv[i].alive()) + i++; +} + +monster_iterator::operator bool() const +{ + return i < MAX_MONSTERS && (*this)->alive(); +} + +monster* monster_iterator::operator*() const +{ + if (i < MAX_MONSTERS) + return &menv[i]; + else + return nullptr; +} + +monster* monster_iterator::operator->() const +{ + return **this; +} + +monster_iterator& monster_iterator::operator++() +{ + while (++i < MAX_MONSTERS) + if (menv[i].alive()) + break; + return *this; +} + +monster_iterator monster_iterator::operator++(int) +{ + monster_iterator copy = *this; + ++(*this); + return copy; +} + +void monster_iterator::advance() +{ + do + if (++i >= MAX_MONSTERS) + return; + while (!(*this)->alive()); +} diff --git a/crawl-ref/source/act-iter.h b/crawl-ref/source/act-iter.h index 58db3eab7c..a9a69b7405 100644 --- a/crawl-ref/source/act-iter.h +++ b/crawl-ref/source/act-iter.h @@ -50,4 +50,20 @@ protected: void advance(); }; +class monster_iterator +{ +public: + monster_iterator(); + + operator bool() const; + monster* operator*() const; + monster* operator->() const; + monster_iterator& operator++(); + monster_iterator operator++(int); + +protected: + int i; + void advance(); +}; + #endif diff --git a/crawl-ref/source/areas.cc b/crawl-ref/source/areas.cc index d836d9d504..a2a2e08d0b 100644 --- a/crawl-ref/source/areas.cc +++ b/crawl-ref/source/areas.cc @@ -19,7 +19,6 @@ #include "libutil.h" #include "losglobal.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-util.h" #include "monster.h" diff --git a/crawl-ref/source/arena.cc b/crawl-ref/source/arena.cc index abeaee5c23..767dbb800b 100644 --- a/crawl-ref/source/arena.cc +++ b/crawl-ref/source/arena.cc @@ -7,6 +7,7 @@ #include "arena.h" +#include "act-iter.h" #include "cio.h" #include "colour.h" #include "command.h" @@ -22,7 +23,6 @@ #include "maps.h" #include "message.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-pick.h" #include "mon-util.h" #include "mon-place.h" diff --git a/crawl-ref/source/attitude-change.cc b/crawl-ref/source/attitude-change.cc index 20f5c7d673..20ee16ec42 100644 --- a/crawl-ref/source/attitude-change.cc +++ b/crawl-ref/source/attitude-change.cc @@ -9,6 +9,7 @@ #include <sstream> +#include "act-iter.h" #include "coordit.h" #include "database.h" #include "env.h" @@ -18,7 +19,6 @@ #include "libutil.h" #include "message.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-util.h" #include "monster.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 4e2f3f8850..186cadc67b 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -48,7 +48,6 @@ #include "misc.h" #include "mon-behv.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-stuff.h" #include "mon-util.h" diff --git a/crawl-ref/source/dactions.cc b/crawl-ref/source/dactions.cc index 1979a250b9..1ce63b8acc 100644 --- a/crawl-ref/source/dactions.cc +++ b/crawl-ref/source/dactions.cc @@ -7,13 +7,13 @@ #include "dactions.h" +#include "act-iter.h" #include "coordit.h" #include "decks.h" #include "dungeon.h" #include "env.h" #include "libutil.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-transit.h" #include "mon-util.h" diff --git a/crawl-ref/source/dgn-shoals.cc b/crawl-ref/source/dgn-shoals.cc index 5627c708d8..cf38d35270 100644 --- a/crawl-ref/source/dgn-shoals.cc +++ b/crawl-ref/source/dgn-shoals.cc @@ -1,5 +1,6 @@ #include "AppHdr.h" +#include "act-iter.h" #include "branch.h" #include "cio.h" #include "colour.h" @@ -17,7 +18,6 @@ #include "maps.h" #include "message.h" #include "mgen_data.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-util.h" #include "random.h" diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc index 5077ad20b5..79eaeda6ea 100644 --- a/crawl-ref/source/effects.cc +++ b/crawl-ref/source/effects.cc @@ -54,7 +54,6 @@ #include "mislead.h" #include "mon-behv.h" #include "mon-cast.h" -#include "mon-iter.h" #include "mon-pathfind.h" #include "mon-place.h" #include "mon-project.h" diff --git a/crawl-ref/source/evoke.cc b/crawl-ref/source/evoke.cc index 918aeb13a6..501c6bae03 100644 --- a/crawl-ref/source/evoke.cc +++ b/crawl-ref/source/evoke.cc @@ -37,7 +37,6 @@ #include "melee_attack.h" #include "message.h" #include "mon-chimera.h" -#include "mon-iter.h" #include "mon-pick.h" #include "mon-place.h" #include "mgen_data.h" diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc index bbaf784f31..96a1841bba 100644 --- a/crawl-ref/source/files.cc +++ b/crawl-ref/source/files.cc @@ -32,6 +32,7 @@ #include "externs.h" #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "chardump.h" @@ -63,7 +64,6 @@ #include "mon-behv.h" #include "mon-death.h" #include "mon-place.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-util.h" #include "mon-transit.h" diff --git a/crawl-ref/source/ghost.cc b/crawl-ref/source/ghost.cc index 8c8d3c088f..e8eef08f19 100644 --- a/crawl-ref/source/ghost.cc +++ b/crawl-ref/source/ghost.cc @@ -7,6 +7,7 @@ #include "ghost.h" +#include "act-iter.h" #include "artefact.h" #include "colour.h" #include "database.h" @@ -15,7 +16,6 @@ #include "itemname.h" #include "itemprop.h" #include "libutil.h" -#include "mon-iter.h" #include "ng-input.h" #include "random.h" #include "skills2.h" diff --git a/crawl-ref/source/godabil.cc b/crawl-ref/source/godabil.cc index b5a4c30595..bb2c95afa5 100644 --- a/crawl-ref/source/godabil.cc +++ b/crawl-ref/source/godabil.cc @@ -7,6 +7,7 @@ #include <queue> +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "beam.h" @@ -34,7 +35,6 @@ #include "misc.h" #include "mon-act.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-place.h" #include "mgen_data.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/l_debug.cc b/crawl-ref/source/l_debug.cc index 9611188d02..d1196d3102 100644 --- a/crawl-ref/source/l_debug.cc +++ b/crawl-ref/source/l_debug.cc @@ -8,6 +8,7 @@ #include "cluautil.h" #include "l_libs.h" +#include "act-iter.h" #include "beam.h" #include "branch.h" #include "chardump.h" @@ -20,7 +21,6 @@ #include "los.h" #include "message.h" #include "mon-act.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-util.h" #include "place.h" diff --git a/crawl-ref/source/main.cc b/crawl-ref/source/main.cc index 4f1da443e6..f4d187c7e0 100644 --- a/crawl-ref/source/main.cc +++ b/crawl-ref/source/main.cc @@ -32,6 +32,7 @@ #include "abl-show.h" #include "abyss.h" #include "acquire.h" +#include "act-iter.h" #include "areas.h" #include "art-enum.h" #include "artefact.h" @@ -92,7 +93,6 @@ #include "mon-act.h" #include "mon-abil.h" #include "mon-cast.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-transit.h" #include "mon-util.h" diff --git a/crawl-ref/source/mislead.cc b/crawl-ref/source/mislead.cc index b4d5575a3e..4a4cb022c8 100644 --- a/crawl-ref/source/mislead.cc +++ b/crawl-ref/source/mislead.cc @@ -6,13 +6,13 @@ #include "AppHdr.h" #include "mislead.h" +#include "act-iter.h" #include "enum.h" #include "env.h" #include "hints.h" #include "message.h" #include "misc.h" #include "monster.h" -#include "mon-iter.h" #include "mon-util.h" #ifdef USE_TILE_LOCAL #include "tilepick.h" diff --git a/crawl-ref/source/mon-abil.cc b/crawl-ref/source/mon-abil.cc index 8530d65ebd..da54ccd40f 100644 --- a/crawl-ref/source/mon-abil.cc +++ b/crawl-ref/source/mon-abil.cc @@ -33,7 +33,6 @@ #include "mon-behv.h" #include "mon-cast.h" #include "mon-chimera.h" -#include "mon-iter.h" #include "mon-pathfind.h" #include "mon-place.h" #include "mon-project.h" diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index 5076af968e..4cc975d764 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -6,6 +6,7 @@ #include "AppHdr.h" #include "mon-act.h" +#include "act-iter.h" #include "areas.h" #include "arena.h" #include "artefact.h" @@ -36,7 +37,6 @@ #include "mon-behv.h" #include "mon-cast.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-project.h" #include "mgen_data.h" diff --git a/crawl-ref/source/mon-behv.cc b/crawl-ref/source/mon-behv.cc index 911dd329d1..10c2239536 100644 --- a/crawl-ref/source/mon-behv.cc +++ b/crawl-ref/source/mon-behv.cc @@ -9,6 +9,7 @@ #include "externs.h" #include "abl-show.h" +#include "act-iter.h" #include "areas.h" #include "coord.h" #include "coordit.h" @@ -22,7 +23,6 @@ #include "macro.h" #include "mon-act.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-movetarget.h" #include "mon-pathfind.h" #include "mon-speak.h" diff --git a/crawl-ref/source/mon-cast.cc b/crawl-ref/source/mon-cast.cc index 0b899a2fd3..d2e657d756 100644 --- a/crawl-ref/source/mon-cast.cc +++ b/crawl-ref/source/mon-cast.cc @@ -31,7 +31,6 @@ #include "mon-behv.h" #include "mon-clone.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-project.h" #include "terrain.h" diff --git a/crawl-ref/source/mon-clone.cc b/crawl-ref/source/mon-clone.cc index 3de4961984..fa6db4e4e4 100644 --- a/crawl-ref/source/mon-clone.cc +++ b/crawl-ref/source/mon-clone.cc @@ -5,6 +5,7 @@ #include "AppHdr.h" +#include "act-iter.h" #include "arena.h" #include "artefact.h" #include "directn.h" @@ -17,7 +18,6 @@ #include "mon-behv.h" #include "mon-clone.h" #include "mon-enum.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-stuff.h" #include "mon-util.h" diff --git a/crawl-ref/source/mon-death.cc b/crawl-ref/source/mon-death.cc index 4d2553bf4a..dbee1c1e92 100644 --- a/crawl-ref/source/mon-death.cc +++ b/crawl-ref/source/mon-death.cc @@ -7,6 +7,7 @@ #include "AppHdr.h" #include "mon-death.h" +#include "act-iter.h" #include "areas.h" #include "cloud.h" #include "coordit.h" @@ -20,7 +21,6 @@ #include "message.h" #include "mgen_data.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-speak.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/mon-ench.cc b/crawl-ref/source/mon-ench.cc index 29cd0c909d..75dc6e02f4 100644 --- a/crawl-ref/source/mon-ench.cc +++ b/crawl-ref/source/mon-ench.cc @@ -5,6 +5,7 @@ #include "AppHdr.h" +#include "act-iter.h" #include "actor.h" #include "areas.h" #include "cloud.h" @@ -25,7 +26,6 @@ #include "mon-behv.h" #include "mon-cast.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "religion.h" #include "spl-clouds.h" diff --git a/crawl-ref/source/mon-info.cc b/crawl-ref/source/mon-info.cc index 496660d43e..fe04533a23 100644 --- a/crawl-ref/source/mon-info.cc +++ b/crawl-ref/source/mon-info.cc @@ -9,6 +9,7 @@ #include "mon-info.h" +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "coord.h" @@ -22,7 +23,6 @@ #include "message.h" #include "misc.h" #include "mon-chimera.h" -#include "mon-iter.h" #include "mon-util.h" #include "monster.h" #include "options.h" diff --git a/crawl-ref/source/mon-iter.cc b/crawl-ref/source/mon-iter.cc deleted file mode 100644 index b8324f91f7..0000000000 --- a/crawl-ref/source/mon-iter.cc +++ /dev/null @@ -1,68 +0,0 @@ -#include "AppHdr.h" - -#include "mon-iter.h" - -#include "actor.h" -#include "coord-circle.h" -#include "env.h" -#include "monster.h" - -monster_iterator::monster_iterator() - : restr(R_NONE), curr_mid(0) -{ - advance(true); -} - -monster_iterator::operator bool() const -{ - return (curr_mid < MAX_MONSTERS); -} - -monster* monster_iterator::operator*() const -{ - return (&env.mons[curr_mid]); -} - -monster* monster_iterator::operator->() const -{ - return (&env.mons[curr_mid]); -} - -monster_iterator& monster_iterator::operator++() -{ - advance(); - return *this; -} - -monster_iterator monster_iterator::operator++(int) -{ - monster_iterator copy = *this; - ++(*this); - return copy; -} - -bool monster_iterator::valid(int mid) const -{ - monster* mon = &env.mons[mid]; - if (!mon->alive()) - return false; - switch (restr) - { - case R_CIRC: - return (circle->contains(mon->pos())); - case R_LOS: - return (los->see_cell(mon->pos())); - case R_ACT: - return act->can_see(mon); - default: - return true; - } -} - -void monster_iterator::advance(bool may_stay) -{ - if (!may_stay) - ++curr_mid; - while (curr_mid < MAX_MONSTERS && !valid(curr_mid)) - ++curr_mid; -} diff --git a/crawl-ref/source/mon-iter.h b/crawl-ref/source/mon-iter.h deleted file mode 100644 index cf04c4d8a9..0000000000 --- a/crawl-ref/source/mon-iter.h +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file - * Provide a way to iterator over all monsters, - * subject to a few common restrictions. -**/ -// TODO: Iterate over actors? - -#ifndef MON_ITER_H -#define MON_ITER_H - -enum restr_type -{ - R_NONE, - R_CIRC, - R_LOS, - R_ACT, -}; - -class circle_def; -class los_base; -class actor; - -class monster_iterator -{ -public: - monster_iterator(); - - operator bool() const; - monster* operator*() const; - monster* operator->() const; - monster_iterator& operator++(); - monster_iterator operator++(int); - -protected: - restr_type restr; - int curr_mid; - const circle_def* circle; - const los_base* los; - const actor* act; - - bool valid(int mid) const; - void advance(bool may_stay=false); -}; - -#endif diff --git a/crawl-ref/source/mon-movetarget.cc b/crawl-ref/source/mon-movetarget.cc index 1eade46937..f1c152a70c 100644 --- a/crawl-ref/source/mon-movetarget.cc +++ b/crawl-ref/source/mon-movetarget.cc @@ -2,6 +2,7 @@ #include "mon-movetarget.h" +#include "act-iter.h" #include "branch.h" #include "coord.h" #include "coordit.h" @@ -11,7 +12,6 @@ #include "losglobal.h" #include "libutil.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-pathfind.h" #include "mon-place.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/mon-place.cc b/crawl-ref/source/mon-place.cc index f98284a30d..c80a5d3f15 100644 --- a/crawl-ref/source/mon-place.cc +++ b/crawl-ref/source/mon-place.cc @@ -11,6 +11,7 @@ #include "mgen_data.h" #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "arena.h" #include "branch.h" @@ -33,7 +34,6 @@ #include "mon-chimera.h" #include "mon-death.h" #include "mon-gear.h" -#include "mon-iter.h" #include "mon-pick.h" #include "mon-stuff.h" #include "place.h" diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc index 31c777fb4a..addf871089 100644 --- a/crawl-ref/source/mon-stuff.cc +++ b/crawl-ref/source/mon-stuff.cc @@ -49,7 +49,6 @@ #include "mon-abil.h" #include "mon-behv.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-speak.h" #include "notes.h" diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 499dbbec95..15e98bbbba 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -9,6 +9,7 @@ #include "mon-util.h" +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "beam.h" @@ -36,7 +37,6 @@ #include "mon-behv.h" #include "mon-chimera.h" #include "mon-death.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-stuff.h" #include "notes.h" diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index ffc0c4a723..903a207169 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -16,6 +16,7 @@ #include "externs.h" #include "abl-show.h" +#include "act-iter.h" #include "art-enum.h" #include "artefact.h" #include "cio.h" @@ -35,7 +36,6 @@ #include "mgen_data.h" #include "misc.h" #include "mon-place.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-util.h" #include "notes.h" diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 2e78a05deb..1f56b755c5 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -17,6 +17,7 @@ #include "externs.h" #include "abl-show.h" +#include "act-iter.h" #include "branch.h" #include "acquire.h" #include "areas.h" @@ -53,7 +54,6 @@ #include "message.h" #include "misc.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-util.h" #include "mon-place.h" #include "mgen_data.h" diff --git a/crawl-ref/source/shout.cc b/crawl-ref/source/shout.cc index fadb7341ae..47c7412d9e 100644 --- a/crawl-ref/source/shout.cc +++ b/crawl-ref/source/shout.cc @@ -7,6 +7,7 @@ #include "shout.h" +#include "act-iter.h" #include "art-enum.h" #include "artefact.h" #include "branch.h" @@ -23,7 +24,6 @@ #include "misc.h" #include "mon-behv.h" #include "mon-chimera.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-pathfind.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/spl-clouds.cc b/crawl-ref/source/spl-clouds.cc index 200be11930..95a2ef598f 100644 --- a/crawl-ref/source/spl-clouds.cc +++ b/crawl-ref/source/spl-clouds.cc @@ -24,7 +24,6 @@ #include "message.h" #include "misc.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-util.h" #include "ouch.h" #include "player.h" diff --git a/crawl-ref/source/spl-damage.cc b/crawl-ref/source/spl-damage.cc index 9d15c67b3f..56ab9f2872 100644 --- a/crawl-ref/source/spl-damage.cc +++ b/crawl-ref/source/spl-damage.cc @@ -33,7 +33,6 @@ #include "message.h" #include "misc.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "ouch.h" #include "player-equip.h" diff --git a/crawl-ref/source/spl-other.cc b/crawl-ref/source/spl-other.cc index 97494f1b3d..6a08118c5a 100644 --- a/crawl-ref/source/spl-other.cc +++ b/crawl-ref/source/spl-other.cc @@ -9,6 +9,7 @@ #include "spl-other.h" #include "externs.h" +#include "act-iter.h" #include "coord.h" #include "delay.h" #include "env.h" @@ -22,7 +23,6 @@ #include "makeitem.h" #include "message.h" #include "misc.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-util.h" #include "place.h" diff --git a/crawl-ref/source/spl-summoning.cc b/crawl-ref/source/spl-summoning.cc index 881d09516e..03f40c16a1 100644 --- a/crawl-ref/source/spl-summoning.cc +++ b/crawl-ref/source/spl-summoning.cc @@ -35,7 +35,6 @@ #include "misc.h" #include "mon-act.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-place.h" #include "mon-speak.h" #include "mon-stuff.h" diff --git a/crawl-ref/source/spl-transloc.cc b/crawl-ref/source/spl-transloc.cc index e2a7d2f2d4..16c78630ae 100644 --- a/crawl-ref/source/spl-transloc.cc +++ b/crawl-ref/source/spl-transloc.cc @@ -13,6 +13,7 @@ #include "externs.h" #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "cloud.h" #include "coord.h" @@ -31,7 +32,6 @@ #include "message.h" #include "misc.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-util.h" #include "mon-stuff.h" #include "orb.h" diff --git a/crawl-ref/source/stairs.cc b/crawl-ref/source/stairs.cc index 3ca4ef40e7..17228dd2ac 100644 --- a/crawl-ref/source/stairs.cc +++ b/crawl-ref/source/stairs.cc @@ -5,6 +5,7 @@ #include <sstream> #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "branch.h" #include "chardump.h" @@ -24,7 +25,6 @@ #include "mapmark.h" #include "message.h" #include "misc.h" -#include "mon-iter.h" #include "notes.h" #include "options.h" #include "ouch.h" diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index cf62e3c7ec..708173a97b 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -38,7 +38,6 @@ #include "message.h" #include "misc.h" #include "mon-behv.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "mon-util.h" #include "options.h" diff --git a/crawl-ref/source/wiz-dgn.cc b/crawl-ref/source/wiz-dgn.cc index b68f1176ac..2df952026d 100644 --- a/crawl-ref/source/wiz-dgn.cc +++ b/crawl-ref/source/wiz-dgn.cc @@ -7,6 +7,7 @@ #include "wiz-dgn.h" +#include "act-iter.h" #include "branch.h" #include "cio.h" #include "coord.h" @@ -26,7 +27,6 @@ #include "maps.h" #include "message.h" #include "misc.h" -#include "mon-iter.h" #include "options.h" #include "place.h" #include "player.h" diff --git a/crawl-ref/source/wiz-item.cc b/crawl-ref/source/wiz-item.cc index 40c798a67d..cad2faff6b 100644 --- a/crawl-ref/source/wiz-item.cc +++ b/crawl-ref/source/wiz-item.cc @@ -29,7 +29,6 @@ #include "makeitem.h" #include "mapdef.h" #include "misc.h" -#include "mon-iter.h" #include "mon-stuff.h" #include "options.h" #include "output.h" diff --git a/crawl-ref/source/wiz-mon.cc b/crawl-ref/source/wiz-mon.cc index b91ba27d35..ff16c8e345 100644 --- a/crawl-ref/source/wiz-mon.cc +++ b/crawl-ref/source/wiz-mon.cc @@ -8,6 +8,7 @@ #include "wiz-mon.h" #include "abyss.h" +#include "act-iter.h" #include "areas.h" #include "artefact.h" #include "cio.h" @@ -29,7 +30,6 @@ #include "mapdef.h" #include "message.h" #include "mgen_data.h" -#include "mon-iter.h" #include "mon-pathfind.h" #include "mon-place.h" #include "mon-speak.h" |