This commit is contained in:
Daveo 2000-09-11 15:34:59 +00:00
parent c84c6e226f
commit 3037605b5a
6 changed files with 58 additions and 159 deletions

View file

@ -17,18 +17,24 @@
CAnimTex *AnimTexList=0; CAnimTex *AnimTexList=0;
/*****************************************************************************/ /*****************************************************************************/
CAnimTex::CAnimTex()
{
NextTex=0;
}
// If this function changes then DumpThisTPage() will probly need to change too (PKG) /*****************************************************************************/
CAnimTex::~CAnimTex()
{
if (TexData) MemFree(TexData);
}
/*****************************************************************************/
void CAnimTex::AddAnimTex(sFrameHdr *Frame,FileEquate Filename) void CAnimTex::AddAnimTex(sFrameHdr *Frame,FileEquate Filename)
{ {
int TPageX,TPageY,X,Y,W,H; int TPageX,TPageY,X,Y,W,H;
CAnimTex *ThisTex=new ("CAnimTex::AddAnimTex") CAnimTex; CAnimTex *ThisTex=new ("CAnimTex::AddAnimTex") CAnimTex;
if(AnimTexList) ThisTex->NextTex=AnimTexList;
{
ThisTex->NextTex=AnimTexList;
}
AnimTexList=ThisTex; AnimTexList=ThisTex;
X=(u8)Frame->U; X=(u8)Frame->U;
@ -36,7 +42,6 @@ CAnimTex *ThisTex=new ("CAnimTex::AddAnimTex") CAnimTex;
W=(u8)Frame->W; W=(u8)Frame->W;
H=(u8)Frame->H; H=(u8)Frame->H;
ThisTex->PixPerWord=0;
switch (((Frame->TPage)>>7)&0x003) switch (((Frame->TPage)>>7)&0x003)
{ {
case 0: case 0:
@ -77,81 +82,33 @@ CAnimTex *ThisTex=new ("CAnimTex::AddAnimTex") CAnimTex;
} }
/*****************************************************************************/
/*
void CAnimTex::GetTexData()
{
CAnimTex *ThisTex=AnimTexList;
while (ThisTex)
{
if (!ThisTex->TexData)
{
RECT Rect=ThisTex->Rect;
ThisTex->TexData=(u32*)MemAlloc((Rect.w*Rect.h)*sizeof(u16), "AnTx");
DrawSync(0);
StoreImage(&Rect,(u32*)ThisTex->TexData);
}
ThisTex=ThisTex->NextTex;
}
}
*/
/*****************************************************************************/ /*****************************************************************************/
void CAnimTex::DumpThisTPage(FileEquate TexName) void CAnimTex::DumpThisTPage(FileEquate TexName)
{ {
CAnimTex *prevTex, *thisTex,*nextTex; CAnimTex *PrevTex, *ThisTex, *NextTex;
prevTex=NULL; PrevTex=NULL;
thisTex=AnimTexList; ThisTex=AnimTexList;
while(thisTex) while(ThisTex)
{
nextTex=thisTex->NextTex;
if(thisTex->TexName==TexName)
{ {
if(prevTex) NextTex=ThisTex->NextTex;
prevTex->NextTex=nextTex; if(ThisTex->TexName==TexName)
if(thisTex->TexData) {
MemFree(thisTex->TexData); if (PrevTex) PrevTex->NextTex=NextTex;
if(thisTex==AnimTexList) if (ThisTex==AnimTexList) AnimTexList=NextTex;
AnimTexList=nextTex; delete ThisTex;
delete thisTex; }
}
else else
{ {
prevTex=thisTex; PrevTex=ThisTex;
}
ThisTex=NextTex;
} }
thisTex=nextTex;
}
// CAnimTex::DumpAll();
} }
/*****************************************************************************/ /*****************************************************************************/
void CAnimTex::DumpAll()
{
ASSERT(!"DONT USE CAnimTex::DumpAll()");
}
/*
void CAnimTex::DumpAll()
{
CAnimTex *thisTex,*nextTex;
thisTex=AnimTexList;
while(thisTex)
{
nextTex=thisTex->NextTex;
if(thisTex->TexData)
MemFree(thisTex->TexData);
delete thisTex;
thisTex=nextTex;
}
AnimTexList=NULL;
}
*/
/*****************************************************************************/
void CAnimTex::AnimateTex() void CAnimTex::AnimateTex()
@ -187,7 +144,6 @@ int Time = GameState::getTimeSinceLast();
ThisTex->Count+=(ThisTex->Speed * Time)>> 12; ThisTex->Count+=(ThisTex->Speed * Time)>> 12;
ThisTex->Count%=(ThisTex->Rect.h<<2); ThisTex->Count%=(ThisTex->Rect.h<<2);
ThisTex=ThisTex->NextTex; ThisTex=ThisTex->NextTex;
} }
} }

