22 FutureImmunityState&
state,
23 const rules::GameState&
gameState)
noexcept
25 std::vector<FutureImmunityRow>
raw;
40 if (
bit == 0 || (
hit.properties &
bit) == 0)
45 square,
hit.hitCount,
hit.fromPlayer});
61 raw.begin() +
static_cast<std::ptrdiff_t
>(
68 state.scrollIndex = 0;
69 state.upEnabled =
false;
70 state.downEnabled =
false;
77 const auto offset =
static_cast<std::size_t
>(
78 std::max(
state.scrollIndex, 0));
83 state.downEnabled = remaining >= 10;
87 FutureImmunityState&
state,
93 state.player = player;
94 state.scrollIndex = 0;
97 state.upEnabled =
false;
102 FutureImmunityState&
state,
108 for (
const auto& icon :
state.icons)
110 if (icon.kind !=
kind || !icon.rect.contains(
x,
y))
126 std::vector<FutureImmunityIcon> icons)
128 state.icons = std::move(icons);
135 if (!
state.open)
return;
137 state.scrollIndex = std::clamp(
138 state.scrollIndex, 0,
140 if (
state.scrollIndex == 0)
142 state.upEnabled =
false;
174 const int x =
static_cast<int>(message.numberA);
175 const int y =
static_cast<int>(message.numberB);
178 if (
state.downEnabled &&
181 state.scrollIndex = std::min(
182 state.scrollIndex + 1,
188 if (
state.upEnabled &&
191 state.scrollIndex = std::max(
state.scrollIndex - 1, 0);
std::uint32_t PropertyMask
PropertyMask propertyBit(int square) noexcept
std::uint8_t PlayerNumber
constexpr std::size_t SquareCount
constexpr PlayerNumber NobodyPlayer
void setFutureImmunityIcons(FutureImmunityState &state, std::vector< FutureImmunityIcon > icons)
bool processFutureImmunityInput(FutureImmunityState &state, const rules::GameState &gameState, Screen statsScreen, display::Screen2D view, const uimsg::Message &message) noexcept
void refreshFutureImmunity(FutureImmunityState &state, const rules::GameState &gameState) noexcept
constexpr Rect FutureImmunityDownRect
void resetFutureImmunity(FutureImmunityState &state) noexcept
constexpr Rect FutureImmunityUpRect
void syncFutureImmunityView(FutureImmunityState &state, Screen statsScreen, display::Screen2D view) noexcept
constexpr bool contains(int x, int y) const noexcept