Cleaned up a lot but now trying to refactor some more but making a mistake.
This commit is contained in:
parent
4b18b21861
commit
b0437d352b
2 changed files with 4 additions and 7 deletions
10
gui.cpp
10
gui.cpp
|
@ -45,7 +45,6 @@ namespace gui {
|
||||||
void FSM::MOVING(Event ) {
|
void FSM::MOVING(Event ) {
|
||||||
if($camera.play_move($rayview)) {
|
if($camera.play_move($rayview)) {
|
||||||
// really annoying but we have to figure out the motion factor then run the systems
|
// 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 = level.world->get_the<Player>();
|
||||||
auto& player_position = level.world->get<Position>(player.entity);
|
auto& player_position = level.world->get<Position>(player.entity);
|
||||||
auto& motion = level.world->get<Motion>(player.entity);
|
auto& motion = level.world->get<Motion>(player.entity);
|
||||||
|
@ -72,7 +71,7 @@ namespace gui {
|
||||||
case FU::QUIT:
|
case FU::QUIT:
|
||||||
$window.close();
|
$window.close();
|
||||||
state(State::END);
|
state(State::END);
|
||||||
break;
|
return; // done
|
||||||
case FU::MOVE_FORWARD:
|
case FU::MOVE_FORWARD:
|
||||||
$camera.plan_run($rayview, 1);
|
$camera.plan_run($rayview, 1);
|
||||||
state(State::MOVING);
|
state(State::MOVING);
|
||||||
|
@ -93,16 +92,15 @@ namespace gui {
|
||||||
$camera.plan_rotate($rayview, 1);
|
$camera.plan_rotate($rayview, 1);
|
||||||
state(State::ROTATING);
|
state(State::ROTATING);
|
||||||
return; // get out early since can always rotate
|
return; // get out early since can always rotate
|
||||||
break; // need this?
|
|
||||||
case FU::ROTATE_RIGHT:
|
case FU::ROTATE_RIGHT:
|
||||||
$camera.plan_rotate($rayview, -1);
|
$camera.plan_rotate($rayview, -1);
|
||||||
state(State::ROTATING);
|
state(State::ROTATING);
|
||||||
return; // get out early since can always rotate
|
return; // get out early since can always rotate
|
||||||
break; // need this?
|
|
||||||
default:
|
default:
|
||||||
dbc::sentinel("unhandled event in IDLE");
|
dbc::sentinel("unhandled event in IDLE");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// prevent moving into occupied space
|
||||||
if(!can_move({size_t($camera.targetX), size_t($camera.targetY)})) {
|
if(!can_move({size_t($camera.targetX), size_t($camera.targetY)})) {
|
||||||
state(State::IDLE);
|
state(State::IDLE);
|
||||||
$camera.abort_plan($rayview);
|
$camera.abort_plan($rayview);
|
||||||
|
@ -110,7 +108,6 @@ namespace gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FSM::can_move(Point move_to) {
|
bool FSM::can_move(Point move_to) {
|
||||||
auto& level = $levels.current();
|
|
||||||
return level.map->can_move(move_to) && !level.collision->occupied(move_to);
|
return level.map->can_move(move_to) && !level.collision->occupied(move_to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +207,7 @@ namespace gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::generate_map() {
|
void FSM::generate_map() {
|
||||||
auto& level = $levels.current();
|
level = $levels.current();
|
||||||
auto& player = level.world->get_the<Player>();
|
auto& player = level.world->get_the<Player>();
|
||||||
auto& player_position = level.world->get<Position>(player.entity);
|
auto& player_position = level.world->get<Position>(player.entity);
|
||||||
$player = player_position.location;
|
$player = player_position.location;
|
||||||
|
@ -218,7 +215,6 @@ namespace gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::run_systems() {
|
void FSM::run_systems() {
|
||||||
auto& level = $levels.current();
|
|
||||||
System::motion(level);
|
System::motion(level);
|
||||||
System::enemy_pathing(level);
|
System::enemy_pathing(level);
|
||||||
System::collision(level);
|
System::collision(level);
|
||||||
|
|
1
gui.hpp
1
gui.hpp
|
@ -29,6 +29,7 @@ namespace gui {
|
||||||
|
|
||||||
class FSM : public DeadSimpleFSM<State, Event> {
|
class FSM : public DeadSimpleFSM<State, Event> {
|
||||||
public:
|
public:
|
||||||
|
GameLevel level;
|
||||||
float $rotation = -30.0f;
|
float $rotation = -30.0f;
|
||||||
Point $player{0,0};
|
Point $player{0,0};
|
||||||
LevelManager $levels;
|
LevelManager $levels;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue