From 06c292656cc190878a3e026a1f83279aaa2b3213 Mon Sep 17 00:00:00 2001 From: Paul Date: Fri, 22 Jun 2001 16:22:03 +0000 Subject: [PATCH] --- source/player/player.cpp | 37 +++++++++++++++++++++++++++++++++++-- source/player/player.h | 17 +++++++++++++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/source/player/player.cpp b/source/player/player.cpp index e4291baf0..dce6bf280 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -611,7 +611,10 @@ void CPlayer::init() m_fontBank->initialise(&standardFont); m_fontBank->setOt(POWERUPUI_OT); - + m_scalableFontBank=new ("PlayerFont") ScalableFontBank(); + m_scalableFontBank->initialise(&standardFont); + m_scalableFontBank->setOt(POWERUPUI_OT); + m_actorGfx=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK); for(i=0;idump(); delete m_fontBank; + m_scalableFontBank->dump(); delete m_scalableFontBank; + m_fontBank->dump(); delete m_fontBank; CPlayerThing::shutdown(); } @@ -1321,6 +1325,35 @@ if(drawlastpos) sb->printFT4(FRM__WATERMETER,x,y,0,0,POWERUPUI_OT); + if(m_healthWaterLevel<(WATER_COUNTER_SECONDTIME*6)) + { + int digit; + DVECTOR src={x+(W/2),y+(H/2)}; + DVECTOR dst={INGAME_SCREENW/2,(INGAME_SCREENH/3)*1}; + int frame; + int digitX,digitY,scale; + char buf[4]; + int r,g,b; + + digit=m_healthWaterLevel/WATER_COUNTER_SECONDTIME; + if(digit<0)digit=0; + + frame=WATER_COUNTER_SECONDTIME-(m_healthWaterLevel%WATER_COUNTER_SECONDTIME); + if(frame>WATER_COUNTER_MOVINGTIME)frame=WATER_COUNTER_MOVINGTIME; + digitX=src.vx+(((dst.vx-src.vx)*frame)/WATER_COUNTER_MOVINGTIME); + digitY=src.vy+(((dst.vy-src.vy)*frame)/WATER_COUNTER_MOVINGTIME); + scale=WATER_COUNTER_STARTSCALE+(((WATER_COUNTER_ENDSCALE-WATER_COUNTER_STARTSCALE)*frame)/WATER_COUNTER_MOVINGTIME); + + sprintf(buf,"%d",digit); + m_scalableFontBank->setJustification(FontBank::JUST_CENTRE); + m_scalableFontBank->setScale(scale); + r=WATER_COUNTER_R2-(((WATER_COUNTER_R2-WATER_COUNTER_R1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6)); + g=WATER_COUNTER_G2-(((WATER_COUNTER_G2-WATER_COUNTER_G1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6)); + b=WATER_COUNTER_B2-(((WATER_COUNTER_B2-WATER_COUNTER_B1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6)); + m_scalableFontBank->setColour(r,g,b); + m_scalableFontBank->print(digitX,digitY,buf); + } + x+=fh->W+SB_UI_GAP_BETWEEN_ITEMS; } if(isWearingBoots()) diff --git a/source/player/player.h b/source/player/player.h index 37cda535c..cdb8c2107 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -196,6 +196,17 @@ public: WATERLEVELSHIFT=5, WATERMAXHEALTH=(255<