1 /***************************************************************************** 2 * Copyright (c) 2014-2020 OpenRCT2 developers 3 * 4 * For a complete list of all authors, please refer to contributors.md 5 * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 6 * 7 * OpenRCT2 is licensed under the GNU General Public License version 3. 8 *****************************************************************************/ 9 10 #pragma once 11 12 #include "../common.h" 13 14 #include <string> 15 16 enum class CursorID : uint8_t 17 { 18 Arrow, 19 Blank, 20 UpArrow, 21 UpDownArrow, 22 HandPoint, 23 ZZZ, 24 DiagonalArrows, 25 Picker, 26 TreeDown, 27 FountainDown, 28 StatueDown, 29 BenchDown, 30 CrossHair, 31 BinDown, 32 LamppostDown, 33 FenceDown, 34 FlowerDown, 35 PathDown, 36 DigDown, 37 WaterDown, 38 HouseDown, 39 VolcanoDown, 40 WalkDown, 41 PaintDown, 42 EntranceDown, 43 HandOpen, 44 HandClosed, 45 Count, 46 47 Undefined = 0xFF 48 }; 49 50 namespace Cursor 51 { 52 CursorID FromString(const std::string& s, CursorID defaultValue); 53 } 54 55 namespace OpenRCT2::Ui 56 { 57 constexpr size_t CURSOR_BIT_WIDTH = 32; 58 constexpr size_t CURSOR_HEIGHT = 4; 59 struct CursorData 60 { 61 struct HotSpot 62 { 63 int16_t X; 64 int16_t Y; 65 } HotSpot; 66 uint8_t Data[CURSOR_BIT_WIDTH * CURSOR_HEIGHT]; 67 uint8_t Mask[CURSOR_BIT_WIDTH * CURSOR_HEIGHT]; 68 }; 69 } // namespace OpenRCT2::Ui 70