11 using VoiceTable = std::array<PennybagsChoice, VoiceCount>;
14 PennybagsChoice{0x075D, 1},
15 PennybagsChoice{0x075E, 1},
16 PennybagsChoice{0x075F, 1},
17 PennybagsChoice{0x0760, 5},
18 PennybagsChoice{0x0765, 5},
19 PennybagsChoice{0x076A, 1},
20 PennybagsChoice{0x076B, 2},
21 PennybagsChoice{0x076D, 1},
22 PennybagsChoice{0x076E, 1},
23 PennybagsChoice{0x076F, 2},
24 PennybagsChoice{0x0771, 1},
25 PennybagsChoice{0x0772, 1},
26 PennybagsChoice{0x0773, 1},
27 PennybagsChoice{0x0774, 1},
28 PennybagsChoice{0x0775, 1},
29 PennybagsChoice{0x0776, 11},
30 PennybagsChoice{0x0780, 1},
31 PennybagsChoice{0x0781, 4},
32 PennybagsChoice{0x0785, 6},
33 PennybagsChoice{0x078B, 5},
34 PennybagsChoice{0x0790, 5},
35 PennybagsChoice{0x0795, 5},
36 PennybagsChoice{0x079A, 5},
37 PennybagsChoice{0x079F, 5},
38 PennybagsChoice{0x07A4, 5},
39 PennybagsChoice{0x07A9, 5},
40 PennybagsChoice{0x07AE, 5},
41 PennybagsChoice{0x07B3, 5},
42 PennybagsChoice{0x07B8, 5},
43 PennybagsChoice{0x07BD, 10},
44 PennybagsChoice{0x07C7, 3},
45 PennybagsChoice{0x07CA, 3},
46 PennybagsChoice{0x07CD, 3},
47 PennybagsChoice{0x07D0, 4},
48 PennybagsChoice{0x07D4, 3},
49 PennybagsChoice{0x07D7, 3},
50 PennybagsChoice{0x07DA, 4},
51 PennybagsChoice{0x07DE, 3},
52 PennybagsChoice{0x07E1, 3},
53 PennybagsChoice{0x07E4, 3},
54 PennybagsChoice{0x07E7, 4},
55 PennybagsChoice{0x07EB, 9},
56 PennybagsChoice{0x07F5, 3},
57 PennybagsChoice{0x07F8, 3},
58 PennybagsChoice{0x07FB, 3},
59 PennybagsChoice{0x07FE, 3},
60 PennybagsChoice{0x0801, 3},
61 PennybagsChoice{0x0804, 3},
62 PennybagsChoice{0x0807, 5},
63 PennybagsChoice{0x080C, 5},
64 PennybagsChoice{0x0811, 16},
65 PennybagsChoice{0x0821, 16},
66 PennybagsChoice{0x0831, 3},
67 PennybagsChoice{0x0834, 3},
68 PennybagsChoice{0x0837, 3},
69 PennybagsChoice{0x083A, 3},
70 PennybagsChoice{0x083D, 3},
71 PennybagsChoice{0x0840, 3},
72 PennybagsChoice{0x0843, 11},
73 PennybagsChoice{0x084E, 3},
74 PennybagsChoice{0x0852, 3},
75 PennybagsChoice{0x0855, 3},
76 PennybagsChoice{0x0858, 3},
77 PennybagsChoice{0x085B, 3},
78 PennybagsChoice{0x085E, 3},
79 PennybagsChoice{0x0861, 11},
80 PennybagsChoice{0x086C, 1},
81 PennybagsChoice{0x086D, 1},
82 PennybagsChoice{0x086E, 2},
83 PennybagsChoice{0x0870, 3},
84 PennybagsChoice{0x0873, 3},
85 PennybagsChoice{0x0876, 3},
86 PennybagsChoice{0x0879, 3},
87 PennybagsChoice{0x087C, 3},
88 PennybagsChoice{0x087F, 3},
89 PennybagsChoice{0x0882, 3},
90 PennybagsChoice{0x0885, 3},
91 PennybagsChoice{0x0888, 1},
92 PennybagsChoice{0x0889, 1},
93 PennybagsChoice{0x088A, 1},
94 PennybagsChoice{0x088B, 1},
95 PennybagsChoice{0x088C, 3},
96 PennybagsChoice{0x088F, 3},
97 PennybagsChoice{0x0892, 1},
98 PennybagsChoice{0x0893, 3},
99 PennybagsChoice{0x0896, 5},
100 PennybagsChoice{0x089B, 3},
101 PennybagsChoice{0x089E, 1},
102 PennybagsChoice{0x089F, 1},
103 PennybagsChoice{0x08A0, 3},
104 PennybagsChoice{0x08A3, 1},
105 PennybagsChoice{0x08A4, 2},
106 PennybagsChoice{0x08A6, 1},
107 PennybagsChoice{0x08A7, 1},
108 PennybagsChoice{0x08A8, 3},
109 PennybagsChoice{0x08AB, 3},
110 PennybagsChoice{0x08AE, 3},
111 PennybagsChoice{0x08B1, 3},
112 PennybagsChoice{0x08B4, 3},
113 PennybagsChoice{0x08B7, 4},
114 PennybagsChoice{0x08BB, 3},
115 PennybagsChoice{0x08BE, 3},
116 PennybagsChoice{0x08C1, 5},
117 PennybagsChoice{0x08C6, 6},
118 PennybagsChoice{0x08CC, 6},
119 PennybagsChoice{0x08D2, 51},
120 PennybagsChoice{0x08E1, 7},
121 PennybagsChoice{0x08E8, 6},
122 PennybagsChoice{0x08EE, 5},
123 PennybagsChoice{0x08F3, 5},
124 PennybagsChoice{0x08F8, 5},
125 PennybagsChoice{0x08FD, 5},
126 PennybagsChoice{0x0902, 5},
127 PennybagsChoice{0x0907, 5},
128 PennybagsChoice{0x090C, 5},
129 PennybagsChoice{0x0911, 5},
130 PennybagsChoice{0x0919, 1},
131 PennybagsChoice{0x091A, 3},
132 PennybagsChoice{0x091D, 2},
133 PennybagsChoice{0x091F, 10},
134 PennybagsChoice{0x0929, 7},
135 PennybagsChoice{0x0930, 7},
136 PennybagsChoice{0x0937, 5},
137 PennybagsChoice{0x093C, 4},
138 PennybagsChoice{0x0940, 3},
139 PennybagsChoice{0x0943, 5},
140 PennybagsChoice{0x0948, 5},
141 PennybagsChoice{0x094D, 5},
142 PennybagsChoice{0x0952, 5},
143 PennybagsChoice{0x0957, 5},
144 PennybagsChoice{0x095C, 5},
145 PennybagsChoice{0x0961, 5},
146 PennybagsChoice{0x0966, 2},
150 PennybagsChoice{0x0940, 1},
151 PennybagsChoice{0x0941, 1},
152 PennybagsChoice{0x0942, 1},
153 PennybagsChoice{0x0943, 5},
154 PennybagsChoice{0x0948, 5},
155 PennybagsChoice{0x094D, 1},
156 PennybagsChoice{0x094E, 2},
157 PennybagsChoice{0x0950, 1},
158 PennybagsChoice{0x0951, 1},
159 PennybagsChoice{0x0952, 2},
160 PennybagsChoice{0x0954, 1},
161 PennybagsChoice{0x0955, 1},
162 PennybagsChoice{0x0956, 1},
163 PennybagsChoice{0x0957, 1},
164 PennybagsChoice{0x0958, 1},
165 PennybagsChoice{0x0959, 11},
166 PennybagsChoice{0x0964, 1},
167 PennybagsChoice{0x0965, 4},
168 PennybagsChoice{0x0969, 6},
169 PennybagsChoice{0x096F, 5},
170 PennybagsChoice{0x0974, 5},
171 PennybagsChoice{0x0979, 5},
172 PennybagsChoice{0x097E, 5},
173 PennybagsChoice{0x0983, 5},
174 PennybagsChoice{0x0988, 5},
175 PennybagsChoice{0x098D, 5},
176 PennybagsChoice{0x0992, 5},
177 PennybagsChoice{0x0997, 5},
178 PennybagsChoice{0x099C, 5},
179 PennybagsChoice{0x09A1, 10},
180 PennybagsChoice{0x09AB, 3},
181 PennybagsChoice{0x09AE, 3},
182 PennybagsChoice{0x09B1, 3},
183 PennybagsChoice{0x09B4, 4},
184 PennybagsChoice{0x09B8, 3},
185 PennybagsChoice{0x09BB, 3},
186 PennybagsChoice{0x09BE, 4},
187 PennybagsChoice{0x09C2, 3},
188 PennybagsChoice{0x09C5, 3},
189 PennybagsChoice{0x09C8, 3},
190 PennybagsChoice{0x09CB, 4},
191 PennybagsChoice{0x09CF, 9},
192 PennybagsChoice{0x09D9, 3},
193 PennybagsChoice{0x09DC, 3},
194 PennybagsChoice{0x09DF, 3},
195 PennybagsChoice{0x09E2, 3},
196 PennybagsChoice{0x09E5, 3},
197 PennybagsChoice{0x09E8, 3},
198 PennybagsChoice{0x09EB, 5},
199 PennybagsChoice{0x09F0, 5},
200 PennybagsChoice{0x09F5, 16},
201 PennybagsChoice{0x0A05, 16},
202 PennybagsChoice{0x0A15, 3},
203 PennybagsChoice{0x0A18, 3},
204 PennybagsChoice{0x0A1B, 3},
205 PennybagsChoice{0x0A1E, 3},
206 PennybagsChoice{0x0A21, 3},
207 PennybagsChoice{0x0A24, 3},
208 PennybagsChoice{0x0A30, 2},
209 PennybagsChoice{0x0A32, 2},
210 PennybagsChoice{0x0A37, 2},
211 PennybagsChoice{0x0A3A, 2},
212 PennybagsChoice{0x0A3C, 3},
213 PennybagsChoice{0x0A3F, 3},
214 PennybagsChoice{0x0A42, 3},
215 PennybagsChoice{0x0A45, 11},
216 PennybagsChoice{0x0A50, 1},
217 PennybagsChoice{0x0A51, 1},
218 PennybagsChoice{0x0A52, 2},
219 PennybagsChoice{0x0A54, 3},
220 PennybagsChoice{0x0A57, 3},
221 PennybagsChoice{0x0A5A, 3},
222 PennybagsChoice{0x0A5D, 3},
223 PennybagsChoice{0x0A60, 3},
224 PennybagsChoice{0x0A63, 3},
225 PennybagsChoice{0x0A66, 3},
226 PennybagsChoice{0x0A69, 3},
227 PennybagsChoice{0x0A6C, 1},
228 PennybagsChoice{0x0A6D, 1},
229 PennybagsChoice{0x0A6E, 1},
230 PennybagsChoice{0x0A6F, 1},
231 PennybagsChoice{0x0A70, 3},
232 PennybagsChoice{0x0A73, 3},
233 PennybagsChoice{0x0A76, 1},
234 PennybagsChoice{0x0A77, 3},
235 PennybagsChoice{0x0A7A, 5},
236 PennybagsChoice{0x0A7F, 3},
237 PennybagsChoice{0x0A82, 1},
238 PennybagsChoice{0x0A83, 1},
239 PennybagsChoice{0x0A84, 3},
240 PennybagsChoice{0x0A87, 1},
241 PennybagsChoice{0x0A88, 2},
242 PennybagsChoice{0x0A8A, 1},
243 PennybagsChoice{0x0A8B, 1},
244 PennybagsChoice{0x0A8C, 3},
245 PennybagsChoice{0x0A8F, 3},
246 PennybagsChoice{0x0A92, 3},
247 PennybagsChoice{0x0A95, 3},
248 PennybagsChoice{0x0A98, 3},
249 PennybagsChoice{0x0A9B, 4},
250 PennybagsChoice{0x0A9F, 3},
251 PennybagsChoice{0x0AA2, 3},
252 PennybagsChoice{0x0AA5, 5},
253 PennybagsChoice{0x0AAA, 6},
254 PennybagsChoice{0x0AB0, 6},
255 PennybagsChoice{0x0AB6, 51},
256 PennybagsChoice{0x0AE9, 7},
257 PennybagsChoice{0x0AF0, 6},
258 PennybagsChoice{0x0AF6, 5},
259 PennybagsChoice{0x0AFB, 5},
260 PennybagsChoice{0x0B00, 5},
261 PennybagsChoice{0x0B05, 5},
262 PennybagsChoice{0x0B0A, 5},
263 PennybagsChoice{0x0B0F, 5},
264 PennybagsChoice{0x0B14, 5},
265 PennybagsChoice{0x0B19, 5},
266 PennybagsChoice{0x0B21, 1},
267 PennybagsChoice{0x0B22, 3},
268 PennybagsChoice{0x0B25, 2},
269 PennybagsChoice{0x0B27, 10},
270 PennybagsChoice{0x0B31, 7},
271 PennybagsChoice{0x0B38, 7},
272 PennybagsChoice{0x0B3F, 5},
273 PennybagsChoice{0x0B44, 4},
274 PennybagsChoice{0x0B48, 3},
275 PennybagsChoice{0x0000, 0},
276 PennybagsChoice{0x0000, 0},
277 PennybagsChoice{0x0000, 0},
278 PennybagsChoice{0x0000, 0},
279 PennybagsChoice{0x0000, 0},
280 PennybagsChoice{0x0000, 0},
281 PennybagsChoice{0x0000, 0},
282 PennybagsChoice{0x0000, 0},
289 const auto index =
static_cast<std::size_t
>(voice);
301 if (choice ==
nullptr || choice->firstTag == 0 ||
302 choice->alternateCount == 0 ||
alternateIndex >= choice->alternateCount)
313 if (choice ==
nullptr || choice->firstTag == 0 ||
314 choice->alternateCount == 0)
return std::nullopt;
315 auto offset =
static_cast<std::uint8_t
>(
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
std::optional< data::DataId > choosePennybagsVoice(data::BoardEdition edition, PennybagsVoice voice, std::uint32_t randomValue) noexcept
const PennybagsChoice * pennybagsChoice(data::BoardEdition edition, PennybagsVoice voice) noexcept
std::optional< data::DataId > pennybagsVoiceAt(data::BoardEdition edition, PennybagsVoice voice, std::uint8_t alternateIndex) noexcept
@ ChooseAIDifficultyLevel