Initial Source Code commit
Initial commit of original Tiberian Dawn and Red Alert source code converted to build as DLLs, and compatible with the release version of Command & Conquer Remastered.
This commit is contained in:
parent
ea8ecc76fa
commit
03416d24e1
1038 changed files with 629779 additions and 0 deletions
845
REDALERT/CONST.CPP
Normal file
845
REDALERT/CONST.CPP
Normal file
|
@ -0,0 +1,845 @@
|
|||
//
|
||||
// Copyright 2020 Electronic Arts Inc.
|
||||
//
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code 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.
|
||||
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
|
||||
// in the hope that it will be useful, but with permitted additional restrictions
|
||||
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
||||
// distributed with this program. You should have received a copy of the
|
||||
// GNU General Public License along with permitted additional restrictions
|
||||
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
||||
|
||||
/* $Header: /CounterStrike/CONST.CPP 1 3/03/97 10:24a Joe_bostic $ */
|
||||
/***********************************************************************************************
|
||||
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
|
||||
***********************************************************************************************
|
||||
* *
|
||||
* Project Name : Command & Conquer *
|
||||
* *
|
||||
* File Name : CONST.CPP *
|
||||
* *
|
||||
* Programmer : Joe L. Bostic *
|
||||
* *
|
||||
* Start Date : September 20, 1993 *
|
||||
* *
|
||||
* Last Update : September 20, 1993 [JLB] *
|
||||
* *
|
||||
*---------------------------------------------------------------------------------------------*
|
||||
* Functions: *
|
||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
#include "function.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the access passwords used to activate cheat mode, editor mode,
|
||||
** and special game options.
|
||||
*/
|
||||
unsigned long const PlayCodes[] = {
|
||||
0xE0792D6D, // Dwight Okahara
|
||||
0x90046ECF, // Paul S. Mudra
|
||||
0xC3EE9A26, // Frank Klepaki
|
||||
0xED382178, // Ed Del Castillo
|
||||
0L
|
||||
};
|
||||
|
||||
unsigned long const CheatCodes[] = {
|
||||
0xA0E2AB53, // Joseph Hewitt
|
||||
0x00532693, // Mike Lightner
|
||||
0x7DDFF824, // Joe Bostic
|
||||
0x2CB5CF01, // Phil Gorrow
|
||||
0xB5B63531, // Bill Randolph
|
||||
0xDFABC23A, // Adam Isgreen
|
||||
0x52B19A22, // Erik Yeo
|
||||
0xBE79088C, // David Dettmer
|
||||
0xB216AE7E, // Barry Green
|
||||
0x0E07B213, // Steve Tall
|
||||
0L
|
||||
};
|
||||
|
||||
|
||||
unsigned long const EditorCodes[] = {
|
||||
0xA2C09326, // Erik Yeo
|
||||
0x1F944BB3, // Mike Lightner
|
||||
0xDE07154D, // Adam Isgreen
|
||||
0x0E07B213, // Steve Tall
|
||||
0x16B170B1, // Joe Bostic
|
||||
0L
|
||||
};
|
||||
|
||||
|
||||
/***********************************************************************************************
|
||||
** Unit order names. These names correspond to the player selectable orders
|
||||
** a unit can have. The system initiated orders have no use for the ASCII name
|
||||
** associated, but they are listed here for completeness sake.
|
||||
*/
|
||||
char const * Missions[MISSION_COUNT] = {
|
||||
"Sleep",
|
||||
"Attack",
|
||||
"Move",
|
||||
"QMove",
|
||||
"Retreat",
|
||||
"Guard",
|
||||
"Sticky",
|
||||
"Enter",
|
||||
"Capture",
|
||||
"Harvest",
|
||||
"Area Guard",
|
||||
"Return",
|
||||
"Stop",
|
||||
"Ambush",
|
||||
"Hunt",
|
||||
"Unload",
|
||||
"Sabotage",
|
||||
"Construction",
|
||||
"Selling",
|
||||
"Repair",
|
||||
"Rescue",
|
||||
"Missile",
|
||||
"Harmless"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** Special weapon names.
|
||||
*/
|
||||
#ifdef SCENARIO_EDITOR
|
||||
char const * const SpecialWeaponName[SPC_COUNT] = {
|
||||
"Sonar Pulse",
|
||||
"Nuclear Missile",
|
||||
"Chronosphere",
|
||||
"Parachute Bomb",
|
||||
"Paratroopers",
|
||||
"Recon Plane",
|
||||
"Iron Curtain",
|
||||
"GPS Satellite"
|
||||
};
|
||||
#endif
|
||||
int const SpecialWeaponHelp[SPC_COUNT] = {
|
||||
TXT_SONAR_PULSE,
|
||||
TXT_NUCLEAR_BOMB,
|
||||
TXT_CHRONOSHIFT,
|
||||
TXT_PARA_BOMB,
|
||||
TXT_PARA_INFANTRY,
|
||||
TXT_SPY_MISSION,
|
||||
TXT_INVUL,
|
||||
TXT_GPS_SATELLITE
|
||||
};
|
||||
char const * const SpecialWeaponFile[SPC_COUNT] = {
|
||||
"SONR",
|
||||
"ATOM",
|
||||
"WARP",
|
||||
"PBMB",
|
||||
"PINF",
|
||||
"CAM",
|
||||
"INFX",
|
||||
"GPSS"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** Type of quarry to search out and attack. These values are used for team
|
||||
** attack missions.
|
||||
*/
|
||||
char const * const QuarryName[QUARRY_COUNT] = {
|
||||
"N/A",
|
||||
"Anything",
|
||||
"Buildings - any",
|
||||
"Harvesters",
|
||||
"Infantry",
|
||||
"Vehicles - any",
|
||||
"Ships - any",
|
||||
"Factories",
|
||||
"Base Defenses",
|
||||
"Base Threats",
|
||||
"Power Facilities",
|
||||
"Fake Buildings"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the text names for the formation types.
|
||||
*/
|
||||
char const * const FormationName[FORMATION_COUNT] = {
|
||||
"None",
|
||||
|
||||
"Tight",
|
||||
"Loose",
|
||||
"Wedge North",
|
||||
"Wedge East",
|
||||
"Wedge South",
|
||||
"Wedge West",
|
||||
"Line N/S",
|
||||
"Line E/W"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the ASCII names for the reinforcement sources.
|
||||
*/
|
||||
char const * const SourceName[SOURCE_COUNT] =
|
||||
{
|
||||
"North",
|
||||
"East",
|
||||
"South",
|
||||
"West",
|
||||
"Air"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the text names for the various armor types a unit may possess.
|
||||
*/
|
||||
char const * const ArmorName[ARMOR_COUNT] = {
|
||||
"none",
|
||||
"wood",
|
||||
"light",
|
||||
"heavy",
|
||||
"concrete"
|
||||
};
|
||||
|
||||
|
||||
// HACK ALERT! This unused text string is here to stop Watcom from crashing. There is some
|
||||
// magic text heap length that causes a crash before the code executes. This dummy string
|
||||
// changes the text heap length enough to stop the crash. Who knows why, but it works.
|
||||
char * __test__ = "alskdfjlasdfjkajsdfkja;sldjfklasj9awutreqjfnfdkvnldzlknvadsjgflkasdjfkajsdfas";
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** The list of VQ filenames.
|
||||
*/
|
||||
char const * const VQName[VQ_COUNT] = {
|
||||
"AAGUN",
|
||||
"MIG",
|
||||
"SFROZEN",
|
||||
"AIRFIELD",
|
||||
"BATTLE",
|
||||
"BMAP",
|
||||
"BOMBRUN",
|
||||
"DPTHCHRG",
|
||||
"GRVESTNE",
|
||||
"MONTPASS",
|
||||
"MTNKFACT",
|
||||
"CRONTEST",
|
||||
"OILDRUM",
|
||||
"ALLIEND",
|
||||
"RADRRAID",
|
||||
"SHIPYARD", // MISSING
|
||||
"SHORBOMB",
|
||||
"SITDUCK",
|
||||
"SLNTSRVC",
|
||||
"SNOWBASE",
|
||||
"EXECUTE",
|
||||
"REDINTRO", // low res.
|
||||
"NUKESTOK",
|
||||
"V2ROCKET",
|
||||
"SEARCH",
|
||||
"BINOC",
|
||||
"ELEVATOR",
|
||||
"FROZEN",
|
||||
"MCV",
|
||||
"SHIPSINK",
|
||||
"SOVMCV",
|
||||
"TRINITY",
|
||||
"ALLYMORF",
|
||||
"APCESCPE",
|
||||
"BRDGTILT",
|
||||
"CRONFAIL",
|
||||
"STRAFE",
|
||||
"DESTROYR",
|
||||
"DOUBLE",
|
||||
"FLARE",
|
||||
"SNSTRAFE",
|
||||
"LANDING",
|
||||
"ONTHPRWL",
|
||||
"OVERRUN",
|
||||
"SNOWBOMB",
|
||||
"SOVCEMET",
|
||||
"TAKE_OFF",
|
||||
"TESLA",
|
||||
"SOVIET8",
|
||||
"SPOTTER",
|
||||
"ALLY1",
|
||||
"ALLY2",
|
||||
"ALLY4",
|
||||
"SOVFINAL",
|
||||
"ASSESS",
|
||||
"SOVIET10",
|
||||
"DUD",
|
||||
"MCV_LAND",
|
||||
"MCVBRDGE",
|
||||
"PERISCOP",
|
||||
"SHORBOM1",
|
||||
"SHORBOM2",
|
||||
"SOVBATL",
|
||||
"SOVTSTAR",
|
||||
"AFTRMATH",
|
||||
"SOVIET11",
|
||||
"MASASSLT",
|
||||
"ENGLISH", // High res. Intro
|
||||
"SOVIET1",
|
||||
"SOVIET2",
|
||||
"SOVIET3",
|
||||
"SOVIET4",
|
||||
"SOVIET5",
|
||||
"SOVIET6",
|
||||
"SOVIET7",
|
||||
"PROLOG",
|
||||
"AVERTED",
|
||||
"COUNTDWN",
|
||||
"MOVINGIN",
|
||||
"ALLY10",
|
||||
"ALLY12",
|
||||
"ALLY5",
|
||||
"ALLY6",
|
||||
"ALLY8",
|
||||
"TANYA1",
|
||||
"TANYA2",
|
||||
"ALLY10B",
|
||||
"ALLY11",
|
||||
"ALLY14",
|
||||
"ALLY9",
|
||||
"SPY",
|
||||
"TOOFAR",
|
||||
"SOVIET12",
|
||||
"SOVIET13",
|
||||
"SOVIET9",
|
||||
"BEACHEAD",
|
||||
"SOVIET14",
|
||||
"SIZZLE", //MISSING
|
||||
"SIZZLE2", //MISSING
|
||||
"ANTEND",
|
||||
"ANTINTRO",
|
||||
|
||||
|
||||
//2019/11/12 JAS - Added for Retaliation movies
|
||||
|
||||
"RETALIATION_ALLIED1",
|
||||
"RETALIATION_ALLIED2",
|
||||
"RETALIATION_ALLIED3",
|
||||
"RETALIATION_ALLIED4",
|
||||
"RETALIATION_ALLIED5",
|
||||
"RETALIATION_ALLIED6",
|
||||
"RETALIATION_ALLIED7",
|
||||
"RETALIATION_ALLIED8",
|
||||
"RETALIATION_ALLIED9",
|
||||
"RETALIATION_ALLIED10",
|
||||
|
||||
"RETALIATION_SOVIET1",
|
||||
"RETALIATION_SOVIET2",
|
||||
"RETALIATION_SOVIET3",
|
||||
"RETALIATION_SOVIET4",
|
||||
"RETALIATION_SOVIET5",
|
||||
"RETALIATION_SOVIET6",
|
||||
"RETALIATION_SOVIET7",
|
||||
"RETALIATION_SOVIET8",
|
||||
"RETALIATION_SOVIET9",
|
||||
"RETALIATION_SOVIET10",
|
||||
"RETALIATION_WINA",
|
||||
"RETALIATION_WINS",
|
||||
"RETALIATION_ANTS"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** Relative coordinate offsets from the center of a cell for each
|
||||
** of the legal positions that an object in a cell may stop at. Only infantry
|
||||
** are allowed to stop at other than the center of the cell.
|
||||
*/
|
||||
COORDINATE const StoppingCoordAbs[5] = {
|
||||
0x00800080L, // center
|
||||
0x00400040L, // upper left
|
||||
0x004000C0L, // upper right
|
||||
0x00C00040L, // lower left
|
||||
0x00C000C0L // lower right
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** Converts pixel values (cell relative) into the appropriate lepton (sub cell)
|
||||
** value. This is used to convert pixel (screen) coordinates into the underlying
|
||||
** coordinate system.
|
||||
*/
|
||||
unsigned char const Pixel2Lepton[24] = {
|
||||
0x00,0x0B,0x15,0x20,0x2B,0x35,0x40,0x4B,
|
||||
0x55,0x60,0x6B,0x75,0x80,0x8B,0x95,0xA0,
|
||||
0xAB,0xB5,0xC0,0xCB,0xD5,0xE0,0xEB,0xF5
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** This array is used to index a facing in order to retrieve a cell
|
||||
** offset that, when added to another cell, will achieve the adjacent cell
|
||||
** in the indexed direction.
|
||||
*/
|
||||
CELL const AdjacentCell[FACING_COUNT] = {
|
||||
-(MAP_CELL_W), // North
|
||||
-(MAP_CELL_W-1), // North East
|
||||
1, // East
|
||||
MAP_CELL_W+1, // South East
|
||||
MAP_CELL_W, // South
|
||||
MAP_CELL_W-1, // South West
|
||||
-1, // West
|
||||
-(MAP_CELL_W+1) // North West
|
||||
};
|
||||
|
||||
COORDINATE const AdjacentCoord[FACING_COUNT] = {
|
||||
0xFF000000L,
|
||||
0xFF000100L,
|
||||
0x00000100L,
|
||||
0x01000100L,
|
||||
0x01000000L,
|
||||
0x0100FF00L,
|
||||
0x0000FF00L,
|
||||
0xFF00FF00L
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** This specifies the odds of receiving the various random crate power
|
||||
** ups. The odds are expressed as "shares" of 100 percent.
|
||||
*/
|
||||
int CrateShares[CRATE_COUNT] = {
|
||||
50, // CRATE_MONEY
|
||||
20, // CRATE_UNIT
|
||||
3, // CRATE_PARA_BOMB
|
||||
1, // CRATE_HEAL_BASE
|
||||
3, // CRATE_CLOAK
|
||||
5, // CRATE_EXPLOSION
|
||||
5, // CRATE_NAPALM
|
||||
20, // CRATE_SQUAD
|
||||
1, // CRATE_DARKNESS
|
||||
1, // CRATE_REVEAL
|
||||
3, // CRATE_SONAR
|
||||
10, // CRATE_ARMOR
|
||||
10, // CRATE_SPEED
|
||||
10, // CRATE_FIREPOWER
|
||||
1, // CRATE_ICBM
|
||||
1, // CRATE_TIMEQUAKE
|
||||
3, // CRATE_INVULN
|
||||
5 // CRATE_VORTEX
|
||||
};
|
||||
|
||||
AnimType CrateAnims[CRATE_COUNT] = {
|
||||
ANIM_NONE, // CRATE_MONEY
|
||||
ANIM_NONE, // CRATE_UNIT
|
||||
ANIM_NONE, // CRATE_PARA_BOMB
|
||||
ANIM_NONE, // CRATE_HEAL_BASE
|
||||
ANIM_NONE, // CRATE_CLOAK
|
||||
ANIM_NONE, // CRATE_EXPLOSION
|
||||
ANIM_NONE, // CRATE_NAPALM
|
||||
ANIM_NONE, // CRATE_SQUAD
|
||||
ANIM_NONE, // CRATE_DARKNESS
|
||||
ANIM_NONE, // CRATE_REVEAL
|
||||
ANIM_NONE, // CRATE_SONAR
|
||||
ANIM_NONE, // CRATE_ARMOR
|
||||
ANIM_NONE, // CRATE_SPEED
|
||||
ANIM_NONE, // CRATE_FIREPOWER
|
||||
ANIM_NONE, // CRATE_ICBM
|
||||
ANIM_NONE, // CRATE_TIMEQUAKE
|
||||
ANIM_NONE, // CRATE_INVULN
|
||||
ANIM_NONE // CRATE_VORTEX
|
||||
};
|
||||
|
||||
int CrateData[CRATE_COUNT] = {
|
||||
0, // CRATE_MONEY
|
||||
0, // CRATE_UNIT
|
||||
0, // CRATE_PARA_BOMB
|
||||
0, // CRATE_HEAL_BASE
|
||||
0, // CRATE_CLOAK
|
||||
0, // CRATE_EXPLOSION
|
||||
0, // CRATE_NAPALM
|
||||
0, // CRATE_SQUAD
|
||||
0, // CRATE_DARKNESS
|
||||
0, // CRATE_REVEAL
|
||||
0, // CRATE_SONAR
|
||||
0, // CRATE_ARMOR
|
||||
0, // CRATE_SPEED
|
||||
0, // CRATE_FIREPOWER
|
||||
0, // CRATE_ICBM
|
||||
0, // CRATE_TIMEQUAKE
|
||||
0, // CRATE_INVULN
|
||||
0 // CRATE_VORTEX
|
||||
};
|
||||
|
||||
char const * const CrateNames[CRATE_COUNT] = {
|
||||
"Money",
|
||||
"Unit",
|
||||
"ParaBomb",
|
||||
"HealBase",
|
||||
"Cloak",
|
||||
"Explosion",
|
||||
"Napalm",
|
||||
"Squad",
|
||||
"Darkness",
|
||||
"Reveal",
|
||||
"Sonar",
|
||||
"Armor",
|
||||
"Speed",
|
||||
"Firepower",
|
||||
"ICBM",
|
||||
"TimeQuake",
|
||||
"Invulnerability",
|
||||
"ChronalVortex"
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** This converts 0..255 facing values into either 8, 16, or 32 facing values.
|
||||
** Note: a simple shift won't suffice because 0..255 facing values should
|
||||
** be converted to the CLOSEST appropriate facing, NOT rounded down to the
|
||||
** nearest facing.
|
||||
*/
|
||||
unsigned char const Facing8[256] = {
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
|
||||
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
|
||||
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
||||
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
unsigned char const Facing16[256] = {
|
||||
0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
|
||||
2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,
|
||||
4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,
|
||||
6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,
|
||||
8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,
|
||||
10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,
|
||||
12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,
|
||||
14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
signed char const Rotation16[256] = {
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,
|
||||
0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
** This table incorporates a compensating factor for the distortion caused
|
||||
** by 3D-Studio when it tries to render 45% angles.
|
||||
*/
|
||||
unsigned char const Facing32[256] = {
|
||||
0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,
|
||||
3,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,
|
||||
8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,
|
||||
13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,
|
||||
16,16,16,16,16,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,
|
||||
19,20,20,20,20,20,20,21,21,21,21,21,21,21,22,22,22,22,22,22,22,23,23,23,23,23,23,23,24,24,24,24,
|
||||
24,24,24,25,25,25,25,25,25,25,26,26,26,26,26,26,26,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,
|
||||
29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
#ifdef OBSOLETE
|
||||
unsigned char const Facing32[256] = {
|
||||
0,0,0,0,
|
||||
1,1,1,1,1,1,1,1,
|
||||
2,2,2,2,2,2,2,2,
|
||||
3,3,3,3,3,3,3,3,
|
||||
4,4,4,4,4,4,4,4,
|
||||
5,5,5,5,5,5,5,5,
|
||||
6,6,6,6,6,6,6,6,
|
||||
7,7,7,7,7,7,7,7,
|
||||
8,8,8,8,8,8,8,8,
|
||||
9,9,9,9,9,9,9,9,
|
||||
10,10,10,10,10,10,10,10,
|
||||
11,11,11,11,11,11,11,11,
|
||||
12,12,12,12,12,12,12,12,
|
||||
13,13,13,13,13,13,13,13,
|
||||
14,14,14,14,14,14,14,14,
|
||||
15,15,15,15,15,15,15,15,
|
||||
16,16,16,16,16,16,16,16,
|
||||
17,17,17,17,17,17,17,17,
|
||||
18,18,18,18,18,18,18,18,
|
||||
19,19,19,19,19,19,19,19,
|
||||
20,20,20,20,20,20,20,20,
|
||||
21,21,21,21,21,21,21,21,
|
||||
22,22,22,22,22,22,22,22,
|
||||
23,23,23,23,23,23,23,23,
|
||||
24,24,24,24,24,24,24,24,
|
||||
25,25,25,25,25,25,25,25,
|
||||
26,26,26,26,26,26,26,26,
|
||||
27,27,27,27,27,27,27,27,
|
||||
28,28,28,28,28,28,28,28,
|
||||
29,29,29,29,29,29,29,29,
|
||||
30,30,30,30,30,30,30,30,
|
||||
31,31,31,31,31,31,31,31,
|
||||
0,0,0,0
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the movement costs (in ticks at fastest speed) to enter each
|
||||
** of the given terrain cells.
|
||||
*/
|
||||
|
||||
int const GroundColor[LAND_COUNT] = {
|
||||
141, // "Clear" terrain.
|
||||
141, // Road terrain.
|
||||
172, // Water.
|
||||
21, // Impassable rock.
|
||||
21, // Wall (blocks movement).
|
||||
158, // Tiberium field.
|
||||
141, // Beach terrain.
|
||||
141, // Rocky terrain.
|
||||
174 // Rocky riverbed.
|
||||
};
|
||||
|
||||
int const SnowColor[LAND_COUNT] = {
|
||||
141, // "Clear" terrain.
|
||||
141, // Road terrain.
|
||||
172, // Water.
|
||||
21, // Impassable rock.
|
||||
21, // Wall (blocks movement).
|
||||
158, // Tiberium field.
|
||||
141, // Beach terrain.
|
||||
141, // Rocky terrain.
|
||||
174 // Rocky riverbed.
|
||||
};
|
||||
|
||||
#ifdef NEVER
|
||||
int const GroundColor[LAND_COUNT] = {
|
||||
46, // "Clear" terrain.
|
||||
44, // Road terrain.
|
||||
BLUE, // Water.
|
||||
DKGREY, // Impassable rock.
|
||||
DKGREY, // Wall (blocks movement).
|
||||
158, // Tiberium field.
|
||||
64, // Beach terrain.
|
||||
DKGREY, // Rocky terrain.
|
||||
DKGREY // Rocky riverbed.
|
||||
};
|
||||
|
||||
int const SnowColor[LAND_COUNT] = {
|
||||
WHITE, // "Clear" terrain.
|
||||
LTGRAY, // Road terrain.
|
||||
BLUE, // Water.
|
||||
DKGREY, // Impassable rock.
|
||||
DKGREY, // Wall (blocks movement).
|
||||
158, // Tiberium field.
|
||||
LTGRAY, // Beach terrain.
|
||||
DKGREY, // Rocky terrain.
|
||||
DKGREY // Rocky riverbed.
|
||||
};
|
||||
#endif
|
||||
|
||||
GroundType Ground[LAND_COUNT];
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** These are the names of the theaters.
|
||||
*/
|
||||
TheaterDataType const Theaters[THEATER_COUNT] = {
|
||||
{"TEMPERATE","TEMPERAT","TEM"},
|
||||
{"SNOW","SNOW","SNO"},
|
||||
{"INTERIOR","INTERIOR","INT"},
|
||||
};
|
||||
|
||||
|
||||
unsigned char const RemapCiv2[256] = {
|
||||
0,1,2,3,4,5,6,209,8,9,10,11,12,13,12,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,187,188,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,209, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,167, 13,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv4[256] = {
|
||||
0,1,2,3,4,5,6,187,8,9,10,11,12,13,14,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,118,110,119, // 96..111
|
||||
112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,188,207, // 192..207
|
||||
208,209,182,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv5[256] = {
|
||||
0,1,2,3,4,5,6,109,8,9,10,11,131,13,14,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,177,110,178, // 96..111
|
||||
112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,111,201,202,203,204,205,111,207, // 192..207
|
||||
208,209,182,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv6[256] = {
|
||||
0,1,2,3,4,5,6,120,8,9,10,11,12,13,238,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,236,206,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,111, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv7[256] = {
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,131,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,157,212,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,7, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,118,119,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv8[256] = {
|
||||
0,1,2,3,4,5,6,182,8,9,10,11,12,13,131,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,215,7,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,182, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,198,199,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,111,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv9[256] = {
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,7,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,163,165,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,200, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,111,13,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapCiv10[256] = {
|
||||
0,1,2,3,4,5,6,137,8,9,10,11,12,13,15,15, // 0..15
|
||||
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, // 16..31
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, // 32..47
|
||||
48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, // 48..63
|
||||
64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, // 64..79
|
||||
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95, // 80..95
|
||||
96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, // 96..111
|
||||
112,113,114,115,116,117,129,131,120,121,122,123,124,125,126,127, // 112..127
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 128..143
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,137, // 144..159
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // 160..175
|
||||
176,177,178,179,180,181,182,183,184,185,186,163,165,189,190,191, // 176..191
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // 192..207
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // 208..223
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // 224..239
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // 240..255
|
||||
};
|
||||
|
||||
unsigned char const RemapEmber[256] = {
|
||||
#define CEC CC_EMBER_COLOR
|
||||
0,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,BLACK,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,
|
||||
CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC,CEC
|
||||
};
|
||||
|
||||
|
||||
//char const Keys[] =
|
||||
// "[PublicKey]\n"
|
||||
// "1=AgkCbXo9sKMHOBk=\n"
|
||||
//#ifdef CHEAT_KEYS
|
||||
// "[PrivateKey]\n"
|
||||
// "1=AggxFU55vc7LYQ==\n"
|
||||
//#endif
|
||||
// "\n";
|
||||
|
||||
char const Keys[] =
|
||||
"[PublicKey]\n"
|
||||
"1=AihRvNoIbTn85FZRYNZRcT+i6KpU+maCsEqr3Q5q+LDB5tH7Tz2qQ38V\n"
|
||||
#ifdef CHEAT_KEYS
|
||||
"[PrivateKey]\n"
|
||||
"1=AigKVje8mROcR8QixnxUEF5b29Curkq01DNDWCdOG99XBqH79OaCiTCB\n"
|
||||
#endif
|
||||
"\n";
|
Reference in a new issue