This is a reference implementation of aesop::Map and aesop::Zone objects.
More...
Detailed Description
This is a reference implementation of aesop::Map and aesop::Zone objects.
The main design objectives of this implementation are:
- Easy for humans to read and write the raw map/zone data files.
- Easy for scripts to autogenerate raw map/zone data files.
- Easy to parse the raw map/zone data files.
- Decent (but not great!) performance. Loads in particular still have a high amount of text parsing and allocations that could be avoided.
Note that there are some explicit non-goals:
- No support for auto-creation of zones (that is, no support for auto space partitioning). Zone creators will have to do that themselves.
- Not designed to be blazingly fast for loads/saves.
- Not designed to be blazingly fast for queries (but a map/zone creator who is smart about partitioning their zones should be fine).
This is supposed to be a reference implementation to illustrate how some of these interfaces can be built, and to be useful to storytellers that are willing to trade some performance for usability.
Typedef Documentation
data type: maps from zone ID --> zone object
Definition at line 95 of file mapzone.h.
Function Documentation
factory method to create mapzone map format readers
smart_ptr< aesop::Map > mapzone::loadMap |
( |
IN const char * |
id, |
|
|
IN std::istream & |
stream | |
|
) |
| | |
void mapzone::resolveZoneIds |
( |
IN aesop::Zone * |
zone, |
|
|
IN zone_map_t & |
map | |
|
) |
| | |