Map System Flags
[Map System]

Map-Flags can be used to control the map system behaviour. More...

Defines


Detailed Description

Map-Flags can be used to control the map system behaviour.


Define Documentation

#define MAP_FLAGS_CUSTOMMAPDRAWER

Use custom map drawer functions.

The MAP_FLAGS_CUSTOMMAPDRAWER flag must be specified if you want to use custom made map drawer functions.

This flag works only in conjunction with hel_MapCreateIndirect. The pColumnDrawer and pRowDrawer members of the TMapCreateIndirectDesc structure must both point to valid map drawer functions.

See also:
hel_MapCreateIndirect

#define MAP_FLAGS_DEFAULT

Default map flags.

The MAP_FLAGS_DEFAULT represents the default map flags.

#define MAP_FLAGS_DOWN

Control down scrolling behaviour.

If MAP_FLAGS_DOWN is not included in the map flags, hel_MapScroll will interpret positive DeltaY values as zero and therefore the map will not scroll downwards.

#define MAP_FLAGS_DYNAMICTILERELOADING

Enable dynamic tile reloading.

The MAP_FLAGS_DYNAMICTILERELOADING can be used to enable dynamic tile reloading. If the Map-System gets associated to a background which tileset has been created using hel_TileCreate, the MAP_FLAGS_DYNAMICTILERELOADING must be included in the Flags argument when creating a Map-System using hel_MapCreate.

Attention:
This flag must not be changed after Map-System creation.
Note:
Maps that use the dynamic tile reloading feature must not have H/V flipping and palette selection bits set, because these bits are also used for the tilenumber. To be more precise, bits 0..14 are reserved for the tilenumber. So it supports a maximum of 32767 unique tiles.

#define MAP_FLAGS_LEFT

Control left scrolling behaviour.

If MAP_FLAGS_LEFT is not included in the map flags, hel_MapScroll will interpret negative DeltaX values as zero and therefore the map will not scroll to the left.

#define MAP_FLAGS_MINIMALUPDATE

Update only the minimum amount of tiles when scrolling.

The MAP_FLAGS_MINIMALUPDATE flag tells the Map-System to update only map tiles which become visible when the map scrolls.

If the Map-System scrolls horizontally, it updates 21 tiles vertically which move into the screen. If the Map-System scrolls vertically, it updates 31 tiles horizontally which move into the screen. These values equal the display dimension in tiles, extended by 1 tile in each direction.

If a Map-System uses rotation/scaling features, you might want to update an entire row or column of the map in Vram. This is sometimes necessary for mode 7 effects. If MAP_FLAGS_MINIMALUPDATE is not set, the Map-System uses the size of the map in Vram (if the Vram map is 64x64 tiles, it will update 64 tiles vertically and 64 tiles horizontally).

Attention:
This flag must not be changed after Map-System creation.

#define MAP_FLAGS_RIGHT

Control right scrolling behaviour.

If MAP_FLAGS_RIGHT is not included in the map flags, hel_MapScroll will interpret positive DeltaX values as zero and therefore the map will not scroll to the right.

#define MAP_FLAGS_ROTATION

Create a rotation map.

If you want to create a Map-System that supports rotation and scaling, include MAP_FLAGS_ROTATION in the Flags argument when calling hel_MapCreate. Rotation/Scaling support is necessary for mode 7 effects for example.

Rotation/Scaling support for tile-backgrounds is only available in mode 1 and 2. It's only available for specific backgrounds. In mode 1, only background 2 supports rotation/scaling, in mode 2 background 2 and 3 support rotation/scaling.

Attention:
This flag must not be changed after Map-System creation.

#define MAP_FLAGS_SIZE0

Map Flags Size0.

The MAP_FLAGS_SIZE... flags specify the size of the map in Vram. The size depends on the MAP_FLAGS_ROTATION flag.

Here is an overview:

Flag               Regular     Rotation/Scaling
-----------------------------------------------
MAP_FLAGS_SIZE0    32x32      16x16
MAP_FLAGS_SIZE1    64x32      32x32
MAP_FLAGS_SIZE2    32x64      64x64
MAP_FLAGS_SIZE3    64x64      128x128
Sizes are specified in tiles, 64x32 means 64 tiles wide and 32 tiles high.

MAP_FLAGS_SIZE0 is the default flag and will be used if none of the MAP_FLAGS_SIZE... flags have been specified.

Attention:
This flag must not be changed after Map-System creation.
Note:
Using MAP_FLAGS_SIZE0 is in most cases the best choice, since it requires the smallest amount of memory. However, sometimes you might want to use larger maps, which might be necessary when performing mode 7 effects.

#define MAP_FLAGS_SIZE1

Map Flags Size1.

Please see MAP_FLAGS_SIZE0

#define MAP_FLAGS_SIZE2

Map Flags Size2.

Please see MAP_FLAGS_SIZE0

#define MAP_FLAGS_SIZE3

Map Flags Size3.

Please see MAP_FLAGS_SIZE0

#define MAP_FLAGS_TRANSMITIMMEDIATELY

Transmit position changes immediately.

If MAP_FLAGS_TRANSMITIMMEDIATELY is set, the Map-System will update the position of the map in Vram immediately. hel_MapTransmit ignores Map-Systems which have this flag set.

Note:
If objects do not scroll synchronized with a Map-System, the problem is probably the Map-System position it updated immediately. In this case, exclude MAP_FLAGS_TRANSMITIMMEDIATELY and transmit the changes during vertical blank using hel_MapTransmit.

#define MAP_FLAGS_TRANSMITNEVER

Never transmit position changes.

If MAP_FLAGS_TRANSMITNEVER is set, the Map-System will never update the position of the map in Vram. hel_MapTransmit ignores Map-Systems which have this flag set. You might want to specify this flag if you perform mode 7 effects and need to transform each scanline individually.

#define MAP_FLAGS_UP

Control up scrolling behaviour.

If MAP_FLAGS_UP is not included in the map flags, hel_MapScroll will interpret negative DeltaY values as zero and therefore the map will not scroll upwards.


Generated on Fri Aug 17 12:12:38 2007 for HEL Library by  doxygen 1.5.3