colobot/src/common/global.h

236 lines
12 KiB
C
Raw Normal View History

/*
* This file is part of the Colobot: Gold Edition source code
* Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam
* http://epsiteс.ch; http://colobot.info; http://github.com/colobot
*
* 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://gnu.org/licenses
*/
/**
* \file common/global.h
* \brief Some common, global definitions
*/
#pragma once
/**
* \enum Error
* \brief Type of error or info message
*/
enum Error
{
2014-03-21 07:34:52 +00:00
ERR_OK = 0, //! < ok
ERR_GENERIC = 1, //! < any error
ERR_CONTINUE = 2, //! < continues
ERR_STOP = 3, //! < stops
ERR_CMD = 4, //! < unknown command
ERR_MANIP_VEH = 100, //! < inappropriate vehicle
ERR_MANIP_FLY = 101, //! < impossible in flight
ERR_MANIP_BUSY = 102, //! < taking: hands already occupied
ERR_MANIP_NIL = 103, //! < taking: nothing has to take
ERR_MANIP_MOTOR = 105, //! < busy: impossible to move
ERR_MANIP_OCC = 106, //! < busy: location already occupied
ERR_MANIP_FRIEND = 107, //! < no other vehicle
ERR_MANIP_RADIO = 108, //! < impossible because radioactive
ERR_MANIP_WATER = 109, //! < not possible under water
ERR_MANIP_EMPTY = 110, //! < nothing to deposit
ERR_BUILD_FLY = 120, //! < not possible in flight
ERR_BUILD_WATER = 121, //! < not possible under water
ERR_BUILD_ENERGY = 122, //! < not enough energy
ERR_BUILD_METALAWAY = 123, //! < lack of metal (too far)
ERR_BUILD_METALNEAR = 124, //! < lack of metal (too close)
ERR_BUILD_METALINEX = 125, //! < lack of metal
ERR_BUILD_FLAT = 126, //! < not enough flat ground
ERR_BUILD_FLATLIT = 127, //! < not enough flat ground space
ERR_BUILD_BUSY = 128, //! < location occupied
ERR_BUILD_BASE = 129, //! < too close to the rocket
ERR_BUILD_NARROW = 130, //! < buildings too close
ERR_BUILD_MOTOR = 131, //! < built: not possible in movement
ERR_BUILD_DISABLED = 132, //! < built: can not produce this object in this mission
ERR_BUILD_RESEARCH = 133, //! < built: can not produce not researched object
ERR_SEARCH_FLY = 140, //! < not possible in flight
ERR_SEARCH_VEH = 141, //! < inappropriate vehicle
ERR_SEARCH_MOTOR = 142, //! < impossible in movement
ERR_TERRA_VEH = 150, //! < inappropriate vehicle
ERR_TERRA_ENERGY = 151, //! < not enough energy
ERR_TERRA_FLOOR = 152, //! < inappropriate ground
ERR_TERRA_BUILDING = 153, //! < building too close
ERR_TERRA_OBJECT = 154, //! < object too close
ERR_FIRE_VEH = 160, //! < inappropriate vehicle
ERR_FIRE_ENERGY = 161, //! < not enough energy
ERR_FIRE_FLY = 162, //! < not possible in flight
ERR_RECOVER_VEH = 170, //! < inappropriate vehicle
ERR_RECOVER_ENERGY = 171, //! < not enough energy
ERR_RECOVER_NULL = 172, //! < lack of ruin
ERR_CONVERT_EMPTY = 180, //! < no stone was transformed
ERR_SHIELD_VEH = 190, //! < inappropriate vehicle
ERR_SHIELD_ENERGY = 191, //! < not enough energy
ERR_MOVE_IMPOSSIBLE = 200, //! < move impossible
ERR_FIND_IMPOSSIBLE = 201, //! < find impossible
ERR_GOTO_IMPOSSIBLE = 210, //! < goto impossible
ERR_GOTO_ITER = 211, //! < goto too complicated
ERR_GOTO_BUSY = 212, //! < goto destination occupied
ERR_DERRICK_NULL = 300, //! < no ore underground
ERR_STATION_NULL = 301, //! < no energy underground
ERR_TOWER_POWER = 310, //! < no battery
ERR_TOWER_ENERGY = 311, //! < more energy
ERR_RESEARCH_POWER = 320, //! < no battery
ERR_RESEARCH_ENERGY = 321, //! < more energy
ERR_RESEARCH_TYPE = 322, //! < the wrong type of battery
ERR_RESEARCH_ALREADY = 323, //! < research already done
ERR_ENERGY_NULL = 330, //! < no energy underground
ERR_ENERGY_LOW = 331, //! < not enough energy
ERR_ENERGY_EMPTY = 332, //! < lack of metal
ERR_ENERGY_BAD = 333, //! < transforms only the metal
ERR_BASE_DLOCK = 340, //! < doors locked
ERR_BASE_DHUMAN = 341, //! < you must be on spaceship
ERR_LABO_NULL = 350, //! < nothing to analyze
ERR_LABO_BAD = 351, //! < analyzes only organic ball
ERR_LABO_ALREADY = 352, //! < analysis already made
ERR_NUCLEAR_NULL = 360, //! < no energy underground
ERR_NUCLEAR_LOW = 361, //! < not enough energy
ERR_NUCLEAR_EMPTY = 362, //! < lack of uranium
ERR_NUCLEAR_BAD = 363, //! < transforms only uranium
ERR_FACTORY_NULL = 370, //! < no metal
ERR_FACTORY_NEAR = 371, //! < vehicle too close
ERR_RESET_NEAR = 380, //! < vehicle too close
ERR_INFO_NULL = 390, //! < no information terminal
ERR_VEH_VIRUS = 400, //! < vehicle infected by a virus
ERR_BAT_VIRUS = 401, //! < building infected by a virus
2014-03-21 11:15:15 +00:00
ERR_DESTROY_NOTFOUND = 410, //! < not found anything to destroy
2014-03-21 07:34:52 +00:00
ERR_WRONG_OBJ = 420, //! < inappropriate vehicle
ERR_VEH_POWER = 500, //! < no battery
ERR_VEH_ENERGY = 501, //! < more energy
ERR_FLAG_FLY = 510, //! < impossible in flight
ERR_FLAG_WATER = 511, //! < impossible during swimming
ERR_FLAG_MOTOR = 512, //! < impossible in movement
ERR_FLAG_BUSY = 513, //! < taking: already creating flag
ERR_FLAG_CREATE = 514, //! < too many flags
ERR_FLAG_PROXY = 515, //! < too close
ERR_FLAG_DELETE = 516, //! < nothing to remove
ERR_MISSION_NOTERM = 600, //! < Mission not completed
ERR_DELETEMOBILE = 700, //! < vehicle destroyed
ERR_DELETEBUILDING = 701, //! < building destroyed
ERR_TOOMANY = 702, //! < too many objects
ERR_ENEMY_OBJECT = 703, //! < can't control enemy object
2014-03-21 07:34:52 +00:00
ERR_OBLIGATORYTOKEN = 800, //! < compulsory instruction missing
ERR_PROHIBITEDTOKEN = 801, //! < instruction prohibited
ERR_AIM_IMPOSSIBLE = 900, //! < cannot aim at specified angle(s)
2014-03-21 07:34:52 +00:00
INFO_FIRST = 10000, //! < first information
INFO_BUILD = 10001, //! < construction builded
INFO_CONVERT = 10002, //! < metal available
INFO_RESEARCH = 10003, //! < search ended
INFO_FACTORY = 10004, //! < vehicle manufactured
INFO_LABO = 10005, //! < analysis ended
INFO_ENERGY = 10006, //! < battery available
INFO_NUCLEAR = 10007, //! < nuclear battery available
INFO_FINDING = 10008, //! < useful object found
2014-03-21 07:34:52 +00:00
INFO_MARKPOWER = 10020, //! < location for station found
INFO_MARKURANIUM = 10021, //! < location for derrick found
INFO_MARKSTONE = 10022, //! < location for derrick found
INFO_MARKKEYa = 10023, //! < location for derrick found
INFO_MARKKEYb = 10024, //! < location for derrick found
INFO_MARKKEYc = 10025, //! < location for derrick found
INFO_MARKKEYd = 10026, //! < location for derrick found
INFO_RESEARCHTANK = 10030, //! < research ended
INFO_RESEARCHFLY = 10031, //! < research ended
INFO_RESEARCHTHUMP = 10032, //! < research ended
INFO_RESEARCHCANON = 10033, //! < research ended
INFO_RESEARCHTOWER = 10034, //! < research ended
INFO_RESEARCHPHAZER = 10035, //! < research ended
INFO_RESEARCHSHIELD = 10036, //! < research ended
INFO_RESEARCHATOMIC = 10037, //! < research ended
INFO_WIN = 10040, //! < win
INFO_LOST = 10041, //! < lost
INFO_LOSTq = 10042, //! < lost immediately
INFO_WRITEOK = 10043, //! < record done
INFO_DELETEPATH = 10050, //! < way mark deleted
INFO_DELETEMOTHER = 10100, //! < insect killed
INFO_DELETEANT = 10101, //! < insect killed
INFO_DELETEBEE = 10102, //! < insect killed
INFO_DELETEWORM = 10103, //! < insect killed
INFO_DELETESPIDER = 10104, //! < insect killed
INFO_BEGINSATCOM = 10105, //! < use your SatCom
ERR_MAX //! < number of values
};
/**
* \enum Language
* \brief Application language
*/
enum Language
{
LANGUAGE_ENV = -1,
LANGUAGE_ENGLISH = 0,
LANGUAGE_FRENCH = 1,
LANGUAGE_GERMAN = 2,
2013-11-07 13:44:12 +00:00
LANGUAGE_POLISH = 3,
LANGUAGE_RUSSIAN = 4
};
/**
* \enum BuildType
* \brief Construction actions (buildings, etc.) available to user
*
* TODO: refactor
*/
enum BuildType
{
BUILD_FACTORY = (1<<0), //! < factory
BUILD_DERRICK = (1<<1), //! < derrick
BUILD_CONVERT = (1<<2), //! < converter
BUILD_RADAR = (1<<3), //! < radar
BUILD_ENERGY = (1<<4), //! < factory of cells
BUILD_NUCLEAR = (1<<5), //! < nuclear power plant
BUILD_STATION = (1<<6), //! < base station
BUILD_REPAIR = (1<<7), //! < repair center
BUILD_TOWER = (1<<8), //! < defense tower
BUILD_RESEARCH = (1<<9), //! < research center
BUILD_LABO = (1<<10), //! < laboratory
BUILD_PARA = (1<<11), //! < lightning protection
BUILD_INFO = (1<<12), //! < information terminal
BUILD_DESTROYER = (1<<13), //! < Destroyer
BUILD_GFLAT = (1<<16), //! < flat floor
BUILD_FLAG = (1<<17) //! < puts / removes colored flag
};
/**
* \enum ResearchType
* \brief Research actions available to user
*/
enum ResearchType
{
RESEARCH_TANK = (1<<0), //! < caterpillars
RESEARCH_FLY = (1<<1), //! < wings
RESEARCH_CANON = (1<<2), //! < cannon
RESEARCH_TOWER = (1<<3), //! < defense tower
RESEARCH_ATOMIC = (1<<4), //! < nuclear
RESEARCH_THUMP = (1<<5), //! < thumper
RESEARCH_SHIELD = (1<<6), //! < shield
RESEARCH_PHAZER = (1<<7), //! < phazer gun
RESEARCH_iPAW = (1<<8), //! < legs of insects
RESEARCH_iGUN = (1<<9), //! < cannon of insects
RESEARCH_RECYCLER = (1<<10), //! < recycler
RESEARCH_SUBM = (1<<11), //! < submarine
RESEARCH_SNIFFER = (1<<12) //! < sniffer
};
// TODO: move to CRobotMain
extern float g_unit; // conversion factor