22 #ifndef QDENGINE_MINIGAMES_3MICE2_KOVRIK_H 23 #define QDENGINE_MINIGAMES_3MICE2_KOVRIK_H 25 #include "common/debug.h" 27 #include "qdengine/qd_fwd.h" 28 #include "qdengine/qdcore/qd_minigame_interface.h" 38 debugC(1, kDebugMinigames,
"3mice2Kovrik::init()");
40 _engine = engine_interface;
41 _scene = engine_interface->current_scene_interface();
45 for (
int i = 1; i <= 41; i++)
48 for (
int i = 1; i <= 41; i++)
59 debugC(3, kDebugMinigames,
"3mice2Kovrik::quant(%f)", dt);
66 const char *name = obj->
name();
71 int num = getObjNum(name);
72 debugC(4, kDebugMinigames,
"to_inv: num is: %d for name: '%s'", num, name);
76 _scene->release_object_interface(obj);
83 const char *name = obj->
name();
86 int num = getObjNum(name);
87 debugC(4, kDebugMinigames,
"base: num is: %d for name: '%s'", num, name);
91 _scene->release_object_interface(obj);
102 const char *name = obj->
name();
104 if (strstr(name,
"@") && strstr(obj2->
name(),
"@")) {
105 int num = getObjNum(name);
106 debugC(2, kDebugMinigames,
"part1: num is: %d for name: '%s'", num, name);
109 int num2 = getObjNum(name);
110 debugC(2, kDebugMinigames,
"part2: num2 is: %d for name: '%s'", num2, name);
117 if ((num2 == 29 && num == 31) ||
118 (num2 == 31 && num == 29) ||
119 (num2 == 26 && (num == 31 || num == 29)) ||
120 (num2 == 3 && num == 4) ||
121 (num2 == 22 && num == 21) ||
122 (num2 == 1 && num == 2) ||
123 (num2 == 37 && (num == 35 || num == 32 || num == 34 || num == 38))) {
128 _scene->release_object_interface(obj);
138 if (_timePassed > 1.0) {
149 debugC(1, kDebugMinigames,
"3mice2Kovrik::finit()");
152 _engine->release_scene_interface(_scene);
171 enum { INTERFACE_VERSION = 112 };
172 int version()
const {
173 return INTERFACE_VERSION;
177 bool checkSolution() {
178 for (
int i = 1; i <= 41; i++)
179 if (!_objects[i]->is_state_active(
"kovrik"))
185 int getObjNum(
const char *name) {
186 const char *from = strstr(name,
"@");
187 const char *to = strstr(name,
"#");
203 float _timePassed = 0.0;
208 #endif // QDENGINE_MINIGAMES_3MICE2_KOVRIK_H Definition: 3mice2_kovrik.h:32
bool finit()
Деинициализация игры.
Definition: 3mice2_kovrik.h:148
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
size_t strlcpy(char *dst, const char *src, size_t size)
virtual const char * name() const =0
Имя объекта.
Нажатие левой кнопки.
Definition: qd_minigame_interface.h:372
Definition: qd_minigame_interface.h:78
bool init(const qdEngineInterface *engine_interface)
Инициализация игры.
Definition: 3mice2_kovrik.h:37
bool new_game(const qdEngineInterface *engine_interface)
Инициализация миниигры, вызывается при старте и перезапуске игры.
Definition: 3mice2_kovrik.h:159
int save_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, char *buffer, int buffer_size)
Сохранение данных, вызывается при сохранении сцены, на которую повешена миниигра. ...
Definition: 3mice2_kovrik.h:163
Definition: qd_minigame_interface.h:365
bool quant(float dt)
Обсчёт логики игры, параметр - время, которое должно пройти в игре (в секундах).
Definition: 3mice2_kovrik.h:58
virtual bool is_state_active(const char *state_name) const =0
Возвращает true, если состояние с именем state_name включено в данный момент.
Базовый класс для игровых ресурсов.
Definition: console.h:28
virtual qdMinigameObjectInterface * mouse_hover_object_interface() const =0
Создаёт интерфейс к объекту, над которым находится мышиный курсор.
Нажатие правой кнопки.
Definition: qd_minigame_interface.h:374
virtual qdMinigameObjectInterface * mouse_click_object_interface() const =0
Создаёт интерфейс к объекту, по которому кликнули мышью.
int load_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, const char *buffer, int buffer_size)
Загрузка данных, вызывается при загрузке сцены, на которую повешена миниигра.
Definition: 3mice2_kovrik.h:167
Интерфейс к динамическому объекту.
Definition: qd_minigame_interface.h:230
Интерфейс к сцене.
Definition: qd_minigame_interface.h:315
virtual bool set_state(const char *state_name)=0
Включает состояние с именем state_name.
virtual qdMinigameObjectInterface * object_interface(const char *object_name)=0
Создаёт интерфейс к объекту с именем object_name.
virtual bool is_mouse_event_active(qdMinigameMouseEvent event_id) const =0
Возвращает true, если в данный момент произошло событие event_id.
void void void void void debugC(int level, uint32 debugChannels, MSVC_PRINTF const char *s,...) GCC_PRINTF(3
virtual qdMinigameObjectInterface * mouse_object_interface() const =0
Создаёт интерфейс к объекту, который взят мышью в данный момент.