You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/libksirtet/lib/mp_simple_board.cpp

85 lines
1.6 KiB

#include "mp_simple_board.h"
#include "mp_simple_board.moc"
void MPSimpleBoard::init(bool AI, bool multiplayers, bool server, bool first,
const TQString &name)
{
state = BS_Init;
_init(AI, multiplayers, server, first, name);
}
void MPSimpleBoard::dataIn(TQDataStream &s)
{
if ( s.atEnd() ) return; // no data
IO_Flag f;
s >> f;
switch ( f.value() ) {
case IO_Flag::Init: initFlag(s); break;
case IO_Flag::Play: playFlag(s); break;
case IO_Flag::Pause: pauseFlag(); break;
case IO_Flag::GameOver: gameOverFlag(); break;
case IO_Flag::Stop: stopFlag(); break;
}
}
void MPSimpleBoard::initFlag(TQDataStream &s)
{
state = BS_Play;
emit enableKeys(true);
_initFlag(s);
}
void MPSimpleBoard::playFlag(TQDataStream &s)
{
Q_ASSERT( state==BS_Play );
_playFlag(s);
}
void MPSimpleBoard::pauseFlag()
{
Q_ASSERT( state==BS_Play || state==BS_Pause );
bool p = ( state==BS_Pause );
state = (p ? BS_Play : BS_Pause);
emit enableKeys(p);
_pauseFlag(!p);
}
void MPSimpleBoard::gameOverFlag()
{
Q_ASSERT( BS_Play );
_stop(TRUE);
state = BS_Stop;
}
void MPSimpleBoard::stopFlag()
{
_stop(FALSE);
state = BS_Standby;
}
void MPSimpleBoard::_stop(bool gameover)
{
if ( state==BS_Pause ) _pauseFlag(FALSE);
emit enableKeys(false);
_stopFlag(gameover);
}
void MPSimpleBoard::dataOut(TQDataStream &s)
{
switch (state) {
case BS_Init:
_initDataOut(s);
state = BS_Standby;
return;
case BS_Play: _dataOut(s); return;
case BS_Stop:
_gameOverDataOut(s);
state = BS_Standby;
return;
case BS_Pause: return;
case BS_Standby: return;
}
}