File: map.dxt

package info (click to toggle)
adonthell 0.3.8-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,416 kB
  • sloc: cpp: 50,659; sh: 5,142; python: 3,307; makefile: 338; lex: 216; sed: 16
file content (43 lines) | stat: -rw-r--r-- 1,805 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
   $Id$

   Copyright (C) 2001   Kai Sterker
   Part of the Adonthell Project http://adonthell.linuxgames.com

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License.
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY.

   See the COPYING file for more details.
*/

/*! \page page4 The Map Engine

The map engine consists of several parts that work together to display the
%game world on %screen.

\section map_data Map Data

The landmap holds the %data of the map: the actual \link mapobject graphics
\endlink used on that map, and the information how to place them. A single map
can contain multiple, independent \link mapsquare_area terrains \endlink
that share the same graphics though. All terrains (or submaps) of a map are
kept in memory, so transition between them is fast. Therefore it is desirable
to keep related areas, like different levels of a dungeon or the floors of a
building, on the same map.

\section map_rendering The Renderer

The %data on its own is only of little use as long as there is no way of displaying
it. This is the \link mapview mapview's \endlink task. It renders a certain area
of the map and everything on it onto a surface. That way, it can be as easily
displayed on %screen as it can be saved to disk.

The %mapview itself is rather dumb and without further instructions it would
render the same part of the map for the rest of eternity. A \link py_object python
script \endlink can be used to achieve a dynamic behaviour of the mapview, like
following the player around the map. This script is called once every cycle of the
%game and has access to practically all API functions and in-%game data, to permit
as much flexibility as possible.
*/