#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; } }