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 "VehiclePaint.h"
11
12 #include "../Game.h"
13 #include "../drawing/Drawing.h"
14 #include "../drawing/LightFX.h"
15 #include "../interface/Viewport.h"
16 #include "../paint/Paint.h"
17 #include "../paint/sprite/Paint.Sprite.h"
18 #include "../ride/RideData.h"
19 #include "../ride/Vehicle.h"
20 #include "../world/Entity.h"
21 #include "Track.h"
22
23 #include <iterator>
24
25 // 0x0098E52C:
26 const vehicle_boundbox VehicleBoundboxes[16][224] = {
27 {
28 // 0x0099123C:
29 { -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
30 { -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
31 { -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
32 { -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
33 { -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
34 { -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
35 { -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
36 { -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
37 { -10, -6, -22, 16, 12, 14 }, { -8, -8, -22, 16, 16, 14 }, { -6, -11, -27, 3, 16, 19 }, { -8, -8, -22, 16, 16, 14 },
38 { -11, -6, -27, 16, 5, 19 }, { -8, -8, -22, 16, 16, 14 }, { -6, -10, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
39 { -10, -6, -22, 16, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
40 { -3, -10, -33, 3, 16, 27 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
41 { -13, -6, -33, 16, 5, 24 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
42 { -6, -10, -22, 12, 16, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
43 { -10, -6, -33, 20, 12, 24 }, { -2, -3, -33, 3, 10, 29 }, { -13, -6, -33, 20, 5, 24 }, { -6, -10, -22, 12, 20, 14 },
44 { -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 },
45 { -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 },
46 { -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 },
47 { -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 },
48 { -10, -6, -33, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -33, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
49 { -10, -6, -22, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -22, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
50 { -10, -6, -38, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -28, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
51 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
52 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
53 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
54 { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
55 { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
56 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
57 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -6, -22, 16, 12, 14 },
58 { -8, -6, -22, 16, 12, 14 }, { -8, -6, -22, 16, 12, 14 }, { -8, -8, -22, 16, 16, 14 }, { -6, -8, -22, 12, 16, 14 },
59 { -6, -8, -22, 12, 16, 14 }, { -6, -8, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -6, -22, 16, 12, 14 },
60 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
61 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
62 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
63 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
64 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
65 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
66 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
67 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
68 { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
69 { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
70 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
71 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
72 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
73 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
74 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
75 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
76 { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
77 { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
78 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
79 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
80 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
81 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
82 { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
83 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
84 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
85 },
86 {
87 // 0x0099027C:
88 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
89 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
90 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
91 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
92 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
93 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
94 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
95 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
96 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
97 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
98 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
99 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
100 { -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
101 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
102 { -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
103 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
104 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
105 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
106 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
107 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
108 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
109 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
110 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
111 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
112 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
113 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
114 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
115 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
116 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
117 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
118 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
119 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
120 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
121 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
122 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
123 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
124 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
125 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
126 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
127 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
128 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
129 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
130 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
131 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
132 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
133 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
134 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
135 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
136 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
137 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
138 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
139 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
140 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
141 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
142 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
143 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
144 },
145 {
146 // 0x009907BC:
147 { -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
148 { -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
149 { -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
150 { -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
151 { -6, -6, -23, 12, 12, 14 }, { -9, -6, -23, 18, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -9, -23, 12, 18, 14 },
152 { -6, -6, -23, 12, 12, 14 }, { -6, -9, -23, 12, 18, 14 }, { -8, -8, -23, 16, 16, 14 }, { -9, -6, -23, 18, 12, 14 },
153 { -6, -6, -23, 12, 12, 14 }, { -9, -6, -23, 18, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -9, -23, 12, 18, 14 },
154 { -6, -6, -23, 12, 12, 14 }, { -6, -9, -23, 12, 18, 14 }, { -8, -8, -23, 16, 16, 14 }, { -9, -6, -23, 18, 12, 14 },
155 { -10, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -11, -28, 3, 16, 19 }, { -8, -8, -23, 16, 16, 14 },
156 { -11, -6, -28, 16, 5, 19 }, { -8, -8, -23, 16, 16, 14 }, { -6, -10, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
157 { -10, -6, -23, 16, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
158 { -3, -10, -34, 3, 16, 27 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
159 { -13, -6, -34, 16, 5, 24 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
160 { -6, -10, -23, 12, 16, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
161 { -10, -6, -34, 20, 12, 24 }, { -2, -3, -34, 3, 10, 29 }, { -13, -6, -34, 20, 5, 24 }, { -6, -10, -23, 12, 20, 14 },
162 { -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 },
163 { -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 },
164 { -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 },
165 { -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 },
166 { -10, -6, -34, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -34, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
167 { -10, -6, -23, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -23, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
168 { -10, -6, -39, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -29, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
169 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
170 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
171 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
172 { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
173 { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
174 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
175 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
176 { -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
177 { -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
178 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
179 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
180 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
181 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
182 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
183 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
184 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
185 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
186 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
187 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
188 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
189 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
190 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
191 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
192 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
193 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
194 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
195 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
196 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
197 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
198 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
199 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
200 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
201 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
202 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
203 },
204 {
205 // 0x009921FC:
206 { -19, -6, -28, 38, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
207 { -6, -19, -28, 12, 38, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
208 { -19, -6, -28, 38, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
209 { -6, -19, -28, 12, 38, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
210 { -15, -6, -28, 18, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
211 { -6, -6, -28, 12, 28, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
212 { -6, -6, -28, 28, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
213 { -6, -15, -28, 12, 18, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
214 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
215 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
216 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
217 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
218 { -13, -6, -39, 16, 5, 24 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
219 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
220 { -10, -6, -39, 20, 12, 24 }, { -2, -3, -39, 3, 10, 29 }, { -13, -6, -39, 20, 5, 24 }, { -6, -10, -28, 12, 20, 14 },
221 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
222 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
223 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
224 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
225 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
226 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
227 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
228 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
229 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
230 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
231 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
232 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
233 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
234 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
235 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
236 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
237 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
238 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
239 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
240 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
241 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
242 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
243 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
244 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
245 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
246 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
247 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
248 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
249 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
250 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
251 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
252 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
253 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
254 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
255 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
256 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
257 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
258 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
259 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
260 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
261 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
262 },
263 {
264 // 0x00991CBC:
265 { -24, -6, -28, 32, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
266 { -6, -11, -28, 12, 32, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
267 { -11, -6, -28, 32, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
268 { -6, -24, -28, 12, 32, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
269 { -15, -6, -28, 18, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
270 { -6, -6, -28, 12, 28, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
271 { -6, -6, -28, 28, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
272 { -6, -15, -28, 12, 18, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
273 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
274 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
275 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
276 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
277 { -13, -6, -39, 16, 5, 24 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
278 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
279 { -10, -6, -39, 20, 12, 24 }, { -2, -3, -39, 3, 10, 29 }, { -13, -6, -39, 20, 5, 24 }, { -6, -10, -28, 12, 20, 14 },
280 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
281 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
282 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
283 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
284 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
285 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
286 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
287 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
288 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
289 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
290 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
291 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
292 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
293 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
294 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
295 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
296 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
297 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
298 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
299 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
300 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
301 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
302 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
303 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
304 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
305 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
306 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
307 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
308 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
309 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
310 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
311 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
312 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
313 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
314 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
315 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
316 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
317 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
318 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
319 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
320 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
321 },
322 {
323 // 0x0098F52C
324 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
325 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
326 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
327 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
328 { -13, -6, 1, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
329 { -6, -13, 3, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
330 { -13, -6, 3, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
331 { -6, -13, 1, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
332 { -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
333 { -18, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
334 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
335 { -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
336 { -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
337 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
338 { 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
339 { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
340 { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
341 { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
342 { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
343 { -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
344 { -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
345 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
346 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
347 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
348 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
349 { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
350 { -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
351 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
352 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
353 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
354 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
355 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
356 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
357 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
358 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
359 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
360 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
361 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
362 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
363 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
364 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
365 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
366 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
367 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
368 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
369 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
370 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
371 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
372 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
373 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
374 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
375 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
376 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
377 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
378 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
379 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
380 },
381 {
382 // 0x0098EFEC:
383 { -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
384 { -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
385 { -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
386 { -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
387 { -10, -6, 1, 20, 12, 14 }, { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 },
388 { -6, -10, 2, 12, 20, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -6, 1, 16, 12, 14 },
389 { -10, -6, 2, 20, 12, 14 }, { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 },
390 { -6, -10, 1, 12, 20, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -6, 1, 16, 12, 14 },
391 { -10, -6, 1, 20, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -10, 1, 12, 20, 14 }, { -8, -8, 1, 16, 16, 14 },
392 { -10, -6, 1, 20, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -10, 1, 12, 20, 14 }, { 0, 0, 1, 8, 8, 14 },
393 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
394 { -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
395 { -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
396 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
397 { 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
398 { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
399 { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
400 { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
401 { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
402 { -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
403 { -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
404 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
405 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
406 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
407 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
408 { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
409 { -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
410 { -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
411 { -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
412 { -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
413 { -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
414 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
415 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
416 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
417 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
418 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
419 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
420 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
421 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
422 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
423 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
424 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
425 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
426 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
427 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
428 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
429 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
430 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
431 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
432 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
433 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
434 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
435 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
436 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
437 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
438 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
439 },
440 {
441 // 0x0098EAAC:
442 { -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
443 { -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
444 { -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
445 { -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
446 { -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -7, 1, 12, 14, 14 },
447 { -6, -8, 2, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -8, -8, 1, 16, 16, 14 }, { -7, -6, 1, 14, 12, 14 },
448 { -8, -6, 2, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -7, 1, 12, 14, 14 },
449 { -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -8, -8, 1, 16, 16, 14 }, { -7, -6, 1, 14, 12, 14 },
450 { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
451 { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 }, { 0, 0, 1, 8, 8, 14 },
452 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
453 { -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
454 { -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
455 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
456 { 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
457 { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 6, 6, 15 },
458 { -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 },
459 { -12, -12, -8, 6, 6, 15 }, { -12, -6, -8, 6, 6, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
460 { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
461 { -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
462 { -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
463 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
464 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
465 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
466 { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
467 { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
468 { -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
469 { -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
470 { -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
471 { -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
472 { -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
473 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
474 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
475 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
476 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
477 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
478 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
479 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
480 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
481 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
482 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
483 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
484 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
485 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
486 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
487 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
488 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
489 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
490 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
491 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
492 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
493 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
494 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
495 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
496 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
497 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
498 },
499 {
500 // 0x0098E56C:
501 { -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
502 { -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
503 { -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
504 { -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
505 { -3, -6, 1, 6, 12, 14 }, { -3, -6, 1, 6, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -3, 1, 12, 6, 14 },
506 { -6, -3, 2, 12, 6, 14 }, { -6, -3, 1, 12, 6, 14 }, { -8, -8, 1, 16, 16, 14 }, { -3, -6, 1, 6, 12, 14 },
507 { -3, -6, 2, 6, 12, 14 }, { -3, -6, 1, 6, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -3, 1, 12, 6, 14 },
508 { -6, -3, 1, 12, 6, 14 }, { -6, -3, 1, 12, 6, 14 }, { -8, -8, 1, 16, 16, 14 }, { -3, -6, 1, 6, 12, 14 },
509 { -3, -6, 1, 6, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -3, 1, 12, 6, 7 }, { -8, -8, 1, 16, 16, 7 },
510 { -3, -6, 1, 6, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -3, 1, 12, 6, 7 }, { 0, 0, 1, 8, 8, 7 },
511 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
512 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
513 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
514 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
515 { 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
516 { 0, -6, -4, 10, 12, 7 }, { 0, -6, -4, 10, 12, 7 }, { 0, -6, -4, 10, 12, 7 }, { -6, -12, -4, 12, 10, 7 },
517 { -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 },
518 { -12, -6, -4, 10, 12, 7 }, { -12, -6, -4, 10, 12, 7 }, { -12, -6, -4, 10, 12, 7 }, { -6, 0, -4, 12, 10, 7 },
519 { -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 },
520 { -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
521 { -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
522 { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
523 { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
524 { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
525 { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
526 { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
527 { -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
528 { -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
529 { -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
530 { -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
531 { -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
532 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
533 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
534 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
535 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
536 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
537 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
538 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
539 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
540 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
541 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
542 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
543 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
544 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
545 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
546 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
547 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
548 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
549 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
550 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
551 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
552 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
553 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
554 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
555 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
556 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
557 },
558 {
559 // 0x00990CFC:
560 { -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
561 { -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
562 { -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
563 { -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
564 { -11, -6, 1, 22, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
565 { -6, -11, 3, 12, 22, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
566 { -11, -6, 3, 22, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
567 { -6, -11, 1, 12, 22, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
568 { -12, -6, 1, 24, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -12, 1, 12, 24, 14 }, { -8, -8, 1, 16, 16, 14 },
569 { -18, -6, 1, 24, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 24, 14 }, { 0, 0, 1, 8, 8, 14 },
570 { -12, -6, 5, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
571 { -6, -12, 5, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
572 { -18, -6, 5, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
573 { -6, -14, 5, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
574 { 0, -6, -10, 14, 12, 24 }, { -6, -17, -10, 3, 14, 24 }, { -17, -6, -10, 14, 5, 24 }, { -6, 0, -10, 12, 14, 24 },
575 { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 },
576 { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 },
577 { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 },
578 { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 },
579 { -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
580 { -14, -6, 1, 28, 12, 14 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, 1, 12, 28, 14 },
581 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
582 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
583 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
584 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
585 { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
586 { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
587 { -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
588 { -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
589 { -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
590 { -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
591 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
592 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
593 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
594 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
595 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
596 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
597 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
598 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
599 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
600 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
601 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
602 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
603 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
604 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
605 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
606 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
607 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
608 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
609 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
610 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
611 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
612 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
613 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
614 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
615 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
616 },
617 {
618 // 0x0098FA6C:
619 { -18, -6, 1, 36, 12, 11 }, { -17, -6, 1, 34, 12, 11 }, { -15, -15, 1, 30, 30, 11 }, { -6, -17, 1, 12, 34, 11 },
620 { -6, -18, 1, 12, 36, 11 }, { -6, -17, 1, 12, 34, 11 }, { -15, -15, 1, 30, 30, 11 }, { -17, -6, 1, 34, 12, 11 },
621 { -18, -6, 1, 36, 12, 11 }, { -17, -6, 1, 34, 12, 11 }, { -15, -15, 1, 30, 30, 11 }, { -6, -17, 1, 12, 34, 11 },
622 { -6, -18, 1, 12, 36, 11 }, { -6, -17, 1, 12, 34, 11 }, { -15, -15, 1, 30, 30, 11 }, { -17, -6, 1, 34, 12, 11 },
623 { -14, -6, 1, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
624 { -6, -14, 3, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
625 { -14, -6, 3, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
626 { -6, -14, 1, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
627 { -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
628 { -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
629 { -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
630 { -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
631 { -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
632 { -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
633 { 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
634 { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
635 { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
636 { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
637 { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
638 { -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
639 { -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
640 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
641 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
642 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
643 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
644 { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
645 { -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
646 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
647 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
648 { -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
649 { -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
650 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
651 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
652 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
653 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
654 { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
655 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
656 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
657 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
658 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
659 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
660 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
661 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
662 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
663 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
664 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
665 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
666 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
667 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
668 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
669 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
670 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
671 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
672 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
673 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
674 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
675 },
676 {
677 // 0x0099177C:
678 { -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
679 { -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
680 { -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
681 { -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
682 { -13, -6, 1, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
683 { -6, -13, 3, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
684 { -13, -6, 3, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
685 { -6, -13, 1, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
686 { -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
687 { -18, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
688 { -14, -6, 5, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
689 { -6, -14, 5, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
690 { -18, -6, 5, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
691 { -6, -14, 5, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
692 { -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
693 { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 },
694 { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 },
695 { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 },
696 { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 },
697 { -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
698 { -14, -6, 1, 28, 12, 14 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, 1, 12, 28, 14 },
699 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
700 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
701 { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
702 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
703 { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
704 { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
705 { -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
706 { -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
707 { -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
708 { -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
709 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
710 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
711 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
712 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
713 { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
714 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
715 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
716 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
717 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
718 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
719 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
720 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
721 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
722 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
723 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
724 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
725 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
726 { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
727 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
728 { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
729 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
730 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
731 { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
732 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
733 { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
734 },
735 {
736 // 0x009900FC:
737 { -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
738 { -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
739 { -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
740 { -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
741 { -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
742 { -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
743 { -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
744 { -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
745 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
746 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
747 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
748 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
749 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
750 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
751 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
752 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
753 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
754 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
755 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
756 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
757 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
758 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
759 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
760 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
761 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
762 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
763 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
764 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
765 { -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
766 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
767 { -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
768 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
769 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
770 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
771 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
772 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
773 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
774 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
775 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
776 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
777 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
778 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
779 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
780 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
781 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
782 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
783 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
784 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
785 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
786 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
787 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
788 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
789 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
790 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
791 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
792 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
793 },
794 {
795 // 0x009901BC:
796 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
797 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
798 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
799 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
800 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
801 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
802 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
803 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
804 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
805 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
806 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
807 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
808 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
809 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
810 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
811 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
812 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
813 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
814 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
815 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
816 { -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
817 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
818 { -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
819 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
820 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
821 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
822 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
823 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
824 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
825 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
826 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
827 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
828 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
829 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
830 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
831 { -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
832 { -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
833 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
834 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
835 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
836 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
837 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
838 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
839 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
840 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
841 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
842 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
843 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
844 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
845 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
846 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
847 { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
848 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
849 { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
850 { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
851 { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
852 },
853 {
854 // 0x0098FFAC:
855 { -3, -6, -1, 6, 12, 1 }, { -3, -5, -1, 6, 10, 1 }, { -5, -5, -1, 10, 10, 1 }, { -5, -3, -1, 10, 6, 1 },
856 { -6, -3, -1, 12, 6, 1 }, { -5, -3, -1, 10, 6, 1 }, { -5, -5, -1, 10, 10, 1 }, { -3, -5, -1, 6, 10, 1 },
857 { -3, -6, -1, 6, 12, 1 }, { -3, -5, -1, 6, 10, 1 }, { -5, -5, -1, 10, 10, 1 }, { -5, -3, -1, 10, 6, 1 },
858 { -6, -3, -1, 12, 6, 1 }, { -5, -3, -1, 10, 6, 1 }, { -5, -5, -1, 10, 10, 1 }, { -3, -5, -1, 6, 10, 1 },
859 { -3, -6, -8, 6, 12, 1 }, { -3, -6, -1, 6, 12, 1 }, { -8, -8, -1, 16, 16, 1 }, { -6, -3, -1, 12, 6, 1 },
860 { -6, -3, 0, 12, 6, 1 }, { -6, -3, -1, 12, 6, 1 }, { -8, -8, -1, 16, 16, 1 }, { -3, -6, -1, 6, 12, 1 },
861 { -3, -6, 0, 6, 12, 1 }, { -3, -6, -1, 6, 12, 1 }, { -8, -8, -1, 16, 16, 1 }, { -6, -3, -1, 12, 6, 1 },
862 { -6, -3, -8, 12, 6, 1 }, { -6, -3, -1, 12, 6, 1 }, { -8, -8, -1, 16, 16, 1 }, { -3, -6, -1, 6, 12, 1 },
863 { -3, -6, -10, 6, 12, 1 }, { -8, -8, -2, 16, 16, 1 }, { -6, -3, -2, 12, 6, 1 }, { -8, -8, -2, 16, 16, 1 },
864 { -3, -6, -2, 6, 12, 1 }, { -8, -8, -2, 16, 16, 1 }, { -6, -3, -10, 12, 6, 1 }, { 0, 0, -2, 8, 8, 1 },
865 { -3, -6, -12, 6, 12, 1 }, { -8, -6, -6, 16, 12, 1 }, { -8, -8, -6, 16, 16, 1 }, { -6, -8, -6, 12, 16, 1 },
866 { -6, -3, -2, 12, 6, 1 }, { -6, -8, -6, 12, 16, 1 }, { -8, -8, -6, 16, 16, 1 }, { -8, -6, -6, 16, 12, 1 },
867 { -3, -6, -2, 6, 12, 1 }, { -8, -6, -6, 16, 12, 1 }, { -8, -8, -6, 16, 16, 1 }, { -6, -8, -6, 12, 16, 1 },
868 { -6, -3, -12, 12, 6, 1 }, { -6, -8, -6, 12, 16, 1 }, { -8, -8, -6, 16, 16, 1 }, { -8, -6, -6, 16, 12, 1 },
869 { -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
870 { -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
871 { -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
872 { -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
873 { -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
874 { -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
875 { -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
876 { -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
877 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
878 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
879 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
880 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
881 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
882 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
883 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
884 { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
885 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
886 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
887 { -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
888 { -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
889 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
890 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
891 { -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
892 { -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
893 { -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
894 { -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
895 { -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
896 { -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
897 { -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
898 { -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
899 { -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
900 { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
901 { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
902 { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
903 { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
904 { -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
905 { -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
906 { -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
907 { -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
908 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
909 { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
910 { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
911 },
912 {
913 // 0x0099273C:
914 { -6, -6, 0, 12, 12, 31 },
915 { -6, -6, 0, 12, 12, 31 },
916 { -6, -6, 0, 12, 12, 31 },
917 { -6, -6, 0, 12, 12, 31 },
918 { -6, -6, 0, 12, 12, 31 },
919 { -6, -6, 0, 12, 12, 31 },
920 { -6, -6, 0, 12, 12, 31 },
921 { -6, -6, 0, 12, 12, 31 },
922 { -6, -6, 0, 12, 12, 31 },
923 { -6, -6, 0, 12, 12, 31 },
924 { -6, -6, 0, 12, 12, 31 },
925 { -6, -6, 0, 12, 12, 31 },
926 { -6, -6, 0, 12, 12, 31 },
927 { -6, -6, 0, 12, 12, 31 },
928 { -6, -6, 0, 12, 12, 31 },
929 { -6, -6, 0, 12, 12, 31 },
930 }
931 };
932
933 // 6D5214
vehicle_sprite_paint(paint_session * session,const Vehicle * vehicle,int32_t ebx,int32_t ecx,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)934 static void vehicle_sprite_paint(
935 paint_session* session, const Vehicle* vehicle, int32_t ebx, int32_t ecx, int32_t z,
936 const rct_ride_entry_vehicle* vehicleEntry)
937 {
938 int32_t baseImage_id = ebx;
939 if (vehicleEntry->draw_order >= std::size(VehicleBoundboxes))
940 {
941 return;
942 }
943 vehicle_boundbox bb = VehicleBoundboxes[vehicleEntry->draw_order][ecx];
944
945 if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
946 {
947 baseImage_id += (vehicle->spin_sprite / 8) & 31;
948 }
949 if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_VEHICLE_ANIMATION)
950 {
951 baseImage_id += vehicle->animation_frame;
952 }
953 int32_t image_id = baseImage_id | (vehicle->colours.body_colour << 19) | (vehicle->colours.trim_colour << 24)
954 | IMAGE_TYPE_REMAP_2_PLUS;
955
956 if (vehicle->IsGhost())
957 {
958 image_id &= 0x7FFFF;
959 image_id |= CONSTRUCTION_MARKER;
960 }
961 paint_struct* ps = PaintAddImageAsParent(
962 session, image_id, { 0, 0, z }, { bb.length_x, bb.length_y, bb.length_z },
963 { bb.offset_x, bb.offset_y, bb.offset_z + z });
964 if (ps != nullptr)
965 {
966 ps->tertiary_colour = vehicle->colours_extended;
967 }
968 rct_drawpixelinfo* dpi = &session->DPI;
969 if (dpi->zoom_level < 2 && vehicle->num_peeps > 0 && vehicleEntry->no_seating_rows > 0)
970 {
971 baseImage_id += vehicleEntry->no_vehicle_images;
972 for (int32_t i = 0; i < 8; i++)
973 {
974 if (vehicle->num_peeps > (i * 2) && vehicleEntry->no_seating_rows > i)
975 {
976 image_id = baseImage_id
977 | SPRITE_ID_PALETTE_COLOUR_2(
978 vehicle->peep_tshirt_colours[i * 2], vehicle->peep_tshirt_colours[(i * 2) + 1]);
979 if (i == 0 && vehicleEntry->flags & VEHICLE_ENTRY_FLAG_RIDER_ANIMATION)
980 {
981 image_id += (vehicleEntry->no_vehicle_images * vehicle->animation_frame);
982 }
983
984 if (vehicle->IsGhost())
985 {
986 image_id &= 0x7FFFF;
987 image_id |= CONSTRUCTION_MARKER;
988 }
989
990 PaintAddImageAsChild(
991 session, image_id, 0, 0, bb.length_x, bb.length_y, bb.length_z, z, bb.offset_x, bb.offset_y,
992 bb.offset_z + z);
993 baseImage_id += vehicleEntry->no_vehicle_images;
994 }
995 }
996 }
997 vehicle_visual_splash_effect(session, z, vehicle, vehicleEntry);
998 }
999
1000 // 6D520E
vehicle_sprite_paint_6D520E(paint_session * session,const Vehicle * vehicle,int32_t ebx,int32_t ecx,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1001 static void vehicle_sprite_paint_6D520E(
1002 paint_session* session, const Vehicle* vehicle, int32_t ebx, int32_t ecx, int32_t z,
1003 const rct_ride_entry_vehicle* vehicleEntry)
1004 {
1005 vehicle_sprite_paint(session, vehicle, ebx + vehicle->SwingSprite, ecx, z, vehicleEntry);
1006 }
1007
1008 // 6D51EB
vehicle_sprite_paint_6D51EB(paint_session * session,const Vehicle * vehicle,int32_t ebx,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1009 static void vehicle_sprite_paint_6D51EB(
1010 paint_session* session, const Vehicle* vehicle, int32_t ebx, int32_t z, const rct_ride_entry_vehicle* vehicleEntry)
1011 {
1012 int32_t ecx = ebx / 2;
1013 if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_USE_16_ROTATION_FRAMES)
1014 {
1015 ebx = ebx / 2;
1016 }
1017 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_USE_4_ROTATION_FRAMES)
1018 {
1019 ebx = ebx / 8;
1020 }
1021 ebx = (ebx * vehicleEntry->base_num_frames) + vehicle->SwingSprite + vehicleEntry->base_image_id;
1022 vehicle_sprite_paint(session, vehicle, ebx, ecx, z, vehicleEntry);
1023 }
1024
1025 // 6D51DE
vehicle_sprite_paint_6D51DE(paint_session * session,const Vehicle * vehicle,int32_t ebx,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1026 static void vehicle_sprite_paint_6D51DE(
1027 paint_session* session, const Vehicle* vehicle, int32_t ebx, int32_t z, const rct_ride_entry_vehicle* vehicleEntry)
1028 {
1029 if (vehicle->restraints_position < 64)
1030 {
1031 vehicle_sprite_paint_6D51EB(session, vehicle, ebx, z, vehicleEntry);
1032 return;
1033 }
1034 if (!(vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION))
1035 {
1036 vehicle_sprite_paint_6D51EB(session, vehicle, ebx, z, vehicleEntry);
1037 return;
1038 }
1039 if (ebx & 7)
1040 {
1041 vehicle_sprite_paint_6D51EB(session, vehicle, ebx, z, vehicleEntry);
1042 return;
1043 }
1044 int32_t ecx = ebx / 2;
1045 ebx = ebx / 8;
1046 ebx += ((vehicle->restraints_position - 64) / 64) * 4;
1047 ebx *= vehicleEntry->base_num_frames;
1048 ebx += vehicleEntry->restraint_image_id;
1049 vehicle_sprite_paint(session, vehicle, ebx, ecx, z, vehicleEntry);
1050 }
1051
1052 // 6D51DE
vehicle_sprite_0_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1053 static void vehicle_sprite_0_0(
1054 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1055 const rct_ride_entry_vehicle* vehicleEntry)
1056 {
1057 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1058 }
1059
1060 // 6D4EE7
vehicle_sprite_0_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1061 static void vehicle_sprite_0_1(
1062 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1063 const rct_ride_entry_vehicle* vehicleEntry)
1064 {
1065 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1066 {
1067 int32_t ecx = imageDirection / 2;
1068 int32_t ebx = ((imageDirection / 4) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1069 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1070 }
1071 else
1072 {
1073 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1074 }
1075 }
1076
1077 // 6D4F34
vehicle_sprite_0_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1078 static void vehicle_sprite_0_2(
1079 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1080 const rct_ride_entry_vehicle* vehicleEntry)
1081 {
1082 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1083 {
1084 int32_t ecx = (imageDirection / 2) + 108;
1085 int32_t ebx = ((imageDirection + 16) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1086 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1087 }
1088 else
1089 {
1090 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1091 }
1092 }
1093
1094 // 6D4F0C
vehicle_sprite_0_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1095 static void vehicle_sprite_0_3(
1096 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1097 const rct_ride_entry_vehicle* vehicleEntry)
1098 {
1099 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1100 {
1101 int32_t ecx = imageDirection / 2;
1102 int32_t ebx = (((imageDirection / 4) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1103 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1104 }
1105 else
1106 {
1107 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1108 }
1109 }
1110
1111 // 6D4F5C
vehicle_sprite_0_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1112 static void vehicle_sprite_0_4(
1113 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1114 const rct_ride_entry_vehicle* vehicleEntry)
1115 {
1116 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1117 {
1118 int32_t ecx = ((imageDirection / 2) ^ 8) + 108;
1119 int32_t ebx = ((imageDirection + 48) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1120 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1121 }
1122 else
1123 {
1124 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1125 }
1126 }
1127
1128 // 6D4F84
vehicle_sprite_0_5(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1129 static void vehicle_sprite_0_5(
1130 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1131 const rct_ride_entry_vehicle* vehicleEntry)
1132 {
1133 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1134 {
1135 vehicleEntry--;
1136 }
1137 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1138 {
1139 int32_t ecx = (imageDirection / 8) + 124;
1140 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1141 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1142 }
1143 else
1144 {
1145 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1146 }
1147 }
1148
1149 // 6D4FE4
vehicle_sprite_0_6(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1150 static void vehicle_sprite_0_6(
1151 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1152 const rct_ride_entry_vehicle* vehicleEntry)
1153 {
1154 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1155 {
1156 vehicleEntry--;
1157 }
1158 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1159 {
1160 int32_t ecx = (imageDirection / 8) + 128;
1161 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1162 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1163 }
1164 else
1165 {
1166 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1167 }
1168 }
1169
1170 // 6D5055
vehicle_sprite_0_7(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1171 static void vehicle_sprite_0_7(
1172 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1173 const rct_ride_entry_vehicle* vehicleEntry)
1174 {
1175 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1176 {
1177 vehicleEntry--;
1178 }
1179 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1180 {
1181 int32_t ecx = (imageDirection / 8) + 132;
1182 int32_t ebx = (((imageDirection / 8) + 16) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1183 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1184 }
1185 else
1186 {
1187 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1188 }
1189 }
1190
1191 // 6D50C6
vehicle_sprite_0_8(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1192 static void vehicle_sprite_0_8(
1193 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1194 const rct_ride_entry_vehicle* vehicleEntry)
1195 {
1196 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1197 {
1198 vehicleEntry--;
1199 }
1200 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1201 {
1202 int32_t ecx = (imageDirection / 8) + 136;
1203 int32_t ebx = (((imageDirection / 8) + 24) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1204 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1205 }
1206 else
1207 {
1208 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1209 }
1210 }
1211
1212 // 6D5137
vehicle_sprite_0_9(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1213 static void vehicle_sprite_0_9(
1214 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1215 const rct_ride_entry_vehicle* vehicleEntry)
1216 {
1217 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1218 {
1219 vehicleEntry--;
1220 }
1221 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1222 {
1223 int32_t ecx = (imageDirection / 8) + 140;
1224 int32_t ebx = (((imageDirection / 8) + 32) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1225 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1226 }
1227 else
1228 {
1229 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1230 }
1231 }
1232
1233 // 6D4FB1
vehicle_sprite_0_10(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1234 static void vehicle_sprite_0_10(
1235 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1236 const rct_ride_entry_vehicle* vehicleEntry)
1237 {
1238 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1239 {
1240 vehicleEntry--;
1241 }
1242 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1243 {
1244 int32_t ecx = ((imageDirection / 8) ^ 2) + 124;
1245 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1246 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1247 }
1248 else
1249 {
1250 vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
1251 }
1252 }
1253
1254 // 6D501B
vehicle_sprite_0_11(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1255 static void vehicle_sprite_0_11(
1256 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1257 const rct_ride_entry_vehicle* vehicleEntry)
1258 {
1259 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1260 {
1261 vehicleEntry--;
1262 }
1263 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1264 {
1265 int32_t ecx = ((imageDirection / 8) ^ 2) + 128;
1266 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1267 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1268 }
1269 else
1270 {
1271 vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
1272 }
1273 }
1274
1275 // 6D508C
vehicle_sprite_0_12(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1276 static void vehicle_sprite_0_12(
1277 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1278 const rct_ride_entry_vehicle* vehicleEntry)
1279 {
1280 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1281 {
1282 vehicleEntry--;
1283 }
1284 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1285 {
1286 int32_t ecx = ((imageDirection / 8) ^ 2) + 132;
1287 int32_t ebx = (((imageDirection / 8) + 20) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1288 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1289 }
1290 else
1291 {
1292 vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
1293 }
1294 }
1295
1296 // 6D50FD
vehicle_sprite_0_13(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1297 static void vehicle_sprite_0_13(
1298 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1299 const rct_ride_entry_vehicle* vehicleEntry)
1300 {
1301 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1302 {
1303 vehicleEntry--;
1304 }
1305 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1306 {
1307 int32_t ecx = ((imageDirection / 8) ^ 2) + 136;
1308 int32_t ebx = (((imageDirection / 8) + 28) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1309 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1310 }
1311 else
1312 {
1313 vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
1314 }
1315 }
1316
1317 // 6D516E
vehicle_sprite_0_14(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1318 static void vehicle_sprite_0_14(
1319 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1320 const rct_ride_entry_vehicle* vehicleEntry)
1321 {
1322 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
1323 {
1324 vehicleEntry--;
1325 }
1326 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
1327 {
1328 int32_t ecx = ((imageDirection / 8) ^ 2) + 140;
1329 int32_t ebx = (((imageDirection / 8) + 36) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
1330 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1331 }
1332 else
1333 {
1334 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1335 }
1336 }
1337
1338 // 6D4EE4
vehicle_sprite_0_16(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1339 static void vehicle_sprite_0_16(
1340 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1341 const rct_ride_entry_vehicle* vehicleEntry)
1342 {
1343 vehicleEntry--;
1344 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1345 {
1346 int32_t ecx = imageDirection / 2;
1347 int32_t ebx = ((imageDirection / 4) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1348 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1349 }
1350 else
1351 {
1352 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1353 }
1354 }
1355
1356 // 6D4F31
vehicle_sprite_0_17(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1357 static void vehicle_sprite_0_17(
1358 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1359 const rct_ride_entry_vehicle* vehicleEntry)
1360 {
1361 vehicleEntry--;
1362 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1363 {
1364 int32_t ecx = (imageDirection / 2) + 108;
1365 int32_t ebx = ((imageDirection + 16) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1366 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1367 }
1368 else
1369 {
1370 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1371 }
1372 }
1373
1374 // 6D4F09
vehicle_sprite_0_18(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1375 static void vehicle_sprite_0_18(
1376 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1377 const rct_ride_entry_vehicle* vehicleEntry)
1378 {
1379 vehicleEntry--;
1380 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1381 {
1382 int32_t ecx = imageDirection / 2;
1383 int32_t ebx = (((imageDirection / 4) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1384 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1385 }
1386 else
1387 {
1388 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1389 }
1390 }
1391
1392 // 6D4F59
vehicle_sprite_0_19(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1393 static void vehicle_sprite_0_19(
1394 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1395 const rct_ride_entry_vehicle* vehicleEntry)
1396 {
1397 vehicleEntry--;
1398 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
1399 {
1400 int32_t ecx = ((imageDirection / 2) ^ 8) + 108;
1401 int32_t ebx = ((imageDirection + 48) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
1402 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1403 }
1404 else
1405 {
1406 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
1407 }
1408 }
1409
1410 // 6D51D7
vehicle_sprite_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1411 static void vehicle_sprite_0(
1412 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1413 const rct_ride_entry_vehicle* vehicleEntry)
1414 {
1415 // 0x009A3DE4:
1416 switch (vehicle->bank_rotation)
1417 {
1418 case 0:
1419 vehicle_sprite_0_0(session, vehicle, imageDirection, z, vehicleEntry);
1420 break;
1421 case 1:
1422 vehicle_sprite_0_1(session, vehicle, imageDirection, z, vehicleEntry);
1423 break;
1424 case 2:
1425 vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
1426 break;
1427 case 3:
1428 vehicle_sprite_0_3(session, vehicle, imageDirection, z, vehicleEntry);
1429 break;
1430 case 4:
1431 vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
1432 break;
1433 case 5:
1434 vehicle_sprite_0_5(session, vehicle, imageDirection, z, vehicleEntry);
1435 break;
1436 case 6:
1437 vehicle_sprite_0_6(session, vehicle, imageDirection, z, vehicleEntry);
1438 break;
1439 case 7:
1440 vehicle_sprite_0_7(session, vehicle, imageDirection, z, vehicleEntry);
1441 break;
1442 case 8:
1443 vehicle_sprite_0_8(session, vehicle, imageDirection, z, vehicleEntry);
1444 break;
1445 case 9:
1446 vehicle_sprite_0_9(session, vehicle, imageDirection, z, vehicleEntry);
1447 break;
1448 case 10:
1449 vehicle_sprite_0_10(session, vehicle, imageDirection, z, vehicleEntry);
1450 break;
1451 case 11:
1452 vehicle_sprite_0_11(session, vehicle, imageDirection, z, vehicleEntry);
1453 break;
1454 case 12:
1455 vehicle_sprite_0_12(session, vehicle, imageDirection, z, vehicleEntry);
1456 break;
1457 case 13:
1458 vehicle_sprite_0_13(session, vehicle, imageDirection, z, vehicleEntry);
1459 break;
1460 case 14:
1461 vehicle_sprite_0_14(session, vehicle, imageDirection, z, vehicleEntry);
1462 break;
1463 case 15:
1464 vehicle_sprite_0_0(session, vehicle, imageDirection, z, vehicleEntry);
1465 break;
1466 case 16:
1467 vehicle_sprite_0_16(session, vehicle, imageDirection, z, vehicleEntry);
1468 break;
1469 case 17:
1470 vehicle_sprite_0_17(session, vehicle, imageDirection, z, vehicleEntry);
1471 break;
1472 case 18:
1473 vehicle_sprite_0_18(session, vehicle, imageDirection, z, vehicleEntry);
1474 break;
1475 case 19:
1476 vehicle_sprite_0_19(session, vehicle, imageDirection, z, vehicleEntry);
1477 break;
1478 }
1479 }
1480
1481 // 6D4614
vehicle_sprite_1_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1482 static void vehicle_sprite_1_0(
1483 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1484 const rct_ride_entry_vehicle* vehicleEntry)
1485 {
1486 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
1487 {
1488 int32_t ecx = imageDirection / 2;
1489 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
1490 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1491 }
1492 else
1493 {
1494 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
1495 }
1496 }
1497
1498 // 6D4662
vehicle_sprite_1_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1499 static void vehicle_sprite_1_1(
1500 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1501 const rct_ride_entry_vehicle* vehicleEntry)
1502 {
1503 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
1504 {
1505 int32_t ecx = imageDirection / 2;
1506 int32_t ebx = (imageDirection * vehicleEntry->base_num_frames) + vehicleEntry->flat_to_gentle_bank_image_id;
1507 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1508 }
1509 else
1510 {
1511 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1512 }
1513 }
1514
1515 // 6D46DB
vehicle_sprite_1_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1516 static void vehicle_sprite_1_2(
1517 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1518 const rct_ride_entry_vehicle* vehicleEntry)
1519 {
1520 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
1521 {
1522 int32_t ecx = imageDirection / 2;
1523 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->flat_bank_to_gentle_slope_image_id;
1524 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1525 }
1526 else
1527 {
1528 vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
1529 }
1530 }
1531
1532 // 6D467D
vehicle_sprite_1_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1533 static void vehicle_sprite_1_3(
1534 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1535 const rct_ride_entry_vehicle* vehicleEntry)
1536 {
1537 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
1538 {
1539 int32_t ecx = imageDirection / 2;
1540 int32_t ebx = ((imageDirection + 32) * vehicleEntry->base_num_frames) + vehicleEntry->flat_to_gentle_bank_image_id;
1541 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1542 }
1543 else
1544 {
1545 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1546 }
1547 }
1548
1549 // 6D46FD
vehicle_sprite_1_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1550 static void vehicle_sprite_1_4(
1551 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1552 const rct_ride_entry_vehicle* vehicleEntry)
1553 {
1554 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
1555 {
1556 int32_t ecx = imageDirection / 2;
1557 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames)
1558 + vehicleEntry->flat_bank_to_gentle_slope_image_id;
1559 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1560 }
1561 else
1562 {
1563 vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
1564 }
1565 }
1566
1567 // 6D460D
vehicle_sprite_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1568 static void vehicle_sprite_1(
1569 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1570 const rct_ride_entry_vehicle* vehicleEntry)
1571 {
1572 // 0x009A3C04:
1573 switch (vehicle->bank_rotation)
1574 {
1575 case 0:
1576 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1577 break;
1578 case 1:
1579 vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
1580 break;
1581 case 2:
1582 vehicle_sprite_1_2(session, vehicle, imageDirection, z, vehicleEntry);
1583 break;
1584 case 3:
1585 vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
1586 break;
1587 case 4:
1588 vehicle_sprite_1_4(session, vehicle, imageDirection, z, vehicleEntry);
1589 break;
1590 case 5:
1591 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1592 break;
1593 case 6:
1594 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1595 break;
1596 case 7:
1597 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1598 break;
1599 case 8:
1600 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1601 break;
1602 case 9:
1603 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1604 break;
1605 case 10:
1606 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1607 break;
1608 case 11:
1609 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1610 break;
1611 case 12:
1612 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1613 break;
1614 case 13:
1615 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1616 break;
1617 case 14:
1618 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1619 break;
1620 case 15:
1621 vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
1622 break;
1623 case 16:
1624 vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
1625 break;
1626 case 17:
1627 vehicle_sprite_1_2(session, vehicle, imageDirection, z, vehicleEntry);
1628 break;
1629 case 18:
1630 vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
1631 break;
1632 case 19:
1633 vehicle_sprite_1_4(session, vehicle, imageDirection, z, vehicleEntry);
1634 break;
1635 }
1636 }
1637
1638 // 6D4791
vehicle_sprite_2_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1639 static void vehicle_sprite_2_0(
1640 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1641 const rct_ride_entry_vehicle* vehicleEntry)
1642 {
1643 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
1644 {
1645 if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
1646 {
1647 int32_t ecx = (imageDirection / 2) + 16;
1648 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
1649 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1650 }
1651 else
1652 {
1653 int32_t ecx = (imageDirection / 2) + 16;
1654 int32_t ebx = ((imageDirection + 8) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
1655 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1656 }
1657 }
1658 else
1659 {
1660 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
1661 }
1662 }
1663
1664 // 6D4833
vehicle_sprite_2_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1665 static void vehicle_sprite_2_1(
1666 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1667 const rct_ride_entry_vehicle* vehicleEntry)
1668 {
1669 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
1670 {
1671 int32_t ecx = (imageDirection / 2) + 16;
1672 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_to_bank_image_id;
1673 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1674 }
1675 else
1676 {
1677 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1678 }
1679 }
1680
1681 // 6D48D6
vehicle_sprite_2_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1682 static void vehicle_sprite_2_2(
1683 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1684 const rct_ride_entry_vehicle* vehicleEntry)
1685 {
1686 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
1687 {
1688 int32_t ecx = imageDirection / 2;
1689 if (vehicleEntry->draw_order < 5)
1690 {
1691 ecx += 108;
1692 int32_t ebx = (imageDirection * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_bank_turn_image_id;
1693 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1694 }
1695 else
1696 {
1697 ecx += 16;
1698 int32_t ebx = (imageDirection * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_bank_turn_image_id;
1699 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1700 }
1701 }
1702 else
1703 {
1704 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1705 }
1706 }
1707
1708 // 6D4858
vehicle_sprite_2_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1709 static void vehicle_sprite_2_3(
1710 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1711 const rct_ride_entry_vehicle* vehicleEntry)
1712 {
1713 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
1714 {
1715 int32_t ecx = (imageDirection / 2) + 16;
1716 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames)
1717 + vehicleEntry->gentle_slope_to_bank_image_id;
1718 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1719 }
1720 else
1721 {
1722 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1723 }
1724 }
1725
1726 // 6D4910
vehicle_sprite_2_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1727 static void vehicle_sprite_2_4(
1728 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1729 const rct_ride_entry_vehicle* vehicleEntry)
1730 {
1731 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
1732 {
1733 int32_t ecx = imageDirection / 2;
1734 if (vehicleEntry->draw_order < 5)
1735 {
1736 ecx = (ecx ^ 8) + 108;
1737 int32_t ebx = ((imageDirection + 32) * vehicleEntry->base_num_frames)
1738 + vehicleEntry->gentle_slope_bank_turn_image_id;
1739 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1740 }
1741 else
1742 {
1743 ecx += 16;
1744 int32_t ebx = ((imageDirection + 32) * vehicleEntry->base_num_frames)
1745 + vehicleEntry->gentle_slope_bank_turn_image_id;
1746 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1747 }
1748 }
1749 else
1750 {
1751 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1752 }
1753 }
1754
1755 // 6D476C
vehicle_sprite_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1756 static void vehicle_sprite_2(
1757 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1758 const rct_ride_entry_vehicle* vehicleEntry)
1759 {
1760 // 0x009A3CA4:
1761 switch (vehicle->bank_rotation)
1762 {
1763 case 0:
1764 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1765 break;
1766 case 1:
1767 vehicle_sprite_2_1(session, vehicle, imageDirection, z, vehicleEntry);
1768 break;
1769 case 2:
1770 vehicle_sprite_2_2(session, vehicle, imageDirection, z, vehicleEntry);
1771 break;
1772 case 3:
1773 vehicle_sprite_2_3(session, vehicle, imageDirection, z, vehicleEntry);
1774 break;
1775 case 4:
1776 vehicle_sprite_2_4(session, vehicle, imageDirection, z, vehicleEntry);
1777 break;
1778 case 5:
1779 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1780 break;
1781 case 6:
1782 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1783 break;
1784 case 7:
1785 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1786 break;
1787 case 8:
1788 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1789 break;
1790 case 9:
1791 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1792 break;
1793 case 10:
1794 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1795 break;
1796 case 11:
1797 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1798 break;
1799 case 12:
1800 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1801 break;
1802 case 13:
1803 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1804 break;
1805 case 14:
1806 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1807 break;
1808 case 15:
1809 vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
1810 break;
1811 case 16:
1812 vehicle_sprite_2_1(session, vehicle, imageDirection, z, vehicleEntry);
1813 break;
1814 case 17:
1815 vehicle_sprite_2_2(session, vehicle, imageDirection, z, vehicleEntry);
1816 break;
1817 case 18:
1818 vehicle_sprite_2_3(session, vehicle, imageDirection, z, vehicleEntry);
1819 break;
1820 case 19:
1821 vehicle_sprite_2_4(session, vehicle, imageDirection, z, vehicleEntry);
1822 break;
1823 }
1824 }
1825
1826 // 6D49DC
vehicle_sprite_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1827 static void vehicle_sprite_3(
1828 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1829 const rct_ride_entry_vehicle* vehicleEntry)
1830 {
1831 if (!(vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES))
1832 {
1833 vehicle_sprite_2(session, vehicle, imageDirection, z, vehicleEntry);
1834 }
1835 else
1836 {
1837 int32_t ecx = (imageDirection / 4) + 32;
1838 int32_t ebx = ((imageDirection / 4) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
1839 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1840 }
1841 }
1842
1843 // 6D4A31
vehicle_sprite_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1844 static void vehicle_sprite_4(
1845 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1846 const rct_ride_entry_vehicle* vehicleEntry)
1847 {
1848 if (!(vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES))
1849 {
1850 vehicle_sprite_2(session, vehicle, imageDirection, z, vehicleEntry);
1851 }
1852 else
1853 {
1854 int32_t ecx = (imageDirection / 2) + 40;
1855 int32_t ebx = ((imageDirection + 16) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
1856 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1857 }
1858 }
1859
1860 // 6D463D
vehicle_sprite_5_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1861 static void vehicle_sprite_5_0(
1862 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1863 const rct_ride_entry_vehicle* vehicleEntry)
1864 {
1865 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
1866 {
1867 int32_t ecx = imageDirection / 2;
1868 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
1869 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1870 }
1871 else
1872 {
1873 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
1874 }
1875 }
1876
1877 // 6D469B
vehicle_sprite_5_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1878 static void vehicle_sprite_5_1(
1879 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1880 const rct_ride_entry_vehicle* vehicleEntry)
1881 {
1882 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
1883 {
1884 int32_t ecx = imageDirection / 2;
1885 int32_t ebx = ((imageDirection + 64) * vehicleEntry->base_num_frames) + vehicleEntry->flat_to_gentle_bank_image_id;
1886 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1887 }
1888 else
1889 {
1890 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1891 }
1892 }
1893
1894 // 6D4722
vehicle_sprite_5_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1895 static void vehicle_sprite_5_2(
1896 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1897 const rct_ride_entry_vehicle* vehicleEntry)
1898 {
1899 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
1900 {
1901 int32_t ecx = imageDirection / 2;
1902 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames)
1903 + vehicleEntry->flat_bank_to_gentle_slope_image_id;
1904 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1905 }
1906 else
1907 {
1908 vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
1909 }
1910 }
1911
1912 // 6D46B9
vehicle_sprite_5_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1913 static void vehicle_sprite_5_3(
1914 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1915 const rct_ride_entry_vehicle* vehicleEntry)
1916 {
1917 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
1918 {
1919 int32_t ecx = imageDirection / 2;
1920 int32_t ebx = ((imageDirection + 96) * vehicleEntry->base_num_frames) + vehicleEntry->flat_to_gentle_bank_image_id;
1921 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1922 }
1923 else
1924 {
1925 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1926 }
1927 }
1928
1929 // 6D4747
vehicle_sprite_5_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1930 static void vehicle_sprite_5_4(
1931 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1932 const rct_ride_entry_vehicle* vehicleEntry)
1933 {
1934 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
1935 {
1936 int32_t ecx = imageDirection / 2;
1937 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames)
1938 + vehicleEntry->flat_bank_to_gentle_slope_image_id;
1939 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
1940 }
1941 else
1942 {
1943 vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
1944 }
1945 }
1946
1947 // 6D4636
vehicle_sprite_5(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)1948 static void vehicle_sprite_5(
1949 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
1950 const rct_ride_entry_vehicle* vehicleEntry)
1951 {
1952 // 0x009A3C54:
1953 switch (vehicle->bank_rotation)
1954 {
1955 case 0:
1956 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1957 break;
1958 case 1:
1959 vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
1960 break;
1961 case 2:
1962 vehicle_sprite_5_2(session, vehicle, imageDirection, z, vehicleEntry);
1963 break;
1964 case 3:
1965 vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
1966 break;
1967 case 4:
1968 vehicle_sprite_5_4(session, vehicle, imageDirection, z, vehicleEntry);
1969 break;
1970 case 5:
1971 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1972 break;
1973 case 6:
1974 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1975 break;
1976 case 7:
1977 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1978 break;
1979 case 8:
1980 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1981 break;
1982 case 9:
1983 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1984 break;
1985 case 10:
1986 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1987 break;
1988 case 11:
1989 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1990 break;
1991 case 12:
1992 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1993 break;
1994 case 13:
1995 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1996 break;
1997 case 14:
1998 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
1999 break;
2000 case 15:
2001 vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
2002 break;
2003 case 16:
2004 vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
2005 break;
2006 case 17:
2007 vehicle_sprite_5_2(session, vehicle, imageDirection, z, vehicleEntry);
2008 break;
2009 case 18:
2010 vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
2011 break;
2012 case 19:
2013 vehicle_sprite_5_4(session, vehicle, imageDirection, z, vehicleEntry);
2014 break;
2015 }
2016 }
2017
2018 // 6D47E4
vehicle_sprite_6_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2019 static void vehicle_sprite_6_0(
2020 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2021 const rct_ride_entry_vehicle* vehicleEntry)
2022 {
2023 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
2024 {
2025 if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
2026 {
2027 int32_t ecx = ((imageDirection / 2) ^ 8) + 16;
2028 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
2029 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2030 }
2031 else
2032 {
2033 int32_t ecx = ((imageDirection / 2) ^ 8) + 16;
2034 int32_t ebx = ((imageDirection + 40) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
2035 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2036 }
2037 }
2038 else
2039 {
2040 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2041 }
2042 }
2043
2044 // 6D4880
vehicle_sprite_6_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2045 static void vehicle_sprite_6_1(
2046 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2047 const rct_ride_entry_vehicle* vehicleEntry)
2048 {
2049 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
2050 {
2051 int32_t ecx = ((imageDirection / 2) ^ 8) + 16;
2052 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames)
2053 + vehicleEntry->gentle_slope_to_bank_image_id;
2054 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2055 }
2056 else
2057 {
2058 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2059 }
2060 }
2061
2062 // 6D4953
vehicle_sprite_6_2(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2063 static void vehicle_sprite_6_2(
2064 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2065 const rct_ride_entry_vehicle* vehicleEntry)
2066 {
2067 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
2068 {
2069 int32_t ecx = imageDirection / 2;
2070 if (vehicleEntry->draw_order < 5)
2071 {
2072 ecx += 108;
2073 int32_t ebx = ((imageDirection + 64) * vehicleEntry->base_num_frames)
2074 + vehicleEntry->gentle_slope_bank_turn_image_id;
2075 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2076 }
2077 else
2078 {
2079 ecx = (ecx ^ 8) + 16;
2080 int32_t ebx = ((imageDirection + 64) * vehicleEntry->base_num_frames)
2081 + vehicleEntry->gentle_slope_bank_turn_image_id;
2082 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2083 }
2084 }
2085 else
2086 {
2087 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2088 }
2089 }
2090
2091 // 6D48AB
vehicle_sprite_6_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2092 static void vehicle_sprite_6_3(
2093 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2094 const rct_ride_entry_vehicle* vehicleEntry)
2095 {
2096 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
2097 {
2098 int32_t ecx = ((imageDirection / 2) ^ 8) + 16;
2099 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames)
2100 + vehicleEntry->gentle_slope_to_bank_image_id;
2101 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2102 }
2103 else
2104 {
2105 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2106 }
2107 }
2108
2109 // 6D4996
vehicle_sprite_6_4(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2110 static void vehicle_sprite_6_4(
2111 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2112 const rct_ride_entry_vehicle* vehicleEntry)
2113 {
2114 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
2115 {
2116 int32_t ecx = imageDirection / 2;
2117 if (vehicleEntry->draw_order < 5)
2118 {
2119 ecx = (ecx ^ 8) + 108;
2120 int32_t ebx = ((imageDirection + 96) * vehicleEntry->base_num_frames)
2121 + vehicleEntry->gentle_slope_bank_turn_image_id;
2122 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2123 }
2124 else
2125 {
2126 ecx = (ecx ^ 8) + 16;
2127 int32_t ebx = ((imageDirection + 96) * vehicleEntry->base_num_frames)
2128 + vehicleEntry->gentle_slope_bank_turn_image_id;
2129 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2130 }
2131 }
2132 else
2133 {
2134 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2135 }
2136 }
2137
2138 // 6D47DD
vehicle_sprite_6(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2139 static void vehicle_sprite_6(
2140 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2141 const rct_ride_entry_vehicle* vehicleEntry)
2142 {
2143 // 0x009A3CF4:
2144 switch (vehicle->bank_rotation)
2145 {
2146 case 0:
2147 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2148 break;
2149 case 1:
2150 vehicle_sprite_6_1(session, vehicle, imageDirection, z, vehicleEntry);
2151 break;
2152 case 2:
2153 vehicle_sprite_6_2(session, vehicle, imageDirection, z, vehicleEntry);
2154 break;
2155 case 3:
2156 vehicle_sprite_6_3(session, vehicle, imageDirection, z, vehicleEntry);
2157 break;
2158 case 4:
2159 vehicle_sprite_6_4(session, vehicle, imageDirection, z, vehicleEntry);
2160 break;
2161 case 5:
2162 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2163 break;
2164 case 6:
2165 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2166 break;
2167 case 7:
2168 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2169 break;
2170 case 8:
2171 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2172 break;
2173 case 9:
2174 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2175 break;
2176 case 10:
2177 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2178 break;
2179 case 11:
2180 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2181 break;
2182 case 12:
2183 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2184 break;
2185 case 13:
2186 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2187 break;
2188 case 14:
2189 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2190 break;
2191 case 15:
2192 vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
2193 break;
2194 case 16:
2195 vehicle_sprite_6_1(session, vehicle, imageDirection, z, vehicleEntry);
2196 break;
2197 case 17:
2198 vehicle_sprite_6_2(session, vehicle, imageDirection, z, vehicleEntry);
2199 break;
2200 case 18:
2201 vehicle_sprite_6_3(session, vehicle, imageDirection, z, vehicleEntry);
2202 break;
2203 case 19:
2204 vehicle_sprite_6_4(session, vehicle, imageDirection, z, vehicleEntry);
2205 break;
2206 }
2207 }
2208
2209 // 6D4A05
vehicle_sprite_7(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2210 static void vehicle_sprite_7(
2211 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2212 const rct_ride_entry_vehicle* vehicleEntry)
2213 {
2214 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
2215 {
2216 int32_t ecx = ((imageDirection / 4) ^ 4) + 32;
2217 int32_t ebx = (((imageDirection / 4) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
2218 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2219 }
2220 else
2221 {
2222 vehicle_sprite_6(session, vehicle, imageDirection, z, vehicleEntry);
2223 }
2224 }
2225
2226 // 6D4A59
vehicle_sprite_8(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2227 static void vehicle_sprite_8(
2228 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2229 const rct_ride_entry_vehicle* vehicleEntry)
2230 {
2231 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
2232 {
2233 int32_t ecx = ((imageDirection / 2) ^ 8) + 40;
2234 int32_t ebx = ((imageDirection + 48) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
2235 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2236 }
2237 else
2238 {
2239 vehicle_sprite_6(session, vehicle, imageDirection, z, vehicleEntry);
2240 }
2241 }
2242
2243 // 6D4A81
vehicle_sprite_9(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2244 static void vehicle_sprite_9(
2245 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2246 const rct_ride_entry_vehicle* vehicleEntry)
2247 {
2248 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2249 {
2250 int32_t ecx = (imageDirection / 8) + 56;
2251 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2252 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2253 }
2254 else
2255 {
2256 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2257 }
2258 }
2259
2260 // 6D4AE8
vehicle_sprite_10(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2261 static void vehicle_sprite_10(
2262 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2263 const rct_ride_entry_vehicle* vehicleEntry)
2264 {
2265 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2266 {
2267 int32_t ecx = (imageDirection / 2) + 60;
2268 int32_t ebx = ((imageDirection + 8) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2269 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2270 }
2271 else
2272 {
2273 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2274 }
2275 }
2276
2277 // 6D4B57
vehicle_sprite_11(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2278 static void vehicle_sprite_11(
2279 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2280 const rct_ride_entry_vehicle* vehicleEntry)
2281 {
2282 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2283 {
2284 int32_t ecx = (imageDirection / 8) + 76;
2285 int32_t ebx = (((imageDirection / 8) + 72) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2286 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2287 }
2288 else
2289 {
2290 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2291 }
2292 }
2293
2294 // 6D4BB7
vehicle_sprite_12(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2295 static void vehicle_sprite_12(
2296 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2297 const rct_ride_entry_vehicle* vehicleEntry)
2298 {
2299 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2300 {
2301 int32_t ecx = (imageDirection / 8) + 80;
2302 int32_t ebx = (((imageDirection / 8) + 80) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2303 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2304 }
2305 else
2306 {
2307 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2308 }
2309 }
2310
2311 // 6D4C17
vehicle_sprite_13(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2312 static void vehicle_sprite_13(
2313 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2314 const rct_ride_entry_vehicle* vehicleEntry)
2315 {
2316 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2317 {
2318 int32_t ecx = (imageDirection / 8) + 84;
2319 int32_t ebx = (((imageDirection / 8) + 88) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2320 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2321 }
2322 else
2323 {
2324 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2325 }
2326 }
2327
2328 // 6D4C77
vehicle_sprite_14(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2329 static void vehicle_sprite_14(
2330 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2331 const rct_ride_entry_vehicle* vehicleEntry)
2332 {
2333 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2334 {
2335 int32_t ecx = (imageDirection / 8) + 88;
2336 int32_t ebx = (((imageDirection / 8) + 96) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2337 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2338 }
2339 else
2340 {
2341 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2342 }
2343 }
2344
2345 // 6D4CD7
vehicle_sprite_15(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2346 static void vehicle_sprite_15(
2347 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2348 const rct_ride_entry_vehicle* vehicleEntry)
2349 {
2350 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2351 {
2352 int32_t ecx = (imageDirection / 8) + 92;
2353 int32_t ebx = (((imageDirection / 8) + 104) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2354 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2355 }
2356 else
2357 {
2358 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2359 }
2360 }
2361
2362 // 6D4D37
vehicle_sprite_16(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2363 static void vehicle_sprite_16(
2364 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2365 const rct_ride_entry_vehicle* vehicleEntry)
2366 {
2367 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2368 {
2369 int32_t ecx = (imageDirection / 8) + 96;
2370 int32_t ebx = (((imageDirection / 8) + 112) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2371 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2372 }
2373 else
2374 {
2375 vehicle_sprite_4(session, vehicle, imageDirection, z, vehicleEntry);
2376 }
2377 }
2378
2379 // 6D4AA3
vehicle_sprite_17(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2380 static void vehicle_sprite_17(
2381 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2382 const rct_ride_entry_vehicle* vehicleEntry)
2383 {
2384 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2385 {
2386 if (vehicle->GetTrackType() != TrackElemType::Down90ToDown60
2387 && (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
2388 {
2389 vehicleEntry--;
2390 }
2391 }
2392 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2393 {
2394 int32_t ecx = ((imageDirection / 8) ^ 2) + 56;
2395 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2396 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2397 }
2398 else
2399 {
2400 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2401 }
2402 }
2403
2404 // 6D4B0D
vehicle_sprite_18(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2405 static void vehicle_sprite_18(
2406 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2407 const rct_ride_entry_vehicle* vehicleEntry)
2408 {
2409 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2410 {
2411 if (vehicle->GetTrackType() != TrackElemType::Down90 && (vehicle->GetTrackType()) != TrackElemType::Down90ToDown60
2412 && (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
2413 {
2414 vehicleEntry--;
2415 }
2416 }
2417 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2418 {
2419 int32_t ecx = ((imageDirection / 2) ^ 8) + 60;
2420 int32_t ebx = ((imageDirection + 40) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2421 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2422 }
2423 else
2424 {
2425 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2426 }
2427 }
2428
2429 // 6D4B80
vehicle_sprite_19(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2430 static void vehicle_sprite_19(
2431 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2432 const rct_ride_entry_vehicle* vehicleEntry)
2433 {
2434 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2435 {
2436 vehicleEntry--;
2437 }
2438 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2439 {
2440 int32_t ecx = ((imageDirection / 8) ^ 2) + 76;
2441 int32_t ebx = (((imageDirection / 8) + 76) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2442 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2443 }
2444 else
2445 {
2446 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2447 }
2448 }
2449
2450 // 6D4BE0
vehicle_sprite_20(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2451 static void vehicle_sprite_20(
2452 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2453 const rct_ride_entry_vehicle* vehicleEntry)
2454 {
2455 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2456 {
2457 vehicleEntry--;
2458 }
2459 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2460 {
2461 int32_t ecx = ((imageDirection / 8) ^ 2) + 80;
2462 int32_t ebx = (((imageDirection / 8) + 84) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2463 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2464 }
2465 else
2466 {
2467 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2468 }
2469 }
2470
2471 // 6D4C40
vehicle_sprite_21(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2472 static void vehicle_sprite_21(
2473 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2474 const rct_ride_entry_vehicle* vehicleEntry)
2475 {
2476 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2477 {
2478 vehicleEntry--;
2479 }
2480 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2481 {
2482 int32_t ecx = ((imageDirection / 8) ^ 2) + 84;
2483 int32_t ebx = (((imageDirection / 8) + 92) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2484 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2485 }
2486 else
2487 {
2488 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2489 }
2490 }
2491
2492 // 6D4CA0
vehicle_sprite_22(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2493 static void vehicle_sprite_22(
2494 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2495 const rct_ride_entry_vehicle* vehicleEntry)
2496 {
2497 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2498 {
2499 vehicleEntry--;
2500 }
2501 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2502 {
2503 int32_t ecx = ((imageDirection / 8) ^ 2) + 88;
2504 int32_t ebx = (((imageDirection / 8) + 100) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2505 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2506 }
2507 else
2508 {
2509 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2510 }
2511 }
2512
2513 // 6D4D00
vehicle_sprite_23(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2514 static void vehicle_sprite_23(
2515 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2516 const rct_ride_entry_vehicle* vehicleEntry)
2517 {
2518 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2519 {
2520 vehicleEntry--;
2521 }
2522 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
2523 {
2524 int32_t ecx = ((imageDirection / 8) ^ 2) + 92;
2525 int32_t ebx = (((imageDirection / 8) + 108) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
2526 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2527 }
2528 else
2529 {
2530 vehicle_sprite_8(session, vehicle, imageDirection, z, vehicleEntry);
2531 }
2532 }
2533
2534 // 6D51A5
vehicle_sprite_24(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2535 static void vehicle_sprite_24(
2536 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2537 const rct_ride_entry_vehicle* vehicleEntry)
2538 {
2539 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
2540 {
2541 vehicleEntry--;
2542 }
2543 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_CORKSCREWS)
2544 {
2545 int32_t eax = ((vehicle->Pitch - 24) * 4);
2546 int32_t ecx = (imageDirection / 8) + eax + 144;
2547 int32_t ebx = (((imageDirection / 8) + eax) * vehicleEntry->base_num_frames) + vehicleEntry->corkscrew_image_id;
2548 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2549 }
2550 else
2551 {
2552 vehicle_sprite_paint_6D51DE(session, vehicle, imageDirection, z, vehicleEntry);
2553 }
2554 }
2555
2556 // 6D4D67
vehicle_sprite_50_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2557 static void vehicle_sprite_50_0(
2558 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2559 const rct_ride_entry_vehicle* vehicleEntry)
2560 {
2561 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2562 {
2563 int32_t ecx = imageDirection / 2;
2564 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2565 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2566 }
2567 else
2568 {
2569 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2570 }
2571 }
2572
2573 // 6D4DB5
vehicle_sprite_50_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2574 static void vehicle_sprite_50_1(
2575 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2576 const rct_ride_entry_vehicle* vehicleEntry)
2577 {
2578 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
2579 {
2580 int32_t ecx = imageDirection / 2;
2581 int32_t ebx = ((imageDirection / 8) * vehicleEntry->base_num_frames)
2582 + vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
2583 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2584 }
2585 else
2586 {
2587 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2588 }
2589 }
2590
2591 // 6D4DD3
vehicle_sprite_50_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2592 static void vehicle_sprite_50_3(
2593 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2594 const rct_ride_entry_vehicle* vehicleEntry)
2595 {
2596 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
2597 {
2598 int32_t ecx = imageDirection / 2;
2599 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames)
2600 + vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
2601 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2602 }
2603 else
2604 {
2605 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2606 }
2607 }
2608
2609 // 6D4D60
vehicle_sprite_50(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2610 static void vehicle_sprite_50(
2611 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2612 const rct_ride_entry_vehicle* vehicleEntry)
2613 {
2614 // 0x009A3D44:
2615 switch (vehicle->bank_rotation)
2616 {
2617 case 0:
2618 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2619 break;
2620 case 1:
2621 vehicle_sprite_50_1(session, vehicle, imageDirection, z, vehicleEntry);
2622 break;
2623 case 2:
2624 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2625 break;
2626 case 3:
2627 vehicle_sprite_50_3(session, vehicle, imageDirection, z, vehicleEntry);
2628 break;
2629 case 4:
2630 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2631 break;
2632 case 5:
2633 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2634 break;
2635 case 6:
2636 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2637 break;
2638 case 7:
2639 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2640 break;
2641 case 8:
2642 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2643 break;
2644 case 9:
2645 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2646 break;
2647 case 10:
2648 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2649 break;
2650 case 11:
2651 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2652 break;
2653 case 12:
2654 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2655 break;
2656 case 13:
2657 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2658 break;
2659 case 14:
2660 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2661 break;
2662 case 15:
2663 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2664 break;
2665 case 16:
2666 vehicle_sprite_50_1(session, vehicle, imageDirection, z, vehicleEntry);
2667 break;
2668 case 17:
2669 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2670 break;
2671 case 18:
2672 vehicle_sprite_50_3(session, vehicle, imageDirection, z, vehicleEntry);
2673 break;
2674 case 19:
2675 vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
2676 break;
2677 }
2678 }
2679
2680 // 6D4E3A
vehicle_sprite_51(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2681 static void vehicle_sprite_51(
2682 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2683 const rct_ride_entry_vehicle* vehicleEntry)
2684 {
2685 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2686 {
2687 int32_t ecx = (imageDirection / 8) + 100;
2688 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2689 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2690 }
2691 else
2692 {
2693 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2694 }
2695 }
2696
2697 // 6D4E8F
vehicle_sprite_52(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2698 static void vehicle_sprite_52(
2699 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2700 const rct_ride_entry_vehicle* vehicleEntry)
2701 {
2702 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2703 {
2704 int32_t ecx = (imageDirection / 8) + 104;
2705 int32_t ebx = (((imageDirection / 8) + 16) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2706 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2707 }
2708 else
2709 {
2710 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2711 }
2712 }
2713
2714 // 6D4D90
vehicle_sprite_53_0(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2715 static void vehicle_sprite_53_0(
2716 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2717 const rct_ride_entry_vehicle* vehicleEntry)
2718 {
2719 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2720 {
2721 int32_t ecx = imageDirection / 2;
2722 int32_t ebx = (((imageDirection / 8) + 4) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2723 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2724 }
2725 else
2726 {
2727 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2728 }
2729 }
2730
2731 // 6D4DF4
vehicle_sprite_53_1(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2732 static void vehicle_sprite_53_1(
2733 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2734 const rct_ride_entry_vehicle* vehicleEntry)
2735 {
2736 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
2737 {
2738 int32_t ecx = imageDirection / 2;
2739 int32_t ebx = (((imageDirection / 8) + 8) * vehicleEntry->base_num_frames)
2740 + vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
2741 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2742 }
2743 else
2744 {
2745 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2746 }
2747 }
2748
2749 // 6D4E15
vehicle_sprite_53_3(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2750 static void vehicle_sprite_53_3(
2751 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2752 const rct_ride_entry_vehicle* vehicleEntry)
2753 {
2754 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
2755 {
2756 int32_t ecx = imageDirection / 2;
2757 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames)
2758 + vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
2759 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2760 }
2761 else
2762 {
2763 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2764 }
2765 }
2766
2767 // 6D4D89
vehicle_sprite_53(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2768 static void vehicle_sprite_53(
2769 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2770 const rct_ride_entry_vehicle* vehicleEntry)
2771 {
2772 // 0x009A3D94:
2773 switch (vehicle->bank_rotation)
2774 {
2775 case 0:
2776 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2777 break;
2778 case 1:
2779 vehicle_sprite_53_1(session, vehicle, imageDirection, z, vehicleEntry);
2780 break;
2781 case 2:
2782 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2783 break;
2784 case 3:
2785 vehicle_sprite_53_3(session, vehicle, imageDirection, z, vehicleEntry);
2786 break;
2787 case 4:
2788 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2789 break;
2790 case 5:
2791 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2792 break;
2793 case 6:
2794 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2795 break;
2796 case 7:
2797 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2798 break;
2799 case 8:
2800 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2801 break;
2802 case 9:
2803 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2804 break;
2805 case 10:
2806 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2807 break;
2808 case 11:
2809 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2810 break;
2811 case 12:
2812 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2813 break;
2814 case 13:
2815 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2816 break;
2817 case 14:
2818 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2819 break;
2820 case 15:
2821 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2822 break;
2823 case 16:
2824 vehicle_sprite_53_1(session, vehicle, imageDirection, z, vehicleEntry);
2825 break;
2826 case 17:
2827 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2828 break;
2829 case 18:
2830 vehicle_sprite_53_3(session, vehicle, imageDirection, z, vehicleEntry);
2831 break;
2832 case 19:
2833 vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
2834 break;
2835 }
2836 }
2837
2838 // 6D4E63
vehicle_sprite_54(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2839 static void vehicle_sprite_54(
2840 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2841 const rct_ride_entry_vehicle* vehicleEntry)
2842 {
2843 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2844 {
2845 int32_t ecx = ((imageDirection / 8) ^ 2) + 100;
2846 int32_t ebx = (((imageDirection / 8) + 12) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2847 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2848 }
2849 else
2850 {
2851 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2852 }
2853 }
2854
2855 // 6D4EB8
vehicle_sprite_55(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2856 static void vehicle_sprite_55(
2857 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2858 const rct_ride_entry_vehicle* vehicleEntry)
2859 {
2860 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
2861 {
2862 int32_t ecx = ((imageDirection / 8) ^ 2) + 104;
2863 int32_t ebx = (((imageDirection / 8) + 20) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
2864 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2865 }
2866 else
2867 {
2868 vehicle_sprite_0(session, vehicle, imageDirection, z, vehicleEntry);
2869 }
2870 }
2871
2872 // 6D47DA
vehicle_sprite_56(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2873 static void vehicle_sprite_56(
2874 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2875 const rct_ride_entry_vehicle* vehicleEntry)
2876 {
2877 vehicleEntry--;
2878 vehicle_sprite_6(session, vehicle, imageDirection, z, vehicleEntry);
2879 }
2880
2881 // 6D4A02
vehicle_sprite_57(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2882 static void vehicle_sprite_57(
2883 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2884 const rct_ride_entry_vehicle* vehicleEntry)
2885 {
2886 vehicleEntry--;
2887 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
2888 {
2889 int32_t ecx = ((imageDirection / 4) ^ 4) + 32;
2890 int32_t ebx = (((imageDirection / 4) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
2891 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2892 }
2893 else
2894 {
2895 vehicle_sprite_6(session, vehicle, imageDirection, z, vehicleEntry);
2896 }
2897 }
2898
2899 // 6D4A56
vehicle_sprite_58(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2900 static void vehicle_sprite_58(
2901 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2902 const rct_ride_entry_vehicle* vehicleEntry)
2903 {
2904 vehicleEntry--;
2905 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
2906 {
2907 int32_t ecx = ((imageDirection / 2) ^ 8) + 40;
2908 int32_t ebx = ((imageDirection + 48) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
2909 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2910 }
2911 else
2912 {
2913 vehicle_sprite_6(session, vehicle, imageDirection, z, vehicleEntry);
2914 }
2915 }
2916
2917 // 6D4773
vehicle_sprite_59(paint_session * session,const Vehicle * vehicle,int32_t imageDirection,int32_t z,const rct_ride_entry_vehicle * vehicleEntry)2918 static void vehicle_sprite_59(
2919 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2920 const rct_ride_entry_vehicle* vehicleEntry)
2921 {
2922 if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_CURVED_LIFT_HILL)
2923 {
2924 int32_t ecx = (imageDirection / 2) + 16;
2925 int32_t ebx = (imageDirection * vehicleEntry->base_num_frames) + vehicleEntry->curved_lift_hill_image_id;
2926 vehicle_sprite_paint_6D520E(session, vehicle, ebx, ecx, z, vehicleEntry);
2927 }
2928 else
2929 {
2930 vehicle_sprite_2(session, vehicle, imageDirection, z, vehicleEntry);
2931 }
2932 }
2933
2934 // 0x009A3B14:
2935 using vehicle_sprite_func = void (*)(
2936 paint_session* session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
2937 const rct_ride_entry_vehicle* vehicleEntry);
2938
2939 // clang-format off
2940 static constexpr const vehicle_sprite_func vehicle_sprite_funcs[] = {
2941 vehicle_sprite_0,
2942 vehicle_sprite_1,
2943 vehicle_sprite_2,
2944 vehicle_sprite_3,
2945 vehicle_sprite_4,
2946 vehicle_sprite_5,
2947 vehicle_sprite_6,
2948 vehicle_sprite_7,
2949 vehicle_sprite_8,
2950 vehicle_sprite_9,
2951 vehicle_sprite_10,
2952 vehicle_sprite_11,
2953 vehicle_sprite_12,
2954 vehicle_sprite_13,
2955 vehicle_sprite_14,
2956 vehicle_sprite_15,
2957 vehicle_sprite_16,
2958 vehicle_sprite_17,
2959 vehicle_sprite_18,
2960 vehicle_sprite_19,
2961 vehicle_sprite_20,
2962 vehicle_sprite_21,
2963 vehicle_sprite_22,
2964 vehicle_sprite_23,
2965 vehicle_sprite_24,
2966 vehicle_sprite_24,
2967 vehicle_sprite_24,
2968 vehicle_sprite_24,
2969 vehicle_sprite_24,
2970 vehicle_sprite_24,
2971 vehicle_sprite_24,
2972 vehicle_sprite_24,
2973 vehicle_sprite_24,
2974 vehicle_sprite_24,
2975 vehicle_sprite_24,
2976 vehicle_sprite_24,
2977 vehicle_sprite_24,
2978 vehicle_sprite_24,
2979 vehicle_sprite_24,
2980 vehicle_sprite_24,
2981 vehicle_sprite_24,
2982 vehicle_sprite_24,
2983 vehicle_sprite_24,
2984 vehicle_sprite_24,
2985 vehicle_sprite_0,
2986 vehicle_sprite_0,
2987 vehicle_sprite_0,
2988 vehicle_sprite_0,
2989 vehicle_sprite_0,
2990 vehicle_sprite_0,
2991 vehicle_sprite_50,
2992 vehicle_sprite_51,
2993 vehicle_sprite_52,
2994 vehicle_sprite_53,
2995 vehicle_sprite_54,
2996 vehicle_sprite_55,
2997 vehicle_sprite_56,
2998 vehicle_sprite_57,
2999 vehicle_sprite_58,
3000 vehicle_sprite_59,
3001 };
3002 // clang-format on
3003
3004 /**
3005 *
3006 * rct2: 0x006D5600
3007 */
vehicle_visual_splash1_effect(paint_session * session,int32_t z,const Vehicle * vehicle)3008 static void vehicle_visual_splash1_effect(paint_session* session, int32_t z, const Vehicle* vehicle)
3009 {
3010 if (vehicle->GetTrackType() != TrackElemType::Watersplash)
3011 {
3012 return;
3013 }
3014 if (vehicle->track_progress < 48)
3015 {
3016 return;
3017 }
3018 if (vehicle->track_progress >= 112)
3019 {
3020 return;
3021 }
3022 if (vehicle->TrainHead()->velocity <= 0x50000)
3023 {
3024 return;
3025 }
3026 int32_t image_id = 29014 + ((((vehicle->sprite_direction / 8) + session->CurrentRotation) & 3) * 8)
3027 + ((gCurrentTicks / 2) & 7);
3028 PaintAddImageAsChild(session, image_id, 0, 0, 0, 0, 0, z, 0, 0, z);
3029 }
3030
3031 /**
3032 *
3033 * rct2: 0x006D5696
3034 */
vehicle_visual_splash2_effect(paint_session * session,int32_t z,const Vehicle * vehicle)3035 static void vehicle_visual_splash2_effect(paint_session* session, int32_t z, const Vehicle* vehicle)
3036 {
3037 if (vehicle->sprite_direction & 7)
3038 {
3039 return;
3040 }
3041 if (vehicle->Pitch != 0)
3042 {
3043 return;
3044 }
3045 if (vehicle->velocity <= 0x50000)
3046 {
3047 return;
3048 }
3049 int32_t image_id = 29046 + ((((vehicle->sprite_direction / 8) + session->CurrentRotation) & 3) * 8)
3050 + ((gCurrentTicks / 2) & 7);
3051 PaintAddImageAsChild(session, image_id, 0, 0, 0, 0, 0, z, 0, 0, z);
3052 }
3053
3054 /**
3055 *
3056 * rct2: 0x006D57EE
3057 */
vehicle_visual_splash3_effect(paint_session * session,int32_t z,const Vehicle * vehicle)3058 static void vehicle_visual_splash3_effect(paint_session* session, int32_t z, const Vehicle* vehicle)
3059 {
3060 if (vehicle->sprite_direction & 7)
3061 {
3062 return;
3063 }
3064 if (vehicle->Pitch != 0)
3065 {
3066 return;
3067 }
3068 if (vehicle->velocity <= 0x50000)
3069 {
3070 return;
3071 }
3072 int32_t image_id = 29014 + ((((vehicle->sprite_direction / 8) + session->CurrentRotation) & 3) * 8)
3073 + ((gCurrentTicks / 2) & 7);
3074 PaintAddImageAsChild(session, image_id, 0, 0, 0, 0, 0, z, 0, 0, z);
3075 }
3076
3077 /**
3078 *
3079 * rct2: 0x006D5783
3080 */
vehicle_visual_splash4_effect(paint_session * session,int32_t z,const Vehicle * vehicle)3081 static void vehicle_visual_splash4_effect(paint_session* session, int32_t z, const Vehicle* vehicle)
3082 {
3083 Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
3084 if (vehicle2 == nullptr)
3085 {
3086 return;
3087 }
3088 if (vehicle2->velocity <= 0x50000)
3089 {
3090 return;
3091 }
3092 if (vehicle->sprite_direction & 7)
3093 {
3094 return;
3095 }
3096 if (vehicle->Pitch != 0)
3097 {
3098 return;
3099 }
3100 int32_t image_id = 29078 + ((((vehicle->sprite_direction / 8) + session->CurrentRotation) & 3) * 8)
3101 + ((gCurrentTicks / 2) & 7);
3102 PaintAddImageAsChild(session, image_id, 0, 0, 1, 1, 0, z, 0, 0, z);
3103 }
3104
3105 /**
3106 *
3107 * rct2: 0x006D5701
3108 */
vehicle_visual_splash5_effect(paint_session * session,int32_t z,const Vehicle * vehicle)3109 static void vehicle_visual_splash5_effect(paint_session* session, int32_t z, const Vehicle* vehicle)
3110 {
3111 Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
3112 if (vehicle2 == nullptr)
3113 {
3114 return;
3115 }
3116 if (vehicle2->velocity <= 0x50000)
3117 {
3118 return;
3119 }
3120 if (vehicle->sprite_direction & 7)
3121 {
3122 return;
3123 }
3124 if (vehicle->Pitch != 0)
3125 {
3126 return;
3127 }
3128 if (!track_element_is_covered(vehicle->GetTrackType()))
3129 {
3130 return;
3131 }
3132 int32_t image_id = 29078 + ((((vehicle->sprite_direction / 8) + session->CurrentRotation) & 3) * 8)
3133 + ((gCurrentTicks / 2) & 7);
3134 PaintAddImageAsChild(session, image_id, 0, 0, 1, 1, 0, z, 0, 0, z);
3135 }
3136
vehicle_visual_splash_effect(paint_session * session,int32_t z,const Vehicle * vehicle,const rct_ride_entry_vehicle * vehicleEntry)3137 void vehicle_visual_splash_effect(
3138 paint_session* session, int32_t z, const Vehicle* vehicle, const rct_ride_entry_vehicle* vehicleEntry)
3139 {
3140 switch (vehicleEntry->effect_visual)
3141 {
3142 case VEHICLE_VISUAL_SPLASH1_EFFECT:
3143 vehicle_visual_splash1_effect(session, z, vehicle);
3144 break;
3145 case VEHICLE_VISUAL_SPLASH2_EFFECT:
3146 vehicle_visual_splash2_effect(session, z, vehicle);
3147 break;
3148 case VEHICLE_VISUAL_SPLASH3_EFFECT:
3149 vehicle_visual_splash3_effect(session, z, vehicle);
3150 break;
3151 case VEHICLE_VISUAL_SPLASH4_EFFECT:
3152 vehicle_visual_splash4_effect(session, z, vehicle);
3153 break;
3154 case VEHICLE_VISUAL_SPLASH5_EFFECT:
3155 vehicle_visual_splash5_effect(session, z, vehicle);
3156 break;
3157 }
3158 }
3159
3160 /**
3161 *
3162 * rct2: 0x006D45F8
3163 */
vehicle_visual_default(paint_session * session,int32_t imageDirection,int32_t z,const Vehicle * vehicle,const rct_ride_entry_vehicle * vehicleEntry)3164 void vehicle_visual_default(
3165 paint_session* session, int32_t imageDirection, int32_t z, const Vehicle* vehicle,
3166 const rct_ride_entry_vehicle* vehicleEntry)
3167 {
3168 if (vehicle->Pitch < std::size(vehicle_sprite_funcs))
3169 {
3170 vehicle_sprite_funcs[vehicle->Pitch](session, vehicle, imageDirection, z, vehicleEntry);
3171 }
3172 }
3173
3174 /**
3175 *
3176 * rct2: 0x006D4244
3177 */
PaintEntity(paint_session * session,const Vehicle * vehicle,int32_t imageDirection)3178 template<> void PaintEntity(paint_session* session, const Vehicle* vehicle, int32_t imageDirection)
3179 {
3180 const rct_ride_entry_vehicle* vehicleEntry;
3181
3182 int32_t x = vehicle->x;
3183 int32_t y = vehicle->y;
3184 int32_t z = vehicle->z;
3185
3186 if (vehicle->IsCrashedVehicle)
3187 {
3188 uint32_t ebx = 22965 + vehicle->animation_frame;
3189 PaintAddImageAsParent(session, ebx, { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z + 2 });
3190 return;
3191 }
3192
3193 if (vehicle->ride_subtype == OBJECT_ENTRY_INDEX_NULL)
3194 {
3195 vehicleEntry = &CableLiftVehicle;
3196 }
3197 else
3198 {
3199 auto rideEntry = vehicle->GetRideEntry();
3200 if (rideEntry == nullptr)
3201 {
3202 return;
3203 }
3204
3205 auto vehicleEntryIndex = vehicle->vehicle_type;
3206 if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
3207 {
3208 vehicleEntryIndex++;
3209 z += 16;
3210 }
3211
3212 if (vehicleEntryIndex >= std::size(rideEntry->vehicles))
3213 {
3214 return;
3215 }
3216 vehicleEntry = &rideEntry->vehicles[vehicleEntryIndex];
3217 }
3218
3219 switch (vehicleEntry->car_visual)
3220 {
3221 case VEHICLE_VISUAL_DEFAULT:
3222 vehicle_visual_default(session, imageDirection, z, vehicle, vehicleEntry);
3223 break;
3224 case VEHICLE_VISUAL_LAUNCHED_FREEFALL:
3225 vehicle_visual_launched_freefall(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3226 break;
3227 case VEHICLE_VISUAL_OBSERVATION_TOWER:
3228 vehicle_visual_observation_tower(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3229 break;
3230 case VEHICLE_VISUAL_RIVER_RAPIDS:
3231 vehicle_visual_river_rapids(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3232 break;
3233 case VEHICLE_VISUAL_MINI_GOLF_PLAYER:
3234 vehicle_visual_mini_golf_player(session, x, imageDirection, y, z, vehicle);
3235 break;
3236 case VEHICLE_VISUAL_MINI_GOLF_BALL:
3237 vehicle_visual_mini_golf_ball(session, x, imageDirection, y, z, vehicle);
3238 break;
3239 case VEHICLE_VISUAL_REVERSER:
3240 vehicle_visual_reverser(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3241 break;
3242 case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER:
3243 vehicle_visual_splash_boats_or_water_coaster(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3244 break;
3245 case VEHICLE_VISUAL_ROTO_DROP:
3246 vehicle_visual_roto_drop(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3247 break;
3248 case VEHICLE_VISUAL_VIRGINIA_REEL:
3249 vehicle_visual_virginia_reel(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3250 break;
3251 case VEHICLE_VISUAL_SUBMARINE:
3252 vehicle_visual_submarine(session, x, imageDirection, y, z, vehicle, vehicleEntry);
3253 break;
3254 }
3255 }
3256