/*************/ /*** Level ***/ /*************/ #include "system\global.h" #include "fileio\fileio.h" #include "utils\utils.h" #include "gfx\tpage.h" #include #include "level\level.h" #include "level\layer.h" #include "level\layertile.h" /*****************************************************************************/ CLevel::CLevel() { for (int i=0; iTriList=(sTri*)MakePtr(LevelHdr,(int)LevelHdr->TriList); LevelHdr->QuadList=(sQuad*)MakePtr(LevelHdr,(int)LevelHdr->QuadList); LevelHdr->VtxList=(sVtx*)MakePtr(LevelHdr,(int)LevelHdr->VtxList); LevelHdr->TileList=(sTile*)MakePtr(LevelHdr,(int)LevelHdr->TileList); DAVE_DBGMSG("LayerCount=%i\n",GetLayerCount()); LoadLayers(); for (int i=0; iinit(); } } /*****************************************************************************/ void CLevel::LoadLayers() { int LayerCount=GetLayerCount(); int *HdrOfs=(int*)MakePtr(LevelHdr,sizeof(sLvlHdr)); for (int i=0; iType,Hdr->SubType,Hdr->Width,Hdr->Height); int LayerType=CLayer::GetLayerType(Hdr->Type,Hdr->SubType); switch (LayerType) { case CLayer::LAYER_TYPE_TILE_BACK: LayerList[LayerType]=new ("Back Layer") CLayerTile(Hdr,LevelHdr->TileList, LevelHdr->TriList, LevelHdr->QuadList, LevelHdr->VtxList); break; case CLayer::LAYER_TYPE_TILE_MID: LayerList[LayerType]=new ("Mid Layer") CLayerTile(Hdr,LevelHdr->TileList, LevelHdr->TriList, LevelHdr->QuadList, LevelHdr->VtxList); break; case CLayer::LAYER_TYPE_TILE_ACTION: LayerList[LayerType]=new ("Action Layer") CLayerTile(Hdr,LevelHdr->TileList, LevelHdr->TriList, LevelHdr->QuadList, LevelHdr->VtxList); break; case CLayer::LAYER_TYPE_TILE_FORE: LayerList[LayerType]=new ("Fore Layer") CLayerTile(Hdr,LevelHdr->TileList, LevelHdr->TriList, LevelHdr->QuadList, LevelHdr->VtxList); break; default: DAVE_DBGMSG("%i\n",LayerType); ASSERT(!"Unknown Layer"); break; } } } /*****************************************************************************/ void CLevel::shutdown() { MemFree(LevelHdr); } /*****************************************************************************/ void CLevel::render() { for (int i=0; irender(); } } /*****************************************************************************/ void CLevel::think(int _frames) { for (int i=0; ithink(_frames); } } /*****************************************************************************/