I'm having on issue with my auto-mapper. I am hashing the rooms title and description and I use this hash to look up rooms whenever the player takes an exit they've never taken before. If I get a roomID I can connect to that room, otherwise I make a new room.
However, some rooms on the MUD are identical in title and description, which results in them having the same hash. So it is possible when taking an exit for the first time, getRoomIDbyHash() will return a roomID, but that won't actually be the room they've entered. Instead I need to create a new room. And that's fine; I've got some heuristics that identifies when this happens and adds a new room.
But once I do that I have a problem. Now I have two rooms with identical hashes. Mudlet overwrites the original hash entry with I call setRoomIDbyHash() on the new room, and now getRoomIDbyHash() will return just the newer roomID. Which brings me to my request:
Can getRoomIDbyHash(), or a new function called maybe getAllRoomIDsbyHash(), to return the array of roomIDs which setRoomIDbyHash() has been called with the same hash value?
With that change, I can iterate over all the maze rooms and figure out which (if any) are likely connection points when the player moves down a new path.
PS: Why does getExitStubs() return the roomID when there are no stubs, instead of nil? That caused some interesting grief
