This commit establishes an extensible way of storing additional data in map file headers. Those header extras can be permanent, like the embedded config file or be used only once after map load like the undo/redo data. Additional extra data can be easily added and will not break backward compatibility, so this map format should hold up for quite some time. To make things easier for mappers, maps can now be saved without invoking the various optimisations. That, in combination with the stored undo data, means, that editing a map can be picked up at exactly the same state, as the map was saved in. Maps will automatically be written in the appropriate fashion, depending on the situation: 1) for sendmap: no optimisation, no undo data 2) savemap during editing: no optimisation, with undo data 3) savemap when not editing: optimised, no undo data 4) savemapoptimised: optimised, no undo data (For savemap to save different maps during editing, the variable preserveundosonsave has to be "1". It is "0" by default.) All of the above map files can be played without problems - they only differ in file size. (However, maps with undo data may be too big to send) The new command "embedconfigfile" will load the config file, include it in the map header and rename the original text file. "extractconfigfile" will write an embedded config file to a separate file and remove it from the map header. Embedded config files take precedence over regular config files and therefore make it harder for cheaters to play with modified config files. further changes: cleaned up some debugging code; more ASSERTs
License ======= The AssaultCube source code is mainly based on the cube game/engine and uses the same license (z-lib like). See README_CUBEENGINE.txt In addition AssaultCube contains code from pCube (Cube pro mod) and Sauerbraten (Cube successor) and other sources. AssaultCube Authors ================== Adrian 'driAn' Henke drian at sprintf.org Andrew 'Arghvark' Davis arghvark at gmail.com Lee 'Eihrul' Salzman stef Cube Engine Authors =================== Wouter 'Aardappel' van Oortmerssen, Lee 'Eihrul' Salzman and others. See README_CUBEENGINE.txt and http://www.cubeengine.com pCube Authors ============= Adrian 'driAn' Henke and others. http://p.cubers.net Sauerbraten Authors =================== Wouter 'Aardappel' van Oortmerssen, Lee 'Eihrul' Salzman, Mike 'Gilt' Dysart and others. http://www.sauerbraten.org Cheat Protection ================ The cheat protection described in README_CUBEENGINE.txt is not used in AssaultCube. Binaries compiled from source are compatible with the official binaries. This means, the client can easily be hacked, on the other hand, you can compile AssaultCube for different platforms and fix bugs yourself. You MUST NOT connect to servers that are not yours with a modified client that contains changes that were not made for platform-compatibility or to fix bugs. This would be cheating. Thank you for supporting fair play gaming.