Now have hotkeys to test the different start/end conditions.

This commit is contained in:
Zed A. Shaw 2026-04-02 23:23:57 -04:00
parent 17f05e7093
commit 279faf6dd5
3 changed files with 29 additions and 16 deletions

View file

@ -5,6 +5,7 @@
#include <fmt/core.h> #include <fmt/core.h>
#include <fmt/xchar.h> #include <fmt/xchar.h>
#include "game/components.hpp" #include "game/components.hpp"
#include "gui/guecstra.hpp"
namespace gui { namespace gui {
using namespace guecs; using namespace guecs;
@ -15,11 +16,7 @@ namespace gui {
"[*%(100,400)debug_text]" "[*%(100,400)debug_text]"
"[_]" "[_]"
"[_]" "[_]"
"[_]" "[_]");
"[spawn1|spawn2|spawn3]"
"[spawn4|spawn5|spawn6]");
// add_spawn_button("RAT_GIANT", "rat_with_sword", "spawn4");
$gui.init(); $gui.init();
} }

View file

@ -143,6 +143,7 @@ namespace gui {
mouse_action({1 << guecs::ModBit::hover}); mouse_action({1 << guecs::ModBit::hover});
} break; } break;
case START: case START:
next_level();
close_scene(); close_scene();
state(State::IDLE); state(State::IDLE);
break; break;
@ -371,15 +372,19 @@ namespace gui {
$debug_ui.debug(); $debug_ui.debug();
shaders::reload(); shaders::reload();
break; break;
case KEY::L: case KEY::X:
// This will go away as soon as containers work show_scene("NEXT_LEVEL");
$loot_ui.set_target($loot_ui.$temp_loot); state(State::NEXT_LEVEL_SCENE);
$loot_ui.update();
event(Event::LOOT_OPEN);
break; break;
case KEY::Z: case KEY::Z:
$main_ui.toggle_mind_reading(); $main_ui.toggle_mind_reading();
break; break;
case KEY::K:
player_died();
break;
case KEY::N:
player_won();
break;
case KEY::F5: case KEY::F5:
take_screenshot(); take_screenshot();
break; break;
@ -400,10 +405,6 @@ namespace gui {
} }
void FSM::draw_gui() { void FSM::draw_gui() {
if($debug_ui.active) {
debug_render();
}
if($cur_scene != nullptr) { if($cur_scene != nullptr) {
$cur_scene->render($window); $cur_scene->render($window);
} else { } else {
@ -411,6 +412,10 @@ namespace gui {
$status_ui.render($window); $status_ui.render($window);
if($loot_ui.active) $loot_ui.render($window); if($loot_ui.active) $loot_ui.render($window);
if(in_state(State::LOOTING)) $dnd_loot.render(); if(in_state(State::LOOTING)) $dnd_loot.render();
if($debug_ui.active) {
debug_render();
}
} }
} }
@ -508,8 +513,7 @@ namespace gui {
if(entity != player.entity) { if(entity != player.entity) {
$main_ui.dead_entity(entity); $main_ui.dead_entity(entity);
} else { } else {
show_scene("DEATH"); player_died();
state(State::DEATH_SCENE);
} }
} break; } break;
case eGUI::NOOP: { case eGUI::NOOP: {
@ -552,4 +556,14 @@ namespace gui {
void FSM::close_scene() { void FSM::close_scene() {
$cur_scene = nullptr; $cur_scene = nullptr;
} }
void FSM::player_died() {
show_scene("DEATH");
state(State::DEATH_SCENE);
}
void FSM::player_won() {
show_scene("WIN");
state(State::WIN_SCENE);
}
} }

View file

@ -80,5 +80,7 @@ namespace gui {
void take_screenshot(); void take_screenshot();
void show_scene(const std::string& name); void show_scene(const std::string& name);
void close_scene(); void close_scene();
void player_died();
void player_won();
}; };
} }