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:
parent
acbf384e2a
commit
6c9016eb0f
21 changed files with 1184 additions and 92 deletions
32
gui_fsm.cpp
32
gui_fsm.cpp
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue