Patch:Map

From KeenWiki
Jump to navigation Jump to search

This page contains patches relating to the map level, a special level in all Keen games that the player visits between other levels. Map levels have the following characteristics:

* The player's sprite looks and behaves differently, being able to move in four directions, no gravity, etc
* Other levels can be entered by moving to their markers and pressing a key
* The level changes each time a non-map level is completed
* The player starts the game in this level


Due to the different ways that map levels behave in each game each episode has its own map page as follows:

* Patch:Map (Keen 1)
* Patch:Map (Keen 2)
* Patch:Map (Keen 3)
* Patch:Map (Keen 4)
* Patch:Map (Keen 5)
* Patch:Map (Keen 6)
* Patch:Map (Keen Dreams)


Pages with patches relating tot he map are as follows:

* Patch:Bean-With-Bacon-Megarocket
* Patch:Done markers
* Patch:Done sign
* Patch:Elevators
* Patch:Flags


Map, levels, markers and blocks

The map level contains entrances to other levels. There are also Done markers, Done signs or Flags that mark completed levels. Finally there are 'blocks' to Keen's progress that are only removed when Keen completes the level. These are known as "Overlay Blocking Sprites" or OBSs.

Blocks work in one of three ways depending on the series.

In Keen Vorticons a level x block is a sprite of value 32768 + x. Keeping in mind that sprite values are 16-bit values this is actually a negative number. (In hex it is $800x) Most level editors will automatically convert this to a negative value when it is placed in the level. In order to function correctly the OBSs must be in a 2x2 array in combination with the level entry sprite. (If this is not the case then the level will not be marked as done correctly.)

In Keen Dreams there are no OBSs, instead when a level is complete the done sign that appears can overwrite a formerly blocking foreground tile, allowing Keen to pass. This is what happens with level 1 for instance.

In Keen Galaxy the OBS for level x is a sprite of value $D00x. There can be as many of these as desired in any sort of arrangement. When level x is completed all the foreground (blocking or otherwise) tiles under the OBSs for that level will be removed.