1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-26 00:04:43 +01:00
Files
OpenRCT2/src/openrct2/ride/VehiclePaint.cpp
spacek531 22c44fac71 Cleanup vehicle drawing code part 4 (#17105)
* Refactor VehiclePaint to take into account NumRotationFrames

* Reduce copied code
2022-04-30 11:26:55 +01:00

3309 lines
188 KiB
C++

/*****************************************************************************
* Copyright (c) 2014-2020 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#include "VehiclePaint.h"
#include "../Game.h"
#include "../drawing/Drawing.h"
#include "../drawing/LightFX.h"
#include "../entity/EntityRegistry.h"
#include "../entity/Yaw.hpp"
#include "../interface/Viewport.h"
#include "../paint/Paint.h"
#include "../ride/RideData.h"
#include "../ride/Vehicle.h"
#include "Track.h"
#include <iterator>
using namespace OpenRCT2::Entity::Yaw;
#pragma region VehicleBoundboxes
// 0x0098E52C:
const vehicle_boundbox VehicleBoundboxes[16][224] = {
{
// 0x0099123C:
{ -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -5, -2, -22, 10, 4, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -2, -5, -22, 4, 10, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 }, { -3, -3, -22, 6, 6, 14 },
{ -10, -6, -22, 16, 12, 14 }, { -8, -8, -22, 16, 16, 14 }, { -6, -11, -27, 3, 16, 19 }, { -8, -8, -22, 16, 16, 14 },
{ -11, -6, -27, 16, 5, 19 }, { -8, -8, -22, 16, 16, 14 }, { -6, -10, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
{ -10, -6, -22, 16, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
{ -3, -10, -33, 3, 16, 27 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
{ -13, -6, -33, 16, 5, 24 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
{ -6, -10, -22, 12, 16, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 }, { -6, -6, -22, 12, 12, 14 },
{ -10, -6, -33, 20, 12, 24 }, { -2, -3, -33, 3, 10, 29 }, { -13, -6, -33, 20, 5, 24 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 }, { -10, -6, -43, 5, 12, 34 },
{ -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 }, { -2, 4, -33, 3, 10, 29 },
{ -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 }, { -13, -6, -33, 20, 5, 24 },
{ -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 }, { -6, -15, -22, 12, 10, 14 },
{ -10, -6, -33, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -33, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -22, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -22, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -38, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -28, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
{ -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -8, -22, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -6, -22, 16, 12, 14 },
{ -8, -6, -22, 16, 12, 14 }, { -8, -6, -22, 16, 12, 14 }, { -8, -8, -22, 16, 16, 14 }, { -6, -8, -22, 12, 16, 14 },
{ -6, -8, -22, 12, 16, 14 }, { -6, -8, -22, 12, 16, 14 }, { -8, -8, -22, 16, 16, 14 }, { -8, -6, -22, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -22, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, -22, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -22, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x0099027C:
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x009907BC:
{ -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
{ -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
{ -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
{ -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
{ -6, -6, -23, 12, 12, 14 }, { -9, -6, -23, 18, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -9, -23, 12, 18, 14 },
{ -6, -6, -23, 12, 12, 14 }, { -6, -9, -23, 12, 18, 14 }, { -8, -8, -23, 16, 16, 14 }, { -9, -6, -23, 18, 12, 14 },
{ -6, -6, -23, 12, 12, 14 }, { -9, -6, -23, 18, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -9, -23, 12, 18, 14 },
{ -6, -6, -23, 12, 12, 14 }, { -6, -9, -23, 12, 18, 14 }, { -8, -8, -23, 16, 16, 14 }, { -9, -6, -23, 18, 12, 14 },
{ -10, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -11, -28, 3, 16, 19 }, { -8, -8, -23, 16, 16, 14 },
{ -11, -6, -28, 16, 5, 19 }, { -8, -8, -23, 16, 16, 14 }, { -6, -10, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
{ -10, -6, -23, 16, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
{ -3, -10, -34, 3, 16, 27 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
{ -13, -6, -34, 16, 5, 24 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
{ -6, -10, -23, 12, 16, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 }, { -6, -6, -23, 12, 12, 14 },
{ -10, -6, -34, 20, 12, 24 }, { -2, -3, -34, 3, 10, 29 }, { -13, -6, -34, 20, 5, 24 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 }, { -10, -6, -44, 5, 12, 34 },
{ -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 }, { -2, 4, -34, 3, 10, 29 },
{ -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 }, { -13, -6, -34, 20, 5, 24 },
{ -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 }, { -6, -15, -23, 12, 10, 14 },
{ -10, -6, -34, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -34, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -23, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -23, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -39, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -29, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
{ -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -8, -23, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
{ -8, -6, -23, 16, 12, 14 }, { -8, -6, -23, 16, 12, 14 }, { -8, -8, -23, 16, 16, 14 }, { -6, -8, -23, 12, 16, 14 },
{ -6, -8, -23, 12, 16, 14 }, { -6, -8, -23, 12, 16, 14 }, { -8, -8, -23, 16, 16, 14 }, { -8, -6, -23, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x009921FC:
{ -19, -6, -28, 38, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
{ -6, -19, -28, 12, 38, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
{ -19, -6, -28, 38, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
{ -6, -19, -28, 12, 38, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
{ -15, -6, -28, 18, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 28, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 28, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -15, -28, 12, 18, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -13, -6, -39, 16, 5, 24 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 20, 12, 24 }, { -2, -3, -39, 3, 10, 29 }, { -13, -6, -39, 20, 5, 24 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x00991CBC:
{ -24, -6, -28, 32, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
{ -6, -11, -28, 12, 32, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
{ -11, -6, -28, 32, 12, 14 }, { -11, -6, -28, 22, 12, 14 }, { -11, -11, -28, 22, 22, 14 }, { -6, -11, -28, 12, 22, 14 },
{ -6, -24, -28, 12, 32, 14 }, { -6, -11, -28, 12, 22, 14 }, { -11, -11, -28, 22, 22, 14 }, { -11, -6, -28, 22, 12, 14 },
{ -15, -6, -28, 18, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 28, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 28, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -15, -28, 12, 18, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -13, -6, -39, 16, 5, 24 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 20, 12, 24 }, { -2, -3, -39, 3, 10, 29 }, { -13, -6, -39, 20, 5, 24 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x0098F52C
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -13, -6, 1, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -13, 3, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -13, -6, 3, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -13, 1, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -18, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
{ 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
{ -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x0098EFEC:
{ -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
{ -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
{ -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 },
{ -6, -10, 2, 12, 20, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -6, 1, 16, 12, 14 },
{ -10, -6, 2, 20, 12, 14 }, { -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 },
{ -6, -10, 1, 12, 20, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -6, 1, 16, 12, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -10, 1, 12, 20, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -10, 1, 12, 20, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
{ 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
{ -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
{ -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -9, -6, 1, 18, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -9, 1, 12, 18, 14 },
{ -6, -10, 1, 12, 20, 14 }, { -6, -9, 1, 12, 18, 14 }, { -8, -8, 1, 16, 16, 14 }, { -9, -6, 1, 18, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x0098EAAC:
{ -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 2, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -8, -8, 1, 16, 16, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -8, -6, 2, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -8, -8, 1, 16, 16, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -8, 1, 12, 16, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
{ 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 6, 6, 15 },
{ -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 }, { -12, -12, -8, 6, 6, 15 },
{ -12, -12, -8, 6, 6, 15 }, { -12, -6, -8, 6, 6, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
{ -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 }, { -10, -6, -15, 20, 12, 7 }, { -6, -10, -15, 12, 20, 7 },
{ -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -8, -6, 1, 16, 12, 14 }, { -7, -6, 1, 14, 12, 14 }, { -6, -6, 1, 12, 12, 14 }, { -6, -7, 1, 12, 14, 14 },
{ -6, -8, 1, 12, 16, 14 }, { -6, -7, 1, 12, 14, 14 }, { -6, -6, 1, 12, 12, 14 }, { -7, -6, 1, 14, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x0098E56C:
{ -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
{ -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
{ -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
{ -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
{ -3, -6, 1, 6, 12, 14 }, { -3, -6, 1, 6, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -3, 1, 12, 6, 14 },
{ -6, -3, 2, 12, 6, 14 }, { -6, -3, 1, 12, 6, 14 }, { -8, -8, 1, 16, 16, 14 }, { -3, -6, 1, 6, 12, 14 },
{ -3, -6, 2, 6, 12, 14 }, { -3, -6, 1, 6, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -3, 1, 12, 6, 14 },
{ -6, -3, 1, 12, 6, 14 }, { -6, -3, 1, 12, 6, 14 }, { -8, -8, 1, 16, 16, 14 }, { -3, -6, 1, 6, 12, 14 },
{ -3, -6, 1, 6, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -3, 1, 12, 6, 7 }, { -8, -8, 1, 16, 16, 7 },
{ -3, -6, 1, 6, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -3, 1, 12, 6, 7 }, { 0, 0, 1, 8, 8, 7 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
{ 0, -6, -4, 10, 12, 7 }, { 0, -6, -4, 10, 12, 7 }, { 0, -6, -4, 10, 12, 7 }, { -6, -12, -4, 12, 10, 7 },
{ -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 }, { -6, -12, -4, 12, 10, 7 },
{ -12, -6, -4, 10, 12, 7 }, { -12, -6, -4, 10, 12, 7 }, { -12, -6, -4, 10, 12, 7 }, { -6, 0, -4, 12, 10, 7 },
{ -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 }, { -6, 0, -4, 12, 10, 7 },
{ -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
{ -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
{ -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
{ -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
{ -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
{ -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 }, { -3, -6, -15, 6, 12, 6 }, { -6, -3, -15, 12, 6, 6 },
{ -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
{ -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
{ -3, -6, 1, 6, 12, 14 }, { -3, -5, 1, 6, 10, 14 }, { -5, -5, 1, 10, 10, 14 }, { -5, -3, 1, 10, 6, 14 },
{ -6, -3, 1, 12, 6, 14 }, { -5, -3, 1, 10, 6, 14 }, { -5, -5, 1, 10, 10, 14 }, { -3, -5, 1, 6, 10, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x00990CFC:
{ -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -11, -6, 1, 22, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -11, 3, 12, 22, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -11, -6, 3, 22, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -11, 1, 12, 22, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -12, -6, 1, 24, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -12, 1, 12, 24, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -18, -6, 1, 24, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 24, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -12, -6, 5, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -12, 5, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -18, -6, 5, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ 0, -6, -10, 14, 12, 24 }, { -6, -17, -10, 3, 14, 24 }, { -17, -6, -10, 14, 5, 24 }, { -6, 0, -10, 12, 14, 24 },
{ 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 },
{ -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 },
{ -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 },
{ -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 },
{ -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
{ -14, -6, 1, 28, 12, 14 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, 1, 12, 28, 14 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -12, -6, 1, 24, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -12, 1, 12, 24, 14 }, { -6, -11, 1, 12, 22, 14 }, { -10, -10, 1, 20, 20, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x0098FA6C:
{ -18, -6, 1, 36, 12, 11 }, { -17, -6, 1, 34, 12, 11 }, { -15, -15, 1, 30, 30, 11 }, { -6, -17, 1, 12, 34, 11 },
{ -6, -18, 1, 12, 36, 11 }, { -6, -17, 1, 12, 34, 11 }, { -15, -15, 1, 30, 30, 11 }, { -17, -6, 1, 34, 12, 11 },
{ -18, -6, 1, 36, 12, 11 }, { -17, -6, 1, 34, 12, 11 }, { -15, -15, 1, 30, 30, 11 }, { -6, -17, 1, 12, 34, 11 },
{ -6, -18, 1, 12, 36, 11 }, { -6, -17, 1, 12, 34, 11 }, { -15, -15, 1, 30, 30, 11 }, { -17, -6, 1, 34, 12, 11 },
{ -14, -6, 1, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 3, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 3, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -3, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -8, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ -8, -6, 5, 6, 12, 7 }, { -8, -6, 1, 16, 12, 7 }, { -8, -8, 1, 16, 16, 7 }, { -6, -8, 1, 12, 16, 7 },
{ -6, -3, 5, 12, 6, 7 }, { -6, -8, 1, 12, 16, 7 }, { -8, -8, 1, 16, 16, 7 }, { -8, -6, 1, 16, 12, 7 },
{ 0, -6, 5, 3, 12, 5 }, { -6, -13, 5, 3, 12, 5 }, { -13, -6, 5, 12, 5, 5 }, { -6, 0, 5, 12, 3, 5 },
{ 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { 0, -6, -8, 10, 12, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 }, { -6, -12, -8, 12, 10, 15 },
{ -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -12, -6, -8, 10, 12, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 }, { -6, 0, -8, 12, 10, 15 },
{ -3, -6, -4, 6, 12, 5 }, { -6, -13, -4, 3, 20, 5 }, { -13, -6, -4, 6, 5, 5 }, { -6, -3, -4, 12, 20, 5 },
{ -3, -6, 1, 6, 12, 6 }, { -6, -13, -10, 3, 6, 6 }, { -13, -6, -10, 6, 5, 6 }, { -6, -3, 1, 12, 6, 6 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -32, -32, 24, 4, 4, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -14, 1, 12, 28, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, 10, 12, 12, 14 }, { -6, -6, 10, 12, 12, 14 },
{ -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 }, { -6, -6, -12, 12, 12, 2 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x0099177C:
{ -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -13, -6, 1, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -13, 3, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -13, -6, 3, 26, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -13, 1, 12, 26, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { -8, -8, 1, 16, 16, 14 },
{ -18, -6, 1, 28, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -14, 1, 12, 28, 14 }, { 0, 0, 1, 8, 8, 14 },
{ -14, -6, 5, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -18, -6, 5, 28, 12, 14 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 14 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
{ 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 }, { 0, -6, -7, 10, 12, 14 },
{ -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 }, { -6, -12, -7, 12, 10, 14 },
{ -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 }, { -12, -6, -7, 10, 12, 14 },
{ -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 }, { -6, 0, -7, 12, 10, 14 },
{ -14, -6, -10, 28, 12, 24 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, -10, 12, 28, 24 },
{ -14, -6, 1, 28, 12, 14 }, { -6, -17, -10, 3, 28, 24 }, { -17, -6, -10, 28, 5, 24 }, { -6, -14, 1, 12, 28, 14 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 }, { -14, -6, -15, 28, 12, 7 }, { -6, -14, -15, 12, 28, 7 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 }, { -10, -10, 1, 20, 20, 14 },
{ -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { -8, -8, 1, 16, 16, 14 }, { 8, 8, 1, 8, 8, 14 },
{ -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -6, -16, 1, 12, 32, 8 }, { -5, -5, 1, 10, 10, 8 }, { -4, -4, 1, 8, 8, 8 }, { -5, -5, 1, 10, 10, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 }, { -16, -6, 1, 32, 12, 8 }, { -6, -16, 1, 12, 32, 8 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, 1, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, 1, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
{ -10, -6, -23, 20, 12, 14 }, { -6, -10, 1, 12, 20, 14 }, { -10, -6, -23, 20, 12, 14 }, { -6, -10, -23, 12, 20, 14 },
},
{
// 0x009900FC:
{ -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
},
{
// 0x009901BC:
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -8, -6, 11, 16, 12, 4 }, { -8, -6, 11, 16, 12, 4 }, { -8, -8, 11, 16, 16, 4 }, { -6, -8, 11, 12, 16, 4 },
{ -6, -8, 11, 12, 16, 4 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, 11, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -6, -10, 11, 12, 20, 14 }, { -10, -6, -28, 20, 12, 14 }, { -6, -10, -28, 12, 20, 14 },
},
{
// 0x0098FFAC:
{ -3, -6, -1, 6, 12, 1 }, { -3, -5, -1, 6, 10, 1 }, { -5, -5, -1, 10, 10, 1 }, { -5, -3, -1, 10, 6, 1 },
{ -6, -3, -1, 12, 6, 1 }, { -5, -3, -1, 10, 6, 1 }, { -5, -5, -1, 10, 10, 1 }, { -3, -5, -1, 6, 10, 1 },
{ -3, -6, -1, 6, 12, 1 }, { -3, -5, -1, 6, 10, 1 }, { -5, -5, -1, 10, 10, 1 }, { -5, -3, -1, 10, 6, 1 },
{ -6, -3, -1, 12, 6, 1 }, { -5, -3, -1, 10, 6, 1 }, { -5, -5, -1, 10, 10, 1 }, { -3, -5, -1, 6, 10, 1 },
{ -3, -6, -8, 6, 12, 1 }, { -3, -6, -1, 6, 12, 1 }, { -8, -8, -1, 16, 16, 1 }, { -6, -3, -1, 12, 6, 1 },
{ -6, -3, 0, 12, 6, 1 }, { -6, -3, -1, 12, 6, 1 }, { -8, -8, -1, 16, 16, 1 }, { -3, -6, -1, 6, 12, 1 },
{ -3, -6, 0, 6, 12, 1 }, { -3, -6, -1, 6, 12, 1 }, { -8, -8, -1, 16, 16, 1 }, { -6, -3, -1, 12, 6, 1 },
{ -6, -3, -8, 12, 6, 1 }, { -6, -3, -1, 12, 6, 1 }, { -8, -8, -1, 16, 16, 1 }, { -3, -6, -1, 6, 12, 1 },
{ -3, -6, -10, 6, 12, 1 }, { -8, -8, -2, 16, 16, 1 }, { -6, -3, -2, 12, 6, 1 }, { -8, -8, -2, 16, 16, 1 },
{ -3, -6, -2, 6, 12, 1 }, { -8, -8, -2, 16, 16, 1 }, { -6, -3, -10, 12, 6, 1 }, { 0, 0, -2, 8, 8, 1 },
{ -3, -6, -12, 6, 12, 1 }, { -8, -6, -6, 16, 12, 1 }, { -8, -8, -6, 16, 16, 1 }, { -6, -8, -6, 12, 16, 1 },
{ -6, -3, -2, 12, 6, 1 }, { -6, -8, -6, 12, 16, 1 }, { -8, -8, -6, 16, 16, 1 }, { -8, -6, -6, 16, 12, 1 },
{ -3, -6, -2, 6, 12, 1 }, { -8, -6, -6, 16, 12, 1 }, { -8, -8, -6, 16, 16, 1 }, { -6, -8, -6, 12, 16, 1 },
{ -6, -3, -12, 12, 6, 1 }, { -6, -8, -6, 12, 16, 1 }, { -8, -8, -6, 16, 16, 1 }, { -8, -6, -6, 16, 12, 1 },
{ -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -16, -6, 1, 32, 12, 14 }, { -12, -6, 1, 24, 12, 14 }, { -10, -10, 1, 20, 20, 14 }, { -6, -12, 1, 12, 24, 14 },
{ -6, -16, 1, 12, 32, 14 }, { -6, -12, 1, 12, 24, 14 }, { -10, -10, 1, 20, 20, 14 }, { -12, -6, 1, 24, 12, 14 },
{ -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -14, -6, 5, 28, 12, 9 }, { -11, -6, 1, 22, 12, 14 }, { -8, -8, 1, 16, 16, 14 }, { -6, -11, 1, 12, 22, 14 },
{ -6, -14, 5, 12, 28, 9 }, { -6, -11, 1, 12, 22, 14 }, { -8, -8, 1, 16, 16, 14 }, { -11, -6, 1, 22, 12, 14 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 }, { -6, -6, -4, 12, 12, 1 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -8, -6, -28, 16, 12, 14 }, { -8, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -8, -28, 12, 16, 14 },
{ -6, -8, -28, 12, 16, 14 }, { -6, -8, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -6, -28, 16, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -9, -6, -28, 18, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -9, -28, 12, 18, 14 },
{ -6, -6, -28, 12, 12, 14 }, { -6, -9, -28, 12, 18, 14 }, { -8, -8, -28, 16, 16, 14 }, { -9, -6, -28, 18, 12, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -8, -8, -28, 16, 16, 14 }, { -6, -11, -33, 3, 16, 19 }, { -8, -8, -28, 16, 16, 14 },
{ -11, -6, -33, 16, 5, 19 }, { -8, -8, -28, 16, 16, 14 }, { -6, -10, -28, 12, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
{ -10, -6, -28, 16, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -3, -10, -39, 3, 16, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -39, 16, 3, 27 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -6, -10, -28, 12, 16, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 }, { -6, -6, -28, 12, 12, 14 },
{ -10, -6, -28, 20, 12, 14 }, { -2, -3, -39, 3, 10, 29 }, { -3, -2, -39, 10, 3, 29 }, { -6, -10, -28, 12, 20, 14 },
{ -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 }, { -10, -6, -49, 5, 12, 34 },
{ -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 }, { -2, 4, -39, 3, 10, 29 },
{ -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 }, { -13, -6, -39, 20, 5, 24 },
{ -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 }, { -6, -15, -28, 12, 10, 14 },
{ -10, -6, -39, 4, 12, 24 }, { -2, 4, -10, 3, 10, 24 }, { -3, -6, -39, 10, 5, 24 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -28, 3, 12, 14 }, { -6, 0, -10, 3, 10, 24 }, { -3, -6, -28, 10, 5, 14 }, { -6, -15, -10, 12, 10, 14 },
{ -10, -6, -44, 20, 12, 7 }, { -6, 0, -5, 12, 10, 7 }, { 0, -6, -34, 10, 12, 7 }, { -6, -15, -5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, 0, 5, 12, 10, 7 }, { 0, -6, 5, 10, 12, 7 }, { -6, -10, 5, 12, 10, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 }, { -10, -6, 5, 20, 12, 7 }, { -6, -10, 5, 12, 20, 7 },
{ -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 }, { -8, -8, -28, 16, 16, 14 },
},
{
// 0x0099273C:
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
{ -6, -6, 0, 12, 12, 31 },
}
};
#pragma endregion
#pragma region VehiclePaintUtil
static void PaintVehicleRiders(
paint_session& session, const Vehicle* vehicle, const rct_ride_entry_vehicle* vehicleEntry, uint32_t baseImageId, int32_t z,
const vehicle_boundbox& bb)
{
baseImageId += vehicleEntry->no_vehicle_images;
for (auto i = 0; i < 8; i++)
{
if (vehicle->num_peeps > (i * 2) && vehicleEntry->no_seating_rows > i)
{
auto offsetImageId = baseImageId;
if (i == 0 && (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_RIDER_ANIMATION))
{
offsetImageId += (vehicleEntry->no_vehicle_images * vehicle->animation_frame);
}
auto peepColour0 = vehicle->peep_tshirt_colours[i * 2];
auto peepColour1 = vehicle->peep_tshirt_colours[(i * 2) + 1];
auto imageId = ImageId(offsetImageId, peepColour0, peepColour1);
if (vehicle->IsGhost())
{
imageId = ImageId(offsetImageId).WithRemap(FilterPaletteID::Palette44);
}
PaintAddImageAsChild(
session, imageId, { 0, 0, z }, { bb.length_x, bb.length_y, bb.length_z },
{ bb.offset_x, bb.offset_y, bb.offset_z + z });
baseImageId += vehicleEntry->no_vehicle_images;
}
}
}
// 6D5214
static void vehicle_sprite_paint(
paint_session& session, const Vehicle* vehicle, int32_t spriteNum, const vehicle_boundbox& bb, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->draw_order >= std::size(VehicleBoundboxes))
{
return;
}
auto baseImageId = static_cast<uint32_t>(spriteNum);
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
{
baseImageId += (vehicle->spin_sprite / 8) & 31;
}
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_VEHICLE_ANIMATION)
{
baseImageId += vehicle->animation_frame;
}
auto imageId = ImageId(baseImageId, vehicle->colours.body_colour, vehicle->colours.trim_colour, vehicle->colours_extended);
if (vehicle->IsGhost())
{
imageId = ImageId(baseImageId).WithRemap(FilterPaletteID::Palette44);
}
PaintAddImageAsParent(
session, imageId, { 0, 0, z }, { bb.length_x, bb.length_y, bb.length_z },
{ bb.offset_x, bb.offset_y, bb.offset_z + z });
auto* dpi = &session.DPI;
if (dpi->zoom_level < ZoomLevel{ 2 } && vehicle->num_peeps > 0 && vehicleEntry->no_seating_rows > 0)
{
PaintVehicleRiders(session, vehicle, vehicleEntry, baseImageId, z, bb);
}
vehicle_visual_splash_effect(session, z, vehicle, vehicleEntry);
}
// 6D520E
static void VehicleSpritePaintWithSwinging(
paint_session& session, const Vehicle* vehicle, int32_t spriteNum, int32_t boundingBoxNum, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicle_sprite_paint(
session, vehicle, spriteNum + vehicle->SwingSprite, VehicleBoundboxes[vehicleEntry->draw_order][boundingBoxNum], z,
vehicleEntry);
}
static void VehicleSpritePaintRestraints(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
imageDirection = YawTo4(imageDirection);
imageDirection += ((vehicle->restraints_position - 64) / 64) * 4;
imageDirection *= vehicleEntry->base_num_frames;
imageDirection += vehicleEntry->restraint_image_id;
vehicle_sprite_paint(
session, vehicle, imageDirection, VehicleBoundboxes[vehicleEntry->draw_order][boundingBoxNum], z, vehicleEntry);
}
#pragma endregion
#pragma region FlatSlope
// 6D51DE
static void VehicleSpriteFlatUnbanked(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// Restraint animations are only drawn for vehicles that are in a cardinal direction (north, east, south, west)
if (vehicle->restraints_position >= 64 && (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION)
&& (imageDirection & 7) == 0)
{
VehicleSpritePaintRestraints(session, vehicle, imageDirection, z, vehicleEntry);
return;
}
int32_t boundingBoxNum = YawTo16(imageDirection);
auto spriteNum = (vehicleEntry->SpriteByYaw(imageDirection) * vehicleEntry->base_num_frames) + vehicleEntry->base_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
// 6D4EE7
static void vehicle_sprite_0_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((YawTo8(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4F34
static void vehicle_sprite_0_2(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
{
int32_t boundingBoxNum = YawTo16(imageDirection) + 108;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 16) * vehicleEntry->base_num_frames)
+ vehicleEntry->banked_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4F0C
static void vehicle_sprite_0_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo8(imageDirection)) + 8) * vehicleEntry->base_num_frames) + vehicleEntry->banked_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4F5C
static void vehicle_sprite_0_4(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_BANKED)
{
int32_t boundingBoxNum = (YawTo16(imageDirection) ^ 8) + 108;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 16 + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->banked_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4F84
static void vehicle_sprite_0_5(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 124;
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4FE4
static void vehicle_sprite_0_6(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 128;
int32_t spriteNum = (((YawTo4(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D5055
static void vehicle_sprite_0_7(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 132;
int32_t spriteNum = (((YawTo4(imageDirection)) + 16) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D50C6
static void vehicle_sprite_0_8(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 136;
int32_t spriteNum = (((YawTo4(imageDirection)) + 24) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D5137
static void vehicle_sprite_0_9(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 140;
int32_t spriteNum = (((YawTo4(imageDirection)) + 32) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4FB1
static void vehicle_sprite_0_10(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 124;
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D501B
static void vehicle_sprite_0_11(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 128;
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D508C
static void vehicle_sprite_0_12(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 132;
int32_t spriteNum = (((YawTo4(imageDirection)) + 20) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D50FD
static void vehicle_sprite_0_13(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 136;
int32_t spriteNum = (((YawTo4(imageDirection)) + 28) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D516E
static void vehicle_sprite_0_14(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_INLINE_TWISTS)
{
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 140;
int32_t spriteNum = (((YawTo4(imageDirection)) + 36) * vehicleEntry->base_num_frames)
+ vehicleEntry->inline_twist_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4EE4
static void vehicle_sprite_0_16(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
vehicle_sprite_0_1(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D4F31
static void vehicle_sprite_0_17(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D4F09
static void vehicle_sprite_0_18(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
vehicle_sprite_0_3(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D4F59
static void vehicle_sprite_0_19(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D51D7
static void VehiclePitchFlat(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3DE4:
switch (vehicle->bank_rotation)
{
case 0:
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_0_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_0_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_0_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_0_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_0_5(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_0_6(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_0_7(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_0_8(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_0_9(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_0_10(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_0_11(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_0_12(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_0_13(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_0_14(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
// what is roll 15?
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_0_16(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_0_17(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_0_18(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_0_19(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma region GentleSlopesUp
#pragma region SlopeUp12
// 6D4614
static void vehicle_sprite_1_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4662
static void vehicle_sprite_1_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (vehicleEntry->SpriteByYaw(imageDirection) * vehicleEntry->base_num_frames)
+ vehicleEntry->flat_to_gentle_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D46DB
static void vehicle_sprite_1_2(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames)
+ vehicleEntry->flat_bank_to_gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D467D
static void vehicle_sprite_1_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->flat_to_gentle_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D46FD
static void vehicle_sprite_1_4(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->flat_bank_to_gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D460D
static void VehiclePitchUp12(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3C04:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_1_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_1_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_1_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_1_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_1_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_1_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
default:
vehicle_sprite_1_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region Up25
#pragma endregion
#pragma region SlopeUp25
// 6D4791
static void vehicle_sprite_2_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
{
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
{
int32_t boundingBoxNum = YawTo16(imageDirection) + 16;
int32_t spriteNum = (((YawTo4(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 16;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4833
static void vehicle_sprite_2_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection) + 16;
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_to_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D48D6
static void vehicle_sprite_2_2(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
if (vehicleEntry->draw_order < 5)
boundingBoxNum += 108;
else
boundingBoxNum += 16;
int32_t spriteNum = (vehicleEntry->SpriteByYaw(imageDirection) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_bank_turn_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4858
static void vehicle_sprite_2_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection) + 16;
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_to_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4910
static void vehicle_sprite_2_4(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
if (vehicleEntry->draw_order < 5)
boundingBoxNum = (boundingBoxNum ^ 8) + 108;
else
boundingBoxNum += 16;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_bank_turn_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D476C
static void VehiclePitchUp25(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3CA4:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_2_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_2_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_2_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_2_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
vehicle_sprite_2_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_2_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_2_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_2_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_2_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma endregion
#pragma region SteepSlopesUp
// 6D49DC
static void VehiclePitchUp42(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (!(vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES))
{
VehiclePitchUp25(session, vehicle, imageDirection, z, vehicleEntry);
}
else
{
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
int32_t spriteNum = ((YawTo8(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->steep_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
}
// 6D4A31
static void VehiclePitchUp60(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (!(vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES))
{
VehiclePitchUp25(session, vehicle, imageDirection, z, vehicleEntry);
}
else
{
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 16) * vehicleEntry->base_num_frames)
+ vehicleEntry->steep_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
}
#pragma endregion
#pragma region GentleSlopesDown
#pragma region SlopeDown12
// 6D463D
static void vehicle_sprite_5_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D469B
static void vehicle_sprite_5_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->flat_to_gentle_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4722
static void vehicle_sprite_5_2(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->flat_bank_to_gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D46B9
static void vehicle_sprite_5_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames() * 3)
* vehicleEntry->base_num_frames)
+ vehicleEntry->flat_to_gentle_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4747
static void vehicle_sprite_5_4(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->flat_bank_to_gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4636
static void VehiclePitchDown12(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3C54:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_5_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_5_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
vehicle_sprite_5_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_5_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_5_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_5_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_5_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma region Down25
#pragma endregion
#pragma region SlopeDown25
// 6D47E4
static void vehicle_sprite_6_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES)
{
if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 8 + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4880
static void vehicle_sprite_6_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
int32_t spriteNum = (((YawTo4(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_to_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4953
static void vehicle_sprite_6_2(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
if (vehicleEntry->draw_order < 5)
boundingBoxNum += 108;
else
boundingBoxNum = (boundingBoxNum ^ 8) + 16;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_bank_turn_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D48AB
static void vehicle_sprite_6_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_to_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4996
static void vehicle_sprite_6_4(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
if (vehicleEntry->draw_order < 5)
boundingBoxNum = (boundingBoxNum ^ 8) + 108;
else
boundingBoxNum = (boundingBoxNum ^ 8) + 16;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + vehicleEntry->NumRotationFrames() * 3)
* vehicleEntry->base_num_frames)
+ vehicleEntry->gentle_slope_bank_turn_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D47DD
static void VehiclePitchDown25(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3CF4:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_6_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_6_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_6_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_6_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
vehicle_sprite_6_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_6_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_6_2(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_6_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_6_4(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma endregion
#pragma region SteepSlopesDown
// 6D4A05
static void VehiclePitchDown42(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
{
int32_t boundingBoxNum = ((YawTo8(imageDirection)) ^ 4) + 32;
int32_t spriteNum = (((YawTo8(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->steep_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown25(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4A59
static void VehiclePitchDown60(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_STEEP_SLOPES)
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 40;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 16 + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->steep_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown25(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region VerticalSlopesUp
// 6D4A81
static void VehiclePitchUp75(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 56;
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4AE8
static void VehiclePitchUp90(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 60;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region LoopSlopesUp
// 6D4B57
static void VehiclePitchUp105(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 76;
int32_t spriteNum = ((YawTo4(imageDirection) + 8 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4BB7
static void VehiclePitchUp120(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 80;
int32_t spriteNum = (((YawTo4(imageDirection)) + 16 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4C17
static void VehiclePitchUp135(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 84;
int32_t spriteNum = (((YawTo4(imageDirection)) + 24 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4C77
static void VehiclePitchUp150(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 88;
int32_t spriteNum = (((YawTo4(imageDirection)) + 32 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4CD7
static void VehiclePitchUp165(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 92;
int32_t spriteNum = (((YawTo4(imageDirection)) + 40 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region InvertedSlope
// 6D4D37
static void VehiclePitchInverted(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 96;
int32_t spriteNum = (((YawTo4(imageDirection)) + 48 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region VerticalSlopesDown
// 6D4AA3
static void VehiclePitchDown75(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
if (vehicle->GetTrackType() != TrackElemType::Down90ToDown60
&& (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
{
vehicleEntry--;
}
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 56;
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4B0D
static void VehiclePitchDown90(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
if (vehicle->GetTrackType() != TrackElemType::Down90 && (vehicle->GetTrackType()) != TrackElemType::Down90ToDown60
&& (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
{
vehicleEntry--;
}
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 60;
int32_t spriteNum = ((vehicleEntry->SpriteByYaw(imageDirection) + 8 + vehicleEntry->NumRotationFrames())
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region LoopSlopesDown
// 6D4B80
static void VehiclePitchDown105(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 76;
int32_t spriteNum = (((YawTo4(imageDirection)) + 12 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4BE0
static void VehiclePitchDown120(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 80;
int32_t spriteNum = (((YawTo4(imageDirection)) + 20 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4C40
static void VehiclePitchDown135(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 84;
int32_t spriteNum = (((YawTo4(imageDirection)) + 28 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4CA0
static void VehiclePitchDown150(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 88;
int32_t spriteNum = (((YawTo4(imageDirection)) + 36 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4D00
static void VehiclePitchDown165(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 92;
int32_t spriteNum = (((YawTo4(imageDirection)) + 44 + vehicleEntry->NumRotationFrames() * 2)
* vehicleEntry->base_num_frames)
+ vehicleEntry->vertical_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region CorkscrewSlopes
// 6D51A5
static void VehiclePitchCorkscrew(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntry--;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_CORKSCREWS)
{
int32_t eax = ((vehicle->Pitch - 24) * 4);
int32_t boundingBoxNum = (YawTo4(imageDirection)) + eax + 144;
int32_t spriteNum = (((YawTo4(imageDirection)) + eax) * vehicleEntry->base_num_frames)
+ vehicleEntry->corkscrew_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehicleSpriteFlatUnbanked(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region DiagonalSlopesUp
#pragma region DiagonalSlopeUp12
// 6D4D67
static void vehicle_sprite_50_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames) + vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4DB5
static void vehicle_sprite_50_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = ((YawTo4(imageDirection)) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4DD3
static void vehicle_sprite_50_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4D60
static void VehiclePitchDiagUp12(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3D44:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_50_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_50_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_50_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_50_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_50_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma region DiagonalSlopeUp25
// 6D4E3A
static void VehiclePitchDiagUp25(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = YawTo4(imageDirection) + 100;
int32_t spriteNum = ((YawTo4(imageDirection) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region DiagonalSlopeUp60
// 6D4E8F
static void VehiclePitchDiagUp60(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 104;
int32_t spriteNum = (((YawTo4(imageDirection)) + 16) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma endregion
#pragma region DiagonalSlopesDown
#pragma region DiagonalSlopeDown12
// 6D4D90
static void vehicle_sprite_53_0(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 4) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4DF4
static void vehicle_sprite_53_1(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 8) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4E15
static void vehicle_sprite_53_3(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS)
{
int32_t boundingBoxNum = YawTo16(imageDirection);
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_to_gentle_slope_bank_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
}
}
// 6D4D89
static void VehiclePitchDiagDown12(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
// 0x009A3D94:
switch (vehicle->bank_rotation)
{
case 0:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 1:
vehicle_sprite_53_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 2:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 3:
vehicle_sprite_53_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 4:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 5:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 6:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 7:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 8:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 9:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 10:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 11:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 12:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 13:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 14:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 15:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 16:
vehicle_sprite_53_1(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 17:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 18:
vehicle_sprite_53_3(session, vehicle, imageDirection, z, vehicleEntry);
break;
case 19:
vehicle_sprite_53_0(session, vehicle, imageDirection, z, vehicleEntry);
break;
}
}
#pragma endregion
#pragma region DiagonalSlopeDown25
// 6D4E63
static void VehiclePitchDiagDown25(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 100;
int32_t spriteNum = (((YawTo4(imageDirection)) + 12) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma region DiagonalSlopeDown60
// 6D4EB8
static void VehiclePitchDiagDown60(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES)
{
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 104;
int32_t spriteNum = (((YawTo4(imageDirection)) + 20) * vehicleEntry->base_num_frames)
+ vehicleEntry->diagonal_slope_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchFlat(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
#pragma endregion
#pragma region InvertingSlopesDown
// 6D47DA
static void VehiclePitchInvertingDown25(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
VehiclePitchDown25(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D4A02
static void VehiclePitchInvertingDown42(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
VehiclePitchDown42(session, vehicle, imageDirection, z, vehicleEntry);
}
// 6D4A56
static void VehiclePitchInvertingDown60(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
vehicleEntry--;
VehiclePitchDown60(session, vehicle, imageDirection, z, vehicleEntry);
}
#pragma endregion
#pragma region SpiralLiftSlopes
// 6D4773
static void VehiclePitchSpiralLift(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_CURVED_LIFT_HILL)
{
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 16;
int32_t spriteNum = (vehicleEntry->SpriteByYaw(imageDirection) * vehicleEntry->base_num_frames)
+ vehicleEntry->curved_lift_hill_image_id;
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, vehicleEntry);
}
else
{
VehiclePitchUp25(session, vehicle, imageDirection, z, vehicleEntry);
}
}
#pragma endregion
// 0x009A3B14:
using vehicle_sprite_func = void (*)(
paint_session& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z,
const rct_ride_entry_vehicle* vehicleEntry);
// clang-format off
static constexpr const vehicle_sprite_func PaintFunctionsByPitch[] = {
VehiclePitchFlat,
VehiclePitchUp12,
VehiclePitchUp25,
VehiclePitchUp42,
VehiclePitchUp60,
VehiclePitchDown12,
VehiclePitchDown25,
VehiclePitchDown42,
VehiclePitchDown60,
VehiclePitchUp75,
VehiclePitchUp90,
VehiclePitchUp105,
VehiclePitchUp120,
VehiclePitchUp135,
VehiclePitchUp150,
VehiclePitchUp165,
VehiclePitchInverted,
VehiclePitchDown75,
VehiclePitchDown90,
VehiclePitchDown105,
VehiclePitchDown120,
VehiclePitchDown135,
VehiclePitchDown150,
VehiclePitchDown165,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchCorkscrew,
VehiclePitchFlat, // Half Helix Up Large
VehiclePitchFlat, // Half Helix Up Small
VehiclePitchFlat, // Half Helix Down Large
VehiclePitchFlat, // Half Helix Down Small
VehiclePitchFlat, // Quarter Helix Up
VehiclePitchFlat, // Quarter Helix Down
VehiclePitchDiagUp12,
VehiclePitchDiagUp25,
VehiclePitchDiagUp60,
VehiclePitchDiagDown12,
VehiclePitchDiagDown25,
VehiclePitchDiagDown60,
VehiclePitchInvertingDown25,
VehiclePitchInvertingDown42,
VehiclePitchInvertingDown60,
VehiclePitchSpiralLift,
};
// clang-format on
#pragma region SplashEffects
/**
*
* rct2: 0x006D5600
*/
static void vehicle_visual_splash1_effect(paint_session& session, int32_t z, const Vehicle* vehicle)
{
if (vehicle->GetTrackType() != TrackElemType::Watersplash)
{
return;
}
if (vehicle->track_progress < 48)
{
return;
}
if (vehicle->track_progress >= 112)
{
return;
}
if (vehicle->TrainHead()->velocity <= 0x50000)
{
return;
}
int32_t image_id = 29014 + ((((vehicle->sprite_direction / 8) + session.CurrentRotation) & 3) * 8)
+ ((gCurrentTicks / 2) & 7);
PaintAddImageAsChild(session, image_id, { 0, 0, z }, { 0, 0, 0 }, { 0, 0, z });
}
/**
*
* rct2: 0x006D5696
*/
static void vehicle_visual_splash2_effect(paint_session& session, int32_t z, const Vehicle* vehicle)
{
if (vehicle->sprite_direction & 7)
{
return;
}
if (vehicle->Pitch != 0)
{
return;
}
if (vehicle->velocity <= 0x50000)
{
return;
}
int32_t image_id = 29046 + ((((vehicle->sprite_direction / 8) + session.CurrentRotation) & 3) * 8)
+ ((gCurrentTicks / 2) & 7);
PaintAddImageAsChild(session, image_id, { 0, 0, z }, { 0, 0, 0 }, { 0, 0, z });
}
/**
*
* rct2: 0x006D57EE
*/
static void vehicle_visual_splash3_effect(paint_session& session, int32_t z, const Vehicle* vehicle)
{
if (vehicle->sprite_direction & 7)
{
return;
}
if (vehicle->Pitch != 0)
{
return;
}
if (vehicle->velocity <= 0x50000)
{
return;
}
int32_t image_id = 29014 + ((((vehicle->sprite_direction / 8) + session.CurrentRotation) & 3) * 8)
+ ((gCurrentTicks / 2) & 7);
PaintAddImageAsChild(session, image_id, { 0, 0, z }, { 0, 0, 0 }, { 0, 0, z });
}
/**
*
* rct2: 0x006D5783
*/
static void vehicle_visual_splash4_effect(paint_session& session, int32_t z, const Vehicle* vehicle)
{
Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
if (vehicle2 == nullptr)
{
return;
}
if (vehicle2->velocity <= 0x50000)
{
return;
}
if (vehicle->sprite_direction & 7)
{
return;
}
if (vehicle->Pitch != 0)
{
return;
}
int32_t image_id = 29078 + ((((vehicle->sprite_direction / 8) + session.CurrentRotation) & 3) * 8)
+ ((gCurrentTicks / 2) & 7);
PaintAddImageAsChild(session, image_id, { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z });
}
/**
*
* rct2: 0x006D5701
*/
static void vehicle_visual_splash5_effect(paint_session& session, int32_t z, const Vehicle* vehicle)
{
Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
if (vehicle2 == nullptr)
{
return;
}
if (vehicle2->velocity <= 0x50000)
{
return;
}
if (vehicle->sprite_direction & 7)
{
return;
}
if (vehicle->Pitch != 0)
{
return;
}
if (!track_element_is_covered(vehicle->GetTrackType()))
{
return;
}
int32_t image_id = 29078 + ((((vehicle->sprite_direction / 8) + session.CurrentRotation) & 3) * 8)
+ ((gCurrentTicks / 2) & 7);
PaintAddImageAsChild(session, image_id, { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z });
}
void vehicle_visual_splash_effect(
paint_session& session, int32_t z, const Vehicle* vehicle, const rct_ride_entry_vehicle* vehicleEntry)
{
switch (vehicleEntry->effect_visual)
{
case VEHICLE_VISUAL_SPLASH1_EFFECT:
vehicle_visual_splash1_effect(session, z, vehicle);
break;
case VEHICLE_VISUAL_SPLASH2_EFFECT:
vehicle_visual_splash2_effect(session, z, vehicle);
break;
case VEHICLE_VISUAL_SPLASH3_EFFECT:
vehicle_visual_splash3_effect(session, z, vehicle);
break;
case VEHICLE_VISUAL_SPLASH4_EFFECT:
vehicle_visual_splash4_effect(session, z, vehicle);
break;
case VEHICLE_VISUAL_SPLASH5_EFFECT:
vehicle_visual_splash5_effect(session, z, vehicle);
break;
}
}
#pragma endregion
/**
*
* rct2: 0x006D45F8
*/
void vehicle_visual_default(
paint_session& session, int32_t imageDirection, int32_t z, const Vehicle* vehicle,
const rct_ride_entry_vehicle* vehicleEntry)
{
if (vehicle->Pitch < std::size(PaintFunctionsByPitch))
{
PaintFunctionsByPitch[vehicle->Pitch](session, vehicle, imageDirection, z, vehicleEntry);
}
}
void Vehicle::Paint(paint_session& session, int32_t imageDirection) const
{
const rct_ride_entry_vehicle* vehicleEntry;
if (IsCrashedVehicle)
{
PaintAddImageAsParent(session, 22965 + animation_frame, { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z + 2 });
return;
}
int32_t zOffset = 0;
if (ride_subtype == OBJECT_ENTRY_INDEX_NULL)
{
vehicleEntry = &CableLiftVehicle;
}
else
{
auto rideEntry = GetRideEntry();
if (rideEntry == nullptr)
{
return;
}
auto vehicleEntryIndex = vehicle_type;
if (HasUpdateFlag(VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES))
{
vehicleEntryIndex++;
zOffset += 16;
}
if (vehicleEntryIndex >= std::size(rideEntry->vehicles))
{
return;
}
vehicleEntry = &rideEntry->vehicles[vehicleEntryIndex];
}
switch (vehicleEntry->PaintStyle)
{
case VEHICLE_VISUAL_DEFAULT:
vehicle_visual_default(session, imageDirection, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_LAUNCHED_FREEFALL:
vehicle_visual_launched_freefall(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_OBSERVATION_TOWER:
vehicle_visual_observation_tower(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_RIVER_RAPIDS:
vehicle_visual_river_rapids(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_MINI_GOLF_PLAYER:
vehicle_visual_mini_golf_player(session, x, imageDirection, y, z + zOffset, this);
break;
case VEHICLE_VISUAL_MINI_GOLF_BALL:
vehicle_visual_mini_golf_ball(session, x, imageDirection, y, z + zOffset, this);
break;
case VEHICLE_VISUAL_REVERSER:
vehicle_visual_reverser(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER:
vehicle_visual_splash_boats_or_water_coaster(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_ROTO_DROP:
vehicle_visual_roto_drop(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_VIRGINIA_REEL:
vehicle_visual_virginia_reel(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
case VEHICLE_VISUAL_SUBMARINE:
vehicle_visual_submarine(session, x, imageDirection, y, z + zOffset, this, vehicleEntry);
break;
}
}