# HG changeset patch # User unc0rr # Date 1225838953 0 # Node ID bab5650fc8947afc0c2d9e548700827cc1be43ad # Parent 8817adb86da6bc35d799f3e815e34f3b1f6c2a68 - Fix ConfigAsked not sending full config (leads to team divide checkbox inconsistency) - Allow getting back from non-interactive mode diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/frameTeam.cpp --- a/QTfrontend/frameTeam.cpp Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/frameTeam.cpp Tue Nov 04 22:49:13 2008 +0000 @@ -44,14 +44,14 @@ resetColors(); } -void FrameTeams::setNonInteractive() +void FrameTeams::setInteractivity(bool interactive) { - nonInteractive=true; - for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) { - TeamShowWidget* pts=dynamic_cast(it.value()); - if(!pts) throw; - pts->setNonInteractive(); - } + nonInteractive = !interactive; + for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) { + TeamShowWidget* pts = dynamic_cast(it.value()); + if(!pts) throw; + pts->setInteractivity(interactive); + } } void FrameTeams::resetColors() @@ -70,7 +70,7 @@ void FrameTeams::addTeam(HWTeam team, bool willPlay) { TeamShowWidget* pTeamShowWidget = new TeamShowWidget(team, willPlay, this); - if(nonInteractive) pTeamShowWidget->setNonInteractive(); + if(nonInteractive) pTeamShowWidget->setInteractivity(false); // int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height(); mainLayout.addWidget(pTeamShowWidget); teamToWidget.insert(team, pTeamShowWidget); diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/frameTeam.h --- a/QTfrontend/frameTeam.h Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/frameTeam.h Tue Nov 04 22:49:13 2008 +0000 @@ -40,7 +40,7 @@ void resetTeams(); void setHHNum(const HWTeam& team); void setTeamColor(const HWTeam& team); - void setNonInteractive(); + void setInteractivity(bool interactive); QColor getNextColor() const; signals: diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/newnetclient.cpp Tue Nov 04 22:49:13 2008 +0000 @@ -69,6 +69,7 @@ RawSendNet(QString("CREATE%1%2").arg(delimeter).arg(room)); m_pGameCFGWidget->setEnabled(true); + m_pTeamSelWidget->setInteractivity(true); isChief = true; } @@ -84,7 +85,7 @@ RawSendNet(QString("JOIN%1%2").arg(delimeter).arg(room)); m_pGameCFGWidget->setEnabled(false); - m_pTeamSelWidget->setNonInteractive(); + m_pTeamSelWidget->setInteractivity(false); isChief = false; } @@ -453,6 +454,7 @@ onInitHealthChanged(m_pGameCFGWidget->getInitHealth()); onTurnTimeChanged(m_pGameCFGWidget->getTurnTime()); onFortsModeChanged(m_pGameCFGWidget->getGameFlags() & 0x1); + onTeamsDivideChanged(m_pGameCFGWidget->getGameFlags() & 0x10); // always initialize with default ammo (also avoiding complicated cross-class dependencies) onWeaponsNameChanged("Default", cDefaultAmmoStore->mid(10)); } diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/teamselect.cpp --- a/QTfrontend/teamselect.cpp Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/teamselect.cpp Tue Nov 04 22:49:13 2008 +0000 @@ -55,9 +55,9 @@ emit setEnabledGameStart(curPlayingTeams.size()>1); } -void TeamSelWidget::setNonInteractive() +void TeamSelWidget::setInteractivity(bool interactive) { - framePlaying->setNonInteractive(); + framePlaying->setInteractivity(interactive); } void TeamSelWidget::hhNumChanged(const HWTeam& team) diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/teamselect.h --- a/QTfrontend/teamselect.h Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/teamselect.h Tue Nov 04 22:49:13 2008 +0000 @@ -45,7 +45,7 @@ bool isPlaying(HWTeam team) const; QList getPlayingTeams() const; QList getDontPlayingTeams() const; - void setNonInteractive(); + void setInteractivity(bool interactive); public slots: void addTeam(HWTeam team); diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/teamselhelper.cpp --- a/QTfrontend/teamselhelper.cpp Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/teamselhelper.cpp Tue Nov 04 22:49:13 2008 +0000 @@ -82,14 +82,15 @@ //QObject::connect(bText, SIGNAL(clicked()), this, SLOT(activateTeam())); } -void TeamShowWidget::setNonInteractive() +void TeamShowWidget::setInteractivity(bool interactive) { - if(m_team.isNetTeam()) { - disconnect(butt, SIGNAL(clicked())); - // disconnect(bText, SIGNAL(clicked())); - } - disconnect(colorButt, SIGNAL(clicked()), this, SLOT(changeTeamColor())); - phhoger->setNonInteractive(); + if(m_team.isNetTeam()) { + butt->setEnabled(interactive); + } + + colorButt->setEnabled(interactive); + //phhoger->setNonInteractive(); + phhoger->setEnabled(interactive); } void TeamShowWidget::setHHNum(unsigned int num) diff -r 8817adb86da6 -r bab5650fc894 QTfrontend/teamselhelper.h --- a/QTfrontend/teamselhelper.h Tue Nov 04 22:42:08 2008 +0000 +++ b/QTfrontend/teamselhelper.h Tue Nov 04 22:49:13 2008 +0000 @@ -57,7 +57,7 @@ TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent); void setPlaying(bool isPlaying); void setHHNum(unsigned int num); - void setNonInteractive(); + void setInteractivity(bool interactive); HWTeam getTeam() const; private: diff -r 8817adb86da6 -r bab5650fc894 netserver/hedgewars-server.hs --- a/netserver/hedgewars-server.hs Tue Nov 04 22:42:08 2008 +0000 +++ b/netserver/hedgewars-server.hs Tue Nov 04 22:49:13 2008 +0000 @@ -57,7 +57,7 @@ sendAnswers [] _ clients _ = return clients sendAnswers ((handlesFunc, answer):answers) client clients rooms = do let recipients = handlesFunc client clients rooms - --unless (null recipients) $ putStrLn ("< " ++ (show answer)) + unless (null recipients) $ putStrLn ("< " ++ (show answer)) clHandles' <- forM recipients $ \ch -> Control.Exception.handle