summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-10-31 08:52:27 +0100
committerAdam Borowski <kilobyte@angband.pl>2013-10-31 16:57:54 +0100
commit263ca91b08100ae09dce275d4629413c63f343c9 (patch)
tree165acf19905df3596277a6de5a522a045daa2ada
parenta57962fa1975ecc27863c2f847fa2a1c4484f7fa (diff)
downloadcrawl-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.
-rw-r--r--crawl-ref/source/Crawl.xcodeproj/project.pbxproj8
-rw-r--r--crawl-ref/source/MSVC/crawl.vcproj8
-rw-r--r--crawl-ref/source/MSVC/crawl.vcxproj2
-rw-r--r--crawl-ref/source/MSVC/crawl.vcxproj.filters2
-rw-r--r--crawl-ref/source/Makefile.obj1
-rw-r--r--crawl-ref/source/abyss.cc2
-rw-r--r--crawl-ref/source/act-iter.cc50
-rw-r--r--crawl-ref/source/act-iter.h16
-rw-r--r--crawl-ref/source/areas.cc1
-rw-r--r--crawl-ref/source/arena.cc2
-rw-r--r--crawl-ref/source/attitude-change.cc2
-rw-r--r--crawl-ref/source/beam.cc1
-rw-r--r--crawl-ref/source/dactions.cc2
-rw-r--r--crawl-ref/source/dgn-shoals.cc2
-rw-r--r--crawl-ref/source/effects.cc1
-rw-r--r--crawl-ref/source/evoke.cc1
-rw-r--r--crawl-ref/source/files.cc2
-rw-r--r--crawl-ref/source/ghost.cc2
-rw-r--r--crawl-ref/source/godabil.cc2
-rw-r--r--crawl-ref/source/l_debug.cc2
-rw-r--r--crawl-ref/source/main.cc2
-rw-r--r--crawl-ref/source/mislead.cc2
-rw-r--r--crawl-ref/source/mon-abil.cc1
-rw-r--r--crawl-ref/source/mon-act.cc2
-rw-r--r--crawl-ref/source/mon-behv.cc2
-rw-r--r--crawl-ref/source/mon-cast.cc1
-rw-r--r--crawl-ref/source/mon-clone.cc2
-rw-r--r--crawl-ref/source/mon-death.cc2
-rw-r--r--crawl-ref/source/mon-ench.cc2
-rw-r--r--crawl-ref/source/mon-info.cc2
-rw-r--r--crawl-ref/source/mon-iter.cc68
-rw-r--r--crawl-ref/source/mon-iter.h45
-rw-r--r--crawl-ref/source/mon-movetarget.cc2
-rw-r--r--crawl-ref/source/mon-place.cc2
-rw-r--r--crawl-ref/source/mon-stuff.cc1
-rw-r--r--crawl-ref/source/mon-util.cc2
-rw-r--r--crawl-ref/source/mutation.cc2
-rw-r--r--crawl-ref/source/religion.cc2
-rw-r--r--crawl-ref/source/shout.cc2
-rw-r--r--crawl-ref/source/spl-clouds.cc1
-rw-r--r--crawl-ref/source/spl-damage.cc1
-rw-r--r--crawl-ref/source/spl-other.cc2
-rw-r--r--crawl-ref/source/spl-summoning.cc1
-rw-r--r--crawl-ref/source/spl-transloc.cc2
-rw-r--r--crawl-ref/source/stairs.cc2
-rw-r--r--crawl-ref/source/view.cc1
-rw-r--r--crawl-ref/source/wiz-dgn.cc2
-rw-r--r--crawl-ref/source/wiz-item.cc1
-rw-r--r--crawl-ref/source/wiz-mon.cc2
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 "&lt;UNKNOWN&gt;" "&lt;UNKNOWN&gt;"
<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 "&lt;UNKNOWN&gt;" "&lt;UNKNOWN&gt;"
<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"