This commit is contained in:
parent
5116958bac
commit
c9b5825e8e
9 changed files with 134 additions and 152 deletions
|
@ -39,3 +39,10 @@ eng=
|
||||||
; Debugging text
|
; Debugging text
|
||||||
; The following texts DO NOT require translation
|
; 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.
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,10 @@ gfx_src := prim \
|
||||||
# anim \
|
# anim \
|
||||||
# bilboard
|
# bilboard
|
||||||
|
|
||||||
|
gui_src := gui \
|
||||||
|
greadout \
|
||||||
|
gtextbox
|
||||||
|
|
||||||
locale_src := textdbase
|
locale_src := textdbase
|
||||||
|
|
||||||
mem_src := memory
|
mem_src := memory
|
||||||
|
|
|
@ -335,7 +335,7 @@ int FontBank::printChar( char _char,int _x,int _y )
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
int FontBank::getStringWidth( char * text )
|
int FontBank::getStringWidth( char * text )
|
||||||
{
|
{
|
||||||
return getStrWrapLen( text, VidGetScrW() );
|
return getStrWrapLen( text, m_printArea.w );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
|
|
@ -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()
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -54,29 +54,29 @@ public:
|
||||||
virtual void init(GUIId _id);
|
virtual void init(GUIId _id);
|
||||||
virtual void shutdown();
|
virtual void shutdown();
|
||||||
|
|
||||||
virtual void setObjectX(int _x) {m_x=_x;recalc();}
|
void setObjectX(int _x) {m_x=_x;recalc();}
|
||||||
virtual void setObjectY(int _y) {m_y=_y;recalc();}
|
void setObjectY(int _y) {m_y=_y;recalc();}
|
||||||
virtual void setObjectW(int _w) {m_w=_w;recalc();}
|
void setObjectW(int _w) {m_w=_w;recalc();}
|
||||||
virtual void setObjectH(int _h) {m_h=_h;recalc();}
|
void setObjectH(int _h) {m_h=_h;recalc();}
|
||||||
void setObjectXY(int _x,int _y) {setObjectX(_x);setObjectY(_y);}
|
void setObjectXY(int _x,int _y) {setObjectX(_x);setObjectY(_y);}
|
||||||
void setObjectWH(int _w,int _h) {setObjectW(_w);setObjectH(_h);}
|
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);}
|
void setObjectXYWH(int _x,int _y,int _w,int _h) {setObjectXY(_x,_y);setObjectWH(_w,_h);}
|
||||||
|
|
||||||
virtual void render();
|
virtual void render();
|
||||||
virtual void think(int _frames);
|
virtual void think(int _frames);
|
||||||
virtual void recalc() {;}
|
virtual void recalc();
|
||||||
|
|
||||||
void setFlags(GUI_FLAGS _flags) {m_flags|=_flags;}
|
void setFlags(GUI_FLAGS _flags) {m_flags|=_flags;}
|
||||||
void clearFlags(GUI_FLAGS _flags) {m_flags&=_flags^-1;}
|
void clearFlags(GUI_FLAGS _flags) {m_flags&=_flags^-1;}
|
||||||
int getFlags(GUI_FLAGS _flags) {return (m_flags&_flags)!=0;}
|
int getFlags(GUI_FLAGS _flags) {return (m_flags&_flags)!=0;}
|
||||||
|
|
||||||
virtual void select() {setFlags(FLAG_SELECTED);}
|
// Quick access functions to the most frequently used flags
|
||||||
virtual void unselect() {clearFlags(FLAG_SELECTED);}
|
void select() {setFlags(FLAG_SELECTED);}
|
||||||
virtual int isSelected() {return getFlags(FLAG_SELECTED);}
|
void unselect() {clearFlags(FLAG_SELECTED);}
|
||||||
|
int isSelected() {return getFlags(FLAG_SELECTED);}
|
||||||
virtual void hide() {setFlags(FLAG_HIDDEN);}
|
void hide() {setFlags(FLAG_HIDDEN);}
|
||||||
virtual void unhide() {clearFlags(FLAG_HIDDEN);}
|
void unhide() {clearFlags(FLAG_HIDDEN);}
|
||||||
virtual int isHidden() {return getFlags(FLAG_HIDDEN);}
|
int isHidden() {return getFlags(FLAG_HIDDEN);}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -143,7 +143,6 @@ void TranslationDatabase::initialise(bool includeIds)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
s_idDatabase=NULL;
|
s_idDatabase=NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
@ -185,11 +184,17 @@ void TranslationDatabase::loadLanguage(unsigned int langType)
|
||||||
char const * TranslationDatabase::getString(unsigned int strNum)
|
char const * TranslationDatabase::getString(unsigned int strNum)
|
||||||
{
|
{
|
||||||
ASSERT(s_loaded);
|
ASSERT(s_loaded);
|
||||||
|
if(strNum!=NO_STRING)
|
||||||
|
{
|
||||||
if (s_idShow)
|
if (s_idShow)
|
||||||
return(s_idDatabase->getString(strNum));
|
return(s_idDatabase->getString(strNum));
|
||||||
else
|
else
|
||||||
return(s_database->getString(strNum));
|
return(s_database->getString(strNum));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "\0";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
|
|
@ -51,8 +51,9 @@ enum
|
||||||
-------------------- */
|
-------------------- */
|
||||||
class TranslationDatabase
|
class TranslationDatabase
|
||||||
{
|
{
|
||||||
private:
|
|
||||||
public:
|
public:
|
||||||
|
enum{ NO_STRING=60000 }; // PKG - This is a special ID
|
||||||
|
|
||||||
static void initialise(bool includeIds);
|
static void initialise(bool includeIds);
|
||||||
static void loadLanguage(unsigned int langType);
|
static void loadLanguage(unsigned int langType);
|
||||||
static char const * getString(unsigned int strNum);
|
static char const * getString(unsigned int strNum);
|
||||||
|
|
|
@ -46,6 +46,22 @@
|
||||||
#include "gfx\sprbank.h"
|
#include "gfx\sprbank.h"
|
||||||
#endif
|
#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
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -53,11 +69,6 @@
|
||||||
/* Data
|
/* Data
|
||||||
---- */
|
---- */
|
||||||
|
|
||||||
#ifndef __SPR_INGAMEFX_H__
|
|
||||||
#include <ingamefx.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Tyepdefs && Defines
|
Tyepdefs && Defines
|
||||||
------------------- */
|
------------------- */
|
||||||
|
@ -82,30 +93,37 @@ static FontBank s_fontBank;
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
int ploopid1=0;
|
unsigned int str=STR__PAULS_TEST_STRING_1;
|
||||||
int ploopid2=0;
|
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()
|
void CPaulScene::init()
|
||||||
{
|
{
|
||||||
s_fontBank.initialise(&standardFont);
|
s_fontBank.initialise(&standardFont);
|
||||||
|
guiOpen();
|
||||||
|
|
||||||
|
CGUITextBox *tb;
|
||||||
|
tb=new ("textbox") CGUITextBox();
|
||||||
|
tb->init(1);
|
||||||
|
tb->setObjectXY(200,130);
|
||||||
|
|
||||||
CSoundMediator::setSfxBank(CSoundMediator::INGAME);
|
CGUITextReadout *tr;
|
||||||
|
tr=new ("textreadout") CGUITextReadout();
|
||||||
CSoundMediator::setSong(CSoundMediator::MUSIC);
|
tr->init(2);
|
||||||
CSoundMediator::playSong();
|
tr->setObjectXYWH(40,130,120,80);
|
||||||
|
tr->setReadoutTarget(&testValue);
|
||||||
|
tr->setReadoutData(testData);
|
||||||
//CXAStream::Init();
|
|
||||||
PAUL_DBGMSG("initialised..");
|
|
||||||
|
|
||||||
ploopid1=CSoundMediator::playSfx(0);
|
|
||||||
ploopid2=CSoundMediator::playSfx(0);
|
|
||||||
|
|
||||||
sprites=new ("bg sprite") SpriteBank();
|
|
||||||
sprites->load(INGAMEFX_INGAMEFX_SPR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,6 +135,8 @@ void CPaulScene::init()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CPaulScene::shutdown()
|
void CPaulScene::shutdown()
|
||||||
{
|
{
|
||||||
|
s_fontBank.dump();
|
||||||
|
guiClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,125 +160,24 @@ void CPaulScene::render()
|
||||||
y+=charHeight;
|
y+=charHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
POLY_FT4 *ft4=sprites->printFT4(FRM_BACKGROUND,0,0,0,0,1023);
|
guiRender();
|
||||||
setXYWH(ft4,20,20,512-40,256-40);
|
|
||||||
setRGB0(ft4,64,64,64);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
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)
|
void CPaulScene::think(int _frames)
|
||||||
{
|
{
|
||||||
/*
|
CGUITextBox *tb;
|
||||||
int pad;
|
tb=(CGUITextBox *)guiGetItem(1);
|
||||||
int sfxId=-1;
|
tb->setObjectWH(w,h);
|
||||||
int setSfxVolume=false;
|
tb->setText(str);
|
||||||
int setSongVolume=false;
|
|
||||||
|
|
||||||
pad=PadGetDown(0);
|
guiThink(GameState::getFramesSinceLast());
|
||||||
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,"+");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -432,6 +432,34 @@ SOURCE=..\..\..\source\utils\utils.cpp
|
||||||
SOURCE=..\..\..\source\utils\utils.h
|
SOURCE=..\..\..\source\utils\utils.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# 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
|
# End Group
|
||||||
# Begin Group "makefiles"
|
# Begin Group "makefiles"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue