diff --git a/source/glest_game/global/core_data.cpp b/source/glest_game/global/core_data.cpp index df11c88f..11193af8 100644 --- a/source/glest_game/global/core_data.cpp +++ b/source/glest_game/global/core_data.cpp @@ -16,6 +16,7 @@ #include "graphics_interface.h" #include "config.h" #include "util.h" +#include "platform_util.h" #include "leak_dumper.h" using namespace Shared::Sound; @@ -68,6 +69,20 @@ void CoreData::load(){ logoTexture->setMipmap(false); logoTexture->getPixmap()->load(dir+"/menu/textures/logo.tga"); + logoTextureList.clear(); + string logosPath= dir+"/menu/textures/logo*.*"; + vector logoFilenames; + findAll(logosPath, logoFilenames); + for(int i = 0; i < logoFilenames.size(); ++i) { + string logo = logoFilenames[i]; + if(stricmp("logo.tga",logo.c_str()) != 0) { + Texture2D *logoTextureExtra= renderer.newTexture2D(rsGlobal); + logoTextureExtra->setMipmap(false); + logoTextureExtra->getPixmap()->load(dir+"/menu/textures/" + logo); + logoTextureList.push_back(logoTextureExtra); + } + } + waterSplashTexture= renderer.newTexture2D(rsGlobal); waterSplashTexture->setFormat(Texture::fAlpha); waterSplashTexture->getPixmap()->init(1); diff --git a/source/glest_game/global/core_data.h b/source/glest_game/global/core_data.h index e7cd2ba8..99b51168 100644 --- a/source/glest_game/global/core_data.h +++ b/source/glest_game/global/core_data.h @@ -44,6 +44,7 @@ private: SoundContainer waterSounds; Texture2D *logoTexture; + std::vector logoTextureList; Texture2D *backgroundTexture; Texture2D *fireTexture; Texture2D *snowTexture; @@ -74,6 +75,9 @@ public: Texture2D *getButtonSmallTexture() const {return buttonSmallTexture;} Texture2D *getButtonBigTexture() const {return buttonBigTexture;} + int getLogoTextureExtraCount() const {return logoTextureList.size();} + Texture2D *getLogoTextureExtra(int idx) const {return logoTextureList[idx];} + StrSound *getIntroMusic() {return &introMusic;} StrSound *getMenuMusic() {return &menuMusic;} StaticSound *getClickSoundA() {return &clickSoundA;} diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index 41a12e82..68b24f66 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -77,8 +77,8 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM //create - buttonDisconnect.init(350, 150, 125); - buttonPlayNow.init(525, 150, 125); + buttonDisconnect.init(350, 180, 125); + buttonPlayNow.init(525, 180, 125); //map listBox // put them all in a set, to weed out duplicates (gbm & mgm with same name) @@ -88,9 +88,9 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM int setupPos=610; - int mapHeadPos=290; + int mapHeadPos=330; int mapPos=mapHeadPos-30; - int aHeadPos=230; + int aHeadPos=260; int aPos=aHeadPos-30; int networkHeadPos=670; int networkPos=networkHeadPos-30; @@ -175,22 +175,26 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__); //list boxes for(int i=0; i"); } - labelControl.init(200, 600, GraphicListBox::defW, GraphicListBox::defH, true); - labelFaction.init(400, 600, GraphicListBox::defW, GraphicListBox::defH, true); - labelTeam.init(600, 600, 60, GraphicListBox::defH, true); + labelControl.init(200, setupPos, GraphicListBox::defW, GraphicListBox::defH, true); + labelFaction.init(400, setupPos, GraphicListBox::defW, GraphicListBox::defH, true); + labelTeam.init(600, setupPos, 60, GraphicListBox::defH, true); + + labelControl.setFont(CoreData::getInstance().getMenuFontBig()); + labelFaction.setFont(CoreData::getInstance().getMenuFontBig()); + labelTeam.setFont(CoreData::getInstance().getMenuFontBig()); //texts buttonDisconnect.setText(lang.get("Return")); diff --git a/source/glest_game/menu/menu_state_root.cpp b/source/glest_game/menu/menu_state_root.cpp index eeb92cae..fac6373f 100644 --- a/source/glest_game/menu/menu_state_root.cpp +++ b/source/glest_game/menu/menu_state_root.cpp @@ -137,6 +137,25 @@ void MenuStateRoot::render(){ renderer.renderTextureQuad( (metrics.getVirtualW()-w)/2, 475-h/2, w, h, coreData.getLogoTexture(), GraphicComponent::getFade()); + + int maxLogoWidth=0; + for(int idx = 0; idx < coreData.getLogoTextureExtraCount(); ++idx) { + Texture2D *extraLogo = coreData.getLogoTextureExtra(idx); + maxLogoWidth += extraLogo->getPixmap()->getW(); + } + + int currentX = (metrics.getVirtualW()-maxLogoWidth)/2; + int currentY = 50; + for(int idx = 0; idx < coreData.getLogoTextureExtraCount(); ++idx) { + Texture2D *extraLogo = coreData.getLogoTextureExtra(idx); + + renderer.renderTextureQuad( + currentX, currentY, + extraLogo->getPixmap()->getW(), extraLogo->getPixmap()->getH(), + extraLogo, GraphicComponent::getFade()); + + currentX += extraLogo->getPixmap()->getW(); + } renderer.renderButton(&buttonNewGame); renderer.renderButton(&buttonJoinGame); renderer.renderButton(&buttonMasterserverGame);