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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// *
// * 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 3 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, see http://www.gnu.org/licenses/.
#ifndef _MISC_H_
#define _MISC_H_
#include <time.h>
#include "metafile.h"
extern CMetaFile g_metafile;
// Classes existantes.
enum ClassType
{
CLASS_EVENT = 1,
CLASS_INTERFACE = 2,
CLASS_MAIN = 3,
CLASS_ENGINE = 4,
CLASS_TERRAIN = 5,
CLASS_OBJECT = 6,
CLASS_PHYSICS = 7,
CLASS_BRAIN = 8,
CLASS_CAMERA = 9,
CLASS_LIGHT = 10,
CLASS_PARTICULE = 11,
CLASS_AUTO = 12,
CLASS_DISPLAYTEXT = 13,
CLASS_PYRO = 14,
CLASS_SCRIPT = 15,
CLASS_TEXT = 16,
CLASS_STUDIO = 17,
CLASS_WATER = 18,
CLASS_CLOUD = 19,
CLASS_MOTION = 20,
CLASS_SOUND = 21,
CLASS_PLANET = 22,
CLASS_TASKMANAGER = 23,
CLASS_DIALOG = 24,
CLASS_MAP = 25,
CLASS_SHORT = 26,
CLASS_BLITZ = 27,
};
#define CLASS_MAX 30
enum Error
{
ERR_OK = 0, // ok
ERR_GENERIC = 1, // erreur quelconque
ERR_CONTINUE = 2, // continue
ERR_STOP = 3, // stoppe
ERR_CMD = 4, // commande inconnue
ERR_INSTALL = 20, // programme mal install�
ERR_NOCD = 21, // CD pas trouv�
ERR_MANIP_VEH = 100, // v�hicule inadapt�
ERR_MANIP_FLY = 101, // impossible en vol
ERR_MANIP_BUSY = 102, // prend: porte d�j� qq chose
ERR_MANIP_NIL = 103, // prend: rien � prendre
ERR_MANIP_MOTOR = 105, // d�pose: impossible en mouvement
ERR_MANIP_OCC = 106, // d�pose: emplacement d�j� occup�
ERR_MANIP_FRIEND = 107, // pas d'autre v�hicule
ERR_MANIP_RADIO = 108, // impossible car radioactif
ERR_MANIP_WATER = 109, // impossible sous l'eau
ERR_MANIP_EMPTY = 110, // rien � d�poser
ERR_BUILD_FLY = 120, // impossible en vol
ERR_BUILD_WATER = 121, // impossible sous l'eau
ERR_BUILD_ENERGY = 122, // pas assez d'�nergie
ERR_BUILD_METALAWAY = 123, // pas de m�tal (trop loin)
ERR_BUILD_METALNEAR = 124, // pas de m�tal (trop proche)
ERR_BUILD_METALINEX = 125, // m�tal inexistant
ERR_BUILD_FLAT = 126, // sol pas assez plat
ERR_BUILD_FLATLIT = 127, // sol plat pas assez grand
ERR_BUILD_BUSY = 128, // enplacement occup�
ERR_BUILD_BASE = 129, // trop proche de la fus�e
ERR_BUILD_NARROW = 130, // b�timents trop serr�s
ERR_BUILD_MOTOR = 131, // construit: impossible en mouvement
ERR_SEARCH_FLY = 140, // impossible en vol
ERR_SEARCH_VEH = 141, // v�hicule inadapt�
ERR_SEARCH_MOTOR = 142, // impossible en mouvement
ERR_TERRA_VEH = 150, // v�hicule inadapt�
ERR_TERRA_ENERGY = 151, // pas assez d'�nergie
ERR_TERRA_FLOOR = 152, // terrain inadapt�
ERR_TERRA_BUILDING = 153, // batiment trop proche
ERR_TERRA_OBJECT = 154, // object trop proche
ERR_FIRE_VEH = 160, // v�hicule inadapt�
ERR_FIRE_ENERGY = 161, // pas assez d'�nergie
ERR_FIRE_FLY = 162, // impossible en vol
ERR_RECOVER_VEH = 170, // v�hicule inadapt�
ERR_RECOVER_ENERGY = 171, // pas assez d'�nergie
ERR_RECOVER_NULL = 172, // pas de ruine
ERR_CONVERT_EMPTY = 180, // pas de pierre � transformer
ERR_SHIELD_VEH = 190, // v�hicule inadapt�
ERR_SHIELD_ENERGY = 191, // pas assez d'�nergie
ERR_MOVE_IMPOSSIBLE = 200, // move impossible
ERR_FIND_IMPOSSIBLE = 201, // find impossible
ERR_GOTO_IMPOSSIBLE = 210, // goto impossible
ERR_GOTO_ITER = 211, // goto trop compliqu�
ERR_GOTO_BUSY = 212, // destination goto occup�e
ERR_DERRICK_NULL = 300, // pas de minerai en sous-sol
ERR_STATION_NULL = 301, // pas d'�nergie en sous-sol
ERR_TOWER_POWER = 310, // pas de pile
ERR_TOWER_ENERGY = 311, // plus d'�nergie
ERR_RESEARCH_POWER = 320, // pas de pile
ERR_RESEARCH_ENERGY = 321, // plus d'�nergie
ERR_RESEARCH_TYPE = 322, // pas le bon type de pile
ERR_RESEARCH_ALREADY= 323, // recherche d�j� fa�te
ERR_ENERGY_NULL = 330, // pas d'�nergie en sous-sol
ERR_ENERGY_LOW = 331, // pas encore assez d'�nergie
ERR_ENERGY_EMPTY = 332, // pas de m�tal � transformer
ERR_ENERGY_BAD = 333, // ne transforme que le m�tal
ERR_BASE_DLOCK = 340, // portes bloqu�es
ERR_BASE_DHUMAN = 341, // vous devez embarquer
ERR_LABO_NULL = 350, // rien � analyser
ERR_LABO_BAD = 351, // pas de boulet � analyser
ERR_LABO_ALREADY = 352, // analyse d�j� fa�te
ERR_NUCLEAR_NULL = 360, // pas d'�nergie en sous-sol
ERR_NUCLEAR_LOW = 361, // pas encore assez d'�nergie
ERR_NUCLEAR_EMPTY = 362, // pas d'uranium � transformer
ERR_NUCLEAR_BAD = 363, // ne transforme que l'uranium
ERR_FACTORY_NULL = 370, // pas de m�tal
ERR_FACTORY_NEAR = 371, // v�hicule trop proche
ERR_RESET_NEAR = 380, // v�hicule trop proche
ERR_INFO_NULL = 390, // pas de borne d'information
ERR_VEH_VIRUS = 400, // v�hicule infect� par un virus
ERR_BAT_VIRUS = 401, // b�timent infect� par un virus
ERR_VEH_POWER = 500, // pas de pile
ERR_VEH_ENERGY = 501, // plus d'�nergie
ERR_FLAG_FLY = 510, // impossible en vol
ERR_FLAG_WATER = 511, // impossible en nageant
ERR_FLAG_MOTOR = 512, // impossible en mouvement
ERR_FLAG_BUSY = 513, // prend: porte d�j� qq chose
ERR_FLAG_CREATE = 514, // trop d'indicateurs
ERR_FLAG_PROXY = 515, // trop proche
ERR_FLAG_DELETE = 516, // rien � supprimer
ERR_MISSION_NOTERM = 600, // mission pas termin�e
ERR_DELETEMOBILE = 700, // v�hicule d�truit
ERR_DELETEBUILDING = 701, // b�timent d�truit
ERR_TOOMANY = 702, // trop d'objets
ERR_OBLIGATORYTOKEN = 800, // instruction obligatoire manquante
ERR_PROHIBITEDTOKEN = 801, // instruction interdite
INFO_FIRST = 10000, // premi�re information
INFO_BUILD = 10001, // construction termin�e
INFO_CONVERT = 10002, // m�tal disponible
INFO_RESEARCH = 10003, // recherche termin�e
INFO_FACTORY = 10004, // v�hicule fabriqu�
INFO_LABO = 10005, // analyse termin�e
INFO_ENERGY = 10006, // pile disponible
INFO_NUCLEAR = 10007, // pile nucl�aire disponible
INFO_FINDING = 10008, // pile nucl�aire disponible
INFO_MARKPOWER = 10020, // emplacement pour station trouv�
INFO_MARKURANIUM = 10021, // emplacement pour derrick trouv�
INFO_MARKSTONE = 10022, // emplacement pour derrick trouv�
INFO_MARKKEYa = 10023, // emplacement pour derrick trouv�
INFO_MARKKEYb = 10024, // emplacement pour derrick trouv�
INFO_MARKKEYc = 10025, // emplacement pour derrick trouv�
INFO_MARKKEYd = 10026, // emplacement pour derrick trouv�
INFO_RESEARCHTANK = 10030, // recherche termin�e
INFO_RESEARCHFLY = 10031, // recherche termin�e
INFO_RESEARCHTHUMP = 10032, // recherche termin�e
INFO_RESEARCHCANON = 10033, // recherche termin�e
INFO_RESEARCHTOWER = 10034, // recherche termin�e
INFO_RESEARCHPHAZER = 10035, // recherche termin�e
INFO_RESEARCHSHIELD = 10036, // recherche termin�e
INFO_RESEARCHATOMIC = 10037, // recherche termin�e
INFO_WIN = 10040, // gagn�
INFO_LOST = 10041, // perdu
INFO_LOSTq = 10042, // perdu imm�diatement
INFO_WRITEOK = 10043, // enregistrement effectu�
INFO_DELETEPATH = 10050, // marque chemin supprim�e
INFO_DELETEMOTHER = 10100, // insecte tu�
INFO_DELETEANT = 10101, // insecte tu�
INFO_DELETEBEE = 10102, // insecte tu�
INFO_DELETEWORM = 10103, // insecte tu�
INFO_DELETESPIDER = 10104, // insecte tu�
INFO_BEGINSATCOM = 10105, // utilisez votre SatCom
};
// Etat du clavier.
#define KS_PAGEUP (1<<4)
#define KS_PAGEDOWN (1<<5)
#define KS_SHIFT (1<<6)
#define KS_CONTROL (1<<7)
#define KS_MLEFT (1<<8)
#define KS_MRIGHT (1<<9)
#define KS_NUMUP (1<<10)
#define KS_NUMDOWN (1<<11)
#define KS_NUMLEFT (1<<12)
#define KS_NUMRIGHT (1<<13)
#define KS_NUMPLUS (1<<14)
#define KS_NUMMINUS (1<<15)
// Proc�dures.
enum EventMsg;
extern EventMsg GetUniqueEventMsg();
extern char RetNoAccent(char letter);
extern char RetToUpper(char letter);
extern char RetToLower(char letter);
extern void TimeToAscii(time_t time, char *buffer);
extern BOOL CopyFileToTemp(char* filename);
extern BOOL CopyFileListToTemp(char* filename, int* list, int total);
extern void AddExt(char* filename, char* ext);
extern void UserDir(BOOL bUser, char* dir);
extern void UserDir(char* buffer, char* dir, char* def);
extern char RetLanguageLetter();
#endif //_MISC_H_
|