#summary Protocol for frontend/engine interaction.
#labels Documentation
= Introduction =
The frontend interacts with the engine in two separate occasions:
* map preview generation;
* game setup and statistics messages.
Messages are always in form of a string of bytes, and the first byte contains the message size (hence the maximum length is 255-1).
= Map Preview =
Frontend needs to generate a preview of the map that is going to be used in game; there is no handshaking.
Files on which this protocol is implemented: MapConfigViewController.m
== Protocol ==
|| *Frontend* || *Engine* || *Format* ||
|| UUID || || {{{eseed{ ... }}}} ||
|| Template Filter || || {{{e$template_filter N}}} ||
|| Map Type || || {{{e$mapgen N}}} ||
|| Maze Value || || {{{e$maze N}}} ||
|| || 128x32 byte array || {{{0YSD3 ... FSAD0}}} ||
=== UUID ===
The UUID is a 32 bytes array composed of ASCII characters; groups of letters should be separated by '-'.
Example: _eseed {AERTB-62FASDSAD-NNIASDSADASD-12P}_
=== Template Filter ===
_N_ selects the type of map that is going to be generated. This command is ignored when MapGen is not 0, but it must be set anyways.
|| *Value* || *Filter Selected* ||
|| 0 || None ||
|| 1 || Large ||
|| 2 || Medium ||
|| 3 || Small ||
|| 4 || Cavern ||
|| 5 || Wacky ||
Example: _e$template_filter 0_
=== Map Type ===
_N_ is a boolean variable (0/1) that selects standard map generation or maze map generation.
|| *Value* || *Map Type* ||
|| 0 || Standard Map ||
|| 1 || Maze Map ||
Example: _e$mapgen 1_
=== Maze Value ===
_N_ selects the type of maze selected, similarly to Template Filter
|| *Value* || *Filter Selected* ||
|| 0 || Small Tunnels ||
|| 1 || Medium Tunnels ||
|| 2 || Large Tunnels ||
|| 3 || Small Floating Islands ||
|| 4 || Medium Floating Islands ||
|| 5 || Large Floating Islands ||
Example: _e$mazesize 4_
= In-Game =