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 #include "Map.h" 14 #include "Scenery.h" 15 16 enum SMALL_SCENERY_FLAGS : uint32_t 17 { 18 SMALL_SCENERY_FLAG_FULL_TILE = (1 << 0), // 0x1 19 SMALL_SCENERY_FLAG_VOFFSET_CENTRE = (1 << 1), // 0x2 20 SMALL_SCENERY_FLAG_REQUIRE_FLAT_SURFACE = (1 << 2), // 0x4 21 SMALL_SCENERY_FLAG_ROTATABLE = (1 << 3), // 0x8; when set, user can set rotation, otherwise rotation is automatic 22 SMALL_SCENERY_FLAG_ANIMATED = (1 << 4), // 0x10 23 SMALL_SCENERY_FLAG_CAN_WITHER = (1 << 5), // 0x20 24 SMALL_SCENERY_FLAG_CAN_BE_WATERED = (1 << 6), // 0x40 25 SMALL_SCENERY_FLAG_ANIMATED_FG = (1 << 7), // 0x80 26 SMALL_SCENERY_FLAG_DIAGONAL = (1 << 8), // 0x100 27 SMALL_SCENERY_FLAG_HAS_GLASS = (1 << 9), // 0x200 28 SMALL_SCENERY_FLAG_HAS_PRIMARY_COLOUR = (1 << 10), // 0x400 29 SMALL_SCENERY_FLAG_FOUNTAIN_SPRAY_1 = (1 << 11), // 0x800 30 SMALL_SCENERY_FLAG_FOUNTAIN_SPRAY_4 = (1 << 12), // 0x1000 31 SMALL_SCENERY_FLAG_IS_CLOCK = (1 << 13), // 0x2000 32 SMALL_SCENERY_FLAG_SWAMP_GOO = (1 << 14), // 0x4000 33 SMALL_SCENERY_FLAG_HAS_FRAME_OFFSETS = (1 << 15), // 0x8000 34 SMALL_SCENERY_FLAG17 = (1 << 16), // 0x10000 35 SMALL_SCENERY_FLAG_STACKABLE = (1 << 17), // 0x20000; means scenery item can be placed in the air and over water 36 SMALL_SCENERY_FLAG_NO_WALLS = (1 << 18), // 0x40000 37 SMALL_SCENERY_FLAG_HAS_SECONDARY_COLOUR = (1 << 19), // 0x80000 38 SMALL_SCENERY_FLAG_NO_SUPPORTS = (1 << 20), // 0x100000 39 SMALL_SCENERY_FLAG_VISIBLE_WHEN_ZOOMED = (1 << 21), // 0x200000 40 SMALL_SCENERY_FLAG_COG = (1 << 22), // 0x400000 41 SMALL_SCENERY_FLAG_BUILD_DIRECTLY_ONTOP = (1 << 23), // 0x800000; means supports can be built on this object. Used for base 42 // blocks. 43 SMALL_SCENERY_FLAG_HALF_SPACE = (1 << 24), // 0x1000000 44 SMALL_SCENERY_FLAG_THREE_QUARTERS = (1 << 25), // 0x2000000 45 SMALL_SCENERY_FLAG_PAINT_SUPPORTS = (1 << 26), // 0x4000000; used for scenery items which are support structures 46 SMALL_SCENERY_FLAG27 = (1 << 27), // 0x8000000 47 48 SMALL_SCENERY_FLAG_IS_TREE = (1 << 28), // Added by OpenRCT2 49 }; 50 51 enum 52 { 53 MAP_ELEM_SMALL_SCENERY_COLOUR_FLAG_NEEDS_SUPPORTS = (1 << 5), 54 }; 55 56 SmallSceneryEntry* get_small_scenery_entry(ObjectEntryIndex entryIndex); 57