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:
@@ -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:
|
||||
|
||||
@@ -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});
|
||||
|
||||
@@ -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) {
|
||||
//
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user