From c1059872a2f2c7dbde7e75db921213e263badccf Mon Sep 17 00:00:00 2001 From: Daveo Date: Wed, 7 Feb 2001 18:46:59 +0000 Subject: [PATCH] --- Utils/MapEdit/Export.cpp | 54 +++++------------- Utils/MapEdit/TexCache.cpp | 15 +++-- Utils/MapEdit/TexCache.h | 11 ++-- Utils/MapEdit/TileSet.cpp | 109 ++++++++----------------------------- Utils/MapEdit/TileSet.h | 6 +- Utils/MapEdit/utils.cpp | 32 +++++++++++ Utils/MapEdit/utils.h | 2 +- tools/MapEdit/MapEdit.exe | Bin 208896 -> 208896 bytes 8 files changed, 85 insertions(+), 144 deletions(-) diff --git a/Utils/MapEdit/Export.cpp b/Utils/MapEdit/Export.cpp index 71d19b2f5..8323dc255 100644 --- a/Utils/MapEdit/Export.cpp +++ b/Utils/MapEdit/Export.cpp @@ -210,7 +210,7 @@ int TriCount=TileTriList.size(); { sTriFace &InTri=TileTriList[T]; sExpTri OutTri; - GString TexName=TexCache.GetTexName(InTri.Mat); + GString TexName=TexCache.GetTexFilename(InTri.Mat); OutTri.TexID=TexNames.Add(TexName); for (int p=0; p<3; p++) @@ -223,44 +223,14 @@ int TriCount=TileTriList.size(); } } -/* -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 #include #include +#include #include #include "TexCache.h" @@ -25,17 +26,15 @@ sTex Tex; */ /*****************************************************************************/ // Checks loaded files for dups, assumes all passed RGB is unique -int CTexCache::ProcessTexture(const char *Path,const char *Name,int Flags,sRGBData *RGBData) +int CTexCache::ProcessTexture(const char *Filename,int Flags,sRGBData *RGBData) { -int ListSize=TexList.size(); - +int ListSize=TexList.size(); sTex NewTex; sRGBData ThisRGB; +GFName FName=Filename; -// strcpy(NewTex.Filename,Filename); - NewTex.Path=Path; - NewTex.Name=Name; - NewTex.FullFilename=NewTex.Path+NewTex.Name; + NewTex.Name=FName.File(); + NewTex.Filename=Filename; NewTex.Flags=Flags; if (!RGBData) // Need to load file @@ -45,7 +44,7 @@ sRGBData ThisRGB; // TRACE1("Loading Texture %s\n",NewTex.Filename); - if (!LoadBMP(NewTex.FullFilename,ThisRGB)) + if (!LoadBMP(NewTex.Filename,ThisRGB)) { exit(-1); return(ListSize); diff --git a/Utils/MapEdit/TexCache.h b/Utils/MapEdit/TexCache.h index 5c0d722ea..da87c0ad9 100644 --- a/Utils/MapEdit/TexCache.h +++ b/Utils/MapEdit/TexCache.h @@ -22,9 +22,7 @@ struct sRGBData struct sTex { -// char Filename[_MAX_PATH]; - GString FullFilename; - GString Path; + GString Filename; GString Name; GLuint TexID; int Flags; @@ -32,8 +30,7 @@ struct sTex float dW,dH; bool Loaded; -// bool operator==(sTex const &v1) {return (!strcmp(Filename,v1.Filename) && Flags==v1.Flags);} - bool operator==(sTex const &v1) {return (FullFilename==v1.FullFilename && Flags==v1.Flags);} + bool operator==(sTex const &v1) {return (Filename==v1.Filename && Flags==v1.Flags);} }; const RGBQUAD BlankRGB={255,0,255}; @@ -46,9 +43,8 @@ class CTexCache public: int GetTexIdx(sTex &Tex) {return(TexList.Find(Tex));} -// int GetTexIdx(const char *Filename,int Flags); - int ProcessTexture(const char *Path,const char *Name,int Flags,sRGBData *RGBData=0); + int ProcessTexture(const char *Name,int Flags,sRGBData *RGBData=0); void Purge(); bool LoadBMP(const char *Filename,sRGBData &RGBData); @@ -60,6 +56,7 @@ public: void LoadTex(sTex &ThisTex,sRGBData *TexData); sTex &GetTex(int Id) {return(TexList[Id]);} + GString &GetTexFilename(int Id) {return(TexList[Id].Filename);} GString &GetTexName(int Id) {return(TexList[Id].Name);} GLuint GetTexGLId(int Id) {return(TexList[Id].TexID);} diff --git a/Utils/MapEdit/TileSet.cpp b/Utils/MapEdit/TileSet.cpp index 4c83a78f4..be9d151d6 100644 --- a/Utils/MapEdit/TileSet.cpp +++ b/Utils/MapEdit/TileSet.cpp @@ -43,7 +43,7 @@ GString Filename; // Get application path #ifdef _DEBUG - ExePath="C:/Spongebob/tools/mapedit/"; + ExePath="C:\\Spongebob\\tools\\mapedit\\"; #else char ExeFilename[2048]; GetModuleFileName(GetModuleHandle(NULL),ExeFilename,2048); @@ -84,29 +84,14 @@ void CTileBank::SetCollision(bool f) } } -/*****************************************************************************/ -char *FixName(const char *In) -{ -char *Ptr=(char*)In; - while (*Ptr) - { - if (Ptr[0]=='T' && - Ptr[1]=='I' && - Ptr[2]=='L' && - Ptr[3]=='E') return(Ptr); - Ptr++; - } - - return(Ptr); -} +/*****************************************************************************/ void CTileBank::Load(CFile *File,int Version) { int ListSize; GFName RootPath=File->GetFilePath(); GString FilePath; - FilePath=RootPath.Drive(); FilePath+=RootPath.Dir(); FilePath.Append('\\'); @@ -124,22 +109,17 @@ GString FilePath; // New Style rel storage for (int i=0;iRead(&c,1); - RelName.Append(c); + FullName.Append(c); } -// RelName.Upper(); - - { // Dodgy arse artist fix -// RelName=FixName(RelName); - } - -// RootPath.makeabsolute(FilePath,RelName,FullName); - AddTileSet(RelName); + FullName.Upper(); + CheckFilename(FullName); + AddTileSet(FullName); } } @@ -148,12 +128,14 @@ void CTileBank::Save(CFile *File) { int ListSize=TileSet.size(); int NewListSize=ListSize-1; -GString FilePath; GFName RootPath=File->GetFilePath(); +GString SavePath; - FilePath=RootPath.Drive(); - FilePath+=RootPath.Dir(); - FilePath.Append('\\'); + SavePath=RootPath.Drive(); + SavePath+=RootPath.Dir(); + SavePath.Append('\\'); + + SavePath.Upper(); File->Write(&NewListSize,sizeof(int)); File->Write(&CurrentSet,sizeof(int)); @@ -166,8 +148,7 @@ GFName RootPath=File->GetFilePath(); CTileSet &ThisSet=TileSet[i]; char Filename[256+64]; - - RootPath.makerelative(FilePath,ThisSet.GetFilename(),Filename); + RootPath.makerelative(SavePath,ThisSet.GetFilename(),Filename); File->Write(Filename,strlen(Filename)+1); } @@ -397,15 +378,6 @@ BOOL CTileBank::IsTileValid(int Set,int Tile) return(TileSet[Set].IsTileValid(Tile)); } -/*****************************************************************************/ -/* -BOOL CTileBank::IsTileValidGB(int Set,int Tile) -{ - if (Set<0 || Tile<0) return(FALSE); - - return(TileSet[Set].IsTileValidGB(Tile)); -} -*/ /*****************************************************************************/ /*****************************************************************************/ /*** TileSet *****************************************************************/ @@ -413,10 +385,10 @@ BOOL CTileBank::IsTileValidGB(int Set,int Tile) /*****************************************************************************/ CTileSet::CTileSet(const char *_Filename,int Idx) { - if (_Filename) - { - Filename=_Filename; - } +GFName FName=_Filename; + + Filename=_Filename; + Name=FName.File(); Loaded=FALSE; SetNumber=Idx; @@ -434,7 +406,8 @@ CTileSet::~CTileSet() /*****************************************************************************/ void CTileSet::Load(CCore *Core) { -GString Ext=Filename.Ext(); +GFName FName=Filename; +GString Ext=FName.Ext(); Ext.Upper(); if (Ext=="GIN") @@ -455,28 +428,7 @@ void CTileSet::Load2d(CCore *Core) { CTexCache &TexCache=Core->GetTexCache(); GString ColTest; -GString Path,Name; - - ColTest=Filename.File(); - ColTest.Append('.'); - ColTest+=Filename.Ext(); - - if (ColTest==ColFName) - {// Collision thing (sigh!) - Path=Filename.Drive(); - Path+=Filename.Dir(); - Path.Append('\\'); - Name=Filename.File(); - Name.Append('.'); - Name+=Filename.Ext(); - } - else - { - Path=GetWorkingPath(); - Name=Filename.FullName(); - } - -int TexID=TexCache.ProcessTexture(Path,Name,0); +int TexID=TexCache.ProcessTexture(Filename,0); sTex &ThisTex=TexCache.GetTex(TexID); int Width=ThisTex.TexWidth/16; @@ -500,11 +452,8 @@ int Height=ThisTex.TexHeight/16; void CTileSet::Load3d(CCore *Core) { CScene Scene; -GString FullFilename; - MakeFullFilename(Filename.FullName(),FullFilename); - - Scene.Load(FullFilename); + Scene.Load(Filename); CNode &ThisNode=Scene.GetSceneNode(0); int ChildCount=ThisNode.GetPruneChildCount(); @@ -551,16 +500,6 @@ BOOL CTileSet::IsTileValid(int No) {return(Tile[No].IsValid());} } -/*****************************************************************************/ -/* -BOOL CTileSet::IsTileValidGB(int No) -{ -// ASSERT(NoTile.size()) return(FALSE); - - return(Tile[No].IsValidGB()); -} -*/ /*****************************************************************************/ void CTileSet::Render(CCore *Core,Vector3 &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d) { diff --git a/Utils/MapEdit/TileSet.h b/Utils/MapEdit/TileSet.h index 38a6297a4..6dbbbacee 100644 --- a/Utils/MapEdit/TileSet.h +++ b/Utils/MapEdit/TileSet.h @@ -115,8 +115,8 @@ public: // const char *GetExt() {return(Filename.Ext());} // const char *GetFilename() {return(Filename.FullName());} - const char *GetFilename() {return(Filename.FullName());} - const char *GetName() {return(Filename.File());} + const char *GetFilename() {return(Filename);} + const char *GetName() {return(Name);} CTile &GetTile(int No) {return(Tile[No]);} void Purge(); @@ -134,7 +134,7 @@ private: BOOL Create16x16Tile(sRGBData &Src,u8 *Dst,int XOfs,int YOfs); CPoint GetTilePos(int ID); - GFName Filename; + GString Filename,Name; int SetNumber; CList Tile; diff --git a/Utils/MapEdit/utils.cpp b/Utils/MapEdit/utils.cpp index 088f4a8a1..636a47716 100644 --- a/Utils/MapEdit/utils.cpp +++ b/Utils/MapEdit/utils.cpp @@ -288,3 +288,35 @@ GString Path; return(Path); } + +/*****************************************************************************/ +void CheckFilename(GString &Filename) +{ +FILE *File; +CString mexstr; +GFName FName=Filename; +GString Name; + +// Check File exists + File=fopen(Filename,"r"); + if (File) + { + fclose(File); + return; + } + + Name=FName.File(); + Name.Append('.'); + Name+=FName.Ext(); + + mexstr.Format("%s Not Found.\n\nPlease Locate\n", Filename); + AfxMessageBox(mexstr,MB_OK | MB_ICONEXCLAMATION); + +char BASED_CODE Filter[]= "All Files (*.*)|*.*||"; +CFileDialog Dlg(true,NULL,Name,OFN_HIDEREADONLY | OFN_PATHMUSTEXIST,Filter); + + if (Dlg.DoModal()!=IDOK) return; + + Filename=Dlg.GetPathName(); + +} diff --git a/Utils/MapEdit/utils.h b/Utils/MapEdit/utils.h index 64a02f801..10ed97e5e 100644 --- a/Utils/MapEdit/utils.h +++ b/Utils/MapEdit/utils.h @@ -37,7 +37,6 @@ void DbgMsg(const char * pszFmt,...); void BuildGLBox(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax); void BuildGLBoxNoNormals(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax); void BuildGLQuad(float XMin,float XMax,float YMin,float YMax,float Z); -int LoadGLTexture(char *FileName, GLuint &Text,int &Width,int &Height); CPoint IDToPoint(int ID,int Width); int PointToID(CPoint &Pnt,int Width); @@ -52,5 +51,6 @@ void SetFileExt(char *InName,char *OutName,char *Ext); void MakeFullFilename(const char *RelName,GString &Out); void MakePathRel2App(const char* In,char *Out); GString GetWorkingPath(); +void CheckFilename(GString &Filename); #endif \ No newline at end of file diff --git a/tools/MapEdit/MapEdit.exe b/tools/MapEdit/MapEdit.exe index 06eb67ae8824498b0c98a0f4622128f2277149c8..955776a53ac4f8542888d18ea1cd8798a375a5c2 100644 GIT binary patch delta 33401 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 delta 33433 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