diff --git a/Utils/Libs/DaveLib/DaveLib.cpp b/Utils/Libs/DaveLib/DaveLib.cpp index 69ef00fca..41a7350b4 100644 --- a/Utils/Libs/DaveLib/DaveLib.cpp +++ b/Utils/Libs/DaveLib/DaveLib.cpp @@ -215,3 +215,25 @@ sTgaHdr FileHdr; } //*************************************************** +Vector3 CalcNormal(Vector3 const &v0, Vector3 const &v1, Vector3 const &v2 ) +{ + Vector3 dv1, dv2; + Vector3 out; + + dv1.x = v1.x - v0.x; + dv1.y = v1.y - v0.y; + dv1.z = v1.z - v0.z; + + dv2.x = v2.x - v0.x; + dv2.y = v2.y - v0.y; + dv2.z = v2.z - v0.z; + + out.x = (dv1.z * dv2.y) - (dv1.y * dv2.z); + out.y = (dv1.x * dv2.z) - (dv1.z * dv2.x); + out.z = (dv1.y * dv2.x) - (dv1.x * dv2.y); + + out.Normalise(); + + return out; +} + diff --git a/Utils/Libs/DaveLib/DaveLib.h b/Utils/Libs/DaveLib/DaveLib.h index b05f290eb..06af4d080 100644 --- a/Utils/Libs/DaveLib/DaveLib.h +++ b/Utils/Libs/DaveLib/DaveLib.h @@ -72,6 +72,6 @@ void PadFile(FILE *File); char *FindFile(const char *Name); void SaveTGA(char *Filename,int W,int H,u8 *Data,bool IsBGR=false); - +Vector3 CalcNormal(Vector3 const &v0, Vector3 const &v1, Vector3 const &v2 ); //*************************************************************************** #endif \ No newline at end of file diff --git a/Utils/Libs/DaveLib/IniClass.h b/Utils/Libs/DaveLib/IniClass.h index ca8d48558..c37b3b423 100644 --- a/Utils/Libs/DaveLib/IniClass.h +++ b/Utils/Libs/DaveLib/IniClass.h @@ -65,7 +65,7 @@ FILE *File; int Size; char *Script; File=fopen(Filename,"rt"); - if (!File) return; + if (!File) {printf("%s Not Found\n",Filename); return;} fseek(File,0,SEEK_END); Size=ftell(File); fseek(File,0,SEEK_SET); diff --git a/Utils/Libs/DaveLib/facestore.h b/Utils/Libs/DaveLib/facestore.h index 9d57fe3b5..e25609258 100644 --- a/Utils/Libs/DaveLib/facestore.h +++ b/Utils/Libs/DaveLib/facestore.h @@ -138,6 +138,9 @@ public: CFace& operator []( int nIndex ) {return(FaceList[nIndex]);} + vector GetOutTriList() {return(OutTriList);} + vector GetOutQuadList() {return(OutQuadList);} + private: void Quad(); void SetupUV(CFace const &In, sTri &Out); diff --git a/Utils/MkLevel/Layers/MkLevelLayer3d.cpp b/Utils/MkLevel/Layers/MkLevelLayer3d.cpp index da7370c12..4db2fc08d 100644 --- a/Utils/MkLevel/Layers/MkLevelLayer3d.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayer3d.cpp @@ -41,9 +41,9 @@ int Height=InMap.GetHeight(); /*** Process *****************************************************************/ /*****************************************************************************/ /*****************************************************************************/ +/* void CMkLevelLayer3d::Process(CMkLevel *Core) { -/* int Width=InMap.GetWidth(); int Height=InMap.GetHeight(); int i,ListSize; @@ -149,18 +149,19 @@ int i,ListSize; } } } -*/ } - +*/ /*****************************************************************************/ /*****************************************************************************/ /** Write ********************************************************************/ /*****************************************************************************/ /*****************************************************************************/ +/* int CMkLevelLayer3d::Write(FILE *File,const char *LayerName,const char *MapName) { int ThisPos=ftell(File); -/* + CMkLevelLayerTile::Write(File,LayerName,MapName); + int Width=OutMap.GetWidth(); int Height=OutMap.GetHeight(); sLayerHdr LayerHdr; @@ -203,11 +204,12 @@ int RetPos=ftell(File); fseek(File,Pos3d,SEEK_SET); fwrite(&Hdr3d,sizeof(sLayer3d),1,File); fseek(File,RetPos,SEEK_SET); -*/ + return(ThisPos); } - +*/ /*****************************************************************************/ +#if 0 void CMkLevelLayer3d::ProcessVtxList(vector const &InList,vector &OutList) { int i,ListSize=InList.size(); @@ -263,5 +265,5 @@ sVtx Ofs; printf("MinXY %i,%i %i,%i\n",XMin,YMin,XMax,YMax); */ } - +#endif /*****************************************************************************/ diff --git a/Utils/MkLevel/Layers/MkLevelLayer3d.h b/Utils/MkLevel/Layers/MkLevelLayer3d.h index 88fc7b028..51bda52db 100644 --- a/Utils/MkLevel/Layers/MkLevelLayer3d.h +++ b/Utils/MkLevel/Layers/MkLevelLayer3d.h @@ -15,13 +15,10 @@ public: CMkLevelLayer3d(sExpLayerHdr *LayerHdr) : CMkLevelLayerTile(LayerHdr){}; void PreProcess(CMkLevel *Core); - void Process(CMkLevel *Core); - int Write(FILE *File,const char *LayerName,const char *MapName); +// void Process(CMkLevel *Core); +// int Write(FILE *File,const char *LayerName,const char *MapName); protected: - void ProcessVtxList(vector const &In,vector &Out); - -// CFaceStore TriList; - +// void ProcessVtxList(vector const &In,vector &Out); }; /*****************************************************************************/ diff --git a/Utils/MkLevel/Layers/MkLevelLayerActor.cpp b/Utils/MkLevel/Layers/MkLevelLayerActor.cpp index a82da5999..ef1a0cf62 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerActor.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerActor.cpp @@ -44,10 +44,10 @@ GString Player=Core->GetConfigStr("MISC","PlayerActor"); } if (NotFound) { - GObject::Error(ERR_FATAL,"No Start Point defined"); + GObject::Error(ERR_WARNING,"No Start Point defined\n"); } - ProcessList(); + ProcessList(Core); printf("%i actors\n",ThingList.size()); } diff --git a/Utils/MkLevel/Layers/MkLevelLayerFX.cpp b/Utils/MkLevel/Layers/MkLevelLayerFX.cpp index 2726eae42..1b192cfed 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerFX.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerFX.cpp @@ -26,7 +26,7 @@ void CMkLevelLayerFX::PreProcess(CMkLevel *Core) /*****************************************************************************/ void CMkLevelLayerFX::Process(CMkLevel *Core) { - ProcessList(); + ProcessList(Core); printf("%i FX\n",ThingList.size()); } diff --git a/Utils/MkLevel/Layers/MkLevelLayerItem.cpp b/Utils/MkLevel/Layers/MkLevelLayerItem.cpp index 4b705482e..c0f0c67fb 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerItem.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerItem.cpp @@ -25,7 +25,7 @@ void CMkLevelLayerItem::PreProcess(CMkLevel *Core) /*****************************************************************************/ void CMkLevelLayerItem::Process(CMkLevel *Core) { - ProcessList(); + ProcessList(Core); } /*****************************************************************************/ diff --git a/Utils/MkLevel/Layers/MkLevelLayerPlatform.cpp b/Utils/MkLevel/Layers/MkLevelLayerPlatform.cpp index e00794012..363dad0cc 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerPlatform.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerPlatform.cpp @@ -25,7 +25,7 @@ void CMkLevelLayerPlatform::PreProcess(CMkLevel *Core) /*****************************************************************************/ void CMkLevelLayerPlatform::Process(CMkLevel *Core) { - ProcessList(); + ProcessList(Core); printf("%i Platforms\n",ThingList.size()); } diff --git a/Utils/MkLevel/Layers/MkLevelLayerThing.cpp b/Utils/MkLevel/Layers/MkLevelLayerThing.cpp index f6bcd5388..9b39f3df1 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerThing.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerThing.cpp @@ -71,17 +71,17 @@ int i,ListSize=ThingList.size(); } /*****************************************************************************/ -void CMkLevelLayerThing::ProcessList() +void CMkLevelLayerThing::ProcessList(CMkLevel *Core) { -/* int i,ListSize=ThingList.size(); +CIni &Config=Core->GetConfig(); for (i=0; i ThingList; diff --git a/Utils/MkLevel/Layers/MkLevelLayerTile.cpp b/Utils/MkLevel/Layers/MkLevelLayerTile.cpp index 7028e207e..9f8e8b973 100644 --- a/Utils/MkLevel/Layers/MkLevelLayerTile.cpp +++ b/Utils/MkLevel/Layers/MkLevelLayerTile.cpp @@ -93,15 +93,18 @@ int Height=OutMap.GetHeight(); Hdr.Height=Height; fwrite(&Hdr,sizeof(sLayerHdr),1,File); + printf("%s (%i,%i)= %i\n",LayerName,Width,Height,Width*Height*sizeof(sTileMapElem)); + for (int Y=0; Y const &Files = MyFiles.GetFileInfoVector(); if (Files.size()==0) Usage("No Levels specified\n"); if (Files.size()>1) Usage("Too many Levels specified\n"); + Level.SetAppDir(argv[0]); Level.Init(Files[0],OutStr,TPBase,TPW,TPH); Level.Load(); Level.Process(); diff --git a/Utils/MkLevel/MkLevel.cpp b/Utils/MkLevel/MkLevel.cpp index 4eae5aa67..e0c237468 100644 --- a/Utils/MkLevel/MkLevel.cpp +++ b/Utils/MkLevel/MkLevel.cpp @@ -25,14 +25,19 @@ #include "Layers\MkLevelLayerTrigger.h" //*************************************************************************** -GString ConfigFilename="MkLevel"; -sExpLayerTile BlankTile={-1,-1}; +const GString ConfigFilename="MkLevel.ini"; +sExpLayerTile BlankTile2d={-1,-1}; +sExpLayerTile BlankTile3d={0,0}; //*************************************************************************** CMkLevel::CMkLevel() { - memset(&LvlHdr,0,sizeof(sLvlHdr)); - Tile2dList.Add(BlankTile); + memset(&LevelHdr,0,sizeof(sLevelHdr)); + Tile2dList.Add(BlankTile2d); + Tile3dList.Add(BlankTile3d); + OutTile3dList.resize(1); + OutTile3dList[0].TriCount=0; + OutTile3dList[0].QuadCount=0; } //*************************************************************************** @@ -41,24 +46,37 @@ CMkLevel::~CMkLevel() } //*************************************************************************** -void CMkLevel::Init(const char *Filename,const char *OutDir,int TPBase,int TPW,int TPH) +void CMkLevel::SetAppDir(const char *AppPath) +{ +#ifdef _DEBUG + AppDir="\\spongebob\\tools\\data\\bin\\"; +#else +GFName Path=AppPath; + + Path.File(""); + Path.Ext(""); + AppDir=Path.FullName(); +#endif +} + +//*************************************************************************** +void CMkLevel::Init(const char *Filename,const char *OutFilename,int TPBase,int TPW,int TPH) { // Setup filenames and paths -GFName Path=Filename; +GFName Path; InFilename=Filename; + Path=Filename; LevelName=Path.File(); Path.File(""); Path.Ext(""); InPath=Path.FullName(); - OutPath=OutDir; OutPath.Append('\\'); - OutName=OutPath+LevelName; + Path=OutFilename; + Path.Ext(""); + OutName=Path.FullName(); // Load ini file -#ifdef _DEBUG - ConfigFilename="\\spongebob\\tools\\data\\bin\\mklevel.ini"; -#endif - Config.LoadAndImport(ConfigFilename); + Config.LoadAndImport(GString(AppDir+ConfigFilename)); // Setup Texgrab if (TPBase==-1 || TPW==-1 || TPH==-1) @@ -77,23 +95,22 @@ GFName Path=Filename; TexGrab.ShrinkToFit(false); // Setup TriList - OutTriList.SetTexGrab(TexGrab); - + OutFaceList.SetTexGrab(TexGrab); // Set up other stuph FlatFace[0].vtx[0].x=+0.5f; FlatFace[0].vtx[0].y=+1.0f; FlatFace[0].vtx[0].z=-4.0f; FlatFace[0].vtx[1].x=-0.5f; FlatFace[0].vtx[1].y= 0.0f; FlatFace[0].vtx[1].z=-4.0f; FlatFace[0].vtx[2].x=+0.5f; FlatFace[0].vtx[2].y= 0.0f; FlatFace[0].vtx[2].z=-4.0f; - FlatFace[0].uvs[0].u=1; FlatFace[0].uvs[0].v=1; - FlatFace[0].uvs[1].u=0; FlatFace[0].uvs[1].v=0; - FlatFace[0].uvs[2].u=1; FlatFace[0].uvs[2].v=0; + FlatFace[0].uv[0][0]=1; FlatFace[0].uv[0][1]=1; + FlatFace[0].uv[1][0]=0; FlatFace[0].uv[1][1]=0; + FlatFace[0].uv[2][0]=1; FlatFace[0].uv[2][1]=0; FlatFace[1].vtx[0].x=-0.5f; FlatFace[1].vtx[0].y= 0.0f; FlatFace[1].vtx[0].z=-4.0f; FlatFace[1].vtx[1].x=+0.5f; FlatFace[1].vtx[1].y=+1.0f; FlatFace[1].vtx[1].z=-4.0f; FlatFace[1].vtx[2].x=-0.5f; FlatFace[1].vtx[2].y=+1.0f; FlatFace[1].vtx[2].z=-4.0f; - FlatFace[1].uvs[0].u=0; FlatFace[1].uvs[0].v=0; - FlatFace[1].uvs[1].u=1; FlatFace[1].uvs[1].v=1; - FlatFace[1].uvs[2].u=0; FlatFace[1].uvs[2].v=1; + FlatFace[1].uv[0][0]=0; FlatFace[1].uv[0][1]=0; + FlatFace[1].uv[1][0]=1; FlatFace[1].uv[1][1]=1; + FlatFace[1].uv[2][0]=0; FlatFace[1].uv[2][1]=1; } @@ -134,8 +151,9 @@ GString FilePath; for (int i=0; iTriOfs]; GString Ext=GFName(InSetNameList[i]).Ext(); if (Ext=="BMP") { - BmpList[i].LoadBMP(InSetNameList[i]); + BmpList[i].LoadBMP(InSetNameList[i]); } } @@ -257,7 +275,7 @@ void CMkLevel::Process() ProcessTileBanks(); printf("Process Layers\n"); ProcessLayers(); - OutTriList.Process(); + OutFaceList.Process(); } //*************************************************************************** @@ -328,9 +346,9 @@ vector &TexInfo=TexGrab.GetTexInfo(); void CMkLevel::PreProcessTileBank3d() { int i,ListSize=Tile3dList.size(); - - for (i=0; i SortList; CList ZPosList; +sTile3d ThisTile; +int TileID=OutTile3dList.size(); + + ThisTile.TriStart=OutFaceList.GetFaceCount(); + ThisTile.QuadCount=0; + ThisTile.QuadStart=0; if (SrcTile.TriCount) { + ThisTile.TriCount=SrcTile.TriCount; for (i=0; iThisTri.vtx[1].z) ThisZPos=ThisTri.vtx[1].z; @@ -413,69 +437,86 @@ CList ZPosList; { if (ZPosList[ListPos] %i\n",MinOT,MaxOT); // VtxList - TileBankHdr.VtxList=(sVtx*)ftell(File); - OutTriList.WriteVtxList(File); - -// rewrite header - fseek(File,0,SEEK_SET); - fwrite(&TileBankHdr,1,sizeof(sTileBankHdr),File); - - fclose(File); + LevelHdr.VtxList=(sVtx*)WriteVtxList(); } //*************************************************************************** int CMkLevel::WriteTriList() { -vector &TriList=OutTriList.GetOutTriList(); -vector const &VtxList=OutTriList.GetVtxList(); +vector &TriList=OutFaceList.GetOutTriList(); +vector const &VtxList=OutFaceList.GetVtxList(); int ThisPos=ftell(File); int i,ListSize=TriList.size(); -int MaxOT=0; + for (i=0;iOtOfs) MinOT=OtOfs; if (MaxOT63) OtOfs=63; + if (OtOfs>15) OtOfs=15; + // Write It fwrite(&T,1,sizeof(sTri),File); } - printf("MAXOT = %i\n",MaxOT); + printf("Tri %i\n",ListSize); return(ThisPos); } +//*************************************************************************** +int CMkLevel::WriteQuadList() +{ +vector &QuadList=OutFaceList.GetOutQuadList(); +vector const &VtxList=OutFaceList.GetVtxList(); +int ThisPos=ftell(File); +int i,ListSize=QuadList.size(); + + for (i=0;iOtOfs) MinOT=OtOfs; + if (MaxOT63) OtOfs=63; +// Write It + fwrite(&Q,1,sizeof(sQuad),File); + } + printf("Quad %i\n",ListSize,MaxOT); + return(ThisPos); + +} + +//*************************************************************************** +int CMkLevel::WriteVtxList() +{ +vector const &VtxList=OutFaceList.GetVtxList(); +int i,ListSize=VtxList.size(); +int Pos=ftell(File); +sVtx Ofs; + + Ofs.vx=-0; + Ofs.vy=-0; + Ofs.vz=-4*Scale; + + for (i=0; iWrite(File,LayerName,LevelName); +// printf("%s %i\n",LayerName,Ofs); PadFile(File); return(Ofs); } diff --git a/Utils/MkLevel/MkLevel.h b/Utils/MkLevel/MkLevel.h index 23848feb4..54943193d 100644 --- a/Utils/MkLevel/MkLevel.h +++ b/Utils/MkLevel/MkLevel.h @@ -44,7 +44,8 @@ public: CMkLevel(); ~CMkLevel(); - void Init(const char *InFilename,const char *OutPath,int TPBase,int TPW,int TPH); + void SetAppDir(const char *Path); + void Init(const char *InFilename,const char *OutFilename,int TPBase,int TPW,int TPH); void Load(); @@ -62,9 +63,10 @@ public: int BuildTileTex(sMkLevelTex &InTex); char *GetConfigStr(const char *Grp,const char *Key) {return(Config.GetStr(Grp,Key));} + CIni &GetConfig() {return(Config);} CTexGrab &GetTexGrab() {return(TexGrab);} - void SetStart(int X,int Y) {LvlHdr.PlayerStartX=X; LvlHdr.PlayerStartY=Y;} + void SetStart(int X,int Y) {LevelHdr.PlayerStartX=X; LevelHdr.PlayerStartY=Y;} protected: CMkLevelLayer *FindLayer(int Type,int SubType); void LoadStrList(CList &List,char *TexPtr,int Count); @@ -88,13 +90,15 @@ protected: int WriteThings(int Type,const char *LayerName); int WriteTriList(); int WriteQuadList(); + int WriteVtxList(); void WriteTileBank(); void BuildTiles(); FILE *File; GString InFilename,InPath,LevelName; - GString OutPath,OutName; + GString OutName; + GString AppDir; int TileW,TileH; CIni Config; @@ -106,7 +110,7 @@ protected: CList UsedSetNameList; CList UsedTexNameList; - CFaceStore OutTriList; + CFaceStore OutFaceList; CList OutTile2dList; CList OutTile3dList; @@ -118,9 +122,9 @@ protected: vector LayerList; - sLvlHdr LvlHdr; - sTileBankHdr TileBankHdr; - CFace FlatFace[2]; + sLevelHdr LevelHdr; +// sTileBankHdr TileBankHdr; + sExpTri FlatFace[2]; }; diff --git a/source/gfx/actor.cpp b/source/gfx/actor.cpp index 108fedd87..03578f062 100644 --- a/source/gfx/actor.cpp +++ b/source/gfx/actor.cpp @@ -231,14 +231,15 @@ int Clut=getClut(R.x,R.y); } /*****************************************************************************/ -void CActorPool::AddActor(FileEquate Filename) +int CActorPool::AddActor(FileEquate Filename) { sActorPool *Actor; int Idx=FindActorInPool(Filename); - if (Idx!=-1) return; -// Load it - LoadActor(Filename); + if (Idx!=-1) return(Idx); +// Doesnt Exist, soooooo, Load it + Idx=LoadActor(Filename); + return(Idx); } /*****************************************************************************/ @@ -249,7 +250,10 @@ int Idx; // Find Actor in Pool Idx=FindActorInPool(Filename); - if (Idx==-1) ASSERT(!"Actor Not Loaded"); + if (Idx==-1) + { + AddActor(Filename); + } sActorPool &ThisActor=ActorPool[Idx]; Actor=new ("CActorGfx") CActorGfx; diff --git a/source/gfx/actor.h b/source/gfx/actor.h index 888a223b6..96936c36d 100644 --- a/source/gfx/actor.h +++ b/source/gfx/actor.h @@ -75,7 +75,7 @@ public: static void Init(); -static void AddActor(FileEquate Filename); +static int AddActor(FileEquate Filename); static CActorGfx *GetActor(FileEquate Filename); static void DumpActors(); diff --git a/source/level/layerback.cpp b/source/level/layerback.cpp index 9ea552d0e..c62c7fdb1 100644 --- a/source/level/layerback.cpp +++ b/source/level/layerback.cpp @@ -37,7 +37,7 @@ sBackRGBTable CLayerBack::BackRGBTable[]= /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -CLayerBack::CLayerBack(sLvlHdr *LvlHdr,sLayerHdr *Hdr) : CLayerTile(LvlHdr,Hdr) +CLayerBack::CLayerBack(sLevelHdr *LevelHdr,sLayerHdr *Hdr) : CLayerTile(LevelHdr,Hdr) { Data=(sLayerShadeHdr*)MakePtr(Hdr,sizeof(sLayerHdr)); diff --git a/source/level/layerback.h b/source/level/layerback.h index 6570171c0..e70655374 100644 --- a/source/level/layerback.h +++ b/source/level/layerback.h @@ -50,7 +50,7 @@ public: COLOR=1<<3, }; - CLayerBack(sLvlHdr *LvlHdr,sLayerHdr *Hdr); + CLayerBack(sLevelHdr *LevelHdr,sLayerHdr *Hdr); ~CLayerBack(); void init(DVECTOR &MapPos,int Shift); diff --git a/source/level/layertile.cpp b/source/level/layertile.cpp index a57f2da49..dbda39ad4 100644 --- a/source/level/layertile.cpp +++ b/source/level/layertile.cpp @@ -19,14 +19,14 @@ const u32 YInc=16<<16; /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -CLayerTile::CLayerTile(sLvlHdr *LvlHdr,sLayerHdr *Hdr) +CLayerTile::CLayerTile(sLevelHdr *LevelHdr,sLayerHdr *Hdr) { LayerHdr=Hdr; MapWidth=LayerHdr->Width; MapHeight=LayerHdr->Height; printf("%i %i\n",MapWidth,MapHeight); - TileBank2d=LvlHdr->TileBank2d; + TileBank2d=LevelHdr->TileBank2d; Map=(sTileMapElem*)MakePtr(Hdr,sizeof(sLayerHdr)); } diff --git a/source/level/layertile.h b/source/level/layertile.h index 903e55a63..5cea798c4 100644 --- a/source/level/layertile.h +++ b/source/level/layertile.h @@ -34,7 +34,7 @@ public: SCREEN_TILE_SIZE=SCREEN_TILE_WIDTH*SCREEN_TILE_HEIGHT }; - CLayerTile(sLvlHdr *LvlHdr,sLayerHdr *Hdr); + CLayerTile(sLevelHdr *LevelHdr,sLayerHdr *Hdr); virtual ~CLayerTile(); virtual void init(DVECTOR &MapPos,int Shift); diff --git a/source/level/layertile3d.cpp b/source/level/layertile3d.cpp index f533686c2..227d61626 100644 --- a/source/level/layertile3d.cpp +++ b/source/level/layertile3d.cpp @@ -23,12 +23,12 @@ static FontBank *Font; /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -CLayerTile3d::CLayerTile3d(sLvlHdr *LvlHdr,sLayerHdr *Hdr) : CLayerTile(LvlHdr,Hdr) +CLayerTile3d::CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr) : CLayerTile(LevelHdr,Hdr) { - TileBank3d=LvlHdr->TileBank3d; - TriList=LvlHdr->TriList; - QuadList=LvlHdr->QuadList; - VtxList=LvlHdr->VtxList; + TileBank3d=LevelHdr->TileBank3d; + TriList=LevelHdr->TriList; + QuadList=LevelHdr->QuadList; + VtxList=LevelHdr->VtxList; #if defined(_SHOW_POLYZ_) Font=new ("PrimFont") FontBank; diff --git a/source/level/layertile3d.h b/source/level/layertile3d.h index f8a27665d..f3d0a2bdb 100644 --- a/source/level/layertile3d.h +++ b/source/level/layertile3d.h @@ -11,7 +11,7 @@ class FontBank; class CLayerTile3d : public CLayerTile { public: - CLayerTile3d(sLvlHdr *LvlHdr,sLayerHdr *Hdr); + CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr); ~CLayerTile3d(); enum diff --git a/source/level/level.cpp b/source/level/level.cpp index 4a2f13d2a..3941f32aa 100644 --- a/source/level/level.cpp +++ b/source/level/level.cpp @@ -135,18 +135,18 @@ sLvlTab *lvlTab=&LvlTable[LevelNo]; DisplayLoadingScreen(lvlTab); - LevelHdr=(sLvlHdr*)CFileIO::loadFile(lvlTab->LevelFilename,"Level"); + LevelHdr=(sLevelHdr*)CFileIO::loadFile(lvlTab->LevelFilename,"Level"); LevelHdr->TileBank2d=(sTile2d*) MakePtr(LevelHdr,(int)LevelHdr->TileBank2d); LevelHdr->TileBank3d=(sTile3d*) MakePtr(LevelHdr,(int)LevelHdr->TileBank3d); LevelHdr->TriList=(sTri*) MakePtr(LevelHdr,(int)LevelHdr->TriList); LevelHdr->QuadList=(sQuad*) MakePtr(LevelHdr,(int)LevelHdr->QuadList); LevelHdr->VtxList=(sVtx*) MakePtr(LevelHdr,(int)LevelHdr->VtxList); - LevelHdr->ActorList=0; - LevelHdr->FXList=0; - LevelHdr->ItemList=0; - LevelHdr->PlatformList=0; - LevelHdr->TriggerList=0; + printf("ActorList %i\n",(int)LevelHdr->ActorList); + printf("ItemList %i\n",(int)LevelHdr->ItemList); + printf("Platfrom List %i\n",(int)LevelHdr->PlatformList); + printf("TriggerList %i\n",(int)LevelHdr->TriggerList); + printf("FXList %i\n",(int)LevelHdr->FXList); m_levelTPage=TPLoadTex(lvlTab->TexFilename); @@ -244,7 +244,6 @@ void CLevel::initLayers() // Actors if (LevelHdr->ActorList) { - sThingHdr *Hdr=(sThingHdr*)MakePtr(LevelHdr,LevelHdr->ActorList); ActorCount=Hdr->Count; ActorList=(sThingActor**)MemAlloc(ActorCount*sizeof(sThingActor**),"Actor List"); @@ -255,7 +254,6 @@ void CLevel::initLayers() ThingPtr+=sizeof(sThingActor); ThingPtr+=ActorList[i]->PointCount*sizeof(u16)*2; } - if (Hdr->Count>8) Hdr->Count=0; } // Items if (LevelHdr->ItemList) @@ -263,7 +261,6 @@ void CLevel::initLayers() sThingHdr *Hdr=(sThingHdr*)MakePtr(LevelHdr,LevelHdr->ItemList); ItemCount=Hdr->Count; ItemList=(sThingItem*)MakePtr(Hdr,sizeof(sThingHdr)); - DVECTOR pos; for(int i=0;iPointCount*sizeof(u16)*2; } - if (Hdr->Count>8) Hdr->Count=0; } // Triggers diff --git a/source/level/level.h b/source/level/level.h index 76c1b37e8..ef2453820 100644 --- a/source/level/level.h +++ b/source/level/level.h @@ -46,7 +46,7 @@ private: void initLayers(); void DisplayLoadingScreen(sLvlTab *lvlTab); - sLvlHdr *LevelHdr; + sLevelHdr *LevelHdr; static DVECTOR MapPos; static DVECTOR s_playerSpawnPos; diff --git a/tools/Data/include/dstructs.h b/tools/Data/include/dstructs.h index 6680ef22a..4863c292f 100644 --- a/tools/Data/include/dstructs.h +++ b/tools/Data/include/dstructs.h @@ -183,7 +183,7 @@ struct sLayerShadeHdr //--------------------------------------------------------------------------- // Header -struct sLvlHdr +struct sLevelHdr { u32 BackLayer; u32 MidLayer;