View file

@ -11,16 +11,13 @@
class CAnimTex class CAnimTex
{ {
public: public:
CAnimTex() CAnimTex();
{ ~CAnimTex();
NextTex=0;
}
static void AddAnimTex(sFrameHdr *Frame,FileEquate Filename); static void AddAnimTex(sFrameHdr *Frame,FileEquate Filename);
static void AnimateTex(); static void AnimateTex();
static void GetTexData(); static void GetTexData();
//static void DumpThisTPage(int _tpage);
static void DumpThisTPage(FileEquate TexName); static void DumpThisTPage(FileEquate TexName);
static void DumpAll();
private: private:
CAnimTex *NextTex; CAnimTex *NextTex;
@ -32,26 +29,6 @@ private:
u8 TPage; u8 TPage;
}; };
/*
typedef struct
{
u16 TPage;
u16 Clut;
s8 XOfs;
s8 YOfs;
s8 W;
s8 H;
u8 U;
u8 V;
u8 Rotated;
u8 Cycle;
} sFrameHdr;
*/
/*****************************************************************************/ /*****************************************************************************/

View file

@ -54,18 +54,18 @@ s16 standardFontTab[]=
-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,
/* ! " # $ % & ' */ -1,FRM_PR_FONTINGAME_0037,FRM_PR_FONTINGAME_0038,-1,FRM_PR_FONTINGAME_0052,FRM_PR_FONTINGAME_0039,FRM_PR_FONTINGAME_0040,FRM_PR_FONTINGAME_0036, /* ! " # $ % & ' */ -1,FRM_FONT_0037,FRM_FONT_0038,-1,FRM_FONT_0052,FRM_FONT_0039,FRM_FONT_0040,FRM_FONT_0036,
/* ( ) * + , - . / */ FRM_PR_FONTINGAME_0042,FRM_PR_FONTINGAME_0043,FRM_PR_FONTINGAME_0041,-1,FRM_PR_FONTINGAME_0047,FRM_PR_FONTINGAME_0044,FRM_PR_FONTINGAME_0053,FRM_PR_FONTINGAME_0050, /* ( ) * + , - . / */ FRM_FONT_0042,FRM_FONT_0043,FRM_FONT_0041,-1,FRM_FONT_0047,FRM_FONT_0044,FRM_FONT_0053,FRM_FONT_0050,
/* 0 1 2 3 4 5 6 7 */ FRM_PR_FONTINGAME_0026,FRM_PR_FONTINGAME_0027,FRM_PR_FONTINGAME_0028,FRM_PR_FONTINGAME_0029,FRM_PR_FONTINGAME_0030,FRM_PR_FONTINGAME_0031,FRM_PR_FONTINGAME_0032,FRM_PR_FONTINGAME_0033, /* 0 1 2 3 4 5 6 7 */ FRM_FONT_0026,FRM_FONT_0027,FRM_FONT_0028,FRM_FONT_0029,FRM_FONT_0030,FRM_FONT_0031,FRM_FONT_0032,FRM_FONT_0033,
/* 8 9 : ; < = > ? */ FRM_PR_FONTINGAME_0034,FRM_PR_FONTINGAME_0035,FRM_PR_FONTINGAME_0045,FRM_PR_FONTINGAME_0046,FRM_PR_FONTINGAME_0149,-1,FRM_PR_FONTINGAME_0150,FRM_PR_FONTINGAME_0048, /* 8 9 : ; < = > ? */ FRM_FONT_0034,FRM_FONT_0035,FRM_FONT_0045,FRM_FONT_0046,FRM_FONT_0149,-1,FRM_FONT_0150,FRM_FONT_0048,
/* @ A B C D E F G */ -1,FRM_PR_FONTINGAME_0000,FRM_PR_FONTINGAME_0001,FRM_PR_FONTINGAME_0002,FRM_PR_FONTINGAME_0003,FRM_PR_FONTINGAME_0004,FRM_PR_FONTINGAME_0005,FRM_PR_FONTINGAME_0006, /* @ A B C D E F G */ -1,FRM_FONT_0000,FRM_FONT_0001,FRM_FONT_0002,FRM_FONT_0003,FRM_FONT_0004,FRM_FONT_0005,FRM_FONT_0006,
/* H I J K L M N O */ FRM_PR_FONTINGAME_0007,FRM_PR_FONTINGAME_0008,FRM_PR_FONTINGAME_0009,FRM_PR_FONTINGAME_0010,FRM_PR_FONTINGAME_0011,FRM_PR_FONTINGAME_0012,FRM_PR_FONTINGAME_0013,FRM_PR_FONTINGAME_0014, /* H I J K L M N O */ FRM_FONT_0007,FRM_FONT_0008,FRM_FONT_0009,FRM_FONT_0010,FRM_FONT_0011,FRM_FONT_0012,FRM_FONT_0013,FRM_FONT_0014,
/* P Q R S T U V W */ FRM_PR_FONTINGAME_0015,FRM_PR_FONTINGAME_0016,FRM_PR_FONTINGAME_0017,FRM_PR_FONTINGAME_0018,FRM_PR_FONTINGAME_0019,FRM_PR_FONTINGAME_0020,FRM_PR_FONTINGAME_0021,FRM_PR_FONTINGAME_0022, /* P Q R S T U V W */ FRM_FONT_0015,FRM_FONT_0016,FRM_FONT_0017,FRM_FONT_0018,FRM_FONT_0019,FRM_FONT_0020,FRM_FONT_0021,FRM_FONT_0022,
/* X Y Z [ \ ] ^ _ */ FRM_PR_FONTINGAME_0023,FRM_PR_FONTINGAME_0024,FRM_PR_FONTINGAME_0025,FRM_PR_FONTINGAME_0054,FRM_PR_FONTINGAME_0049,FRM_PR_FONTINGAME_0055,-1,FRM_PR_FONTINGAME_0151, /* X Y Z [ \ ] ^ _ */ FRM_FONT_0023,FRM_FONT_0024,FRM_FONT_0025,FRM_FONT_0054,FRM_FONT_0049,FRM_FONT_0055,-1,FRM_FONT_0151,
/* ` a b c d e f g */ -1,FRM_PR_FONTINGAME_0056,FRM_PR_FONTINGAME_0057,FRM_PR_FONTINGAME_0058,FRM_PR_FONTINGAME_0059,FRM_PR_FONTINGAME_0060,FRM_PR_FONTINGAME_0061,FRM_PR_FONTINGAME_0062, /* ` a b c d e f g */ -1,FRM_FONT_0056,FRM_FONT_0057,FRM_FONT_0058,FRM_FONT_0059,FRM_FONT_0060,FRM_FONT_0061,FRM_FONT_0062,
/* h i j k l m n o */ FRM_PR_FONTINGAME_0063,FRM_PR_FONTINGAME_0064,FRM_PR_FONTINGAME_0065,FRM_PR_FONTINGAME_0066,FRM_PR_FONTINGAME_0067,FRM_PR_FONTINGAME_0068,FRM_PR_FONTINGAME_0069,FRM_PR_FONTINGAME_0070, /* h i j k l m n o */ FRM_FONT_0063,FRM_FONT_0064,FRM_FONT_0065,FRM_FONT_0066,FRM_FONT_0067,FRM_FONT_0068,FRM_FONT_0069,FRM_FONT_0070,
/* p q r s t u v w */ FRM_PR_FONTINGAME_0071,FRM_PR_FONTINGAME_0072,FRM_PR_FONTINGAME_0073,FRM_PR_FONTINGAME_0074,FRM_PR_FONTINGAME_0075,FRM_PR_FONTINGAME_0076,FRM_PR_FONTINGAME_0077,FRM_PR_FONTINGAME_0078, /* p q r s t u v w */ FRM_FONT_0071,FRM_FONT_0072,FRM_FONT_0073,FRM_FONT_0074,FRM_FONT_0075,FRM_FONT_0076,FRM_FONT_0077,FRM_FONT_0078,
/* x y z { | } ~ . */ FRM_PR_FONTINGAME_0079,FRM_PR_FONTINGAME_0080,FRM_PR_FONTINGAME_0081,-1,-1,-1,-1,-1, /* x y z { | } ~ . */ FRM_FONT_0079,FRM_FONT_0080,FRM_FONT_0081,-1,-1,-1,-1,-1,
/* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1, /* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1,
/* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1, /* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1,
/* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1, /* <20> <20> <20> <20> <20> <20> <20> <20> */ -1,-1,-1,-1,-1,-1,-1,-1,

View file

@ -12,7 +12,7 @@
#include "gfx\tpage.h" #include "gfx\tpage.h"
#endif #endif
#define MAX_OT (2048) #define MAX_OT (1024)
#define MAX_PRIMS (1024) #define MAX_PRIMS (1024)
#define USE_NTAGS 1 #define USE_NTAGS 1
@ -229,24 +229,19 @@ typedef u32 sOT;
extern sOT *OtPtr; extern sOT *OtPtr;
extern u8 *CurrPrim,*EndPrim; extern u8 *CurrPrim,*EndPrim;
extern u8 *PrimListStart,*PrimListEnd; extern u8 *PrimListStart,*PrimListEnd;
extern int PrimFlipFlag; //extern int PrimFlipFlag;
/********************************************************************************************************/ /********************************************************************************************************/
const u32 PrimSXY_ClipCode = (256 << 16) | 512; void PrimInit();
/********************************************************************************************************/ void PrimDisplay();
void PrimInit(); void PrimClip(RECT *r, u32 Depth);
void PrimFullScreen(int Depth);
inline u8 *GetPrimPtr() {return(CurrPrim);}
inline void SetPrimPtr(u8 *Ptr) {CurrPrim=Ptr;}
void PrimDisplay(); LINE_F2 *DrawLine(int _x0,int _y0,int _x1,int _y1,int _r,int _g,int _b,int _ot);
void PrimClip(RECT *r, u32 Depth); LINE_G2 *DrawGLine(int _x0,int _y0,int _x1,int _y1,int _r1,int _g1,int _b1,int _r2,int _g2,int _b2,int _ot);
void PrimFullScreen(int Depth);
inline u8 *GetPrimPtr() {return(CurrPrim);}
inline void SetPrimPtr(u8 *Ptr) {CurrPrim=Ptr;}
void SetPrimCheck();
LINE_F2 *DrawLine(int _x0,int _y0,int _x1,int _y1,int _r,int _g,int _b,int _ot);
LINE_G2 *DrawGLine(int _x0,int _y0,int _x1,int _y1,int _r1,int _g1,int _b1,int _r2,int _g2,int _b2,int _ot);
/********************************************************************************************************/ /********************************************************************************************************/
/*** Inlines ********************************************************************************************/ /*** Inlines ********************************************************************************************/
@ -258,40 +253,11 @@ inline void AddPrimToList(void *Prim,u32 Depth)
} }
/*-----------------------------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------------------------*/
inline void GetFrameUV(sFrameHdr *Fr, u8 *U,u8 *V) inline void GetFrameUV(sFrameHdr *Fr, u8 *U,u8 *V) {*U=Fr->U;*V=Fr->V;}
{ inline void GetFrameUVWH(sFrameHdr *Fr,u8 *U,u8 *V,u8 *W,u8 *H) {*U=Fr->U; *V=Fr->V; *W=Fr->W; *H=Fr->H; }
*U=Fr->U; inline void GetFrameWH(sFrameHdr *Fr,u8 *W,u8 *H) {*W=Fr->W; *H=Fr->H;}
*V=Fr->V; inline int GetFrameClut(sFrameHdr *Fr) {return(Fr->Clut);}
} inline int GetFrameTPage(sFrameHdr *Fr) {return(Fr->TPage);}
/*-----------------------------------------------------------------------------------------------------*/
inline void GetFrameUVWH(sFrameHdr *Fr,u8 *U,u8 *V,u8 *W,u8 *H)
{
*U=Fr->U;
*V=Fr->V;
*W=Fr->W;
*H=Fr->H;
}
/*-----------------------------------------------------------------------------------------------------*/
inline void GetFrameWH(sFrameHdr *Fr,u8 *W,u8 *H)
{
*W=Fr->W;
*H=Fr->H;
}
/*-----------------------------------------------------------------------------------------------------*/
inline int GetFrameClut(sFrameHdr *Fr)
{
return(Fr->Clut);
}
/*-----------------------------------------------------------------------------------------------------*/
inline int GetFrameTPage(sFrameHdr *Fr)
{
return(Fr->TPage);
}
#endif #endif

View file

@ -3,7 +3,7 @@
;**************************** ;****************************
include gtereg.h include gtereg.h
include source\gfx\gpu.inc
opt at- opt at-
section .text section .text

View file

@ -3,7 +3,7 @@
;***************************** ;*****************************
include gtereg.h include gtereg.h
include source\gfx\gpu.inc
opt at+ opt at+
section .text section .text