mirror of
https://github.com/glest/glest-source.git
synced 2025-09-01 20:12:40 +02:00
autorefresh
direct create game ( not completly finished yet )
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
#include "core_data.h"
|
#include "core_data.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "menu_state_connected_game.h"
|
#include "menu_state_connected_game.h"
|
||||||
|
#include "menu_state_custom_game.h"
|
||||||
#include "menu_state_root.h"
|
#include "menu_state_root.h"
|
||||||
#include "metrics.h"
|
#include "metrics.h"
|
||||||
#include "network_manager.h"
|
#include "network_manager.h"
|
||||||
@@ -64,7 +65,7 @@ ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex)
|
|||||||
ipAddressLabel.setText(masterServerInfo->getIpAddress());
|
ipAddressLabel.setText(masterServerInfo->getIpAddress());
|
||||||
|
|
||||||
//game setup info:
|
//game setup info:
|
||||||
i+=70;
|
i+=100;
|
||||||
techLabel.init(i,startOffset-lineOffset);
|
techLabel.init(i,startOffset-lineOffset);
|
||||||
techLabel.setText(masterServerInfo->getTech());
|
techLabel.setText(masterServerInfo->getTech());
|
||||||
|
|
||||||
@@ -126,19 +127,34 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen
|
|||||||
{
|
{
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
|
|
||||||
|
autoRefreshTime=0;
|
||||||
|
|
||||||
mainMessageBox.init(lang.get("Ok"));
|
mainMessageBox.init(lang.get("Ok"));
|
||||||
mainMessageBox.setEnabled(false);
|
mainMessageBox.setEnabled(false);
|
||||||
|
lastRefreshTimer= time(NULL);
|
||||||
mainMessageBoxState=0;
|
mainMessageBoxState=0;
|
||||||
|
|
||||||
// header
|
// header
|
||||||
labelTitle.init(330, 700);
|
labelTitle.init(330, 700);
|
||||||
labelTitle.setText(lang.get("AvailableServers"));
|
labelTitle.setText(lang.get("AvailableServers"));
|
||||||
|
|
||||||
buttonRefresh.init(450, 70, 150);
|
// bottom
|
||||||
buttonReturn.init(150, 70, 150);
|
|
||||||
|
buttonReturn.init(50, 70, 150);
|
||||||
|
buttonCreateGame.init(300, 70, 150);
|
||||||
|
buttonRefresh.init(550, 70, 150);
|
||||||
|
|
||||||
buttonRefresh.setText(lang.get("RefreshList"));
|
buttonRefresh.setText(lang.get("RefreshList"));
|
||||||
buttonReturn.setText(lang.get("Return"));
|
buttonReturn.setText(lang.get("Return"));
|
||||||
|
buttonCreateGame.setText(lang.get("CustomGame"));
|
||||||
|
labelAutoRefresh.setText(lang.get("AutoRefreshRate"));
|
||||||
|
labelAutoRefresh.init(800,100);
|
||||||
|
listBoxAutoRefresh.init(800,70);
|
||||||
|
listBoxAutoRefresh.pushBackItem(lang.get("off"));
|
||||||
|
listBoxAutoRefresh.pushBackItem("1");
|
||||||
|
listBoxAutoRefresh.pushBackItem("2");
|
||||||
|
listBoxAutoRefresh.pushBackItem("3");
|
||||||
|
listBoxAutoRefresh.setSelectedItemIndex(0);
|
||||||
|
|
||||||
NetworkManager::getInstance().end();
|
NetworkManager::getInstance().end();
|
||||||
NetworkManager::getInstance().init(nrClient);
|
NetworkManager::getInstance().init(nrClient);
|
||||||
@@ -191,6 +207,16 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
|
|||||||
BaseThread::shutdownAndWait(updateFromMasterserverThread);
|
BaseThread::shutdownAndWait(updateFromMasterserverThread);
|
||||||
mainMenu->setState(new MenuStateRoot(program, mainMenu));
|
mainMenu->setState(new MenuStateRoot(program, mainMenu));
|
||||||
}
|
}
|
||||||
|
else if(buttonCreateGame.mouseClick(x, y)){
|
||||||
|
soundRenderer.playFx(coreData.getClickSoundB());
|
||||||
|
|
||||||
|
BaseThread::shutdownAndWait(updateFromMasterserverThread);
|
||||||
|
mainMenu->setState(new MenuStateCustomGame(program, mainMenu));
|
||||||
|
}
|
||||||
|
else if(listBoxAutoRefresh.mouseClick(x, y)){
|
||||||
|
soundRenderer.playFx(coreData.getClickSoundA());
|
||||||
|
autoRefreshTime=10*listBoxAutoRefresh.getSelectedItemIndex();
|
||||||
|
}
|
||||||
else{
|
else{
|
||||||
for(int i=0; i<serverLines.size(); ++i){
|
for(int i=0; i<serverLines.size(); ++i){
|
||||||
if(serverLines[i]->buttonMouseClick(x, y)){
|
if(serverLines[i]->buttonMouseClick(x, y)){
|
||||||
@@ -208,6 +234,9 @@ void MenuStateMasterserver::mouseMove(int x, int y, const MouseState *ms){
|
|||||||
}
|
}
|
||||||
buttonRefresh.mouseMove(x, y);
|
buttonRefresh.mouseMove(x, y);
|
||||||
buttonReturn.mouseMove(x, y);
|
buttonReturn.mouseMove(x, y);
|
||||||
|
buttonCreateGame.mouseMove(x, y);
|
||||||
|
listBoxAutoRefresh.mouseMove(x, y);
|
||||||
|
|
||||||
for(int i=0; i<serverLines.size(); ++i){
|
for(int i=0; i<serverLines.size(); ++i){
|
||||||
serverLines[i]->buttonMouseMove(x, y);
|
serverLines[i]->buttonMouseMove(x, y);
|
||||||
}
|
}
|
||||||
@@ -224,6 +253,10 @@ void MenuStateMasterserver::render(){
|
|||||||
renderer.renderButton(&buttonRefresh);
|
renderer.renderButton(&buttonRefresh);
|
||||||
renderer.renderButton(&buttonReturn);
|
renderer.renderButton(&buttonReturn);
|
||||||
renderer.renderLabel(&labelTitle);
|
renderer.renderLabel(&labelTitle);
|
||||||
|
renderer.renderLabel(&labelAutoRefresh);
|
||||||
|
renderer.renderButton(&buttonCreateGame);
|
||||||
|
renderer.renderListBox(&listBoxAutoRefresh);
|
||||||
|
|
||||||
for(int i=0; i<serverLines.size(); ++i){
|
for(int i=0; i<serverLines.size(); ++i){
|
||||||
serverLines[i]->render();
|
serverLines[i]->render();
|
||||||
}
|
}
|
||||||
@@ -231,6 +264,10 @@ void MenuStateMasterserver::render(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MenuStateMasterserver::update(){
|
void MenuStateMasterserver::update(){
|
||||||
|
if(autoRefreshTime!=0 && difftime(time(NULL),lastRefreshTimer) >= autoRefreshTime ){
|
||||||
|
needUpdateFromServer = true;
|
||||||
|
lastRefreshTimer= time(NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuStateMasterserver::simpleTask() {
|
void MenuStateMasterserver::simpleTask() {
|
||||||
|
@@ -68,6 +68,9 @@ class MenuStateMasterserver : public MenuState, public SimpleTaskCallbackInterfa
|
|||||||
private:
|
private:
|
||||||
GraphicButton buttonRefresh;
|
GraphicButton buttonRefresh;
|
||||||
GraphicButton buttonReturn;
|
GraphicButton buttonReturn;
|
||||||
|
GraphicButton buttonCreateGame;
|
||||||
|
GraphicLabel labelAutoRefresh;
|
||||||
|
GraphicListBox listBoxAutoRefresh;
|
||||||
GraphicLabel labelTitle;
|
GraphicLabel labelTitle;
|
||||||
ServerLines serverLines;
|
ServerLines serverLines;
|
||||||
|
|
||||||
@@ -75,6 +78,8 @@ private:
|
|||||||
int mainMessageBoxState;
|
int mainMessageBoxState;
|
||||||
|
|
||||||
bool needUpdateFromServer;
|
bool needUpdateFromServer;
|
||||||
|
int autoRefreshTime;
|
||||||
|
time_t lastRefreshTimer;
|
||||||
SimpleTaskThread *updateFromMasterserverThread;
|
SimpleTaskThread *updateFromMasterserverThread;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user