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

This commit is contained in:
Zed A. Shaw 2025-02-06 11:41:01 -05:00
parent 4b18b21861
commit b0437d352b
2 changed files with 4 additions and 7 deletions

10
gui.cpp
View file

@ -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);

View file

@ -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;