diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index 39acbd64..059ae3f4 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -5632,7 +5632,7 @@ void Game::render2d() { if(this->masterserverMode == false) { renderer.renderResourceStatus(); } - renderer.renderConsole(&console,showFullConsole); + renderer.renderConsole(&console,showFullConsole?consoleFull:consoleNormal); } //2d mouse diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index fea57fc7..b8442387 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -2082,8 +2082,7 @@ void Renderer::renderConsoleLine(int lineIndex, int xPosition, int yPosition, in xPosition, (lineIndex * lineHeight) + yPosition); } -void Renderer::renderConsole(const Console *console,const bool showFullConsole, - const bool showMenuConsole, int overrideMaxConsoleLines){ +void Renderer::renderConsole(const Console *console, ConsoleMode mode , int overrideMaxConsoleLines){ if(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == true) { return; } @@ -2095,7 +2094,7 @@ void Renderer::renderConsole(const Console *console,const bool showFullConsole, glPushAttrib(GL_ENABLE_BIT); glEnable(GL_BLEND); - if(showFullConsole) { + if(mode==consoleFull) { int x= console->getXPos()-5; int y= console->getYPos()-5; int h= console->getLineHeight()*console->getStoredLineCount(); @@ -2130,7 +2129,7 @@ void Renderer::renderConsole(const Console *console,const bool showFullConsole, } } } - else if(showMenuConsole) { + else if(mode==consoleStoredOnly) { int allowedMaxLines = (overrideMaxConsoleLines >= 0 ? overrideMaxConsoleLines : maxConsoleLines); for(int i = 0; i < console->getStoredLineCount() && i < allowedMaxLines; ++i) { const ConsoleLineInfo &lineInfo = console->getStoredLineItem(i); @@ -2144,7 +2143,39 @@ void Renderer::renderConsole(const Console *console,const bool showFullConsole, } } } - else { + else if(mode==consoleStoredAndNormal) { + int allowedMaxLines = (overrideMaxConsoleLines >= 0 ? overrideMaxConsoleLines : maxConsoleLines); + float starttimestamp=0; + int consoleIndex=0; + for(int i = 0; i < console->getLineCount() && i < allowedMaxLines; ++i) { + const ConsoleLineInfo &lineInfo = console->getLineItem(i); + if(i==0) starttimestamp=lineInfo.timeStamp; + consoleIndex=i; + if(renderText3DEnabled == true) { + renderConsoleLine3D(i, console->getXPos(), console->getYPos(), + console->getLineHeight(), console->getFont3D(), console->getStringToHighlight(), &lineInfo); + } + else { + renderConsoleLine(i, console->getXPos(), console->getYPos(), + console->getLineHeight(), console->getFont(), console->getStringToHighlight(), &lineInfo); + } + } + for(int i = 0; i < console->getStoredLineCount() && consoleIndex < allowedMaxLines; ++i) { + const ConsoleLineInfo &lineInfo = console->getStoredLineItem(i); + if( lineInfo.timeStampgetXPos(), console->getYPos(), + console->getLineHeight(), console->getFont3D(), console->getStringToHighlight(), &lineInfo); + } + else { + renderConsoleLine(consoleIndex, console->getXPos(), console->getYPos(), + console->getLineHeight(), console->getFont(), console->getStringToHighlight(), &lineInfo); + } + } + } + } + else if(mode==consoleNormal) { for(int i = 0; i < console->getLineCount(); ++i) { const ConsoleLineInfo &lineInfo = console->getLineItem(i); if(renderText3DEnabled == true) { @@ -8371,6 +8402,13 @@ void Renderer::renderSelectionCircle(Vec3f v, int size, float radius, float thic gluDeleteQuadric(disc); glPopMatrix(); + // glBegin (GL_QUAD_STRIP); + // for (float k = 0; k <= 180; k=k+1) { + // float j=degToRad(k); + // glVertex3f(v.x+std::cos(j)*.9*radius*size, v.y+thickness, v.z+std::sin(j)*.9*radius*size); + // glVertex3f(v.x+std::cos(j)*radius*size, v.y, v.z+std::sin(j)*radius*size); + // } + // glEnd(); } void Renderer::renderArrow(const Vec3f &pos1, const Vec3f &pos2, diff --git a/source/glest_game/graphics/renderer.h b/source/glest_game/graphics/renderer.h index fa15818b..7e577de5 100644 --- a/source/glest_game/graphics/renderer.h +++ b/source/glest_game/graphics/renderer.h @@ -183,6 +183,15 @@ public: //uint32 m_nVBOIndexes; // Indexes VBO Name }; +enum ConsoleMode { + consoleOff, + consoleNormal, + consoleFull, + consoleStoredOnly, + consoleStoredAndNormal, + + consoleCount +}; class Renderer : public RendererInterface, public BaseRenderer, @@ -496,7 +505,7 @@ public: void renderBackground(const Texture2D *texture); void renderTextureQuad(int x, int y, int w, int h, const Texture2D *texture, float alpha=1.f,const Vec3f *color=NULL); - void renderConsole(const Console *console, const bool showAll=false, const bool showMenuConsole=false, int overrideMaxConsoleLines=-1); + void renderConsole(const Console *console, ConsoleMode mode=consoleNormal, int overrideMaxConsoleLines=-1); void renderConsoleLine3D(int lineIndex, int xPosition, int yPosition, int lineHeight, Font3D* font, string stringToHightlight, const ConsoleLineInfo *lineInfo); void renderConsoleLine(int lineIndex, int xPosition, int yPosition, int lineHeight, Font2D* font, string stringToHightlight, const ConsoleLineInfo *lineInfo); diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index 7ad4cf14..8257779e 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -71,6 +71,7 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM switchSetupRequestFlagType |= ssrft_NetworkPlayerName; updateDataSynchDetailText = false; launchingNewGame = false; + isfirstSwitchingMapMessage = true; this->zoomedMap = false; this->render_mapPreviewTexture_X = mapPreviewTexture_X; @@ -2798,7 +2799,7 @@ void MenuStateConnectedGame::render() { } } renderer.renderChatManager(&chatManager); - renderer.renderConsole(&console,showFullConsole,true); + renderer.renderConsole(&console,consoleStoredAndNormal); if(difftime((long int)time(NULL),timerLabelFlash) > 2) { timerLabelFlash = time(NULL); @@ -4729,9 +4730,13 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings, if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line %d] listBoxMap.getSelectedItemIndex() = %d, mapFiles.size() = " MG_SIZE_T_SPECIFIER ", maps.size() = " MG_SIZE_T_SPECIFIER ", getCurrentMapFile() [%s] mapFile [%s]\n", extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,listBoxMap.getSelectedItemIndex(),mapFiles.size(),maps.size(),getCurrentMapFile().c_str(),mapFile.c_str()); - if(!missingMap && mapFile!=listBoxMap.getSelectedItem()){ - console.addLine("Headless server does not have map, switching to next one"); - printf("Headless server doesn't have map '%s'. Setting map '%s' instead.\n",listBoxMap.getSelectedItem().c_str(),mapFile.c_str()); + if( isHeadlessAdmin() && !missingMap && mapFile!=listBoxMap.getSelectedItem()){ + //console.addLine("Headless server does not have map, switching to next one"); + if(isfirstSwitchingMapMessage){ + isfirstSwitchingMapMessage=false; + }else{ + console.addLine(Lang::getInstance().getString("HeadlessServerDoesNotHaveMap","",true)); + } } listBoxMap.setItems(maps); diff --git a/source/glest_game/menu/menu_state_connected_game.h b/source/glest_game/menu/menu_state_connected_game.h index f8a1380f..3bd3a9a7 100644 --- a/source/glest_game/menu/menu_state_connected_game.h +++ b/source/glest_game/menu/menu_state_connected_game.h @@ -241,6 +241,7 @@ private: time_t noReceiveTimer; bool launchingNewGame; + bool isfirstSwitchingMapMessage; std::auto_ptr techTree; GameSettings originalGamesettings; diff --git a/source/glest_game/menu/menu_state_custom_game.cpp b/source/glest_game/menu/menu_state_custom_game.cpp index 2a6abb10..84b82e9f 100644 --- a/source/glest_game/menu/menu_state_custom_game.cpp +++ b/source/glest_game/menu/menu_state_custom_game.cpp @@ -2288,7 +2288,7 @@ void MenuStateCustomGame::render() { renderer.renderChatManager(&chatManager); } } - renderer.renderConsole(&console,showFullConsole,true); + renderer.renderConsole(&console,consoleStoredAndNormal,true); } catch(const std::exception &ex) { char szBuf[8096]=""; diff --git a/source/glest_game/menu/menu_state_graphic_info.cpp b/source/glest_game/menu/menu_state_graphic_info.cpp index 2e720094..41e2a9d4 100644 --- a/source/glest_game/menu/menu_state_graphic_info.cpp +++ b/source/glest_game/menu/menu_state_graphic_info.cpp @@ -141,7 +141,7 @@ void MenuStateGraphicInfo::render(){ renderer.renderLabel(&labelInternalInfo); renderer.renderLabel(&labelMoreInfo); - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); } void MenuStateGraphicInfo::keyDown(SDL_KeyboardEvent key) { diff --git a/source/glest_game/menu/menu_state_keysetup.cpp b/source/glest_game/menu/menu_state_keysetup.cpp index e420fdd4..817b74a7 100644 --- a/source/glest_game/menu/menu_state_keysetup.cpp +++ b/source/glest_game/menu/menu_state_keysetup.cpp @@ -445,7 +445,7 @@ void MenuStateKeysetup::render(){ renderer.renderScrollBar(&keyScrollBar); } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_load_game.cpp b/source/glest_game/menu/menu_state_load_game.cpp index 08492d94..dc214e63 100644 --- a/source/glest_game/menu/menu_state_load_game.cpp +++ b/source/glest_game/menu/menu_state_load_game.cpp @@ -434,7 +434,7 @@ void MenuStateLoadGame::render() { renderer.renderMessageBox(&mainMessageBox); } - renderer.renderConsole(&console,false,false); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_masterserver.cpp b/source/glest_game/menu/menu_state_masterserver.cpp index c6e1da1d..d96d30e5 100644 --- a/source/glest_game/menu/menu_state_masterserver.cpp +++ b/source/glest_game/menu/menu_state_masterserver.cpp @@ -790,7 +790,7 @@ void MenuStateMasterserver::render(){ ircClient->getHasJoinedChannel() == true) { renderer.renderChatManager(&chatManager); } - renderer.renderConsole(&consoleIRC,false,true,21); + renderer.renderConsole(&consoleIRC,consoleStoredOnly,21); } if(program != NULL) program->renderProgramMsgBox(); diff --git a/source/glest_game/menu/menu_state_mods.cpp b/source/glest_game/menu/menu_state_mods.cpp index 040c0c5a..9182216e 100644 --- a/source/glest_game/menu/menu_state_mods.cpp +++ b/source/glest_game/menu/menu_state_mods.cpp @@ -2386,7 +2386,7 @@ void MenuStateMods::render() { } safeMutexFTPProgress.ReleaseLock(); - renderer.renderConsole(&console,showFullConsole,true,3); + renderer.renderConsole(&console,consoleNormal,3); if(mainMessageBox.getEnabled()) { renderer.renderMessageBox(&mainMessageBox); diff --git a/source/glest_game/menu/menu_state_new_game.cpp b/source/glest_game/menu/menu_state_new_game.cpp index af934419..c509c88f 100644 --- a/source/glest_game/menu/menu_state_new_game.cpp +++ b/source/glest_game/menu/menu_state_new_game.cpp @@ -137,7 +137,7 @@ void MenuStateNewGame::render(){ renderer.renderButton(&buttonTutorial); renderer.renderButton(&buttonReturn); - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_options.cpp b/source/glest_game/menu/menu_state_options.cpp index f591e7a7..d8463f7e 100644 --- a/source/glest_game/menu/menu_state_options.cpp +++ b/source/glest_game/menu/menu_state_options.cpp @@ -1051,7 +1051,7 @@ void MenuStateOptions::render(){ } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_options_graphics.cpp b/source/glest_game/menu/menu_state_options_graphics.cpp index 3aac17d7..b371376e 100644 --- a/source/glest_game/menu/menu_state_options_graphics.cpp +++ b/source/glest_game/menu/menu_state_options_graphics.cpp @@ -836,7 +836,7 @@ void MenuStateOptionsGraphics::render(){ renderer.renderCheckBox(&checkBoxVideos); } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_options_network.cpp b/source/glest_game/menu/menu_state_options_network.cpp index b6cd38e9..1e2bc53a 100644 --- a/source/glest_game/menu/menu_state_options_network.cpp +++ b/source/glest_game/menu/menu_state_options_network.cpp @@ -499,7 +499,7 @@ void MenuStateOptionsNetwork::render(){ } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_options_sound.cpp b/source/glest_game/menu/menu_state_options_sound.cpp index 15e1ab8a..e20ced4a 100644 --- a/source/glest_game/menu/menu_state_options_sound.cpp +++ b/source/glest_game/menu/menu_state_options_sound.cpp @@ -410,7 +410,7 @@ void MenuStateOptionsSound::render(){ } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/menu/menu_state_root.cpp b/source/glest_game/menu/menu_state_root.cpp index d1083d7f..a056e637 100644 --- a/source/glest_game/menu/menu_state_root.cpp +++ b/source/glest_game/menu/menu_state_root.cpp @@ -279,7 +279,7 @@ void MenuStateRoot::render() { renderer.renderButton(&buttonExit); renderer.renderLabel(&labelVersion); - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); renderer.renderPopupMenu(&popupMenu); diff --git a/source/glest_game/menu/menu_state_scenario.cpp b/source/glest_game/menu/menu_state_scenario.cpp index 0a7e4aac..fd20a609 100644 --- a/source/glest_game/menu/menu_state_scenario.cpp +++ b/source/glest_game/menu/menu_state_scenario.cpp @@ -301,7 +301,7 @@ void MenuStateScenario::render(){ renderer.renderButton(&buttonReturn); renderer.renderButton(&buttonPlayNow); } - renderer.renderConsole(&console,false,true); + renderer.renderConsole(&console); if(program != NULL) program->renderProgramMsgBox(); } diff --git a/source/glest_game/type_instances/unit.cpp b/source/glest_game/type_instances/unit.cpp index 8353d880..953887ce 100644 --- a/source/glest_game/type_instances/unit.cpp +++ b/source/glest_game/type_instances/unit.cpp @@ -36,7 +36,7 @@ using namespace Shared::Util; namespace Glest{ namespace Game{ const int CHANGE_COMMAND_SPEED = 325; -const int MIN_FRAMECOUNT_CHANGE_COMMAND_SPEED = 160; +const uint32 MIN_FRAMECOUNT_CHANGE_COMMAND_SPEED = 160; //Mutex Unit::mutexDeletedUnits; //map Unit::deletedUnits;