====== HoverEX : File Archiving ====== HoverEX creates it's own zip archive for it's tile sets, entity sets and arenas. It basically wraps around the [[http://www.winimage.com/zLibDll/minizip.html|Minizip]](the code is in C, hence was wrapped to C++) code to do this. This is thanks to ClanLib not having anything close to complete for zip archive creation. ClanLib can only read zip archives and not write them. The code for zip archives in ClanLib is a total mess as I don't really understand the structure of that File Archiver class. This is why HoverEX implements it's own. Though not full featured and really crappy when it comes to timestamps, it is good enough for HoverEX. Nuff said. ===== How HoverEX Load/Save data ===== Since HoverEX uses the zip archiving format to save data, that allowed HoverEX to use multiple files to be saved on each zip archive. This made things easier as in different data set that are part of a arena/tileset/entityset are saved in different files which are then packed into a single archive. To get an idea, read up the [[dev:arena|Arena]] page. Since HoverEX is splitted into different engines, it was designed that each engine that deals with it's own data set to load and save it's own data set. This also means that there will be a main loader, say the map loader, which will simply load up the zip archive, pick the correct file from the archive, then pass them to the respective engine to load them. Saving does the same thing where each engine will chuck their data to save to the main engine manager thingy that will simply pack them into a single zip archive.