1 /*****************************************************************************
2  * Copyright (c) 2014-2021 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 "EntityBase.h"
13 
14 class DataSerialiser;
15 struct CoordsXYZ;
16 struct CoordsXYZD;
17 
18 struct Litter : EntityBase
19 {
20     enum class Type : uint8_t
21     {
22         Vomit,
23         VomitAlt,
24         EmptyCan,
25         Rubbish,
26         BurgerBox,
27         EmptyCup,
28         EmptyBox,
29         EmptyBottle,
30         EmptyBowlRed,
31         EmptyDrinkCarton,
32         EmptyJuiceCup,
33         EmptyBowlBlue,
34     };
35 
36     static constexpr auto cEntityType = EntityType::Litter;
37     Type SubType;
38     uint32_t creationTick;
39     static void Create(const CoordsXYZD& litterPos, Type type);
40     static void RemoveAt(const CoordsXYZ& litterPos);
41     void Serialise(DataSerialiser& stream);
42     rct_string_id GetName() const;
43     uint32_t GetAge() const;
44 };
45