aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/cge_main.h
blob: 68c6f1f1dc93a4d84c49b93b37c4359c31cf793d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 */

/*
 * This code is based on original Soltys source code
 * Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon
 */

#ifndef __CGE_CGE__
#define __CGE_CGE__

#include "cge/wav.h"
#include "cge/vga13h.h"
#include "cge/events.h"

namespace CGE {
#define CAVE_X         4
#define CAVE_Y         166
#define CAVE_SX        0
#define CAVE_SY        0

#ifdef DEMO
#define CAVE_DX        23
#define CAVE_DY        29
#define CAVE_NX        3
#define CAVE_NY        1
#else
#define CAVE_DX        9
#define CAVE_DY        10
#define CAVE_NX        8
#define CAVE_NY        3
#endif
#define CAVE_MAX       (CAVE_NX * CAVE_NY)
#define PAIN           (_vm->_flag[0])

#define kInfoX         177
#define kInfoY         164
#define kInfoW         140
#define kButtonX       151
#define kButtonY       164
#define kMiniX         86
#define kMiniY         162
#define kLineMax       512
#define kDistMax       3
#define kIn0Ext        ".IN0"
#define kLgoExt        ".LGO"
#define kSvgExt        ".SVG"
#define kWalkSide      10
#define kBusyRef       500
#define kSystemRate    6   // 12 Hz
#define kHeroFun0      (40 * 12)
#define kHeroFun1      ( 2 * 12)
#define GETNAME_PROMPT 50
#define GETNAME_TITLE  51
#define TSEQ           96
#define NOMUSIC_TEXT   98
#define BADSVG_TEXT    99
#define HTALK          (TSEQ + 4)
#define TOO_FAR        (TSEQ + 5)
#define NO_WAY         (TSEQ + 5)
#define POC_FUL        (TSEQ + 5)
#define OFF_USE        (TSEQ + 6)
#define QUIT_TITLE     200
#define QUIT_TEXT      201
#define NOQUIT_TEXT    202
#define DEMO_TEXT      300
#define NOSOUND_TEXT   310
#define OFF_USE_COUNT  600
#define OFF_USE_TEXT   601
#define NO_WAY_TEXT    671
#define TOO_FAR_TEXT   681
#define POC_FUL_TEXT   691
#define A_C_D_TEXT     777
#define kPanHeight     40
#define kScrWidth      320
#define kScrHeight     200
#define kWorldHeight   (kScrHeight - kPanHeight)

class System : public Sprite {
	int _lum;
public:
	int _funDel;

	System(CGEEngine *vm);

	void setPal();
	void funTouch();
	virtual void touch(uint16 mask, int x, int y);
	void tick();
private:
	CGEEngine *_vm;
};

class Square : public Sprite {
public:
	Square(CGEEngine *vm);
	virtual void touch(uint16 mask, int x, int y);
private:
	CGEEngine *_vm;
};

extern Vga *_vga;
extern Heart *_heart;
extern System *_sys;
extern int _offUseCount;
extern Sprite *_pocLight;
extern Keyboard *_keyboard;
extern Mouse *_mouse;
extern EventManager *_eventManager;
extern Sprite *_pocket[];
extern Sprite *_sprite;
extern Sprite *_miniCave;
extern Sprite *_shadow;
extern HorizLine *_horzLine;
extern InfoLine *_infoLine;
extern Sprite *_cavLight;
extern InfoLine *_debugLine;
extern Snail *_snail;
extern Snail *_snail_;

} // End of namespace CGE

#endif