FIFE
be64c707dea6b3250bd4355bf5c825d25920087d
|
A container of Layer(s)
.
More...
#include <map.h>
Public Member Functions | |
Map (const std::string &identifier, RenderBackend *renderbackend, const std::vector< RendererBase *> &renderers, TimeProvider *tp_master=NULL) | |
Construct a map To add map to model, one should call Model::addMap (otherwise map is not registered with the engine properly) More... | |
~Map () | |
Destructor. More... | |
const std::string & | getId () const |
Get the identifier for this map. More... | |
void | setId (const std::string &id) |
Sets the identifier for this map. More... | |
Layer * | createLayer (const std::string &identifier, CellGrid *grid) |
Add a Layer to this Map. More... | |
void | deleteLayer (Layer *) |
Delete a layer from the map. More... | |
const std::list< Layer * > & | getLayers () const |
Get the layers on this map. More... | |
Layer * | getLayer (const std::string &identifier) |
Get the layer with the given id. More... | |
uint32_t | getLayerCount () const |
Get the overall number of layers. More... | |
void | deleteLayers () |
Delete all layers from the map. More... | |
void | getMinMaxCoordinates (ExactModelCoordinate &min, ExactModelCoordinate &max) |
Retrieves the minimum/maximum coordinates of instances on the map. More... | |
bool | update () |
Called periodically to update events on map. More... | |
void | setTimeMultiplier (float multip) |
Sets speed for the map. More... | |
float | getTimeMultiplier () const |
Gets model speed. More... | |
TimeProvider * | getTimeProvider () |
Gets timeprovider used in the map. More... | |
void | addChangeListener (MapChangeListener *listener) |
Adds new change listener. More... | |
void | removeChangeListener (MapChangeListener *listener) |
Removes associated change listener. More... | |
bool | isChanged () |
Returns true, if map information was changed during previous update round. More... | |
std::vector< Layer * > & | getChangedLayers () |
Returns layers that were changed during previous update round. More... | |
Camera * | addCamera (const std::string &id, const Rect &viewport) |
Adds camera to the map. More... | |
void | removeCamera (const std::string &id) |
Removes a camera from the map. More... | |
Camera * | getCamera (const std::string &id) |
Get a camera by its identifier. More... | |
const std::vector< Camera * > & | getCameras () const |
Get a list containing all cameras. More... | |
uint32_t | getActiveCameraCount () const |
Return the number of enabled cameras in this map. More... | |
void | setFilename (const std::string &file) |
const std::string & | getFilename () const |
void | addInstanceForTransfer (Instance *instance, const Location &target) |
Adds instance that is to be transferred to another layer. More... | |
void | removeInstanceForTransfer (Instance *instance) |
Removes instance that should be transferred to another layer. More... | |
void | initializeCellCaches () |
Creates cellcaches for this map. More... | |
void | finalizeCellCaches () |
Creates cellcaches for this map. More... | |
TriggerController * | getTriggerController () const |
![]() | |
FifeClass () | |
virtual | ~FifeClass () |
fifeid_t | getFifeId () |
Gets unique id of this instance inside the engine. More... | |
Private Member Functions | |
Map (const Map &map) | |
Map & | operator= (const Map &map) |
Private Attributes | |
std::string | m_id |
std::string | m_filename |
std::list< Layer * > | m_layers |
TimeProvider | m_timeProvider |
std::vector< MapChangeListener * > | m_changeListeners |
listeners for map changes More... | |
std::vector< Layer * > | m_changedLayers |
holds changed layers after each update More... | |
std::vector< Camera * > | m_cameras |
holds the cameras attached to this map More... | |
RenderBackend * | m_renderBackend |
pointer to renderbackend More... | |
std::vector< RendererBase * > | m_renderers |
holds handles to all created renderers More... | |
bool | m_changed |
true, if something was changed on map during previous update (layer change, creation, deletion) More... | |
std::map< Instance *, Location > | m_transferInstances |
holds instances which should be transferred on the next update More... | |
TriggerController * | m_triggerController |
FIFE::Map::Map | ( | const std::string & | identifier, |
RenderBackend * | renderbackend, | ||
const std::vector< RendererBase *> & | renderers, | ||
TimeProvider * | tp_master = NULL |
||
) |
Construct a map To add map to model, one should call Model::addMap (otherwise map is not registered with the engine properly)
Definition at line 47 of file map.cpp.
References m_triggerController.
FIFE::Map::~Map | ( | ) |
Destructor.
Definition at line 61 of file map.cpp.
References deleteLayers(), m_cameras, and m_triggerController.
|
private |
Adds camera to the map.
The Map takes ownership of the camera so don't delete it.
Definition at line 245 of file map.cpp.
References FIFE::Camera::addRenderer(), getCamera(), m_cameras, m_renderBackend, and m_renderers.
Referenced by FIFE::MapLoader::load().
void FIFE::Map::addChangeListener | ( | MapChangeListener * | listener | ) |
Adds new change listener.
listener | to add |
Definition at line 230 of file map.cpp.
References m_changeListeners.
Referenced by FIFE::Model::createMap(), and FIFE::Camera::init().
Adds instance that is to be transferred to another layer.
instance | A pointer to the instance that is to be transferred. |
target | A const reference to the target location. |
Definition at line 306 of file map.cpp.
References FIFE::Location::getExactLayerCoordinates(), FIFE::Location::getLayer(), m_transferInstances, FIFE::Location::setExactLayerCoordinates(), and FIFE::Location::setLayer().
Referenced by FIFE::Instance::processMovement().
Map owns the returned pointer to the new Layer, so don't delete it!
Definition at line 86 of file map.cpp.
References m_changed, m_changeListeners, and m_layers.
Referenced by FIFE::MapLoader::load().
void FIFE::Map::deleteLayer | ( | Layer * | layer | ) |
Delete a layer from the map.
Definition at line 105 of file map.cpp.
References m_changed, m_changeListeners, and m_layers.
void FIFE::Map::deleteLayers | ( | ) |
Delete all layers from the map.
Definition at line 122 of file map.cpp.
References m_changeListeners, and m_layers.
Referenced by ~Map().
void FIFE::Map::finalizeCellCaches | ( | ) |
Creates cellcaches for this map.
Called from maploader.
Definition at line 346 of file map.cpp.
References FIFE::CellCache::createCells(), FIFE::CellCache::forceUpdate(), and m_layers.
Referenced by FIFE::MapLoader::load().
uint32_t FIFE::Map::getActiveCameraCount | ( | ) | const |
Camera * FIFE::Map::getCamera | ( | const std::string & | id | ) |
Get a camera by its identifier.
Definition at line 280 of file map.cpp.
References m_cameras.
Referenced by addCamera().
const std::vector< Camera * > & FIFE::Map::getCameras | ( | ) | const |
Get a list containing all cameras.
Definition at line 291 of file map.cpp.
References m_cameras.
Referenced by FIFE::MapSaver::save().
|
inline |
|
inline |
Get the identifier for this map.
Definition at line 104 of file map.h.
Referenced by FIFE::MapSaver::save().
Layer * FIFE::Map::getLayer | ( | const std::string & | identifier | ) |
Get the layer with the given id.
Definition at line 73 of file map.cpp.
References m_layers.
Referenced by initializeCellCaches(), FIFE::MapLoader::load(), and FIFE::Layer::~Layer().
uint32_t FIFE::Map::getLayerCount | ( | ) | const |
Get the overall number of layers.
Definition at line 82 of file map.cpp.
References m_layers.
Referenced by FIFE::Layer::getLayerCount(), FIFE::Camera::getLocation(), and FIFE::Layer::getZOffset().
|
inline |
Get the layers on this map.
Definition at line 120 of file map.h.
Referenced by FIFE::RendererBase::activateAllLayers(), FIFE::Camera::getLocation(), FIFE::Layer::getZOffset(), FIFE::Camera::init(), FIFE::Camera::render(), FIFE::MapSaver::save(), FIFE::MultiLayerSearch::searchBetweenTargetsMap(), FIFE::Camera::updateRenderLists(), and FIFE::Camera::~Camera().
void FIFE::Map::getMinMaxCoordinates | ( | ExactModelCoordinate & | min, |
ExactModelCoordinate & | max | ||
) |
Retrieves the minimum/maximum coordinates of instances on the map.
min | A reference to a ExactModelCoordinate that will hold the minimum coordinate. |
max | A reference to a ExactModelCoordinate that will hold the maximum coordinate. |
Definition at line 142 of file map.cpp.
References FIFE::Location::getMapCoordinates(), m_layers, FIFE::Location::setExactLayerCoordinates(), FIFE::PointType3D< T >::x, and FIFE::PointType3D< T >::y.
|
inline |
|
inline |
Gets timeprovider used in the map.
Definition at line 155 of file map.h.
Referenced by FIFE::Instance::bindTimeProvider(), FIFE::Instance::getRuntime(), and FIFE::Instance::getTotalTimeMultiplier().
|
inline |
Definition at line 220 of file map.h.
Referenced by FIFE::MapLoader::load(), and FIFE::MapSaver::save().
void FIFE::Map::initializeCellCaches | ( | ) |
Creates cellcaches for this map.
Called from maploader.
Definition at line 322 of file map.cpp.
References FIFE::Layer::addInteractLayer(), getLayer(), and m_layers.
Referenced by FIFE::MapLoader::load().
|
inline |
void FIFE::Map::removeCamera | ( | const std::string & | id | ) |
void FIFE::Map::removeChangeListener | ( | MapChangeListener * | listener | ) |
Removes associated change listener.
listener | to remove |
Definition at line 234 of file map.cpp.
References m_changeListeners.
Referenced by FIFE::Camera::~Camera().
void FIFE::Map::removeInstanceForTransfer | ( | Instance * | instance | ) |
Removes instance that should be transferred to another layer.
instance | A pointer to the instance that should be transferred. |
Definition at line 315 of file map.cpp.
References m_transferInstances.
|
inline |
Definition at line 196 of file map.h.
Referenced by FIFE::MapLoader::load().
|
inline |
|
inline |
bool FIFE::Map::update | ( | ) |
Called periodically to update events on map.
Definition at line 174 of file map.cpp.
References FIFE::Layer::addInstance(), FIFE::Location::getExactLayerCoordinates(), FIFE::Location::getLayer(), FIFE::Instance::getOldLocationRef(), m_cameras, m_changed, m_changedLayers, m_changeListeners, m_layers, m_transferInstances, FIFE::Layer::removeInstance(), and FIFE::CellCache::update().
|
private |
holds the cameras attached to this map
Definition at line 239 of file map.h.
Referenced by addCamera(), getActiveCameraCount(), getCamera(), getCameras(), removeCamera(), update(), and ~Map().
|
private |
true, if something was changed on map during previous update (layer change, creation, deletion)
Definition at line 248 of file map.h.
Referenced by createLayer(), deleteLayer(), and update().
|
private |
|
private |
listeners for map changes
Definition at line 233 of file map.h.
Referenced by addChangeListener(), createLayer(), deleteLayer(), deleteLayers(), removeChangeListener(), and update().
|
private |
Definition at line 226 of file map.h.
Referenced by createLayer(), deleteLayer(), deleteLayers(), finalizeCellCaches(), getLayer(), getLayerCount(), getMinMaxCoordinates(), initializeCellCaches(), and update().
|
private |
|
private |
holds handles to all created renderers
Definition at line 245 of file map.h.
Referenced by addCamera().
|
private |
holds instances which should be transferred on the next update
Definition at line 251 of file map.h.
Referenced by addInstanceForTransfer(), removeInstanceForTransfer(), and update().
|
private |