This commit is contained in:
Paul 2000-11-03 21:22:27 +00:00
parent 094c8850bc
commit 46791b36f4
7 changed files with 397 additions and 38 deletions

View file

@ -30,6 +30,10 @@
#include "gfx\sprbank.h"
#endif
#ifndef __PRIM_HEADER__
#include "gfx\prim.h"
#endif
/* Std Lib
------- */
@ -194,27 +198,13 @@ void CGUITextReadout::recalc()
---------------------------------------------------------------------- */
void CGUISpriteReadout::init(CGUIObject *_parent,GUIId _id)
{
CGUIObject::init(_parent,_id);
CGUIObjectWithSpriteBank::init(_parent,_id);
m_target=0;
m_data=0;
m_sprites=new ("SpriteReadout:sprites") SpriteBank();
m_sprites->load(UI_UIGFX_SPR);
m_lastValue=-1;
m_frame=0;
m_x=m_y=0;
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUISpriteReadout::shutdown()
{
CGUIObject::shutdown();
m_sprites->dump(); delete m_sprites; m_sprites=0;
setSpriteBank(UI_UIGFX_SPR);
}
@ -256,9 +246,9 @@ void CGUISpriteReadout::render()
if(!isHidden())
{
m_sprites->printFT4(m_frame,getParentX()+m_x,getParentY()+m_y,0,0,getOt());
getSpriteBank()->printFT4(m_frame,getParentX()+m_x,getParentY()+m_y,0,0,getOt());
}
CGUIObject::render();
CGUIObjectWithSpriteBank::render();
}
@ -310,7 +300,7 @@ void CGUISpriteReadout::recalc()
data++;
}
while(tmp<data->m_value);
fh=m_sprites->getFrameHeader(m_frame);
fh=getSpriteBank()->getFrameHeader(m_frame);
#ifdef __VERSION_DEBUG__
if(fh->W>getW()-(BORDERWIDTH*2)||
@ -326,5 +316,117 @@ void CGUISpriteReadout::recalc()
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::init(CGUIObject *_parent,GUIId _id)
{
CGUIObject::init(_parent,_id);
setReadoutTarget(0);
setReadoutRange(0,255);
m_markerOffset=0;
m_lastValue=-1;
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::setReadoutTarget(int *_target)
{
m_target=_target;
recalc();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::setReadoutRange(int _min,int _max)
{
m_min=_min;
m_max=_max;
recalc();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::render()
{
POLY_G4 *g4;
int x,y,w,h;
int r,g,b;
int ot;
x=getX()+getParentX();
y=getY()+getParentY();
w=getW();
h=getH();
r=g=b=isSelected()?245:110;
ot=getOt();
DrawLine(x,y+(h/2),x+w,y+(h/2),r,g,b,ot);
DrawLine(x+m_markerOffset,y,x+m_markerOffset,y+h,r,g,b,ot);
CGUIObject::render();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::think(int _frames)
{
if(m_lastValue!=*m_target)
{
recalc();
}
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIBarReadout::recalc()
{
if(m_target)
{
int w,offset;
int scaler;
scaler=(getW()<<8)/(m_max-m_min);
offset=(scaler*(*m_target-m_min))>>8;
m_markerOffset=offset;
m_lastValue=*m_target;
}
}
/*===========================================================================
end */