[crossfire] Automatic map checking
Raphaël Quinet
quinet at gamers.org
Mon May 22 16:11:39 CDT 2006
In my previous message discussing the alchemy code, I mentioned the script
that I am currently writing for performing automatic checks of all
crossfire maps. I tested this script on the bigworld maps (latest tarball
as well as CVS) and it reported a bunch of errors. Some of them are
simple warnings and others are real errors. I am planning to improve the
output of the script so that it reports different severity levels, but in
the meantime I thought that it could be useful to post some excerpts from
the output of that script in case someone feels like fixing some of these
errors.
Some notes:
- Non-existing maps: these are maps that have an exit pointing to them,
but there is no corresponding file. Two notable sources of such
errors are the player shops in Brest (missing floor2) and many broken
"mlab" maps.
- Unreachable maps: these are maps that exist but cannot be reached by
following an exit (starting from (/HallOfSelection). Some of these
unreachable maps are still connected to each other, but the group of
maps is not reachable. The /HallOfDMs map is unreachable by design.
Some other unreachable maps are just test maps that should probably
be moved elsewhere (in /unlinked, for example). The other ones are
probably errors that should be fixed.
- The blocked exits are exits that point to an area that contains an
object that blocks MOVE_WALK (or more, such as MOVE_ALL). Exits that
are blocked by a check_inv trigger are probably fine. Exits that
point ot a wall are almost certainly wrong and should be fixed.
Exits that are blocked by a connected object or by a door with a
keycode (slaying) may be dangerous: they are usually the return path
from a dungeon and they work fine as long as the player goes through
the levels fast enough. But if the map is reset while the player is
inside the dungeon, then the player could be stuck on the way back
because the entrance map has been reset and the exit is now blocked.
These maps should probably be redesigned for extra safety, although
this is probably not a critical issue.
- The blocked exit from /scorn/apartment/Apartments1 should not be
reported because the floor has the "unique" flag. This is one of
the things that I still have to improve in the script.
So here is an excert from the output of the script:
Checking for non-existing maps...
no /brest/pshops/pshop1/floor2
(12, 7) from /brest/pshops/pshop1/floor1 (12, 7)
no /brest/pshops/pshop10/floor2
(12, 7) from /brest/pshops/pshop10/floor1 (12, 7)
no /brest/pshops/pshop11/floor2
(12, 7) from /brest/pshops/pshop11/floor1 (12, 7)
no /brest/pshops/pshop12/floor2
(12, 7) from /brest/pshops/pshop12/floor1 (12, 7)
no /brest/pshops/pshop13/floor2
(12, 7) from /brest/pshops/pshop13/floor1 (12, 7)
no /brest/pshops/pshop14/floor2
(12, 7) from /brest/pshops/pshop14/floor1 (12, 7)
no /brest/pshops/pshop15/floor2
(12, 7) from /brest/pshops/pshop15/floor1 (12, 7)
no /brest/pshops/pshop16/floor2
(12, 7) from /brest/pshops/pshop16/floor1 (12, 7)
no /brest/pshops/pshop17/floor2
(12, 7) from /brest/pshops/pshop17/floor1 (12, 7)
no /brest/pshops/pshop18/floor2
(12, 7) from /brest/pshops/pshop18/floor1 (12, 7)
no /brest/pshops/pshop19/floor2
(12, 7) from /brest/pshops/pshop19/floor1 (12, 7)
no /brest/pshops/pshop2/floor2
(12, 7) from /brest/pshops/pshop2/floor1 (12, 7)
no /brest/pshops/pshop20/floor2
(12, 7) from /brest/pshops/pshop20/floor1 (12, 7)
no /brest/pshops/pshop21/floor2
(12, 7) from /brest/pshops/pshop21/floor1 (12, 7)
no /brest/pshops/pshop22/floor2
(12, 7) from /brest/pshops/pshop22/floor1 (12, 7)
no /brest/pshops/pshop23/floor2
(12, 7) from /brest/pshops/pshop23/floor1 (12, 7)
no /brest/pshops/pshop24/floor2
(12, 7) from /brest/pshops/pshop24/floor1 (12, 7)
no /brest/pshops/pshop25/floor2
(12, 7) from /brest/pshops/pshop25/floor1 (12, 7)
no /brest/pshops/pshop26/floor2
(12, 7) from /brest/pshops/pshop26/floor1 (12, 7)
no /brest/pshops/pshop27/floor2
(12, 7) from /brest/pshops/pshop27/floor1 (12, 7)
no /brest/pshops/pshop3/floor2
(12, 7) from /brest/pshops/pshop3/floor1 (12, 7)
no /brest/pshops/pshop4/floor2
(12, 7) from /brest/pshops/pshop4/floor1 (12, 7)
no /brest/pshops/pshop5/floor2
(12, 7) from /brest/pshops/pshop5/floor1 (12, 7)
no /brest/pshops/pshop6/floor2
(12, 7) from /brest/pshops/pshop6/floor1 (12, 7)
no /brest/pshops/pshop7/floor2
(12, 7) from /brest/pshops/pshop7/floor1 (12, 7)
no /brest/pshops/pshop8/floor2
(12, 7) from /brest/pshops/pshop8/floor1 (12, 7)
no /brest/pshops/pshop9/floor2
(12, 7) from /brest/pshops/pshop9/floor1 (12, 7)
no /inn_and_outpost/downthewell
(1, 1) from /world/world_111_116 (46, 31)
no /lake_country/pup_land/nurnberg/city
(25, 15) from /lake_country/dragon_hangar/hangar (34, 2)
no /mlab/citydeclouds/IPO_citydeclouds
(11, 8) from /mlab/citydeclouds/citydeclouds2H (6, 48)
(10, 20) from /mlab/citydeclouds/citydeclouds2I (5, 10)
no /mlab/citydeclouds/cdcapart/cdcapart1
(13, 12) from /mlab/citydeclouds/citydeclouds2G (7, 48)
no /mlab/citydeclouds/cdcapart1
(23, 50) from /mlab/citydeclouds/citydeclouds2H (17, 36)
no /mlab/citydeclouds/cdcbigstore/cdccotgf1
(11, 22) from /mlab/citydeclouds/cdcbigstore/cdcbigstore3f (4, 46)
no /mlab/citydeclouds/cdccloudre1
(17, 3) from /mlab/citydeclouds/citydeclouds2E (45, 37)
(17, 5) from /mlab/citydeclouds/citydeclouds2E (45, 39)
no /mlab/citydeclouds/cdccotgf1
(18, 67) from /mlab/citydeclouds/citydeclouds2C (49, 25)
(42, 22) from /mlab/citydeclouds/citydeclouds2E (23, 30)
(19, 60) from /mlab/citydeclouds/citydeclouds2F (0, 18)
(34, 80) from /mlab/citydeclouds/citydeclouds2F (15, 38)
(55, 67) from /mlab/citydeclouds/citydeclouds2F (36, 25)
(63, 57) from /mlab/citydeclouds/citydeclouds2F (44, 15)
(115, 48) from /mlab/citydeclouds/citydeclouds2I (46, 6)
no /mlab/citydeclouds/cdccourthsuplvl1
(3, 4) from /mlab/citydeclouds/citydeclouds2A (3, 41)
(3, 10) from /mlab/citydeclouds/citydeclouds2A (3, 47)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (5, 42)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (5, 43)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (5, 44)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (5, 45)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (5, 46)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (6, 42)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (6, 43)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (6, 44)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (6, 45)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (6, 46)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (7, 42)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (7, 43)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (7, 44)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (7, 45)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (7, 46)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (8, 42)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (8, 43)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (8, 44)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (8, 45)
(8, 7) from /mlab/citydeclouds/citydeclouds2A (8, 46)
no /mlab/citydeclouds/cdcgatea2
(13, 15) from /mlab/citydeclouds/citydeclouds2D (49, 31)
no /mlab/citydeclouds/cdcjjbuild/cdcjjbuild1
(11, 5) from /mlab/citydeclouds/citydeclouds2E (43, 20)
no /mlab/citydeclouds/cdcmesshluper1
(1, 6) from /mlab/citydeclouds/citydeclouds2C (3, 16)
no /mlab/citydeclouds/cdcnrkpdevtmp1
(1, 1) from /mlab/citydeclouds/citydeclouds2B (3, 1)
no /mlab/citydeclouds/cdcnwgateuprlv1
(10, 12) from /mlab/citydeclouds/citydeclouds2A (10, 30)
no /mlab/citydeclouds/cdcscasino
(7, 11) from /mlab/citydeclouds/citydeclouds2H (2, 29)
(7, 12) from /mlab/citydeclouds/citydeclouds2H (2, 30)
no /mlab/citydeclouds/cdcunderbigstre1
(9, 76) from /mlab/citydeclouds/citydeclouds2B (40, 45)
(50, 42) from /mlab/citydeclouds/citydeclouds2E (31, 10)
(50, 43) from /mlab/citydeclouds/citydeclouds2E (31, 11)
(50, 44) from /mlab/citydeclouds/citydeclouds2E (31, 12)
(19, 98) from /mlab/citydeclouds/citydeclouds2F (0, 17)
(66, 93) from /mlab/citydeclouds/citydeclouds2F (47, 12)
(70, 53) from /mlab/citydeclouds/citydeclouds2H (1, 21)
(75, 62) from /mlab/citydeclouds/citydeclouds2H (6, 30)
(86, 74) from /mlab/citydeclouds/citydeclouds2H (17, 42)
(101, 94) from /mlab/citydeclouds/citydeclouds2I (32, 12)
(102, 94) from /mlab/citydeclouds/citydeclouds2I (33, 12)
no /mlab/citydeclouds/cdcvillaarC1
(22, 7) from /mlab/citydeclouds/citydeclouds2G (29, 23)
no /mlab/citydeclouds/cdcwgrotto1
(28, 55) from /mlab/citydeclouds/citydeclouds2F (49, 26)
no /mlab/citydeclouds/citydeclouds
(26, 144) from /mlab/citydeclouds/citydeclouds2G (0, 4)
no /mlab/citydeclouds/citydecloudsvilla/citydecloudsvillaC1
(6, 6) from /mlab/citydeclouds/citydeclouds2G (20, 29)
no /mlab/citydeclouds/citydecloudsvilla/citydecloudsvillab1
(1, 41) from /mlab/citydeclouds/citydeclouds2G (6, 48)
(23, 31) from /mlab/citydeclouds/citydeclouds2G (28, 38)
no /mlab/citydeclouds/cloudworlddecity
(45, 76) from /mlab/citydeclouds/citydeclouds2A (0, 26)
no /mlab/citydeclouds/tavernb3
(41, 7) from /mlab/citydeclouds/citydeclouds2G (22, 31)
no /mlab/citydeclouds2
(122, 31) from /navar_city/mlab/tavernb3 (41, 7)
no /mlab/cloudworlddecity
(45, 76) from /mlab/citydeclouds/citydeclouds2A (0, 25)
(62, 106) from /mlab/citydeclouds/citydeclouds2F (13, 46)
(62, 106) from /mlab/citydeclouds/citydeclouds2F (14, 46)
(62, 106) from /mlab/citydeclouds/citydeclouds2F (15, 46)
(62, 106) from /mlab/citydeclouds/citydeclouds2F (16, 46)
(29, 112) from /mlab/mlabscrntrd2 (24, 9)
no /morok_dun/mines1
(18, 27) from /world/world_120_109 (27, 41)
no /navar_city/mlab/tadobebuild2
(10, 18) from /navar_city/mlab/tavern (73, 19)
no /navar_city/mlab/zealothouse2
(16, 15) from /navar_city/mlab/tavern (19, 70)
no /navar_city/mlab/zealothouseb1
(6, 12) from /navar_city/mlab/tavern (9, 67)
no /navar_city/pup_land/nurnberg/city
(25, 15) from /navar_city/dragon_hangar/hangar (34, 2)
no /navar_city/smugglers_cove/sc_cave1
(26, 38) from /world/world_124_119 (25, 17)
no /navar_city/smugglers_cove/sc_lair1
(5, 29) from /world/world_124_119 (13, 26)
(12, 24) from /world/world_124_119 (20, 21)
no /navar_city/smugglers_cove/smugglers_ship2
(8, 7) from /world/world_124_119 (18, 38)
no /pup_land/ancient/mountain/0
(0, 0) from /pup_land/ancient/mountain/tower.1 (25, 24)
(0, 0) from /pup_land/ancient/mountain/tower.2 (0, 17)
no /pup_land/lone_town/pup_land/nurnberg/city
(25, 15) from /pup_land/lone_town/dragonhangar/hangar (34, 2)
no /pup_land/nurnberg/pup_land/nurnberg/city
(25, 15) from /pup_land/nurnberg/dragonhangar/hangar (34, 2)
no /scorn/houses/rolandos_house
(3, 1) from /world/world_105_116 (7, 4)
no /scorn/houses/yolandas_house
(2, 1) from /world/world_105_116 (6, 4)
no /wolfsburg/hut/hut
(2, 17) from /world/world_128_109 (26, 37)
no /world/goei mezon
(0, 0) from /world/world_127_102 (27, 3)
(0, 0) from /world/world_128_101 (6, 19)
Checking for existing but unreachable maps...
unreachable /HallOfDMs
(11, 24) to /world/world_105_116 (4, 4)
(14, 24) to /world/world_122_117 (3, 10)
unreachable /azumauindo/suno-yamatoshi/tou/tou1
(5, 14) to /azumauindo/suno-yamatoshi/tou/tou2 (5, 14)
(5, 14) from /azumauindo/suno-yamatoshi/tou/tou2 (5, 14)
unreachable /azumauindo/suno-yamatoshi/tou/tou2
(5, 14) to /azumauindo/suno-yamatoshi/tou/tou1 (5, 14)
(3, 10) to /azumauindo/suno-yamatoshi/tou/tou3 (3, 10)
(5, 14) from /azumauindo/suno-yamatoshi/tou/tou1 (5, 14)
(3, 10) from /azumauindo/suno-yamatoshi/tou/tou3 (3, 10)
unreachable /azumauindo/suno-yamatoshi/tou/tou3
(3, 10) to /azumauindo/suno-yamatoshi/tou/tou2 (3, 10)
(4, 7) to /azumauindo/suno-yamatoshi/tou/tou4 (4, 7)
(3, 10) from /azumauindo/suno-yamatoshi/tou/tou2 (3, 10)
(4, 7) from /azumauindo/suno-yamatoshi/tou/tou4 (4, 7)
unreachable /azumauindo/suno-yamatoshi/tou/tou4
(4, 7) to /azumauindo/suno-yamatoshi/tou/tou3 (4, 7)
(8, 8) to /azumauindo/suno-yamatoshi/tou/tou5 (8, 8)
(4, 7) from /azumauindo/suno-yamatoshi/tou/tou3 (4, 7)
(8, 8) from /azumauindo/suno-yamatoshi/tou/tou5 (8, 8)
unreachable /azumauindo/suno-yamatoshi/tou/tou5
(8, 8) to /azumauindo/suno-yamatoshi/tou/tou4 (8, 8)
(8, 8) from /azumauindo/suno-yamatoshi/tou/tou4 (8, 8)
unreachable /brest/sport.jess
(0, 9) to /brest/sport.jess (23, 22)
(0, 10) to /brest/sport.jess (27, 23)
(38, 34) to /world/world_107_123 (27, 29)
(23, 22) from /brest/sport.jess (0, 9)
(27, 23) from /brest/sport.jess (0, 10)
unreachable /darcap/darcap/circus/movers
unreachable /darcap/darcap/circus/walls
unreachable /dungeons/train/train-old
(1, 16) to /dungeons/train/goblin (19, 3)
(1, 12) to /dungeons/train/ogre (19, 12)
(8, 12) to /dungeons/train/skeleton (19, 12)
(8, 16) to /dungeons/train/zombie (19, 3)
(1, 5) to /world/world_104_115 (48, 24)
(1, 9) to /world/world_104_115 (48, 24)
(4, 18) to /world/world_104_115 (48, 25)
(5, 18) to /world/world_104_115 (49, 25)
(8, 5) to /world/world_104_115 (49, 24)
(8, 9) to /world/world_104_115 (49, 24)
unreachable /planes/IPO_storage
unreachable /pup_land/ancient/castle/ghoswolte
(0, 0) to /pup_land/castle_eureca/castle_eureca5 (9, 31)
unreachable /pup_land/ancient/castle/gothwolte.1
(12, 2) to /pup_land/ancient/castle/gothwolte.3 (9, 20)
(12, 2) from /pup_land/ancient/castle/gothwolte.3 (9, 20)
unreachable /pup_land/ancient/castle/gothwolte.2
unreachable /pup_land/ancient/castle/gothwolte.3
(9, 20) to /pup_land/ancient/castle/gothwolte.1 (12, 2)
(0, 0) to /pup_land/castle_eureca/castle_eureca5 (9, 31)
(9, 20) from /pup_land/ancient/castle/gothwolte.1 (12, 2)
unreachable /pup_land/ancient/ruin/tower
(14, 31) to /pup_land/ancient/ruin/path (17, 2)
unreachable /pup_land/ancient/village/siegfried/lever
(0, 15) to /pup_land/ancient/village/siegfried/siegfried.1 (22, 29)
(8, 11) to /pup_land/ancient/village/siegfried/siegfried.1 (35, 13)
unreachable /pup_land/castle_eureca/castle_eurecaB2
(1, 19) to /pup_land/castle_eureca/castle_eurecaB1 (8, 12)
(2, 23) to /pup_land/castle_eureca/castle_eurecaB2 (2, 19)
(2, 19) from /pup_land/castle_eureca/castle_eurecaB2 (2, 23)
unreachable /pup_land/cave_weapon/cave51
(15, 15) to /pup_land/cave_weapon/cave4 (16, 14)
(10, 22) to /pup_land/cave_weapon/cave5 (15, 16)
(15, 16) to /pup_land/cave_weapon/cave5 (10, 22)
unreachable /pup_land/jk/heads
(15, 0) to /pup_land/rainbow/islands (28, 24)
(3, 26) to /pup_land/s_f/cave2 (15, 3)
unreachable /pup_land/kurte/eureca_road31
(4, 31) to /pup_land/kurte/eureca_road3 (6, 8)
(37, 4) to /pup_land/kurte/eureca_road3 (6, 8)
unreachable /pup_land/lone_town/guild_freedom_ud
(1, 1) to /pup_land/lone_town/guild_freedom (13, 14)
unreachable /pup_land/lone_town/guild_law_ud
(5, 1) to /pup_land/lone_town/guild_law (4, 14)
unreachable /pup_land/lone_town/nf_bar
unreachable /pup_land/nurnberg/agito
(1, 13) to /pup_land/nurnberg/hotel (13, 2)
unreachable /pup_land/nurnberg/dick/bomb
(7, 15) to /pup_land/nurnberg/city (4, 9)
(16, 24) to /pup_land/nurnberg/city (4, 9)
unreachable /pup_land/rainbow/Lv1/Bizuzu
(6, 8) to /pup_land/rainbow/Lv1/b_pass (1, 4)
(6, 4) to /pup_land/rainbow/river (1, 1)
(6, 8) from /pup_land/rainbow/Lv1/b_pass (1, 4)
(6, 4) from /pup_land/rainbow/river (1, 1)
unreachable /pup_land/rainbow/Lv1/b_pass
(1, 4) to /pup_land/rainbow/Lv1/Bizuzu (6, 8)
(13, 1) to /pup_land/rainbow/Lv1/orc_f (2, 1)
(1, 4) from /pup_land/rainbow/Lv1/Bizuzu (6, 8)
(12, 1) from /pup_land/rainbow/Lv1/orc_f (1, 1)
unreachable /pup_land/rainbow/Lv1/orc_f
(1, 1) to /pup_land/rainbow/Lv1/b_pass (12, 1)
(7, 5) to /pup_land/rainbow/Lv1/orc_f (20, 3)
(8, 13) to /pup_land/rainbow/Lv1/orc_f (20, 12)
(20, 3) to /pup_land/rainbow/Lv1/orc_f (7, 5)
(20, 12) to /pup_land/rainbow/Lv1/orc_f (7, 11)
(14, 14) to /pup_land/rainbow/Lv1/prison (4, 1)
(2, 1) from /pup_land/rainbow/Lv1/b_pass (13, 1)
(20, 3) from /pup_land/rainbow/Lv1/orc_f (7, 5)
(20, 12) from /pup_land/rainbow/Lv1/orc_f (8, 13)
(7, 5) from /pup_land/rainbow/Lv1/orc_f (20, 3)
(7, 11) from /pup_land/rainbow/Lv1/orc_f (20, 12)
unreachable /pup_land/rainbow/Lv5/romm88
unreachable /pup_land/rainbow/river
(1, 1) to /pup_land/rainbow/Lv1/Bizuzu (6, 4)
(42, 5) to /pup_land/rainbow/islands (24, 18)
(1, 1) from /pup_land/rainbow/Lv1/Bizuzu (6, 4)
unreachable /quests/mak/chaos/monsters.pick
unreachable /quests/mak/dragons/chaos.orig
(6, 34) to /quests/mak/MainFloor (6, 14)
(6, 30) to /quests/mak/dragons/chaos (15, 29)
(15, 30) to /quests/mak/dragons/chaos (6, 30)
unreachable /quests/peterm/quests/dragon_quest
(4, 3) to /quests/peterm/quests/dragonquest2 (3, 2)
(3, 2) to /world/world_111_117 (39, 42)
unreachable /quests/todd/aljwaf/ruins
(21, 8) to /quests/todd/aljwaf/crypt (1, 1)
(6, 19) to /quests/todd/aljwaf/crypt2 (2, 2)
(18, 17) to /quests/todd/aljwaf/crypt3 (1, 1)
(6, 3) to /quests/todd/aljwaf/crypt4 (8, 1)
(16, 9) to /quests/todd/aljwaf/crypt5 (8, 3)
(23, 23) to /world/world_122_111 (11, 26)
(24, 23) to /world/world_122_111 (11, 26)
unreachable /scorn/misc/testing_area
(1, 1) to /scorn/misc/castle2 (17, 7)
unreachable /scorn/oldcity/oldcity4
(19, 20) to /scorn/oldcity/oldcity2 (1, 20)
(0, 33) to /scorn/oldcity/oldcity5 (19, 33)
(13, 0) to /scorn/oldcity/oldcity9 (33, 19)
(0, 33) from /scorn/oldcity/oldcity5 (19, 33)
unreachable /scorn/oldcity/oldcity5
(19, 33) to /scorn/oldcity/oldcity4 (0, 33)
(12, 39) to /scorn/oldcity/oldcity6 (12, 0)
(0, 5) to /scorn/oldcity/oldcity7 (19, 5)
(10, 0) to /scorn/oldcity/oldcity9 (10, 19)
(19, 33) from /scorn/oldcity/oldcity4 (0, 33)
Checking for blocked exits...
blocked exit from /brest/Castle/Finale
(1, 58) to /brest/Castle/LargeRoom (27, 56) blocked by door
blocked exits from /darcap/darcap/circus/illusions
(9, 6) to /darcap/darcap/circus/illusions (34, 6) blocked by grate (connected 1)
(9, 7) to /darcap/darcap/circus/illusions (34, 7) blocked by grate (connected 1)
(9, 11) to /darcap/darcap/circus/illusions (34, 11) blocked by grate (connected 2)
(9, 12) to /darcap/darcap/circus/illusions (34, 12) blocked by grate (connected 2)
(9, 16) to /darcap/darcap/circus/illusions (34, 16) blocked by grate (connected 3)
(9, 17) to /darcap/darcap/circus/illusions (34, 17) blocked by grate (connected 3)
blocked exit from /darcap/darcap/gshop
(15, 6) to /world/world_116_102 (23, 25) blocked by shop
blocked exit from /inn_and_outpost/hermes_inn2
(20, 8) to /inn_and_outpost/hermes_inn (20, 8) blocked by check inv trigger (slaying hermes_inn_pass)
blocked exit from /lake_country/Butakis/prison_s
(5, 6) to /scorn/shops/bowshop (5, 6) blocked by wall
blocked exit from /lake_country/small_buildings/burial_ground
(1, 1) to /world/world_109_126 (18, 22) blocked by river
blocked exit from /marksel/grumms_inn2
(20, 3) to /marksel/grumms_inn (20, 3) blocked by check inv trigger (slaying grumms_inn_pass)
blocked exits from /navar_city/city1houses
(3, 12) to /world/world_122_116 (2, 42) blocked by grass
(33, 3) to /world/world_122_116 (2, 41) blocked by grass
blocked exit from /navar_city/magara/houses/large_house
(24, 1) to /navar_city/magara/houses/large_house (19, 19) blocked by iron gate (connected 2)
blocked exit from /navar_city/misc/aliswell
(11, 34) to /navar_city/misc/aliswell (10, 9) blocked by clay well plug (slaying rodofalitheaterb4)
blocked exit from /navar_city/misc/theaterb1
(2, 29) to /navar_city/misc/theater (2, 29) blocked by spikes (connected 100)
blocked exits from /navar_city/mlab/tavern3
(0, 18) to /navar_city/mlab/tavern (3, 18) blocked by wall
(0, 26) to /navar_city/mlab/tavern (3, 26) blocked by wall
(0, 27) to /navar_city/mlab/tavern (3, 27) blocked by wall
(0, 29) to /navar_city/mlab/tavern (3, 29) blocked by wall
(1, 18) to /navar_city/mlab/tavern (3, 18) blocked by wall
(1, 26) to /navar_city/mlab/tavern (3, 26) blocked by wall
(1, 27) to /navar_city/mlab/tavern (3, 27) blocked by wall
(1, 29) to /navar_city/mlab/tavern (3, 29) blocked by wall
(2, 18) to /navar_city/mlab/tavern (3, 18) blocked by wall
(2, 26) to /navar_city/mlab/tavern (3, 26) blocked by wall
(3, 18) to /navar_city/mlab/tavern (3, 18) blocked by wall
(9, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(9, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(10, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(10, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(11, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(11, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(11, 2) to /navar_city/mlab/tavern (14, 2) blocked by wall
(12, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(12, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(12, 2) to /navar_city/mlab/tavern (14, 2) blocked by wall
(13, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(13, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(13, 2) to /navar_city/mlab/tavern (14, 2) blocked by wall
(14, 0) to /navar_city/mlab/tavern (14, 2) blocked by wall
(14, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(14, 1) to /navar_city/mlab/tavern (14, 2) blocked by wall
(14, 2) to /navar_city/mlab/tavern (14, 2) blocked by wall
(14, 6) to /navar_city/mlab/tavern (14, 6) blocked by wall
(14, 9) to /navar_city/mlab/tavern (14, 9) blocked by wall
blocked exits from /navar_city/mlab/ttower15
(6, 5) to /navar_city/mlab/ttower14 (6, 5) blocked by wall
(12, 11) to /navar_city/mlab/ttower14 (12, 11) blocked by wall
blocked exit from /navar_city/mlab/ttower16
(7, 13) to /navar_city/mlab/ttower15 (7, 13) blocked by spikes
blocked exit from /navar_city/mlab/ttower32
(12, 12) to /navar_city/mlab/ttower31 (12, 12) blocked by spikes (connected 3)
blocked exit from /navar_city/mlab/ttower33
(14, 8) to /navar_city/mlab/ttower32 (14, 8) blocked by grate (connected 2)
blocked exit from /port_joseph/pirates/tortship2
(9, 11) to /port_joseph/pirates/tortship (9, 6) blocked by mast
blocked exit from /pup_land/ancient/ruin/tower
(14, 31) to /pup_land/ancient/ruin/path (17, 2) blocked by wall
blocked exits from /pup_land/ancient/village/siegfried/siegfried.B4
(23, 26) to /pup_land/ancient/village/siegfried/siegfried.B5a (1, 1) blocked by firewall
(5, 17) to /pup_land/ancient/village/siegfried/siegfried.B5b (1, 14) blocked by lightningwall
blocked exit from /pup_land/cave_weapon/cave1
(31, 18) to /pup_land/cave_weapon/cave2 (1, 6) blocked by mine2
blocked exit from /pup_land/jk/heads
(3, 26) to /pup_land/s_f/cave2 (15, 3) blocked by wall
blocked exits from /pup_land/kurte/to_past
(6, 7) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(6, 25) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(7, 6) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(7, 8) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(7, 24) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(7, 26) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(8, 7) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
(8, 25) to /pup_land/kurte/kurte (15, 3) blocked by wall (connected 100)
blocked exit from /pup_land/nurnberg/aqueduct
(24, 24) to /pup_land/nurnberg/city (14, 16) blocked by biglake_3_1
blocked exit from /pup_land/raffle/raffle1_u2
(2, 16) to /pup_land/raffle/raffle1_u3 (2, 16) blocked by boulder
blocked exits from /quests/peterm/Demonology/HighTower1
(3, 4) to /quests/peterm/Demonology/Demon3 (6, 7) blocked by stone (slaying Earth_up), locked door (slaying Air_up), locked door (slaying Water_up), locked door (slaying Fire_up)
(4, 3) to /quests/peterm/Demonology/Demon3 (7, 6) blocked by stone (slaying Earth_up), locked door (slaying Air_up), locked door (slaying Water_up), locked door (slaying Fire_up)
(4, 5) to /quests/peterm/Demonology/Demon3 (7, 8) blocked by stone (slaying Earth_up), locked door (slaying Air_up), locked door (slaying Water_up), locked door (slaying Fire_up)
(5, 4) to /quests/peterm/Demonology/Demon3 (8, 7) blocked by stone (slaying Earth_up), locked door (slaying Air_up), locked door (slaying Water_up), locked door (slaying Fire_up)
blocked exits from /quests/peterm/Demonology/HighTower2
(6, 5) to /quests/peterm/Demonology/HighTower1 (4, 4) blocked by spikes (connected 4), spikes (connected 3), spikes (connected 2), spikes (connected 1)
blocked exit from /quests/peterm/Demonology/HighTowerTop
(1, 1) to /quests/peterm/Demonology/HighTower2 (1, 1) blocked by locked door (slaying Bkey)
blocked exit from /quests/peterm/DragonQuest/FireHatchery
(3, 3) to /quests/peterm/DragonQuest/FireAnte (2, 4) blocked by wall
blocked exit from /quests/skud/court
(20, 0) to /quests/skud/north_1 (16, 39) blocked by wall
blocked exits from /quests/todd/aljwaf/hall1
(0, 9) to /quests/todd/aljwaf/crypt (6, 9) blocked by garden gate (connected 1)
(0, 10) to /quests/todd/aljwaf/crypt (6, 9) blocked by garden gate (connected 1)
(0, 11) to /quests/todd/aljwaf/crypt (6, 9) blocked by garden gate (connected 1)
(0, 12) to /quests/todd/aljwaf/crypt (6, 9) blocked by garden gate (connected 1)
blocked exit from /santo_dominion/lord_byron/1st_floor
(1, 1) to /santo_dominion/lord_byron/2nd_floor (5, 5) blocked by wall
blocked exit from /scorn/apartment/Apartments1
(0, 0) to /scorn/apartment/apartments (1, 8) blocked by locked door (slaying ExtendedApartmentKey)
blocked exits from /scorn/misc/prison
(0, 51) to /scorn/anthony/prison (17, 20) blocked by spikes (connected 100)
(0, 52) to /scorn/anthony/prison (17, 21) blocked by spikes (connected 100)
blocked exit from /whalingoutpost/misc/frostcavern1
(62, 40) to /whalingoutpost/misc/polarbearcave3 (34, 42) blocked by ice
blocked exit from /whalingoutpost/taverns/fishershallb1
(19, 9) to /whalingoutpost/taverns/fishershall1 (19, 9) blocked by barrel
blocked exit from /wolfsburg/dungeons/treas_room
(3, 2) to /world/world_129_109 (20, 42) blocked by rocks (slaying shovel)
blocked exits from /wolfsburg/volcano/vvmansion
(16, 0) to /world/world_129_108 (6, 30) blocked by Mansion
(17, 0) to /world/world_129_108 (6, 30) blocked by Mansion
blocked exit from /world/world_127_109
(18, 17) to /world/world_127_109 (46, 43) blocked by shallow_sea
[...]
The other parts of the script are reporting locked doors without keys,
altars without matching object or keycode, unused keys, etc. But I am
still working on that part and the list is a bit long anyway so I will
not post it. The script also reports a full list of archetypes used
in all maps, and full list of named objects (which is much longer if
treasure lists and flesh items are included). I will try to publish
the script as soon as it is reasonably usable.
-Raphaël
More information about the crossfire
mailing list