This commit is contained in:
Daveo 2001-07-28 16:45:46 +00:00
parent 057cb931bb
commit e5a2e9a6ed
21 changed files with 121 additions and 95 deletions

View file

@ -76,10 +76,10 @@ eng=B
eng=C eng=C
[STR__FRONTEND__D] [STR__FRONTEND__D]
eng=D eng=D
[STR__FRONTEND__UP] [STR__FRONTEND__LOOK_UP]
eng=UP eng=LOOK UP
[STR__FRONTEND__DOWN] [STR__FRONTEND__LOOK_DOWN]
eng=DOWN eng=LOOK DOWN
[STR__FRONTEND__LEFT] [STR__FRONTEND__LEFT]
eng=LEFT eng=LEFT
[STR__FRONTEND__RIGHT] [STR__FRONTEND__RIGHT]
@ -227,7 +227,7 @@ eng=zzzzzzzzzz
[STR__INGAME__FMA_C2_SB0] [STR__INGAME__FMA_C2_SB0]
eng=Im ready. Im ready. Im ready. Oops! eng=Im ready. Im ready. Im ready. Oops!
[STR__INGAME__FMA_C2_BB0] [STR__INGAME__FMA_C2_BB0]
eng=Back already?.. That is definitely a sandwich fit for a super hero!! Gonna need to think of something to test your super hero potential, and keep busy! . Look MM is not in great super hero condition at the moment and he could really do with some pampering!! Some Kelp cream and a facial! Not for me you understand! eng=Back already?.. That is definitely a sandwich fit for a super hero!! Gonna need to think of something to test your super hero potential, and keep busy! Look MM is not in great super hero condition at the moment and he could really do with some pampering!! Some Kelp cream and a facial! Not for me you understand!
;PKG 17/7/01 - This is duped by STR__INGAME__FMA_C4_SB2 ;PKG 17/7/01 - This is duped by STR__INGAME__FMA_C4_SB2
[STR__INGAME__FMA_C2_SB1] [STR__INGAME__FMA_C2_SB1]
eng=Im on my way!! eng=Im on my way!!
@ -236,7 +236,7 @@ eng=I
[STR__INGAME__FMA_C3_SB0] [STR__INGAME__FMA_C3_SB0]
eng=aaah!!! eng=aaah!!!
[STR__INGAME__FMA_C3_BB0] [STR__INGAME__FMA_C3_BB0]
eng=That is amazing, how did you manage that!! Reflecto has got nothing on you kid, you must really love your mate Trevor! eng=That is amazing, how did you manage that!! Reflecto has nothing on you kid, you must really love your mate Trevor!
[STR__INGAME__FMA_C3_SB1] [STR__INGAME__FMA_C3_SB1]
eng=Patrick! eng=Patrick!
[STR__INGAME__FMA_C3_BB1] [STR__INGAME__FMA_C3_BB1]

View file

@ -465,7 +465,9 @@ cleanbackdrops :
@$(ECHO) Backdrops Cleaned @$(ECHO) Backdrops Cleaned
$(BACKDROPS_OUT_DIR)/%.gfx : $(BACKDROPS_IN_DIR)/%.tga $(BACKDROPS_OUT_DIR)/%.gfx : $(BACKDROPS_IN_DIR)/%.tga
@$(TGA2GFX) $< $@ @$(TGA2GFX) $< a.tmp
@$(LZNP) a.tmp $@ >nul
@$(RM) a.tmp
GRAF_DIRS_TO_MAKE += $(BACKDROPS_OUT_DIR) GRAF_DIRS_TO_MAKE += $(BACKDROPS_OUT_DIR)
GFX_DATA_OUT += $(BACKDROPS_OUT) GFX_DATA_OUT += $(BACKDROPS_OUT)
@ -494,6 +496,7 @@ cleanmapscreens:
$(MAPSCREENS_OUT_DIR)/%.gfx : $(MAPSCREENS_IN_DIR)/%.tga $(MAPSCREENS_OUT_DIR)/%.gfx : $(MAPSCREENS_IN_DIR)/%.tga
@$(TGA2GFX) $< a.tmp @$(TGA2GFX) $< a.tmp
@$(LZNP) a.tmp $@ >nul @$(LZNP) a.tmp $@ >nul
@$(RM) a.tmp
GRAF_DIRS_TO_MAKE += $(MAPSCREENS_OUT_DIR) GRAF_DIRS_TO_MAKE += $(MAPSCREENS_OUT_DIR)
GFX_DATA_OUT += $(MAPSCREENS_OUT) GFX_DATA_OUT += $(MAPSCREENS_OUT)
@ -515,7 +518,10 @@ cleanloadingscreens :
@$(ECHO) Loadingscreens Cleaned @$(ECHO) Loadingscreens Cleaned
$(LOADINGSCREENS_OUT_DIR)/%.gfx : $(LOADINGSCREENS_IN_DIR)/%.tga $(LOADINGSCREENS_OUT_DIR)/%.gfx : $(LOADINGSCREENS_IN_DIR)/%.tga
@$(TGA2GFX) $< $@ @$(TGA2GFX) $< a.tmp
@$(LZNP) a.tmp $@ >nul
@$(RM) a.tmp
GRAF_DIRS_TO_MAKE += $(LOADINGSCREENS_OUT_DIR) GRAF_DIRS_TO_MAKE += $(LOADINGSCREENS_OUT_DIR)
GFX_DATA_OUT += $(LOADINGSCREENS_OUT) GFX_DATA_OUT += $(LOADINGSCREENS_OUT)

View file

@ -267,7 +267,8 @@ MemCard::Start();
sl=new ("sldb") CSaveLoadDatabase(); sl=new ("sldb") CSaveLoadDatabase();
mode=mode_none; mode=mode_none;
#endif #endif
m_image=CFileIO::loadFile(BACKDROP_CREDITS_GFX); m_image=LoadPakScreen(BACKDROP_CREDITS_GFX);
ASSERT(m_image); ASSERT(m_image);
SetScreenImage(m_image); SetScreenImage(m_image);
CFader::setFadingIn(); CFader::setFadingIn();

View file

