Adonthell  0.4
map.dxt
00001 /*
00002    $Id: map.dxt,v 1.1 2001/10/15 15:00:06 gnurou Exp $
00003 
00004    Copyright (C) 2001   Kai Sterker
00005    Part of the Adonthell Project http://adonthell.linuxgames.com
00006 
00007    This program is free software; you can redistribute it and/or modify
00008    it under the terms of the GNU General Public License.
00009    This program is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY.
00011 
00012    See the COPYING file for more details.
00013 */
00014 
00015 /*! \page page4 The Map Engine
00016 
00017 The map engine consists of several parts that work together to display the
00018 %game world on %screen.
00019 
00020 \section map_data Map Data
00021 
00022 The landmap holds the %data of the map: the actual \link mapobject graphics
00023 \endlink used on that map, and the information how to place them. A single map
00024 can contain multiple, independent \link mapsquare_area terrains \endlink
00025 that share the same graphics though. All terrains (or submaps) of a map are
00026 kept in memory, so transition between them is fast. Therefore it is desirable
00027 to keep related areas, like different levels of a dungeon or the floors of a
00028 building, on the same map.
00029 
00030 \section map_rendering The Renderer
00031 
00032 The %data on its own is only of little use as long as there is no way of displaying
00033 it. This is the \link mapview mapview's \endlink task. It renders a certain area
00034 of the map and everything on it onto a surface. That way, it can be as easily
00035 displayed on %screen as it can be saved to disk.
00036 
00037 The %mapview itself is rather dumb and without further instructions it would
00038 render the same part of the map for the rest of eternity. A \link py_object python
00039 script \endlink can be used to achieve a dynamic behaviour of the mapview, like
00040 following the player around the map. This script is called once every cycle of the
00041 %game and has access to practically all API functions and in-%game data, to permit
00042 as much flexibility as possible.
00043 */