Quick code review to refresh my memory.

This commit is contained in:
Zed A. Shaw 2025-10-09 01:23:01 -04:00
parent ee9f8c7c4b
commit 517de91a5b
8 changed files with 27 additions and 18 deletions

View file

@ -21,6 +21,8 @@ namespace boss {
FSM_STATE(State, END, ev, data);
}
run_systems();
return in_state(State::END);
}
@ -61,9 +63,6 @@ namespace boss {
case BOSS_START:
state(State::END);
break;
case TICK:
run_systems();
break;
case ATTACK:
$ui.status(L"PLAYER TURN");
state(State::PLAYER_TURN);
@ -83,6 +82,7 @@ namespace boss {
break;
case ATTACK: {
$ui.status(L"PLAYER TURN");
$ui.move_player(run % 10 < 5 ? "player1" : "player2");
int attack_id = std::any_cast<int>(data);
boss::System::combat(attack_id);
state(State::PLAYER_TURN);
@ -103,6 +103,7 @@ namespace boss {
break;
case ATTACK: {
$ui.status(L"BOSS TURN");
$ui.move_boss(run % 10 < 5 ? "boss1" : "boss3");
int attack_id = std::any_cast<int>(data);
boss::System::combat(attack_id);
state(State::BOSS_TURN);
@ -120,6 +121,10 @@ namespace boss {
}
void Fight::run_systems() {
run++;
}
void Fight::render(sf::RenderWindow& window) {
$ui.render(window);
}
}

View file

@ -34,10 +34,7 @@ namespace boss {
void BOSS_TURN(gui::Event ev, std::any data);
void PLAYER_TURN(gui::Event ev, std::any data);
void END(gui::Event ev, std::any data);
void render(sf::RenderWindow& window) {
$ui.render(window);
}
void render(sf::RenderWindow& window);
void run_systems();
};

View file

@ -35,8 +35,8 @@ namespace boss {
"[floor4|player5|player6|player7|player8|_]"
);
position_sprite($boss_sprite, $scene.boss["start_pos"], $scene.boss["scale"], $scene.boss["mid_cell"]);
position_sprite($player_sprite, $scene.player["start_pos"], $scene.player["scale"], $scene.player["mid_cell"]);
move_boss($scene.boss["start_pos"]);
move_player($scene.player["start_pos"]);
position_sprite($floor_sprite, $scene.floor_pos, 1.0, false);
$arena.init();
@ -60,8 +60,8 @@ namespace boss {
$combat_ui.init(cell.x, cell.y, cell.w, cell.h);
}
void UI::position_sprite(textures::SpriteTexture& st, const std::string& name, float scale, bool at_mid) {
auto& cell = $arena.cell_for(name);
void UI::position_sprite(textures::SpriteTexture& st, const std::string& cell_name, float scale, bool at_mid) {
auto& cell = $arena.cell_for(cell_name);
float x = float(at_mid ? cell.mid_x : cell.x);
float y = float(at_mid ? cell.mid_y : cell.y);
@ -91,4 +91,13 @@ namespace boss {
$arena.show_text("status", msg);
}
void UI::move_boss(const std::string& cell_name) {
dbc::log(cell_name);
position_sprite($boss_sprite, cell_name, $scene.boss["scale"], $scene.boss["mid_cell"]);
}
void UI::move_player(const std::string& cell_name) {
dbc::log(cell_name);
position_sprite($player_sprite, cell_name, $scene.player["scale"], $scene.player["mid_cell"]);
}
}

View file

@ -31,7 +31,9 @@ namespace boss {
void init();
void render(sf::RenderWindow& window);
bool mouse(float x, float y, guecs::Modifiers mods);
void position_sprite(SpriteTexture& st, const std::string& name, float scale, bool at_mid=false);
void position_sprite(SpriteTexture& st, const std::string& cell_name, float scale, bool at_mid=false);
void status(const std::wstring& msg);
void move_boss(const std::string& cell_name);
void move_player(const std::string& cell_name);
};
}

View file

@ -14,9 +14,6 @@ inline void add_neighbors(PointList &neighbors, Matrix &closed, size_t y, size_t
}
}
/*
* Used https://github.com/HenrYxZ/dijkstra-map as a reference.
*/
void Pathing::compute_paths(Matrix &walls) {
INVARIANT();
dbc::check(walls[0].size() == $width,
@ -66,7 +63,6 @@ void Pathing::compute_paths(Matrix &walls) {
}
void Pathing::set_target(const Point &at, int value) {
// FUTURE: I'll eventually allow setting this to negatives for priority
$input[at.y][at.x] = value;
}

View file

@ -360,7 +360,7 @@ void System::pickup() {
} else if(world.has<Device>(entity)) {
System::device(world, level.player, entity);
} else {
// Bug #81 is related to this
dbc::log("BUG: is this a bug in pickup?!");
}
}

View file

@ -15,7 +15,7 @@ using namespace components;
void WorldBuilder::stylize_rooms() {
auto& tiles = $map.tiles();
auto style_config = settings::get("styles");
auto style_config = settings::get("room_themes");
json& styles = style_config.json();
for(auto& room : $map.rooms()) {