QTfrontend/game.cpp
changeset 86 664b536a1c27
parent 85 44d9045b26ff
child 87 ff213e443336
equal deleted inserted replaced
85:44d9045b26ff 86:664b536a1c27
    34 #include <QMessageBox>
    34 #include <QMessageBox>
    35 #include <QProcess>
    35 #include <QProcess>
    36 #include <QTimer>
    36 #include <QTimer>
    37 #include <QString>
    37 #include <QString>
    38 #include <QByteArray>
    38 #include <QByteArray>
       
    39 #include <QFile>
    39 #include <QTextStream>
    40 #include <QTextStream>
    40 #include <QFile>
    41 
    41 #include "game.h"
    42 #include "game.h"
    42 #include "hwconsts.h"
    43 #include "hwconsts.h"
    43 #include "gameuiconfig.h"
    44 #include "gameuiconfig.h"
    44 
    45 
    45 HWGame::HWGame(GameUIConfig * config, GameCFGWidget * gamecfg)
    46 HWGame::HWGame(GameUIConfig * config, GameCFGWidget * gamecfg)
    83 
    84 
    84 void HWGame::SendConfig()
    85 void HWGame::SendConfig()
    85 {
    86 {
    86 	SendIPC(QString("eseed %1").arg(seed));
    87 	SendIPC(QString("eseed %1").arg(seed));
    87 	SendIPC(QString("etheme %1").arg(GetThemeBySeed()));
    88 	SendIPC(QString("etheme %1").arg(GetThemeBySeed()));
    88 	//SENDIPC("emap test");
       
    89 	SENDIPC("TL");
    89 	SENDIPC("TL");
    90 	SendIPC(QString("e$gmflags %1").arg(gamecfg->getGameFlags()));
    90 	SendIPC(QString("e$gmflags %1").arg(gamecfg->getGameFlags()));
    91 	SENDIPC("eaddteam");
    91 	SENDIPC("eaddteam");
    92 	SendTeamConfig(0);
    92 	LocalCFG(0);
    93 	SENDIPC("ecolor 65535");
    93 	SENDIPC("ecolor 65535");
    94 	SENDIPC("eadd hh0 1");
    94 	SENDIPC("eadd hh0 0");
    95 	SENDIPC("eadd hh1 1");
    95 	SENDIPC("eadd hh1 0");
    96 	SENDIPC("eadd hh2 1");
    96 	SENDIPC("eadd hh2 0");
    97 	SENDIPC("eadd hh3 1");
    97 	SENDIPC("eadd hh3 0");
    98 	SENDIPC("eadd hh4 1");
       
    99 	SENDIPC("eadd hh5 1");
       
   100 	SENDIPC("eadd hh6 1");
       
   101 	SENDIPC("eadd hh7 1");
       
   102 	SENDIPC("eaddteam");
    98 	SENDIPC("eaddteam");
   103 	SendTeamConfig(1);
    99 	LocalCFG(1);
   104 	SENDIPC("ecolor 16776960");
   100 	SENDIPC("ecolor 16776960");
   105 	SENDIPC("eadd hh0 1");
   101 	SENDIPC("eadd hh0 1");
   106 	SENDIPC("eadd hh1 1");
   102 	SENDIPC("eadd hh1 1");
   107 	SENDIPC("eadd hh2 1");
   103 	SENDIPC("eadd hh2 1");
   108 	SENDIPC("eadd hh3 1");
   104 	SENDIPC("eadd hh3 1");
   109 	SENDIPC("eadd hh4 1");
       
   110 	SENDIPC("eadd hh5 1");
       
   111 	SENDIPC("eadd hh6 1");
       
   112 	SENDIPC("eadd hh7 1");
       
   113 	SENDIPC("eaddteam");
       
   114 	SendTeamConfig(1);
       
   115 	SENDIPC("ecolor 255");
       
   116 	SENDIPC("eadd hh0 1");
       
   117 	SENDIPC("eadd hh1 1");
       
   118 	SENDIPC("eadd hh2 1");
       
   119 	SENDIPC("eadd hh3 1");
       
   120 	SENDIPC("eadd hh4 1");
       
   121 	SENDIPC("eadd hh5 1");
       
   122 	SENDIPC("eadd hh6 1");
       
   123 	SENDIPC("eadd hh7 1");
       
   124 }
   105 }
   125 
   106 
   126 void HWGame::ParseMessage(const QByteArray & msg)
   107 void HWGame::ParseMessage(const QByteArray & msg)
   127 {
   108 {
   128 	switch(msg.data()[1])
   109 	switch(msg.data()[1])
   359 	if (TeamCount < 2) return;
   340 	if (TeamCount < 2) return;
   360 	seedgen.GenRNDStr(seed, 10);
   341 	seedgen.GenRNDStr(seed, 10);
   361 	Start();
   342 	Start();
   362 }
   343 }
   363 
   344 
       
   345 void HWGame::StartQuick()
       
   346 {
       
   347 	gameType = gtLocal;
       
   348 	seedgen.GenRNDStr(seed, 10);
       
   349 	Start();
       
   350 }
       
   351 
       
   352 
   364 void HWGame::LocalCFG(const QString & teamname)
   353 void HWGame::LocalCFG(const QString & teamname)
   365 {
   354 {
   366 	QFile teamcfg(config->cfgdir.absolutePath() + "/" + teamname + ".cfg");
   355 	HWTeam team(teamname, config);
   367 	if (!teamcfg.open(QIODevice::ReadOnly))
   356 	if (!team.LoadFromFile()) {
   368 	{
   357 		QMessageBox::critical(0,
   369 		return ;
   358 				"Error",
   370 	}
   359 				QString("Cannot load team config ""%1""").arg(teamname),
   371 	QTextStream stream(&teamcfg);
   360 				QMessageBox::Ok,
   372 	stream.setCodec("UTF-8");
   361 				QMessageBox::NoButton,
   373 	QString str;
   362 				QMessageBox::NoButton);
   374 
   363 		return;
   375 	while (!stream.atEnd())
   364 	}
   376 	{
   365 	RawSendIPC(team.IPCTeamInfo());
   377 		str = stream.readLine();
   366 }
   378 		if (str.startsWith(";") || (str.length() > 254)) continue;
   367 
   379 		str.prepend("e");
   368 void HWGame::LocalCFG(quint8 num)
   380 		SendIPC(str.toUtf8());
   369 {
   381 	}
   370 	HWTeam team(num, config);
   382 	teamcfg.close();
   371 	RawSendIPC(team.IPCTeamInfo());
   383 }
   372 }