From f110ea14f57decb38a282475d3840a42ce9ba933 Mon Sep 17 00:00:00 2001 From: Michael Bernardi Date: Fri, 26 Jul 2024 18:48:35 +1000 Subject: [PATCH 1/4] Apply check-code-formatting changes --- .github/workflows/ci.yml | 2 +- src/openrct2-ui/windows/Map.cpp | 2 +- src/openrct2/GameStateSnapshots.cpp | 2 +- src/openrct2/command_line/CommandLine.hpp | 25 ++++--------------- src/openrct2/core/BitSet.hpp | 2 +- src/openrct2/drawing/ScrollingText.cpp | 2 +- src/openrct2/drawing/TTFSDLPort.cpp | 1 + src/openrct2/entity/Guest.h | 2 +- src/openrct2/object/ObjectRepository.cpp | 10 ++++---- src/openrct2/platform/Platform.Linux.cpp | 2 +- src/openrct2/ride/TrackDesignRepository.cpp | 12 ++++----- src/openrct2/ride/TrackDesignRepository.h | 4 +-- src/openrct2/scenario/ScenarioRepository.cpp | 12 ++++----- .../scripting/bindings/game/ScContext.hpp | 3 ++- src/openrct2/ui/DummyWindowManager.cpp | 2 +- 15 files changed, 35 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3d33bbcaf..f2e024c945 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,7 @@ jobs: check-code-formatting: name: Check code formatting runs-on: ubuntu-latest - container: openrct2/openrct2-build:4-format + container: openrct2/openrct2-build:15-format defaults: run: shell: sh diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index db4acc0421..4f16633151 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -206,7 +206,7 @@ namespace OpenRCT2::Ui::Windows constexpr uint16_t FlashGuests = (1 << 1); constexpr uint16_t FlashStaff = (1 << 3); constexpr uint16_t SwitchColour = (1 << 15); // Every couple ticks the colour switches - } // namespace MapFlashingFlags + } // namespace MapFlashingFlags class MapWindow final : public Window { diff --git a/src/openrct2/GameStateSnapshots.cpp b/src/openrct2/GameStateSnapshots.cpp index 9d9d65f4a1..43b23a87d9 100644 --- a/src/openrct2/GameStateSnapshots.cpp +++ b/src/openrct2/GameStateSnapshots.cpp @@ -234,7 +234,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots std::memcpy(&valB, &spriteCmp.field, sizeof(struc::field)); \ uintptr_t offset = reinterpret_cast(&spriteBase.field) - reinterpret_cast(&spriteBase); \ changeData.diffs.push_back( \ - GameStateSpriteChange::Diff{ static_cast(offset), sizeof(struc::field), #struc, #field, valA, valB }); \ + GameStateSpriteChange::Diff { static_cast(offset), sizeof(struc::field), #struc, #field, valA, valB }); \ } void CompareSpriteDataCommon( diff --git a/src/openrct2/command_line/CommandLine.hpp b/src/openrct2/command_line/CommandLine.hpp index fbc6d497be..95998bb1d5 100644 --- a/src/openrct2/command_line/CommandLine.hpp +++ b/src/openrct2/command_line/CommandLine.hpp @@ -89,27 +89,12 @@ enum constexpr char NAC = '\0'; -#define ExampleTableEnd \ - { \ - nullptr, nullptr \ - } -#define OptionTableEnd \ - { \ - UINT8_MAX, nullptr, NAC, nullptr, nullptr \ - } -#define CommandTableEnd \ - { \ - nullptr, nullptr, nullptr, nullptr, nullptr \ - } +#define ExampleTableEnd { nullptr, nullptr } +#define OptionTableEnd { UINT8_MAX, nullptr, NAC, nullptr, nullptr } +#define CommandTableEnd { nullptr, nullptr, nullptr, nullptr, nullptr } -#define DefineCommand(name, params, options, func) \ - { \ - name, params, options, nullptr, func \ - } -#define DefineSubCommand(name, subcommandtable) \ - { \ - name, "", nullptr, subcommandtable, nullptr \ - } +#define DefineCommand(name, params, options, func) { name, params, options, nullptr, func } +#define DefineSubCommand(name, subcommandtable) { name, "", nullptr, subcommandtable, nullptr } namespace OpenRCT2::CommandLine { diff --git a/src/openrct2/core/BitSet.hpp b/src/openrct2/core/BitSet.hpp index 1ca06dbebb..4aef9c567f 100644 --- a/src/openrct2/core/BitSet.hpp +++ b/src/openrct2/core/BitSet.hpp @@ -130,7 +130,7 @@ namespace OpenRCT2 using value_type = typename StorageBlockType()>::value_type; }; } // namespace BitSet - } // namespace Detail + } // namespace Detail template class BitSet { diff --git a/src/openrct2/drawing/ScrollingText.cpp b/src/openrct2/drawing/ScrollingText.cpp index b1552f3f69..494663d279 100644 --- a/src/openrct2/drawing/ScrollingText.cpp +++ b/src/openrct2/drawing/ScrollingText.cpp @@ -160,7 +160,7 @@ static void ScrollingTextFormat(utf8* dst, size_t size, DrawScrollText* scrollTe extern bool TempForScrollText; -#define SCROLL_POS(x, y) (((y)*64) + (x)) +#define SCROLL_POS(x, y) (((y) * 64) + (x)) // clang-format off static constexpr int16_t _scrollpos0[] = { diff --git a/src/openrct2/drawing/TTFSDLPort.cpp b/src/openrct2/drawing/TTFSDLPort.cpp index 46ca0870ce..becfa00634 100644 --- a/src/openrct2/drawing/TTFSDLPort.cpp +++ b/src/openrct2/drawing/TTFSDLPort.cpp @@ -1,4 +1,5 @@ // Adapted from freetype.h in order to avoid C-style casts. +// clang-format off #define FT_LOAD_TARGET_ALT(x) (static_cast((x)&15) << 16) #define FT_IMAGE_TAG(value, _x1, _x2, _x3, _x4) \ diff --git a/src/openrct2/entity/Guest.h b/src/openrct2/entity/Guest.h index 330aeb1b39..915d4f8316 100644 --- a/src/openrct2/entity/Guest.h +++ b/src/openrct2/entity/Guest.h @@ -380,7 +380,7 @@ public: private: void UpdateRide(); - void UpdateOnRide(){}; // TODO + void UpdateOnRide() {}; // TODO void UpdateWalking(); void UpdateWaitingAtCrossing(); void UpdateQueuing(); diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index 0be587ed93..5be0e5eae8 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -84,11 +84,11 @@ private: public: explicit ObjectFileIndex(IObjectRepository& objectRepository, const IPlatformEnvironment& env) : FileIndex( - "object index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_OBJECTS), std::string(PATTERN), - std::vector{ - env.GetDirectoryPath(DIRBASE::OPENRCT2, DIRID::OBJECT), - env.GetDirectoryPath(DIRBASE::USER, DIRID::OBJECT), - }) + "object index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_OBJECTS), std::string(PATTERN), + std::vector{ + env.GetDirectoryPath(DIRBASE::OPENRCT2, DIRID::OBJECT), + env.GetDirectoryPath(DIRBASE::USER, DIRID::OBJECT), + }) , _objectRepository(objectRepository) { } diff --git a/src/openrct2/platform/Platform.Linux.cpp b/src/openrct2/platform/Platform.Linux.cpp index 309bb959da..4d4853d9e7 100644 --- a/src/openrct2/platform/Platform.Linux.cpp +++ b/src/openrct2/platform/Platform.Linux.cpp @@ -199,7 +199,7 @@ namespace OpenRCT2::Platform break; } } - } // end strip + } // end strip std::memcpy(pattern, langString, length); // copy all until first '.' or '@' pattern[length] = '\0'; // find _ if present diff --git a/src/openrct2/ride/TrackDesignRepository.cpp b/src/openrct2/ride/TrackDesignRepository.cpp index 9665171c84..20754ae482 100644 --- a/src/openrct2/ride/TrackDesignRepository.cpp +++ b/src/openrct2/ride/TrackDesignRepository.cpp @@ -61,12 +61,12 @@ private: public: explicit TrackDesignFileIndex(const IPlatformEnvironment& env) : FileIndex( - "track design index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_TRACKS), std::string(PATTERN), - std::vector({ - env.GetDirectoryPath(DIRBASE::RCT1, DIRID::TRACK), - env.GetDirectoryPath(DIRBASE::RCT2, DIRID::TRACK), - env.GetDirectoryPath(DIRBASE::USER, DIRID::TRACK), - })) + "track design index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_TRACKS), std::string(PATTERN), + std::vector({ + env.GetDirectoryPath(DIRBASE::RCT1, DIRID::TRACK), + env.GetDirectoryPath(DIRBASE::RCT2, DIRID::TRACK), + env.GetDirectoryPath(DIRBASE::USER, DIRID::TRACK), + })) { } diff --git a/src/openrct2/ride/TrackDesignRepository.h b/src/openrct2/ride/TrackDesignRepository.h index 41a83ce1cd..17aa3fdafc 100644 --- a/src/openrct2/ride/TrackDesignRepository.h +++ b/src/openrct2/ride/TrackDesignRepository.h @@ -32,8 +32,8 @@ struct ITrackDesignRepository [[nodiscard]] virtual size_t GetCount() const = 0; [[nodiscard]] virtual size_t GetCountForObjectEntry(ride_type_t rideType, const std::string& entry) const = 0; - [[nodiscard]] virtual std::vector GetItemsForObjectEntry( - ride_type_t rideType, const std::string& entry) const = 0; + [[nodiscard]] virtual std::vector + GetItemsForObjectEntry(ride_type_t rideType, const std::string& entry) const = 0; virtual void Scan(int32_t language) = 0; virtual bool Delete(const std::string& path) = 0; diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index 5c05dad2cd..e2b91456d4 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -130,12 +130,12 @@ private: public: explicit ScenarioFileIndex(const IPlatformEnvironment& env) : FileIndex( - "scenario index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_SCENARIOS), std::string(PATTERN), - std::vector({ - env.GetDirectoryPath(DIRBASE::RCT1, DIRID::SCENARIO), - env.GetDirectoryPath(DIRBASE::RCT2, DIRID::SCENARIO), - env.GetDirectoryPath(DIRBASE::USER, DIRID::SCENARIO), - })) + "scenario index", MAGIC_NUMBER, VERSION, env.GetFilePath(PATHID::CACHE_SCENARIOS), std::string(PATTERN), + std::vector({ + env.GetDirectoryPath(DIRBASE::RCT1, DIRID::SCENARIO), + env.GetDirectoryPath(DIRBASE::RCT2, DIRID::SCENARIO), + env.GetDirectoryPath(DIRBASE::USER, DIRID::SCENARIO), + })) { } diff --git a/src/openrct2/scripting/bindings/game/ScContext.hpp b/src/openrct2/scripting/bindings/game/ScContext.hpp index f398c39f14..5a06de9371 100644 --- a/src/openrct2/scripting/bindings/game/ScContext.hpp +++ b/src/openrct2/scripting/bindings/game/ScContext.hpp @@ -273,7 +273,8 @@ namespace OpenRCT2::Scripting // Only ensuring it was not in the same generated method fixed it. __declspec(noinline) # endif - std::shared_ptr CreateSubscription(HOOK_TYPE hookType, const DukValue& callback) + std::shared_ptr + CreateSubscription(HOOK_TYPE hookType, const DukValue& callback) { auto owner = _execInfo.GetCurrentPlugin(); auto cookie = _hookEngine.Subscribe(hookType, owner, callback); diff --git a/src/openrct2/ui/DummyWindowManager.cpp b/src/openrct2/ui/DummyWindowManager.cpp index a00e0964c2..29fde53974 100644 --- a/src/openrct2/ui/DummyWindowManager.cpp +++ b/src/openrct2/ui/DummyWindowManager.cpp @@ -14,7 +14,7 @@ namespace OpenRCT2::Ui { class DummyWindowManager final : public IWindowManager { - void Init() override{}; + void Init() override {}; WindowBase* OpenWindow(WindowClass /*wc*/) override { return nullptr; From 61ae3a26eedfdc1d2b54634c752ac6e9f2bca09f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 2 Oct 2024 10:50:54 +0200 Subject: [PATCH 2/4] Use image 17-format with clang 18 --- .github/workflows/ci.yml | 2 +- scripts/check-code-formatting | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2e024c945..68b20f4a07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,7 @@ jobs: check-code-formatting: name: Check code formatting runs-on: ubuntu-latest - container: openrct2/openrct2-build:15-format + container: openrct2/openrct2-build:17-format defaults: run: shell: sh diff --git a/scripts/check-code-formatting b/scripts/check-code-formatting index ecd195aecf..ee5845cf42 100755 --- a/scripts/check-code-formatting +++ b/scripts/check-code-formatting @@ -16,4 +16,4 @@ fi basedir="$($readlink_bin -f `dirname $0`/..)" cd $basedir -scripts/run-clang-format.py -r src test data/shaders --exclude src/thirdparty +scripts/run-clang-format.py --clang-format-executable /usr/lib/llvm18/bin/clang-format -r src test data/shaders --exclude src/thirdparty From 0333a8e362f54dc4235068c775102ec9f9448b23 Mon Sep 17 00:00:00 2001 From: Michael Bernardi Date: Thu, 3 Oct 2024 11:03:41 +1000 Subject: [PATCH 3/4] Replace SCROLL_POS macro with consteval function. --- src/openrct2/drawing/ScrollingText.cpp | 2213 ++++++++++++------------ 1 file changed, 1108 insertions(+), 1105 deletions(-) diff --git a/src/openrct2/drawing/ScrollingText.cpp b/src/openrct2/drawing/ScrollingText.cpp index 494663d279..99043e3c05 100644 --- a/src/openrct2/drawing/ScrollingText.cpp +++ b/src/openrct2/drawing/ScrollingText.cpp @@ -160,1225 +160,1228 @@ static void ScrollingTextFormat(utf8* dst, size_t size, DrawScrollText* scrollTe extern bool TempForScrollText; -#define SCROLL_POS(x, y) (((y) * 64) + (x)) +consteval int16_t ScrollPos(const int16_t x, const int16_t y) +{ + return y * 64 + x; +} // clang-format off static constexpr int16_t _scrollpos0[] = { - SCROLL_POS( 35, 12 ), - SCROLL_POS( 36, 12 ), - SCROLL_POS( 37, 11 ), - SCROLL_POS( 38, 11 ), - SCROLL_POS( 39, 10 ), - SCROLL_POS( 40, 10 ), - SCROLL_POS( 41, 9 ), - SCROLL_POS( 42, 9 ), - SCROLL_POS( 43, 8 ), - SCROLL_POS( 44, 8 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 7 ), - SCROLL_POS( 47, 6 ), - SCROLL_POS( 48, 6 ), - SCROLL_POS( 49, 5 ), - SCROLL_POS( 50, 5 ), - SCROLL_POS( 51, 4 ), - SCROLL_POS( 52, 4 ), - SCROLL_POS( 53, 3 ), - SCROLL_POS( 54, 3 ), - SCROLL_POS( 55, 2 ), - SCROLL_POS( 56, 2 ), - SCROLL_POS( 57, 1 ), - SCROLL_POS( 58, 1 ), + ScrollPos( 35, 12 ), + ScrollPos( 36, 12 ), + ScrollPos( 37, 11 ), + ScrollPos( 38, 11 ), + ScrollPos( 39, 10 ), + ScrollPos( 40, 10 ), + ScrollPos( 41, 9 ), + ScrollPos( 42, 9 ), + ScrollPos( 43, 8 ), + ScrollPos( 44, 8 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 7 ), + ScrollPos( 47, 6 ), + ScrollPos( 48, 6 ), + ScrollPos( 49, 5 ), + ScrollPos( 50, 5 ), + ScrollPos( 51, 4 ), + ScrollPos( 52, 4 ), + ScrollPos( 53, 3 ), + ScrollPos( 54, 3 ), + ScrollPos( 55, 2 ), + ScrollPos( 56, 2 ), + ScrollPos( 57, 1 ), + ScrollPos( 58, 1 ), -1, }; static constexpr int16_t _scrollpos1[] = { - SCROLL_POS( 5, 1 ), - SCROLL_POS( 6, 1 ), - SCROLL_POS( 7, 2 ), - SCROLL_POS( 8, 2 ), - SCROLL_POS( 9, 3 ), - SCROLL_POS( 10, 3 ), - SCROLL_POS( 11, 4 ), - SCROLL_POS( 12, 4 ), - SCROLL_POS( 13, 5 ), - SCROLL_POS( 14, 5 ), - SCROLL_POS( 15, 6 ), - SCROLL_POS( 16, 6 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 7 ), - SCROLL_POS( 19, 8 ), - SCROLL_POS( 20, 8 ), - SCROLL_POS( 21, 9 ), - SCROLL_POS( 22, 9 ), - SCROLL_POS( 23, 10 ), - SCROLL_POS( 24, 10 ), - SCROLL_POS( 25, 11 ), - SCROLL_POS( 26, 11 ), - SCROLL_POS( 27, 12 ), - SCROLL_POS( 28, 12 ), + ScrollPos( 5, 1 ), + ScrollPos( 6, 1 ), + ScrollPos( 7, 2 ), + ScrollPos( 8, 2 ), + ScrollPos( 9, 3 ), + ScrollPos( 10, 3 ), + ScrollPos( 11, 4 ), + ScrollPos( 12, 4 ), + ScrollPos( 13, 5 ), + ScrollPos( 14, 5 ), + ScrollPos( 15, 6 ), + ScrollPos( 16, 6 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 7 ), + ScrollPos( 19, 8 ), + ScrollPos( 20, 8 ), + ScrollPos( 21, 9 ), + ScrollPos( 22, 9 ), + ScrollPos( 23, 10 ), + ScrollPos( 24, 10 ), + ScrollPos( 25, 11 ), + ScrollPos( 26, 11 ), + ScrollPos( 27, 12 ), + ScrollPos( 28, 12 ), -1, }; static constexpr int16_t _scrollpos2[] = { - SCROLL_POS( 12, 1 ), - SCROLL_POS( 13, 1 ), - SCROLL_POS( 14, 2 ), - SCROLL_POS( 15, 2 ), - SCROLL_POS( 16, 3 ), - SCROLL_POS( 17, 3 ), - SCROLL_POS( 18, 4 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 6 ), - SCROLL_POS( 23, 6 ), - SCROLL_POS( 24, 7 ), - SCROLL_POS( 25, 7 ), - SCROLL_POS( 26, 8 ), - SCROLL_POS( 27, 8 ), - SCROLL_POS( 28, 9 ), - SCROLL_POS( 29, 9 ), - SCROLL_POS( 30, 10 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 9 ), - SCROLL_POS( 34, 9 ), - SCROLL_POS( 35, 8 ), - SCROLL_POS( 36, 8 ), - SCROLL_POS( 37, 7 ), - SCROLL_POS( 38, 7 ), - SCROLL_POS( 39, 6 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 4 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 3 ), - SCROLL_POS( 46, 3 ), - SCROLL_POS( 47, 2 ), - SCROLL_POS( 48, 2 ), - SCROLL_POS( 49, 1 ), - SCROLL_POS( 50, 1 ), + ScrollPos( 12, 1 ), + ScrollPos( 13, 1 ), + ScrollPos( 14, 2 ), + ScrollPos( 15, 2 ), + ScrollPos( 16, 3 ), + ScrollPos( 17, 3 ), + ScrollPos( 18, 4 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 6 ), + ScrollPos( 23, 6 ), + ScrollPos( 24, 7 ), + ScrollPos( 25, 7 ), + ScrollPos( 26, 8 ), + ScrollPos( 27, 8 ), + ScrollPos( 28, 9 ), + ScrollPos( 29, 9 ), + ScrollPos( 30, 10 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 9 ), + ScrollPos( 34, 9 ), + ScrollPos( 35, 8 ), + ScrollPos( 36, 8 ), + ScrollPos( 37, 7 ), + ScrollPos( 38, 7 ), + ScrollPos( 39, 6 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 4 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 3 ), + ScrollPos( 46, 3 ), + ScrollPos( 47, 2 ), + ScrollPos( 48, 2 ), + ScrollPos( 49, 1 ), + ScrollPos( 50, 1 ), -1, }; static constexpr int16_t _scrollpos3[] = { - SCROLL_POS( 16, 0 ), - SCROLL_POS( 17, 1 ), - SCROLL_POS( 18, 1 ), - SCROLL_POS( 19, 2 ), - SCROLL_POS( 20, 3 ), - SCROLL_POS( 21, 3 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 5 ), - SCROLL_POS( 24, 5 ), - SCROLL_POS( 25, 6 ), - SCROLL_POS( 26, 6 ), - SCROLL_POS( 27, 7 ), - SCROLL_POS( 28, 7 ), - SCROLL_POS( 29, 8 ), - SCROLL_POS( 30, 8 ), - SCROLL_POS( 31, 9 ), - SCROLL_POS( 32, 9 ), - SCROLL_POS( 33, 10 ), - SCROLL_POS( 34, 10 ), - SCROLL_POS( 35, 11 ), - SCROLL_POS( 36, 11 ), - SCROLL_POS( 37, 12 ), - SCROLL_POS( 38, 12 ), - SCROLL_POS( 39, 13 ), - SCROLL_POS( 40, 13 ), - SCROLL_POS( 41, 14 ), - SCROLL_POS( 42, 14 ), - SCROLL_POS( 43, 14 ), - SCROLL_POS( 44, 15 ), - SCROLL_POS( 45, 15 ), - SCROLL_POS( 46, 15 ), - SCROLL_POS( 47, 16 ), - SCROLL_POS( 48, 16 ), + ScrollPos( 16, 0 ), + ScrollPos( 17, 1 ), + ScrollPos( 18, 1 ), + ScrollPos( 19, 2 ), + ScrollPos( 20, 3 ), + ScrollPos( 21, 3 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 5 ), + ScrollPos( 24, 5 ), + ScrollPos( 25, 6 ), + ScrollPos( 26, 6 ), + ScrollPos( 27, 7 ), + ScrollPos( 28, 7 ), + ScrollPos( 29, 8 ), + ScrollPos( 30, 8 ), + ScrollPos( 31, 9 ), + ScrollPos( 32, 9 ), + ScrollPos( 33, 10 ), + ScrollPos( 34, 10 ), + ScrollPos( 35, 11 ), + ScrollPos( 36, 11 ), + ScrollPos( 37, 12 ), + ScrollPos( 38, 12 ), + ScrollPos( 39, 13 ), + ScrollPos( 40, 13 ), + ScrollPos( 41, 14 ), + ScrollPos( 42, 14 ), + ScrollPos( 43, 14 ), + ScrollPos( 44, 15 ), + ScrollPos( 45, 15 ), + ScrollPos( 46, 15 ), + ScrollPos( 47, 16 ), + ScrollPos( 48, 16 ), -1, }; static constexpr int16_t _scrollpos4[] = { - SCROLL_POS( 15, 17 ), - SCROLL_POS( 16, 17 ), - SCROLL_POS( 17, 16 ), - SCROLL_POS( 18, 16 ), - SCROLL_POS( 19, 16 ), - SCROLL_POS( 20, 15 ), - SCROLL_POS( 21, 15 ), - SCROLL_POS( 22, 15 ), - SCROLL_POS( 23, 14 ), - SCROLL_POS( 24, 14 ), - SCROLL_POS( 25, 13 ), - SCROLL_POS( 26, 13 ), - SCROLL_POS( 27, 12 ), - SCROLL_POS( 28, 12 ), - SCROLL_POS( 29, 11 ), - SCROLL_POS( 30, 11 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 9 ), - SCROLL_POS( 34, 9 ), - SCROLL_POS( 35, 8 ), - SCROLL_POS( 36, 8 ), - SCROLL_POS( 37, 7 ), - SCROLL_POS( 38, 7 ), - SCROLL_POS( 39, 6 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 4 ), - SCROLL_POS( 44, 3 ), - SCROLL_POS( 45, 2 ), - SCROLL_POS( 46, 2 ), - SCROLL_POS( 47, 1 ), - SCROLL_POS( 48, 0 ), + ScrollPos( 15, 17 ), + ScrollPos( 16, 17 ), + ScrollPos( 17, 16 ), + ScrollPos( 18, 16 ), + ScrollPos( 19, 16 ), + ScrollPos( 20, 15 ), + ScrollPos( 21, 15 ), + ScrollPos( 22, 15 ), + ScrollPos( 23, 14 ), + ScrollPos( 24, 14 ), + ScrollPos( 25, 13 ), + ScrollPos( 26, 13 ), + ScrollPos( 27, 12 ), + ScrollPos( 28, 12 ), + ScrollPos( 29, 11 ), + ScrollPos( 30, 11 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 9 ), + ScrollPos( 34, 9 ), + ScrollPos( 35, 8 ), + ScrollPos( 36, 8 ), + ScrollPos( 37, 7 ), + ScrollPos( 38, 7 ), + ScrollPos( 39, 6 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 4 ), + ScrollPos( 44, 3 ), + ScrollPos( 45, 2 ), + ScrollPos( 46, 2 ), + ScrollPos( 47, 1 ), + ScrollPos( 48, 0 ), -1, }; static constexpr int16_t _scrollpos5[] = { - SCROLL_POS( 4, 12 ), - SCROLL_POS( 5, 12 ), - SCROLL_POS( 6, 11 ), - SCROLL_POS( 7, 11 ), - SCROLL_POS( 8, 10 ), - SCROLL_POS( 9, 10 ), - SCROLL_POS( 10, 9 ), - SCROLL_POS( 11, 9 ), - SCROLL_POS( 12, 8 ), - SCROLL_POS( 13, 8 ), - SCROLL_POS( 14, 7 ), - SCROLL_POS( 15, 7 ), - SCROLL_POS( 16, 6 ), - SCROLL_POS( 17, 6 ), - SCROLL_POS( 18, 5 ), - SCROLL_POS( 19, 5 ), - SCROLL_POS( 20, 4 ), - SCROLL_POS( 21, 4 ), - SCROLL_POS( 22, 3 ), - SCROLL_POS( 23, 3 ), - SCROLL_POS( 24, 2 ), - SCROLL_POS( 25, 2 ), - SCROLL_POS( 26, 1 ), - SCROLL_POS( 27, 1 ), + ScrollPos( 4, 12 ), + ScrollPos( 5, 12 ), + ScrollPos( 6, 11 ), + ScrollPos( 7, 11 ), + ScrollPos( 8, 10 ), + ScrollPos( 9, 10 ), + ScrollPos( 10, 9 ), + ScrollPos( 11, 9 ), + ScrollPos( 12, 8 ), + ScrollPos( 13, 8 ), + ScrollPos( 14, 7 ), + ScrollPos( 15, 7 ), + ScrollPos( 16, 6 ), + ScrollPos( 17, 6 ), + ScrollPos( 18, 5 ), + ScrollPos( 19, 5 ), + ScrollPos( 20, 4 ), + ScrollPos( 21, 4 ), + ScrollPos( 22, 3 ), + ScrollPos( 23, 3 ), + ScrollPos( 24, 2 ), + ScrollPos( 25, 2 ), + ScrollPos( 26, 1 ), + ScrollPos( 27, 1 ), -1, }; static constexpr int16_t _scrollpos6[] = { - SCROLL_POS( 36, 1 ), - SCROLL_POS( 37, 1 ), - SCROLL_POS( 38, 2 ), - SCROLL_POS( 39, 2 ), - SCROLL_POS( 40, 3 ), - SCROLL_POS( 41, 3 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 4 ), - SCROLL_POS( 44, 5 ), - SCROLL_POS( 45, 5 ), - SCROLL_POS( 46, 6 ), - SCROLL_POS( 47, 6 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 7 ), - SCROLL_POS( 50, 8 ), - SCROLL_POS( 51, 8 ), - SCROLL_POS( 52, 9 ), - SCROLL_POS( 53, 9 ), - SCROLL_POS( 54, 10 ), - SCROLL_POS( 55, 10 ), - SCROLL_POS( 56, 11 ), - SCROLL_POS( 57, 11 ), - SCROLL_POS( 58, 12 ), - SCROLL_POS( 59, 12 ), + ScrollPos( 36, 1 ), + ScrollPos( 37, 1 ), + ScrollPos( 38, 2 ), + ScrollPos( 39, 2 ), + ScrollPos( 40, 3 ), + ScrollPos( 41, 3 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 4 ), + ScrollPos( 44, 5 ), + ScrollPos( 45, 5 ), + ScrollPos( 46, 6 ), + ScrollPos( 47, 6 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 7 ), + ScrollPos( 50, 8 ), + ScrollPos( 51, 8 ), + ScrollPos( 52, 9 ), + ScrollPos( 53, 9 ), + ScrollPos( 54, 10 ), + ScrollPos( 55, 10 ), + ScrollPos( 56, 11 ), + ScrollPos( 57, 11 ), + ScrollPos( 58, 12 ), + ScrollPos( 59, 12 ), -1, }; static constexpr int16_t _scrollpos7[] = { - SCROLL_POS( 8, 11 ), - SCROLL_POS( 9, 11 ), - SCROLL_POS( 10, 10 ), - SCROLL_POS( 11, 10 ), - SCROLL_POS( 12, 9 ), - SCROLL_POS( 13, 9 ), - SCROLL_POS( 14, 8 ), - SCROLL_POS( 15, 8 ), - SCROLL_POS( 16, 7 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 6 ), - SCROLL_POS( 19, 6 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 4 ), - SCROLL_POS( 24, 3 ), - SCROLL_POS( 25, 3 ), - SCROLL_POS( 26, 2 ), - SCROLL_POS( 27, 2 ), - SCROLL_POS( 28, 1 ), - SCROLL_POS( 29, 1 ), + ScrollPos( 8, 11 ), + ScrollPos( 9, 11 ), + ScrollPos( 10, 10 ), + ScrollPos( 11, 10 ), + ScrollPos( 12, 9 ), + ScrollPos( 13, 9 ), + ScrollPos( 14, 8 ), + ScrollPos( 15, 8 ), + ScrollPos( 16, 7 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 6 ), + ScrollPos( 19, 6 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 4 ), + ScrollPos( 24, 3 ), + ScrollPos( 25, 3 ), + ScrollPos( 26, 2 ), + ScrollPos( 27, 2 ), + ScrollPos( 28, 1 ), + ScrollPos( 29, 1 ), -1, }; static constexpr int16_t _scrollpos8[] = { - SCROLL_POS( 36, 2 ), - SCROLL_POS( 37, 2 ), - SCROLL_POS( 38, 3 ), - SCROLL_POS( 39, 3 ), - SCROLL_POS( 40, 4 ), - SCROLL_POS( 41, 4 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 6 ), - SCROLL_POS( 45, 6 ), - SCROLL_POS( 46, 7 ), - SCROLL_POS( 47, 7 ), - SCROLL_POS( 48, 8 ), - SCROLL_POS( 49, 8 ), - SCROLL_POS( 50, 9 ), - SCROLL_POS( 51, 9 ), - SCROLL_POS( 52, 10 ), - SCROLL_POS( 53, 10 ), - SCROLL_POS( 54, 11 ), - SCROLL_POS( 55, 11 ), + ScrollPos( 36, 2 ), + ScrollPos( 37, 2 ), + ScrollPos( 38, 3 ), + ScrollPos( 39, 3 ), + ScrollPos( 40, 4 ), + ScrollPos( 41, 4 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 6 ), + ScrollPos( 45, 6 ), + ScrollPos( 46, 7 ), + ScrollPos( 47, 7 ), + ScrollPos( 48, 8 ), + ScrollPos( 49, 8 ), + ScrollPos( 50, 9 ), + ScrollPos( 51, 9 ), + ScrollPos( 52, 10 ), + ScrollPos( 53, 10 ), + ScrollPos( 54, 11 ), + ScrollPos( 55, 11 ), -1, }; static constexpr int16_t _scrollpos9[] = { - SCROLL_POS( 11, 9 ), - SCROLL_POS( 12, 9 ), - SCROLL_POS( 13, 9 ), - SCROLL_POS( 14, 9 ), - SCROLL_POS( 15, 9 ), - SCROLL_POS( 16, 8 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 7 ), - SCROLL_POS( 19, 7 ), - SCROLL_POS( 20, 7 ), - SCROLL_POS( 21, 6 ), - SCROLL_POS( 22, 6 ), - SCROLL_POS( 23, 5 ), - SCROLL_POS( 24, 4 ), - SCROLL_POS( 25, 4 ), - SCROLL_POS( 26, 3 ), - SCROLL_POS( 27, 3 ), - SCROLL_POS( 28, 2 ), - SCROLL_POS( 29, 1 ), + ScrollPos( 11, 9 ), + ScrollPos( 12, 9 ), + ScrollPos( 13, 9 ), + ScrollPos( 14, 9 ), + ScrollPos( 15, 9 ), + ScrollPos( 16, 8 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 7 ), + ScrollPos( 19, 7 ), + ScrollPos( 20, 7 ), + ScrollPos( 21, 6 ), + ScrollPos( 22, 6 ), + ScrollPos( 23, 5 ), + ScrollPos( 24, 4 ), + ScrollPos( 25, 4 ), + ScrollPos( 26, 3 ), + ScrollPos( 27, 3 ), + ScrollPos( 28, 2 ), + ScrollPos( 29, 1 ), -1, }; static constexpr int16_t _scrollpos10[] = { - SCROLL_POS( 34, 1 ), - SCROLL_POS( 35, 2 ), - SCROLL_POS( 36, 3 ), - SCROLL_POS( 37, 3 ), - SCROLL_POS( 38, 4 ), - SCROLL_POS( 39, 4 ), - SCROLL_POS( 40, 5 ), - SCROLL_POS( 41, 6 ), - SCROLL_POS( 42, 6 ), - SCROLL_POS( 43, 7 ), - SCROLL_POS( 44, 7 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 8 ), - SCROLL_POS( 48, 9 ), - SCROLL_POS( 49, 9 ), - SCROLL_POS( 50, 9 ), - SCROLL_POS( 51, 9 ), - SCROLL_POS( 52, 9 ), + ScrollPos( 34, 1 ), + ScrollPos( 35, 2 ), + ScrollPos( 36, 3 ), + ScrollPos( 37, 3 ), + ScrollPos( 38, 4 ), + ScrollPos( 39, 4 ), + ScrollPos( 40, 5 ), + ScrollPos( 41, 6 ), + ScrollPos( 42, 6 ), + ScrollPos( 43, 7 ), + ScrollPos( 44, 7 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 8 ), + ScrollPos( 48, 9 ), + ScrollPos( 49, 9 ), + ScrollPos( 50, 9 ), + ScrollPos( 51, 9 ), + ScrollPos( 52, 9 ), -1, }; static constexpr int16_t _scrollpos11[] = { - SCROLL_POS( 14, 10 ), - SCROLL_POS( 15, 9 ), - SCROLL_POS( 16, 9 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 8 ), - SCROLL_POS( 19, 7 ), - SCROLL_POS( 20, 7 ), - SCROLL_POS( 21, 6 ), - SCROLL_POS( 22, 6 ), - SCROLL_POS( 23, 5 ), - SCROLL_POS( 24, 5 ), - SCROLL_POS( 25, 4 ), - SCROLL_POS( 26, 4 ), - SCROLL_POS( 27, 3 ), - SCROLL_POS( 28, 3 ), - SCROLL_POS( 29, 2 ), - SCROLL_POS( 30, 2 ), - SCROLL_POS( 31, 1 ), - SCROLL_POS( 32, 1 ), - SCROLL_POS( 33, 0 ), - SCROLL_POS( 34, 0 ), + ScrollPos( 14, 10 ), + ScrollPos( 15, 9 ), + ScrollPos( 16, 9 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 8 ), + ScrollPos( 19, 7 ), + ScrollPos( 20, 7 ), + ScrollPos( 21, 6 ), + ScrollPos( 22, 6 ), + ScrollPos( 23, 5 ), + ScrollPos( 24, 5 ), + ScrollPos( 25, 4 ), + ScrollPos( 26, 4 ), + ScrollPos( 27, 3 ), + ScrollPos( 28, 3 ), + ScrollPos( 29, 2 ), + ScrollPos( 30, 2 ), + ScrollPos( 31, 1 ), + ScrollPos( 32, 1 ), + ScrollPos( 33, 0 ), + ScrollPos( 34, 0 ), -1, }; static constexpr int16_t _scrollpos12[] = { - SCROLL_POS( 33, 1 ), - SCROLL_POS( 34, 2 ), - SCROLL_POS( 35, 2 ), - SCROLL_POS( 36, 3 ), - SCROLL_POS( 37, 3 ), - SCROLL_POS( 38, 4 ), - SCROLL_POS( 39, 4 ), - SCROLL_POS( 40, 5 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 6 ), - SCROLL_POS( 43, 6 ), - SCROLL_POS( 44, 7 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 8 ), - SCROLL_POS( 48, 9 ), - SCROLL_POS( 49, 9 ), - SCROLL_POS( 50, 10 ), - SCROLL_POS( 51, 10 ), - SCROLL_POS( 52, 11 ), - SCROLL_POS( 53, 11 ), + ScrollPos( 33, 1 ), + ScrollPos( 34, 2 ), + ScrollPos( 35, 2 ), + ScrollPos( 36, 3 ), + ScrollPos( 37, 3 ), + ScrollPos( 38, 4 ), + ScrollPos( 39, 4 ), + ScrollPos( 40, 5 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 6 ), + ScrollPos( 43, 6 ), + ScrollPos( 44, 7 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 8 ), + ScrollPos( 48, 9 ), + ScrollPos( 49, 9 ), + ScrollPos( 50, 10 ), + ScrollPos( 51, 10 ), + ScrollPos( 52, 11 ), + ScrollPos( 53, 11 ), -1, }; static constexpr int16_t _scrollpos13[] = { - SCROLL_POS( 12, 11 ), - SCROLL_POS( 13, 10 ), - SCROLL_POS( 14, 10 ), - SCROLL_POS( 15, 9 ), - SCROLL_POS( 16, 9 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 8 ), - SCROLL_POS( 19, 7 ), - SCROLL_POS( 20, 7 ), - SCROLL_POS( 21, 6 ), - SCROLL_POS( 22, 6 ), - SCROLL_POS( 23, 5 ), - SCROLL_POS( 24, 5 ), - SCROLL_POS( 25, 4 ), - SCROLL_POS( 26, 4 ), - SCROLL_POS( 27, 3 ), - SCROLL_POS( 28, 3 ), - SCROLL_POS( 29, 2 ), - SCROLL_POS( 30, 2 ), - SCROLL_POS( 31, 1 ), + ScrollPos( 12, 11 ), + ScrollPos( 13, 10 ), + ScrollPos( 14, 10 ), + ScrollPos( 15, 9 ), + ScrollPos( 16, 9 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 8 ), + ScrollPos( 19, 7 ), + ScrollPos( 20, 7 ), + ScrollPos( 21, 6 ), + ScrollPos( 22, 6 ), + ScrollPos( 23, 5 ), + ScrollPos( 24, 5 ), + ScrollPos( 25, 4 ), + ScrollPos( 26, 4 ), + ScrollPos( 27, 3 ), + ScrollPos( 28, 3 ), + ScrollPos( 29, 2 ), + ScrollPos( 30, 2 ), + ScrollPos( 31, 1 ), -1, }; static constexpr int16_t _scrollpos14[] = { - SCROLL_POS( 33, 1 ), - SCROLL_POS( 34, 2 ), - SCROLL_POS( 35, 2 ), - SCROLL_POS( 36, 3 ), - SCROLL_POS( 37, 3 ), - SCROLL_POS( 38, 4 ), - SCROLL_POS( 39, 4 ), - SCROLL_POS( 40, 5 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 6 ), - SCROLL_POS( 43, 6 ), - SCROLL_POS( 44, 7 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 8 ), - SCROLL_POS( 48, 9 ), - SCROLL_POS( 49, 9 ), - SCROLL_POS( 50, 10 ), - SCROLL_POS( 51, 10 ), - SCROLL_POS( 52, 11 ), - SCROLL_POS( 53, 11 ), + ScrollPos( 33, 1 ), + ScrollPos( 34, 2 ), + ScrollPos( 35, 2 ), + ScrollPos( 36, 3 ), + ScrollPos( 37, 3 ), + ScrollPos( 38, 4 ), + ScrollPos( 39, 4 ), + ScrollPos( 40, 5 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 6 ), + ScrollPos( 43, 6 ), + ScrollPos( 44, 7 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 8 ), + ScrollPos( 48, 9 ), + ScrollPos( 49, 9 ), + ScrollPos( 50, 10 ), + ScrollPos( 51, 10 ), + ScrollPos( 52, 11 ), + ScrollPos( 53, 11 ), -1, }; static constexpr int16_t _scrollpos15[] = { - SCROLL_POS( 10, 10 ), - SCROLL_POS( 11, 10 ), - SCROLL_POS( 12, 9 ), - SCROLL_POS( 13, 9 ), - SCROLL_POS( 14, 8 ), - SCROLL_POS( 15, 8 ), - SCROLL_POS( 16, 7 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 6 ), - SCROLL_POS( 19, 6 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 4 ), - SCROLL_POS( 24, 3 ), - SCROLL_POS( 25, 3 ), - SCROLL_POS( 26, 2 ), - SCROLL_POS( 27, 2 ), - SCROLL_POS( 28, 1 ), - SCROLL_POS( 29, 1 ), - SCROLL_POS( 30, 0 ), - SCROLL_POS( 31, 0 ), + ScrollPos( 10, 10 ), + ScrollPos( 11, 10 ), + ScrollPos( 12, 9 ), + ScrollPos( 13, 9 ), + ScrollPos( 14, 8 ), + ScrollPos( 15, 8 ), + ScrollPos( 16, 7 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 6 ), + ScrollPos( 19, 6 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 4 ), + ScrollPos( 24, 3 ), + ScrollPos( 25, 3 ), + ScrollPos( 26, 2 ), + ScrollPos( 27, 2 ), + ScrollPos( 28, 1 ), + ScrollPos( 29, 1 ), + ScrollPos( 30, 0 ), + ScrollPos( 31, 0 ), -1, }; static constexpr int16_t _scrollpos16[] = { - SCROLL_POS( 33, 0 ), - SCROLL_POS( 34, 0 ), - SCROLL_POS( 35, 1 ), - SCROLL_POS( 36, 1 ), - SCROLL_POS( 37, 2 ), - SCROLL_POS( 38, 2 ), - SCROLL_POS( 39, 3 ), - SCROLL_POS( 40, 3 ), - SCROLL_POS( 41, 4 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 5 ), - SCROLL_POS( 45, 6 ), - SCROLL_POS( 46, 6 ), - SCROLL_POS( 47, 7 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 8 ), - SCROLL_POS( 50, 8 ), - SCROLL_POS( 51, 9 ), - SCROLL_POS( 52, 9 ), - SCROLL_POS( 53, 10 ), - SCROLL_POS( 54, 10 ), + ScrollPos( 33, 0 ), + ScrollPos( 34, 0 ), + ScrollPos( 35, 1 ), + ScrollPos( 36, 1 ), + ScrollPos( 37, 2 ), + ScrollPos( 38, 2 ), + ScrollPos( 39, 3 ), + ScrollPos( 40, 3 ), + ScrollPos( 41, 4 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 5 ), + ScrollPos( 45, 6 ), + ScrollPos( 46, 6 ), + ScrollPos( 47, 7 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 8 ), + ScrollPos( 50, 8 ), + ScrollPos( 51, 9 ), + ScrollPos( 52, 9 ), + ScrollPos( 53, 10 ), + ScrollPos( 54, 10 ), -1, }; static constexpr int16_t _scrollpos17[] = { - SCROLL_POS( 6, 11 ), - SCROLL_POS( 7, 11 ), - SCROLL_POS( 8, 10 ), - SCROLL_POS( 9, 10 ), - SCROLL_POS( 10, 9 ), - SCROLL_POS( 11, 9 ), - SCROLL_POS( 12, 8 ), - SCROLL_POS( 13, 8 ), - SCROLL_POS( 14, 7 ), - SCROLL_POS( 15, 7 ), - SCROLL_POS( 16, 6 ), - SCROLL_POS( 17, 6 ), - SCROLL_POS( 18, 5 ), - SCROLL_POS( 19, 5 ), - SCROLL_POS( 20, 4 ), - SCROLL_POS( 21, 4 ), - SCROLL_POS( 22, 3 ), - SCROLL_POS( 23, 3 ), - SCROLL_POS( 24, 2 ), - SCROLL_POS( 25, 2 ), - SCROLL_POS( 26, 1 ), - SCROLL_POS( 27, 1 ), - SCROLL_POS( 28, 0 ), - SCROLL_POS( 29, 0 ), + ScrollPos( 6, 11 ), + ScrollPos( 7, 11 ), + ScrollPos( 8, 10 ), + ScrollPos( 9, 10 ), + ScrollPos( 10, 9 ), + ScrollPos( 11, 9 ), + ScrollPos( 12, 8 ), + ScrollPos( 13, 8 ), + ScrollPos( 14, 7 ), + ScrollPos( 15, 7 ), + ScrollPos( 16, 6 ), + ScrollPos( 17, 6 ), + ScrollPos( 18, 5 ), + ScrollPos( 19, 5 ), + ScrollPos( 20, 4 ), + ScrollPos( 21, 4 ), + ScrollPos( 22, 3 ), + ScrollPos( 23, 3 ), + ScrollPos( 24, 2 ), + ScrollPos( 25, 2 ), + ScrollPos( 26, 1 ), + ScrollPos( 27, 1 ), + ScrollPos( 28, 0 ), + ScrollPos( 29, 0 ), -1, }; static constexpr int16_t _scrollpos18[] = { - SCROLL_POS( 34, 0 ), - SCROLL_POS( 35, 0 ), - SCROLL_POS( 36, 1 ), - SCROLL_POS( 37, 1 ), - SCROLL_POS( 38, 2 ), - SCROLL_POS( 39, 2 ), - SCROLL_POS( 40, 3 ), - SCROLL_POS( 41, 3 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 4 ), - SCROLL_POS( 44, 5 ), - SCROLL_POS( 45, 5 ), - SCROLL_POS( 46, 6 ), - SCROLL_POS( 47, 6 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 7 ), - SCROLL_POS( 50, 8 ), - SCROLL_POS( 51, 8 ), - SCROLL_POS( 52, 9 ), - SCROLL_POS( 53, 9 ), - SCROLL_POS( 54, 10 ), - SCROLL_POS( 55, 10 ), - SCROLL_POS( 56, 11 ), - SCROLL_POS( 57, 11 ), + ScrollPos( 34, 0 ), + ScrollPos( 35, 0 ), + ScrollPos( 36, 1 ), + ScrollPos( 37, 1 ), + ScrollPos( 38, 2 ), + ScrollPos( 39, 2 ), + ScrollPos( 40, 3 ), + ScrollPos( 41, 3 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 4 ), + ScrollPos( 44, 5 ), + ScrollPos( 45, 5 ), + ScrollPos( 46, 6 ), + ScrollPos( 47, 6 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 7 ), + ScrollPos( 50, 8 ), + ScrollPos( 51, 8 ), + ScrollPos( 52, 9 ), + ScrollPos( 53, 9 ), + ScrollPos( 54, 10 ), + ScrollPos( 55, 10 ), + ScrollPos( 56, 11 ), + ScrollPos( 57, 11 ), -1, }; static constexpr int16_t _scrollpos19[] = { - SCROLL_POS( 13, 1 ), - SCROLL_POS( 14, 1 ), - SCROLL_POS( 15, 2 ), - SCROLL_POS( 16, 2 ), - SCROLL_POS( 17, 3 ), - SCROLL_POS( 18, 3 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 4 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 5 ), - SCROLL_POS( 23, 6 ), - SCROLL_POS( 24, 6 ), - SCROLL_POS( 25, 7 ), - SCROLL_POS( 26, 7 ), - SCROLL_POS( 27, 8 ), - SCROLL_POS( 28, 8 ), - SCROLL_POS( 29, 9 ), - SCROLL_POS( 30, 9 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 10 ), - SCROLL_POS( 34, 9 ), - SCROLL_POS( 35, 9 ), - SCROLL_POS( 36, 8 ), - SCROLL_POS( 37, 8 ), - SCROLL_POS( 38, 7 ), - SCROLL_POS( 39, 7 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 6 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 4 ), - SCROLL_POS( 46, 3 ), - SCROLL_POS( 47, 3 ), - SCROLL_POS( 48, 2 ), - SCROLL_POS( 49, 2 ), - SCROLL_POS( 50, 1 ), - SCROLL_POS( 51, 1 ), + ScrollPos( 13, 1 ), + ScrollPos( 14, 1 ), + ScrollPos( 15, 2 ), + ScrollPos( 16, 2 ), + ScrollPos( 17, 3 ), + ScrollPos( 18, 3 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 4 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 5 ), + ScrollPos( 23, 6 ), + ScrollPos( 24, 6 ), + ScrollPos( 25, 7 ), + ScrollPos( 26, 7 ), + ScrollPos( 27, 8 ), + ScrollPos( 28, 8 ), + ScrollPos( 29, 9 ), + ScrollPos( 30, 9 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 10 ), + ScrollPos( 34, 9 ), + ScrollPos( 35, 9 ), + ScrollPos( 36, 8 ), + ScrollPos( 37, 8 ), + ScrollPos( 38, 7 ), + ScrollPos( 39, 7 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 6 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 4 ), + ScrollPos( 46, 3 ), + ScrollPos( 47, 3 ), + ScrollPos( 48, 2 ), + ScrollPos( 49, 2 ), + ScrollPos( 50, 1 ), + ScrollPos( 51, 1 ), -1, }; static constexpr int16_t _scrollpos20[] = { - SCROLL_POS( 12, 1 ), - SCROLL_POS( 13, 3 ), - SCROLL_POS( 14, 4 ), - SCROLL_POS( 15, 5 ), - SCROLL_POS( 16, 6 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 7 ), - SCROLL_POS( 19, 8 ), - SCROLL_POS( 20, 8 ), - SCROLL_POS( 21, 9 ), - SCROLL_POS( 22, 9 ), - SCROLL_POS( 23, 9 ), - SCROLL_POS( 24, 10 ), - SCROLL_POS( 25, 10 ), - SCROLL_POS( 26, 10 ), - SCROLL_POS( 27, 10 ), - SCROLL_POS( 28, 10 ), - SCROLL_POS( 29, 10 ), - SCROLL_POS( 30, 10 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 10 ), - SCROLL_POS( 34, 10 ), - SCROLL_POS( 35, 10 ), - SCROLL_POS( 36, 10 ), - SCROLL_POS( 37, 10 ), - SCROLL_POS( 38, 10 ), - SCROLL_POS( 39, 9 ), - SCROLL_POS( 40, 9 ), - SCROLL_POS( 41, 9 ), - SCROLL_POS( 42, 8 ), - SCROLL_POS( 43, 8 ), - SCROLL_POS( 44, 7 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 6 ), - SCROLL_POS( 47, 5 ), - SCROLL_POS( 48, 4 ), - SCROLL_POS( 49, 3 ), + ScrollPos( 12, 1 ), + ScrollPos( 13, 3 ), + ScrollPos( 14, 4 ), + ScrollPos( 15, 5 ), + ScrollPos( 16, 6 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 7 ), + ScrollPos( 19, 8 ), + ScrollPos( 20, 8 ), + ScrollPos( 21, 9 ), + ScrollPos( 22, 9 ), + ScrollPos( 23, 9 ), + ScrollPos( 24, 10 ), + ScrollPos( 25, 10 ), + ScrollPos( 26, 10 ), + ScrollPos( 27, 10 ), + ScrollPos( 28, 10 ), + ScrollPos( 29, 10 ), + ScrollPos( 30, 10 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 10 ), + ScrollPos( 34, 10 ), + ScrollPos( 35, 10 ), + ScrollPos( 36, 10 ), + ScrollPos( 37, 10 ), + ScrollPos( 38, 10 ), + ScrollPos( 39, 9 ), + ScrollPos( 40, 9 ), + ScrollPos( 41, 9 ), + ScrollPos( 42, 8 ), + ScrollPos( 43, 8 ), + ScrollPos( 44, 7 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 6 ), + ScrollPos( 47, 5 ), + ScrollPos( 48, 4 ), + ScrollPos( 49, 3 ), -1, }; static constexpr int16_t _scrollpos21[] = { - SCROLL_POS( 12, 1 ), - SCROLL_POS( 13, 1 ), - SCROLL_POS( 14, 2 ), - SCROLL_POS( 15, 2 ), - SCROLL_POS( 16, 3 ), - SCROLL_POS( 17, 3 ), - SCROLL_POS( 18, 4 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 6 ), - SCROLL_POS( 23, 6 ), - SCROLL_POS( 24, 7 ), - SCROLL_POS( 25, 7 ), - SCROLL_POS( 26, 8 ), - SCROLL_POS( 27, 8 ), - SCROLL_POS( 28, 9 ), - SCROLL_POS( 29, 9 ), - SCROLL_POS( 30, 10 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 9 ), - SCROLL_POS( 34, 9 ), - SCROLL_POS( 35, 8 ), - SCROLL_POS( 36, 8 ), - SCROLL_POS( 37, 7 ), - SCROLL_POS( 38, 7 ), - SCROLL_POS( 39, 6 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 4 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 3 ), - SCROLL_POS( 46, 3 ), - SCROLL_POS( 47, 2 ), - SCROLL_POS( 48, 2 ), - SCROLL_POS( 49, 1 ), + ScrollPos( 12, 1 ), + ScrollPos( 13, 1 ), + ScrollPos( 14, 2 ), + ScrollPos( 15, 2 ), + ScrollPos( 16, 3 ), + ScrollPos( 17, 3 ), + ScrollPos( 18, 4 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 6 ), + ScrollPos( 23, 6 ), + ScrollPos( 24, 7 ), + ScrollPos( 25, 7 ), + ScrollPos( 26, 8 ), + ScrollPos( 27, 8 ), + ScrollPos( 28, 9 ), + ScrollPos( 29, 9 ), + ScrollPos( 30, 10 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 9 ), + ScrollPos( 34, 9 ), + ScrollPos( 35, 8 ), + ScrollPos( 36, 8 ), + ScrollPos( 37, 7 ), + ScrollPos( 38, 7 ), + ScrollPos( 39, 6 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 4 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 3 ), + ScrollPos( 46, 3 ), + ScrollPos( 47, 2 ), + ScrollPos( 48, 2 ), + ScrollPos( 49, 1 ), -1, }; static constexpr int16_t _scrollpos22[] = { - SCROLL_POS( 16, 1 ), - SCROLL_POS( 17, 1 ), - SCROLL_POS( 18, 2 ), - SCROLL_POS( 19, 2 ), - SCROLL_POS( 20, 3 ), - SCROLL_POS( 21, 3 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 4 ), - SCROLL_POS( 24, 5 ), - SCROLL_POS( 25, 5 ), - SCROLL_POS( 26, 6 ), - SCROLL_POS( 27, 6 ), - SCROLL_POS( 28, 6 ), - SCROLL_POS( 29, 6 ), - SCROLL_POS( 30, 6 ), - SCROLL_POS( 31, 6 ), - SCROLL_POS( 32, 6 ), - SCROLL_POS( 33, 6 ), - SCROLL_POS( 34, 6 ), - SCROLL_POS( 35, 6 ), - SCROLL_POS( 36, 6 ), - SCROLL_POS( 37, 6 ), - SCROLL_POS( 38, 6 ), - SCROLL_POS( 39, 5 ), - SCROLL_POS( 40, 5 ), - SCROLL_POS( 41, 4 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 3 ), - SCROLL_POS( 44, 3 ), - SCROLL_POS( 45, 2 ), - SCROLL_POS( 46, 2 ), - SCROLL_POS( 47, 1 ), - SCROLL_POS( 48, 1 ), + ScrollPos( 16, 1 ), + ScrollPos( 17, 1 ), + ScrollPos( 18, 2 ), + ScrollPos( 19, 2 ), + ScrollPos( 20, 3 ), + ScrollPos( 21, 3 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 4 ), + ScrollPos( 24, 5 ), + ScrollPos( 25, 5 ), + ScrollPos( 26, 6 ), + ScrollPos( 27, 6 ), + ScrollPos( 28, 6 ), + ScrollPos( 29, 6 ), + ScrollPos( 30, 6 ), + ScrollPos( 31, 6 ), + ScrollPos( 32, 6 ), + ScrollPos( 33, 6 ), + ScrollPos( 34, 6 ), + ScrollPos( 35, 6 ), + ScrollPos( 36, 6 ), + ScrollPos( 37, 6 ), + ScrollPos( 38, 6 ), + ScrollPos( 39, 5 ), + ScrollPos( 40, 5 ), + ScrollPos( 41, 4 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 3 ), + ScrollPos( 44, 3 ), + ScrollPos( 45, 2 ), + ScrollPos( 46, 2 ), + ScrollPos( 47, 1 ), + ScrollPos( 48, 1 ), -1, }; static constexpr int16_t _scrollpos23[] = { - SCROLL_POS( 15, 1 ), - SCROLL_POS( 16, 2 ), - SCROLL_POS( 17, 2 ), - SCROLL_POS( 18, 3 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 5 ), - SCROLL_POS( 23, 6 ), - SCROLL_POS( 24, 6 ), - SCROLL_POS( 25, 6 ), - SCROLL_POS( 26, 6 ), - SCROLL_POS( 27, 7 ), - SCROLL_POS( 28, 7 ), - SCROLL_POS( 29, 7 ), - SCROLL_POS( 30, 7 ), - SCROLL_POS( 31, 7 ), - SCROLL_POS( 32, 7 ), - SCROLL_POS( 33, 7 ), - SCROLL_POS( 34, 7 ), - SCROLL_POS( 35, 7 ), - SCROLL_POS( 36, 7 ), - SCROLL_POS( 37, 6 ), - SCROLL_POS( 38, 6 ), - SCROLL_POS( 39, 6 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 3 ), - SCROLL_POS( 46, 3 ), - SCROLL_POS( 47, 2 ), - SCROLL_POS( 48, 1 ), + ScrollPos( 15, 1 ), + ScrollPos( 16, 2 ), + ScrollPos( 17, 2 ), + ScrollPos( 18, 3 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 5 ), + ScrollPos( 23, 6 ), + ScrollPos( 24, 6 ), + ScrollPos( 25, 6 ), + ScrollPos( 26, 6 ), + ScrollPos( 27, 7 ), + ScrollPos( 28, 7 ), + ScrollPos( 29, 7 ), + ScrollPos( 30, 7 ), + ScrollPos( 31, 7 ), + ScrollPos( 32, 7 ), + ScrollPos( 33, 7 ), + ScrollPos( 34, 7 ), + ScrollPos( 35, 7 ), + ScrollPos( 36, 7 ), + ScrollPos( 37, 6 ), + ScrollPos( 38, 6 ), + ScrollPos( 39, 6 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 3 ), + ScrollPos( 46, 3 ), + ScrollPos( 47, 2 ), + ScrollPos( 48, 1 ), -1, }; static constexpr int16_t _scrollpos24[] = { - SCROLL_POS( 8, 9 ), - SCROLL_POS( 9, 9 ), - SCROLL_POS( 10, 8 ), - SCROLL_POS( 11, 8 ), - SCROLL_POS( 12, 7 ), - SCROLL_POS( 13, 7 ), - SCROLL_POS( 14, 6 ), - SCROLL_POS( 15, 6 ), - SCROLL_POS( 16, 5 ), - SCROLL_POS( 17, 5 ), - SCROLL_POS( 18, 4 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 3 ), - SCROLL_POS( 21, 3 ), - SCROLL_POS( 22, 2 ), - SCROLL_POS( 23, 2 ), - SCROLL_POS( 24, 1 ), - SCROLL_POS( 25, 1 ), - SCROLL_POS( 26, 0 ), - SCROLL_POS( 27, 0 ), + ScrollPos( 8, 9 ), + ScrollPos( 9, 9 ), + ScrollPos( 10, 8 ), + ScrollPos( 11, 8 ), + ScrollPos( 12, 7 ), + ScrollPos( 13, 7 ), + ScrollPos( 14, 6 ), + ScrollPos( 15, 6 ), + ScrollPos( 16, 5 ), + ScrollPos( 17, 5 ), + ScrollPos( 18, 4 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 3 ), + ScrollPos( 21, 3 ), + ScrollPos( 22, 2 ), + ScrollPos( 23, 2 ), + ScrollPos( 24, 1 ), + ScrollPos( 25, 1 ), + ScrollPos( 26, 0 ), + ScrollPos( 27, 0 ), -1, }; static constexpr int16_t _scrollpos25[] = { - SCROLL_POS( 36, 0 ), - SCROLL_POS( 37, 0 ), - SCROLL_POS( 38, 1 ), - SCROLL_POS( 39, 1 ), - SCROLL_POS( 40, 2 ), - SCROLL_POS( 41, 2 ), - SCROLL_POS( 42, 3 ), - SCROLL_POS( 43, 3 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 4 ), - SCROLL_POS( 46, 5 ), - SCROLL_POS( 47, 5 ), - SCROLL_POS( 48, 6 ), - SCROLL_POS( 49, 6 ), - SCROLL_POS( 50, 7 ), - SCROLL_POS( 51, 7 ), - SCROLL_POS( 52, 8 ), - SCROLL_POS( 53, 8 ), - SCROLL_POS( 54, 9 ), - SCROLL_POS( 55, 9 ), + ScrollPos( 36, 0 ), + ScrollPos( 37, 0 ), + ScrollPos( 38, 1 ), + ScrollPos( 39, 1 ), + ScrollPos( 40, 2 ), + ScrollPos( 41, 2 ), + ScrollPos( 42, 3 ), + ScrollPos( 43, 3 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 4 ), + ScrollPos( 46, 5 ), + ScrollPos( 47, 5 ), + ScrollPos( 48, 6 ), + ScrollPos( 49, 6 ), + ScrollPos( 50, 7 ), + ScrollPos( 51, 7 ), + ScrollPos( 52, 8 ), + ScrollPos( 53, 8 ), + ScrollPos( 54, 9 ), + ScrollPos( 55, 9 ), -1, }; static constexpr int16_t _scrollpos26[] = { - SCROLL_POS( 4, 13 ), - SCROLL_POS( 5, 13 ), - SCROLL_POS( 6, 12 ), - SCROLL_POS( 7, 12 ), - SCROLL_POS( 8, 11 ), - SCROLL_POS( 9, 11 ), - SCROLL_POS( 10, 10 ), - SCROLL_POS( 11, 10 ), - SCROLL_POS( 12, 9 ), - SCROLL_POS( 13, 9 ), - SCROLL_POS( 14, 8 ), - SCROLL_POS( 15, 8 ), - SCROLL_POS( 16, 7 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 6 ), - SCROLL_POS( 19, 6 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 4 ), - SCROLL_POS( 24, 3 ), - SCROLL_POS( 25, 3 ), - SCROLL_POS( 26, 2 ), - SCROLL_POS( 27, 2 ), - SCROLL_POS( 28, 1 ), - SCROLL_POS( 29, 1 ), - SCROLL_POS( 30, 0 ), - SCROLL_POS( 31, 0 ), + ScrollPos( 4, 13 ), + ScrollPos( 5, 13 ), + ScrollPos( 6, 12 ), + ScrollPos( 7, 12 ), + ScrollPos( 8, 11 ), + ScrollPos( 9, 11 ), + ScrollPos( 10, 10 ), + ScrollPos( 11, 10 ), + ScrollPos( 12, 9 ), + ScrollPos( 13, 9 ), + ScrollPos( 14, 8 ), + ScrollPos( 15, 8 ), + ScrollPos( 16, 7 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 6 ), + ScrollPos( 19, 6 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 4 ), + ScrollPos( 24, 3 ), + ScrollPos( 25, 3 ), + ScrollPos( 26, 2 ), + ScrollPos( 27, 2 ), + ScrollPos( 28, 1 ), + ScrollPos( 29, 1 ), + ScrollPos( 30, 0 ), + ScrollPos( 31, 0 ), -1, }; static constexpr int16_t _scrollpos27[] = { - SCROLL_POS( 32, 0 ), - SCROLL_POS( 33, 0 ), - SCROLL_POS( 34, 1 ), - SCROLL_POS( 35, 1 ), - SCROLL_POS( 36, 2 ), - SCROLL_POS( 37, 2 ), - SCROLL_POS( 38, 3 ), - SCROLL_POS( 39, 3 ), - SCROLL_POS( 40, 4 ), - SCROLL_POS( 41, 4 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 6 ), - SCROLL_POS( 45, 6 ), - SCROLL_POS( 46, 7 ), - SCROLL_POS( 47, 7 ), - SCROLL_POS( 48, 8 ), - SCROLL_POS( 49, 8 ), - SCROLL_POS( 50, 9 ), - SCROLL_POS( 51, 9 ), - SCROLL_POS( 52, 10 ), - SCROLL_POS( 53, 10 ), - SCROLL_POS( 54, 11 ), - SCROLL_POS( 55, 11 ), - SCROLL_POS( 56, 12 ), - SCROLL_POS( 57, 12 ), - SCROLL_POS( 58, 13 ), - SCROLL_POS( 59, 13 ), + ScrollPos( 32, 0 ), + ScrollPos( 33, 0 ), + ScrollPos( 34, 1 ), + ScrollPos( 35, 1 ), + ScrollPos( 36, 2 ), + ScrollPos( 37, 2 ), + ScrollPos( 38, 3 ), + ScrollPos( 39, 3 ), + ScrollPos( 40, 4 ), + ScrollPos( 41, 4 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 6 ), + ScrollPos( 45, 6 ), + ScrollPos( 46, 7 ), + ScrollPos( 47, 7 ), + ScrollPos( 48, 8 ), + ScrollPos( 49, 8 ), + ScrollPos( 50, 9 ), + ScrollPos( 51, 9 ), + ScrollPos( 52, 10 ), + ScrollPos( 53, 10 ), + ScrollPos( 54, 11 ), + ScrollPos( 55, 11 ), + ScrollPos( 56, 12 ), + ScrollPos( 57, 12 ), + ScrollPos( 58, 13 ), + ScrollPos( 59, 13 ), -1, }; static constexpr int16_t _scrollpos28[] = { - SCROLL_POS( 6, 13 ), - SCROLL_POS( 7, 13 ), - SCROLL_POS( 8, 12 ), - SCROLL_POS( 9, 12 ), - SCROLL_POS( 10, 11 ), - SCROLL_POS( 11, 11 ), - SCROLL_POS( 12, 10 ), - SCROLL_POS( 13, 10 ), - SCROLL_POS( 14, 9 ), - SCROLL_POS( 15, 9 ), - SCROLL_POS( 16, 8 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 7 ), - SCROLL_POS( 19, 7 ), - SCROLL_POS( 20, 6 ), - SCROLL_POS( 21, 6 ), - SCROLL_POS( 22, 5 ), - SCROLL_POS( 23, 5 ), - SCROLL_POS( 24, 4 ), - SCROLL_POS( 25, 4 ), - SCROLL_POS( 26, 3 ), - SCROLL_POS( 27, 3 ), - SCROLL_POS( 28, 2 ), - SCROLL_POS( 29, 2 ), - SCROLL_POS( 30, 1 ), - SCROLL_POS( 31, 1 ), - SCROLL_POS( 32, 0 ), - SCROLL_POS( 33, 0 ), + ScrollPos( 6, 13 ), + ScrollPos( 7, 13 ), + ScrollPos( 8, 12 ), + ScrollPos( 9, 12 ), + ScrollPos( 10, 11 ), + ScrollPos( 11, 11 ), + ScrollPos( 12, 10 ), + ScrollPos( 13, 10 ), + ScrollPos( 14, 9 ), + ScrollPos( 15, 9 ), + ScrollPos( 16, 8 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 7 ), + ScrollPos( 19, 7 ), + ScrollPos( 20, 6 ), + ScrollPos( 21, 6 ), + ScrollPos( 22, 5 ), + ScrollPos( 23, 5 ), + ScrollPos( 24, 4 ), + ScrollPos( 25, 4 ), + ScrollPos( 26, 3 ), + ScrollPos( 27, 3 ), + ScrollPos( 28, 2 ), + ScrollPos( 29, 2 ), + ScrollPos( 30, 1 ), + ScrollPos( 31, 1 ), + ScrollPos( 32, 0 ), + ScrollPos( 33, 0 ), -1, }; static constexpr int16_t _scrollpos29[] = { - SCROLL_POS( 30, 0 ), - SCROLL_POS( 31, 0 ), - SCROLL_POS( 32, 1 ), - SCROLL_POS( 33, 1 ), - SCROLL_POS( 34, 2 ), - SCROLL_POS( 35, 2 ), - SCROLL_POS( 36, 3 ), - SCROLL_POS( 37, 3 ), - SCROLL_POS( 38, 4 ), - SCROLL_POS( 39, 4 ), - SCROLL_POS( 40, 5 ), - SCROLL_POS( 41, 5 ), - SCROLL_POS( 42, 6 ), - SCROLL_POS( 43, 6 ), - SCROLL_POS( 44, 7 ), - SCROLL_POS( 45, 7 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 8 ), - SCROLL_POS( 48, 9 ), - SCROLL_POS( 49, 9 ), - SCROLL_POS( 50, 10 ), - SCROLL_POS( 51, 10 ), - SCROLL_POS( 52, 11 ), - SCROLL_POS( 53, 11 ), - SCROLL_POS( 54, 12 ), - SCROLL_POS( 55, 12 ), - SCROLL_POS( 56, 13 ), - SCROLL_POS( 57, 13 ), + ScrollPos( 30, 0 ), + ScrollPos( 31, 0 ), + ScrollPos( 32, 1 ), + ScrollPos( 33, 1 ), + ScrollPos( 34, 2 ), + ScrollPos( 35, 2 ), + ScrollPos( 36, 3 ), + ScrollPos( 37, 3 ), + ScrollPos( 38, 4 ), + ScrollPos( 39, 4 ), + ScrollPos( 40, 5 ), + ScrollPos( 41, 5 ), + ScrollPos( 42, 6 ), + ScrollPos( 43, 6 ), + ScrollPos( 44, 7 ), + ScrollPos( 45, 7 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 8 ), + ScrollPos( 48, 9 ), + ScrollPos( 49, 9 ), + ScrollPos( 50, 10 ), + ScrollPos( 51, 10 ), + ScrollPos( 52, 11 ), + ScrollPos( 53, 11 ), + ScrollPos( 54, 12 ), + ScrollPos( 55, 12 ), + ScrollPos( 56, 13 ), + ScrollPos( 57, 13 ), -1, }; static constexpr int16_t _scrollpos30[] = { - SCROLL_POS( 2, 30 ), - SCROLL_POS( 3, 30 ), - SCROLL_POS( 4, 29 ), - SCROLL_POS( 5, 29 ), - SCROLL_POS( 6, 28 ), - SCROLL_POS( 7, 28 ), - SCROLL_POS( 8, 27 ), - SCROLL_POS( 9, 27 ), - SCROLL_POS( 10, 26 ), - SCROLL_POS( 11, 26 ), - SCROLL_POS( 12, 25 ), - SCROLL_POS( 13, 25 ), - SCROLL_POS( 14, 24 ), - SCROLL_POS( 15, 24 ), - SCROLL_POS( 16, 23 ), - SCROLL_POS( 17, 23 ), - SCROLL_POS( 18, 22 ), - SCROLL_POS( 19, 22 ), - SCROLL_POS( 20, 21 ), - SCROLL_POS( 21, 21 ), - SCROLL_POS( 22, 20 ), - SCROLL_POS( 23, 20 ), - SCROLL_POS( 24, 19 ), - SCROLL_POS( 25, 19 ), - SCROLL_POS( 26, 18 ), - SCROLL_POS( 27, 18 ), - SCROLL_POS( 28, 17 ), - SCROLL_POS( 29, 17 ), - SCROLL_POS( 30, 16 ), - SCROLL_POS( 31, 16 ), - SCROLL_POS( 32, 15 ), - SCROLL_POS( 33, 15 ), - SCROLL_POS( 34, 14 ), - SCROLL_POS( 35, 14 ), - SCROLL_POS( 36, 13 ), - SCROLL_POS( 37, 13 ), - SCROLL_POS( 38, 12 ), - SCROLL_POS( 39, 12 ), - SCROLL_POS( 40, 11 ), - SCROLL_POS( 41, 11 ), - SCROLL_POS( 42, 10 ), - SCROLL_POS( 43, 10 ), - SCROLL_POS( 44, 9 ), - SCROLL_POS( 45, 9 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 8 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 7 ), - SCROLL_POS( 50, 6 ), - SCROLL_POS( 51, 6 ), - SCROLL_POS( 52, 5 ), - SCROLL_POS( 53, 5 ), - SCROLL_POS( 54, 4 ), - SCROLL_POS( 55, 4 ), - SCROLL_POS( 56, 3 ), - SCROLL_POS( 57, 3 ), - SCROLL_POS( 58, 2 ), - SCROLL_POS( 59, 2 ), - SCROLL_POS( 60, 1 ), - SCROLL_POS( 61, 1 ), - SCROLL_POS( 62, 0 ), + ScrollPos( 2, 30 ), + ScrollPos( 3, 30 ), + ScrollPos( 4, 29 ), + ScrollPos( 5, 29 ), + ScrollPos( 6, 28 ), + ScrollPos( 7, 28 ), + ScrollPos( 8, 27 ), + ScrollPos( 9, 27 ), + ScrollPos( 10, 26 ), + ScrollPos( 11, 26 ), + ScrollPos( 12, 25 ), + ScrollPos( 13, 25 ), + ScrollPos( 14, 24 ), + ScrollPos( 15, 24 ), + ScrollPos( 16, 23 ), + ScrollPos( 17, 23 ), + ScrollPos( 18, 22 ), + ScrollPos( 19, 22 ), + ScrollPos( 20, 21 ), + ScrollPos( 21, 21 ), + ScrollPos( 22, 20 ), + ScrollPos( 23, 20 ), + ScrollPos( 24, 19 ), + ScrollPos( 25, 19 ), + ScrollPos( 26, 18 ), + ScrollPos( 27, 18 ), + ScrollPos( 28, 17 ), + ScrollPos( 29, 17 ), + ScrollPos( 30, 16 ), + ScrollPos( 31, 16 ), + ScrollPos( 32, 15 ), + ScrollPos( 33, 15 ), + ScrollPos( 34, 14 ), + ScrollPos( 35, 14 ), + ScrollPos( 36, 13 ), + ScrollPos( 37, 13 ), + ScrollPos( 38, 12 ), + ScrollPos( 39, 12 ), + ScrollPos( 40, 11 ), + ScrollPos( 41, 11 ), + ScrollPos( 42, 10 ), + ScrollPos( 43, 10 ), + ScrollPos( 44, 9 ), + ScrollPos( 45, 9 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 8 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 7 ), + ScrollPos( 50, 6 ), + ScrollPos( 51, 6 ), + ScrollPos( 52, 5 ), + ScrollPos( 53, 5 ), + ScrollPos( 54, 4 ), + ScrollPos( 55, 4 ), + ScrollPos( 56, 3 ), + ScrollPos( 57, 3 ), + ScrollPos( 58, 2 ), + ScrollPos( 59, 2 ), + ScrollPos( 60, 1 ), + ScrollPos( 61, 1 ), + ScrollPos( 62, 0 ), -1, }; static constexpr int16_t _scrollpos31[] = { - SCROLL_POS( 1, 0 ), - SCROLL_POS( 2, 1 ), - SCROLL_POS( 3, 1 ), - SCROLL_POS( 4, 2 ), - SCROLL_POS( 5, 2 ), - SCROLL_POS( 6, 3 ), - SCROLL_POS( 7, 3 ), - SCROLL_POS( 8, 4 ), - SCROLL_POS( 9, 4 ), - SCROLL_POS( 10, 5 ), - SCROLL_POS( 11, 5 ), - SCROLL_POS( 12, 6 ), - SCROLL_POS( 13, 6 ), - SCROLL_POS( 14, 7 ), - SCROLL_POS( 15, 7 ), - SCROLL_POS( 16, 8 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 9 ), - SCROLL_POS( 19, 9 ), - SCROLL_POS( 20, 10 ), - SCROLL_POS( 21, 10 ), - SCROLL_POS( 22, 11 ), - SCROLL_POS( 23, 11 ), - SCROLL_POS( 24, 12 ), - SCROLL_POS( 25, 12 ), - SCROLL_POS( 26, 13 ), - SCROLL_POS( 27, 13 ), - SCROLL_POS( 28, 14 ), - SCROLL_POS( 29, 14 ), - SCROLL_POS( 30, 15 ), - SCROLL_POS( 31, 15 ), - SCROLL_POS( 32, 16 ), - SCROLL_POS( 33, 16 ), - SCROLL_POS( 34, 17 ), - SCROLL_POS( 35, 17 ), - SCROLL_POS( 36, 18 ), - SCROLL_POS( 37, 18 ), - SCROLL_POS( 38, 19 ), - SCROLL_POS( 39, 19 ), - SCROLL_POS( 40, 20 ), - SCROLL_POS( 41, 20 ), - SCROLL_POS( 42, 21 ), - SCROLL_POS( 43, 21 ), - SCROLL_POS( 44, 22 ), - SCROLL_POS( 45, 22 ), - SCROLL_POS( 46, 23 ), - SCROLL_POS( 47, 23 ), - SCROLL_POS( 48, 24 ), - SCROLL_POS( 49, 24 ), - SCROLL_POS( 50, 25 ), - SCROLL_POS( 51, 25 ), - SCROLL_POS( 52, 26 ), - SCROLL_POS( 53, 26 ), - SCROLL_POS( 54, 27 ), - SCROLL_POS( 55, 27 ), - SCROLL_POS( 56, 28 ), - SCROLL_POS( 57, 28 ), - SCROLL_POS( 58, 29 ), - SCROLL_POS( 59, 29 ), - SCROLL_POS( 60, 30 ), - SCROLL_POS( 61, 30 ), + ScrollPos( 1, 0 ), + ScrollPos( 2, 1 ), + ScrollPos( 3, 1 ), + ScrollPos( 4, 2 ), + ScrollPos( 5, 2 ), + ScrollPos( 6, 3 ), + ScrollPos( 7, 3 ), + ScrollPos( 8, 4 ), + ScrollPos( 9, 4 ), + ScrollPos( 10, 5 ), + ScrollPos( 11, 5 ), + ScrollPos( 12, 6 ), + ScrollPos( 13, 6 ), + ScrollPos( 14, 7 ), + ScrollPos( 15, 7 ), + ScrollPos( 16, 8 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 9 ), + ScrollPos( 19, 9 ), + ScrollPos( 20, 10 ), + ScrollPos( 21, 10 ), + ScrollPos( 22, 11 ), + ScrollPos( 23, 11 ), + ScrollPos( 24, 12 ), + ScrollPos( 25, 12 ), + ScrollPos( 26, 13 ), + ScrollPos( 27, 13 ), + ScrollPos( 28, 14 ), + ScrollPos( 29, 14 ), + ScrollPos( 30, 15 ), + ScrollPos( 31, 15 ), + ScrollPos( 32, 16 ), + ScrollPos( 33, 16 ), + ScrollPos( 34, 17 ), + ScrollPos( 35, 17 ), + ScrollPos( 36, 18 ), + ScrollPos( 37, 18 ), + ScrollPos( 38, 19 ), + ScrollPos( 39, 19 ), + ScrollPos( 40, 20 ), + ScrollPos( 41, 20 ), + ScrollPos( 42, 21 ), + ScrollPos( 43, 21 ), + ScrollPos( 44, 22 ), + ScrollPos( 45, 22 ), + ScrollPos( 46, 23 ), + ScrollPos( 47, 23 ), + ScrollPos( 48, 24 ), + ScrollPos( 49, 24 ), + ScrollPos( 50, 25 ), + ScrollPos( 51, 25 ), + ScrollPos( 52, 26 ), + ScrollPos( 53, 26 ), + ScrollPos( 54, 27 ), + ScrollPos( 55, 27 ), + ScrollPos( 56, 28 ), + ScrollPos( 57, 28 ), + ScrollPos( 58, 29 ), + ScrollPos( 59, 29 ), + ScrollPos( 60, 30 ), + ScrollPos( 61, 30 ), -1, }; static constexpr int16_t _scrollpos32[] = { - SCROLL_POS( 12, 0 ), - SCROLL_POS( 13, 1 ), - SCROLL_POS( 14, 1 ), - SCROLL_POS( 15, 2 ), - SCROLL_POS( 16, 2 ), - SCROLL_POS( 17, 3 ), - SCROLL_POS( 18, 3 ), - SCROLL_POS( 19, 4 ), - SCROLL_POS( 20, 4 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 5 ), - SCROLL_POS( 23, 6 ), - SCROLL_POS( 24, 6 ), - SCROLL_POS( 25, 7 ), - SCROLL_POS( 26, 7 ), - SCROLL_POS( 27, 8 ), - SCROLL_POS( 28, 8 ), - SCROLL_POS( 29, 9 ), - SCROLL_POS( 30, 9 ), - SCROLL_POS( 31, 10 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 11 ), - SCROLL_POS( 34, 11 ), - SCROLL_POS( 35, 12 ), - SCROLL_POS( 36, 12 ), - SCROLL_POS( 37, 13 ), - SCROLL_POS( 38, 13 ), - SCROLL_POS( 39, 14 ), - SCROLL_POS( 40, 14 ), - SCROLL_POS( 41, 15 ), - SCROLL_POS( 42, 15 ), - SCROLL_POS( 43, 16 ), - SCROLL_POS( 44, 16 ), - SCROLL_POS( 45, 17 ), - SCROLL_POS( 46, 17 ), - SCROLL_POS( 47, 18 ), - SCROLL_POS( 48, 18 ), - SCROLL_POS( 49, 19 ), - SCROLL_POS( 50, 19 ), + ScrollPos( 12, 0 ), + ScrollPos( 13, 1 ), + ScrollPos( 14, 1 ), + ScrollPos( 15, 2 ), + ScrollPos( 16, 2 ), + ScrollPos( 17, 3 ), + ScrollPos( 18, 3 ), + ScrollPos( 19, 4 ), + ScrollPos( 20, 4 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 5 ), + ScrollPos( 23, 6 ), + ScrollPos( 24, 6 ), + ScrollPos( 25, 7 ), + ScrollPos( 26, 7 ), + ScrollPos( 27, 8 ), + ScrollPos( 28, 8 ), + ScrollPos( 29, 9 ), + ScrollPos( 30, 9 ), + ScrollPos( 31, 10 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 11 ), + ScrollPos( 34, 11 ), + ScrollPos( 35, 12 ), + ScrollPos( 36, 12 ), + ScrollPos( 37, 13 ), + ScrollPos( 38, 13 ), + ScrollPos( 39, 14 ), + ScrollPos( 40, 14 ), + ScrollPos( 41, 15 ), + ScrollPos( 42, 15 ), + ScrollPos( 43, 16 ), + ScrollPos( 44, 16 ), + ScrollPos( 45, 17 ), + ScrollPos( 46, 17 ), + ScrollPos( 47, 18 ), + ScrollPos( 48, 18 ), + ScrollPos( 49, 19 ), + ScrollPos( 50, 19 ), -1, }; static constexpr int16_t _scrollpos33[] = { - SCROLL_POS( 12, 20 ), - SCROLL_POS( 13, 20 ), - SCROLL_POS( 14, 19 ), - SCROLL_POS( 15, 19 ), - SCROLL_POS( 16, 18 ), - SCROLL_POS( 17, 18 ), - SCROLL_POS( 18, 17 ), - SCROLL_POS( 19, 17 ), - SCROLL_POS( 20, 16 ), - SCROLL_POS( 21, 16 ), - SCROLL_POS( 22, 15 ), - SCROLL_POS( 23, 15 ), - SCROLL_POS( 24, 14 ), - SCROLL_POS( 25, 14 ), - SCROLL_POS( 26, 13 ), - SCROLL_POS( 27, 13 ), - SCROLL_POS( 28, 12 ), - SCROLL_POS( 29, 12 ), - SCROLL_POS( 30, 11 ), - SCROLL_POS( 31, 11 ), - SCROLL_POS( 32, 10 ), - SCROLL_POS( 33, 10 ), - SCROLL_POS( 34, 9 ), - SCROLL_POS( 35, 9 ), - SCROLL_POS( 36, 8 ), - SCROLL_POS( 37, 8 ), - SCROLL_POS( 38, 7 ), - SCROLL_POS( 39, 7 ), - SCROLL_POS( 40, 6 ), - SCROLL_POS( 41, 6 ), - SCROLL_POS( 42, 5 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 4 ), - SCROLL_POS( 45, 4 ), - SCROLL_POS( 46, 3 ), - SCROLL_POS( 47, 3 ), - SCROLL_POS( 48, 2 ), - SCROLL_POS( 49, 2 ), - SCROLL_POS( 50, 1 ), - SCROLL_POS( 51, 1 ), + ScrollPos( 12, 20 ), + ScrollPos( 13, 20 ), + ScrollPos( 14, 19 ), + ScrollPos( 15, 19 ), + ScrollPos( 16, 18 ), + ScrollPos( 17, 18 ), + ScrollPos( 18, 17 ), + ScrollPos( 19, 17 ), + ScrollPos( 20, 16 ), + ScrollPos( 21, 16 ), + ScrollPos( 22, 15 ), + ScrollPos( 23, 15 ), + ScrollPos( 24, 14 ), + ScrollPos( 25, 14 ), + ScrollPos( 26, 13 ), + ScrollPos( 27, 13 ), + ScrollPos( 28, 12 ), + ScrollPos( 29, 12 ), + ScrollPos( 30, 11 ), + ScrollPos( 31, 11 ), + ScrollPos( 32, 10 ), + ScrollPos( 33, 10 ), + ScrollPos( 34, 9 ), + ScrollPos( 35, 9 ), + ScrollPos( 36, 8 ), + ScrollPos( 37, 8 ), + ScrollPos( 38, 7 ), + ScrollPos( 39, 7 ), + ScrollPos( 40, 6 ), + ScrollPos( 41, 6 ), + ScrollPos( 42, 5 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 4 ), + ScrollPos( 45, 4 ), + ScrollPos( 46, 3 ), + ScrollPos( 47, 3 ), + ScrollPos( 48, 2 ), + ScrollPos( 49, 2 ), + ScrollPos( 50, 1 ), + ScrollPos( 51, 1 ), -1, }; static constexpr int16_t _scrollpos34[] = { - SCROLL_POS( 2, 14 ), - SCROLL_POS( 3, 14 ), - SCROLL_POS( 4, 13 ), - SCROLL_POS( 5, 13 ), - SCROLL_POS( 6, 12 ), - SCROLL_POS( 7, 12 ), - SCROLL_POS( 8, 11 ), - SCROLL_POS( 9, 11 ), - SCROLL_POS( 10, 10 ), - SCROLL_POS( 11, 10 ), - SCROLL_POS( 12, 9 ), - SCROLL_POS( 13, 9 ), - SCROLL_POS( 14, 8 ), - SCROLL_POS( 15, 8 ), - SCROLL_POS( 16, 7 ), - SCROLL_POS( 17, 7 ), - SCROLL_POS( 18, 6 ), - SCROLL_POS( 19, 6 ), - SCROLL_POS( 20, 5 ), - SCROLL_POS( 21, 5 ), - SCROLL_POS( 22, 4 ), - SCROLL_POS( 23, 4 ), - SCROLL_POS( 24, 3 ), - SCROLL_POS( 25, 3 ), - SCROLL_POS( 26, 2 ), - SCROLL_POS( 27, 2 ), - SCROLL_POS( 28, 1 ), - SCROLL_POS( 29, 1 ), - SCROLL_POS( 30, 0 ), + ScrollPos( 2, 14 ), + ScrollPos( 3, 14 ), + ScrollPos( 4, 13 ), + ScrollPos( 5, 13 ), + ScrollPos( 6, 12 ), + ScrollPos( 7, 12 ), + ScrollPos( 8, 11 ), + ScrollPos( 9, 11 ), + ScrollPos( 10, 10 ), + ScrollPos( 11, 10 ), + ScrollPos( 12, 9 ), + ScrollPos( 13, 9 ), + ScrollPos( 14, 8 ), + ScrollPos( 15, 8 ), + ScrollPos( 16, 7 ), + ScrollPos( 17, 7 ), + ScrollPos( 18, 6 ), + ScrollPos( 19, 6 ), + ScrollPos( 20, 5 ), + ScrollPos( 21, 5 ), + ScrollPos( 22, 4 ), + ScrollPos( 23, 4 ), + ScrollPos( 24, 3 ), + ScrollPos( 25, 3 ), + ScrollPos( 26, 2 ), + ScrollPos( 27, 2 ), + ScrollPos( 28, 1 ), + ScrollPos( 29, 1 ), + ScrollPos( 30, 0 ), -1, }; static constexpr int16_t _scrollpos35[] = { - SCROLL_POS( 33, 0 ), - SCROLL_POS( 34, 0 ), - SCROLL_POS( 35, 1 ), - SCROLL_POS( 36, 1 ), - SCROLL_POS( 37, 2 ), - SCROLL_POS( 38, 2 ), - SCROLL_POS( 39, 3 ), - SCROLL_POS( 40, 3 ), - SCROLL_POS( 41, 4 ), - SCROLL_POS( 42, 4 ), - SCROLL_POS( 43, 5 ), - SCROLL_POS( 44, 5 ), - SCROLL_POS( 45, 6 ), - SCROLL_POS( 46, 6 ), - SCROLL_POS( 47, 7 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 8 ), - SCROLL_POS( 50, 8 ), - SCROLL_POS( 51, 9 ), - SCROLL_POS( 52, 9 ), - SCROLL_POS( 53, 10 ), - SCROLL_POS( 54, 10 ), - SCROLL_POS( 55, 11 ), - SCROLL_POS( 56, 11 ), - SCROLL_POS( 57, 12 ), - SCROLL_POS( 58, 12 ), - SCROLL_POS( 59, 13 ), - SCROLL_POS( 60, 13 ), - SCROLL_POS( 61, 14 ), + ScrollPos( 33, 0 ), + ScrollPos( 34, 0 ), + ScrollPos( 35, 1 ), + ScrollPos( 36, 1 ), + ScrollPos( 37, 2 ), + ScrollPos( 38, 2 ), + ScrollPos( 39, 3 ), + ScrollPos( 40, 3 ), + ScrollPos( 41, 4 ), + ScrollPos( 42, 4 ), + ScrollPos( 43, 5 ), + ScrollPos( 44, 5 ), + ScrollPos( 45, 6 ), + ScrollPos( 46, 6 ), + ScrollPos( 47, 7 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 8 ), + ScrollPos( 50, 8 ), + ScrollPos( 51, 9 ), + ScrollPos( 52, 9 ), + ScrollPos( 53, 10 ), + ScrollPos( 54, 10 ), + ScrollPos( 55, 11 ), + ScrollPos( 56, 11 ), + ScrollPos( 57, 12 ), + ScrollPos( 58, 12 ), + ScrollPos( 59, 13 ), + ScrollPos( 60, 13 ), + ScrollPos( 61, 14 ), -1, }; static constexpr int16_t _scrollpos36[] = { - SCROLL_POS( 4, 0 ), - SCROLL_POS( 5, 1 ), - SCROLL_POS( 6, 2 ), - SCROLL_POS( 7, 3 ), - SCROLL_POS( 8, 3 ), - SCROLL_POS( 9, 4 ), - SCROLL_POS( 10, 5 ), - SCROLL_POS( 11, 5 ), - SCROLL_POS( 12, 6 ), - SCROLL_POS( 13, 6 ), - SCROLL_POS( 14, 7 ), - SCROLL_POS( 15, 7 ), - SCROLL_POS( 16, 8 ), - SCROLL_POS( 17, 8 ), - SCROLL_POS( 18, 9 ), - SCROLL_POS( 19, 9 ), - SCROLL_POS( 20, 10 ), - SCROLL_POS( 21, 10 ), - SCROLL_POS( 22, 10 ), - SCROLL_POS( 23, 11 ), - SCROLL_POS( 24, 11 ), - SCROLL_POS( 25, 11 ), - SCROLL_POS( 26, 12 ), - SCROLL_POS( 27, 12 ), - SCROLL_POS( 28, 12 ), - SCROLL_POS( 29, 12 ), - SCROLL_POS( 30, 12 ), + ScrollPos( 4, 0 ), + ScrollPos( 5, 1 ), + ScrollPos( 6, 2 ), + ScrollPos( 7, 3 ), + ScrollPos( 8, 3 ), + ScrollPos( 9, 4 ), + ScrollPos( 10, 5 ), + ScrollPos( 11, 5 ), + ScrollPos( 12, 6 ), + ScrollPos( 13, 6 ), + ScrollPos( 14, 7 ), + ScrollPos( 15, 7 ), + ScrollPos( 16, 8 ), + ScrollPos( 17, 8 ), + ScrollPos( 18, 9 ), + ScrollPos( 19, 9 ), + ScrollPos( 20, 10 ), + ScrollPos( 21, 10 ), + ScrollPos( 22, 10 ), + ScrollPos( 23, 11 ), + ScrollPos( 24, 11 ), + ScrollPos( 25, 11 ), + ScrollPos( 26, 12 ), + ScrollPos( 27, 12 ), + ScrollPos( 28, 12 ), + ScrollPos( 29, 12 ), + ScrollPos( 30, 12 ), -1, }; static constexpr int16_t _scrollpos37[] = { - SCROLL_POS( 32, 13 ), - SCROLL_POS( 33, 12 ), - SCROLL_POS( 34, 12 ), - SCROLL_POS( 35, 12 ), - SCROLL_POS( 36, 12 ), - SCROLL_POS( 37, 11 ), - SCROLL_POS( 38, 11 ), - SCROLL_POS( 39, 11 ), - SCROLL_POS( 40, 10 ), - SCROLL_POS( 41, 10 ), - SCROLL_POS( 42, 10 ), - SCROLL_POS( 43, 9 ), - SCROLL_POS( 44, 9 ), - SCROLL_POS( 45, 8 ), - SCROLL_POS( 46, 8 ), - SCROLL_POS( 47, 7 ), - SCROLL_POS( 48, 7 ), - SCROLL_POS( 49, 6 ), - SCROLL_POS( 50, 6 ), - SCROLL_POS( 51, 5 ), - SCROLL_POS( 52, 5 ), - SCROLL_POS( 53, 4 ), - SCROLL_POS( 54, 3 ), - SCROLL_POS( 55, 3 ), - SCROLL_POS( 56, 2 ), - SCROLL_POS( 57, 1 ), - SCROLL_POS( 58, 0 ), + ScrollPos( 32, 13 ), + ScrollPos( 33, 12 ), + ScrollPos( 34, 12 ), + ScrollPos( 35, 12 ), + ScrollPos( 36, 12 ), + ScrollPos( 37, 11 ), + ScrollPos( 38, 11 ), + ScrollPos( 39, 11 ), + ScrollPos( 40, 10 ), + ScrollPos( 41, 10 ), + ScrollPos( 42, 10 ), + ScrollPos( 43, 9 ), + ScrollPos( 44, 9 ), + ScrollPos( 45, 8 ), + ScrollPos( 46, 8 ), + ScrollPos( 47, 7 ), + ScrollPos( 48, 7 ), + ScrollPos( 49, 6 ), + ScrollPos( 50, 6 ), + ScrollPos( 51, 5 ), + ScrollPos( 52, 5 ), + ScrollPos( 53, 4 ), + ScrollPos( 54, 3 ), + ScrollPos( 55, 3 ), + ScrollPos( 56, 2 ), + ScrollPos( 57, 1 ), + ScrollPos( 58, 0 ), -1, }; From 01c1b1f06c47ac83570b11cbfede1d212e33c071 Mon Sep 17 00:00:00 2001 From: Michael Bernardi Date: Thu, 3 Oct 2024 11:21:37 +1000 Subject: [PATCH 4/4] Replace CommandLine.hpp macros with constant functions and variables. --- src/openrct2/command_line/CommandLine.hpp | 19 ++++++++++++++----- .../command_line/ParkInfoCommands.cpp | 4 ++-- src/openrct2/command_line/RootCommands.cpp | 6 +++--- .../command_line/ScreenshotCommands.cpp | 4 ++-- .../command_line/SimulateCommands.cpp | 3 ++- src/openrct2/command_line/SpriteCommands.cpp | 4 ++-- 6 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/openrct2/command_line/CommandLine.hpp b/src/openrct2/command_line/CommandLine.hpp index 95998bb1d5..7c751c4432 100644 --- a/src/openrct2/command_line/CommandLine.hpp +++ b/src/openrct2/command_line/CommandLine.hpp @@ -89,12 +89,21 @@ enum constexpr char NAC = '\0'; -#define ExampleTableEnd { nullptr, nullptr } -#define OptionTableEnd { UINT8_MAX, nullptr, NAC, nullptr, nullptr } -#define CommandTableEnd { nullptr, nullptr, nullptr, nullptr, nullptr } +constexpr CommandLineExample kExampleTableEnd = CommandLineExample{ nullptr, nullptr }; +constexpr CommandLineOptionDefinition kOptionTableEnd = CommandLineOptionDefinition{ UINT8_MAX, nullptr, NAC, nullptr, + nullptr }; +constexpr CommandLineCommand kCommandTableEnd = CommandLineCommand{ nullptr, nullptr, nullptr, nullptr, nullptr }; -#define DefineCommand(name, params, options, func) { name, params, options, nullptr, func } -#define DefineSubCommand(name, subcommandtable) { name, "", nullptr, subcommandtable, nullptr } +consteval CommandLineCommand DefineCommand( + const char* name, const char* params, const CommandLineOptionDefinition* options, const CommandLineFunc func) +{ + return CommandLineCommand{ name, params, options, nullptr, func }; +} + +consteval CommandLineCommand DefineSubCommand(const char* name, const CommandLineCommand* subcommandtable) +{ + return CommandLineCommand{ name, "", nullptr, subcommandtable, nullptr }; +} namespace OpenRCT2::CommandLine { diff --git a/src/openrct2/command_line/ParkInfoCommands.cpp b/src/openrct2/command_line/ParkInfoCommands.cpp index 3bd117ad8f..c3c015f1c7 100644 --- a/src/openrct2/command_line/ParkInfoCommands.cpp +++ b/src/openrct2/command_line/ParkInfoCommands.cpp @@ -21,7 +21,7 @@ using namespace OpenRCT2; // clang-format off static constexpr CommandLineOptionDefinition NoOptions[] { - OptionTableEnd + kOptionTableEnd }; static exitcode_t HandleObjectsInfo(CommandLineArgEnumerator *argEnumerator); @@ -30,7 +30,7 @@ const CommandLineCommand CommandLine::ParkInfoCommands[]{ // Main commands DefineCommand("objects", "", NoOptions, HandleObjectsInfo), - CommandTableEnd + kCommandTableEnd }; // clang-format on diff --git a/src/openrct2/command_line/RootCommands.cpp b/src/openrct2/command_line/RootCommands.cpp index c3ceddc57d..0092f76002 100644 --- a/src/openrct2/command_line/RootCommands.cpp +++ b/src/openrct2/command_line/RootCommands.cpp @@ -87,7 +87,7 @@ static constexpr CommandLineOptionDefinition StandardOptions[] #ifdef USE_BREAKPAD { CMDLINE_TYPE_SWITCH, &_silentBreakpad, NAC, "silent-breakpad", "make breakpad crash reporting silent" }, #endif // USE_BREAKPAD - OptionTableEnd + kOptionTableEnd }; static exitcode_t HandleNoCommand(CommandLineArgEnumerator * enumerator); @@ -146,7 +146,7 @@ const CommandLineCommand CommandLine::RootCommands[] DefineSubCommand("sprite", CommandLine::SpriteCommands ), DefineSubCommand("simulate", CommandLine::SimulateCommands ), DefineSubCommand("parkinfo", CommandLine::ParkInfoCommands ), - CommandTableEnd + kCommandTableEnd }; const CommandLineExample CommandLine::RootExamples[] @@ -160,7 +160,7 @@ const CommandLineExample CommandLine::RootExamples[] #ifndef DISABLE_NETWORK { "host ./my_park.sv6 --port 11753 --headless", "run a headless server for a saved park" }, #endif - ExampleTableEnd + kExampleTableEnd }; // clang-format on diff --git a/src/openrct2/command_line/ScreenshotCommands.cpp b/src/openrct2/command_line/ScreenshotCommands.cpp index 2241a4b96f..05fd0d2ab1 100644 --- a/src/openrct2/command_line/ScreenshotCommands.cpp +++ b/src/openrct2/command_line/ScreenshotCommands.cpp @@ -27,7 +27,7 @@ static constexpr CommandLineOptionDefinition ScreenshotOptionsDef[] { CMDLINE_TYPE_SWITCH, &_options.remove_litter, NAC, "remove-litter", "remove litter for the screenshot" }, { CMDLINE_TYPE_SWITCH, &_options.tidy_up_park, NAC, "tidy-up-park", "clear grass, water plants, fix vandalism and remove litter" }, { CMDLINE_TYPE_SWITCH, &_options.transparent, NAC, "transparent", "make the background transparent" }, - OptionTableEnd + kOptionTableEnd }; static exitcode_t HandleScreenshot(CommandLineArgEnumerator *argEnumerator); @@ -37,7 +37,7 @@ const CommandLineCommand CommandLine::ScreenshotCommands[] // Main commands DefineCommand("", " [ ]", ScreenshotOptionsDef, HandleScreenshot), DefineCommand("", " giant ", ScreenshotOptionsDef, HandleScreenshot), - CommandTableEnd + kCommandTableEnd }; // clang-format on diff --git a/src/openrct2/command_line/SimulateCommands.cpp b/src/openrct2/command_line/SimulateCommands.cpp index a1a39de33e..455004e70e 100644 --- a/src/openrct2/command_line/SimulateCommands.cpp +++ b/src/openrct2/command_line/SimulateCommands.cpp @@ -26,7 +26,8 @@ using namespace OpenRCT2; static exitcode_t HandleSimulate(CommandLineArgEnumerator* argEnumerator); const CommandLineCommand CommandLine::SimulateCommands[]{ // Main commands - DefineCommand("", "", nullptr, HandleSimulate), CommandTableEnd + DefineCommand("", "", nullptr, HandleSimulate), + kCommandTableEnd }; static exitcode_t HandleSimulate(CommandLineArgEnumerator* argEnumerator) diff --git a/src/openrct2/command_line/SpriteCommands.cpp b/src/openrct2/command_line/SpriteCommands.cpp index 83763418a5..d53ecb1f5b 100644 --- a/src/openrct2/command_line/SpriteCommands.cpp +++ b/src/openrct2/command_line/SpriteCommands.cpp @@ -28,7 +28,7 @@ static const char* _mode; static constexpr CommandLineOptionDefinition SpriteOptions[] { { CMDLINE_TYPE_STRING, &_mode, 'm', "mode", "the type of sprite conversion <" SZ_DEFAULT "|" SZ_CLOSEST "|" SZ_DITHERING ">" }, - OptionTableEnd + kOptionTableEnd }; static exitcode_t HandleSprite(CommandLineArgEnumerator *argEnumerator); @@ -45,7 +45,7 @@ const CommandLineCommand CommandLine::SpriteCommands[] DefineCommand("exportall", " ", SpriteOptions, HandleSprite), DefineCommand("exportalldat", " ", SpriteOptions, HandleSprite), - CommandTableEnd + kCommandTableEnd }; // clang-format on