From 10ecf50bc0dab23d0fee37e0267bd1467cd248bd Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Mon, 21 Apr 2025 23:44:12 -0400 Subject: [PATCH] Use pointers for the stuff so it can lazy load. --- sfmlbackend.cpp | 25 +++++++++---------------- sfmlbackend.hpp | 4 ---- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/sfmlbackend.cpp b/sfmlbackend.cpp index 904270e..683bd25 100644 --- a/sfmlbackend.cpp +++ b/sfmlbackend.cpp @@ -136,13 +136,6 @@ void SFMLBackend::update_entities() { string time = fmt::format("{:%H:%M:%OS}", elapsed_time); write_text(7, 14, time, 2.0f); - - - stop_button->setPosition(translate(27, 15)); - window.draw(*start_button); - start_button->setPosition(translate(37, 15)); - window.draw(*stop_button); - Window_update(); } @@ -161,18 +154,15 @@ SFMLBackend::SFMLBackend(GameEngine &g) : window(sf::VideoMode({X_DIM, Y_DIM}), "Turing's Tarpit"), game(g) { - face_texture = make_shared("./assets/building.png"); - stop_texture = make_shared("./assets/stop_button.png"); - start_texture = make_shared("./assets/start_button.png"); + std::ifstream infile(".tarpit.json"); + json data = json::parse(infile); + auto images = data["images"]; + std::string build_name = images["building"]; + face_texture = make_shared(build_name); face_sprite = make_shared(*face_texture); - stop_button = make_shared(*stop_texture); - start_button = make_shared(*start_texture); - - change_face("building"); } - /* * This makes my soul hurt. Make it stop. * @@ -189,8 +179,11 @@ void SFMLBackend::update_log(std::vector &lines) { void SFMLBackend::startup() { fmt::print("Setting up a window for you...\n"); + std::ifstream infile(".tarpit.json"); + json data = json::parse(infile); + std::string font_file = data["font"]; - if(!font.openFromFile("./assets/text.ttf")) { + if(!font.openFromFile(font_file)) { fmt::println("Cannot load font."); } diff --git a/sfmlbackend.hpp b/sfmlbackend.hpp index 11f9738..6a4a40d 100644 --- a/sfmlbackend.hpp +++ b/sfmlbackend.hpp @@ -51,10 +51,6 @@ class SFMLBackend { sf::RenderWindow window; std::shared_ptr face_sprite = nullptr; std::shared_ptr face_texture = nullptr; - std::shared_ptr stop_button = nullptr; - std::shared_ptr stop_texture = nullptr; - std::shared_ptr start_button = nullptr; - std::shared_ptr start_texture = nullptr; std::chrono::time_point clock_start; Button buttons = Button::STOP; int hit_points = 50;