This commit is contained in:
Paul 2000-10-31 16:43:44 +00:00
parent 5116958bac
commit c9b5825e8e
9 changed files with 134 additions and 152 deletions

View File

@ -39,3 +39,10 @@ eng=
; Debugging text
; The following texts DO NOT require translation
; ---------------------------------------------------------------
[STR__PAULS_TEST_STRING_1]
eng=This is a test string.
[STR__PAULS_TEST_STRING_2]
eng=This is another test string with more text.
[STR__PAULS_TEST_STRING_3]
eng=Finally, another example containing wordage of increased length.

View File

@ -67,6 +67,10 @@ gfx_src := prim \
# anim \
# bilboard
gui_src := gui \
greadout \
gtextbox
locale_src := textdbase
mem_src := memory

View File

@ -335,7 +335,7 @@ int FontBank::printChar( char _char,int _x,int _y )
---------------------------------------------------------------------- */
int FontBank::getStringWidth( char * text )
{
return getStrWrapLen( text, VidGetScrW() );
return getStrWrapLen( text, m_printArea.w );
}
/*----------------------------------------------------------------------

View File

@ -185,6 +185,18 @@ void CGUIObject::think(int _frames)
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CGUIObject::recalc()
{
ASSERT(this==m_this);
}
/*----------------------------------------------------------------------
@ -207,7 +219,13 @@ extern void guiOpen()
---------------------------------------------------------------------- */
extern void guiClose()
{
ASSERT(CGUIObject::s_llBase);
// Dump everything automatically
// Don't walk the linked list here but keep removing the head since frame
// objects remove their own children (PKG or do they?)
while(CGUIObject::s_llBase)
{
CGUIObject::s_llBase->shutdown();
}
}

View File

@ -54,29 +54,29 @@ public:
virtual void init(GUIId _id);
virtual void shutdown();
virtual void setObjectX(int _x) {m_x=_x;recalc();}
virtual void setObjectY(int _y) {m_y=_y;recalc();}
virtual void setObjectW(int _w) {m_w=_w;recalc();}
virtual void setObjectH(int _h) {m_h=_h;recalc();}
void setObjectX(int _x) {m_x=_x;recalc();}
void setObjectY(int _y) {m_y=_y;recalc();}
void setObjectW(int _w) {m_w=_w;recalc();}
void setObjectH(int _h) {m_h=_h;recalc();}
void setObjectXY(int _x,int _y) {setObjectX(_x);setObjectY(_y);}
void setObjectWH(int _w,int _h) {setObjectW(_w);setObjectH(_h);}
void setObjectXYWH(int _x,int _y,int _w,int _h) {setObjectXY(_x,_y);setObjectWH(_w,_h);}
virtual void render();
virtual void think(int _frames);
virtual void recalc() {;}
virtual void recalc();
void setFlags(GUI_FLAGS _flags) {m_flags|=_flags;}
void clearFlags(GUI_FLAGS _flags) {m_flags&=_flags^-1;}
int getFlags(GUI_FLAGS _flags) {return (m_flags&_flags)!=0;}
virtual void select() {setFlags(FLAG_SELECTED);}
virtual void unselect() {clearFlags(FLAG_SELECTED);}
virtual int isSelected() {return getFlags(FLAG_SELECTED);}
virtual void hide() {setFlags(FLAG_HIDDEN);}
virtual void unhide() {clearFlags(FLAG_HIDDEN);}
virtual int isHidden() {return getFlags(FLAG_HIDDEN);}
// Quick access functions to the most frequently used flags
void select() {setFlags(FLAG_SELECTED);}
void unselect() {clearFlags(FLAG_SELECTED);}
int isSelected() {return getFlags(FLAG_SELECTED);}
void hide() {setFlags(FLAG_HIDDEN);}
void unhide() {clearFlags(FLAG_HIDDEN);}
int isHidden() {return getFlags(FLAG_HIDDEN);}
protected:

