This commit is contained in:
parent
057cb931bb
commit
e5a2e9a6ed
21 changed files with 121 additions and 95 deletions
|
@ -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=I’m ready. I’m ready. I’m ready. Oops!
|
eng=I’m ready. I’m ready. I’m 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=I’m on my way!!
|
eng=I’m 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]
|
||||||
|
|
10
makefile.gfx
10
makefile.gfx
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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++;
|
||||||
|
|
|
@ -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];
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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++)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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 *************************************************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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.
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue