Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
IBarRuleState.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Actions.hpp
"
4
#include "
RuleTypes.hpp
"
5
6
#include <cstdint>
7
8
namespace
monopoly::ibar
9
{
10
// Source/monopoly/UDIBar.h: enum IBAR_STATES, numeric order preserved.
11
enum class
RuleMode
: std::uint8_t
12
{
13
Nothing
= 0,
14
StartTurn
,
15
Build
,
16
Sell
,
17
Mortgage
,
18
UnMortgage
,
19
OtherPlayer
,
20
RaiseMoney
,
21
DoneTurn
,
22
DeedActive
,
23
OtherPlayerRemote
,
24
BuyAuction
,
25
ViewingCard
,
26
JailExitPCR
,
27
JailExitPXR
,
28
JailExitPCX
,
29
JailExitPXX
,
30
Trading
,
31
FreeUnmortgage
,
32
TaxDecision
,
33
HousingShort
,
34
HotelShort
,
35
PlaceHouse
,
36
PlaceHotel
,
37
HotelDecomposition
,
38
GameOver
,
39
StatusScreen
,
40
Max
41
};
42
43
struct
RuleProjection
44
{
45
RuleMode
mode
{
RuleMode::Nothing
};
46
rules::PlayerNumber
player
{
rules::NobodyPlayer
};
47
std::int64_t
raiseCashNeeded
{};
48
bool
raiseCashCanBankrupt
{};
49
rules::PlayerNumber
tradeAPlayer
{
rules::MaxPlayers
};
50
rules::PlayerNumber
tradeBPlayer
{
rules::MaxPlayers
};
51
bool
tradeInProgress
{};
52
std::uint32_t
freeUnmortgageSet
{};
53
std::uint32_t
placeBuildingSet
{};
54
55
void
reset
()
noexcept
56
{
57
mode
=
RuleMode::Nothing
;
58
player
=
rules::NobodyPlayer
;
59
raiseCashNeeded
= 0;
60
raiseCashCanBankrupt
=
false
;
61
tradeAPlayer
=
rules::MaxPlayers
;
62
tradeBPlayer
=
rules::MaxPlayers
;
63
tradeInProgress
=
false
;
64
freeUnmortgageSet
= 0;
65
placeBuildingSet
= 0;
66
}
67
68
void
process
(
const
actions::Message
& message)
noexcept
;
69
void
processHousingShortage
(
70
const
actions::Message
& message,
71
rules::PlayerNumber
resolvedPlayer
)
noexcept
;
72
void
processTradeAcceptance
(
73
const
actions::Message
& message,
74
rules::PlayerNumber
resolvedPlayer
)
noexcept
;
75
};
76
}
Actions.hpp
index
unsigned index
Definition
ModernIBarSkin.cpp:25
process
SDL_Process * process
Definition
OptionsHelpRuntime.cpp:93
RuleTypes.hpp
monopoly::ibar
Definition
EscapeConfirmationPlayback.cpp:8
monopoly::ibar::RuleMode
RuleMode
Definition
IBarRuleState.hpp:12
monopoly::ibar::RuleMode::UnMortgage
@ UnMortgage
monopoly::ibar::RuleMode::Sell
@ Sell
monopoly::ibar::RuleMode::OtherPlayerRemote
@ OtherPlayerRemote
monopoly::ibar::RuleMode::TaxDecision
@ TaxDecision
monopoly::ibar::RuleMode::Mortgage
@ Mortgage
monopoly::ibar::RuleMode::RaiseMoney
@ RaiseMoney
monopoly::ibar::RuleMode::ViewingCard
@ ViewingCard
monopoly::ibar::RuleMode::Max
@ Max
monopoly::ibar::RuleMode::StartTurn
@ StartTurn
monopoly::ibar::RuleMode::PlaceHouse
@ PlaceHouse
monopoly::ibar::RuleMode::DeedActive
@ DeedActive
monopoly::ibar::RuleMode::HousingShort
@ HousingShort
monopoly::ibar::RuleMode::GameOver
@ GameOver
monopoly::ibar::RuleMode::JailExitPCR
@ JailExitPCR
monopoly::ibar::RuleMode::JailExitPXR
@ JailExitPXR
monopoly::ibar::RuleMode::HotelShort
@ HotelShort
monopoly::ibar::RuleMode::JailExitPXX
@ JailExitPXX
monopoly::ibar::RuleMode::DoneTurn
@ DoneTurn
monopoly::ibar::RuleMode::StatusScreen
@ StatusScreen
monopoly::ibar::RuleMode::BuyAuction
@ BuyAuction
monopoly::ibar::RuleMode::PlaceHotel
@ PlaceHotel
monopoly::ibar::RuleMode::FreeUnmortgage
@ FreeUnmortgage
monopoly::ibar::RuleMode::Build
@ Build
monopoly::ibar::RuleMode::OtherPlayer
@ OtherPlayer
monopoly::ibar::RuleMode::HotelDecomposition
@ HotelDecomposition
monopoly::ibar::RuleMode::Trading
@ Trading
monopoly::ibar::RuleMode::JailExitPCX
@ JailExitPCX
monopoly::ibar::RuleMode::Nothing
@ Nothing
monopoly::rules::PlayerNumber
std::uint8_t PlayerNumber
Definition
RuleTypes.hpp:12
monopoly::rules::MaxPlayers
constexpr PlayerNumber MaxPlayers
Definition
RuleTypes.hpp:14
monopoly::rules::NobodyPlayer
constexpr PlayerNumber NobodyPlayer
Definition
RuleTypes.hpp:16
monopoly::actions::Message
Definition
Actions.hpp:125
monopoly::ibar::RuleProjection
Definition
IBarRuleState.hpp:44
monopoly::ibar::RuleProjection::freeUnmortgageSet
std::uint32_t freeUnmortgageSet
Definition
IBarRuleState.hpp:52
monopoly::ibar::RuleProjection::processHousingShortage
void processHousingShortage(const actions::Message &message, rules::PlayerNumber resolvedPlayer) noexcept
Definition
IBarRuleState.cpp:50
monopoly::ibar::RuleProjection::processTradeAcceptance
void processTradeAcceptance(const actions::Message &message, rules::PlayerNumber resolvedPlayer) noexcept
Definition
IBarRuleState.cpp:66
monopoly::ibar::RuleProjection::raiseCashNeeded
std::int64_t raiseCashNeeded
Definition
IBarRuleState.hpp:47
monopoly::ibar::RuleProjection::player
rules::PlayerNumber player
Definition
IBarRuleState.hpp:46
monopoly::ibar::RuleProjection::placeBuildingSet
std::uint32_t placeBuildingSet
Definition
IBarRuleState.hpp:53
monopoly::ibar::RuleProjection::tradeBPlayer
rules::PlayerNumber tradeBPlayer
Definition
IBarRuleState.hpp:50
monopoly::ibar::RuleProjection::reset
void reset() noexcept
Definition
IBarRuleState.hpp:55
monopoly::ibar::RuleProjection::mode
RuleMode mode
Definition
IBarRuleState.hpp:45
monopoly::ibar::RuleProjection::tradeAPlayer
rules::PlayerNumber tradeAPlayer
Definition
IBarRuleState.hpp:49
monopoly::ibar::RuleProjection::raiseCashCanBankrupt
bool raiseCashCanBankrupt
Definition
IBarRuleState.hpp:48
monopoly::ibar::RuleProjection::tradeInProgress
bool tradeInProgress
Definition
IBarRuleState.hpp:51
IBarRuleState.hpp
Generated by
1.9.8