Add virtual touch buttons for Monopoly game and centralize configuration in ModalButtonHelper

This commit is contained in:
Adolfo Reyna
2026-02-06 22:11:24 -05:00
parent eb86c3fc0e
commit e2817262b0
11 changed files with 194 additions and 8 deletions

View File

@@ -8,6 +8,7 @@
#include "player.h"
#include "MonopolyBoardRenderer.h"
#include "sprites.h"
#include "ModalButtonHelper.h"
class PropertyModalGame : public Game {
const BoardTile* property;
@@ -28,7 +29,10 @@ public:
: Game(width, height, renderer, gui, input_manager), property(prop), dismissed(false), is_owned(owned), owner_name(owner), owner_id(o_id), can_afford(affordable), selected_choice(0), buy_requested(false), rent_requested(false), players(p_list), players_count(p_count), observer_idx(obs_idx) {
if (is_owned || !can_afford) selected_choice = 1;
}
void init() override { dismissed = false; buy_requested = false; rent_requested = false; selected_choice = 0; }
void init() override {
dismissed = false; buy_requested = false; rent_requested = false; selected_choice = 0;
ModalButtonHelper::set_monopoly_regions(input_manager, width, height);
}
Type get_type() const override { return Type::MONOPOLY_PROPERTY; }
bool update(const InputEvent& event) override {
// If rent is owed, any button pays it (it's forced)
@@ -189,6 +193,8 @@ public:
renderer->draw_string_scaled(win_x + (win_w - 7 * 12) / 2, btn_y + 10, ">PASS", 2);
renderer->set_text_color(true);
}
ModalButtonHelper::draw_virtual_buttons(renderer, input_manager);
}
bool is_dismissed() const { return dismissed; }
bool wants_to_buy() const { return buy_requested; }