From 3153c50369e95c280b3edbde0d5b6b843b7a5d47 Mon Sep 17 00:00:00 2001 From: Daveo Date: Tue, 30 Jan 2001 20:54:27 +0000 Subject: [PATCH] --- source/gfx/animtex.cpp | 36 ++++++++++++++---------------------- source/gfx/animtex.h | 31 +++++++++++++++++++------------ 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/source/gfx/animtex.cpp b/source/gfx/animtex.cpp index 25136165a..8e7738ec4 100644 --- a/source/gfx/animtex.cpp +++ b/source/gfx/animtex.cpp @@ -15,7 +15,7 @@ #endif CAnimTex *AnimTexList=0; -CMoveTex *MoveTexList=0; +CMoveTex CMoveTex::MoveTexList[CMoveTex::MOVETEX_MAX]; /*****************************************************************************/ CAnimTex::CAnimTex() @@ -110,8 +110,6 @@ CAnimTex *PrevTex, *ThisTex, *NextTex; } /*****************************************************************************/ - - void CAnimTex::AnimateTex() { CAnimTex *ThisTex=AnimTexList; @@ -152,26 +150,21 @@ int Time = GameState::getFramesSinceLast(); /*****************************************************************************/ /*****************************************************************************/ -/*****************************************************************************/ -CMoveTex::CMoveTex() -{ - NextTex=0; -} - /*****************************************************************************/ void CMoveTex::Add(sTexInfo &SrcFrame,sTexInfo &DstFrame) { -CMoveTex *ThisTex=new ("CMoveTex::AddMoveTex") CMoveTex; - +int Idx; // ASSERT(SrcFrame.w==DstFrame.w); // ASSERT(SrcFrame.h==DstFrame.h); - ThisTex->NextTex=MoveTexList; - MoveTexList=ThisTex; + for (Idx=0; IdxSrc=&SrcFrame; - ThisTex->Dst=&DstFrame; + ASSERT(IdxSrc,ThisTex->Dst->x,ThisTex->Dst->y); - NextTex=ThisTex->NextTex; - delete ThisTex; - ThisTex=NextTex; - } - MoveTexList=0; + CMoveTex &ThisTex=MoveTexList[Idx]; + if (!ThisTex.Src) return; + MoveImage((RECT*)ThisTex.Src,ThisTex.Dst->x,ThisTex.Dst->y); + ThisTex.Src=0; + } } /*****************************************************************************/ diff --git a/source/gfx/animtex.h b/source/gfx/animtex.h index bfb762723..5ffeae0d2 100644 --- a/source/gfx/animtex.h +++ b/source/gfx/animtex.h @@ -21,13 +21,13 @@ static void GetTexData(); static void DumpThisTPage(FileEquate TexName); private: - CAnimTex *NextTex; - RECT Rect; - s16 Speed,Count; - s16 PixPerWord; - u32 *TexData; - FileEquate TexName; - u8 TPage; + CAnimTex *NextTex; + RECT Rect; + s16 Speed,Count; + s16 PixPerWord; + u32 *TexData; + FileEquate TexName; + u8 TPage; }; @@ -35,16 +35,23 @@ private: class CMoveTex { public: - CMoveTex(); -// ~CMoveTex(); + enum + { + MOVETEX_MAX=16, + }; + + CMoveTex() + { + Src=0; + } static void Add(sTexInfo &SrcFrame,sTexInfo &DstFrame); static void MoveTex(); private: - CMoveTex *NextTex; - sTexInfo *Src,*Dst; - + sTexInfo *Src,*Dst; + +static CMoveTex MoveTexList[]; }; /*****************************************************************************/