This commit is contained in:
parent
5942db701a
commit
3a3f10caf5
2 changed files with 104 additions and 96 deletions
|
@ -63,7 +63,7 @@ private:
|
||||||
{
|
{
|
||||||
|
|
||||||
TEXTBOX_X=125,
|
TEXTBOX_X=125,
|
||||||
TEXTBOX_Y=35,
|
TEXTBOX_Y=40,
|
||||||
TEXTBOX_WIDTH=357,
|
TEXTBOX_WIDTH=357,
|
||||||
TEXTBOX_HEIGHT=48,
|
TEXTBOX_HEIGHT=48,
|
||||||
TEXTBOX_X_FOR_NARRATOR=512-TEXTBOX_X-TEXTBOX_WIDTH,
|
TEXTBOX_X_FOR_NARRATOR=512-TEXTBOX_X-TEXTBOX_WIDTH,
|
||||||
|
|
|
@ -102,6 +102,10 @@
|
||||||
#include "utils\mathtab.h"
|
#include "utils\mathtab.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GAME_CONVO_H__
|
||||||
|
#include "game\convo.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -1355,111 +1359,115 @@ if(drawlastpos)
|
||||||
|
|
||||||
|
|
||||||
// UI
|
// UI
|
||||||
int count,warn;
|
// Don't draw it when the conversations are active - it's messy :/
|
||||||
sFrameHdr *fh;
|
if(!CConversation::isActive())
|
||||||
char countBuf[5];
|
|
||||||
int x,y;
|
|
||||||
|
|
||||||
// Spat/token count
|
|
||||||
warn=false;
|
|
||||||
if(GameScene.getLevelNumber()!=5)
|
|
||||||
{
|
{
|
||||||
// Spat count
|
int count,warn;
|
||||||
count=m_numSpatulasHeld;
|
sFrameHdr *fh;
|
||||||
fh=sb->getFrameHeader(FRM__SPATULA);
|
char countBuf[5];
|
||||||
if(m_numSpatulasHeld==0)
|
int x,y;
|
||||||
|
|
||||||
|
// Spat/token count
|
||||||
|
warn=false;
|
||||||
|
if(GameScene.getLevelNumber()!=5)
|
||||||
{
|
{
|
||||||
warn=true;
|
// Spat count
|
||||||
|
count=m_numSpatulasHeld;
|
||||||
|
fh=sb->getFrameHeader(FRM__SPATULA);
|
||||||
|
if(m_numSpatulasHeld==0)
|
||||||
|
{
|
||||||
|
warn=true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
// Token count
|
|
||||||
count=CGameSlotManager::getSlotData()->getKelpTokenCollectedCount(GameScene.getChapterNumber()-1,GameScene.getLevelNumber()-1);
|
|
||||||
fh=sb->getFrameHeader(FRM__TOKEN);
|
|
||||||
}
|
|
||||||
sprintf(countBuf,"x%d",count);
|
|
||||||
x=SB_UI_XBASE;
|
|
||||||
y=SB_UI_YBASE;
|
|
||||||
sb->printFT4(fh,x,y,0,0,POWERUPUI_OT);
|
|
||||||
x+=fh->W;
|
|
||||||
if(warn&&m_spatulaWarningTimer&32)
|
|
||||||
{
|
|
||||||
m_fontBank->setColour(255,0,0);
|
|
||||||
}
|
|
||||||
m_fontBank->print(x,y,countBuf);
|
|
||||||
m_fontBank->setColour(128,128,128);
|
|
||||||
x+=SB_UI_GAP_FROM_SPAT_COUNT_TO_PICKUPS;
|
|
||||||
|
|
||||||
if(isWearingDivingHelmet())
|
|
||||||
{
|
|
||||||
// Helmet
|
|
||||||
POLY_FT4 *ft4;
|
|
||||||
int V,W,H,partH;
|
|
||||||
|
|
||||||
ft4=sb->printFT4(FRM__WATERHILIGHT,x,y,0,0,POWERUPUI_OT);
|
|
||||||
setSemiTrans(ft4,true);
|
|
||||||
|
|
||||||
fh=sb->getFrameHeader(FRM__WATER);
|
|
||||||
ft4=sb->printFT4(fh,0,0,0,0,POWERUPUI_OT);
|
|
||||||
setSemiTrans(ft4,true);
|
|
||||||
V=fh->V;
|
|
||||||
W=fh->W;
|
|
||||||
H=fh->H;
|
|
||||||
partH=(H*(255-(m_healthWaterLevel>>WATERLEVELSHIFT)))>>8;
|
|
||||||
if(partH>H)partH=H;
|
|
||||||
setXYWH(ft4,x,y+(partH),W,H-partH);
|
|
||||||
ft4->v0=V+(partH);
|
|
||||||
ft4->v1=V+(partH);
|
|
||||||
|
|
||||||
sb->printFT4(FRM__WATERMETER,x,y,0,0,POWERUPUI_OT);
|
|
||||||
|
|
||||||
if(!getIsInWater()&&m_healthWaterLevel<(WATER_COUNTER_SECONDTIME*6)&&m_currentPlayerModeClass->getState()!=STATE_SOAKUP)
|
|
||||||
{
|
{
|
||||||
int digit;
|
// Token count
|
||||||
DVECTOR src={x+(W/2),y+(H/2)};
|
count=CGameSlotManager::getSlotData()->getKelpTokenCollectedCount(GameScene.getChapterNumber()-1,GameScene.getLevelNumber()-1);
|
||||||
DVECTOR dst={INGAME_SCREENW/2,(INGAME_SCREENH/3)*1};
|
fh=sb->getFrameHeader(FRM__TOKEN);
|
||||||
int frame;
|
}
|
||||||
int digitX,digitY,scale;
|
sprintf(countBuf,"x%d",count);
|
||||||
char buf[4];
|
x=SB_UI_XBASE;
|
||||||
int r,g,b;
|
y=SB_UI_YBASE;
|
||||||
|
sb->printFT4(fh,x,y,0,0,POWERUPUI_OT);
|
||||||
|
x+=fh->W;
|
||||||
|
if(warn&&m_spatulaWarningTimer&32)
|
||||||
|
{
|
||||||
|
m_fontBank->setColour(255,0,0);
|
||||||
|
}
|
||||||
|
m_fontBank->print(x,y,countBuf);
|
||||||
|
m_fontBank->setColour(128,128,128);
|
||||||
|
x+=SB_UI_GAP_FROM_SPAT_COUNT_TO_PICKUPS;
|
||||||
|
|
||||||
digit=m_healthWaterLevel/WATER_COUNTER_SECONDTIME;
|
if(isWearingDivingHelmet())
|
||||||
if(digit<0)digit=0;
|
{
|
||||||
|
// Helmet
|
||||||
|
POLY_FT4 *ft4;
|
||||||
|
int V,W,H,partH;
|
||||||
|
|
||||||
frame=WATER_COUNTER_SECONDTIME-(m_healthWaterLevel%WATER_COUNTER_SECONDTIME);
|
ft4=sb->printFT4(FRM__WATERHILIGHT,x,y,0,0,POWERUPUI_OT);
|
||||||
if(frame>WATER_COUNTER_MOVINGTIME)frame=WATER_COUNTER_MOVINGTIME;
|
setSemiTrans(ft4,true);
|
||||||
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);
|
fh=sb->getFrameHeader(FRM__WATER);
|
||||||
m_scalableFontBank->setJustification(FontBank::JUST_CENTRE);
|
ft4=sb->printFT4(fh,0,0,0,0,POWERUPUI_OT);
|
||||||
m_scalableFontBank->setScale(scale);
|
setSemiTrans(ft4,true);
|
||||||
r=WATER_COUNTER_R2-(((WATER_COUNTER_R2-WATER_COUNTER_R1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6));
|
V=fh->V;
|
||||||
g=WATER_COUNTER_G2-(((WATER_COUNTER_G2-WATER_COUNTER_G1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6));
|
W=fh->W;
|
||||||
b=WATER_COUNTER_B2-(((WATER_COUNTER_B2-WATER_COUNTER_B1)*(m_healthWaterLevel))/(WATER_COUNTER_SECONDTIME*6));
|
H=fh->H;
|
||||||
m_scalableFontBank->setColour(r,g,b);
|
partH=(H*(255-(m_healthWaterLevel>>WATERLEVELSHIFT)))>>8;
|
||||||
m_scalableFontBank->print(digitX,digitY,buf);
|
if(partH>H)partH=H;
|
||||||
|
setXYWH(ft4,x,y+(partH),W,H-partH);
|
||||||
|
ft4->v0=V+(partH);
|
||||||
|
ft4->v1=V+(partH);
|
||||||
|
|
||||||
|
sb->printFT4(FRM__WATERMETER,x,y,0,0,POWERUPUI_OT);
|
||||||
|
|
||||||
|
if(!getIsInWater()&&m_healthWaterLevel<(WATER_COUNTER_SECONDTIME*6)&&m_currentPlayerModeClass->getState()!=STATE_SOAKUP)
|
||||||
|
{
|
||||||
|
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())
|
||||||
|
{
|
||||||
|
// Boots
|
||||||
|
int pickupX,pickupY;
|
||||||
|
sFrameHdr *fh=sb->getFrameHeader(FRM__SHOE);
|
||||||
|
if(m_squeakyBootsTimer>SQUEAKY_BOOTS_FLASH_TIME||m_squeakyBootsTimer&2)
|
||||||
|
{
|
||||||
|
sb->printFT4(fh,x,y,0,0,POWERUPUI_OT);
|
||||||
|
sb->printFT4(fh,x+4,y+4,0,0,POWERUPUI_OT);
|
||||||
|
}
|
||||||
|
x+=fh->W+SB_UI_GAP_BETWEEN_ITEMS+4;
|
||||||
}
|
}
|
||||||
|
|
||||||
x+=fh->W+SB_UI_GAP_BETWEEN_ITEMS;
|
// Mode specific ui
|
||||||
|
m_currentPlayerModeClass->renderModeUi();
|
||||||
}
|
}
|
||||||
if(isWearingBoots())
|
|
||||||
{
|
|
||||||
// Boots
|
|
||||||
int pickupX,pickupY;
|
|
||||||
sFrameHdr *fh=sb->getFrameHeader(FRM__SHOE);
|
|
||||||
if(m_squeakyBootsTimer>SQUEAKY_BOOTS_FLASH_TIME||m_squeakyBootsTimer&2)
|
|
||||||
{
|
|
||||||
sb->printFT4(fh,x,y,0,0,POWERUPUI_OT);
|
|
||||||
sb->printFT4(fh,x+4,y+4,0,0,POWERUPUI_OT);
|
|
||||||
}
|
|
||||||
x+=fh->W+SB_UI_GAP_BETWEEN_ITEMS+4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mode specific ui
|
|
||||||
m_currentPlayerModeClass->renderModeUi();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue