Cleaned up a lot but now trying to refactor some more but making a mistake.

master
Zed A. Shaw 1 month ago
parent 4b18b21861
commit b0437d352b
  1. 10
      gui.cpp
  2. 1
      gui.hpp

@ -45,7 +45,6 @@ namespace gui {
void FSM::MOVING(Event ) {
if($camera.play_move($rayview)) {
// really annoying but we have to figure out the motion factor then run the systems
auto &level = $levels.current();
auto& player = level.world->get_the<Player>();
auto& player_position = level.world->get<Position>(player.entity);
auto& motion = level.world->get<Motion>(player.entity);
@ -72,7 +71,7 @@ namespace gui {
case FU::QUIT:
$window.close();
state(State::END);
break;
return; // done
case FU::MOVE_FORWARD:
$camera.plan_run($rayview, 1);
state(State::MOVING);
@ -93,16 +92,15 @@ namespace gui {
$camera.plan_rotate($rayview, 1);
state(State::ROTATING);
return; // get out early since can always rotate
break; // need this?
case FU::ROTATE_RIGHT:
$camera.plan_rotate($rayview, -1);
state(State::ROTATING);
return; // get out early since can always rotate
break; // need this?
default:
dbc::sentinel("unhandled event in IDLE");
}
// prevent moving into occupied space
if(!can_move({size_t($camera.targetX), size_t($camera.targetY)})) {
state(State::IDLE);
$camera.abort_plan($rayview);
@ -110,7 +108,6 @@ namespace gui {
}
bool FSM::can_move(Point move_to) {
auto& level = $levels.current();
return level.map->can_move(move_to) && !level.collision->occupied(move_to);
}
@ -210,7 +207,7 @@ namespace gui {
}
void FSM::generate_map() {
auto& level = $levels.current();
level = $levels.current();
auto& player = level.world->get_the<Player>();
auto& player_position = level.world->get<Position>(player.entity);
$player = player_position.location;
@ -218,7 +215,6 @@ namespace gui {
}
void FSM::run_systems() {
auto& level = $levels.current();
System::motion(level);
System::enemy_pathing(level);
System::collision(level);

@ -29,6 +29,7 @@ namespace gui {
class FSM : public DeadSimpleFSM<State, Event> {
public:
GameLevel level;
float $rotation = -30.0f;
Point $player{0,0};
LevelManager $levels;

Loading…
Cancel
Save