10 std::int64_t
raw)
noexcept
18 RuleProjection& projection,
25 projection.mode = mode;
26 projection.player = *player;
60 mode = message.numberC < 0
84 if (message.numberB != 0 &&
85 message.numberA >= 0 &&
94 switch (message.action)
117 raiseCashNeeded = message.numberC;
118 raiseCashCanBankrupt = message.numberE != 0;
127 const bool canRoll = message.numberB != 0;
128 const bool hasCard = message.numberD != 0;
142 freeUnmortgageSet =
static_cast<std::uint32_t
>(message.numberB);
143 if (freeUnmortgageSet != 0)
150 placeBuildingSet =
static_cast<std::uint32_t
>(message.numberC);
177 if (!tradeInProgress)
184 tradeInProgress =
true;
201 if (*from == tradeAPlayer)
203 else if (*to == tradeAPlayer)
204 tradeBPlayer = *from;
211 player = tradeBPlayer;
216 if (message.numberA != -1)
218 tradeInProgress =
false;
227 tradeInProgress =
false;
234 if (message.numberA == 0)
@ ClearTradedImmunitiesOrFutures
@ NotifyTradeAcceptanceDecision
@ NotifyBuyOrAuctionDecision
@ NotifyFlatOrFractionTaxDecision
@ NotifyPlayerBuySellMort
std::uint8_t PlayerNumber
constexpr PlayerNumber MaxPlayers
constexpr PlayerNumber NobodyPlayer
void processHousingShortage(const actions::Message &message, rules::PlayerNumber resolvedPlayer) noexcept
void processTradeAcceptance(const actions::Message &message, rules::PlayerNumber resolvedPlayer) noexcept
void process(const actions::Message &message) noexcept