Architecture:Map Object Format

From Adonthell
Revision as of 11:56, 16 March 2008 by Ksterker (talk | contribs) (Example Map Object Model: link fixed)
Jump to navigation Jump to search

Example Map Object Model

The following XML structure describes a simple Map Object that has been serialized.

 <?xml version="1.0"?>
 
   <list id="model">
     <string id="state">default</string>
     <list id="default">
       <list id="shape">
         <u_int16 id="num">1</u_int16>
         <list id="cube">
           <string id="p3d">[0, 0, 0]</string>
           <string id="p3d">[40, 0, 0]</string>
           <string id="p3d">[40, 40, 0]</string>
           <string id="p3d">[0, 40, 0]</string>
           <string id="p3d">[0, 0, 0]</string>
           <string id="p3d">[40, 0, 0]</string>
           <string id="p3d">[40, 40, 0]</string>
           <string id="p3d">[0, 40, 0]</string>
         </list>
       </list>
     </list>
   </list>
   <string id="sprite">data/gfx/map/ground/outside/grass/grass-ground.xml</string>
 

It is a flat ground tile of size 40x40 and zero height.

Parameters of a Map Object

A Map Object has two components: the model part contains the 'physical' properties of the object, while the sprite part contains its graphical representation.

The model is composed of one or more states that correspond to separate animations in the sprite. Associated with each state is a shape, which is composed of one or more cubes. These are defined by the position of their 8 corner points (in pixels). These positions are given relative to the bottom left corner of the corresponding animation.

All cubes together, placed inside a bounding box, define the length (extension along the x axis), width (extension along the y axis) and height (extension along the z axis) of the map object.