From 8951f10167958ca78827a4e5b9fcca63928c1b6d Mon Sep 17 00:00:00 2001 From: Daveo Date: Tue, 12 Dec 2000 20:56:51 +0000 Subject: [PATCH] --- data/DataCache.scr | 7 ++ makefile.gaz | 8 +- makefile.gfx | 69 +++++------ source/level/layertile.cpp | 212 ++++++++++++++++++++++++++++++---- source/level/layertile.h | 29 +++-- source/level/level.cpp | 35 +++--- source/level/level.h | 2 + tools/Data/bin/MkLevel.exe | Bin 241664 -> 241664 bytes tools/Data/include/dstructs.h | 136 +++++++++++++--------- 9 files changed, 354 insertions(+), 144 deletions(-) diff --git a/data/DataCache.scr b/data/DataCache.scr index c32233619..d1b064c0f 100644 --- a/data/DataCache.scr +++ b/data/DataCache.scr @@ -18,6 +18,13 @@ sfx/ingame.vb sfx/ingame.vh backdrop/credits.gfx backdrop/sky.gfx + +levels/chapter01/level01/level01.lvl +levels/chapter01/level01/level01.tex + +levels/chapter01/level04/level04.lvl +levels/chapter01/level04/level04.tex + { SYSTEM_CACHE 4 } ui/uigfx.spr diff --git a/makefile.gaz b/makefile.gaz index 7334c39a3..67aa0a266 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -85,10 +85,10 @@ gui_src := gbutton \ gui level_src := level \ - layer \ - layertile + layertile \ + layerback \ + layeraction - locale_src := textdbase mem_src := memory @@ -226,7 +226,7 @@ LINK_FILES_TO_MAKE := $(CPE_FILE) $(MAP_FILE) $(SYM_FILE) $(LINK_FILES_TO_MAKE) : $(LINK_FILE) $(ALL_LIBS_FULL) $(CODE_OBJS_TO_MAKE) @$(LNK) $(LNK_FLAGS) @$(LINK_FILE),$(CPE_FILE),$(SYM_FILE),$(MAP_FILE) symmunge $(SYM_FILE) -ifeq ($(USER_NAME),daveo) +ifeq ($(USER_NAME),daveox) @cp stats.txt '$(SIZES_DIR)/$(shell $(DATE) '+%d-%m-%Y_%H-%M-%S')' endif diff --git a/makefile.gfx b/makefile.gfx index 035a875e1..77d676b3d 100644 --- a/makefile.gfx +++ b/makefile.gfx @@ -35,6 +35,37 @@ include $(BUILD_DIR)/outdirs.mak TEMP_FILE := $(TEMP_BUILD_DIR)/build.tmp +#---------------------------------------------------------------------------- +#--- Levels ----------------------------------------------------------------- +#---------------------------------------------------------------------------- +LEVELS_OPTS := -t:8,2,1 -s:256 +LEVELS_IN_DIR := $(GRAF_DIR)/levels +LEVELS_OUT_DIR := $(DATA_OUT)/levels + +LEVELS_CHAPTERS := CHAPTER01 CHAPTER02 CHAPTER03 CHAPTER04 CHAPTER05 +LEVELS_CHAPTER01 := LEVEL01 LEVEL04 +LEVELS_CHAPTER02 := +LEVELS_CHAPTER03 := +LEVELS_CHAPTER04 := +LEVELS_CHAPTER05 := + +LEVELS_OUT_DIRS := $(foreach CHAPTER,$(LEVELS_CHAPTERS),$(foreach LEVEL,$(LEVELS_$(CHAPTER)), $(LEVELS_OUT_DIR)/$(CHAPTER)/$(LEVEL) )) +LEVELS_IN := $(foreach CHAPTER,$(LEVELS_CHAPTERS),$(foreach LEVEL,$(LEVELS_$(CHAPTER)), $(CHAPTER)/$(LEVEL)/$(LEVEL) )) + +LEVELS_OUT := $(foreach LEVEL,$(LEVELS_IN),$(LEVELS_OUT_DIR)/$(LEVEL).lvl) + +levels : $(LEVELS_OUT) + +cleanlevels : + @$(RM) -f $(LEVELS_OUT) + @$(ECHO) Cleaned levels + +$(LEVELS_OUT_DIR)/%.lvl : $(LEVELS_IN_DIR)/%.pme + @$(ECHO) Building $< $@ + @$(MKLEVEL) $< -o:$(dir $(basename $@)) $(LEVELS_OPTS) + +GFX_DATA_OUT += $(LEVELS_OUT) + #---------------------------------------------------------------------------- # Text translations #---------------------------------------------------------------------------- @@ -113,41 +144,6 @@ $(UI_GFX_TEX_OUT) : $(UI_GFX_TEX_IN) GFX_DATA_OUT += $(UI_GFX_TEX_OUT) -#---------------------------------------------------------------------------- -#--- Levels ----------------------------------------------------------------- -#---------------------------------------------------------------------------- -LEVELS_OPTS := -t:8,1,1 -s:256 -LEVELS_IN_DIR := $(GRAF_DIR)/levels -LEVELS_OUT_DIR := $(DATA_OUT)/levels - -LEVELS_CHAPTERS := CHAPTER01 CHAPTER02 CHAPTER03 CHAPTER04 CHAPTER05 -LEVELS_CHAPTER01 := LEVEL01 -LEVELS_CHAPTER02 := -LEVELS_CHAPTER03 := -LEVELS_CHAPTER04 := -LEVELS_CHAPTER05 := - -LEVELS_OUT_DIRS := $(foreach CHAPTER,$(LEVELS_CHAPTERS),$(LEVELS_OUT_DIR)/$(CHAPTER)) - -LEVELS_ALL_LIST := $(foreach CHAPTER,$(LEVELS_CHAPTERS),$(foreach LEVEL,$(LEVELS_$(CHAPTER)), $(CHAPTER)/$(LEVEL)/$(LEVEL) )) - -LEVELS_LVL_IN := $(foreach LEVEL,$(LEVELS_ALL_LIST), $(LEVELS_IN_DIR)/$(LEVEL).pme ) -LEVELS_LVL_OUT := $(foreach LEVEL,$(LEVELS_ALL_LIST), $(LEVELS_OUT_DIR)/$(LEVEL).lvl ) - -LEVELS_ALL_IN := $(LEVELS_LVL_IN) -LEVELS_ALL_OUT := $(LEVELS_LVL_OUT) - -cleanlevels : - $(RM) -f $(LEVELS_ALL_OUT) - -levels: $(LEVELS_ALL_IN) - -$(LEVELS_ALL_OUT) : $(LEVELS_ALL_IN) - $(MKLEVEL) $(LEVELS_ALL_IN) -o:$(LEVELS_OUT_DIR)/chapter01 $(LEVELS_OPTS) - -GFX_DATA_OUT += $(LEVELS_ALL_OUT) - - #---------------------------------------------------------------------------- # Ingame graphic effects #---------------------------------------------------------------------------- @@ -310,8 +306,7 @@ cleanbiglump : @$(GLECHO) Cleaned BigLump $(BIGLUMP_OUT) : $(BIGLUMP_IN) -# @$(MAKEDATA) -b:$(OUT_DIR)/Data/ -s:$(GAME_DATA_DIR)/DataCache.Scr -o:$(BIGLUMP_OUT) -i:$(BIGLUMP_INC) - @$(MAKEDATA) -b:$(OUT_DIR)/Data/ -s:$(GAME_DATA_DIR)/DataCache.Scr -o:$(BIGLUMP_OUT) -i:$(BIGLUMP_INC)x + @$(MAKEDATA) -b:$(OUT_DIR)/Data/ -s:$(GAME_DATA_DIR)/DataCache.Scr -o:$(BIGLUMP_OUT) -i:$(BIGLUMP_INC) # @$(REDIR) $(TEMP_DIR)/BigLump.Scr $(BIGLUMP_IN) # $(MAKEDATA) -b:$(OUT_DIR)/Data/ -s:$(GAME_DATA_DIR)/DataCache.Scr -s:$(TEMP_DIR)/BigLump.Scr -o:$(BIGLUMP_OUT) -i:$(BIGLUMP_INC) diff --git a/source/level/layertile.cpp b/source/level/layertile.cpp index 366a6a157..b5494b985 100644 --- a/source/level/layertile.cpp +++ b/source/level/layertile.cpp @@ -10,6 +10,9 @@ #include "LayerTile.h" +const u32 XInc=16<<0; +const u32 YInc=16<<16; + /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ @@ -31,9 +34,17 @@ CLayerTile::~CLayerTile() if (TileMap2d[1].List) MemFree(TileMap2d[1].List); } +/*****************************************************************************/ +sTileMap2d &CLayerTile::GetTileMap() +{ + return(TileMap2d[FrameFlipFlag]); +} + +/*****************************************************************************/ +/*****************************************************************************/ /*****************************************************************************/ // NEED TO UPDATE FOR DIFF MAP POS's -void CLayerTile::InitTileMap2d(int InitX,int InitY,int Width,int Height) +void CLayerTile::init(VECTOR &MapPos,int Shift,int Width,int Height) { int Size=Width*Height; int MapWidth=GetWidth(); @@ -42,19 +53,23 @@ int MapHeight=GetWidth(); ASSERT(Width>=SCREEN_TILE_WIDTH); ASSERT(Height>=SCREEN_TILE_HEIGHT); + MapShift=Shift; TileMapWidth=Width; TileMapHeight=Height; for (int Buffer=0; Buffer<2; Buffer++) { - sTileMapElem *MapPtr=Map; sTileMap2dElem *List=(sTileMap2dElem*) MemAlloc(Size*sizeof(sTileMap2dElem),"2d TileMap"); TileMap2d[Buffer].List=List; + TileMap2d[Buffer].MapX=0; + TileMap2d[Buffer].MapY=0; for (int Y=0; YTile; @@ -67,6 +82,8 @@ int MapHeight=GetWidth(); ThisTile->clut=SrcTile->Clut; ThisTile->u0=SrcTile->uv0[0]; ThisTile->v0=SrcTile->uv0[1]; + if (!MapPtr->Tile) + ThisTile->clut=0; // Table int TableR=(X+1) % Width; @@ -74,7 +91,7 @@ int MapHeight=GetWidth(); ThisElem->Right=&List[TableR+(Y*Width)]; ThisElem->Down=&List[X+(TableD*Width)]; - MapPtr++; +// MapPtr++; } } @@ -83,27 +100,147 @@ int MapHeight=GetWidth(); } /*****************************************************************************/ -void CLayerTile::RenderTileMap2d(int MapX,int MapY) +void CLayerTile::shutdown() { -sTileMap2dElem *Table=TileMap2d[FrameFlipFlag].List; -int XShift,YShift; + +} + +/*****************************************************************************/ +int CLayerTile::CalcTableOfs(int X,int Y) +{ +/**/ X%=TileMapWidth; +/**/ Y%=TileMapHeight; + +/**/ return(X+(Y*TileMapWidth)); + +} + +/*****************************************************************************/ +int CLayerTile::CalcMapOfs(int X,int Y) +{ +int MapWidth=GetWidth(); +int MapHeight=GetHeight(); +/**/ X%=MapWidth; +/**/ Y%=MapHeight; + +/**/ return(X+(Y*MapWidth)); + +} + +/*****************************************************************************/ +/*****************************************************************************/ +/*****************************************************************************/ +void CLayerTile::think(VECTOR &MapPos) +{ +// Update rows and Columns :o) +sTileMap2d &ThisTable=TileMap2d[FrameFlipFlag]; +int XPos=MapPos.vx>>MapShift; +int YPos=MapPos.vy>>MapShift; +int ShiftX=15-(XPos&15); +int ShiftY=15-(YPos&15); + + ThisTable.ShiftXY=ShiftY<<16 | ShiftX<<0; + +int NewX=XPos>>4; +int NewY=YPos>>4; +int OldX=ThisTable.MapX; +int OldY=ThisTable.MapY; + + if (NewX>OldX) + { // update right column + UpdateColumn(NewX+SCREEN_TILE_WIDTH-1,NewY,ThisTable); + } + else + if (NewXOldY) + { // update bottom row + UpdateRow(NewX,NewY+SCREEN_TILE_HEIGHT-1,ThisTable); + } + else + if (NewYTile; + sTile *SrcTile=&TileList[MapPtr->Tile]; + + setTSprtTPage(ThisTile,SrcTile->TPage); + ThisTile->clut=SrcTile->Clut; + ThisTile->u0=SrcTile->uv0[0]; + ThisTile->v0=SrcTile->uv0[1]; + + MapPtr+=1; + Table=Table->Right; + } + +} + +/*****************************************************************************/ +// As column is smaller than row, it takes the corner tiles on, to balance the flow +void CLayerTile::UpdateColumn(int MapX,int MapY,sTileMap2d &ThisTable) +{ +sTileMap2dElem *Table=ThisTable.List; +sTileMapElem *MapPtr=Map; +int MapWidth=GetWidth(); + +// Calc (wrapped) Map/Table pos + Table+=CalcTableOfs(MapX,MapY); + MapPtr+=CalcMapOfs(MapX,MapY); + + for (int i=0; iTile; + sTile *SrcTile=&TileList[MapPtr->Tile]; + + setTSprtTPage(ThisTile,SrcTile->TPage); + ThisTile->clut=SrcTile->Clut; + ThisTile->u0=SrcTile->uv0[0]; + ThisTile->v0=SrcTile->uv0[1]; + + MapPtr+=MapWidth; + Table=Table->Down; + } +} + +/*****************************************************************************/ +/*****************************************************************************/ +/*****************************************************************************/ +void CLayerTile::render() +{ +sTileMap2d &ThisTable=TileMap2d[FrameFlipFlag]; +sTileMap2dElem *Table=ThisTable.List; u32 XYPos; -const u32 XInc=16<<0; -const u32 YInc=16<<16; // Setup shift bits of pos - XShift=15-(MapX&15); - YShift=15-(MapY&15); - XYPos=YShift<<16 | XShift<<0; + XYPos=ThisTable.ShiftXY; - MapX>>=4; - MapY>>=4; // Calc (wrapped) Start pos -/**/ MapX=MapX % TileMapWidth; -/**/ MapY=MapY % TileMapHeight; - -/**/ Table+=MapX; -/**/ Table+=MapY*TileMapWidth; + Table+=CalcTableOfs(ThisTable.MapX,ThisTable.MapY); // Render it!! for (int TileY=0; TileYTile; - *(u32*)&TileData->x0=XYPos; -/**/ AddPrim(OtPtr,TileData); + TSPRT_16 *Tile=&Table->Tile; + if (Tile->clut) + { + *(u32*)&Tile->x0=XYPos; +/**/ AddPrim(OtPtr,Tile); + } Table=Table->Right; XYPos+=XInc; } @@ -123,5 +263,35 @@ const u32 YInc=16<<16; } } +/*****************************************************************************/ +void CLayerTile::renderSolid() +{ +sTileMap2d &ThisTable=TileMap2d[FrameFlipFlag]; +sTileMap2dElem *Table=ThisTable.List; +u32 XYPos; + +// Setup shift bits of pos + XYPos=ThisTable.ShiftXY; + +// Calc (wrapped) Start pos + Table+=CalcTableOfs(ThisTable.MapX,ThisTable.MapY); + +// Render it!! + for (int TileY=0; TileYDown; + u32 XYPosDown=XYPos+YInc; + for (int TileX=0; TileXTile; + *(u32*)&Tile->x0=XYPos; +/**/ AddPrim(OtPtr,Tile); + Table=Table->Right; + XYPos+=XInc; + } + Table=TableDown; + XYPos=XYPosDown; + } +} /*****************************************************************************/ diff --git a/source/level/layertile.h b/source/level/layertile.h index 0bbea243b..275d3fb2a 100644 --- a/source/level/layertile.h +++ b/source/level/layertile.h @@ -16,7 +16,8 @@ struct sTileMap2dElem struct sTileMap2d { - int X,Y; + int MapX,MapY; + u32 ShiftXY; sTileMap2dElem *List; }; @@ -43,22 +44,27 @@ public: }; - CLayerTile(sLayerHdr *Hdr,sTile *_TileList,sTri *_TriList,sQuad *_QuadList,sVtx *_VtxList); + CLayerTile(sLayerHdr *Hdr,sTile *TileList,sTri *TriList,sQuad *QuadList,sVtx *VtxList); virtual ~CLayerTile(); -virtual void init()=0; -virtual void shutdown()=0; -virtual void render()=0; -virtual void think(int _frames)=0; +virtual void init(VECTOR &MapPos,int Shift,int Width=SCREEN_TILE_WIDTH,int Height=SCREEN_TILE_HEIGHT); +virtual void shutdown(); +virtual void think(VECTOR &MapPos); +virtual void render(); - void InitTileMap2d(int X,int Y,int Width=SCREEN_TILE_WIDTH,int Height=SCREEN_TILE_HEIGHT); - - int GetWidth() {return(LayerHdr->Width);} - int GetHeight() {return(LayerHdr->Height);} + void SetMapShift(int Shift) {MapShift=Shift;} + int GetWidth() {return(LayerHdr->Width);} + int GetHeight() {return(LayerHdr->Height);} protected: - void RenderTileMap2d(int X,int Y); + sTileMap2d &GetTileMap(); + int CalcTableOfs(int X,int Y); + int CalcMapOfs(int X,int Y); + void UpdateRow(int MapX,int MapY,sTileMap2d &ThisMap); + void UpdateColumn(int MapX,int MapY,sTileMap2d &ThisMap); + + void renderSolid(); sLayerHdr *LayerHdr; sTile *TileList; @@ -67,6 +73,7 @@ protected: sVtx *VtxList; sTileMapElem *Map; + int MapShift; int TileMapWidth,TileMapHeight; sTileMap2d TileMap2d[2]; // Double Buffered }; diff --git a/source/level/level.cpp b/source/level/level.cpp index f498aeab1..a0320c935 100644 --- a/source/level/level.cpp +++ b/source/level/level.cpp @@ -24,7 +24,8 @@ CLevel::CLevel() } DAVE_DBGMSG("sizeof(POLY_FT4)=%i",sizeof(POLY_FT4)); DAVE_DBGMSG("sizeof(TSPRT)=%i",sizeof(TSPRT)); - + MapPos.vx=0; + MapPos.vy=0; } /*****************************************************************************/ @@ -39,10 +40,8 @@ CLevel::~CLevel() /*****************************************************************************/ void CLevel::init() { -// LevelHdr=(sLvlHdr *)CFileIO::loadFile(CHAPTER01_LEVEL01_LVL,"Level Data"); -// TPLoadTex(CHAPTER01_LEVEL01_TEX); - LevelHdr=(sLvlHdr *)CFileIO::loadFile(LEVEL01_LEVEL01_LVL,"Level Data"); - TPLoadTex(LEVEL01_LEVEL01_TEX); + LevelHdr=(sLvlHdr *)CFileIO::loadFile(LEVEL04_LEVEL04_LVL,"Level Data"); + TPLoadTex(LEVEL04_LEVEL04_TEX); initLayers(); } @@ -59,25 +58,27 @@ sTile *TileList=(sTile*)MakePtr(LevelHdr,LevelHdr->TileList); if (LevelHdr->BackLayer) { sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->BackLayer); - CLayerTile *NewLayer=new ("Back Layer") CLayerBack(Layer, TileList); - NewLayer->init(); + CLayerTile *NewLayer=new ("Back Layer") CLayerBack(Layer, TileList, TriList, QuadList, VtxList); + NewLayer->init(MapPos,3); TileLayers[CLayerTile::LAYER_TILE_TYPE_BACK]=NewLayer; } -/* + // Mid if (LevelHdr->MidLayer) { sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->MidLayer); CLayerTile *NewLayer=new ("Mid Layer") CLayerTile(Layer, TileList, TriList, QuadList, VtxList); - NewLayer->init(); + NewLayer->init(MapPos,2); TileLayers[CLayerTile::LAYER_TILE_TYPE_MID]=NewLayer; } +/* // Action if (LevelHdr->ActionLayer) { sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->ActionLayer); CLayerTile *NewLayer=new ("Action Layer") CLayerTile(Layer, TileList, TriList, QuadList, VtxList); NewLayer->init(); + NewLayer->SetMapShift(0); TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]=NewLayer; } // Fore @@ -111,24 +112,22 @@ void CLevel::render() /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -extern int MapX; -extern int MapY; int MapSpd=8; void CLevel::think(int _frames) { int padh = PadGetHeld( 0 ); - if (padh & PAD_LEFT) MapX-=MapSpd; - if (padh & PAD_RIGHT) MapX+=MapSpd; - if (padh & PAD_UP) MapY-=MapSpd; - if (padh & PAD_DOWN) MapY+=MapSpd; + if (padh & PAD_LEFT) MapPos.vx-=MapSpd; + if (padh & PAD_RIGHT) MapPos.vx+=MapSpd; + if (padh & PAD_UP) MapPos.vy-=MapSpd; + if (padh & PAD_DOWN) MapPos.vy+=MapSpd; - if (MapX<0) MapX=0; - if (MapY<0) MapY=0; + if (MapPos.vx<0) MapPos.vx=0; + if (MapPos.vy<0) MapPos.vy=0; for (int i=0; ithink(_frames); + if (TileLayers[i]) TileLayers[i]->think(MapPos); } } diff --git a/source/level/level.h b/source/level/level.h index f576ec571..15ae7202c 100644 --- a/source/level/level.h +++ b/source/level/level.h @@ -25,6 +25,8 @@ private: void initLayers(); sLvlHdr *LevelHdr; + VECTOR MapPos; + // Tile Layers CLayerTile *TileLayers[CLayerTile::LAYER_TILE_TYPE_MAX]; diff --git a/tools/Data/bin/MkLevel.exe b/tools/Data/bin/MkLevel.exe index 1a7e6aae0b8682c7160f113e00f5cd75d3692a93..44d11523289a7d1b6fe9374aa07f62a77880d1d8 100644 GIT binary patch delta 78578 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 DFa%HX diff --git a/tools/Data/include/dstructs.h b/tools/Data/include/dstructs.h index be9c6a8e8..c239b3ad1 100644 --- a/tools/Data/include/dstructs.h +++ b/tools/Data/include/dstructs.h @@ -1,9 +1,10 @@ -/*************************/ -/*** Global Structures ***/ -/*************************/ +/***********************/ +/*** Data Structures ***/ +/***********************/ + +#ifndef __DATA_STRUCTS_HEADER__ +#define __DATA_STRUCTS_HEADER__ -#ifndef __GLOBAL_STRUCTS_HEADER__ -#define __GLOBAL_STRUCTS_HEADER__ //*************************************************************************** // biped bone IDs @@ -52,9 +53,9 @@ struct sShortXYZ struct sVtx { s16 vx, vy, vz, pad; - - bool operator==(sVtx const &v1) {return((vx==v1.vx) && (vy==v1.vy) && (vz==v1.vz));} - +#ifdef WIN32 +bool operator==(sVtx const &v1) {return((vx==v1.vx) && (vy==v1.vy) && (vz==v1.vz));} +#endif }; #define NormalScale 4096 @@ -82,11 +83,12 @@ struct sMat struct sTri { u16 P0,P1,P2; // 6 - u16 Mat; // 2 + u16 TPage; // 2 u8 uv0[2]; // 2 u8 uv1[2]; // 2 u8 uv2[2]; // 2 -}; // 14 + u16 Clut; // 2 +}; // 16 // u8 r0, g0, b0, code; // 4 // u8 r1, g1, b1, Mat; // 4 @@ -101,8 +103,8 @@ struct sQuad u8 uv1[2]; // 2 u8 uv2[2]; // 2 u8 uv3[2]; // 2 - u16 Mat; // 2 - u16 Pad; // 2 + u16 TPage; // 2 + u16 Clut; // 2 }; // 20 // u8 r0, g0, b0, code; // 4 @@ -131,27 +133,6 @@ struct sBone //*************************************************************************** //*************************************************************************** //*************************************************************************** -struct sLvlHdr -{ - sTri *TriList; - sQuad *QuadList; - sVtx *VtxList; - sMat *MatList; - int LayerCount; - /*int LayerOfs[LayerCount]...*/ -}; - -struct sLayerHdr -{ - int Type; - int SubType; - int Width; - int Height; - - /*int TileData[W][H];....*/ -}; - -//--------------------------------------------------------------------------- // Tiles struct sTileMapElem @@ -167,33 +148,82 @@ struct sTile u16 QuadList; u16 QuadCount; // 2d Tile - u16 Mat2d; - s8 XOfs,YOfs; - u8 uv2d0[2]; - u8 uv2d1[2]; - u8 uv2d2[2]; - u8 uv2d3[2]; +// s16 Mat2d; +// s8 XOfs,YOfs; + u16 TPage; + u16 Clut; + u8 uv0[2]; + u8 uv1[2]; + u8 uv2[2]; + u8 uv3[2]; -BOOL operator==(sTile const &v1) +#ifdef WIN32 +bool operator==(sTile const &v1) { - if (TriCount!=v1.TriCount) return(FALSE); - if (TriList!=v1.TriList) return(FALSE); -// if (QuadCount!=v1.QuadCount) return(FALSE); -// if (QuadList!=v1.QuadList) return(FALSE); + if (TriCount!=v1.TriCount) return(false); + if (TriList!=v1.TriList) return(false); +// if (QuadCount!=v1.QuadCount) return(false); +// if (QuadList!=v1.QuadList) return(false); - if (Mat2d!=v1.Mat2d) return(FALSE); - if (uv2d0[0]!=v1.uv2d0[0]) return(FALSE); - if (uv2d0[1]!=v1.uv2d0[1]) return(FALSE); - if (uv2d1[0]!=v1.uv2d1[0]) return(FALSE); - if (uv2d1[1]!=v1.uv2d1[1]) return(FALSE); - if (uv2d2[0]!=v1.uv2d2[0]) return(FALSE); - if (uv2d2[1]!=v1.uv2d2[1]) return(FALSE); - if (uv2d3[0]!=v1.uv2d3[0]) return(FALSE); - if (uv2d3[1]!=v1.uv2d3[1]) return(FALSE); + if (TPage!=v1.TPage) return(false); +// if (Mat!=v1.Mat) return(false); + if (uv0[0]!=v1.uv0[0]) return(false); + if (uv0[1]!=v1.uv0[1]) return(false); + if (uv1[0]!=v1.uv1[0]) return(false); + if (uv1[1]!=v1.uv1[1]) return(false); + if (uv2[0]!=v1.uv2[0]) return(false); + if (uv2[1]!=v1.uv2[1]) return(false); + if (uv3[0]!=v1.uv3[0]) return(false); + if (uv3[1]!=v1.uv3[1]) return(false); return(TRUE); } +#endif +}; + +//--------------------------------------------------------------------------- +// Layers +struct sLayerHdr +{ + int Type; + int SubType; + int Width; + int Height; + + /*int TileData[W][H];....*/ +}; + +//--------------------------------------------------------------------------- +// Header +struct sLvlHdr +{ +// sTri *TriList; +// sQuad *QuadList; +// sVtx *VtxList; +// sMat *MatList; +// sTile *TileList; +// int LayerCount; + /*int LayerOfs[LayerCount]...*/ + u32 TriList; + u32 QuadList; + u32 VtxList; + u32 TileList; +// Layers + u32 BackLayer; + u32 MidLayer; + u32 ActionLayer; + u32 ForeLayer; + u32 Pad0; + u32 Pad1; + u32 Pad2; + u32 Pad3; + u32 Pad4; + u32 Pad5; + u32 Pad6; + u32 Pad7; }; + + #endif \ No newline at end of file