Ranged Search Code by Justice (Kwon J. Ekstrom) Updated: June 13, 2006 Special thanks to: ------------------------ Hypereye for the use of his server as a test site. Samson for information regarding SmaugFUSS and dlsym. Description: ------------------------ This code was originally written to handle the ranged search capabilities of a from-scratch C++ codebase. It was ported to SmaugFUSS for distribution at "http://www.mudbytes.net/". The purpose of this snippet is to reduce the code necessary for ranged systems. It does this by delegating an object to handle each room individually while a separate algorithm determines what rooms are searched and their order. The code consists primarily of 3 parts: algorithms, search_frame, search_callback Algorithms: ------------------------ The algorithms implement how the search is conducted. Currently there are 3 algorithms implemented which should be sufficient for most ranged searches for a room based mud. The search_BFS class implements a "breadth first search" which works similar to how track does in a standard SMAUG. The search_LOS class implements a "line of sight search" which works by expanding outward in any direction available from the start room. The search_DIR class is similar to search_LOS but only expands in a given direction. Search Frame: ------------------------ The search_frame class stores the current state of the search. Search Callback: ------------------------ The callback objects are where you would implement the purpose behind any given search. It defines only one abstract method. It takes a search frame as input and returns true if the target is "found" or false to keep searching. Examples: ------------------------ Included with the source are 2 examples. A basic scan function and a mini-map.