This commit is contained in:
parent
d33f59257f
commit
aaaed92c9e
28 changed files with 322 additions and 188 deletions
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -11,7 +11,7 @@ class FontBank;
|
|||
class CLayerTile3d : public CLayerTile
|
||||
{
|
||||
public:
|
||||
CLayerTile3d(sLvlHdr *LvlHdr,sLayerHdr *Hdr);
|
||||
CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr);
|
||||
~CLayerTile3d();
|
||||
|
||||
enum
|
||||
|
|
|
@ -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;i<ItemCount;i++)
|
||||
{
|
||||
|
@ -287,7 +284,6 @@ void CLevel::initLayers()
|
|||
ThingPtr+=sizeof(sThingPlatform);
|
||||
ThingPtr+=PlatformList[i]->PointCount*sizeof(u16)*2;
|
||||
}
|
||||
if (Hdr->Count>8) Hdr->Count=0;
|
||||
}
|
||||
|
||||
// Triggers
|
||||
|
|
|
@ -46,7 +46,7 @@ private:
|
|||
void initLayers();
|
||||
void DisplayLoadingScreen(sLvlTab *lvlTab);
|
||||
|
||||
sLvlHdr *LevelHdr;
|
||||
sLevelHdr *LevelHdr;
|
||||
|
||||
static DVECTOR MapPos;
|
||||
static DVECTOR s_playerSpawnPos;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue