This commit is contained in:
Daveo 2001-04-01 22:55:15 +00:00
parent a9027a5589
commit bcd24ae61b
3 changed files with 57 additions and 25 deletions

View File

@ -106,7 +106,7 @@ void CPauseMenu::init()
STR__DEBUG__FULLUNARMED_MODE, STR__DEBUG__FULLUNARMED_MODE,
&newmode,PLAYER_MODE_FULLUNARMED); &newmode,PLAYER_MODE_FULLUNARMED);
xpos+=TEXT_SPACING; xpos+=TEXT_SPACING;
#if defined(__USER_paul__) || defined(__USER_charles__) #if defined(__USER_paul__) || defined(__USER_charles__) || defined(__USER_daveo__)
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__BALLOON_MODE, STR__DEBUG__BALLOON_MODE,

View File

@ -23,11 +23,19 @@ void CActorGfx::Init(FileEquate _Filename)
CActorPool::GetActor(Filename); CActorPool::GetActor(Filename);
} }
int DefTPX=512;
int DefTPY=256;
int ShadowXOfs=32;
int ShadowYOfs=32;
int TPInc=64;
/*****************************************************************************/ /*****************************************************************************/
CActorGfx::CActorGfx(FileEquate _Filename) CActorGfx::CActorGfx(FileEquate _Filename,int Idx)
{ {
int i; int i;
Filename=_Filename; Filename=_Filename;
ActorNo=Idx;
SpriteBank=(sSpriteAnimBank*)CFileIO::loadFile(Filename); SpriteBank=(sSpriteAnimBank*)CFileIO::loadFile(Filename);
SpriteBank->AnimList=(sSpriteAnim*) MakePtr(SpriteBank,(int)SpriteBank->AnimList); SpriteBank->AnimList=(sSpriteAnim*) MakePtr(SpriteBank,(int)SpriteBank->AnimList);
@ -35,19 +43,32 @@ int i;
SpriteBank->Palette=(u8*) MakePtr(SpriteBank,(int)SpriteBank->Palette); SpriteBank->Palette=(u8*) MakePtr(SpriteBank,(int)SpriteBank->Palette);
// FixUp AnimList // FixUp AnimList
DAVE_DBGMSG("Anims %i\n",SpriteBank->AnimCount);
for (i=0; i<SpriteBank->AnimCount; i++) for (i=0; i<SpriteBank->AnimCount; i++)
{ {
sSpriteAnim *ThisAnim=&SpriteBank->AnimList[i]; sSpriteAnim *ThisAnim=&SpriteBank->AnimList[i];
ThisAnim->Anim=(u16*) MakePtr(SpriteBank,(int)ThisAnim->Anim); ThisAnim->Anim=(u16*) MakePtr(SpriteBank,(int)ThisAnim->Anim);
} }
// FixUp FrameList // FixUp FrameList
DAVE_DBGMSG("Anims %i\n",SpriteBank->FrameCount);
for (i=0; i<SpriteBank->FrameCount; i++) for (i=0; i<SpriteBank->FrameCount; i++)
{ {
sSpriteFrame *ThisFrame=&SpriteBank->FrameList[i]; sSpriteFrame *ThisFrame=&SpriteBank->FrameList[i];
ThisFrame->PAKSpr=(u8*) MakePtr(SpriteBank,(int)ThisFrame->PAKSpr); ThisFrame->PAKSpr=(u8*) MakePtr(SpriteBank,(int)ThisFrame->PAKSpr);
} }
DAVE_DBGMSG("Anims %i\n",SpriteBank->AnimCount); TexX=DefTPX+(TPInc*ActorNo);
TexY=DefTPY+4;
ClutX=TexX;
ClutY=DefTPY;
// upload clut
RECT Rect;
Rect.x=ClutX;
Rect.y=ClutY;
Rect.w=SpriteBank->ColorCount;
Rect.h=1;
LoadImage( &Rect, (u32*)SpriteBank->Palette);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -57,13 +78,6 @@ CActorGfx::~CActorGfx()
} }
/*****************************************************************************/ /*****************************************************************************/
int TPP=0;
int TPA=0;
int TPX=512;
int TPY=256;
int ShadowXOfs=32;
int ShadowYOfs=32;
POLY_FT4 *CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool XFlip,bool YFlip,bool Shadow) POLY_FT4 *CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool XFlip,bool YFlip,bool Shadow)
{ {
sSpriteAnim &ThisAnim=SpriteBank->AnimList[Anim]; sSpriteAnim &ThisAnim=SpriteBank->AnimList[Anim];
@ -72,17 +86,11 @@ sSpriteFrame &ThisFrame=SpriteBank->FrameList[FrameNo];
u8 Buffer[64*64]; u8 Buffer[64*64];
PAK_doUnpak(Buffer,ThisFrame.PAKSpr); PAK_doUnpak(Buffer,ThisFrame.PAKSpr);
// clut
RECT Rect;
Rect.x=512;
Rect.y=TPY;
Rect.w=SpriteBank->ColorCount;
Rect.h=1;
LoadImage( &Rect, (u32*)SpriteBank->Palette);
// Gfx // Gfx
Rect.x=512; RECT Rect;
Rect.y=TPY+4; Rect.x=TexX;
Rect.y=TexY;
Rect.w=ThisFrame.W/4; Rect.w=ThisFrame.W/4;
Rect.h=ThisFrame.H; Rect.h=ThisFrame.H;
LoadImage( &Rect, (u32*)Buffer); LoadImage( &Rect, (u32*)Buffer);
@ -90,8 +98,8 @@ RECT Rect;
POLY_FT4 *Ft4=GetPrimFT4(); POLY_FT4 *Ft4=GetPrimFT4();
SetUpFT4(Ft4,&ThisFrame,Pos.vx,Pos.vy,XFlip,YFlip); SetUpFT4(Ft4,&ThisFrame,Pos.vx,Pos.vy,XFlip,YFlip);
setRGB0(Ft4,128,128,128); setRGB0(Ft4,128,128,128);
setTPage(Ft4,0,0,TPX,TPY+4); setTPage(Ft4,0,0,TexX,TexY);
setClut(Ft4, TPX, TPY); setClut(Ft4, ClutX, ClutY);
AddPrimToList(Ft4,0); AddPrimToList(Ft4,0);
if (Shadow) if (Shadow)
@ -148,8 +156,8 @@ int H=ThisFrame->H;
Ft4->v3=V+H; Ft4->v3=V+H;
} }
X+=ThisFrame->XOfs; X-=ThisFrame->XOfs;
Y+=ThisFrame->YOfs; Y-=ThisFrame->YOfs;
setXYWH(Ft4,X,Y,W,H); setXYWH(Ft4,X,Y,W,H);
} }
@ -159,6 +167,24 @@ int H=ThisFrame->H;
void CActorGfx::Dump() void CActorGfx::Dump()
{ {
} }
/*****************************************************************************/
int CActorGfx::getFrameWidth(int Anim,int Frame)
{
sSpriteAnim &ThisAnim=SpriteBank->AnimList[Anim];
u16 FrameNo=ThisAnim.Anim[Frame];
sSpriteFrame &ThisFrame=SpriteBank->FrameList[FrameNo];
return(ThisFrame.W);
}
/*****************************************************************************/
int CActorGfx::getFrameHeight(int Anim,int Frame)
{
sSpriteAnim &ThisAnim=SpriteBank->AnimList[Anim];
u16 FrameNo=ThisAnim.Anim[Frame];
sSpriteFrame &ThisFrame=SpriteBank->FrameList[FrameNo];
return(ThisFrame.H);
}
/*****************************************************************************/ /*****************************************************************************/
/*****************************************************************************/ /*****************************************************************************/
@ -198,6 +224,7 @@ CActorGfx *CActorPool::GetActor(FileEquate Filename)
{ {
CActorGfx *NewActor; CActorGfx *NewActor;
int Idx; int Idx;
// Already Loaded? // Already Loaded?
Idx=FindIdx(Filename); Idx=FindIdx(Filename);
if (Idx!=-1) return(ActorList[Idx]); if (Idx!=-1) return(ActorList[Idx]);
@ -206,7 +233,7 @@ int Idx;
Idx=FindFreeIdx(); Idx=FindFreeIdx();
ASSERT(Idx!=-1); ASSERT(Idx!=-1);
NewActor=new ("ActorPool") CActorGfx(Filename); NewActor=new ("ActorPool") CActorGfx(Filename,Idx);
ActorList[Idx]=NewActor; ActorList[Idx]=NewActor;
return(NewActor); return(NewActor);

View File

@ -16,7 +16,7 @@
class CActorGfx class CActorGfx
{ {
public: public:
CActorGfx(FileEquate Filename); CActorGfx(FileEquate Filename,int No);
virtual ~CActorGfx(); virtual ~CActorGfx();
void Init(FileEquate _Filename); void Init(FileEquate _Filename);
@ -24,6 +24,8 @@ virtual ~CActorGfx();
void Dump(); void Dump();
int getFrameCount(int Anim) {return(SpriteBank->AnimList[Anim].FrameCount);} int getFrameCount(int Anim) {return(SpriteBank->AnimList[Anim].FrameCount);}
int getFrameWidth(int Anim,int Frame);
int getFrameHeight(int Anim,int Frame);
FileEquate GetFilename() {return(Filename);} FileEquate GetFilename() {return(Filename);}
private: private:
@ -31,6 +33,9 @@ private:
FileEquate Filename; FileEquate Filename;
sSpriteAnimBank *SpriteBank; sSpriteAnimBank *SpriteBank;
int ActorNo; // qwik bodge for mo :oP
int TexX,TexY;
int ClutX,ClutY;
}; };
/*****************************************************************************/ /*****************************************************************************/