#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 =