/** * Konstruktor von @p iwOptionsWindow. * * @author OLiver */ iwOptionsWindow::iwOptionsWindow(dskGameInterface* gameDesktop) : IngameWindow(CGI_OPTIONSWINDOW, 0xFFFF, 0xFFFF, 300, 515, _("Game menu"), LOADER.GetImageN("resource", 41)) { this->gameDesktop = gameDesktop; // Der Soldat oben AddImage(1, 150, 36, LOADER.GetImageN("io", 30)); // Versionszeile AddVarText(2, 150, 76, _("Return To The Roots v%s-%s"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort()); // Copyright AddVarText(3, 150, 96, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear()); // "Tastaturbelegung" AddImageButton(4, 35, 120, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 79)); AddText(5, 85, 140, _("Keyboard layout"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont); // "'Lies mich'-Datei laden" AddImageButton(6, 35, 160, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 79)); AddText(7, 85, 180, _("Load 'ReadMe' file"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont); // "Spiel laden!" AddImageButton( 8, 35, 210, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 48)); AddText(9, 85, 230, _("Load game!"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont); // "Spiel speichern!" AddImageButton(10, 35, 250, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 47)); AddText(11, 85, 270, _("Save game!"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont); // Geräusche an/aus AddImageButton(12, 35, 300, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 114 + !SETTINGS.sound.effekte)); // Musik an/aus AddImageButton(13, 35, 340, 35, 35, TC_GREEN2, LOADER.GetImageN("io", 116 + !SETTINGS.sound.musik)); // Geräuschlautstärke AddProgress(14, 100, 306, 160, 22, TC_GREEN2, 139, 138, 10) ->SetPosition(SETTINGS.sound.effekte_volume * 10 / 255); // Musiklautstärke AddProgress(15, 100, 346, 160, 22, TC_GREEN2, 139, 138, 10) ->SetPosition(SETTINGS.sound.musik_volume * 10 / 255); //// Music Player AddTextButton(16, 100, 380, 160, 22, TC_GREEN2, _("Music player"), NormalFont); // Advanced Options AddTextButton(18, 67, 412, 168, 24, TC_GREEN2, _("Advanced"), NormalFont); // "Spiel aufgeben" AddTextButton(17, 67, 443, 168, 24, TC_RED1, _("Surrender"), NormalFont); // "Spiel beenden" AddTextButton(0, 67, 474, 168, 24, TC_RED1, _("End game"), NormalFont); }
/** * Konstruktor von @p dskLobby. * * @author FloSoft * @author Devil */ dskLobby::dskLobby() : Desktop(LOADER.GetImageN("setup013", 0)), serverinfo(NULL), servercreate(NULL) { // Version AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort()); // URL AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont); // Copyright AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear()); // "Zurück" AddTextButton(3, 530, 530, 250, 22, TC_RED1, _("Back"), NormalFont); // "Verbinden" AddTextButton(4, 530, 470, 250, 22, TC_GREEN2, _("Connect"), NormalFont); // "Internet Ranking" AddTextButton(5, 530, 500, 250, 22, TC_GREEN2, _("Internet Ranking"), NormalFont); // "Server hinzufügen" AddTextButton(6, 530, 440, 250, 22, TC_GREEN2, _("Add Server"), NormalFont); // Gameserver-Tabelle - "ID", "Server", "Karte", "Spieler", "Version", "Ping" AddTable(10, 20, 20, 500, 262, TC_GREY, NormalFont, 6, _("ID"), 0, ctrlTable::SRT_NUMBER, _("Server"), 300, ctrlTable::SRT_STRING, _("Map"), 300, ctrlTable::SRT_STRING, _("Player"), 200, ctrlTable::SRT_NUMBER, _("Version"), 100, ctrlTable::SRT_STRING, _("Ping"), 100, ctrlTable::SRT_NUMBER); // Spieler-Tabelle - "Name", "Punkte", "Version" AddTable(11, 530, 20, 250, 410, TC_GREY, NormalFont, 3, _("Name"), 500, ctrlTable::SRT_STRING, _("Points"), 250, ctrlTable::SRT_STRING, _("Version"), 250, ctrlTable::SRT_STRING); // Chatfenster AddChatCtrl(20, 20, 290, 500, 238, TC_GREY, NormalFont); // Chatfenster-Edit AddEdit(21, 20, 530, 500, 22, TC_GREY, NormalFont); AddTimer(30, 5000); UpdateServerList(true); UpdatePlayerList(true); LOBBYCLIENT.SetInterface(this); LOBBYCLIENT.SendServerListRequest(); LOBBYCLIENT.SendPlayerListRequest(); GAMECLIENT.SetInterface(this); }
dskMainMenu::dskMainMenu() : Desktop(LOADER.GetImageN("menu", 0)) { // Version AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort()); // URL AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont); // Copyright AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear()); // "Einzelspieler" AddTextButton(4, 115, 180, 220, 22, TC_GREEN2, _("Singleplayer"), NormalFont); // "Mehrspieler" AddTextButton(5, 115, 210, 220, 22, TC_GREEN2, _("Multiplayer"), NormalFont); // "Optionen" AddTextButton(6, 115, 250, 220, 22, TC_GREEN2, _("Options"), NormalFont); // "Intro" AddTextButton(7, 115, 280, 220, 22, TC_GREEN2, _("Intro"), NormalFont); // "ReadMe" AddTextButton(10, 115, 310, 220, 22, TC_GREEN2, _("Readme"), NormalFont); // "Credits" AddTextButton(8, 115, 340, 220, 22, TC_GREEN2, _("Credits"), NormalFont); // "Programm verlassen" AddTextButton(9, 115, 390, 220, 22, TC_RED1, _("Quit program"), NormalFont); AddImage(11, 20, 20, LOADER.GetImageN("logo", 0)); if (SETTINGS.global.submit_debug_data == 0) { AddTimer(20, 250); } /*AddText(20, 50, 450, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, SmallFont); AddText(21, 50, 470, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, NormalFont); AddText(22, 50, 490, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, LargeFont);*/ // !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz\\_ABCDEFGHIJKLMNOPQRSTUVWXYZÇüéâäàåçêëèïîì©ÄÅôöòûùÖÜáíóúñ }
/** * Erstellt das Fenster mit entsprechenden Werten. * * @param[in] width Breite des Fensters * @param[in] height Höhe des Fensters * @param[in] fullscreen Vollbildmodus ja oder nein * * @return @p true bei Erfolg, @p false bei Fehler * * @bug Hardwarecursor ist bei Fenstermodus sichtbar, * Cursor deaktivieren ist fehlerhaft * * @author FloSoft */ bool VideoWinAPI::CreateScreen(unsigned short width, unsigned short height, const bool fullscreen) { if(!initialized) return false; std::wstring wTitle = AnsiToUtf8(GetWindowTitle()); WNDCLASSW wc; wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WindowProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = GetModuleHandle(NULL); wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SYMBOL)); wc.hCursor = NULL; wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = wTitle.c_str(); // Fensterklasse registrieren if (!RegisterClassW(&wc)) return false; DWORD dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; DWORD dwStyle = WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX; if(fullscreen) { dwExStyle = WS_EX_APPWINDOW; dwStyle = WS_POPUP; EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &dm_prev); } else { // Bei Fensteranwendung die Breiten und Hoehen der Fensterrahmen, Titelleiste draufaddieren width += 2 * GetSystemMetrics(SM_CXFIXEDFRAME); height += 2 * GetSystemMetrics(SM_CXFIXEDFRAME) + GetSystemMetrics(SM_CYCAPTION); } // Fenster erstellen screen = CreateWindowExW(dwExStyle, wTitle.c_str(), wTitle.c_str(), dwStyle, CW_USEDEFAULT, CW_USEDEFAULT, width, height, NULL, NULL, GetModuleHandle(NULL), NULL); if(screen == NULL) return false; SetClipboardViewer(screen); std::stringstream title; title << GetWindowTitle() << " - v" << GetWindowVersion() << "-" << GetWindowRevisionShort(); wTitle = AnsiToUtf8(title.str().c_str()); SetWindowTextW(screen, wTitle.c_str()); SetWindowTextW(GetConsoleWindow(), wTitle.c_str()); // Pixelformat zuweisen GLuint PixelFormat; static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 8, // 8 Bit 8, // red 0, 8, // green 0, 8, // blue 0, 8, // alpha 0, 0, 0, 0, 0, 0, 32, // 32 Bit 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; screen_dc = GetDC(screen); if(screen_dc == NULL) return false; // Pixelformat auswaehlen PixelFormat = ChoosePixelFormat(screen_dc, &pfd); if(PixelFormat == 0) return false; // Pixelformat zuweisen if(!SetPixelFormat(screen_dc, PixelFormat, &pfd)) return false; // Renderingkontext erstellen screen_rc = wglCreateContext(screen_dc); if(screen_rc == NULL) return false; // Renderingkontext aktivieren if(!wglMakeCurrent(screen_dc, screen_rc)) return false; // Mauscursor ausblenden ShowCursor(FALSE); // Bei Fullscreen Aufloesung umstellen if(fullscreen) { // Aktuelle Framerate holen und die spaeter dann benutzen DEVMODE prev; EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &prev); DEVMODE dm; memset(&dm, 0, sizeof(dm)); dm.dmSize = sizeof(dm); dm.dmFields = DM_DISPLAYFREQUENCY | DM_PELSWIDTH | DM_PELSHEIGHT; dm.dmDisplayFrequency = prev.dmDisplayFrequency; dm.dmPelsWidth = width; dm.dmPelsHeight = height; ChangeDisplaySettings(&dm, CDS_FULLSCREEN); } this->screenWidth = width; this->screenHeight = height; this->isFullscreen_ = fullscreen; // Das Fenster anzeigen ShowWindow(screen, SW_SHOW); // Das Fenster in den Vordergrund rcken SetForegroundWindow(screen); // Dem Fenster den Eingabefokus geben SetFocus(screen); return true; }
dskLAN::dskLAN() : Desktop(LOADER.GetImageN("setup013", 0)), discovery(LAN_DISCOVERY_CFG) { // Version AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort()); // URL AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont); // Copyright AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear()); // "Server hinzufügen" AddTextButton(btAddServerId, 530, 250, 250, 22, TC_GREEN2, _("Add Server"), NormalFont); // "Verbinden" AddTextButton(btConnectId, 530, 280, 250, 22, TC_GREEN2, _("Connect"), NormalFont); // "Zurück" AddTextButton(btBackId, 530, 530, 250, 22, TC_RED1, _("Back"), NormalFont); // Gameserver-Tabelle - "ID", "Server", "Karte", "Spieler", "Version" AddTable(tblServerId, 20, 20, 500, 530, TC_GREY, NormalFont, 5, _("ID"), 0, ctrlTable::SRT_NUMBER, _("Server"), 300, ctrlTable::SRT_STRING, _("Map"), 300, ctrlTable::SRT_STRING, _("Player"), 200, ctrlTable::SRT_STRING, _("Version"), 100, ctrlTable::SRT_STRING); discovery.Start(); AddTimer(tmrRefreshServersId, 60000); // Servers broadcast changes, so force a full update only once a minute AddTimer(tmrRefreshListId, 2000); }
dskSinglePlayer::dskSinglePlayer() : Desktop(LOADER.GetImageN("menu", 0)) { // Version AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort()); // URL AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont); // Copyright AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear()); // "Letztes Spiel fortsetzen" AddTextButton(3, 115, 180, 220, 22, TC_GREEN2, _("Resume last game"), NormalFont); // "Replay abspielen" AddTextButton(4, 115, 220, 220, 22, TC_GREEN2, _("Play Replay"), NormalFont); // "Kampagne" AddTextButton(5, 115, 260, 220, 22, TC_GREEN2, _("Campaign"), NormalFont); // "Freies Spiel" AddTextButton(6, 115, 290, 220, 22, TC_GREEN2, _("Unlimited Play"), NormalFont); // "Spiel laden" AddTextButton(7, 115, 320, 220, 22, TC_GREEN2, _("Load game"), NormalFont); // "Zurück" AddTextButton(8, 115, 360, 220, 22, TC_RED1, _("Back"), NormalFont); AddImage(11, 20, 20, LOADER.GetImageN("logo", 0)); }