mirror of https://github.com/OpenRCT2/OpenRCT2.git
4036 lines
216 KiB
C++
4036 lines
216 KiB
C++
/*****************************************************************************
|
|
* Copyright (c) 2014-2023 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/CarEntry.h"
|
|
#include "../ride/RideData.h"
|
|
#include "../ride/Vehicle.h"
|
|
#include "Track.h"
|
|
|
|
#include <iterator>
|
|
|
|
using namespace OpenRCT2::Entity::Yaw;
|
|
|
|
#pragma region VehicleBoundboxes
|
|
|
|
// 0x0098E52C:
|
|
const VehicleBoundBox 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 },
|
|
}
|
|
};
|
|
|
|
// Opposite Pitch values for reversed cars
|
|
const uint8_t PitchInvertTable[] = {
|
|
0, // Flat Track
|
|
5, 6, 7, 8, 1, 2, 3, 4, // Slopes 1
|
|
17, 18, 19, 20, 21, 22, 23, 16, 9, 10, 11, 12, 13, 14, 15, // Vertical Loop
|
|
29, 30, 31, 32, 33, 24, 25, 26, 27, 28, 39, 40, 41, 42, 43, 34, 35, 36, 37, 38, // Corkscrews
|
|
0, 0, 0, 0, 0, 0, // Helices
|
|
53, 54, 55, 50, 51, 52, // Slopes 2
|
|
56, 57, 58, // Zero-G Rolls
|
|
60, 59 // Spiral Lift Hills
|
|
};
|
|
|
|
// Opposite Bank values for reversed cars
|
|
const uint8_t BankInvertTable[] = { 0, 3, 4, 1, 2, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 15, 18, 19, 16, 17 };
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region VehiclePaintUtil
|
|
|
|
static void PaintVehicleRiders(
|
|
PaintSession& session, const Vehicle* vehicle, const CarEntry* carEntry, uint32_t baseImageId, int32_t z,
|
|
const VehicleBoundBox& bb)
|
|
{
|
|
baseImageId += carEntry->NumCarImages;
|
|
for (auto i = 0; i < 8; i++)
|
|
{
|
|
if (vehicle->num_peeps > (i * 2) && carEntry->no_seating_rows > i)
|
|
{
|
|
auto offsetImageId = baseImageId;
|
|
if (i == 0 && (carEntry->flags & CAR_ENTRY_FLAG_RIDER_ANIMATION))
|
|
{
|
|
offsetImageId += (carEntry->NumCarImages * 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::PaletteGhost);
|
|
}
|
|
|
|
PaintAddImageAsChild(
|
|
session, imageId, { 0, 0, z },
|
|
{ { bb.offset_x, bb.offset_y, bb.offset_z + z }, { bb.length_x, bb.length_y, bb.length_z } });
|
|
baseImageId += carEntry->NumCarImages;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 6D5214
|
|
static void vehicle_sprite_paint(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t spriteNum, const VehicleBoundBox& bb, int32_t z,
|
|
const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->draw_order >= std::size(VehicleBoundboxes))
|
|
{
|
|
return;
|
|
}
|
|
|
|
auto baseImageId = static_cast<uint32_t>(spriteNum);
|
|
if (carEntry->flags & CAR_ENTRY_FLAG_SPINNING_ADDITIONAL_FRAMES)
|
|
{
|
|
baseImageId += (vehicle->spin_sprite / 8) & 31;
|
|
}
|
|
if (carEntry->flags & CAR_ENTRY_FLAG_VEHICLE_ANIMATION)
|
|
{
|
|
baseImageId += vehicle->animation_frame;
|
|
}
|
|
|
|
auto imageId = ImageId(baseImageId, vehicle->colours.Body, vehicle->colours.Trim, vehicle->colours.Tertiary);
|
|
if (vehicle->IsGhost())
|
|
{
|
|
imageId = ImageId(baseImageId).WithRemap(FilterPaletteID::PaletteGhost);
|
|
}
|
|
PaintAddImageAsParent(
|
|
session, imageId, { 0, 0, z },
|
|
{ { bb.offset_x, bb.offset_y, bb.offset_z + z }, { bb.length_x, bb.length_y, bb.length_z } });
|
|
|
|
auto* dpi = &session.DPI;
|
|
if (dpi->zoom_level < ZoomLevel{ 2 } && vehicle->num_peeps > 0 && carEntry->no_seating_rows > 0)
|
|
{
|
|
PaintVehicleRiders(session, vehicle, carEntry, baseImageId, z, bb);
|
|
}
|
|
VehicleVisualSplashEffect(session, z, vehicle, carEntry);
|
|
}
|
|
|
|
// 6D520E
|
|
static void VehicleSpritePaintWithSwinging(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t spriteNum, int32_t boundingBoxNum, int32_t z,
|
|
const CarEntry* carEntry)
|
|
{
|
|
vehicle_sprite_paint(
|
|
session, vehicle, spriteNum + vehicle->SwingSprite, VehicleBoundboxes[carEntry->draw_order][boundingBoxNum], z,
|
|
carEntry);
|
|
}
|
|
|
|
static void VehicleSpritePaintRestraints(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
auto restraintFrame = ((vehicle->restraints_position - 64) / 64) * 4;
|
|
auto spriteNum = (carEntry->SpriteByYaw(imageDirection, SpriteGroupType::RestraintAnimation) + restraintFrame)
|
|
* carEntry->base_num_frames
|
|
+ carEntry->GroupImageId(SpriteGroupType::RestraintAnimation);
|
|
vehicle_sprite_paint(session, vehicle, spriteNum, VehicleBoundboxes[carEntry->draw_order][boundingBoxNum], z, carEntry);
|
|
}
|
|
|
|
// Returns the opposite of the bank angle for reversed cars, normal bank angle otherwise
|
|
static uint8_t GetPaintBankRotation(const Vehicle* vehicle)
|
|
{
|
|
return (vehicle->HasFlag(VehicleFlags::CarIsReversed)) ? BankInvertTable[vehicle->bank_rotation] : vehicle->bank_rotation;
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region FlatSlope
|
|
|
|
// 6D51DE
|
|
static void VehiclePitchFlatUnbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// Restraint animations are only drawn for vehicles that are in a cardinal direction (north, east, south, west)
|
|
if (vehicle->restraints_position >= 64 && carEntry->GroupEnabled(SpriteGroupType::RestraintAnimation)
|
|
&& (imageDirection & 7) == 0)
|
|
{
|
|
VehicleSpritePaintRestraints(session, vehicle, imageDirection, z, carEntry);
|
|
return;
|
|
}
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
auto spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopeFlat, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
|
|
// 6D4EE7
|
|
static void VehiclePitchFlatBankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4F34
|
|
static void VehiclePitchFlatBankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection) + 108;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4F0C
|
|
static void VehiclePitchFlatBankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4F5C
|
|
static void VehiclePitchFlatBankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked45))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection) ^ 8) + 108;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4F84
|
|
static void VehiclePitchFlatBankedLeft67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked67))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked67, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4FE4
|
|
static void VehiclePitchFlatBankedLeft90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked90))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked90, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D5055
|
|
static void VehiclePitchFlatBankedLeft112(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D50C6
|
|
static void VehiclePitchFlatBankedLeft135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D5137
|
|
static void VehiclePitchFlatBankedLeft157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 4);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4FB1
|
|
static void VehiclePitchFlatBankedRight67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked67, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D501B
|
|
static void VehiclePitchFlatBankedRight90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::FlatBanked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::FlatBanked90, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D508C
|
|
static void VehiclePitchFlatBankedRight112(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D50FD
|
|
static void VehiclePitchFlatBankedRight135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D516E
|
|
static void VehiclePitchFlatBankedRight157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::InlineTwists, imageDirection, 5);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4EE4
|
|
static void VehiclePitchUninvertedFlatBankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchFlatBankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D4F31
|
|
static void VehiclePitchUninvertedFlatBankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D4F09
|
|
static void VehiclePitchUninvertedFlatBankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchFlatBankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D4F59
|
|
static void VehiclePitchUninvertedFlatBankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D51D7
|
|
static void VehiclePitchFlat(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3DE4:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchFlatBankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchFlatBankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchFlatBankedLeft67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchFlatBankedLeft90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 7:
|
|
VehiclePitchFlatBankedLeft112(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 8:
|
|
VehiclePitchFlatBankedLeft135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 9:
|
|
VehiclePitchFlatBankedLeft157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchFlatBankedRight67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchFlatBankedRight90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 12:
|
|
VehiclePitchFlatBankedRight112(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 13:
|
|
VehiclePitchFlatBankedRight135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 14:
|
|
VehiclePitchFlatBankedRight157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 15:
|
|
// what is roll 15?
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 16:
|
|
VehiclePitchUninvertedFlatBankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 17:
|
|
VehiclePitchUninvertedFlatBankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 18:
|
|
VehiclePitchUninvertedFlatBankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 19:
|
|
VehiclePitchUninvertedFlatBankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region GentleSlopesUp
|
|
|
|
#pragma region SlopeUp12
|
|
|
|
// 6D4614
|
|
static void VehiclePitchUp12Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4662
|
|
static void VehiclePitchUp12BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D46DB
|
|
static void VehiclePitchUp12BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D467D
|
|
static void VehiclePitchUp12BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D46FD
|
|
static void VehiclePitchUp12BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D460D
|
|
static void VehiclePitchUp12(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3C04:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchUp12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchUp12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchUp12BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchUp12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchUp12BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 16:
|
|
VehiclePitchUp12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 17:
|
|
VehiclePitchUp12BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 18:
|
|
VehiclePitchUp12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 19:
|
|
VehiclePitchUp12BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchUp12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeUp25
|
|
|
|
// 6D4791
|
|
static void VehiclePitchUp25Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4833
|
|
static void VehiclePitchUp25BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D48D6
|
|
static void VehiclePitchUp25BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
if (carEntry->draw_order < 5)
|
|
boundingBoxNum += 108;
|
|
else
|
|
boundingBoxNum += 16;
|
|
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4858
|
|
static void VehiclePitchUp25BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4910
|
|
static void VehiclePitchUp25BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
if (carEntry->draw_order < 5)
|
|
boundingBoxNum = (boundingBoxNum ^ 8) + 108;
|
|
else
|
|
boundingBoxNum += 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedLeft67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked67))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked67, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedLeft90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked90))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked90, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedLeft112(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedLeft135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 4);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedLeft157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 8);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedRight67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked67, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedRight90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked90, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedRight112(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedRight135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 5);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp25BankedRight157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 9);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D476C
|
|
static void VehiclePitchUp25(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3CA4:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchUp25BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchUp25BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchUp25BankedLeft67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchUp25BankedLeft90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 7:
|
|
VehiclePitchUp25BankedLeft112(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 8:
|
|
VehiclePitchUp25BankedLeft135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 9:
|
|
VehiclePitchUp25BankedLeft157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchUp25BankedRight67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchUp25BankedRight90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 12:
|
|
VehiclePitchUp25BankedRight112(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 13:
|
|
VehiclePitchUp25BankedRight135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 14:
|
|
VehiclePitchUp25BankedRight157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 15:
|
|
VehiclePitchUp25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 16:
|
|
VehiclePitchUp25BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 17:
|
|
VehiclePitchUp25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 18:
|
|
VehiclePitchUp25BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 19:
|
|
VehiclePitchUp25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SteepSlopesUp
|
|
|
|
// 6D49DC
|
|
static void VehiclePitchUp42Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked45))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked45))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedLeft67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked67, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedLeft90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked90, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedRight67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked67, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp42BankedRight90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked90, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D49DC
|
|
static void VehiclePitchUp42(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchUp42BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchUp42BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchUp42BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchUp42BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchUp42BankedLeft67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchUp42BankedLeft90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchUp42BankedRight67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchUp42BankedRight90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchUp42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4A31
|
|
static void VehiclePitchUp60Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp25(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp60BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp60BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp60(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchUp60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchUp60BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchUp60BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchUp60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region GentleSlopesDown
|
|
|
|
#pragma region SlopeDown12
|
|
|
|
// 6D463D
|
|
static void VehiclePitchDown12Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D469B
|
|
static void VehiclePitchDown12BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4722
|
|
static void VehiclePitchDown12BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked45, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D46B9
|
|
static void VehiclePitchDown12BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4747
|
|
static void VehiclePitchDown12BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes12Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes12Banked45, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4636
|
|
static void VehiclePitchDown12(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3C54:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchDown12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchDown12BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchDown12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchDown12BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 7:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 8:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 9:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 12:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 13:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 14:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 15:
|
|
VehiclePitchDown12Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 16:
|
|
VehiclePitchDown12BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 17:
|
|
VehiclePitchDown12BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 18:
|
|
VehiclePitchDown12BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 19:
|
|
VehiclePitchDown12BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
#pragma endregion
|
|
|
|
#pragma region Down25
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeDown25
|
|
|
|
// 6D47E4
|
|
static void VehiclePitchDown25Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4880
|
|
static void VehiclePitchDown25BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked22))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4953
|
|
static void VehiclePitchDown25BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
if (carEntry->draw_order < 5)
|
|
boundingBoxNum += 108;
|
|
else
|
|
boundingBoxNum = (boundingBoxNum ^ 8) + 16;
|
|
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked45, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D48AB
|
|
static void VehiclePitchDown25BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked22))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 16;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4996
|
|
static void VehiclePitchDown25BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
if (carEntry->draw_order < 5)
|
|
boundingBoxNum = (boundingBoxNum ^ 8) + 108;
|
|
else
|
|
boundingBoxNum = (boundingBoxNum ^ 8) + 16;
|
|
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked45, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedLeft67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked67))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked67, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedLeft90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked90))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked90, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedLeft11BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedLeft135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 6);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedLeft157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = YawTo4(imageDirection) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 10);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedRight67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 124;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked67, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedRight90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 128;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25Banked90, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedRight11BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 132;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedRight135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 136;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 7);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown25BankedRight157(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes25InlineTwists))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection) ^ 2) + 140;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes25InlineTwists, imageDirection, 11);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D47DD
|
|
static void VehiclePitchDown25(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3CF4:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchDown25BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchDown25BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchDown25BankedLeft67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchDown25BankedLeft90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 7:
|
|
VehiclePitchDown25BankedLeft11BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 8:
|
|
VehiclePitchDown25BankedLeft135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 9:
|
|
VehiclePitchDown25BankedLeft157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchDown25BankedRight67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchDown25BankedRight90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 12:
|
|
VehiclePitchDown25BankedRight11BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 13:
|
|
VehiclePitchDown25BankedRight135(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 14:
|
|
VehiclePitchDown25BankedRight157(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 15:
|
|
VehiclePitchDown25Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 16:
|
|
VehiclePitchDown25BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 17:
|
|
VehiclePitchDown25BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 18:
|
|
VehiclePitchDown25BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 19:
|
|
VehiclePitchDown25BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SteepSlopesDown
|
|
|
|
// 6D4A05
|
|
static void VehiclePitchDown42Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo8(imageDirection)) ^ 4) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked45))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked45, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked45))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked45, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedLeft67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked67, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedLeft90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked90, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedRight67(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked67))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked67, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42BankedRight90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes42Banked90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo8(imageDirection)) + 32;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes42Banked90, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown42(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchDown42BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchDown42BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchDown42BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchDown42BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 5:
|
|
VehiclePitchDown42BankedLeft67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 6:
|
|
VehiclePitchDown42BankedLeft90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 10:
|
|
VehiclePitchDown42BankedRight67(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 11:
|
|
VehiclePitchDown42BankedRight90(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchDown42Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4A59
|
|
static void VehiclePitchDown60Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown25(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown60BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown60BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes60Banked22))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 40;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes60Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown60(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchDown60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchDown60BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchDown60BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchDown60Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region VerticalSlopesUp
|
|
|
|
// 6D4A81
|
|
static void VehiclePitchUp75(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes75))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 56;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes75, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4AE8
|
|
static void VehiclePitchUp90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes90))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo16(imageDirection)) + 60;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes90, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region LoopSlopesUp
|
|
|
|
// 6D4B57
|
|
static void VehiclePitchUp105(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 76;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4BB7
|
|
static void VehiclePitchUp120(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 80;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4C17
|
|
static void VehiclePitchUp135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 84;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 4);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4C77
|
|
static void VehiclePitchUp150(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 88;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 6);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4CD7
|
|
static void VehiclePitchUp165(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 92;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 8);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region InvertedSlope
|
|
|
|
// 6D4D37
|
|
static void VehiclePitchInverted(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopeInverted))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + 96;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopeInverted, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region VerticalSlopesDown
|
|
|
|
// 6D4AA3
|
|
static void VehiclePitchDown75(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
if (vehicle->GetTrackType() != TrackElemType::Down90ToDown60
|
|
&& (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
|
|
{
|
|
carEntry--;
|
|
}
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes75))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 56;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes75, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4B0D
|
|
static void VehiclePitchDown90(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
if (vehicle->GetTrackType() != TrackElemType::Down90 && (vehicle->GetTrackType()) != TrackElemType::Down90ToDown60
|
|
&& (vehicle->GetTrackType()) != TrackElemType::Down60ToDown90)
|
|
{
|
|
carEntry--;
|
|
}
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes90))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo16(imageDirection)) ^ 8) + 60;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes90, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region LoopSlopesDown
|
|
|
|
// 6D4B80
|
|
static void VehiclePitchDown105(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes90))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 76;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4BE0
|
|
static void VehiclePitchDown120(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes90))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 80;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4C40
|
|
static void VehiclePitchDown135(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 84;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 5);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4CA0
|
|
static void VehiclePitchDown150(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 88;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 7);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4D00
|
|
static void VehiclePitchDown165(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::SlopesLoop))
|
|
{
|
|
int32_t boundingBoxNum = ((YawTo4(imageDirection)) ^ 2) + 92;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::SlopesLoop, imageDirection, 9);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region CorkscrewSlopes
|
|
|
|
// 6D51A5
|
|
template<int32_t corkscrewFrame>
|
|
void VehiclePitchCorkscrew(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntry--;
|
|
}
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Corkscrews))
|
|
{
|
|
int32_t boundingBoxNum = (YawTo4(imageDirection)) + corkscrewFrame * 4 + 144;
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Corkscrews, imageDirection, corkscrewFrame);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlatUnbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region DiagonalSlopesUp
|
|
|
|
#pragma region SlopeUp8
|
|
|
|
// 6D4D67
|
|
static void VehiclePitchUp8Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4DB5
|
|
static void VehiclePitchUp8BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4DD3
|
|
static void VehiclePitchUp8BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp8BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp8BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4D60
|
|
static void VehiclePitchUp8(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3D44:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
case 16:
|
|
VehiclePitchUp8BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
case 18:
|
|
VehiclePitchUp8BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchUp8BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchUp8BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchUp8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeUp16
|
|
|
|
// 6D4E3A
|
|
static void VehiclePitchUp16Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp16BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked22, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp16BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked22, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp16BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked45, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp16BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp16BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked45, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchUp16BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchUp16(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (vehicle->bank_rotation)
|
|
{
|
|
case 0:
|
|
VehiclePitchUp16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchUp16BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchUp16BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchUp16BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchUp16BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchUp16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeUp50
|
|
|
|
// 6D4E8F
|
|
static void VehiclePitchUp50(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes50))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes50, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region DiagonalSlopesDown
|
|
|
|
#pragma region SlopeDown8
|
|
|
|
// 6D4D90
|
|
static void VehiclePitchDown8Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4DF4
|
|
static void VehiclePitchDown8BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4E15
|
|
static void VehiclePitchDown8BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown8BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked45, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown8BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes8Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes8Banked45, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
// 6D4D89
|
|
static void VehiclePitchDown8(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
// 0x009A3D94:
|
|
switch (GetPaintBankRotation(vehicle))
|
|
{
|
|
case 0:
|
|
VehiclePitchDown8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
case 16:
|
|
VehiclePitchDown8BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
case 18:
|
|
VehiclePitchDown8BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchDown8BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchDown8BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchDown8Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeDown16
|
|
|
|
// 6D4E63
|
|
static void VehiclePitchDown16Unbanked(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown16BankedLeft22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked22, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown16BankedRight22(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked22))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked22, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown16BankedLeft45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked45, imageDirection, 2);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown16BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown16BankedRight45(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes16Banked45))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes16Banked45, imageDirection, 3);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchDown16BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchDown16(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
switch (vehicle->bank_rotation)
|
|
{
|
|
case 0:
|
|
VehiclePitchDown16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 1:
|
|
VehiclePitchDown16BankedLeft22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 3:
|
|
VehiclePitchDown16BankedRight22(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 2:
|
|
VehiclePitchDown16BankedLeft45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
case 4:
|
|
VehiclePitchDown16BankedRight45(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
default:
|
|
VehiclePitchDown16Unbanked(session, vehicle, imageDirection, z, carEntry);
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SlopeDown50
|
|
|
|
// 6D4EB8
|
|
static void VehiclePitchDown50(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::Slopes50))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::Slopes50, imageDirection, 1);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region InvertingSlopesDown
|
|
|
|
// 6D47DA
|
|
static void VehiclePitchInvertingDown25(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchDown25(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D4A02
|
|
static void VehiclePitchInvertingDown42(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchDown42(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
// 6D4A56
|
|
static void VehiclePitchInvertingDown60(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
carEntry--;
|
|
VehiclePitchDown60(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
#pragma region SpiralLiftSlopes
|
|
|
|
// 6D4773
|
|
static void VehiclePitchSpiralLiftUp(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::CurvedLiftHillUp))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::CurvedLiftHillUp, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
static void VehiclePitchSpiralLiftDown(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry)
|
|
{
|
|
if (carEntry->GroupEnabled(SpriteGroupType::CurvedLiftHillDown))
|
|
{
|
|
int32_t boundingBoxNum = YawTo16(imageDirection);
|
|
int32_t spriteNum = carEntry->SpriteOffset(SpriteGroupType::CurvedLiftHillDown, imageDirection, 0);
|
|
VehicleSpritePaintWithSwinging(session, vehicle, spriteNum, boundingBoxNum, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
VehiclePitchFlat(session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
|
|
#pragma endregion
|
|
|
|
// 0x009A3B14:
|
|
using vehicle_sprite_func = void (*)(
|
|
PaintSession& session, const Vehicle* vehicle, int32_t imageDirection, int32_t z, const CarEntry* carEntry);
|
|
|
|
// 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<0>,
|
|
VehiclePitchCorkscrew<1>,
|
|
VehiclePitchCorkscrew<2>,
|
|
VehiclePitchCorkscrew<3>,
|
|
VehiclePitchCorkscrew<4>,
|
|
VehiclePitchCorkscrew<5>,
|
|
VehiclePitchCorkscrew<6>,
|
|
VehiclePitchCorkscrew<7>,
|
|
VehiclePitchCorkscrew<8>,
|
|
VehiclePitchCorkscrew<9>,
|
|
VehiclePitchCorkscrew<10>,
|
|
VehiclePitchCorkscrew<11>,
|
|
VehiclePitchCorkscrew<12>,
|
|
VehiclePitchCorkscrew<13>,
|
|
VehiclePitchCorkscrew<14>,
|
|
VehiclePitchCorkscrew<15>,
|
|
VehiclePitchCorkscrew<16>,
|
|
VehiclePitchCorkscrew<17>,
|
|
VehiclePitchCorkscrew<18>,
|
|
VehiclePitchCorkscrew<19>,
|
|
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
|
|
VehiclePitchUp8,
|
|
VehiclePitchUp16,
|
|
VehiclePitchUp50,
|
|
VehiclePitchDown8,
|
|
VehiclePitchDown16,
|
|
VehiclePitchDown50,
|
|
VehiclePitchInvertingDown25,
|
|
VehiclePitchInvertingDown42,
|
|
VehiclePitchInvertingDown60,
|
|
VehiclePitchSpiralLiftUp,
|
|
VehiclePitchSpiralLiftDown,
|
|
};
|
|
// clang-format on
|
|
|
|
#pragma region SplashEffects
|
|
|
|
/**
|
|
*
|
|
* rct2: 0x006D5600
|
|
*/
|
|
static void vehicle_visual_splash1_effect(PaintSession& 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 <= 5.0_mph)
|
|
{
|
|
return;
|
|
}
|
|
int32_t image_id = SPR_SPLASH_EFFECT_1_NE_0 + ((((vehicle->Orientation / 8) + session.CurrentRotation) & 3) * 8)
|
|
+ ((gCurrentTicks / 2) & 7);
|
|
PaintAddImageAsChild(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z }, { 0, 0, 0 } });
|
|
}
|
|
|
|
/**
|
|
*
|
|
* rct2: 0x006D5696
|
|
*/
|
|
static void vehicle_visual_splash2_effect(PaintSession& session, int32_t z, const Vehicle* vehicle)
|
|
{
|
|
if (vehicle->Orientation & 7)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Pitch != 0)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->velocity <= 5.0_mph)
|
|
{
|
|
return;
|
|
}
|
|
int32_t image_id = SPR_SPLASH_EFFECT_3_NE_0 + ((((vehicle->Orientation / 8) + session.CurrentRotation) & 3) * 8)
|
|
+ ((gCurrentTicks / 2) & 7);
|
|
PaintAddImageAsChild(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z }, { 0, 0, 0 } });
|
|
}
|
|
|
|
/**
|
|
*
|
|
* rct2: 0x006D57EE
|
|
*/
|
|
static void vehicle_visual_splash3_effect(PaintSession& session, int32_t z, const Vehicle* vehicle)
|
|
{
|
|
if (vehicle->Orientation & 7)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Pitch != 0)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->velocity <= 5.0_mph)
|
|
{
|
|
return;
|
|
}
|
|
int32_t image_id = SPR_SPLASH_EFFECT_1_NE_0 + ((((vehicle->Orientation / 8) + session.CurrentRotation) & 3) * 8)
|
|
+ ((gCurrentTicks / 2) & 7);
|
|
PaintAddImageAsChild(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z }, { 0, 0, 0 } });
|
|
}
|
|
|
|
/**
|
|
*
|
|
* rct2: 0x006D5783
|
|
*/
|
|
static void vehicle_visual_splash4_effect(PaintSession& session, int32_t z, const Vehicle* vehicle)
|
|
{
|
|
Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
|
|
if (vehicle2 == nullptr)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle2->velocity <= 5.0_mph)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Orientation & 7)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Pitch != 0)
|
|
{
|
|
return;
|
|
}
|
|
int32_t image_id = SPR_SPLASH_EFFECT_5_NE_0 + ((((vehicle->Orientation / 8) + session.CurrentRotation) & 3) * 8)
|
|
+ ((gCurrentTicks / 2) & 7);
|
|
PaintAddImageAsChild(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z }, { 1, 1, 0 } });
|
|
}
|
|
|
|
/**
|
|
*
|
|
* rct2: 0x006D5701
|
|
*/
|
|
static void vehicle_visual_splash5_effect(PaintSession& session, int32_t z, const Vehicle* vehicle)
|
|
{
|
|
Vehicle* vehicle2 = GetEntity<Vehicle>(vehicle->prev_vehicle_on_ride);
|
|
if (vehicle2 == nullptr)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle2->velocity <= 5.0_mph)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Orientation & 7)
|
|
{
|
|
return;
|
|
}
|
|
if (vehicle->Pitch != 0)
|
|
{
|
|
return;
|
|
}
|
|
if (!TrackElementIsCovered(vehicle->GetTrackType()))
|
|
{
|
|
return;
|
|
}
|
|
int32_t image_id = SPR_SPLASH_EFFECT_5_NE_0 + ((((vehicle->Orientation / 8) + session.CurrentRotation) & 3) * 8)
|
|
+ ((gCurrentTicks / 2) & 7);
|
|
PaintAddImageAsChild(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z }, { 1, 1, 0 } });
|
|
}
|
|
|
|
void VehicleVisualSplashEffect(PaintSession& session, int32_t z, const Vehicle* vehicle, const CarEntry* carEntry)
|
|
{
|
|
switch (carEntry->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 VehicleVisualDefault(
|
|
PaintSession& session, int32_t imageDirection, int32_t z, const Vehicle* vehicle, const CarEntry* carEntry)
|
|
{
|
|
if (vehicle->Pitch < std::size(PaintFunctionsByPitch))
|
|
{
|
|
if (vehicle->HasFlag(VehicleFlags::CarIsReversed))
|
|
{
|
|
auto imagePitch = PitchInvertTable[vehicle->Pitch];
|
|
auto imageYaw = (imageDirection + (OpenRCT2::Entity::Yaw::BaseRotation / 2))
|
|
& (OpenRCT2::Entity::Yaw::BaseRotation - 1);
|
|
PaintFunctionsByPitch[imagePitch](session, vehicle, imageYaw, z, carEntry);
|
|
}
|
|
else
|
|
{
|
|
PaintFunctionsByPitch[vehicle->Pitch](session, vehicle, imageDirection, z, carEntry);
|
|
}
|
|
}
|
|
}
|
|
|
|
void Vehicle::Paint(PaintSession& session, int32_t imageDirection) const
|
|
{
|
|
const CarEntry* carEntry;
|
|
|
|
if (HasFlag(VehicleFlags::Crashed))
|
|
{
|
|
PaintAddImageAsParent(
|
|
session, ImageId(SPR_WATER_PARTICLES_DENSE_0 + animation_frame), { 0, 0, z }, { { 0, 0, z + 2 }, { 1, 1, 0 } });
|
|
return;
|
|
}
|
|
|
|
int32_t zOffset = 0;
|
|
if (IsCableLift())
|
|
{
|
|
carEntry = &CableLiftVehicle;
|
|
}
|
|
else
|
|
{
|
|
auto rideEntry = GetRideEntry();
|
|
if (rideEntry == nullptr)
|
|
{
|
|
return;
|
|
}
|
|
|
|
auto carEntryIndex = vehicle_type;
|
|
if (HasFlag(VehicleFlags::CarIsInverted))
|
|
{
|
|
carEntryIndex++;
|
|
zOffset += 16;
|
|
}
|
|
|
|
if (carEntryIndex >= std::size(rideEntry->Cars))
|
|
{
|
|
return;
|
|
}
|
|
carEntry = &rideEntry->Cars[carEntryIndex];
|
|
}
|
|
|
|
switch (carEntry->PaintStyle)
|
|
{
|
|
case VEHICLE_VISUAL_DEFAULT:
|
|
VehicleVisualDefault(session, imageDirection, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_LAUNCHED_FREEFALL:
|
|
VehicleVisualLaunchedFreefall(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_OBSERVATION_TOWER:
|
|
VehicleVisualObservationTower(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_RIVER_RAPIDS:
|
|
VehicleVisualRiverRapids(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_MINI_GOLF_PLAYER:
|
|
VehicleVisualMiniGolfPlayer(session, x, imageDirection, y, z + zOffset, this);
|
|
break;
|
|
case VEHICLE_VISUAL_MINI_GOLF_BALL:
|
|
VehicleVisualMiniGolfBall(session, x, imageDirection, y, z + zOffset, this);
|
|
break;
|
|
case VEHICLE_VISUAL_REVERSER:
|
|
VehicleVisualReverser(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER:
|
|
VehicleVisualSplashBoatsOrWaterCoaster(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_ROTO_DROP:
|
|
VehicleVisualRotoDrop(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_VIRGINIA_REEL:
|
|
VehicleVisualVirginiaReel(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
case VEHICLE_VISUAL_SUBMARINE:
|
|
VehicleVisualSubmarine(session, x, imageDirection, y, z + zOffset, this, carEntry);
|
|
break;
|
|
}
|
|
}
|