123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 |
- //
- // 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: F:\projects\c&c\vcs\code\const.cpv 2.17 16 Oct 1995 16:52:24 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"
- char const * SourceName[SOURCE_COUNT] =
- {
- "North",
- "East",
- "South",
- "West",
- "Shipping",
- "Beach",
- "Air",
- "Visible",
- "EnemyBase",
- "HomeBase",
- "Ocean",
- };
- /***************************************************************************
- ** 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
- };
- /***************************************************************************
- ** These are the various weapons and their characteristics.
- **
- ** bullet type dmg, rof, range, sound
- */
- WeaponTypeClass const Weapons[WEAPON_COUNT] = {
- {BULLET_SNIPER, 125, 40, 0x0580, VOC_SNIPER, ANIM_NONE}, // WEAPON_RIFLE
- {BULLET_SPREADFIRE, 25, 50, 0x0400, VOC_MINI, ANIM_GUN_N}, // WEAPON_CHAIN_GUN
- {BULLET_BULLET, 1, 7, 0x01C0, VOC_RIFLE, ANIM_NONE}, // WEAPON_PISTOL
- {BULLET_BULLET, 15, 20, 0x0200, VOC_MGUN2, ANIM_NONE}, // WEAPON_M16
- {BULLET_TOW, 30, 60, 0x0400, VOC_BAZOOKA,ANIM_NONE}, // WEAPON_DRAGON
- {BULLET_FLAME, 35, 50, 0x0200, VOC_FLAMER1,ANIM_FLAME_N}, // WEAPON_FLAMETHROWER
- {BULLET_FLAME, 50, 50, 0x0200, VOC_FLAMER1,ANIM_FLAME_N}, // WEAPON_FLAME_TONGUE
- {BULLET_CHEMSPRAY, 80, 70, 0x0200, VOC_FLAMER1,ANIM_CHEM_N}, // WEAPON_CHEMSPRAY
- {BULLET_GRENADE, 50, 60, 0x0340, VOC_TOSS, ANIM_NONE}, // WEAPON_GRENADE
- {BULLET_APDS, 25, 60, 0x0400, VOC_TANK2, ANIM_MUZZLE_FLASH}, // WEAPON_75MM
- {BULLET_APDS, 30, 50, 0x04C0, VOC_TANK3, ANIM_MUZZLE_FLASH}, // WEAPON_105MM
- {BULLET_APDS, 40, 80, 0x04C0, VOC_TANK4, ANIM_MUZZLE_FLASH}, // WEAPON_120MM
- {BULLET_APDS, 40, 60, 0x0600, VOC_TANK4, ANIM_MUZZLE_FLASH}, // WEAPON_TURRET_GUN
- {BULLET_SSM, 75, 80, 0x0500, VOC_ROCKET1,ANIM_NONE}, // WEAPON_MAMMOTH_TUSK
- {BULLET_SSM2, 75, 80, 0x0600, VOC_ROCKET1,ANIM_NONE}, // WEAPON_MLRS
- {BULLET_HE, 150, 65, 0x0600, VOC_TANK1, ANIM_MUZZLE_FLASH}, // WEAPON_155MM
- {BULLET_BULLET, 15, 30, 0x0400, VOC_MGUN11, ANIM_GUN_N}, // WEAPON_M60MG
- {BULLET_SSM, 60, 35, 0x0780, VOC_ROCKET2,ANIM_NONE}, // WEAPON_TOMAHAWK
- {BULLET_SSM, 60, 40, 0x0680, VOC_ROCKET2,ANIM_NONE}, // WEAPON_TOW_TWO
- {BULLET_NAPALM, 100, 20, 0x0480, VOC_NONE, ANIM_NONE}, // WEAPON_NAPALM
- {BULLET_LASER, 200, 90, 0x0780, VOC_LASER, ANIM_NONE}, // WEAPON_OBELISK_LASER
- {BULLET_SAM, 50, 50, 0x0780, VOC_ROCKET2,ANIM_NONE}, // WEAPON_NIKE
- {BULLET_HONEST_JOHN, 100, 200, 0x0A00, VOC_ROCKET1,ANIM_NONE}, // WEAPON_HONEST_JOHN
- {BULLET_HEADBUTT, 100, 30, 0x0180, VOC_DINOATK1,ANIM_NONE}, // WEAPON_STEG
- {BULLET_TREXBITE, 155, 30, 0x0180, VOC_DINOATK1,ANIM_NONE}, // WEAPON_TREX
- #ifdef PETROGLYPH_EXAMPLE_MOD
- {BULLET_NUKE_LOB, 150, 130, 0x0B00, VOC_NUKE_LOB, ANIM_MUZZLE_FLASH}, // WEAPON_NUKE_LOB
- #endif //PETROGLYPH_EXAMPLE_MOD
- };
- /***************************************************************************
- ** These are the various warheads.
- **
- ** spread factor, destroys walls, destroys wood, destroys Tiberium, {armor defense table}
- ** -vs- {none, wood, aluminum, steel, concrete}
- */
- WarheadTypeClass const Warheads[WARHEAD_COUNT] = {
- { 2,false,false,false,{0x100, 0x80, 0x90, 0x40, 0x40}}, // WARHEAD_SA Small arms -- good against infantry.
- { 6,true,true,true,{0xE0, 0xC0, 0x90, 0x40, 0x100}}, // WARHEAD_HE High explosive -- good against buildings & infantry.
- { 6,true,true,false,{0x40, 0xC0, 0xC0, 0x100, 0x80}}, // WARHEAD_AP Armor piercing -- good against armor.
- { 8,false,true,true,{0xE0, 0x100, 0xB0, 0x40, 0x80}}, // WARHEAD_FIRE Incendiary -- Good against flammables.
- { 4,false,false,false,{0x100, 0x100, 0x100, 0x100, 0x100}},// WARHEAD_LASER Light Amplification of Stimulated Emission by Radiation.
- { 7,true,true,true,{0x100, 0x100, 0xC0, 0xC0, 0xC0}}, // WARHEAD_PB Particle beam (neutron beam).
- { 4,false,false,false,{0x100, 0x20, 0x20, 0x10, 0x10}}, // WARHEAD_FIST Punching in hand-to-hand combat.
- { 4,false,false,false,{0x100, 0x20, 0x20, 0x10, 0x10}}, // WARHEAD_FOOT Kicking in hand-to-hand combat.
- { 4,false,false,false,{0x100, 0x08, 0x08, 0x08, 0x08}}, // WARHEAD_HOLLOW_POINT Sniper bullet type.
- {255,false,false,false,{0x100, 0x01, 0x01, 0x01, 0x01}}, // WARHEAD_SPORE
- { 1, true,true,false,{0x100, 0xC0, 0x80, 0x20, 0x08}}, // WARHEAD_HEADBUTT
- { 1, true,true,false,{0x100, 0xC0, 0x80, 0x20, 0x08}}, // WARHEAD_FEEDME
- };
- /***************************************************************************
- ** 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 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
- };
- #ifdef NEVER
- 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
- };
- #endif
- /*
- ** 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.
- */
- #define S1 0x00
- #define S2 0x40
- #define S3 0x70
- #define S4 0xA0
- #define S5 0xC0
- #define S6 0xFF
- GroundType const Ground[LAND_COUNT] = {
- // Foot
- // | Tracked
- // | | Harvester
- // | | | Wheeled
- // | | | | Winged
- // | | | | | Hover
- // | | | | | | float build
- {66, {S3, S3, S3, S4, S6, S5, S1 }, true}, // LAND_CLEAR
- {68, {S5, S4, S4, S4, S6, S5, S1 }, true}, // LAND_ROAD
- {BLUE, {S1, S1, S1, S1, S6, S5, S6 }, false}, // LAND_WATER
- {DKGREY, {S1, S1, S1, S1, S6, S1, S1 }, false}, // LAND_ROCK
- {DKGREY, {S1, S1, S1, S1, S6, S1, S1 }, false}, // LAND_WALL
- {143, {S3, S3, S3, S4, S6, S5, S1 }, false}, // LAND_TIBERIUM
- {66, {S3, S3, S3, S4, S6, S5, S1 }, false}, // LAND_BEACH
- };
- /***************************************************************************
- ** These are the names of the theaters.
- */
- TheaterDataType const Theaters[THEATER_COUNT] = {
- {"DESERT","DESERT","DES"},
- {"JUNGLE","JUNGLE","JUN"},
- {"TEMPERATE","TEMPERAT","TEM"},
- {"WINTER","WINTER","WIN"}
- };
- /***************************************************************************
- ** These are the remap tables that are used to convert the units/buildings
- ** into the other color schemes.
- */
- unsigned char const RemapGold[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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,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 RemapRed[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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
- 127,126,125,124,122,46,120,47,125,124,123,122,42,121,120,120, // 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 RemapBlue[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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
- 2,119,118,135,136,138,112,12,118,135,136,137,138,139,114,112, // 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 RemapOrange[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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
- 24,25,26,27,29,31,46,47,26,27,28,29,30,31,43,47, // 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 RemapGreen[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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
- 5,165,166,167,159,142,140,199,166,167,157,3,159,143,142,141, // 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 RemapLtBlue[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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
- 161,200,201,202,204,205,206,12,201,202,203,204,205,115,198,114, // 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 RemapNone[256] = {
- 0,1,2,3,4,5,6,7,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,109,110,111, // 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,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
- };
|