Hmmmm, I've been thinking about the overland map system here.
It occurs to me that many of the problems with communication, combat, etc stem from the fact that each continent is really just a single room. All the rest of the code is setup to use a "room" as a container which limits scope of visibility to the various routines. I know a good amount of them have already been special-cased, but it might be simpler to work in the other direction.
Namely, allow virtual rooms for the overland maps, where each player/npc gets their own room. As they move about the map, it updates the coordinates of the room, and checks for overlap, moving the player/mob into the overlapping room if it happens -- thus allowing the usual code rules to apply for random encounters/messages/etc.
Less special-case code... say/whisper/kill/give/get/put/drop/etc... all work as usual. Movement has to be special cased, and if you drop an object on the gound it may be "gone" as soon as you move (unless you want to buffer it for N rooms of movement).
Room generation is possible, thus allowing text-based descriptions that work off the map. I've seen the results of such code, and it's no worse than "You are in a grassland, you see grass in all directions with a tall mountain range far to the north!". It would certainly give brief/verbose some real usefulness!
Tracking/archery and similar skills would be possible based on looping through all the pc/npcs on the overland and doing coordinate comparisons.
Bit of a rewrite, and much of the current special-case stuff would have to go away.
Radius effects (tracking/archery/earthquake/shout) would HAVE to loop through pc/npcs to work properly.
Would need an overland bit for the room flags (already there?)
Teleport effects would need an extra step... if the chosen destination is overland, randomize a coordinate too. If the source is overland, what percent chance to still be on overland? else people would almost always zip to a normal room based on the law of averages.
Dunno... I certainly don't have any code ready-to-go for this, but what does everyone else think of the idea?
Samson would have a better idea of how the cost of such a conversion would weigh in against the cost of adding more special case code as it is now!