View File

@ -143,7 +143,6 @@ void TranslationDatabase::initialise(bool includeIds)
}
else
s_idDatabase=NULL;
}
/*----------------------------------------------------------------------
@ -185,11 +184,17 @@ void TranslationDatabase::loadLanguage(unsigned int langType)
char const * TranslationDatabase::getString(unsigned int strNum)
{
ASSERT(s_loaded);
if (s_idShow)
return(s_idDatabase->getString(strNum));
if(strNum!=NO_STRING)
{
if (s_idShow)
return(s_idDatabase->getString(strNum));
else
return(s_database->getString(strNum));
}
else
return(s_database->getString(strNum));
{
return "\0";
}
}
/*----------------------------------------------------------------------

View File

@ -51,8 +51,9 @@ enum
-------------------- */
class TranslationDatabase
{
private:
public:
enum{ NO_STRING=60000 }; // PKG - This is a special ID
static void initialise(bool includeIds);
static void loadLanguage(unsigned int langType);
static char const * getString(unsigned int strNum);

View File

@ -46,6 +46,22 @@
#include "gfx\sprbank.h"
#endif
#ifndef __GUI_GUI_H__
#include "gui\gui.h"
#endif
#ifndef __GUI_GTEXTBOX_H__
#include "gui\gtextbox.h"
#endif
#ifndef __GUI_GREADOUT_H__
#include "gui\greadout.h"
#endif
#ifndef __LOCALE_TEXTDBASE_H__
#include "locale\textdbase.h"
#endif
/* Std Lib
------- */
@ -53,11 +69,6 @@
/* Data
---- */
#ifndef __SPR_INGAMEFX_H__
#include <ingamefx.h>
#endif
/*----------------------------------------------------------------------
Tyepdefs && Defines
------------------- */
@ -82,30 +93,37 @@ static FontBank s_fontBank;
Params:
Returns:
---------------------------------------------------------------------- */
int ploopid1=0;
int ploopid2=0;
unsigned int str=STR__PAULS_TEST_STRING_1;
int w=150;
int h=40;
int testValue=1;
CGUITextReadout::TextReadoutData testData[]=
{
{ 1, STR__PAULS_TEST_STRING_1, },
{ 2, STR__PAULS_TEST_STRING_2, },
{ 3, STR__PAULS_TEST_STRING_3, },
{ 0, 0, },
};
static SpriteBank *sprites=NULL;
void CPaulScene::init()
{
s_fontBank.initialise(&standardFont);
guiOpen();
CSoundMediator::setSfxBank(CSoundMediator::INGAME);
CGUITextBox *tb;
tb=new ("textbox") CGUITextBox();
tb->init(1);
tb->setObjectXY(200,130);
CSoundMediator::setSong(CSoundMediator::MUSIC);
CSoundMediator::playSong();
//CXAStream::Init();
PAUL_DBGMSG("initialised..");
ploopid1=CSoundMediator::playSfx(0);
ploopid2=CSoundMediator::playSfx(0);
sprites=new ("bg sprite") SpriteBank();
sprites->load(INGAMEFX_INGAMEFX_SPR);
CGUITextReadout *tr;
tr=new ("textreadout") CGUITextReadout();
tr->init(2);
tr->setObjectXYWH(40,130,120,80);
tr->setReadoutTarget(&testValue);
tr->setReadoutData(testData);
}
@ -117,6 +135,8 @@ void CPaulScene::init()
---------------------------------------------------------------------- */
void CPaulScene::shutdown()
{
s_fontBank.dump();
guiClose();
}
@ -130,7 +150,7 @@ void CPaulScene::render()
{
int logCount;
int i,y,charHeight;
logCount=getNumberOfDbgLinesInLog();
y=20;
charHeight=s_fontBank.getCharHeight();
@ -139,126 +159,25 @@ void CPaulScene::render()
s_fontBank.print(20,y,getDbgLineFromLog(i));
y+=charHeight;
}
POLY_FT4 *ft4=sprites->printFT4(FRM_BACKGROUND,0,0,0,0,1023);
setXYWH(ft4,20,20,512-40,256-40);
setRGB0(ft4,64,64,64);
guiRender();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
int psfx=3;
int pkill=0;
#include "sound\speech.h"
int mvol=10;
int svol=255;
VECTOR ppos;
int psp=0;
void CPaulScene::think(int _frames)
{
/*
int pad;
int sfxId=-1;
int setSfxVolume=false;
int setSongVolume=false;
CGUITextBox *tb;
tb=(CGUITextBox *)guiGetItem(1);
tb->setObjectWH(w,h);
tb->setText(str);
pad=PadGetDown(0);
if(pad&PAD_R1)
{
PAUL_DBGMSG("-------------------");
}
else if(pad&PAD_CROSS)
{
sfxId=psfx;
}
else if(pad&PAD_SQUARE)
{
sfxId=0;
}
else if(pad&PAD_TRIANGLE)
{
sfxId=1;
}
else if(pad&PAD_CIRCLE)
{
sfxId=2;
}
if(sfxId!=-1)
{
CSoundMediator::playSfx(sfxId);
}
if(pad&PAD_START)
{
// PAUL_DBGMSG("stop loopers..");
// CSoundMediator::stopSfx((xmPlayingId)ploopid1);
// CSoundMediator::stopSfx((xmPlayingId)ploopid2);
PAUL_DBGMSG("speech..\n");
CSoundMediator::playSpeech((SpeechEquate)psp);
}
if(pad&PAD_R2)
{
PAUL_DBGMSG("stop all");
CSoundMediator::stopAllSound();
}
#ifdef __USER_paul__
if(pad&PAD_L2)
{
extern int dump;
dump=true;
}
#endif
//CSoundMediator::setposition((xmPlayingId)ploopid,&ppos);
pad=PadGetHeld(0);
if(pad&PAD_UP)
{
mvol+=16;
if(mvol>CSoundMediator::MAX_VOLUME)mvol=CSoundMediator::MAX_VOLUME;
setSongVolume=true;
}
if(pad&PAD_DOWN)
{
mvol-=16;
if(mvol<CSoundMediator::MIN_VOLUME)mvol=CSoundMediator::MIN_VOLUME;
setSongVolume=true;
}
if(pad&PAD_RIGHT)
{
svol+=16;
if(svol>CSoundMediator::MAX_VOLUME)svol=CSoundMediator::MAX_VOLUME;
setSfxVolume=true;
}
if(pad&PAD_LEFT)
{
svol-=16;
if(svol<CSoundMediator::MIN_VOLUME)svol=CSoundMediator::MIN_VOLUME;
setSfxVolume=true;
}
if(setSongVolume) CSoundMediator::setVolume(CSoundMediator::SPEECH,mvol);
if(setSfxVolume) CSoundMediator::setVolume(CSoundMediator::SFX,svol);
if(setSongVolume||setSfxVolume)
{
PAUL_DBGMSG("speech:%d sfx:%d",mvol,svol);
}
*/
{
int pad=PadGetRepeat(0);
int i;
for(i=0;i<16;i++)
{
if(pad&(1<<i))
s_fontBank.print(40+(i*10),120,"+");
}
}
guiThink(GameState::getFramesSinceLast());
}

View File

@ -432,6 +432,34 @@ SOURCE=..\..\..\source\utils\utils.cpp
SOURCE=..\..\..\source\utils\utils.h
# End Source File
# End Group
# Begin Group "gui"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\source\gui\greadout.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\gui\greadout.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\gui\gtextbox.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\gui\gtextbox.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\gui\gui.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\gui\gui.h
# End Source File
# End Group
# End Group
# Begin Group "makefiles"