diff --git a/source/frontend/scrollbg.cpp b/source/frontend/scrollbg.cpp index bdd0dcd07..84995f84c 100644 --- a/source/frontend/scrollbg.cpp +++ b/source/frontend/scrollbg.cpp @@ -18,10 +18,6 @@ #include "frontend\scrollbg.h" -//#ifndef __UTILS_HEADER__ -//#include "utils\utils.h" -//#endif - #ifndef __GFX_SPRBANK_H__ #include "gfx\sprbank.h" #endif @@ -70,6 +66,8 @@ void CScrollyBackground::init() setSpeedScale(DEFAULT_SPEED_SCALE); setOt(DEFAULT_OT); setFrame(FRM__BG1); + setTheDrawMode(DRAWMODE_NORMAL); + setColour(128,128,128); } @@ -93,10 +91,23 @@ void CScrollyBackground::shutdown() ---------------------------------------------------------------------- */ void CScrollyBackground::render() { + int smode; POLY_FT4 *ft4; sFrameHdr *fh; int x,y,w,h; + switch(m_drawMode) + { + default: + case DRAWMODE_NORMAL: + smode=0; + break; + + case DRAWMODE_ADDITIVE: + smode=1; + break; + } + fh=m_sprites->getFrameHeader(m_frame); w=fh->W; h=fh->H; @@ -107,7 +118,10 @@ void CScrollyBackground::render() do { ft4=m_sprites->printFT4(fh,x,y,0,0,m_ot); + setShadeTex(ft4,0); setSemiTrans(ft4,true); + ft4->tpage|=(smode<<5); + setRGB0(ft4,m_r,m_g,m_b); x+=w; } while(x<512); diff --git a/source/frontend/scrollbg.h b/source/frontend/scrollbg.h index 69c4ec308..50d681c40 100644 --- a/source/frontend/scrollbg.h +++ b/source/frontend/scrollbg.h @@ -37,6 +37,12 @@ class CScrollyBackground { public: + typedef enum + { + DRAWMODE_NORMAL, + DRAWMODE_ADDITIVE, + }DRAWMODE; + void init(); void shutdown(); void render(); @@ -46,7 +52,8 @@ public: void setSpeedScale(int _speedScale) {m_speedScale=_speedScale;} void setOt(int _ot) {m_ot=_ot;} void setFrame(int _frame) {m_frame=_frame;} - + void setTheDrawMode(DRAWMODE _drawMode) {m_drawMode=_drawMode;} + void setColour(u8 _r,u8 _g,u8 _b) {m_r=_r;m_g=_g;m_b=_b;} private: enum @@ -63,6 +70,8 @@ private: int m_speedScale; int m_ot; int m_frame; + DRAWMODE m_drawMode; + u8 m_r,m_g,m_b; };