Colobot
object_interface_type.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Colobot: Gold Edition source code
3  * Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam
4  * http://epsitec.ch; http://colobot.info; http://github.com/colobot
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see http://gnu.org/licenses
18  */
19 
25 #pragma once
26 
27 #include <cstddef>
28 #include <array>
29 
35 {
36  Interactive,
39  Programmable,
40  TaskExecutor,
41  Jostleable,
42  Carrier,
43  Powered,
44  Movable,
45  Flying,
46  JetFlying,
47  Controllable,
49  Ranged,
50  TraceDrawing,
51  Damageable,
52  Destroyable,
53  Fragile,
54  Shielded,
56  Old,
57  Max
58 };
59 
60 using ObjectInterfaceTypes = std::array<bool, static_cast<std::size_t>(ObjectInterfaceType::Max)>;
old objects, TODO: remove once no longer necessary
objects that are destroyed immediately after hit
objects that can be selected and controlled by the player
object that can carry other objects
objects that can move
objects that have a operation range to be displayed after pressing button in the UI ...
ObjectInterfaceType
Type of interface that an object implements.
Definition: object_interface_type.h:34
objects that store CBOT programs
objects that can be destroyed (base for Shielded and Fragile)
maximum value (for getting number of items in enum)
objects that can be programmed in CBOT
objects that can draw wheel trace
objects that can execute tasks (CTask classes)
objects that generate particles when hit
shielded objects with auto shield regeneration
interactive objects can process events from event loop
object that can be jostled
objects that can be destroyed after the shield goes down to 0
objects that can fly
objects that can fly using a jet engine
objects that can be carried by robots or astronaut
objects that hold power
object powered with power cell