# HG changeset patch # User unc0rr # Date 1251882246 0 # Node ID daf1785f2337e7d044eb48854ff1f71da55c134f # Parent 63b3da03ce469867891a24c3f7dd5f7aa9b59425 - Frontend: reorganize code controlling widgets state, fix problems getting room admin status - Server: rename room after new room master diff -r 63b3da03ce46 -r daf1785f2337 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Wed Sep 02 08:53:46 2009 +0000 +++ b/QTfrontend/hwform.cpp Wed Sep 02 09:04:06 2009 +0000 @@ -577,13 +577,17 @@ hwnet, SLOT(CreateRoom(const QString&))); connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), hwnet, SLOT(JoinRoom(const QString&))); - connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &)), - this, SLOT(NetGameMaster())); - connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), - this, SLOT(NetGameSlave())); +// connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &)), +// this, SLOT(NetGameMaster())); +// connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), +// this, SLOT(NetGameSlave())); connect(ui.pageRoomsList, SIGNAL(askForRoomList()), hwnet, SLOT(askRoomsList())); +// room status stuff + connect(hwnet, SIGNAL(roomMaster(bool)), + this, SLOT(NetGameChangeStatus(bool))); + // net page stuff connect(hwnet, SIGNAL(chatStringFromNet(const QString&)), ui.pageNetGame->pChatWidget, SLOT(onChatString(const QString&))); @@ -881,12 +885,22 @@ sdli.StopMusic(); } +void HWForm::NetGameChangeStatus(bool isMaster) +{ + if (isMaster) + NetGameMaster(); + else + NetGameSlave(); +} + void HWForm::NetGameMaster() { ui.pageNetGame->setMasterMode(true); ui.pageNetGame->restrictJoins->setChecked(false); ui.pageNetGame->restrictTeamAdds->setChecked(false); ui.pageNetGame->pGameCFG->GameSchemes->setModel(ammoSchemeModel); + ui.pageNetGame->pGameCFG->setEnabled(true); + ui.pageNetGame->pNetTeamsWidget->setInteractivity(true); if (hwnet) { @@ -907,6 +921,9 @@ void HWForm::NetGameSlave() { + ui.pageNetGame->pGameCFG->setEnabled(false); + ui.pageNetGame->pNetTeamsWidget->setInteractivity(false); + if (hwnet) { NetAmmoSchemeModel * netAmmo = new NetAmmoSchemeModel(hwnet); diff -r 63b3da03ce46 -r daf1785f2337 QTfrontend/hwform.h --- a/QTfrontend/hwform.h Wed Sep 02 08:53:46 2009 +0000 +++ b/QTfrontend/hwform.h Wed Sep 02 09:04:06 2009 +0000 @@ -96,8 +96,11 @@ void UpdateWeapons(); void onFrontendFullscreen(bool value); void Music(bool checked); + + void NetGameChangeStatus(bool isMaster); void NetGameMaster(); void NetGameSlave(); + void AsyncNetServerStart(); void NetLeftRoom(); void selectFirstNetScheme(); diff -r 63b3da03ce46 -r daf1785f2337 QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Wed Sep 02 08:53:46 2009 +0000 +++ b/QTfrontend/newnetclient.cpp Wed Sep 02 09:04:06 2009 +0000 @@ -88,8 +88,6 @@ } RawSendNet(QString("CREATE_ROOM%1%2").arg(delimeter).arg(room)); - m_pGameCFGWidget->setEnabled(true); - m_pTeamSelWidget->setInteractivity(true); isChief = true; } @@ -101,11 +99,7 @@ return; } - loginStep++; - RawSendNet(QString("JOIN_ROOM%1%2").arg(delimeter).arg(room)); - m_pGameCFGWidget->setEnabled(false); - m_pTeamSelWidget->setInteractivity(false); isChief = false; } @@ -448,7 +442,7 @@ if (lst[0] == "RUN_GAME") { netClientState = 5; - RunGame(); + emit AskForRunGame(); return; } @@ -558,6 +552,7 @@ m_pGameCFGWidget->setEnabled(b); m_pTeamSelWidget->setInteractivity(b); isChief = b; + emit roomMaster(isChief); return; } @@ -565,11 +560,6 @@ qWarning() << "Net: Unknown message:" << lst; } -void HWNewNet::RunGame() -{ - emit AskForRunGame(); -} - void HWNewNet::onHedgehogsNumChanged(const HWTeam& team) { if (isChief) diff -r 63b3da03ce46 -r daf1785f2337 QTfrontend/newnetclient.h --- a/QTfrontend/newnetclient.h Wed Sep 02 08:53:46 2009 +0000 +++ b/QTfrontend/newnetclient.h Wed Sep 02 09:04:06 2009 +0000 @@ -56,8 +56,6 @@ QString seed; bool m_game_connected; - void RunGame(); - template void SendCfgStrNet(T a) { QByteArray strmsg; diff -r 63b3da03ce46 -r daf1785f2337 gameServer/Actions.hs --- a/gameServer/Actions.hs Wed Sep 02 08:53:46 2009 +0000 +++ b/gameServer/Actions.hs Wed Sep 02 09:04:06 2009 +0000 @@ -233,9 +233,10 @@ adjust (\cl -> cl{isMaster = True}) newMasterId clients, adjust (\r -> r{name = newRoomName}) rID rooms ) - newRoomName = "abandoned" + newRoomName = nick newMasterClient otherPlayersSet = IntSet.delete clID (playersIDs room) newMasterId = IntSet.findMin otherPlayersSet + newMasterClient = clients ! newMasterId processAction (clID, serverInfo, clients, rooms) (AddRoom roomName roomPassword) = do