The Raven Map
The Raven_Map class owns containers of all the objects that make up the
game world geometry — walls, triggers, spawn points, etc. — and also
owns an instance of the map’s navigation graph. These items are created
when a file of the Raven map format is opened.
When Raven is run, the default map (Raven_DM1) and its correspond
ing navigation graph are read from file. A number of Raven bots are then
created at randomly selected, unoccupied spawn points.
NOTE The parameters for Raven are stored in the Lua script file params.lua.
Access to the scripts is made convenient through the use of a singleton class
Raven_Scriptor, which in turn is derived from the Scriptor class. This class
is simply an encapsulation of all the commonly used methods for accessing Lua
LuaPopNumber and LuaPopString. If you need further clarifica
tion, check out the file common/script/Scriptor.h.
Here is a partial listing of Raven_Map’s declaration.
typedef NavGraphNode<GraphEdge, Trigger<Raven_Bot>*> GraphNode;
typedef SparseGraph<GraphNode> NavGraph;
typedef TriggerSystem<Trigger<Raven_Bot> > Trigger_System;
//the walls that comprise the current map's architecture.
//triggers are objects that define a region of space. When a raven bot
//enters that area, it "triggers" an event. That event may be anything
//from increasing a bot's health to opening a door or requesting a lift.
//this holds a number of spawn positions. When a bot is instantiated
//it will appear at a randomly selected point chosen from this vector.
//this map’s accompanying navigation graph
/* EXTRANEOUS DETAIL OMITTED */
//loads an environment from a file
Raven: An Overview
Overview of the Game Architecture