//------------------------------------------------------------------------ bool PresetFile::writeChunkList () { // Update list offset TSize pos = 0; stream->tell (&pos); if (!(seekTo (kListOffsetPos) && writeSize (pos) && seekTo (pos))) return false; // Write list if (!writeID (getChunkID (kChunkList))) return false; if (!writeInt32 (entryCount)) return false; for (int32 i = 0; i < entryCount; i++) { Entry& e = entries[i]; if (!(writeID (e.id) && writeSize (e.offset) && writeSize (e.size))) return false; } return true; }
QueryWriter* writeDevice(const Char* name, UShort id) { xthrow(status != Device, error::IllegalCall, "A illegal calling is to write device."); if (!flags_.has(QueryFlags::IsAllDevice)) { writeID(name, id); } else { xassert(true, "Can't to write the device, because the flags was defined to used to the all device.") } };
//------------------------------------------------------------------------ bool PresetFile::writeHeader () { // header id + version + class id + list offset (unknown yet) char8 classString[kClassIDSize + 1] = {0}; classID.toString (classString); return seekTo (0) && writeID (getChunkID (kHeader)) && writeInt32 (kFormatVersion) && verify (stream->write (classString, kClassIDSize)) && writeSize (0); }
QueryWriter* writeGroup(const Char* name, UShort id) { xthrow(status != Group, error::IllegalCall, "A illegal calling is to write group."); if (!flags_.has(QueryFlags::IsAllGroup)) { writeID(name, id); } else { xassert(true, "Can't to write the group, because the flags to defined to used the all group.") } return this; };
void tileReference::save(fstream& file){ file << "<tileReference>\n"; file << "<id>" << writeID(false) << "\n"; file << "<palette>" << writePalette() << "\n"; file << "<endTileReference>\n"; }