Now systems.cpp is disconnected from levelmanager. That leaves the GUIs and then to completely remove it and clean up the api.
This commit is contained in:
parent
81e25f73bb
commit
d5ff57e025
9 changed files with 106 additions and 89 deletions
28
gui/fsm.cpp
28
gui/fsm.cpp
|
@ -73,7 +73,7 @@ namespace gui {
|
|||
void FSM::MOVING(Event ) {
|
||||
// this should be an optional that returns a point
|
||||
if(auto move_to = $main_ui.play_move()) {
|
||||
System::plan_motion(Game::current(), *move_to);
|
||||
System::plan_motion(*move_to);
|
||||
run_systems();
|
||||
$main_ui.dirty();
|
||||
state(State::IDLE);
|
||||
|
@ -84,7 +84,7 @@ namespace gui {
|
|||
using enum Event;
|
||||
switch(ev) {
|
||||
case TICK: {
|
||||
System::combat(Game::current(), $temp_attack_id);
|
||||
System::combat($temp_attack_id);
|
||||
run_systems();
|
||||
state(State::IN_COMBAT);
|
||||
} break;
|
||||
|
@ -195,7 +195,7 @@ namespace gui {
|
|||
auto gui_id = std::any_cast<guecs::Entity>(data);
|
||||
auto& slot_name = $status_ui.$gui.name_for(gui_id);
|
||||
|
||||
if(System::use_item(Game::current(), slot_name)) {
|
||||
if(System::use_item(slot_name)) {
|
||||
$status_ui.update();
|
||||
}
|
||||
} break;
|
||||
|
@ -207,7 +207,7 @@ namespace gui {
|
|||
mouse_action({1 << guecs::ModBit::hover});
|
||||
} break;
|
||||
case AIM_CLICK:
|
||||
System::pickup(Game::current());
|
||||
System::pickup();
|
||||
break;
|
||||
default:
|
||||
break; // ignore everything else
|
||||
|
@ -362,9 +362,8 @@ namespace gui {
|
|||
event(Event::LOOT_OPEN);
|
||||
break;
|
||||
case KEY::Z: {
|
||||
auto& level = Game::current();
|
||||
auto& player_pos = Game::player_position();
|
||||
System::distribute_loot(level, {player_pos.aiming_at});
|
||||
System::distribute_loot({player_pos.aiming_at});
|
||||
} break;
|
||||
case KEY::X:
|
||||
event(Event::STAIRS_DOWN);
|
||||
|
@ -422,14 +421,13 @@ namespace gui {
|
|||
}
|
||||
|
||||
void FSM::run_systems() {
|
||||
auto& level = Game::current();
|
||||
System::generate_paths(level);
|
||||
System::enemy_ai_initialize(level);
|
||||
System::enemy_pathing(level);
|
||||
System::collision(level);
|
||||
System::motion(level);
|
||||
System::lighting(level);
|
||||
System::death(level);
|
||||
System::generate_paths();
|
||||
System::enemy_ai_initialize();
|
||||
System::enemy_pathing();
|
||||
System::collision();
|
||||
System::motion();
|
||||
System::lighting();
|
||||
System::death();
|
||||
}
|
||||
|
||||
bool FSM::active() {
|
||||
|
@ -504,7 +502,7 @@ namespace gui {
|
|||
event(Event::LOOT_OPEN);
|
||||
} break;
|
||||
case eGUI::HP_STATUS:
|
||||
System::player_status(Game::current());
|
||||
System::player_status();
|
||||
break;
|
||||
case eGUI::NEW_RITUAL:
|
||||
$combat_ui.init();
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "constants.hpp"
|
||||
#include "levelmanager.hpp"
|
||||
#include "simplefsm.hpp"
|
||||
#include "gui/debug_ui.hpp"
|
||||
#include "gui/main_ui.hpp"
|
||||
|
|
|
@ -128,7 +128,7 @@ namespace gui {
|
|||
}
|
||||
|
||||
void LootUI::drop_item(DinkyECS::Entity item_id) {
|
||||
System::drop_item($level, item_id);
|
||||
System::drop_item(item_id);
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -137,14 +137,14 @@ namespace gui {
|
|||
}
|
||||
|
||||
bool LootUI::occupied(guecs::Entity slot) {
|
||||
return System::inventory_occupied($level, $target, $gui.name_for(slot));
|
||||
return System::inventory_occupied($target, $gui.name_for(slot));
|
||||
}
|
||||
|
||||
void LootUI::swap(guecs::Entity gui_a, guecs::Entity gui_b) {
|
||||
if(gui_a != gui_b) {
|
||||
auto& a_name = $gui.name_for(gui_a);
|
||||
auto& b_name = $gui.name_for(gui_b);
|
||||
System::inventory_swap($level, $target, a_name, b_name);
|
||||
System::inventory_swap($target, a_name, b_name);
|
||||
}
|
||||
|
||||
update();
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace gui {
|
|||
|
||||
void MapViewUI::render(sf::RenderWindow &window, int compass_dir) {
|
||||
$gui.render(window);
|
||||
System::draw_map($level, $map_tiles, $entity_map);
|
||||
System::draw_map($map_tiles, $entity_map);
|
||||
System::render_map($map_tiles, $entity_map, *$map_render, compass_dir, $player_display);
|
||||
$map_sprite.setTexture($map_render->getTexture(), true);
|
||||
window.draw($map_sprite);
|
||||
|
|
|
@ -127,7 +127,7 @@ namespace gui {
|
|||
}
|
||||
|
||||
void StatusUI::drop_item(DinkyECS::Entity item_id) {
|
||||
System::drop_item($level, item_id);
|
||||
System::drop_item(item_id);
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ namespace gui {
|
|||
if(gui_a != gui_b) {
|
||||
auto& a_name = $gui.name_for(gui_a);
|
||||
auto& b_name = $gui.name_for(gui_b);
|
||||
System::inventory_swap($level, $level.player, a_name, b_name);
|
||||
System::inventory_swap($level.player, a_name, b_name);
|
||||
}
|
||||
|
||||
update();
|
||||
|
@ -150,6 +150,6 @@ namespace gui {
|
|||
|
||||
bool StatusUI::occupied(guecs::Entity slot) {
|
||||
auto player = $level.world->get_the<components::Player>();
|
||||
return System::inventory_occupied($level, player.entity, $gui.name_for(slot));
|
||||
return System::inventory_occupied(player.entity, $gui.name_for(slot));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue