1 /*****************************************************************************
2  * Copyright (c) 2014-2020 OpenRCT2 developers
3  *
4  * For a complete list of all authors, please refer to contributors.md
5  * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
6  *
7  * OpenRCT2 is licensed under the GNU General Public License version 3.
8  *****************************************************************************/
9 
10 #include "VehicleData.h"
11 
12 #include <iterator>
13 
14 // clang-format off
15 /** rct2: 0x0099F100 */
16 static constexpr const uint8_t Rotation1TimeToSpriteMap_0[] = {
17     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
18     0,   0,   0,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
19     1,   1,   1,   1,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,
20     2,   2,   2,   2,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
21     3,   3,   3,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,
22     4,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   6,   6,
23     6,   6,   6,   6,   6,   6,   6,   6,   6,   6,   6,   7,   7,   7,   7,   7,   7,
24     7,   7,   7,   7,   7,   7,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,
25     9,   9,   9,   9,   9,   9,   9,   9,   9,   9,  10,  10,  10,  10,  10,  10,  10,
26     10,  10,  11,  11,  11,  11,  11,  11,  11,  11,  12,  12,  12,  12,  12,  12,  12,
27     13,  13,  13,  13,  13,  13,  13,  14,  14,  14,  14,  14,  14,  15,  15,  15,  15,
28     15,  15,  16,  16,  16,  16,  16,  17,  17,  17,  17,  17,  18,  18,  18,  18,  18,
29     19,  19,  19,  19,  19,  20,  20,  20,  20,  21,  21,  21,  21,  22,  22,  22,  22,
30     23,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
31     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
32     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
33     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
34     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
35     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
36     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
37     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
38     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
39     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
40     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
41     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
42     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
43     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
44     102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107,
45     107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113,
46     113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
47     119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
48     124, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130,
49     130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135,
50     136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140, 140, 141, 141,
51     141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146, 147,
52     147, 147, 148, 148, 148, 149, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 152,
53     153, 153, 153, 154, 154, 154, 155, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158,
54     158, 159, 159, 159, 160, 160, 160, 161, 161, 161, 162, 162, 162, 163, 163, 163, 164,
55     164, 164, 165, 165, 165, 166, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 169,
56     170, 170, 170, 171, 171, 171, 172, 172, 172, 173, 173, 173, 174, 174, 174, 175, 175,
57     175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181,
58     181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186,
59     187, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 190, 191, 191, 191, 192, 192,
60     192, 193, 193, 193, 194, 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 197, 198,
61     198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 203, 203,
62     204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209,
63     209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215,
64     215, 215,
65     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
66 };
67 
68 /** rct2: 0x0099F422 */
69 static constexpr const uint8_t Rotation1TimeToSpriteMap_1[] = {
70     0,   0,   0,   1,   1,   1,   2,   2,   2,   3,   3,   3,   4,   4,   4,   5,   5,
71     5,   6,   6,   6,   7,   7,   7,   8,   8,   8,   9,   9,   9,  10,  10,  10,  11,
72     11,  11,  12,  12,  12,  13,  13,  13,  14,  14,  14,  15,  15,  15,  16,  16,  16,
73     17,  17,  17,  18,  18,  18,  19,  19,  19,  20,  20,  20,  21,  21,  21,  22,  22,
74     22,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
75     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
76     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
77     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
78     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
79     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
80     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
81     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
82     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
83     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
84     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
85     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
86     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
87     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
88     102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107,
89     107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113,
90     113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
91     119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
92     124, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130,
93     130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135,
94     136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140, 140, 141, 141,
95     141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146, 147,
96     147, 147, 148, 148, 148, 149, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 152,
97     153, 153, 153, 154, 154, 154, 155, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158,
98     158, 159, 159, 159, 160, 160, 160, 161, 161, 161, 162, 162, 162, 163, 163, 163, 164,
99     164, 164, 165, 165, 165, 166, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 169,
100     170, 170, 170, 171, 171, 171, 172, 172, 172, 173, 173, 173, 174, 174, 174, 175, 175,
101     175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181,
102     181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186,
103     187, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 190, 191, 191, 191, 192, 192,
104     192, 193, 193, 193, 194, 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 197, 198,
105     198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 203, 203,
106     204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209,
107     209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215,
108     215, 215,
109     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
110 };
111 
112 /** rct2: 0x0099F6AB */
113 static constexpr const uint8_t Rotation1TimeToSpriteMap_2[] = {
114     0,   0,   0,   1,   1,   1,   2,   2,   2,   3,   3,   3,   4,   4,   4,   5,   5,
115     5,   6,   6,   6,   7,   7,   7,   8,   8,   8,   9,   9,   9,  10,  10,  10,  11,
116     11,  11,  12,  12,  12,  13,  13,  13,  14,  14,  14,  15,  15,  15,  16,  16,  16,
117     17,  17,  17,  18,  18,  18,  19,  19,  19,  20,  20,  20,  21,  21,  21,  22,  22,
118     22,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
119     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
120     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
121     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
122     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
123     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
124     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
125     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
126     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
127     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
128     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
129     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
130     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
131     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
132     102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107,
133     107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113,
134     113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
135     119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
136     124, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130,
137     130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135,
138     136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140, 140, 141, 141,
139     141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146, 147,
140     147, 147, 148, 148, 148, 149, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 152,
141     153, 153, 153, 154, 154, 154, 155, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158,
142     158, 159, 159, 159, 160, 160, 160, 161, 161, 161, 162, 162, 162, 163, 163, 163, 164,
143     164, 164, 165, 165, 165, 166, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 169,
144     170, 170, 170, 171, 171, 171, 172, 172, 172, 173, 173, 173, 174, 174, 174, 175, 175,
145     175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181,
146     181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186,
147     187, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 190, 191, 191, 191, 191, 191,
148     191, 191, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195, 195,
149     195, 195, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198,
150     199, 199, 199, 199, 199, 199, 200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201,
151     201, 201, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203,
152     204, 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205,
153     205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
154     207, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 208, 208,
155     208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
156     209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211,
157     211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, 212,
158     212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 213, 213,
159     213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214,
160     214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
161     214, 214,
162     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
163 };
164 
165 /** rct2: 0x0099F0F4 */
166 const uint8_t * Rotation1TimeToSpriteMaps[] = {
167     Rotation1TimeToSpriteMap_0,
168     Rotation1TimeToSpriteMap_1,
169     Rotation1TimeToSpriteMap_2,
170 };
171 
172 /** rct2: 0x009A2434 */
173 static constexpr const uint8_t Rotation2TimeToSpriteMap_0[] = {
174     0,   0,   0,   0,   0,   0,   0,   0,   1,   1,   1,   1,   1,   1,   1,   1,   2,
175     2,   2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   3,   3,   3,   4,   4,
176     4,   4,   4,   4,   4,   4,   5,   5,   5,   5,   5,   5,   5,   5,   6,   6,   6,
177     6,   6,   6,   6,   6,   3,   3,   3,   3,   3,   3,   3,   4,   4,   4,   4,   4,
178     4,   4,   5,   5,   5,   5,   5,   5,   5,   6,   6,   6,   6,   6,   6,   6,   3,
179     3,   3,   3,   3,   3,   4,   4,   4,   4,   4,   4,   5,   5,   5,   5,   5,   5,
180     6,   6,   6,   6,   6,   6,   3,   3,   3,   3,   3,   4,   4,   4,   4,   4,   5,
181     5,   5,   5,   5,   6,   6,   6,   6,   6,   3,   3,   3,   3,   4,   4,   4,   4,
182     5,   5,   5,   5,   6,   6,   6,   6,   7,   7,   7,   7,   8,   8,   8,   8,   9,
183     9,   9,   9,   7,   7,   7,   7,   8,   8,   8,   8,   9,   9,   9,   9,   7,   7,
184     7,   7,   8,   8,   8,   8,   9,   9,   9,   9,   7,   7,   7,   7,   8,   8,   8,
185     8,   9,   9,   9,   9,   7,   7,   7,   7,   8,   8,   8,   8,   9,   9,   9,   9,
186     10,  10,  10,  11,  11,  11,  12,  12,  12,  10,  10,  10,  11,  11,  11,  12,  12,
187     12,  10,  10,  10,  11,  11,  11,  12,  12,  12,  10,  10,  10,  11,  11,  11,  12,
188     12,  12,  13,  13,  13,  14,  14,  14,  15,  15,  15,  13,  13,  13,  14,  14,  14,
189     15,  15,  15,  13,  13,  13,  14,  14,  14,  15,  15,  15,  13,  13,  13,  14,  14,
190     14,  15,  15,  15,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,
191     16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,
192     16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,
193     18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,
194     18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,
195     17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,
196     17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,
197     16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,
198     16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,
199     18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,
200     18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  19,  19,  20,
201     20,  21,  21,  19,  19,  20,  20,  21,  21,  19,  19,  20,  20,  21,  21,  22,  22,
202     23,  23,  24,  24,  22,  22,  23,  23,  24,  24,  22,  22,  23,  23,  24,  24,  25,
203     25,  26,  26,  27,  27,  25,  25,  26,  26,  27,  27,  25,  25,  26,  26,  27,  27,
204     28,  28,  29,  29,  30,  30,  28,  28,  29,  29,  30,  30,  28,  28,  29,  29,  30,
205     30,  31,  31,  32,  32,  33,  33,  31,  31,  32,  32,  33,  33,  31,  31,  32,  32,
206     33,  33,  34,  34,  35,  35,  36,  36,  34,  34,  35,  35,  36,  36,  34,  34,  35,
207     35,  36,  36,  37,  37,  38,  38,  39,  39,  37,  37,  38,  38,  39,  39,  37,  37,
208     38,  38,  39,  39,  40,  40,  41,  41,  42,  42,  40,  40,  41,  41,  42,  42,  40,
209     40,  41,  41,  42,  42,  43,  43,  44,  44,  45,  45,  43,  43,  44,  44,  45,  45,
210     43,  43,  44,  44,  45,  45,
211     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
212 };
213 
214 /** rct2: 0x009A26A6 */
215 static constexpr const uint8_t Rotation2TimeToSpriteMap_1[] = {
216     46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,
217     48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,
218     48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,
219     47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,
220     47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,  46,
221     46,  47,  47,  48,  48,  46,  46,  47,  47,  48,  48,
222     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
223 };
224 
225 /** rct2: 0x009A270E */
226 static constexpr const uint8_t Rotation2TimeToSpriteMap_2[] = {
227     43,  43,  44,  44,  45,  45,  43,  43,  44,  44,  45,  45,  43,  43,  44,  44,  45,
228     45,  40,  40,  41,  41,  42,  42,  40,  40,  41,  41,  42,  42,  40,  40,  41,  41,
229     42,  42,  37,  37,  38,  38,  39,  39,  37,  37,  38,  38,  39,  39,  37,  37,  38,
230     38,  39,  39,  34,  34,  35,  35,  36,  36,  34,  34,  35,  35,  36,  36,  34,  34,
231     35,  35,  36,  36,  31,  31,  32,  32,  33,  33,  31,  31,  32,  32,  33,  33,  31,
232     31,  32,  32,  33,  33,  28,  28,  29,  29,  30,  30,  28,  28,  29,  29,  30,  30,
233     28,  28,  29,  29,  30,  30,  25,  25,  26,  26,  27,  27,  25,  25,  26,  26,  27,
234     27,  25,  25,  26,  26,  27,  27,  22,  22,  23,  23,  24,  24,  22,  22,  23,  23,
235     24,  24,  22,  22,  23,  23,  24,  24,  19,  19,  20,  20,  21,  21,  19,  19,  20,
236     20,  21,  21,  19,  19,  20,  20,  21,  21,  16,  16,  17,  17,  18,  18,  16,  16,
237     17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,  16,  17,  17,  18,  18,  16,
238     16,  17,  17,  18,  18,  13,  13,  13,  14,  14,  14,  15,  15,  15,  13,  13,  13,
239     14,  14,  14,  15,  15,  15,  13,  13,  13,  14,  14,  14,  15,  15,  15,  13,  13,
240     13,  14,  14,  14,  15,  15,  15,  10,  10,  10,  11,  11,  11,  12,  12,  12,  10,
241     10,  10,  11,  11,  11,  12,  12,  12,  10,  10,  10,  11,  11,  11,  12,  12,  12,
242     10,  10,  10,  11,  11,  11,  12,  12,  12,   7,   7,   7,   7,   8,   8,   8,   8,
243     9,   9,   9,   9,   7,   7,   7,   7,   8,   8,   8,   8,   9,   9,   9,   9,   7,
244     7,   7,   7,   8,   8,   8,   8,   9,   9,   9,   9,   7,   7,   7,   7,   8,   8,
245     8,   8,   9,   9,   9,   9,   7,   7,   7,   7,   8,   8,   8,   8,   9,   9,   9,
246     9,   3,   3,   3,   3,   4,   4,   4,   4,   5,   5,   5,   5,   6,   6,   6,   6,
247     3,   3,   3,   3,   3,   4,   4,   4,   4,   4,   5,   5,   5,   5,   5,   6,   6,
248     6,   6,   6,   3,   3,   3,   3,   3,   3,   4,   4,   4,   4,   4,   4,   5,   5,
249     5,   5,   5,   5,   6,   6,   6,   6,   6,   6,   3,   3,   3,   3,   3,   3,   3,
250     4,   4,   4,   4,   4,   4,   4,   5,   5,   5,   5,   5,   5,   5,   6,   6,   6,
251     6,   6,   6,   6,   3,   3,   3,   3,   3,   3,   3,   3,   4,   4,   4,   4,   4,
252     4,   4,   4,   5,   5,   5,   5,   5,   5,   5,   5,   6,   6,   6,   6,   6,   6,
253     6,   6,   2,   2,   2,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,
254     1,   0,   0,   0,   0,   0,   0,   0,   0,
255     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
256 };
257 
258 /** rct2: 0x009A2428 */
259 const uint8_t * Rotation2TimeToSpriteMaps[] = {
260     Rotation2TimeToSpriteMap_0,
261     Rotation2TimeToSpriteMap_1,
262     Rotation2TimeToSpriteMap_2,
263 };
264 
265 /** rct2: 0x0099EB28 */
266 static constexpr const uint8_t Rotation3TimeToSpriteMap_0[] = {
267     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
268     0,   0,   0,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
269     1,   1,   1,   1,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,
270     2,   2,   2,   2,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
271     3,   3,   3,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,   4,
272     4,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   5,   6,   6,
273     6,   6,   6,   6,   6,   6,   6,   6,   6,   6,   6,   7,   7,   7,   7,   7,   7,
274     7,   7,   7,   7,   7,   7,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,
275     9,   9,   9,   9,   9,   9,   9,   9,   9,   9,  10,  10,  10,  10,  10,  10,  10,
276     10,  10,  11,  11,  11,  11,  11,  11,  11,  11,  12,  12,  12,  12,  12,  12,  12,
277     13,  13,  13,  13,  13,  13,  13,  14,  14,  14,  14,  14,  14,  15,  15,  15,  15,
278     15,  15,  16,  16,  16,  16,  16,  17,  17,  17,  17,  17,  18,  18,  18,  18,  18,
279     19,  19,  19,  19,  19,  20,  20,  20,  20,  21,  21,  21,  21,  22,  22,  22,  22,
280     23,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
281     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
282     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
283     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
284     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
285     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
286     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
287     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
288     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
289     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
290     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
291     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
292     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
293     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
294     102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107,
295     107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113,
296     113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
297     119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
298     124, 125, 125, 125, 126, 126, 126, 127, 127, 127,
299     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
300 };
301 
302 /** rct2: 0x0099ED49 */
303 static constexpr const uint8_t Rotation3TimeToSpriteMap_1[] = {
304     0,   0,   0,   1,   1,   1,   2,   2,   2,   3,   3,   3,   4,   4,   4,   5,   5,
305     5,   6,   6,   6,   7,   7,   7,   8,   8,   8,   9,   9,   9,  10,  10,  10,  11,
306     11,  11,  12,  12,  12,  13,  13,  13,  14,  14,  14,  15,  15,  15,  16,  16,  16,
307     17,  17,  17,  18,  18,  18,  19,  19,  19,  20,  20,  20,  21,  21,  21,  22,  22,
308     22,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
309     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
310     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
311     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
312     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
313     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
314     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
315     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
316     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
317     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
318     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
319     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
320     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
321     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
322     102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107,
323     107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113,
324     113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
325     119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
326     124, 125, 125, 125, 126, 126, 126, 127, 127, 127,
327     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
328 };
329 
330 /** rct2: 0x0099EED1 */
331 static constexpr const uint8_t Rotation3TimeToSpriteMap_2[] = {
332     0,   0,   0,   1,   1,   1,   2,   2,   2,   3,   3,   3,   4,   4,   4,   5,   5,
333     5,   6,   6,   6,   7,   7,   7,   8,   8,   8,   9,   9,   9,  10,  10,  10,  11,
334     11,  11,  12,  12,  12,  13,  13,  13,  14,  14,  14,  15,  15,  15,  16,  16,  16,
335     17,  17,  17,  18,  18,  18,  19,  19,  19,  20,  20,  20,  21,  21,  21,  22,  22,
336     22,  23,  23,  23,  24,  24,  24,  25,  25,  25,  26,  26,  26,  27,  27,  27,  28,
337     28,  28,  29,  29,  29,  30,  30,  30,  31,  31,  31,  32,  32,  32,  33,  33,  33,
338     34,  34,  34,  35,  35,  35,  36,  36,  36,  37,  37,  37,  38,  38,  38,  39,  39,
339     39,  40,  40,  40,  41,  41,  41,  42,  42,  42,  43,  43,  43,  44,  44,  44,  45,
340     45,  45,  46,  46,  46,  47,  47,  47,  48,  48,  48,  49,  49,  49,  50,  50,  50,
341     51,  51,  51,  52,  52,  52,  53,  53,  53,  54,  54,  54,  55,  55,  55,  56,  56,
342     56,  57,  57,  57,  58,  58,  58,  59,  59,  59,  60,  60,  60,  61,  61,  61,  62,
343     62,  62,  63,  63,  63,  64,  64,  64,  65,  65,  65,  66,  66,  66,  67,  67,  67,
344     68,  68,  68,  69,  69,  69,  70,  70,  70,  71,  71,  71,  72,  72,  72,  73,  73,
345     73,  74,  74,  74,  75,  75,  75,  76,  76,  76,  77,  77,  77,  78,  78,  78,  79,
346     79,  79,  80,  80,  80,  81,  81,  81,  82,  82,  82,  83,  83,  83,  84,  84,  84,
347     85,  85,  85,  86,  86,  86,  87,  87,  87,  88,  88,  88,  89,  89,  89,  90,  90,
348     90,  91,  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,  94,  95,  95,  95,  96,
349     96,  96,  97,  97,  97,  98,  98,  98,  99,  99,  99, 100, 100, 100, 101, 101, 101,
350     102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 105, 105, 105,
351     105, 106, 106, 106, 106, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 109, 109,
352     109, 109, 109, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 112, 112, 112,
353     112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 114,
354     115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 116,
355     117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118,
356     118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120,
357     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121,
358     121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122,
359     122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
360     123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
361     124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
362     125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
363     126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
364     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
365 };
366 
367 /** rct2: 0x0099EB1C */
368 const uint8_t * Rotation3TimeToSpriteMaps[] = {
369     Rotation3TimeToSpriteMap_0,
370     Rotation3TimeToSpriteMap_1,
371     Rotation3TimeToSpriteMap_2,
372 };
373 
374 /** rct2: 0x009A12EC */
375 static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_0[] = {
376     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
377     {  0,  0 }, {  0,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 },
378     {  1,  0 }, {  1,  0 }, {  1,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 },
379     {  2,  0 }, {  2,  0 }, {  2,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 },
380     {  3,  0 }, {  3,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 },
381     {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  6,  0 }, {  6,  0 },
382     {  6,  0 }, {  6,  0 }, {  6,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 },
383     {  7,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  9,  0 },
384     {  9,  0 }, {  9,  0 }, {  9,  0 }, {  9,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 },
385     { 10,  0 }, { 10,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 },
386     { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 13,  0 }, { 13,  0 },
387     { 13,  0 }, { 13,  0 }, { 13,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 },
388     { 14,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 16,  0 },
389     { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 },
390     { 17,  0 }, { 17,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 },
391     { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 20,  0 }, { 20,  0 },
392     { 20,  0 }, { 20,  0 }, { 20,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 },
393     { 21,  0 }, { 21,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 },
394     { 22,  0 }, { 22,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 },
395     { 23,  0 }, { 23,  0 }, { 23,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 },
396     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 23,  1 },
397     { 23,  1 }, { 23,  1 }, { 23,  1 }, { 23,  1 }, { 23,  1 }, { 23,  1 }, { 23,  1 },
398     { 22,  2 }, { 22,  2 }, { 22,  2 }, { 22,  2 }, { 22,  2 }, { 22,  2 }, { 22,  2 },
399     { 21,  3 }, { 21,  3 }, { 21,  3 }, { 21,  3 }, { 21,  3 }, { 21,  3 }, { 20,  4 },
400     { 20,  4 }, { 20,  4 }, { 20,  4 }, { 20,  4 }, { 19,  5 }, { 19,  5 }, { 19,  5 },
401     { 19,  5 }, { 19,  5 }, { 18,  6 }, { 18,  6 }, { 18,  6 }, { 18,  6 }, { 18,  6 },
402     { 17,  7 }, { 17,  7 }, { 17,  7 }, { 17,  7 }, { 17,  7 }, { 16,  8 }, { 16,  8 },
403     { 16,  8 }, { 16,  8 }, { 16,  8 }, { 15,  9 }, { 15,  9 }, { 15,  9 }, { 15,  9 },
404     { 15,  9 }, { 14, 10 }, { 14, 10 }, { 14, 10 }, { 14, 10 }, { 14, 10 }, { 13, 11 },
405     { 13, 11 }, { 13, 11 }, { 13, 11 }, { 13, 11 }, { 12, 12 }, { 12, 12 }, { 12, 12 },
406     { 12, 12 }, { 12, 12 }, { 11, 13 }, { 11, 13 }, { 11, 13 }, { 11, 13 }, { 11, 13 },
407     { 10, 14 }, { 10, 14 }, { 10, 14 }, { 10, 14 }, { 10, 14 }, {  9, 15 }, {  9, 15 },
408     {  9, 15 }, {  9, 15 }, {  9, 15 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 },
409     {  8,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  6,  0 },
410     {  6,  0 }, {  6,  0 }, {  6,  0 }, {  6,  0 }, {  5, 15 }, {  5, 15 }, {  5, 15 },
411     {  5, 15 }, {  5, 15 }, {  4, 14 }, {  4, 14 }, {  4, 14 }, {  4, 14 }, {  4, 14 },
412     {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  2, 12 }, {  2, 12 },
413     {  2, 12 }, {  2, 12 }, {  2, 12 }, {  1, 12 }, {  1, 12 }, {  1, 12 }, {  1, 12 },
414     {  1, 12 }, {  0, 13 }, {  0, 13 }, {  0, 13 }, {  0, 13 }, {  0, 13 }, { 47, 14 },
415     { 47, 14 }, { 47, 14 }, { 47, 14 }, { 47, 14 }, { 46, 15 }, { 46, 15 }, { 46, 15 },
416     { 46, 15 }, { 46, 15 }, { 45,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 },
417     { 44,  1 }, { 44,  1 }, { 44,  1 }, { 44,  1 }, { 44,  1 }, { 43,  2 }, { 43,  2 },
418     { 43,  2 }, { 43,  2 }, { 43,  2 }, { 42,  3 }, { 42,  3 }, { 42,  3 }, { 42,  3 },
419     { 42,  3 }, { 41,  4 }, { 41,  4 }, { 41,  4 }, { 41,  4 }, { 41,  4 }, { 40,  5 },
420     { 40,  5 }, { 40,  5 }, { 40,  5 }, { 40,  5 }, { 39,  6 }, { 39,  6 }, { 39,  6 },
421     { 39,  6 }, { 39,  6 }, { 38,  7 }, { 38,  7 }, { 38,  7 }, { 38,  7 }, { 38,  7 },
422     { 37,  8 }, { 37,  8 }, { 37,  8 }, { 37,  8 }, { 37,  8 }, { 36,  9 }, { 36,  9 },
423     { 36,  9 }, { 36,  9 }, { 36,  9 }, { 35, 10 }, { 35, 10 }, { 35, 10 }, { 35, 10 },
424     { 35, 10 }, { 34, 11 }, { 34, 11 }, { 34, 11 }, { 34, 11 }, { 34, 11 }, { 33, 12 },
425     { 33, 12 }, { 33, 12 }, { 33, 12 }, { 33, 12 }, { 32, 13 }, { 32, 13 }, { 32, 13 },
426     { 32, 13 }, { 32, 13 }, { 31, 14 }, { 31, 14 }, { 31, 14 }, { 31, 14 }, { 31, 14 },
427     { 30, 15 }, { 30, 15 }, { 30, 15 }, { 30, 15 }, { 30, 15 }, { 29,  0 }, { 29,  0 },
428     { 29,  0 }, { 29,  0 }, { 29,  0 }, { 28,  1 }, { 28,  1 }, { 28,  1 }, { 28,  1 },
429     { 28,  1 }, { 27,  2 }, { 27,  2 }, { 27,  2 }, { 27,  2 }, { 27,  2 }, { 26,  3 },
430     { 26,  3 }, { 26,  3 }, { 26,  3 }, { 26,  3 }, { 25,  3 }, { 25,  3 }, { 25,  3 },
431     { 25,  3 }, { 25,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 },
432     { 23,  2 }, { 23,  2 }, { 23,  2 }, { 23,  2 }, { 23,  2 }, { 22,  1 }, { 22,  1 },
433     { 22,  1 }, { 22,  1 }, { 22,  1 }, { 22,  1 }, { 21,  0 }, { 21,  0 }, { 21,  0 },
434     { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 20,  0 }, { 20,  0 }, { 20,  0 },
435     { 20,  0 }, { 20,  0 }, { 20,  0 }, { 20,  0 }, { 20,  0 }, { 20,  0 }, { 21,  0 },
436     { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 22,  0 },
437     { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 23,  0 }, { 23,  0 },
438     { 23,  0 }, { 23,  0 }, { 23,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 },
439     { 24,  0 }, { 25,  0 }, { 25,  0 }, { 25,  0 }, { 25,  0 }, { 25,  0 }, { 26,  0 },
440     { 26,  0 }, { 26,  0 }, { 26,  0 }, { 26,  0 }, { 27,  0 }, { 27,  0 }, { 27,  0 },
441     { 27,  0 }, { 27,  0 }, { 28,  0 }, { 28,  0 }, { 28,  0 }, { 28,  0 }, { 28,  0 },
442     { 29,  0 }, { 29,  0 }, { 29,  0 }, { 29,  0 }, { 29,  0 }, { 30,  0 }, { 30,  0 },
443     { 30,  0 }, { 30,  0 }, { 30,  0 }, { 31,  0 }, { 31,  0 }, { 31,  0 }, { 31,  0 },
444     { 31,  0 }, { 32,  0 }, { 32,  0 }, { 32,  0 }, { 32,  0 }, { 32,  0 }, { 33,  0 },
445     { 33,  0 }, { 33,  0 }, { 33,  0 }, { 33,  0 }, { 34,  0 }, { 34,  0 }, { 34,  0 },
446     { 34,  0 }, { 34,  0 }, { 35,  0 }, { 35,  0 }, { 35,  0 }, { 35,  0 }, { 35,  0 },
447     { 36,  0 }, { 36,  0 }, { 36,  0 }, { 36,  0 }, { 36,  0 }, { 37,  0 }, { 37,  0 },
448     { 37,  0 }, { 37,  0 }, { 37,  0 }, { 38,  0 }, { 38,  0 }, { 38,  0 }, { 38,  0 },
449     { 38,  0 }, { 39,  0 }, { 39,  0 }, { 39,  0 }, { 39,  0 }, { 39,  0 }, { 40,  0 },
450     { 40,  0 }, { 40,  0 }, { 40,  0 }, { 40,  0 }, { 41,  0 }, { 41,  0 }, { 41,  0 },
451     { 41,  0 }, { 41,  0 }, { 42,  0 }, { 42,  0 }, { 42,  0 }, { 42,  0 }, { 42,  0 },
452     { 43,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 }, { 44,  0 }, { 44,  0 },
453     { 44,  0 }, { 44,  0 }, { 44,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 },
454     { 45,  0 }, { 46,  0 }, { 46,  0 }, { 46,  0 }, { 46,  0 }, { 46,  0 }, { 47,  0 },
455     { 47,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
456     {  0,  0 }, {  0,  0 },
457     { 0xFF, 0 },
458 };
459 
460 /** rct2: 0x009A1751 */
461 static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_1[] = {
462     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
463     {  0,  0 }, {  0,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 },
464     {  1,  0 }, {  1,  0 }, {  1,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 },
465     {  2,  0 }, {  2,  0 }, {  2,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 },
466     {  3,  0 }, {  3,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 },
467     {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  6,  0 }, {  6,  0 },
468     {  6,  0 }, {  6,  0 }, {  6,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 },
469     {  7,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  9,  0 },
470     {  9,  0 }, {  9,  0 }, {  9,  0 }, {  9,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 },
471     { 10,  0 }, { 10,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 },
472     { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 13,  0 }, { 13,  0 },
473     { 13,  0 }, { 13,  0 }, { 13,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 },
474     { 14,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 16,  0 },
475     { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 },
476     { 17,  0 }, { 17,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 },
477     { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 20,  0 }, { 20,  0 },
478     { 20,  0 }, { 20,  0 }, { 20,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 },
479     { 21,  0 }, { 21,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 },
480     { 22,  0 }, { 22,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 },
481     { 23,  0 }, { 23,  0 }, { 23,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 },
482     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  1 },
483     { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  2 },
484     { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  3 }, { 24,  3 },
485     { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  4 }, { 24,  4 }, { 24,  4 }, { 24,  4 },
486     { 24,  4 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  6 },
487     { 24,  6 }, { 24,  6 }, { 24,  6 }, { 24,  6 }, { 24,  7 }, { 24,  7 }, { 24,  7 },
488     { 24,  7 }, { 24,  7 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 },
489     { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24, 10 }, { 24, 10 },
490     { 24, 10 }, { 24, 10 }, { 24, 10 }, { 24, 11 }, { 24, 11 }, { 24, 11 }, { 24, 11 },
491     { 24, 11 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 13 },
492     { 24, 13 }, { 24, 13 }, { 24, 13 }, { 24, 13 }, { 24, 14 }, { 24, 14 }, { 24, 14 },
493     { 24, 14 }, { 24, 14 }, { 24, 15 }, { 24, 15 }, { 24, 15 }, { 24, 15 }, { 24, 15 },
494     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  1 }, { 24,  1 },
495     { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 },
496     { 24,  2 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 23,  4 },
497     { 23,  4 }, { 23,  4 }, { 23,  4 }, { 23,  4 }, { 22,  4 }, { 22,  4 }, { 22,  4 },
498     { 22,  4 }, { 22,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 },
499     { 20,  4 }, { 20,  4 }, { 20,  4 }, { 20,  4 }, { 20,  4 }, { 19,  4 }, { 19,  4 },
500     { 19,  4 }, { 19,  4 }, { 19,  4 }, { 18,  4 }, { 18,  4 }, { 18,  4 }, { 18,  4 },
501     { 18,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 16,  4 },
502     { 16,  4 }, { 16,  4 }, { 16,  4 }, { 16,  4 }, { 15,  4 }, { 15,  4 }, { 15,  4 },
503     { 15,  4 }, { 15,  4 }, { 14,  5 }, { 14,  5 }, { 14,  5 }, { 14,  5 }, { 14,  5 },
504     { 13,  6 }, { 13,  6 }, { 13,  6 }, { 13,  6 }, { 13,  6 }, { 12,  7 }, { 12,  7 },
505     { 12,  7 }, { 12,  7 }, { 12,  7 }, { 12,  8 }, { 12,  8 }, { 12,  8 }, { 12,  8 },
506     { 12,  8 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12, 10 },
507     { 12, 10 }, { 12, 10 }, { 12, 10 }, { 12, 10 }, { 12, 11 }, { 12, 11 }, { 12, 11 },
508     { 12, 11 }, { 12, 11 }, { 12, 12 }, { 12, 12 }, { 12, 12 }, { 12, 12 }, { 12, 12 },
509     { 13, 12 }, { 13, 12 }, { 13, 12 }, { 13, 12 }, { 13, 12 }, { 14, 12 }, { 14, 12 },
510     { 14, 12 }, { 14, 12 }, { 14, 12 }, { 15, 12 }, { 15, 12 }, { 15, 12 }, { 15, 12 },
511     { 15, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 17, 12 },
512     { 17, 12 }, { 17, 12 }, { 17, 12 }, { 17, 12 }, { 18, 12 }, { 18, 12 }, { 18, 12 },
513     { 18, 12 }, { 18, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 },
514     { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 21, 13 }, { 21, 13 },
515     { 21, 13 }, { 21, 13 }, { 21, 13 }, { 22, 14 }, { 22, 14 }, { 22, 14 }, { 22, 14 },
516     { 22, 14 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 24,  0 },
517     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 25,  1 }, { 25,  1 }, { 25,  1 },
518     { 25,  1 }, { 25,  1 }, { 26,  2 }, { 26,  2 }, { 26,  2 }, { 26,  2 }, { 26,  2 },
519     { 27,  3 }, { 27,  3 }, { 27,  3 }, { 27,  3 }, { 27,  3 }, { 28,  4 }, { 28,  4 },
520     { 28,  4 }, { 28,  4 }, { 28,  4 }, { 29,  5 }, { 29,  5 }, { 29,  5 }, { 29,  5 },
521     { 29,  5 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 31,  7 },
522     { 31,  7 }, { 31,  7 }, { 31,  7 }, { 31,  7 }, { 32,  8 }, { 32,  8 }, { 32,  8 },
523     { 32,  8 }, { 32,  8 }, { 33,  9 }, { 33,  9 }, { 33,  9 }, { 33,  9 }, { 33,  9 },
524     { 34, 10 }, { 34, 10 }, { 34, 10 }, { 34, 10 }, { 34, 10 }, { 35, 11 }, { 35, 11 },
525     { 35, 11 }, { 35, 11 }, { 35, 11 }, { 36, 12 }, { 36, 12 }, { 36, 12 }, { 36, 12 },
526     { 36, 12 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 38, 14 },
527     { 38, 14 }, { 38, 14 }, { 38, 14 }, { 38, 14 }, { 39, 15 }, { 39, 15 }, { 39, 15 },
528     { 39, 15 }, { 39, 15 }, { 40,  0 }, { 40,  0 }, { 40,  0 }, { 40,  0 }, { 40,  0 },
529     { 41,  0 }, { 41,  0 }, { 41,  0 }, { 41,  0 }, { 41,  0 }, { 42,  0 }, { 42,  0 },
530     { 42,  0 }, { 42,  0 }, { 42,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 },
531     { 43,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 45,  0 },
532     { 45,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 }, { 46,  0 }, { 46,  0 }, { 46,  0 },
533     { 46,  0 }, { 46,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 },
534     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  1, 15 }, {  1, 15 },
535     {  1, 15 }, {  1, 15 }, {  1, 15 }, {  2, 14 }, {  2, 14 }, {  2, 14 }, {  2, 14 },
536     {  2, 14 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  4, 12 },
537     {  4, 12 }, {  4, 12 }, {  4, 12 }, {  4, 12 }, {  5, 11 }, {  5, 11 }, {  5, 11 },
538     {  5, 11 }, {  5, 11 }, {  6, 10 }, {  6, 10 }, {  6, 10 }, {  6, 10 }, {  6, 10 },
539     {  7,  9 }, {  7,  9 }, {  7,  9 }, {  7,  9 }, {  7,  9 }, {  8,  8 }, {  8,  8 },
540     {  8,  8 }, {  8,  8 }, {  8,  8 }, {  9,  7 }, {  9,  7 }, {  9,  7 }, {  9,  7 },
541     {  9,  7 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 11,  5 },
542     { 11,  5 }, { 11,  5 }, { 11,  5 }, { 11,  5 }, { 12,  4 }, { 12,  4 }, { 12,  4 },
543     { 12,  4 }, { 12,  4 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 },
544     { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 15,  1 }, { 15,  1 },
545     { 15,  1 }, { 15,  1 }, { 15,  1 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 },
546     { 16,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 },
547     { 17,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 },
548     { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 },
549     { 17,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 },
550     { 16,  0 }, { 16,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 },
551     { 14,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 }, { 13,  0 }, { 13,  0 },
552     { 13,  0 }, { 13,  0 }, { 13,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 },
553     { 12,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 10,  0 },
554     { 10,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 }, {  9,  0 }, {  9,  0 }, {  9,  0 },
555     {  9,  0 }, {  9,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 },
556     {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  6,  0 }, {  6,  0 },
557     {  6,  0 }, {  6,  0 }, {  6,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 },
558     {  5,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  3,  0 },
559     {  3,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 },
560     {  2,  0 }, {  2,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 },
561     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
562     { 0xFF, 0 },
563 };
564 
565 /** rct2: 0x009A1CC6 */
566 static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_2[] = {
567     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
568     {  0,  0 }, {  0,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 }, {  1,  0 },
569     {  1,  0 }, {  1,  0 }, {  1,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 }, {  2,  0 },
570     {  2,  0 }, {  2,  0 }, {  2,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 }, {  3,  0 },
571     {  3,  0 }, {  3,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 },
572     {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  5,  0 }, {  6,  0 }, {  6,  0 },
573     {  6,  0 }, {  6,  0 }, {  6,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 }, {  7,  0 },
574     {  7,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  8,  0 }, {  9,  0 },
575     {  9,  0 }, {  9,  0 }, {  9,  0 }, {  9,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 },
576     { 10,  0 }, { 10,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 }, { 11,  0 },
577     { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 12,  0 }, { 13,  0 }, { 13,  0 },
578     { 13,  0 }, { 13,  0 }, { 13,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 }, { 14,  0 },
579     { 14,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 15,  0 }, { 16,  0 },
580     { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 17,  0 }, { 17,  0 }, { 17,  0 },
581     { 17,  0 }, { 17,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 }, { 18,  0 },
582     { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 19,  0 }, { 20,  0 }, { 20,  0 },
583     { 20,  0 }, { 20,  0 }, { 20,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 }, { 21,  0 },
584     { 21,  0 }, { 21,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 }, { 22,  0 },
585     { 22,  0 }, { 22,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 }, { 23,  0 },
586     { 23,  0 }, { 23,  0 }, { 23,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 },
587     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  1 },
588     { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  2 },
589     { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  3 }, { 24,  3 },
590     { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  4 }, { 24,  4 }, { 24,  4 }, { 24,  4 },
591     { 24,  4 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  5 }, { 24,  6 },
592     { 24,  6 }, { 24,  6 }, { 24,  6 }, { 24,  6 }, { 24,  7 }, { 24,  7 }, { 24,  7 },
593     { 24,  7 }, { 24,  7 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 },
594     { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24,  9 }, { 24, 10 }, { 24, 10 },
595     { 24, 10 }, { 24, 10 }, { 24, 10 }, { 24, 11 }, { 24, 11 }, { 24, 11 }, { 24, 11 },
596     { 24, 11 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 12 }, { 24, 13 },
597     { 24, 13 }, { 24, 13 }, { 24, 13 }, { 24, 13 }, { 24, 14 }, { 24, 14 }, { 24, 14 },
598     { 24, 14 }, { 24, 14 }, { 24, 15 }, { 24, 15 }, { 24, 15 }, { 24, 15 }, { 24, 15 },
599     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  1 }, { 24,  1 },
600     { 24,  1 }, { 24,  1 }, { 24,  1 }, { 24,  2 }, { 24,  2 }, { 24,  2 }, { 24,  2 },
601     { 24,  2 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 24,  3 }, { 23,  4 },
602     { 23,  4 }, { 23,  4 }, { 23,  4 }, { 23,  4 }, { 22,  4 }, { 22,  4 }, { 22,  4 },
603     { 22,  4 }, { 22,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 }, { 21,  4 },
604     { 20,  4 }, { 20,  4 }, { 20,  4 }, { 20,  4 }, { 20,  4 }, { 19,  4 }, { 19,  4 },
605     { 19,  4 }, { 19,  4 }, { 19,  4 }, { 18,  4 }, { 18,  4 }, { 18,  4 }, { 18,  4 },
606     { 18,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 17,  4 }, { 16,  4 },
607     { 16,  4 }, { 16,  4 }, { 16,  4 }, { 16,  4 }, { 15,  4 }, { 15,  4 }, { 15,  4 },
608     { 15,  4 }, { 15,  4 }, { 14,  5 }, { 14,  5 }, { 14,  5 }, { 14,  5 }, { 14,  5 },
609     { 13,  6 }, { 13,  6 }, { 13,  6 }, { 13,  6 }, { 13,  6 }, { 12,  7 }, { 12,  7 },
610     { 12,  7 }, { 12,  7 }, { 12,  7 }, { 12,  8 }, { 12,  8 }, { 12,  8 }, { 12,  8 },
611     { 12,  8 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12,  9 }, { 12, 10 },
612     { 12, 10 }, { 12, 10 }, { 12, 10 }, { 12, 10 }, { 12, 11 }, { 12, 11 }, { 12, 11 },
613     { 12, 11 }, { 12, 11 }, { 12, 12 }, { 12, 12 }, { 12, 12 }, { 12, 12 }, { 12, 12 },
614     { 13, 12 }, { 13, 12 }, { 13, 12 }, { 13, 12 }, { 13, 12 }, { 14, 12 }, { 14, 12 },
615     { 14, 12 }, { 14, 12 }, { 14, 12 }, { 15, 12 }, { 15, 12 }, { 15, 12 }, { 15, 12 },
616     { 15, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 16, 12 }, { 17, 12 },
617     { 17, 12 }, { 17, 12 }, { 17, 12 }, { 17, 12 }, { 18, 12 }, { 18, 12 }, { 18, 12 },
618     { 18, 12 }, { 18, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 }, { 19, 12 },
619     { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 21, 13 }, { 21, 13 },
620     { 21, 13 }, { 21, 13 }, { 21, 13 }, { 22, 14 }, { 22, 14 }, { 22, 14 }, { 22, 14 },
621     { 22, 14 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 23, 15 }, { 24,  0 },
622     { 24,  0 }, { 24,  0 }, { 24,  0 }, { 24,  0 }, { 25,  1 }, { 25,  1 }, { 25,  1 },
623     { 25,  1 }, { 25,  1 }, { 26,  2 }, { 26,  2 }, { 26,  2 }, { 26,  2 }, { 26,  2 },
624     { 27,  3 }, { 27,  3 }, { 27,  3 }, { 27,  3 }, { 27,  3 }, { 28,  4 }, { 28,  4 },
625     { 28,  4 }, { 28,  4 }, { 28,  4 }, { 29,  5 }, { 29,  5 }, { 29,  5 }, { 29,  5 },
626     { 29,  5 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 30,  6 }, { 31,  7 },
627     { 31,  7 }, { 31,  7 }, { 31,  7 }, { 31,  7 }, { 32,  8 }, { 32,  8 }, { 32,  8 },
628     { 32,  8 }, { 32,  8 }, { 33,  9 }, { 33,  9 }, { 33,  9 }, { 33,  9 }, { 33,  9 },
629     { 34, 10 }, { 34, 10 }, { 34, 10 }, { 34, 10 }, { 34, 10 }, { 35, 11 }, { 35, 11 },
630     { 35, 11 }, { 35, 11 }, { 35, 11 }, { 36, 12 }, { 36, 12 }, { 36, 12 }, { 36, 12 },
631     { 36, 12 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 37, 13 }, { 38, 14 },
632     { 38, 14 }, { 38, 14 }, { 38, 14 }, { 38, 14 }, { 39, 15 }, { 39, 15 }, { 39, 15 },
633     { 39, 15 }, { 39, 15 }, { 40,  0 }, { 40,  0 }, { 40,  0 }, { 40,  0 }, { 40,  0 },
634     { 41,  0 }, { 41,  0 }, { 41,  0 }, { 41,  0 }, { 41,  0 }, { 42,  0 }, { 42,  0 },
635     { 42,  0 }, { 42,  0 }, { 42,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 }, { 43,  0 },
636     { 43,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 44,  0 }, { 45,  0 },
637     { 45,  0 }, { 45,  0 }, { 45,  0 }, { 45,  0 }, { 46,  0 }, { 46,  0 }, { 46,  0 },
638     { 46,  0 }, { 46,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 }, { 47,  0 },
639     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  1, 15 }, {  1, 15 },
640     {  1, 15 }, {  1, 15 }, {  1, 15 }, {  2, 14 }, {  2, 14 }, {  2, 14 }, {  2, 14 },
641     {  2, 14 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  3, 13 }, {  4, 12 },
642     {  4, 12 }, {  4, 12 }, {  4, 12 }, {  4, 12 }, {  5, 11 }, {  5, 11 }, {  5, 11 },
643     {  5, 11 }, {  5, 11 }, {  6, 10 }, {  6, 10 }, {  6, 10 }, {  6, 10 }, {  6, 10 },
644     {  7,  9 }, {  7,  9 }, {  7,  9 }, {  7,  9 }, {  7,  9 }, {  8,  8 }, {  8,  8 },
645     {  8,  8 }, {  8,  8 }, {  8,  8 }, {  9,  7 }, {  9,  7 }, {  9,  7 }, {  9,  7 },
646     {  9,  7 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 10,  6 }, { 11,  5 },
647     { 11,  5 }, { 11,  5 }, { 11,  5 }, { 11,  5 }, { 12,  4 }, { 12,  4 }, { 12,  4 },
648     { 12,  4 }, { 12,  4 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 },
649     { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 15,  1 }, { 15,  1 },
650     { 15,  1 }, { 15,  1 }, { 15,  1 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 },
651     { 16,  0 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 18, 14 },
652     { 18, 14 }, { 18, 14 }, { 18, 14 }, { 18, 14 }, { 19, 13 }, { 19, 13 }, { 19, 13 },
653     { 19, 13 }, { 19, 13 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 },
654     { 21, 11 }, { 21, 11 }, { 21, 11 }, { 21, 11 }, { 21, 11 }, { 22, 10 }, { 22, 10 },
655     { 22, 10 }, { 22, 10 }, { 22, 10 }, { 23,  9 }, { 23,  9 }, { 23,  9 }, { 23,  9 },
656     { 23,  9 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 25,  7 },
657     { 25,  7 }, { 25,  7 }, { 25,  7 }, { 25,  7 }, { 26,  6 }, { 26,  6 }, { 26,  6 },
658     { 26,  6 }, { 26,  6 }, { 27,  5 }, { 27,  5 }, { 27,  5 }, { 27,  5 }, { 27,  5 },
659     { 28,  4 }, { 28,  4 }, { 28,  4 }, { 28,  4 }, { 28,  4 }, { 29,  3 }, { 29,  3 },
660     { 29,  3 }, { 29,  3 }, { 29,  3 }, { 30,  2 }, { 30,  2 }, { 30,  2 }, { 30,  2 },
661     { 30,  2 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 32,  0 },
662     { 32,  0 }, { 32,  0 }, { 32,  0 }, { 32,  0 }, { 33, 15 }, { 33, 15 }, { 33, 15 },
663     { 33, 15 }, { 33, 15 }, { 34, 14 }, { 34, 14 }, { 34, 14 }, { 34, 14 }, { 34, 14 },
664     { 35, 13 }, { 35, 13 }, { 35, 13 }, { 35, 13 }, { 35, 13 }, { 36, 12 }, { 36, 12 },
665     { 36, 12 }, { 36, 12 }, { 36, 12 }, { 37, 11 }, { 37, 11 }, { 37, 11 }, { 37, 11 },
666     { 37, 11 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 39,  9 },
667     { 39,  9 }, { 39,  9 }, { 39,  9 }, { 39,  9 }, { 40,  8 }, { 40,  8 }, { 40,  8 },
668     { 40,  8 }, { 40,  8 }, { 41,  8 }, { 41,  8 }, { 41,  8 }, { 41,  8 }, { 41,  8 },
669     { 41,  8 }, { 41,  8 }, { 42,  8 }, { 42,  8 }, { 42,  8 }, { 42,  8 }, { 42,  8 },
670     { 42,  8 }, { 42,  8 }, { 42,  8 }, { 42,  8 }, { 42,  8 }, { 41,  8 }, { 41,  8 },
671     { 41,  8 }, { 41,  8 }, { 41,  8 }, { 41,  8 }, { 41,  8 }, { 40,  8 }, { 40,  8 },
672     { 40,  8 }, { 40,  8 }, { 40,  8 }, { 39,  9 }, { 39,  9 }, { 39,  9 }, { 39,  9 },
673     { 39,  9 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 38, 10 }, { 37, 11 },
674     { 37, 11 }, { 37, 11 }, { 37, 11 }, { 37, 11 }, { 36, 12 }, { 36, 12 }, { 36, 12 },
675     { 36, 12 }, { 36, 12 }, { 35, 13 }, { 35, 13 }, { 35, 13 }, { 35, 13 }, { 35, 13 },
676     { 34, 14 }, { 34, 14 }, { 34, 14 }, { 34, 14 }, { 34, 14 }, { 33, 15 }, { 33, 15 },
677     { 33, 15 }, { 33, 15 }, { 33, 15 }, { 32,  0 }, { 32,  0 }, { 32,  0 }, { 32,  0 },
678     { 32,  0 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 31,  1 }, { 30,  2 },
679     { 30,  2 }, { 30,  2 }, { 30,  2 }, { 30,  2 }, { 29,  3 }, { 29,  3 }, { 29,  3 },
680     { 29,  3 }, { 29,  3 }, { 28,  4 }, { 28,  4 }, { 28,  4 }, { 28,  4 }, { 28,  4 },
681     { 27,  5 }, { 27,  5 }, { 27,  5 }, { 27,  5 }, { 27,  5 }, { 26,  6 }, { 26,  6 },
682     { 26,  6 }, { 26,  6 }, { 26,  6 }, { 25,  7 }, { 25,  7 }, { 25,  7 }, { 25,  7 },
683     { 25,  7 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 24,  8 }, { 23,  9 },
684     { 23,  9 }, { 23,  9 }, { 23,  9 }, { 23,  9 }, { 22, 10 }, { 22, 10 }, { 22, 10 },
685     { 22, 10 }, { 22, 10 }, { 21, 11 }, { 21, 11 }, { 21, 11 }, { 21, 11 }, { 21, 11 },
686     { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 20, 12 }, { 19, 13 }, { 19, 13 },
687     { 19, 13 }, { 19, 13 }, { 19, 13 }, { 18, 14 }, { 18, 14 }, { 18, 14 }, { 18, 14 },
688     { 18, 14 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 17, 15 }, { 16,  0 },
689     { 16,  0 }, { 16,  0 }, { 16,  0 }, { 16,  0 }, { 15,  1 }, { 15,  1 }, { 15,  1 },
690     { 15,  1 }, { 15,  1 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 }, { 14,  2 },
691     { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 13,  3 }, { 12,  2 }, { 12,  2 },
692     { 12,  2 }, { 12,  2 }, { 12,  2 }, { 11,  1 }, { 11,  1 }, { 11,  1 }, { 11,  1 },
693     { 11,  1 }, { 10,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 }, { 10,  0 }, {  9, 15 },
694     {  9, 15 }, {  9, 15 }, {  9, 15 }, {  9, 15 }, {  8, 14 }, {  8, 14 }, {  8, 14 },
695     {  8, 14 }, {  8, 14 }, {  7, 13 }, {  7, 13 }, {  7, 13 }, {  7, 13 }, {  7, 13 },
696     {  6, 14 }, {  6, 14 }, {  6, 14 }, {  6, 14 }, {  6, 14 }, {  5, 15 }, {  5, 15 },
697     {  5, 15 }, {  5, 15 }, {  5, 15 }, {  4,  0 }, {  4,  0 }, {  4,  0 }, {  4,  0 },
698     {  4,  0 }, {  3,  1 }, {  3,  1 }, {  3,  1 }, {  3,  1 }, {  3,  1 }, {  2,  2 },
699     {  2,  2 }, {  2,  2 }, {  2,  2 }, {  2,  2 }, {  1,  1 }, {  1,  1 }, {  1,  1 },
700     {  1,  1 }, {  1,  1 }, {  1,  1 }, {  1,  1 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
701     {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 },
702     { 0xFF, 0 },
703 };
704 
705 /** rct2: 0x009A12E0 */
706 const top_spin_time_to_sprite_map * TopSpinTimeToSpriteMaps[] = {
707     TopSpinTimeToSpriteMap_0,
708     TopSpinTimeToSpriteMap_1,
709     TopSpinTimeToSpriteMap_2,
710 };
711 
712 /** rct2: 0x009A0434 */
713 const uint8_t MotionSimulatorTimeToSpriteMap[] = {
714     0,  0,  0,  4,  4,  4,  5,  5,  5,  6,  6,  6,  7,  7,  7,  8,  8,  8,  9,  9,  9,
715     10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15,
716     15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
717     16, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11,
718     10, 10, 10, 10, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 26,
719     26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24,
720     24, 23, 23, 23, 23, 10, 10, 10, 10, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,
721     32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 29, 29, 29, 29,
722     10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
723     13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 17, 17, 17, 18, 18, 18, 19, 19, 19,
724     20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
725     22, 22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 10, 10, 10,
726     11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
727     11, 11, 11, 10, 10, 10,  9,  9,  8,  8,  7,  7,  6,  6,  7,  7,  8,  8,  9,  9, 29,
728     29, 30, 30, 31, 31, 30, 30, 29, 29, 10, 10, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21,
729     22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 10, 10, 11, 11, 12, 12, 12, 12, 12,
730     12, 12, 11, 11, 10, 10, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26,
731     26, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 26, 26, 26,
732     26, 25, 25, 25, 25, 24, 24, 24, 24, 23, 23, 23, 23, 10, 10, 10, 10, 29, 29, 29, 29,
733     30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 29, 29, 29, 29,
734     10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16,
735     16, 16, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11,
736     10, 10, 10, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20,
737     20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 10, 10, 10,
738     9,  9,  8,  8,  7,  7,  6,  6,  7,  7,  8,  8,  9,  9, 17, 17, 18, 18, 19, 19, 20,
739     20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 18, 18, 17, 17, 10, 10, 23, 23,
740     24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27,
741     27, 26, 26, 25, 25, 24, 24, 23, 23, 10, 10, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21,
742     22, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 10, 10, 11, 11, 12, 12, 13, 13,
743     14, 14, 15, 15, 16, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 29, 29,
744     30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 29, 10, 10,
745     23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23,
746     10, 10, 29, 29, 30, 30, 30, 30, 30, 30, 30, 29, 29, 10, 10, 23, 23, 24, 24, 24, 24,
747     24, 24, 24, 23, 23, 10, 10, 29, 29, 30, 30, 30, 30, 30, 30, 30, 29, 29, 10, 10, 23,
748     23, 24, 24, 24, 24, 24, 24, 24, 23, 23, 10, 10, 17, 17, 17, 17, 18, 18, 18, 18, 19,
749     19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
750     22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 19, 19, 19, 19,
751     18, 18, 18, 18, 17, 17, 17, 17, 10, 10, 10, 10, 17, 17, 18, 18, 19, 19, 20, 20, 21,
752     21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 20,
753     20, 19, 19, 18, 18, 17, 17, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16,
754     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 14, 14, 13, 13,
755     12, 12, 11, 11, 10, 10, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26,
756     26, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
757     28, 28, 28, 27, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24, 24, 23, 23,
758     23, 23, 10, 10, 10, 10, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32,
759     32, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
760     34, 34, 34, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 29, 29,
761     29, 29, 10, 10, 10, 10,  9,  9,  8,  8,  7,  7,  6,  6,  7,  7,  8,  8,  9,  9,  9,
762     9,  8,  8,  7,  7,  6,  6,  7,  7,  8,  8,  9,  9,  9,  9,  8,  8,  7,  7,  6,  6,
763     7,  7,  8,  8,  9,  9, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
764     20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
765     22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 20, 20, 20, 20, 20, 19, 19,
766     19, 19, 19, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 10, 10, 10, 10, 10, 23, 23, 24,
767     24, 25, 25, 26, 26, 27, 27, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 10, 10,
768     29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
769     34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 32, 32, 31,
770     31, 30, 30, 29, 29, 10, 10, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 19, 19, 19,
771     19, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
772     22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 20, 20, 20, 20, 20, 19,
773     19, 19, 19, 19, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 10, 10, 10, 10, 10, 11, 11,
774     12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
775     16, 16, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10,  9,  9,  8,  8,  7,
776     7,  6,  6,  7,  7,  8,  8,  9,  9,  9,  9,  8,  8,  7,  7,  6,  6,  7,  7,  8,  8,
777     9,  9, 23, 23, 24, 24, 25, 25, 24, 24, 23, 23, 10, 10, 29, 29, 30, 30, 31, 31, 30,
778     30, 29, 29, 10, 10, 23, 23, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
779     25, 25, 25, 25, 25, 24, 24, 23, 23, 10, 10, 29, 29, 30, 30, 31, 31, 31, 31, 31, 31,
780     31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 30, 30, 29, 29, 10, 10, 23, 23, 24, 24,
781     24, 24, 24, 24, 24, 23, 23, 10, 10, 29, 29, 30, 30, 30, 30, 30, 30, 30, 29, 29, 10,
782     10, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23,
783     23, 10, 10, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34,
784     34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 10, 10,
785     17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 22, 22,
786     22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19,
787     18, 18, 18, 17, 17, 17, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13,
788     13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
789     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 14, 14, 14, 14,
790     14, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10,
791     10, 10, 10, 10,  9,  9,  9,  8,  8,  8,  7,  7,  7,  6,  6,  6,  5,  5,  5,  4,  4,
792     4,  0,  0,  0,
793     0xFF,
794 };
795 
796 const int32_t MotionSimulatorTimeToSpriteMapCount = static_cast<int32_t>(std::size(MotionSimulatorTimeToSpriteMap));
797 
798 /** rct2: 0x009A2930 */
799 const int32_t dword_9A2930[] = {
800     0,      // 0000
801     8716,   // 0001
802     8716,   // 0010
803     12327,  // 0011
804     6554,   // 0100
805     10905,  // 0101
806     10905,  // 0110
807     13961,  // 0111
808     0,      // 1000
809     21790,  // 1001
810     21790,  // 1010
811     30817,  // 1011
812     16385,  // 1100
813     27262,  // 1101
814     27262,  // 1110
815     34902,  // 1111
816 };
817 
818 /** rct2: 0x009A2970 */
819 const int32_t dword_9A2970[] = {
820           0,    // 0
821     -124548,    // 1
822     -243318,    // 2
823     -416016,    // 3
824     -546342,    // 4
825      124548,    // 5
826      243318,    // 6
827      416016,    // 7
828      546342,    // 8
829     -617604,    // 9
830     -642000,    // 10
831     -620172,    // 11
832     -555972,    // 12
833     -453894,    // 13
834     -321000,    // 14
835     -166278,    // 15
836           0,    // 16
837      617604,    // 17
838      642000,    // 18
839      620172,    // 19
840      555972,    // 20
841      453894,    // 21
842      321000,    // 22
843      166278,    // 23
844     -321000,    // 24
845     -555972,    // 25
846     -642000,    // 26
847     -555972,    // 27
848     -321000,    // 28
849      321000,    // 29
850      555972,    // 30
851      642000,    // 31
852      555972,    // 32
853      321000,    // 33
854     -321000,    // 34
855     -555972,    // 35
856     -642000,    // 36
857     -555972,    // 37
858     -321000,    // 38
859      321000,    // 39
860      555972,    // 40
861      642000,    // 41
862      555972,    // 42
863      321000,    // 43
864      -33384,    // 44
865      -55854,    // 45
866       33384,    // 46
867       55854,    // 47
868      -66768,    // 48
869       66768,    // 49
870      -90522,    // 50
871     -179760,    // 51
872     -484068,    // 52
873       90522,    // 53
874      179760,    // 54
875      484068,    // 55
876      243318,    // 56
877      416016,    // 57
878      546342,    // 58
879     -110424,    // 59
880 };
881 
882 /** rct2: 0x009A3684 */
883 const int32_t SpriteDirectionToSoundDirection[] = {
884     -0x4000,    // 0
885     -0x3000,    // 1
886     -0x2000,    // 2
887     -0x1000,    // 3
888           0,    // 4
889      0x1000,    // 5
890      0x2000,    // 6
891      0x3000,    // 7
892      0x4000,    // 8
893      0x4800,    // 9
894      0x4800,    // 10
895      0x4800,    // 11
896      0x4800,    // 12
897      0x4800,    // 13
898      0x4800,    // 14
899      0x4800,    // 15
900      0x4000,    // 16
901      0x3000,    // 17
902      0x2000,    // 18
903      0x1000,    // 19
904           0,    // 20
905     -0x1000,    // 21
906     -0x2000,    // 22
907     -0x3000,    // 23
908     -0x4000,    // 24
909     -0x4800,    // 25
910     -0x4800,    // 26
911     -0x4800,    // 27
912     -0x4800,    // 28
913     -0x4800,    // 29
914     -0x4800,    // 30
915     -0x4800,    // 31
916 };
917 // clang-format on
918