def to_string(me): rawchunks = [] if me.name is not None: rawchunks.append(('rNAM', me.name)) if me.isbase: rawchunks.append(('rBSE', '')) if me.noanti: rawchunks.append(('rNAW', '')) if me.noweapons: rawchunks.append(('rNWP', '')) if me.noflags: rawchunks.append(('rNFL', '')) if me.autowarp: x, y, arena = me.autowarp if arena: data = struct.pack('<hh16s', x, y, arena) else: data = struct.pack('<hh', x, y) rawchunks.append(('rAWP', data)) rawchunks.append(('rTIL', me.get_tile_data())) rawchunks.extend(me.chunks) f = cStringIO.StringIO() chunks.write_chunks(f, rawchunks) return f.getvalue()
def to_string(me): rawchunks = [] if me.name is not None: rawchunks.append(("rNAM", me.name)) if me.isbase: rawchunks.append(("rBSE", "")) if me.noanti: rawchunks.append(("rNAW", "")) if me.noweapons: rawchunks.append(("rNWP", "")) if me.noflags: rawchunks.append(("rNFL", "")) if me.autowarp: x, y, arena = me.autowarp if arena: data = struct.pack("<hh16s", x, y, arena) else: data = struct.pack("<hh", x, y) rawchunks.append(("rAWP", data)) rawchunks.append(("rTIL", me.get_tile_data())) rawchunks.extend(me.chunks) f = cStringIO.StringIO() chunks.write_chunks(f, rawchunks) return f.getvalue()
def metadata_to_string(me): hasmeta = me.chunks or me.regions or me.attrs if not hasmeta: return '' rawchunks = [] for k, v in me.attrs.items(): rawchunks.append(('ATTR', '%s=%s' % (k, v))) for rgn in me.regions: rawchunks.append(('REGN', rgn.to_string())) rawchunks.extend(me.chunks) f = cStringIO.StringIO() totalsize = chunks.write_chunks(f, rawchunks) header = struct.pack('<III', METADATA_MAGIC, totalsize + 12, 0) return header + f.getvalue()