mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Use EnumMap for Cursors string lookup
This commit is contained in:
@@ -9,43 +9,45 @@
|
||||
|
||||
#include "Cursors.h"
|
||||
|
||||
#include "../core/EnumMap.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace Cursor
|
||||
{
|
||||
static const EnumMap<CursorID> LookupTable{
|
||||
{ "CURSOR_BLANK", CursorID::Blank },
|
||||
{ "CURSOR_UP_ARROW", CursorID::UpArrow },
|
||||
{ "CURSOR_UP_DOWN_ARROW", CursorID::UpDownArrow },
|
||||
{ "CURSOR_HAND_POINT", CursorID::HandPoint },
|
||||
{ "CURSOR_ZZZ", CursorID::ZZZ },
|
||||
{ "CURSOR_DIAGONAL_ARROWS", CursorID::DiagonalArrows },
|
||||
{ "CURSOR_PICKER", CursorID::Picker },
|
||||
{ "CURSOR_TREE_DOWN", CursorID::TreeDown },
|
||||
{ "CURSOR_FOUNTAIN_DOWN", CursorID::FountainDown },
|
||||
{ "CURSOR_STATUE_DOWN", CursorID::StatueDown },
|
||||
{ "CURSOR_BENCH_DOWN", CursorID::BenchDown },
|
||||
{ "CURSOR_CROSS_HAIR", CursorID::CrossHair },
|
||||
{ "CURSOR_BIN_DOWN", CursorID::BinDown },
|
||||
{ "CURSOR_LAMPPOST_DOWN", CursorID::LamppostDown },
|
||||
{ "CURSOR_FENCE_DOWN", CursorID::FenceDown },
|
||||
{ "CURSOR_FLOWER_DOWN", CursorID::FlowerDown },
|
||||
{ "CURSOR_PATH_DOWN", CursorID::PathDown },
|
||||
{ "CURSOR_DIG_DOWN", CursorID::DigDown },
|
||||
{ "CURSOR_WATER_DOWN", CursorID::WaterDown },
|
||||
{ "CURSOR_HOUSE_DOWN", CursorID::HouseDown },
|
||||
{ "CURSOR_VOLCANO_DOWN", CursorID::VolcanoDown },
|
||||
{ "CURSOR_WALK_DOWN", CursorID::WalkDown },
|
||||
{ "CURSOR_PAINT_DOWN", CursorID::PaintDown },
|
||||
{ "CURSOR_ENTRANCE_DOWN", CursorID::EntranceDown },
|
||||
{ "CURSOR_HAND_OPEN", CursorID::HandOpen },
|
||||
{ "CURSOR_HAND_CLOSED", CursorID::HandClosed },
|
||||
{ "CURSOR_ARROW", CursorID::Arrow },
|
||||
};
|
||||
|
||||
CursorID FromString(const std::string& s, CursorID defaultValue)
|
||||
{
|
||||
assert(defaultValue != CursorID::Undefined);
|
||||
static const std::unordered_map<std::string, CursorID> LookupTable{
|
||||
{ "CURSOR_BLANK", CursorID::Blank },
|
||||
{ "CURSOR_UP_ARROW", CursorID::UpArrow },
|
||||
{ "CURSOR_UP_DOWN_ARROW", CursorID::UpDownArrow },
|
||||
{ "CURSOR_HAND_POINT", CursorID::HandPoint },
|
||||
{ "CURSOR_ZZZ", CursorID::ZZZ },
|
||||
{ "CURSOR_DIAGONAL_ARROWS", CursorID::DiagonalArrows },
|
||||
{ "CURSOR_PICKER", CursorID::Picker },
|
||||
{ "CURSOR_TREE_DOWN", CursorID::TreeDown },
|
||||
{ "CURSOR_FOUNTAIN_DOWN", CursorID::FountainDown },
|
||||
{ "CURSOR_STATUE_DOWN", CursorID::StatueDown },
|
||||
{ "CURSOR_BENCH_DOWN", CursorID::BenchDown },
|
||||
{ "CURSOR_CROSS_HAIR", CursorID::CrossHair },
|
||||
{ "CURSOR_BIN_DOWN", CursorID::BinDown },
|
||||
{ "CURSOR_LAMPPOST_DOWN", CursorID::LamppostDown },
|
||||
{ "CURSOR_FENCE_DOWN", CursorID::FenceDown },
|
||||
{ "CURSOR_FLOWER_DOWN", CursorID::FlowerDown },
|
||||
{ "CURSOR_PATH_DOWN", CursorID::PathDown },
|
||||
{ "CURSOR_DIG_DOWN", CursorID::DigDown },
|
||||
{ "CURSOR_WATER_DOWN", CursorID::WaterDown },
|
||||
{ "CURSOR_HOUSE_DOWN", CursorID::HouseDown },
|
||||
{ "CURSOR_VOLCANO_DOWN", CursorID::VolcanoDown },
|
||||
{ "CURSOR_WALK_DOWN", CursorID::WalkDown },
|
||||
{ "CURSOR_PAINT_DOWN", CursorID::PaintDown },
|
||||
{ "CURSOR_ENTRANCE_DOWN", CursorID::EntranceDown },
|
||||
{ "CURSOR_HAND_OPEN", CursorID::HandOpen },
|
||||
{ "CURSOR_HAND_CLOSED", CursorID::HandClosed },
|
||||
{ "CURSOR_ARROW", CursorID::Arrow },
|
||||
};
|
||||
|
||||
auto result = LookupTable.find(s);
|
||||
return (result != LookupTable.end()) ? result->second : defaultValue;
|
||||
|
||||
Reference in New Issue
Block a user