Client builds & runs, can't test the gameplay without the server

SDL_ttf is now being initialized, and all usages of fonts are now checked for nullptr.
A bug where the renderer's logical size was not properly set has been fixed.
The FPS counter is disabled for now.
This commit is contained in:
2015-08-20 20:45:13 +10:00
parent dc5b09a9b4
commit 3d6509b5a5
15 changed files with 100 additions and 22 deletions
@@ -25,6 +25,7 @@
#include "config_utility.hpp"
#include "udp_network_utility.hpp"
#include <sstream>
#include <stdexcept>
//-------------------------
@@ -39,6 +40,13 @@ DisconnectedScreen::DisconnectedScreen() {
image.Load(GetRenderer(), config["dir.interface"] + "button.png");
font = TTF_OpenFont(config["client.font"].c_str(), 12);
//check that the font loaded
if (!font) {
std::ostringstream msg;
msg << "Failed to load a font file; " << SDL_GetError();
throw(std::runtime_error(msg.str()));
}
//setup the button
backButton.SetBackgroundTexture(GetRenderer(), image.GetTexture());
backButton.SetText(GetRenderer(), font, "Back", {255, 255, 255, 255});
@@ -105,6 +113,10 @@ void DisconnectedScreen::MouseButtonUp(SDL_MouseButtonEvent const& event) {
}
}
void DisconnectedScreen::MouseWheel(SDL_MouseWheelEvent const& event) {
//
}
void DisconnectedScreen::KeyDown(SDL_KeyboardEvent const& event) {
switch(event.keysym.sym) {
case SDLK_ESCAPE:
+7
View File
@@ -42,6 +42,13 @@ LobbyMenu::LobbyMenu(int* const argClientIndex, int* const argAccountIndex):
buttonImage.Load(GetRenderer(), config["dir.interface"] + "button.png");
font = TTF_OpenFont(config["client.font"].c_str(), 12);
//check that the font loaded
if (!font) {
std::ostringstream msg;
msg << "Failed to load a font file; " << SDL_GetError();
throw(std::runtime_error(msg.str()));
}
//setup the buttons
searchButton.SetBackgroundTexture(GetRenderer(), buttonImage.GetTexture());
searchButton.SetText(GetRenderer(), font, "Search", {255, 255, 255, 255});
+19 -2
View File
@@ -23,6 +23,9 @@
#include "config_utility.hpp"
#include <sstream>
#include <stdexcept>
//-------------------------
//Public access members
//-------------------------
@@ -34,6 +37,13 @@ MainMenu::MainMenu() {
buttonImage.Load(GetRenderer(), config["dir.interface"] + "button.png");
font = TTF_OpenFont(config["client.font"].c_str(), 12);
//check that the font loaded
if (!font) {
std::ostringstream msg;
msg << "Failed to load a font file; " << SDL_GetError();
throw(std::runtime_error(msg.str()));
}
//setup the buttons
startButton.SetBackgroundTexture(GetRenderer(), buttonImage.GetTexture());
startButton.SetText(GetRenderer(), font, "Start", {255, 255, 255, 255});
@@ -53,7 +63,7 @@ MainMenu::MainMenu() {
//text box
textBox.PushLine(GetRenderer(), font, "Thanks for playing!", {255, 255, 255, 255});
textBox.PushLine(GetRenderer(), font, "You can get the latest version at: ", {255, 255, 255, 255});
textBox.PushLine(GetRenderer(), font, "krgamestudios.com", {255, 255, 255, 255});
textBox.PushLine(GetRenderer(), font, "krgamestudios.com", {255, 255, 255, 255}); //TODO: click to open the website/update
//debug
//
@@ -84,7 +94,10 @@ void MainMenu::RenderFrame(SDL_Renderer* renderer) {
optionsButton.DrawTo(renderer);
quitButton.DrawTo(renderer);
textBox.DrawTo(renderer, 50, 50, 12);
int h = -1;
SDL_RenderGetLogicalSize(GetRenderer(), nullptr, &h);
textBox.DrawTo(renderer, 50, h-50, -12);
}
//-------------------------
@@ -116,6 +129,10 @@ void MainMenu::MouseButtonUp(SDL_MouseButtonEvent const& event) {
}
}
void MainMenu::MouseWheel(SDL_MouseWheelEvent const& event) {
//
}
void MainMenu::KeyDown(SDL_KeyboardEvent const& event) {
//
}
+14
View File
@@ -23,6 +23,9 @@
#include "config_utility.hpp"
#include <sstream>
#include <stdexcept>
//-------------------------
//Public access members
//-------------------------
@@ -34,6 +37,13 @@ OptionsMenu::OptionsMenu() {
buttonImage.Load(GetRenderer(), config["dir.interface"] + "button.png");
font = TTF_OpenFont(config["client.font"].c_str(), 12);
//check that the font loaded
if (!font) {
std::ostringstream msg;
msg << "Failed to load a font file; " << SDL_GetError();
throw(std::runtime_error(msg.str()));
}
//setup the button
backButton.SetBackgroundTexture(GetRenderer(), buttonImage.GetTexture());
backButton.SetText(GetRenderer(), font, "Back", {255, 255, 255, 255});
@@ -89,6 +99,10 @@ void OptionsMenu::MouseButtonUp(SDL_MouseButtonEvent const& event) {
}
}
void OptionsMenu::MouseWheel(SDL_MouseWheelEvent const& event) {
//
}
void OptionsMenu::KeyDown(SDL_KeyboardEvent const& event) {
switch(event.keysym.sym) {
case SDLK_ESCAPE:
+3 -1
View File
@@ -28,6 +28,7 @@
//-------------------------
SplashScreen::SplashScreen() {
//TODO: I need a logo that isn't partially invisible
logo.Load(GetRenderer(), ConfigUtility::GetSingleton()["dir.logos"] + "krstudios.png");
startTick = std::chrono::steady_clock::now();
}
@@ -49,5 +50,6 @@ void SplashScreen::FrameStart() {
void SplashScreen::RenderFrame(SDL_Renderer* renderer) {
int w = 0, h = 0;
SDL_RenderGetLogicalSize(renderer, &w, &h);
logo.DrawTo(renderer, (w - logo.GetClipW()) / 2, (h - logo.GetClipH()) / 2);
//TODO: fix logo position
logo.DrawTo(renderer, (w - logo.GetClipW() / 4) / 2, (h - logo.GetClipH() / 4) / 2, .25, .25);
}