hopefully the masterserver listing works now ...

This commit is contained in:
Titus Tscharntke 2011-02-17 00:54:17 +00:00
parent 69a7f8f1d6
commit 050a604390

View File

@ -19,65 +19,64 @@
#include "auto_test.h" #include "auto_test.h"
#include "masterserver_info.h" #include "masterserver_info.h"
#include "leak_dumper.h" #include "leak_dumper.h"
namespace Glest {
namespace Game {
namespace Glest{ namespace Game{
// ===================================================== // =====================================================
// class ServerLine // class ServerLine
// ===================================================== // =====================================================
ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex, int baseY, int lineHeight, const char * containerName) { ServerLine::ServerLine(MasterServerInfo *mServerInfo, int lineIndex, int baseY, int lineHeight,
this->containerName = containerName; const char * containerName){
this->countryTexture = NULL; this->containerName= containerName;
this->countryTexture= NULL;
Lang &lang= Lang::getInstance(); Lang &lang= Lang::getInstance();
this->lineHeight=lineHeight; this->lineHeight= lineHeight;
int lineOffset = lineHeight * lineIndex; int lineOffset= lineHeight * lineIndex;
masterServerInfo = *mServerInfo; masterServerInfo= *mServerInfo;
int i=10; int i= 10;
this->baseY=baseY; this->baseY= baseY;
//general info: //general info:
i+=10; i+= 10;
glestVersionLabel.init(i,baseY-lineOffset); glestVersionLabel.init(i, baseY - lineOffset);
glestVersionLabel.setText(masterServerInfo.getGlestVersion()); glestVersionLabel.setText(masterServerInfo.getGlestVersion());
i+=80; i+= 80;
platformLabel.init(i,baseY-lineOffset); platformLabel.init(i, baseY - lineOffset);
platformLabel.setText(masterServerInfo.getPlatform()); platformLabel.setText(masterServerInfo.getPlatform());
// i+=50; // i+=50;
// registeredObjNameList.push_back("binaryCompileDateLabel" + intToStr(lineIndex)); // registeredObjNameList.push_back("binaryCompileDateLabel" + intToStr(lineIndex));
// binaryCompileDateLabel.registerGraphicComponent(containerName,"binaryCompileDateLabel" + intToStr(lineIndex)); // binaryCompileDateLabel.registerGraphicComponent(containerName,"binaryCompileDateLabel" + intToStr(lineIndex));
// binaryCompileDateLabel.init(i,baseY-lineOffset); // binaryCompileDateLabel.init(i,baseY-lineOffset);
// binaryCompileDateLabel.setText(masterServerInfo.getBinaryCompileDate()); // binaryCompileDateLabel.setText(masterServerInfo.getBinaryCompileDate());
//game info: //game info:
i+=80; i+= 80;
serverTitleLabel.init(i,baseY-lineOffset); serverTitleLabel.init(i, baseY - lineOffset);
serverTitleLabel.setText(masterServerInfo.getServerTitle()); serverTitleLabel.setText(masterServerInfo.getServerTitle());
i+=140; i+= 140;
country.init(i,baseY-lineOffset); country.init(i, baseY - lineOffset);
country.setText(masterServerInfo.getCountry()); country.setText(masterServerInfo.getCountry());
string data_path = getGameReadWritePath(GameConstants::path_data_CacheLookupKey); string data_path= getGameReadWritePath(GameConstants::path_data_CacheLookupKey);
string countryLogoPath = data_path + "data/core/misc_textures/flags"; string countryLogoPath= data_path + "data/core/misc_textures/flags";
Config &config = Config::getInstance(); Config &config= Config::getInstance();
if(config.getString("CountryTexturePath","") != "") { if(config.getString("CountryTexturePath", "") != ""){
countryLogoPath = config.getString("CountryTexturePath",""); countryLogoPath= config.getString("CountryTexturePath", "");
} }
string logoFile = countryLogoPath + "/" + toLower(masterServerInfo.getCountry()) + ".png"; string logoFile= countryLogoPath + "/" + toLower(masterServerInfo.getCountry()) + ".png";
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] logoFile [%s]\n",__FILE__,__FUNCTION__,__LINE__,logoFile.c_str()); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] logoFile [%s]\n",__FILE__,__FUNCTION__,__LINE__,logoFile.c_str());
if(fileExists(logoFile) == true) { if(fileExists(logoFile) == true){
countryTexture=GraphicsInterface::getInstance().getFactory()->newTexture2D(); countryTexture= GraphicsInterface::getInstance().getFactory()->newTexture2D();
//loadingTexture = renderer.newTexture2D(rsGlobal); //loadingTexture = renderer.newTexture2D(rsGlobal);
countryTexture->setMipmap(true); countryTexture->setMipmap(true);
//loadingTexture->getPixmap()->load(filepath); //loadingTexture->getPixmap()->load(filepath);
@ -86,56 +85,57 @@ ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex, int baseY,
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
Renderer &renderer= Renderer::getInstance(); Renderer &renderer= Renderer::getInstance();
renderer.initTexture(rsGlobal,countryTexture); renderer.initTexture(rsGlobal, countryTexture);
} }
i+=90; i+= 90;
// ipAddressLabel.init(i,baseY-lineOffset); // ipAddressLabel.init(i,baseY-lineOffset);
// ipAddressLabel.setText(masterServerInfo.getIpAddress()); // ipAddressLabel.setText(masterServerInfo.getIpAddress());
// i+=100; // i+=100;
wrongVersionLabel.init(i,baseY-lineOffset); wrongVersionLabel.init(i, baseY - lineOffset);
wrongVersionLabel.setText(lang.get("IncompatibleVersion")); wrongVersionLabel.setText(lang.get("IncompatibleVersion"));
//game setup info: //game setup info:
techLabel.init(i,baseY-lineOffset); techLabel.init(i, baseY - lineOffset);
techLabel.setText(masterServerInfo.getTech()); techLabel.setText(masterServerInfo.getTech());
i+=120; i+= 120;
mapLabel.init(i,baseY-lineOffset); mapLabel.init(i, baseY - lineOffset);
mapLabel.setText(masterServerInfo.getMap()); mapLabel.setText(masterServerInfo.getMap());
i+=120; i+= 120;
// tilesetLabel.init(i,baseY-lineOffset); // tilesetLabel.init(i,baseY-lineOffset);
// tilesetLabel.setText(masterServerInfo.getTileset()); // tilesetLabel.setText(masterServerInfo.getTileset());
// i+=100; // i+=100;
activeSlotsLabel.init(i,baseY-lineOffset); activeSlotsLabel.init(i, baseY - lineOffset);
activeSlotsLabel.setText(intToStr(masterServerInfo.getActiveSlots())+"/"+intToStr(masterServerInfo.getNetworkSlots())+"/"+intToStr(masterServerInfo.getConnectedClients())); activeSlotsLabel.setText(intToStr(masterServerInfo.getActiveSlots()) + "/" + intToStr(
masterServerInfo.getNetworkSlots()) + "/" + intToStr(masterServerInfo.getConnectedClients()));
i+=50; i+= 50;
externalConnectPort.init(i,baseY-lineOffset); externalConnectPort.init(i, baseY - lineOffset);
externalConnectPort.setText(intToStr(masterServerInfo.getExternalConnectPort())); externalConnectPort.setText(intToStr(masterServerInfo.getExternalConnectPort()));
i+=80; i+= 80;
status.init(i,baseY-lineOffset); status.init(i, baseY - lineOffset);
status.setText(lang.get("MGGameStatus" + intToStr(masterServerInfo.getStatus()))); status.setText(lang.get("MGGameStatus" + intToStr(masterServerInfo.getStatus())));
i+=130; i+= 130;
selectButton.init(i, baseY-lineOffset, 30); selectButton.init(i, baseY - lineOffset, 30);
selectButton.setText(">"); selectButton.setText(">");
//printf("glestVersionString [%s] masterServerInfo->getGlestVersion() [%s]\n",glestVersionString.c_str(),masterServerInfo->getGlestVersion().c_str()); //printf("glestVersionString [%s] masterServerInfo->getGlestVersion() [%s]\n",glestVersionString.c_str(),masterServerInfo->getGlestVersion().c_str());
compatible = checkVersionComptability(glestVersionString, masterServerInfo.getGlestVersion()); compatible= checkVersionComptability(glestVersionString, masterServerInfo.getGlestVersion());
selectButton.setEnabled(compatible); selectButton.setEnabled(compatible);
selectButton.setEditable(compatible); selectButton.setEditable(compatible);
} }
ServerLine::~ServerLine() { ServerLine::~ServerLine(){
//delete masterServerInfo; //delete masterServerInfo;
if(countryTexture != NULL) { if(countryTexture != NULL){
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
countryTexture->end(); countryTexture->end();
@ -144,28 +144,30 @@ ServerLine::~ServerLine() {
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
//delete loadingTexture; //delete loadingTexture;
countryTexture=NULL; countryTexture= NULL;
} }
} }
bool ServerLine::buttonMouseClick(int x, int y){ bool ServerLine::buttonMouseClick(int x, int y){
return selectButton.mouseClick(x,y); return selectButton.mouseClick(x, y);
} }
bool ServerLine::buttonMouseMove(int x, int y){ bool ServerLine::buttonMouseMove(int x, int y){
return selectButton.mouseMove(x,y); return selectButton.mouseMove(x, y);
} }
void ServerLine::render() { void ServerLine::render(){
Renderer &renderer= Renderer::getInstance(); Renderer &renderer= Renderer::getInstance();
bool joinEnabled = (masterServerInfo.getNetworkSlots() > masterServerInfo.getConnectedClients()); bool joinEnabled= (masterServerInfo.getNetworkSlots() > masterServerInfo.getConnectedClients());
if(joinEnabled == true) { if(joinEnabled == true){
selectButton.setEnabled(true); if(compatible){
selectButton.setVisible(true); selectButton.setEnabled(true);
renderer.renderButton(&selectButton); selectButton.setVisible(true);
renderer.renderButton(&selectButton);
}
} }
else { else{
selectButton.setEnabled(false); selectButton.setEnabled(false);
selectButton.setVisible(false); selectButton.setVisible(false);
} }
@ -175,21 +177,19 @@ void ServerLine::render() {
renderer.renderLabel(&platformLabel); renderer.renderLabel(&platformLabel);
//renderer.renderLabel(&binaryCompileDateLabel); //renderer.renderLabel(&binaryCompileDateLabel);
//game info: //game info:
renderer.renderLabel(&serverTitleLabel); renderer.renderLabel(&serverTitleLabel);
if(countryTexture != NULL) { if(countryTexture != NULL){
renderer.renderTextureQuad(country.getX() + 20,country.getY(),countryTexture->getTextureWidth(),countryTexture->getTextureHeight(),countryTexture,0.7f); renderer.renderTextureQuad(country.getX() + 20, country.getY(), countryTexture->getTextureWidth(),
countryTexture->getTextureHeight(), countryTexture, 0.7f);
} }
else { else{
renderer.renderLabel(&country); renderer.renderLabel(&country);
} }
if (compatible) { if(compatible){
renderer.renderLabel(&status); if(selectButton.getEnabled() == true){
}
if(selectButton.getEnabled() == true) {
if (compatible) {
//renderer.renderLabel(&ipAddressLabel); //renderer.renderLabel(&ipAddressLabel);
//game setup info: //game setup info:
renderer.renderLabel(&techLabel); renderer.renderLabel(&techLabel);
renderer.renderLabel(&mapLabel); renderer.renderLabel(&mapLabel);
@ -198,14 +198,15 @@ void ServerLine::render() {
renderer.renderLabel(&externalConnectPort); renderer.renderLabel(&externalConnectPort);
renderer.renderLabel(&status); renderer.renderLabel(&status);
} }
else {
renderer.renderLabel(&wrongVersionLabel);
}
} }
else{
renderer.renderLabel(&wrongVersionLabel);
}
renderer.renderLabel(&status);
} }
void ServerLine::setY(int y) { void ServerLine::setY(int y){
selectButton.setY(y); selectButton.setY(y);
//general info: //general info:
@ -229,4 +230,5 @@ void ServerLine::setY(int y) {
} }
}}//end namespace }
}//end namespace