After some prototyping I have what I think I want for the map. Just a simple piece of paper you take out that has the ASCII map on it.

This commit is contained in:
Zed A. Shaw 2025-03-21 02:51:02 -04:00
parent acbf384e2a
commit 6c9016eb0f
21 changed files with 1184 additions and 92 deletions

View file

@ -16,7 +16,6 @@ namespace gui {
$window(sf::VideoMode({SCREEN_WIDTH, SCREEN_HEIGHT}), "Zed's Raycaster Thing"),
$main_ui($window),
$level($levels.current()),
$map_ui($level),
$combat_ui($level),
$status_ui($level),
$font{FONT_FILE_NAME}
@ -28,7 +27,6 @@ namespace gui {
FSM_STATE(State, START, ev);
FSM_STATE(State, MOVING, ev);
FSM_STATE(State, ATTACKING, ev);
FSM_STATE(State, MAPPING, ev);
FSM_STATE(State, ROTATING, ev);
FSM_STATE(State, IDLE, ev);
FSM_STATE(State, IN_COMBAT, ev);
@ -41,10 +39,7 @@ namespace gui {
void FSM::START(Event ) {
$main_ui.update_level($level);
$level.world->set_the<Debug>({});
$main_ui.init();
$map_ui.init();
$combat_ui.init();
$status_ui.init();
$status_ui.log("Welcome to the game!");
@ -57,23 +52,6 @@ namespace gui {
state(State::IDLE);
}
void FSM::MAPPING(Event ev) {
using enum Event;
// BUG: can't close window when in mapping
switch(ev) {
case MAP_OPEN:
state(State::IDLE);
break;
case CLOSE:
state(State::IDLE);
break;
case TICK:
break;
default:
dbc::log("invalid event sent to MAPPING");
}
}
void FSM::MOVING(Event ) {
// this should be an optional that returns a point
if(auto move_to = $main_ui.play_move()) {
@ -148,7 +126,7 @@ namespace gui {
state(State::ROTATING);
break;
case MAP_OPEN:
state(State::MAPPING);
$status_ui.map_open = !$status_ui.map_open;
break;
case ATTACK:
state(State::ATTACKING);
@ -313,16 +291,15 @@ namespace gui {
$boss_fight_ui->render($window);
} else {
$main_ui.render();
$status_ui.render($window);
$combat_ui.render($window);
}
}
void FSM::render() {
if(in_state(State::MAPPING)) {
$window.clear();
$map_ui.render($window);
} else if(in_state(State::NEXT_LEVEL)) {
if(in_state(State::NEXT_LEVEL)) {
$window.clear();
$boss_fight_ui->render($window);
} else {
@ -416,7 +393,6 @@ namespace gui {
$status_ui.update_level($level);
$combat_ui.update_level($level);
$map_ui.update_level($level);
$main_ui.update_level($level);
$boss_fight_ui = $levels.create_bossfight($level.world);
$boss_fight_ui->init();