ScummVM API documentation
egg_manager.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef NUVIE_CORE_EGG_MANAGER_H
23#define NUVIE_CORE_EGG_MANAGER_H
24
25#include "common/str.h"
26#include "ultima/nuvie/core/obj_manager.h"
27
28namespace Ultima {
29namespace Nuvie {
30
31struct Egg {
32 bool seen_egg;
33 Obj *obj;
34 Egg() {
35 seen_egg = false;
36 obj = nullptr;
37 };
38};
39
40class Configuration;
41class ActorManager;
42class Actor;
43class Map;
44
46 ActorManager *actor_manager;
47 ObjManager *obj_manager;
48 nuvie_game_t gametype; // what game is being played?
49
50 Common::List<Egg *> egg_list;
51
52public:
53
54 EggManager(nuvie_game_t type);
56
57 void set_actor_manager(ActorManager *am) {
58 actor_manager = am;
59 }
60 void set_obj_manager(ObjManager *om) {
61 obj_manager = om;
62 }
63
64 void clean(bool keep_obj = true);
65
66 void add_egg(Obj *egg);
67 void remove_egg(Obj *egg, bool keep_egg = true);
68 void set_egg_visibility(bool show_eggs);
69 bool spawn_egg(Obj *egg, uint8 hatch_probability);
70 void spawn_eggs(uint16 x, uint16 y, uint8 z, bool teleport = false);
71 Common::List<Egg *> *get_egg_list() {
72 return &egg_list;
73 };
74 bool is_spawning_actors() const {
75 return !not_spawning_actors;
76 }
77 void set_spawning_actors(bool spawning) {
78 not_spawning_actors = !spawning;
79 }
80
81protected:
82
83 uint8 get_worktype(const Obj *embryo);
84 bool not_spawning_actors;
85};
86
87} // End of namespace Nuvie
88} // End of namespace Ultima
89
90#endif
Definition: list.h:44
Definition: actor.h:174
Definition: actor_manager.h:42
Definition: configuration.h:60
Definition: egg_manager.h:45
Definition: map.h:147
Definition: obj.h:84
Definition: obj_manager.h:74
Definition: egg_manager.h:31