/
SternStarsDefinitions.h
270 lines (253 loc) · 7.2 KB
/
SternStarsDefinitions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
#define LIGHTS_ROWS 27
#define LIGHTS_COLS 16
#define NUM_STARS_LIGHTS 28
#define SPECIAL_PURPLE_STAR 0
#define SPECIAL_GREEN_STAR 1
#define SPECIAL_YELLOW_STAR 2
#define SPECIAL_WHITE_STAR 3
#define SPECIAL_AMBER_STAR 4
#define D1K_BONUS 8
#define D2K_BONUS 9
#define D3K_BONUS 10
#define D4K_BONUS 11
#define D5K_BONUS 12
#define D6K_BONUS 13
#define D7K_BONUS 14
#define D8K_BONUS 15
#define D9K_BONUS 16
#define D10K_BONUS 17
#define STAR_PURPLE 20
#define STAR_WHITE 21
#define STAR_GREEN 22
#define STAR_AMBER 23
#define STAR_YELLOW 24
#define D2_ADVANCE_BONUS 28
#define OUT_LANES 29
#define IN_LANES 33
#define DOUBLE_BONUS_FEATURE 36
#define TRIPLE_BONUS_FEATURE 37
#define WOW 38
#define SPECIAL_FEATURE 39
#define SHOOT_AGAIN 40
#define MATCH 41
#define D7000_RIGHT 42
#define D7000_LEFT 43
#define D400_1_SPINNER 44
#define D400_2_SPINNER 45
#define DOUBLE_BONUS 46
#define TRIPLE_BONUS 47
#define BALL_IN_PLAY 48
#define HIGHEST_SCORE 49
#define GAME_OVER 50
#define TILT 51
#define PLAYER_1 52
#define PLAYER_2 53
#define PLAYER_3 54
#define PLAYER_4 55
#define PLAYER_1_UP 56
#define PLAYER_2_UP 57
#define PLAYER_3_UP 58
#define PLAYER_4_UP 59
struct PlayfieldLight {
byte lightNum;
byte row;
};
struct PlayfieldLight StarsLights[] = {
{SPECIAL_PURPLE_STAR, 14},
{SPECIAL_AMBER_STAR, 22},
{D1K_BONUS, 3},
{D5K_BONUS, 7},
{D9K_BONUS, 11},
{DOUBLE_BONUS_FEATURE, 17},
{SHOOT_AGAIN, 1},
{D400_1_SPINNER, 22},
{SPECIAL_GREEN_STAR, 25},
{D2K_BONUS, 4},
{D6K_BONUS, 8},
{D10K_BONUS, 12},
{SPECIAL_WHITE_STAR, 25},
{OUT_LANES, 7},
{IN_LANES, 8},
{TRIPLE_BONUS_FEATURE, 18},
{D400_2_SPINNER, 21},
{SPECIAL_YELLOW_STAR, 14},
{D3K_BONUS, 5},
{D7K_BONUS, 9},
{WOW, 19},
{D7000_RIGHT, 20},
{DOUBLE_BONUS, 2},
{D4K_BONUS, 6},
{D8K_BONUS, 10},
{SPECIAL_FEATURE, 17},
{D7000_LEFT, 18},
{TRIPLE_BONUS, 2}
};
#define NUM_STARS_SWITCHES 29
#define SW_LEFT_SPINNER 0
#define SW_LEFT_OUTLANE 3
#define SW_LEFT_INLANE 4
#define SW_CREDIT_RESET 5
#define SW_TILT 6
#define SW_OUTHOLE 7
#define SW_COIN_3 8
#define SW_COIN_2 9
#define SW_COIN_1 10
#define SW_RIGHT_OUTLANE 11
#define SW_RIGHT_INLANE 12
#define SW_ROLLOVER 14
#define SW_SLAM 15
#define SW_RIGHT_SPINNER 16
#define SW_STAR_5 19
#define SW_STAR_4 20
#define SW_STAR_3 21
#define SW_STAR_2 22
#define SW_STAR_1 23
#define SW_10_PTS 24
#define SW_DROP_TARGET_5 26
#define SW_DROP_TARGET_2 27
#define SW_DROP_TARGET_6 28
#define SW_DROP_TARGET_4 29
#define SW_DROP_TARGET_3 30
#define SW_DROP_TARGET_1 31
#define SW_RIGHT_SLING 35
#define SW_LEFT_SLING 36
#define SW_BUMPER 37
#define SOL_CHIME_10 0
#define SOL_CHIME_10000 1
#define SOL_CHIME_1000 2
#define SOL_CHIME_100 3
#define SOL_KNOCKER 5
#define SOL_OUTHOLE 6
#define SOL_DROP_TARGET_LEFT 8
#define SOL_DROP_TARGET_RIGHT 9
#define SOL_BUMPER 12
#define SOL_RIGHT_SLING 13
#define SOL_LEFT_SLING 14
//#define SOL_NONE 15
#define SOLCONT_FLIPPERS 0x80
#define SOLCONT_COIN_LOCKOUT 0x01
#define NUM_STARS_SWITCHES_WITH_TRIGGERS 3
#define NUM_STARS_PRIORITY_SWITCHES_WITH_TRIGGERS 3
struct PlayfieldAndCabinetSwitch StarsSwitches[] = {
{ SW_RIGHT_SLING, SOL_RIGHT_SLING, 4},
{ SW_LEFT_SLING, SOL_LEFT_SLING, 4},
{ SW_BUMPER, SOL_BUMPER, 3}
};
/* Light coordinates
*
*
{218,866}, //0
{484,342},
{558,868},
{352,335},
{518,503},
{0, 0},
{0, 0},
{0, 0},
{423,1179}, // 8
{348,1165},
{423,1141},
{348,1122},
{423,1101},
{346,1084},
{423,1059},
{348,1042},
{423,1015},
{348,1000},
{0, 0},
{0, 0},
{197,914}, // 20
{354,375},
{507,379},
{547,541},
{581,912},
{0, 0},
{0, 0},
{0, 0},
{388,896}, // 28
{119,1059}, // 29
{0, 0},
{0, 0},
{0, 0},
{174,1042}, // 33
{0, 0},
{0, 0},
{312,770}, // 36
{354,732},
{402,692},
{386,776},
{384,1298}, // 40
{488,39},
{381,623}, //42
{228,749},
{218,587},
{193,528},
{331,1248}, // 46
{436,1248}, // 47
{430,44}, // 48
{524,46},
{354,44},
{394,52},
{249,54},
{304,56},
{274,29},
{321,29},
{388,29},
{455,27},
{486,58},
{509,31} // 59
*/
#define LAMP_ANIMATION_STEPS 16
byte LampAnimations[3][LAMP_ANIMATION_STEPS][8] = {
// Radial
{{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x55, 0x01, 0x10, 0x00, 0x81, 0x00, 0x00},
{0x00, 0xAA, 0x02, 0x10, 0x00, 0x41, 0x00, 0x00},
{0x00, 0x80, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x10, 0x38, 0x00, 0x00},
{0x08, 0x00, 0x00, 0x10, 0xA0, 0x04, 0x00, 0x00},
{0x12, 0x00, 0x00, 0x10, 0xC0, 0x04, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00}},
// Center out
{{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00},
{0x00, 0x80, 0x03, 0x00, 0x90, 0x00, 0x00, 0x00},
{0x05, 0xC0, 0x01, 0x00, 0x30, 0x00, 0x00, 0x00},
{0x05, 0x70, 0x00, 0x00, 0x60, 0x08, 0x00, 0x00},
{0x00, 0x3C, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00},
{0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00},
{0x00, 0x01, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00},
{0x10, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x00, 0x00},
{0x10, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
// Bottom to top
{{0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00},
{0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00},
{0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x60, 0x08, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00},
{0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
};