Constants.h (Content)
The file "Constants.h" is an important part of SourceCode where much values are defined. Previous name of this file was "Options.h".
ship orders
NONE = -1, AVOID = 0, ATTACK = 1, ENCLOAK = 2, ATTACK_SYSTEM = 3, RAID_SYSTEM = 4, BLOCKADE_SYSTEM = 5, DESTROY_SHIP = 6, COLONIZE = 7, TERRAFORM = 8, BUILD_OUTPOST = 9, BUILD_STARBASE = 10, ASSIGN_FLAGSHIP = 11, CREATE_FLEET = 12, TRANSPORT = 13, FOLLOW_SHIP = 14, TRAIN_SHIP = 15, WAIT_SHIP_ORDER = 16, SENTRY_SHIP_ORDER = 17, REPAIR = 18, DECLOAK = 19, CANCEL = 20, IMPROVE_SHIELDS = 21
Content
/* * Copyright (C)2004-2013 Sir Pustekuchen * * Author : Sir Pustekuchen * Home : http://birth-of-the-empires.de * */ #pragma once //#pragma warning(disable: 4204) #include "General\mytrace.h" /// Versionsnummer des Dokuments; es können nur Spielstände geladen werden, die diese Versionsnummer /// haben. #define DOCUMENT_VERSION 10 ///< Alpha 7 Version #define VERSION 0.9 ///< benötigte Version in Datafiles #define VERSION_INFORMATION "0.9" ///< anzuzeigende Versionsinformation // Konsistenzchecks ein/ausschalten (nicht für Release!) //#define CONSISTENCY_CHECKS ///< anschalten wenn Konsistenzchecks durchgeführt werden sollen // --- Feste Größen der Starmap ------------------------------------------------ extern int STARMAP_SECTORS_HCOUNT; ///< Anzahl der Sektoren horizontal extern int STARMAP_SECTORS_VCOUNT; ///< Anzahl der Sektoren vertikal extern const int STARMAP_SECTOR_WIDTH;// 80 ///< Breite eines Sektors in Pixel bei 100% Zoom extern const int STARMAP_SECTOR_HEIGHT;// 80 ///< Höhe eines Sektors extern int STARMAP_TOTALWIDTH ;// 2400 ///< Gesamtbreite der View in Pixel bei 100% (= 40 * 30) extern int STARMAP_TOTALHEIGHT ;// 1600 ///< Gesamthöhe bei 100% (= 20 * 40) #define STARMAP_ZOOM_MIN .3 ///< minimaler Zoom-Faktor extern double STARMAP_ZOOM_MAX; ///< maximaler Zoom-Faktor #define STARMAP_ZOOM_STEP .05 ///< Änderung des Zoom-Faktors beim Drehen des Scrollrades #define STARMAP_ZOOM_INITIAL 1.0 ///< Zoom-Faktor zu Beginn // ------------- View-IDs ------------------------------------------------------ // Mainview #define GALAXY_VIEW 1 #define SYSTEM_VIEW 2 #define RESEARCH_VIEW 3 #define INTEL_VIEW 4 #define DIPLOMACY_VIEW 5 #define TRADE_VIEW 6 #define EMPIRE_VIEW 7 #define FLEET_VIEW 8 #define SHIPDESIGN_VIEW 9 #define TRANSPORT_VIEW 10 #define EVENT_VIEW 11 #define COMBAT_VIEW 12 #define IS_MAIN_VIEW(id) \ ((id) >= GALAXY_VIEW && (id) <= COMBAT_VIEW) // Startmenü #define START_VIEW 50 #define CHOOSERACE_VIEW 51 #define NEWGAME_VIEW 52 // Planetenview (unten) #define PLANET_BOTTOM_VIEW 101 #define SHIP_BOTTOM_VIEW 102 #define RESEARCH_BOTTOM_VIEW 103 #define INTEL_BOTTOM_VIEW 104 #define DIPLOMACY_BOTTOM_VIEW 105 #define TRADE_BOTTOM_VIEW 106 #define SHIPDESIGN_BOTTOM_VIEW 109 #define IS_BOTTOM_VIEW(id) \ ((id) >= PLANET_BOTTOM_VIEW && (id) <= SHIPDESIGN_BOTTOM_VIEW) // Menüauswahlview #define MENUCHOOSE_VIEW 200 // ------------- Spielerrassen ------------------------------------------------- #define NOBODY 0 #define MAJOR1 1 #define MAJOR2 2 #define MAJOR3 3 #define MAJOR4 4 #define MAJOR5 5 #define MAJOR6 6 #define UNKNOWNRACE 7 #define MINORNUMBER MAXBYTE // ------------- Gebäude------ ------------------------------------------------- #define NOEIBL 12 // Number of Entries in Buildlist you can see #define NOBIOL 12 // Number of Buildings in Overview List #define NOBIEL 9 // Number of Buildings in Energy List #define ALE 8 // AssemblyListEntries // ------------- Message-Types ------------------------------------------------- namespace EMPIRE_NEWS_TYPE { enum Typ { TUTORIAL = -1, NO_TYPE = 0, ECONOMY = 1, RESEARCH = 2, SECURITY = 3, DIPLOMACY = 4, MILITARY = 5, SOMETHING = 6 }; } // ------------- Reaktion auf Nachrichten -------------------------------------- namespace ANSWER_STATUS { enum Typ { DECLINED = 0, ACCEPTED = 1, NOT_REACTED = 2 }; } // ------------- Diplomatische Vereinbarungen----------------------------------- // Die verschiedenen Arten, welchen Status eine Minorrace gegenüber ein Majorrace haben kann namespace DIPLOMATIC_AGREEMENT { enum Typ { WARPACT = -5, // bei Annahme des Partners gemeinsame Kriegserklärung DEFENCEPACT = -2, // zusätzlich anbietbar, außer bei Bündnis oder Krieg WAR = -1, // Kriegserklärung NONE = 0, NAP = 1, TRADE = 2, // Handel mgl. & Rohstoffe als Zugabe möglich FRIENDSHIP = 3, // sehen dipl. Verträge mit anderen Rassen COOPERATION = 4, // gemeinsame Nutzung der Werften und Basen AFFILIATION = 5, // Zusammenarbeit auf dipl. Ebene MEMBERSHIP = 6, PRESENT = 10, CORRUPTION = 11, REQUEST = 12 }; } #define DIPLOMACY_PRESENT_VALUE 200 // Ein konstanter Wert, der mindst. erreicht werden muss um Beziehung zu verbessern // ------------- Die verschiedenen Arten einer Rasse ----------------------- namespace RACE_PROPERTY { enum Typ { NOTHING_SPECIAL = 0, FINANCIAL = 1, WARLIKE = 2, AGRARIAN = 3, INDUSTRIAL = 4, SECRET = 5, SCIENTIFIC = 6, PRODUCER = 7, PACIFIST = 8, SNEAKY = 9, // Hinterhältig SOLOING = 10, // Alleingeher HOSTILE = 11 }; } // ------------- Namen der Weltraummonster (Aliens) ---------------------------- #define IONISIERENDES_GASWESEN "Ionisierendes Gaswesen" #define GABALLIANER_SEUCHENSCHIFF "Gaballianer" #define BLIZZARD_PLASMAWESEN "Blizzard-Plasmawesen" #define MORLOCK_RAIDER "Morlock-Raider" #define EELEN_GUARD "Ehlen" #define BOSEANER "Boseaner" #define KAMPFSTATION "Kampfstation" #define KRYONITWESEN "Kryonitwesen" #define MIDWAY_ZEITREISENDE "Midway-Zeitreisende" #define ANAEROBE_MAKROBE "Anaerobe Makrobe" #define ISOTOPOSPHAERISCHES_WESEN "Isotoposphärisches Wesen" // ------------- Planeteneigenschaften ----------------------------------------- // Zonen namespace PLANET_ZONE { enum Typ { HOT = 0, TEMPERATE = 1, COOL = 2 }; } // Planetengröße namespace PLANT_SIZE { enum Typ { SMALL = 0, NORMAL = 1, BIG = 2, GIANT = 3 }; } // Planetentypen #define PLANETCLASS_M 0 #define PLANETCLASS_O 1 #define PLANETCLASS_L 2 #define PLANETCLASS_P 3 #define PLANETCLASS_H 4 #define PLANETCLASS_Q 5 #define PLANETCLASS_K 6 #define PLANETCLASS_G 7 #define PLANETCLASS_R 8 #define PLANETCLASS_F 9 #define PLANETCLASS_C 10 #define PLANETCLASS_N 11 #define PLANETCLASS_A 12 #define PLANETCLASS_B 13 #define PLANETCLASS_E 14 #define PLANETCLASS_Y 15 #define PLANETCLASS_I 16 #define PLANETCLASS_J 17 #define PLANETCLASS_S 18 #define PLANETCLASS_T 19 #define GRAPHICNUMBER 31 // Anzahl der verschiedenen Grafiken der Planeten #define MINRACESTARTPOP 20 // Anfangsbevölkerung bei Spacefaring Race #define MINPLANETPOP 3 // Minimalbevölkerung für Planeten #define TERRAFORMPERCENT 10 // Prozent Planetenwachstum pro Terraformer // ------------- Forschung ----------------------------------------------------- namespace RESEARCH_STATUS { enum Typ { NOTRESEARCHED = 0, RESEARCHED = 1, RESEARCHING = 2 }; } namespace RESEARCH_COMPLEX { enum Typ { NONE = -1, WEAPONS_TECHNOLOGY = 0, CONSTRUCTION_TECHNOLOGY = 1, GENERAL_SHIP_TECHNOLOGY = 2, PEACEFUL_SHIP_TECHNOLOGY = 3, TROOPS = 4, ECONOMY = 5, PRODUCTION = 6, DEVELOPMENT_AND_SECURITY = 7, RESEARCH = 8, SECURITY = 9, STORAGE_AND_TRANSPORT = 10, TRADE = 11, FINANCES = 12 // noch nicht implementiert }; } #define NoUC 12 // Number of Unique Complexes ( nur noch nicht Finanzen implementiert!!!! -> dann auf 13 hochstellen) #define SPECIAL_RESEARCH_DIV 1.67 // Wert, durch den die benötigten Punkte bei der Spezialforschung geteilt werden (umso höher, umso weniger FP sind nötig) #define TECHPRODBONUS 2.0 // Techbonus auf die Produktion (z.B. 2% pro Stufe auf Energie, Nahrung und Industrie) // ------------- Schiffe ------------------------------------------------------- // Schiffstypen namespace SHIP_TYPE { enum Typ { TRANSPORTER = 0, COLONYSHIP = 1, PROBE = 2, SCOUT = 3, FIGHTER = 4,// Jäger FRIGATE = 5, DESTROYER = 6, CRUISER = 7, HEAVY_DESTROYER = 8, HEAVY_CRUISER = 9, BATTLESHIP = 10, DREADNOUGHT = 11, OUTPOST = 12, STARBASE = 13, ALIEN = 14 }; } // Schiffsgrößen namespace SHIP_SIZE { enum Typ { SMALL = 0, NORMAL = 1, BIG = 2, HUGE = 3 }; } // Schiffsreichweiten namespace SHIP_RANGE { enum Typ { SHORT = 0, MIDDLE = 1, LONG = 2 }; } // Schiffsbefehle namespace SHIP_ORDER { enum Typ { NONE = -1, AVOID = 0, ATTACK = 1, ENCLOAK = 2, ATTACK_SYSTEM = 3, RAID_SYSTEM = 4, BLOCKADE_SYSTEM = 5, DESTROY_SHIP = 6, COLONIZE = 7, TERRAFORM = 8, BUILD_OUTPOST = 9, BUILD_STARBASE = 10, ASSIGN_FLAGSHIP = 11, CREATE_FLEET = 12, TRANSPORT = 13, FOLLOW_SHIP = 14, TRAIN_SHIP = 15, WAIT_SHIP_ORDER = 16, SENTRY_SHIP_ORDER = 17, REPAIR = 18, DECLOAK = 19, CANCEL = 20, IMPROVE_SHIELDS = 21 }; } // Sonstiges #define DIFFERENT_TORPEDOS 29 #define TORPEDOSPEED 15 #define MAX_TORPEDO_RANGE 200 #define DAMAGE_TO_HULL 0.1 // Prozentwert der bei Treffer immer auf Hülle geht #define POPSUPPORT_MULTI 3.0 // Multiplikator für Schiffsunterstützungskosten aus Bevölkerung im System // Schiffseigenschaften namespace SHIP_SPECIAL { enum Typ { NONE = 0, ASSULTSHIP = 1, BLOCKADESHIP = 2, COMMANDSHIP = 3, COMBATTRACTORBEAM = 4, DOGFIGHTER = 5, DOGKILLER = 6, PATROLSHIP = 7, RAIDER = 8, SCIENCEVESSEL = 9 }; } // ------------- Arbeiter ------------------------------------------------------ namespace WORKER { enum Typ { NONE = -1, FOOD_WORKER = 0, INDUSTRY_WORKER = 1, ENERGY_WORKER = 2, SECURITY_WORKER = 3, RESEARCH_WORKER = 4, TITAN_WORKER = 5, DEUTERIUM_WORKER = 6, DURANIUM_WORKER = 7, CRYSTAL_WORKER = 8, IRIDIUM_WORKER = 9, ALL_WORKER = 10, FREE_WORKER = 11 }; } // ------------- System ------------------------------------------------------ // ------------- Handel ---------------------------------------------------- #define TRADEROUTEHAB 20 // aller wieviel Bevölkerung gibt es eine Handelsroute #define NOTRIL 12 // Number of Trade Routes in List // ------------- Ressourcen ---------------------------------------------------- #define TITAN 0 #define DEUTERIUM 1 #define DURANIUM 2 #define CRYSTAL 3 #define IRIDIUM 4 #define DERITIUM 5 #define MAX_FOOD_STORE 25000 #define MAX_RES_STORE 125000 #define MAX_DERITIUM_STORE 100 // ------------- Schiffskampfbefehle ---------------------------------------------------- namespace COMBAT_ORDER { enum Typ { NONE = -1, USER = 0, HAILING = 1, RETREAT = 2, AUTOCOMBAT = 3 }; } // ------------- Schiffskampftaktiken ---------------------------------------------------- namespace COMBAT_TACTIC { enum Typ { CT_ATTACK = 0, ///< Angriff CT_AVOID = 1, ///< Meiden CT_RETREAT = 2 ///< Rückzug }; } // --- Sonstiges --------------------------------------------------------------- #define PT_IN_RECT(pt, x1, y1, x2, y2) \ ((x1) <= (pt).x && (pt).x < (x2) && (y1) <= (pt).y && (pt).y < (y2)) inline void SetAttributes(BOOLEAN is, int attribute, int &variable) { if (is) variable |= attribute; else variable &= ~attribute; } // --- Künstliche Intelligenz --------------------------------------------------- #define MINBASEPOINTS 120 ///< minimale Punkte für den Außenpostenbau, damit die KI überhaupt beginnt dort einen zu bauen // Tracebedingungen -> können hier ein und ausgeschaltet werden um bestimmte Traceausgaben zu bekommen //#define DEBUG_AI_BASE_DEMO namespace MT { //If you wanna change something here, please consider using the --log-domains and/or --passive-domains //command line parameters instead! const std::string DEFAULT_LOG_DOMAINS[23] = { "general",//Used in case no domain is passed. //Avoid "general", unless you want to make sure that also normal players //can get, say, an important error or warning in the BotE.log //without the need to change something about logging. "logging",//Should be used by the MYTRACE class itsself only. // -------------- "ai", "diplomacy", "diplomacydetails", // new "graphicload", "intel", "intelai", "shipai", // -------------- "init", // all, when game is inited. "logchat", // logging of chat "logdata", // logging of data "logdetails",// logging of data, gets very much data "logevent", // logging out of event screen "logload", // logging of data loaded from *.sav "loaddetails",//logging of data loaded from *.sav, gets very much data "logsave", // logging of data saved into *.sav "savedetails",//logging of data saved into *.sav, gets very much data "logships", // logging of ship datas "shipdetails",//logging of ship datas, gets very much data "logcombat", // logging of combats "logsystemattack",//log of system attacks "starmap" // logging of anomaly occuring and further topics //"ai_base_demo", }; } // Projektspezifische Defines //The SEE_ALL_OF_MAP define has been replaced by the --see-all command line parameter. //#define SAVE_GALAXYIMAGE // speichert Bild der Galaxie aus sicht der gespielten Major im Ordner Bote/Screenshots