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