23 constexpr std::uint8_t OffBoardSquare = 41;
46 std::int64_t result = 0)
52 static_cast<std::int64_t
>(
119 if (square.
owner != player)
137 static_cast<std::int64_t
>(
155 static_cast<std::size_t
>(
242 static_cast<std::size_t
>(
251 std::int64_t cash = 0;
270 const std::uint8_t houses =
293 static_cast<std::int64_t
>(
337 if (
deck.cardCount >=
346 static_cast<std::uint8_t
>(
352 void transferGetOutOfJail(
360 static_cast<std::size_t
>(
385 if (
deck.jailOwner !=
411 deck.jailOfferedInTradeTo =
420 static_cast<std::int64_t
>(
560 static_cast<std::int64_t
>(
633 const std::uint32_t properties =
634 static_cast<std::uint32_t
>(
753 const std::uint32_t
bit =
762 static_cast<std::uint32_t
>(
784 static_cast<std::int64_t
>(
1031 std::int64_t rent = 0;
1046 for (std::size_t
testNo = 0;
1085 static_cast<std::uint8_t
>(
1088 static_cast<std::uint8_t
>(
1093 std::min<std::size_t>(
1121 const std::size_t
index =
1122 std::min<std::size_t>(
1824 static_cast<std::size_t
>(
1902 if (square.
owner != player)
1932 for (std::size_t
testNo = 0;
1994 static_cast<std::uint32_t
>(
2155 static_cast<std::size_t
>(
2372 square.
owner != player &&
2434 transferGetOutOfJail(
2442 transferGetOutOfJail(
2462 hit.toPlayer == player)
@ NotifyJailCardOwnership
constexpr std::int64_t ErrorMortgagingOnUnowned
constexpr std::int64_t ErrorDebtorBankrupt
constexpr std::int64_t ErrorUnmortgageInfo
constexpr std::int64_t ErrorBuildingAllSold
constexpr std::int64_t ErrorMortgageNoCash
constexpr std::int64_t ErrorRentInfo
constexpr std::int64_t ErrorBankruptTo
constexpr std::int64_t ErrorFutureRentUsed
constexpr std::int64_t ErrorCollectorBankrupt
constexpr std::int64_t FreeParkingPotCollected
constexpr std::int64_t ErrorUndoForBankruptcyTo
constexpr std::int64_t ErrorMortgagingHouses
constexpr std::int64_t ErrorBuildingOnUnowned
constexpr std::int64_t ErrorImmunityUsed
constexpr std::int64_t ErrorMortgageInfo
constexpr std::int64_t ErrorCannotGoBankrupt
constexpr std::int64_t ErrorTaxesCharged
bool sendAction(const actions::Message &message)
const SquareDefinition & definition(SquareType square)
constexpr std::size_t RentStepCount
PropertySet propertyBit(SquareType square)
void resetTransientState()
void landOnLuxuryTax(GameState &state)
void blindlyTransferCash(GameState &state, PlayerNumber fromPlayer, PlayerNumber toPlayer, std::int64_t amount, bool sendAnimation)
void actionFreeUnmortgageDone(GameState &state, const actions::Message &message)
void landOnFreeParking(GameState &state)
void stackDebt(GameState &state, PlayerNumber fromPlayer, PlayerNumber toPlayer, std::int64_t amount)
bool restartEconomyPhase(GameState &state, const actions::Message &message)
void actionMortgaging(GameState &state, const actions::Message &message)
void actionTaxDecision(GameState &state, const actions::Message &message)
void stackDebtAndRestart(GameState &state, PlayerNumber fromPlayer, PlayerNumber toPlayer, std::int64_t amount)
void actionSellBuildings(GameState &state, const actions::Message &message)
void actionGoBankrupt(GameState &state, const actions::Message &message)
void transferPropertyForSettlement(GameState &state, std::uint8_t squareNo, PlayerNumber toPlayer)
void actionBuyOrAuctionDecision(GameState &state, const actions::Message &message)
void sellAllBuildingsForSettlement(GameState &state, std::uint8_t squareNo)
void collectRent(GameState &state)
void addMoneyToFreeParkingPot(GameState &state, std::int64_t amount)
void landOnIncomeTax(GameState &state)
void declareWinner(GameState &state)
bool onlyOneSurvivor(const GameState &state)
bool pop(GameState &state)
const PendingPhase & current(const GameState &state)
void saveCurrent(GameState &state)
bool push(GameState &state, GamePhase phase, PlayerNumber fromPlayer, PlayerNumber toPlayer, std::int64_t amount)
bool currentStateChanged(const GameState &state)
bool hasCurrentSnapshot(const GameState &state)
bool restoreCurrent(GameState &state)
void switchTo(GameState &state, GamePhase phase, PlayerNumber fromPlayer, PlayerNumber toPlayer, std::int64_t amount)
void wrongPlayer(const GameState &state, const actions::Message &message)
void wrongPhase(const GameState &state, const actions::Message &message)
void sendClientState(const GameState &state, PlayerNumber toPlayer, Cause cause)
@ FlatOrFractionTaxDecision
@ JailRollOrPayOrCardDecision
constexpr PlayerNumber BankPlayer
std::uint8_t PlayerNumber
constexpr std::size_t MaxCardsInDeck
constexpr PlayerNumber EscrowPlayer
constexpr std::size_t SquareCount
const GameState & state()
@ ChanceGoToNearestUtility
@ CommunityGetOutOfJailFree
@ ChanceGoToNearestRailroadPayDouble2
@ ChanceGoToNearestRailroadPayDouble1
constexpr PlayerNumber MaxPlayers
constexpr PlayerNumber NobodyPlayer
constexpr PlayerNumber AllPlayers
rules::PlayerNumber fromPlayer
bool mortgagedCountsInGroupRent
std::array< std::uint8_t, 2 > dice
PlayerNumber currentPlayer
std::array< CardDeck, static_cast< std::size_t >(DeckType::Count) > cards
std::array< CountHitRecord, MaxCountHitSets > countHits
PlayerNumber numberOfPlayers
std::int64_t freeParkingJackpotAmount
std::array< SquareState, SquareCount > squares
std::array< std::uint8_t, 2 > utilityDice
std::array< PendingPhase, MaxPendingPhases > phaseStack
std::uint8_t numberOfPendingPhases
std::array< PlayerState, MaxPlayers > players
std::uint8_t currentSquare
std::int64_t gameEarnings
PlayerNumber offeredInTradeTo
std::int64_t mortgageCost
std::int64_t purchaseCost