@ -109,7 +109,7 @@ CGameOverScene GameOverScene;
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CGameOverScene::init() void CGameOverScene::init()
{ {
m_image=CFileIO::loadFile(BACKDROP_GAMEOVER_GFX); m_image=LoadPakScreen(BACKDROP_GAMEOVER_GFX);
ASSERT(m_image); ASSERT(m_image);
SetScreenImage((u8*)m_image); SetScreenImage((u8*)m_image);

View file

@ -92,7 +92,7 @@ static int s_leftBobSin,s_leftBob,s_rightBobSin,s_rightBob;
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CPartyScene::init() void CPartyScene::init()
{ {
m_image=CFileIO::loadFile(BACKDROP_PARTYBACKDROP_GFX); m_image=LoadPakScreen(BACKDROP_PARTYBACKDROP_GFX);
ASSERT(m_image); ASSERT(m_image);
SetScreenImage((u8*)m_image); SetScreenImage((u8*)m_image);

View file

@ -187,7 +187,7 @@ void CFrontEndMainTitles::select()
m_demoTimeout=0; m_demoTimeout=0;
s_image=CFileIO::loadFile(s_imageFiles[CGameSlotManager::getNumberOfFrontendScreenToUse()]); s_image=LoadPakScreen(s_imageFiles[CGameSlotManager::getNumberOfFrontendScreenToUse()]);
ASSERT(s_image); ASSERT(s_image);
SetScreenImage(s_image); SetScreenImage(s_image);

View file

@ -67,7 +67,7 @@ void CFrontEndNickLogo::select()
{ {
m_readyToExit=false; m_readyToExit=false;
m_image=CFileIO::loadFile(BACKDROP_NICK_GFX); m_image=LoadPakScreen(BACKDROP_NICK_GFX);
ASSERT(m_image); ASSERT(m_image);
SetScreenImage(m_image); SetScreenImage(m_image);

View file

@ -309,7 +309,7 @@ void CFrontEndOptions::init()
tb=new ("textbox") CGUITextBox(); tb=new ("textbox") CGUITextBox();
tb->init(fr); tb->init(fr);
tb->setObjectXYWH(26,0,150,15); tb->setObjectXYWH(26,0,150,15);
tb->setText(STR__FRONTEND__UP); tb->setText(STR__FRONTEND__LOOK_UP);
sr=new ("spritereadout") CGUISpriteReadout(); sr=new ("spritereadout") CGUISpriteReadout();
sr->init(fr); sr->init(fr);
sr->setObjectXYWH(0,15,26,15); sr->setObjectXYWH(0,15,26,15);
@ -318,7 +318,7 @@ void CFrontEndOptions::init()
tb=new ("textbox") CGUITextBox(); tb=new ("textbox") CGUITextBox();
tb->init(fr); tb->init(fr);
tb->setObjectXYWH(26,15,150,15); tb->setObjectXYWH(26,15,150,15);
tb->setText(STR__FRONTEND__DOWN); tb->setText(STR__FRONTEND__LOOK_DOWN);
sr=new ("spritereadout") CGUISpriteReadout(); sr=new ("spritereadout") CGUISpriteReadout();
sr->init(fr); sr->init(fr);
sr->setObjectXYWH(0,30,26,15); sr->setObjectXYWH(0,30,26,15);

View file

@ -752,6 +752,7 @@ void CGameScene::hitBossArenaTrigger()
void CGameScene::initLevel() void CGameScene::initLevel()
{ {
CSoundMediator::setCanPlaySfx(false); CSoundMediator::setCanPlaySfx(false);
Level.DisplayLoadingScreen(s_globalLevelSelectThing);
SYSTEM_DBGMSG("InitLevel\n"); SYSTEM_DBGMSG("InitLevel\n");
CThingManager::init(); CThingManager::init();

View file

@ -110,7 +110,7 @@ int YPos=MapPos.vy>>MapXYShift;
/*****************************************************************************/ /*****************************************************************************/
void CLayerTile::render() void CLayerTile::render()
{ {
sTileMapElem *MapPtr=GetMapPos(); sTileMapElem *MapPtr=Map+GetMapOfs();
s16 TileX,TileY; s16 TileX,TileY;
sOT *ThisOT=OtPtr+LayerOT; sOT *ThisOT=OtPtr+LayerOT;
TSPRT *PrimPtr=PrimBank; TSPRT *PrimPtr=PrimBank;

View file

@ -33,7 +33,7 @@ virtual void think(DVECTOR &MapPos);
virtual void render(); virtual void render();
int GetMapOfs() {return(MapXY.vx+(MapXY.vy*MapWidth));} int GetMapOfs() {return(MapXY.vx+(MapXY.vy*MapWidth));}
virtual sTileMapElem *GetMapPos() {return(Map+GetMapOfs());} //virtual sTileMapElem *GetMapPos() {return(Map+GetMapOfs());}
virtual sTileMapElem *getMapPtr(int _x,int _y) {return(&Map[(_x>>4)+((_y>>4)*MapWidth)]);} virtual sTileMapElem *getMapPtr(int _x,int _y) {return(&Map[(_x>>4)+((_y>>4)*MapWidth)]);}
protected: protected:

View file

@ -87,27 +87,18 @@ sFlipTable FlipTable[4]=
},0<<31} },0<<31}
}; };
u8 RGBTable[16*4];
int RS=128;
int Ri=-6;
int GS=128;
int Gi=-6;
int BS=128;
int Bi=-6;
int AS=128;
int Ai=-6;
/*****************************************************************************/ /*****************************************************************************/
/*****************************************************************************/ /*****************************************************************************/
/*****************************************************************************/ /*****************************************************************************/
CLayerTile3d::CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr) : CLayerTile(LevelHdr,Hdr) CLayerTile3d::CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr,u8 *_RGBMap,u8 *_RGBTable) : CLayerTile(LevelHdr,Hdr)
{ {
ElemBank3d=LevelHdr->ElemBank3d; ElemBank3d=LevelHdr->ElemBank3d;
TriList=LevelHdr->TriList; TriList=LevelHdr->TriList;
QuadList=LevelHdr->QuadList; QuadList=LevelHdr->QuadList;
VtxList=LevelHdr->VtxList; VtxList=LevelHdr->VtxList;
VtxIdxList=LevelHdr->VtxIdxList; VtxIdxList=LevelHdr->VtxIdxList;
RGBMap=_RGBMap;
RGBTable=_RGBTable;
#if defined(_SHOW_POLYZ_) #if defined(_SHOW_POLYZ_)
Font=new ("PrimFont") FontBank; Font=new ("PrimFont") FontBank;
@ -115,21 +106,6 @@ CLayerTile3d::CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr) : CLayerTile(Leve
Font->setOt( 0 ); Font->setOt( 0 );
Font->setTrans(1); Font->setTrans(1);
#endif #endif
for (int i=0; i<16; i++)
{
int R,G,B;
R=RS-(i*Ri);
G=GS-(i*Gi);
B=BS-(i*Bi);
if (R<0) R=0; else if (R>255) R=255;
if (G<0) G=0; else if (G>255) G=255;
if (B<0) B=0; else if (B>255) B=255;
RGBTable[(i*4)+0]=R;
RGBTable[(i*4)+1]=G;
RGBTable[(i*4)+2]=B;
RGBTable[(i*4)+3]=0;
}
} }
@ -263,33 +239,6 @@ void CLayerTile3d::think(DVECTOR &MapPos)
RenderH=SCREEN_TILE3D_HEIGHT; RenderH=SCREEN_TILE3D_HEIGHT;
else else
RenderH=MapHeight-MapXY.vy; RenderH=MapHeight-MapXY.vy;
#if defined(__USER_daveo__)
if (AS!=-1)
{
RS=GS=BS=AS;
}
if (Ai!=-1)
{
Ri=Gi=Bi=Ai;
}
for (int i=0; i<16; i++)
{
int R,G,B;
R=RS-(i*Ri);
G=GS-(i*Gi);
B=BS-(i*Bi);
if (R<0) R=0; else if (R>255) R=255;
if (G<0) G=0; else if (G>255) G=255;
if (B<0) B=0; else if (B>255) B=255;
RGBTable[(i*4)+0]=R;
RGBTable[(i*4)+1]=G;
RGBTable[(i*4)+2]=B;
RGBTable[(i*4)+3]=0;
}
#endif
} }
/*****************************************************************************/ /*****************************************************************************/
@ -322,12 +271,14 @@ s32 *OutPtr;
gte_ldv3(V0,V1,V2); gte_ldv3(V0,V1,V2);
gte_stsxy3c(OutPtr); // read XY back gte_stsxy3c(OutPtr); // read XY back
} }
} }
/*****************************************************************************/ /*****************************************************************************/
void CLayerTile3d::render() void CLayerTile3d::render()
{ {
sTileMapElem *MapPtr=GetMapPos(); int MapOfs=GetMapOfs();
sTileMapElem *MapPtr=Map+MapOfs;
u8 *RGBMapPtr=RGBMap+MapOfs;
u8 *PrimPtr=GetPrimPtr(); u8 *PrimPtr=GetPrimPtr();
u32 *XYList=(u32*)SCRATCH_RAM; u32 *XYList=(u32*)SCRATCH_RAM;
u32 T0,T1,T2,T3; u32 T0,T1,T2,T3;
@ -350,6 +301,7 @@ s16 TCount=0,QCount=0;
for (int Y=0; Y<RenderH; Y++) for (int Y=0; Y<RenderH; Y++)
{ {
sTileMapElem *MapRow=MapPtr; sTileMapElem *MapRow=MapPtr;
u8 *RGBRow=RGBMapPtr;
s32 BlkXOld=BlkPos.vx; s32 BlkXOld=BlkPos.vx;
s16 *DeltaFX=FTableX[ShiftX]; s16 *DeltaFX=FTableX[ShiftX];
s16 *DeltaBX=BTableX[ShiftX]; s16 *DeltaBX=BTableX[ShiftX];
@ -366,6 +318,9 @@ s16 TCount=0,QCount=0;
sTri *TList=&TriList[Elem->TriStart]; sTri *TList=&TriList[Elem->TriStart];
int QuadCount=Elem->QuadCount; int QuadCount=Elem->QuadCount;
sQuad *QList=&QuadList[Elem->QuadStart]; sQuad *QList=&QuadList[Elem->QuadStart];
int RGBOfs=*RGBRow++;
u8 *RGB=&RGBTable[RGBOfs*(16*4)];
if (TriCount || QuadCount) // Blank tiles rejected here, to prevent over processing (as no tri-count) if (TriCount || QuadCount) // Blank tiles rejected here, to prevent over processing (as no tri-count)
{ {
CMX_SetTransMtxXY(&BlkPos); CMX_SetTransMtxXY(&BlkPos);
@ -472,9 +427,9 @@ s16 TCount=0,QCount=0;
*(u32*)&ThisPrim->x2=P2; // Set XY2 *(u32*)&ThisPrim->x2=P2; // Set XY2
addPrim(ThisOT,ThisPrim); addPrim(ThisOT,ThisPrim);
// lighting // lighting
T0=*(u32*)&RGBTable[TList->C0]; T0=*(u32*)&RGB[TList->C0];
T1=*(u32*)&RGBTable[TList->C1]; T1=*(u32*)&RGB[TList->C1];
T2=*(u32*)&RGBTable[TList->C2]; T2=*(u32*)&RGB[TList->C2];
*(u32*)&ThisPrim->r0=T0; *(u32*)&ThisPrim->r0=T0;
*(u32*)&ThisPrim->r1=T1; *(u32*)&ThisPrim->r1=T1;
*(u32*)&ThisPrim->r2=T2; *(u32*)&ThisPrim->r2=T2;
@ -527,10 +482,10 @@ s16 TCount=0,QCount=0;
*(u32*)&ThisPrim->x2=P2; // Set XY2 *(u32*)&ThisPrim->x2=P2; // Set XY2
*(u32*)&ThisPrim->x3=P3; // Set XY3 *(u32*)&ThisPrim->x3=P3; // Set XY3
// Lighting // Lighting
T0=*(u32*)&RGBTable[QList->C0]; T0=*(u32*)&RGB[QList->C0];
T1=*(u32*)&RGBTable[QList->C1]; T1=*(u32*)&RGB[QList->C1];
T2=*(u32*)&RGBTable[QList->C2]; T2=*(u32*)&RGB[QList->C2];
T3=*(u32*)&RGBTable[QList->C3]; T3=*(u32*)&RGB[QList->C3];
*(u32*)&ThisPrim->r0=T0; *(u32*)&ThisPrim->r0=T0;
*(u32*)&ThisPrim->r1=T1; *(u32*)&ThisPrim->r1=T1;
*(u32*)&ThisPrim->r2=T2; *(u32*)&ThisPrim->r2=T2;
@ -552,6 +507,7 @@ s16 TCount=0,QCount=0;
DeltaFX++; DeltaBX++; DeltaFX++; DeltaBX++;
} }
MapPtr+=MapWidth; MapPtr+=MapWidth;
RGBMapPtr+=MapWidth;
BlkPos.vx=BlkXOld; BlkPos.vx=BlkXOld;
BlkPos.vy+=BLOCK_SIZE; BlkPos.vy+=BLOCK_SIZE;
DeltaFY++; DeltaBY++; DeltaFY++; DeltaBY++;

View file

@ -28,7 +28,7 @@ class FontBank;
class CLayerTile3d : public CLayerTile class CLayerTile3d : public CLayerTile
{ {
public: public:
CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr); CLayerTile3d(sLevelHdr *LevelHdr,sLayerHdr *Hdr,u8 *_RGBMap,u8 *_RGBTable);
~CLayerTile3d(); ~CLayerTile3d();
void init(DVECTOR &MapPos,int Shift); void init(DVECTOR &MapPos,int Shift);
@ -46,6 +46,8 @@ protected:
sVtx *VtxList; sVtx *VtxList;
u16 *VtxIdxList; u16 *VtxIdxList;
DVECTOR RenderOfs; DVECTOR RenderOfs;
u8 *RGBMap;
u8 *RGBTable;
s16 *FTableX[16]; s16 *FTableX[16];
s16 *FTableY[16]; s16 *FTableY[16];

View file

@ -201,9 +201,9 @@ void CLevel::init(int LevelNo)
// Load it // Load it
sLvlTab *lvlTab=&LvlTable[LevelNo]; sLvlTab *lvlTab=&LvlTable[LevelNo];
CSoundMediator::setSong((CSoundMediator::SONGID)lvlTab->songId); // DisplayLoadingScreen(lvlTab);
DisplayLoadingScreen(lvlTab); CSoundMediator::setSong((CSoundMediator::SONGID)lvlTab->songId);
LevelHdr=(sLevelHdr*)CFileIO::loadFile(lvlTab->LevelFilename,"Level"); LevelHdr=(sLevelHdr*)CFileIO::loadFile(lvlTab->LevelFilename,"Level");
LevelHdr->ElemBank2d=(sElem2d*) MakePtr(LevelHdr,(int)LevelHdr->ElemBank2d); LevelHdr->ElemBank2d=(sElem2d*) MakePtr(LevelHdr,(int)LevelHdr->ElemBank2d);
@ -214,7 +214,34 @@ sLvlTab *lvlTab=&LvlTable[LevelNo];
LevelHdr->VtxIdxList=(u16*) MakePtr(LevelHdr,(int)LevelHdr->VtxIdxList); LevelHdr->VtxIdxList=(u16*) MakePtr(LevelHdr,(int)LevelHdr->VtxIdxList);
LevelHdr->ModelList=(sModel*) MakePtr(LevelHdr,(int)LevelHdr->ModelList); LevelHdr->ModelList=(sModel*) MakePtr(LevelHdr,(int)LevelHdr->ModelList);
CModelGfx::SetData(LevelHdr);//LevelHdr->ModelList,LevelHdr->TriList,LevelHdr->QuadList,LevelHdr->VtxList); // Deal with RGB Tables (and create if none)
if (LevelHdr->RGBLayer)
{
sLayerRGBHdr *RGBHdr=(sLayerRGBHdr*) MakePtr(LevelHdr,(int)LevelHdr->RGBLayer+sizeof(sLayerHdr));
m_RGBMap=(u8*) MakePtr(LevelHdr,(int)RGBHdr->RGBMap);
m_RGBTable=(u8*) MakePtr(LevelHdr,(int)RGBHdr->RGBTable);
}
else
{ // Make blank RGB data
sLayerHdr *LayerLayer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->ActionLayer);
int LvlSize=LayerLayer->Width*LayerLayer->Height;
m_RGBMap=(u8*)MemAlloc(LvlSize,"BlankRGBMap"); ASSERT(m_RGBMap);
memset(m_RGBMap,0,LvlSize);
m_RGBTable=(u8*)MemAlloc(16*4,"BlankRGBTable"); ASSERT(m_RGBTable);
u8 RGB=127;
for (int c=0; c<16; c++)
{
m_RGBTable[(c*4)+0]=RGB;
m_RGBTable[(c*4)+1]=RGB;
m_RGBTable[(c*4)+2]=RGB;
m_RGBTable[(c*4)+3]=0;
RGB+=6;
}
}
CModelGfx::SetData(LevelHdr);
m_levelTPage=TPLoadTex(lvlTab->TexFilename); m_levelTPage=TPLoadTex(lvlTab->TexFilename);
s_playerSpawnPos.vx=LevelHdr->PlayerStartX*16; s_playerSpawnPos.vx=LevelHdr->PlayerStartX*16;
@ -252,8 +279,9 @@ bool Finished=false;
} }
/*****************************************************************************/ /*****************************************************************************/
void CLevel::DisplayLoadingScreen(sLvlTab *lvlTab) void CLevel::DisplayLoadingScreen(int LevelNo)
{ {
sLvlTab *lvlTab=&LvlTable[LevelNo];
ScalableFontBank font; ScalableFontBank font;
char buf[256]; char buf[256];
u8 *s_image; u8 *s_image;
@ -264,7 +292,7 @@ int i;
font.setScale(370); font.setScale(370);
sprintf(buf,"%s\n\n%s",TranslationDatabase::getString(lvlTab->ChapterLoadingText),TranslationDatabase::getString(lvlTab->LevelLoadingText)); sprintf(buf,"%s\n\n%s",TranslationDatabase::getString(lvlTab->ChapterLoadingText),TranslationDatabase::getString(lvlTab->LevelLoadingText));
s_image=CFileIO::loadFile(loadingScreens[lvlTab->Chapter-1]); s_image=LoadPakScreen(loadingScreens[lvlTab->Chapter-1]);
ASSERT(s_image); ASSERT(s_image);
SetScreenImage(s_image); SetScreenImage(s_image);
for(i=0;i<2;i++) for(i=0;i<2;i++)
@ -327,7 +355,7 @@ void CLevel::initLayers()
if (LevelHdr->ActionLayer) if (LevelHdr->ActionLayer)
{ {
sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->ActionLayer); sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->ActionLayer);
CLayerTile *NewLayer=new ("Action Layer") CLayerTile3d(LevelHdr,Layer); CLayerTile *NewLayer=new ("Action Layer") CLayerTile3d(LevelHdr,Layer,m_RGBMap,m_RGBTable);
NewLayer->init(MapPos,0); NewLayer->init(MapPos,0);
TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]=NewLayer; TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]=NewLayer;
} }
@ -604,6 +632,11 @@ void CLevel::shutdown()
delete TileLayers[i]; delete TileLayers[i];
} }
} }
if (!LevelHdr->RGBLayer)
{
MemFree(m_RGBMap);
MemFree(m_RGBTable);
}
if (CollisionLayer) if (CollisionLayer)
{ {

View file

@ -84,14 +84,12 @@ static s32 getBossHealth() {return m_bossHealth;}
static void setIsBossRespawn( u8 newIsBossRespawn) {m_isBossRespawn=newIsBossRespawn;} static void setIsBossRespawn( u8 newIsBossRespawn) {m_isBossRespawn=newIsBossRespawn;}
static void setBossHealth( s32 newBossHealth ) {m_bossHealth=newBossHealth;} static void setBossHealth( s32 newBossHealth ) {m_bossHealth=newBossHealth;}
static void DisplayLoadingScreen(int LevelNo=25);
private: private:
void initLayers(); void initLayers();
void initThings(int _respawningLevel); void initThings(int _respawningLevel);
void DisplayLoadingScreen(sLvlTab *lvlTab);
static sLevelHdr *LevelHdr; static sLevelHdr *LevelHdr;
static DVECTOR MapPos; static DVECTOR MapPos;
@ -118,6 +116,9 @@ static DVECTOR s_playerSpawnPos;
int HazardCount; int HazardCount;
sThingHazard **HazardList; sThingHazard **HazardList;
u8 *m_RGBMap;
u8 *m_RGBTable;
static u8 m_isBossRespawn; static u8 m_isBossRespawn;
static s32 m_bossHealth; static s32 m_bossHealth;

View file

@ -231,18 +231,21 @@ extern int s_globalLevelSelectThing;
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CMapScene::init() void CMapScene::init()
{ {
CLevel::DisplayLoadingScreen();
m_font=new ("map screen font") FontBank(); m_font=new ("map screen font") FontBank();
m_font->initialise(&standardFont); m_font->initialise(&standardFont);
m_font->setOt(10); m_font->setOt(10);
m_font->setJustification(FontBank::JUST_LEFT); m_font->setJustification(FontBank::JUST_LEFT);
m_screenImage=MemAlloc(512*256*2,"MapScreen");
m_currentChapterSelection=s_chapterToStartOn; m_currentChapterSelection=s_chapterToStartOn;
/*
m_screenImage=MemAlloc(512*256*2,"MapScreen");
// m_mapBackgroundImage=(char*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(m_mapBackgroundImage); // m_mapBackgroundImage=(char*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(m_mapBackgroundImage);
u8 *Back=(u8*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(Back); u8 *Back=(u8*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(Back);
LZNP_Decode(Back,(u8*)m_screenImage); LZNP_Decode(Back,(u8*)m_screenImage);
MemFree(Back); MemFree(Back);
*/
m_screenImage=(char*)LoadPakScreen(MAP_MAP_BACKGROUND_GFX);
// Load level Gfx // Load level Gfx
for (int i=0; i<MAP_GFX_MAX; i++) for (int i=0; i<MAP_GFX_MAX; i++)

View file

@ -150,7 +150,7 @@ int fw=200;
int fh=20; int fh=20;
void CShopScene::init() void CShopScene::init()
{ {
m_image=CFileIO::loadFile(BACKDROP_SHOP_GFX); m_image=LoadPakScreen(BACKDROP_SHOP_GFX);
ASSERT(m_image); ASSERT(m_image);
SetScreenImage((u8*)m_image); SetScreenImage((u8*)m_image);

View file

@ -6,6 +6,7 @@
#include "system\vid.h" #include "system\vid.h"
#include "gfx\prim.h" #include "gfx\prim.h"
#include "fileio\fileio.h" #include "fileio\fileio.h"
#include "utils\lznp.h"
/*****************************************************************************/ /*****************************************************************************/
@ -283,7 +284,7 @@ void VidSetRes(int x, int y)
void VidInit() void VidInit()
{ {
// Wap up a loading screen // Wap up a loading screen
u8 *screenData=CFileIO::loadFile(LOADINGSCREENS_BOOTSCREEN_GFX,"Loading Screen"); u8 *screenData=LoadPakScreen(LOADINGSCREENS_BOOTSCREEN_GFX);
SetScreenImage(screenData); SetScreenImage(screenData);
// VidSetXYOfs( ScreenXOfs, ScreenYOfs ); // VidSetXYOfs( ScreenXOfs, ScreenYOfs );
@ -402,6 +403,19 @@ if(ScreenClipBox==2)
} }
/*****************************************************************************/
u8 *LoadPakScreen(int Filename)
{
u8 *PakData=CFileIO::loadFile((FileEquate)Filename,"PakScreen");
u8 *Screen=(u8*)MemAlloc(512*256*2,"Screen");
LZNP_Decode(PakData,Screen);
MemFree(PakData);
return(Screen);
}
/*****************************************************************************/ /*****************************************************************************/
/*** VRAM VIEWER *************************************************************/ /*** VRAM VIEWER *************************************************************/
/*****************************************************************************/ /*****************************************************************************/

View file

@ -66,4 +66,6 @@ void SetScreenImage(u8 *Ptr);
u8 *GetScreenImage(); u8 *GetScreenImage();
void ClearScreenImage(); void ClearScreenImage();
u8 *LoadPakScreen(int Filename);
#endif #endif

Binary file not shown.

View file

@ -221,6 +221,12 @@ struct sLayerShadeHdr
sLayerShadeBackGfx *GfxList; sLayerShadeBackGfx *GfxList;
}; };
//---------------------------------------------------------------------------
struct sLayerRGBHdr
{
u32 RGBMap;
u32 RGBTable;
};
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
struct sModel struct sModel
{ {
@ -244,6 +250,7 @@ struct sLevelHdr
u32 TriggerList; u32 TriggerList;
u32 FXList; u32 FXList;
u32 HazardList; u32 HazardList;
u32 RGBLayer;
u16 PlayerStartX,PlayerStartY; u16 PlayerStartX,PlayerStartY;