/**************/ /*** Export ***/ /**************/ #include "stdafx.h" #include #include "LayerTile.h" #include "Map.h" #include "utils.h" #include "Core.h" #include "TexCache.h" #include "TileSet.h" #include "Tile.h" #include "Layer.h" #include "LayerTile.h" #include "Export.h" /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ CExport::CExport(char *Filename,int _LayerCount) { LayerCount=_LayerCount; File=fopen(Filename,"wb"); // Write Dummy File Header fwrite(&FileHdr,sizeof(sExpFileHdr),1,File); for (int i=0;iGetTile(ThisElem.Set,ThisElem.Tile); sExpTile OutTile; OutTile.Flags=ThisElem.Flags; TRACE3("%i %i %i\n",ThisElem.Set,ThisElem.Tile,ThisElem.Flags); ExportTile(Core,ThisTile,OutTile); } // Write Tris ListSize=TriList.size(); FileHdr.TriCount=ListSize; FileHdr.TriOfs=ftell(File); for (i=0; iGetTexCache(); OutTile.TriStart=-1; OutTile.TriCount=0; OutTile.XOfs=ThisTile.GetTexXOfs(); OutTile.YOfs=ThisTile.GetTexYOfs(); // Texture int TexID=ThisTile.GetTexID(); if (TexID==-1) // Blank Tile { OutTile.TexId=-1; } else { sExpTex OutTex; sTex &ThisTex=TexCache.GetTex(TexID); OutTex.Filename=ThisTex.Filename; OutTile.TexId=TexList.Add(OutTex); } } /*****************************************************************************/ void CExport::ExportTile3d(CCore *Core,CTile &ThisTile,sExpTile &OutTile) { CTexCache &TexCache=Core->GetTexCache(); std::vector &TileTriList=ThisTile.GetTriList(); int TriCount=TileTriList.size(); OutTile.TriStart=TriList.size(); OutTile.TriCount=TriCount; OutTile.XOfs=-1; OutTile.YOfs=-1; OutTile.TexId=-1; for (int T=0; T