Mercurial > ~darius > hgwebdir.cgi > paradise_server
diff src/shipvals.c @ 6:8c6d5731234d
First entry of Paradise Server 2.9 patch 10 Beta
author | darius |
---|---|
date | Sat, 06 Dec 1997 04:37:04 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/shipvals.c Sat Dec 06 04:37:04 1997 +0000 @@ -0,0 +1,1794 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#include "config.h" +#include <stdio.h> +#include <sys/types.h> +#include <sys/ipc.h> +#include <sys/shm.h> +#include <string.h> + +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "shmem.h" + + +/* This defines the core flags for a normal ship */ +#define SFNCORE \ + /*SFNCANDOCK|*/SFNCANORBIT | SFNARMYNEEDKILL|SFNCANWARP|SFNHASPHASERS|SFNARMYNEEDKILL + + + + + + +/*-------------------------------INTERNAL FUNCTONS------------------------*/ + +/*---------------------------------GETSHIPDEFAULTS------------------------*/ +/* + * This function loads the shipvals array with the default values for the + * ships. They can later be changed with the sysdefaults. + */ + + +void +getshipdefaults() +{ + int i; + + for (i = 0; i < NUM_TYPES; i++) + shipvals[i].s_type = i; + + /* comprehensive definition of SCOUT */ + shipvals[SCOUT].s_alttype = 0; + strcpy(shipvals[SCOUT].s_name, "Scout"); + shipvals[SCOUT].s_turns = 570000; + shipvals[SCOUT].s_imp.acc = 200; + shipvals[SCOUT].s_imp.dec = 300; /* was: 270; (BG) */ + shipvals[SCOUT].s_imp.cost = 2; + shipvals[SCOUT].s_imp.maxspeed = 12; + shipvals[SCOUT].s_imp.etemp = 1000; + shipvals[SCOUT].s_after.acc = 700; + shipvals[SCOUT].s_after.dec = 270; + shipvals[SCOUT].s_after.cost = 40; + shipvals[SCOUT].s_after.maxspeed = 14; + shipvals[SCOUT].s_after.etemp = 35000; + if (configvals->bronco_shipvals) + { + shipvals[SCOUT].s_warp.acc = 10000; + shipvals[SCOUT].s_warp.dec = 200; + shipvals[SCOUT].s_warp.cost = 14; + shipvals[SCOUT].s_warp.maxspeed = 19; + shipvals[SCOUT].s_warp.etemp = 9000; + shipvals[SCOUT].s_warpinitcost = 909; + shipvals[SCOUT].s_warpinittime = 30; + shipvals[SCOUT].s_warpprepspeed = 2; + } + else + { + shipvals[SCOUT].s_warp.acc = 10000; + shipvals[SCOUT].s_warp.dec = 200; + shipvals[SCOUT].s_warp.cost = 13; /* was: 14; (BG) */ + shipvals[SCOUT].s_warp.maxspeed = 32; /* was: 27; (BG) */ + shipvals[SCOUT].s_warp.etemp = 9000; + shipvals[SCOUT].s_warpinitcost = 909; + shipvals[SCOUT].s_warpinittime = 30; + shipvals[SCOUT].s_warpprepspeed = 3; + } + shipvals[SCOUT].s_mass = 1500; + shipvals[SCOUT].s_tractstr = 2000; + shipvals[SCOUT].s_tractrng = 0.7; + shipvals[SCOUT].s_tractcost = 3; + shipvals[SCOUT].s_tractetemp = 1000; + shipvals[SCOUT].s_torp.damage = 25; + shipvals[SCOUT].s_torp.speed = 16; + shipvals[SCOUT].s_torp.cost = 175; +#ifndef OLDSHIPVALS + shipvals[SCOUT].s_torp.fuse = 16; +#else + shipvals[SCOUT].s_torp.fuse = 15; +#endif + shipvals[SCOUT].s_torp.wtemp = 7; + shipvals[SCOUT].s_torp.wtemp_halfarc = 32; + shipvals[SCOUT].s_torp.wtemp_factor = 9; + shipvals[SCOUT].s_torp.aux = 0; + shipvals[SCOUT].s_phaser.damage = 75; + shipvals[SCOUT].s_phaser.speed = 4500; + shipvals[SCOUT].s_phaser.cost = 525; + shipvals[SCOUT].s_phaser.fuse = 10; +#ifndef OLDSHIPVALS + shipvals[SCOUT].s_phaser.wtemp = 52; +#else + shipvals[SCOUT].s_phaser.wtemp = 50; +#endif + shipvals[SCOUT].s_missile.damage = 0; + shipvals[SCOUT].s_missile.speed = 0; + shipvals[SCOUT].s_missile.cost = 0; + shipvals[SCOUT].s_missile.fuse = 0; + shipvals[SCOUT].s_missile.wtemp = 0; + shipvals[SCOUT].s_missile.count = 0; + shipvals[SCOUT].s_missile.aux = 0; + shipvals[SCOUT].s_missilestored = 0; + shipvals[SCOUT].s_plasma.damage = -1; + shipvals[SCOUT].s_plasma.speed = 0; + shipvals[SCOUT].s_plasma.cost = 0; + shipvals[SCOUT].s_plasma.fuse = 0; + shipvals[SCOUT].s_plasma.wtemp = 50; + shipvals[SCOUT].s_plasma.aux = 0; + shipvals[SCOUT].s_maxwpntemp = 1000; + shipvals[SCOUT].s_wpncoolrate = 3; + if (configvals->bronco_shipvals) + shipvals[SCOUT].s_maxegntemp = 1000; + else + shipvals[SCOUT].s_maxegntemp = 1500; + shipvals[SCOUT].s_egncoolrate = 8; + shipvals[SCOUT].s_maxfuel = 5000; + shipvals[SCOUT].s_recharge = 16; + shipvals[SCOUT].s_mingivefuel = 0; + shipvals[SCOUT].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[SCOUT].s_expldam = 35; /* was: 40; (BG) */ + shipvals[SCOUT].s_fueldam = 50; /* was: 45; (BG) */ + } + else + { + shipvals[SCOUT].s_expldam = 75; + shipvals[SCOUT].s_fueldam = 0; + } + shipvals[SCOUT].s_armyperkill = 2; + shipvals[SCOUT].s_maxarmies = 2; + if (configvals->bronco_shipvals) + shipvals[SCOUT].s_bomb = 10; + else + shipvals[SCOUT].s_bomb = 0; + shipvals[SCOUT].s_repair = 80; + shipvals[SCOUT].s_maxdamage = 75; + shipvals[SCOUT].s_maxshield = 75; + shipvals[SCOUT].s_shieldcost = 2; + shipvals[SCOUT].s_detcost = 100; + shipvals[SCOUT].s_detdist = 1750; + if (configvals->bronco_shipvals) + { + shipvals[SCOUT].s_cloakcost = 85; + shipvals[SCOUT].s_scanrange = -1; + } + else + { + shipvals[SCOUT].s_cloakcost = 50; +#ifdef LONG_SCANRANGE + shipvals[SCOUT].s_scanrange = 8000; +#else + shipvals[SCOUT].s_scanrange = 5000; +#endif + } + shipvals[SCOUT].s_numports = 0; + shipvals[SCOUT].s_letter = 's'; + shipvals[SCOUT].s_desig1 = 'S'; + shipvals[SCOUT].s_desig2 = 'C'; + shipvals[SCOUT].s_bitmap = 0; + shipvals[SCOUT].s_width = 20; + shipvals[SCOUT].s_height = 20; + shipvals[SCOUT].s_timer = 0; + shipvals[SCOUT].s_maxnum = 32; + shipvals[SCOUT].s_rank = 0; + shipvals[SCOUT].s_numdefn = 0; + shipvals[SCOUT].s_numplan = 0; + if (configvals->warpdrive) + shipvals[SCOUT].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[SCOUT].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + + /* comprehensive definition of DESTROYER */ + shipvals[DESTROYER].s_alttype = 1; + strcpy(shipvals[DESTROYER].s_name, "Destroyer"); + shipvals[DESTROYER].s_turns = 310000; + shipvals[DESTROYER].s_imp.acc = 200; + shipvals[DESTROYER].s_imp.dec = 300; + shipvals[DESTROYER].s_imp.cost = 3; + shipvals[DESTROYER].s_imp.maxspeed = 10; + shipvals[DESTROYER].s_imp.etemp = 1000; + shipvals[DESTROYER].s_after.acc = 700; + shipvals[DESTROYER].s_after.dec = 270; + shipvals[DESTROYER].s_after.cost = 100; + shipvals[DESTROYER].s_after.maxspeed = 12; + shipvals[DESTROYER].s_after.etemp = 40000; + if (configvals->bronco_shipvals) + { + shipvals[DESTROYER].s_warp.acc = 10000; + shipvals[DESTROYER].s_warp.dec = 300; + shipvals[DESTROYER].s_warp.cost = 22; + shipvals[DESTROYER].s_warp.maxspeed = 15; + shipvals[DESTROYER].s_warp.etemp = 8000; + shipvals[DESTROYER].s_warpinitcost = 1272; + shipvals[DESTROYER].s_warpinittime = 50; + shipvals[DESTROYER].s_warpprepspeed = 2; + } + else + { + shipvals[DESTROYER].s_warp.acc = 10000; + shipvals[DESTROYER].s_warp.dec = 300; + shipvals[DESTROYER].s_warp.cost = 21; /* was: 22; (BG) */ + shipvals[DESTROYER].s_warp.maxspeed = 27; /* was: 22; (BG) */ + shipvals[DESTROYER].s_warp.etemp = 8000; + shipvals[DESTROYER].s_warpinitcost = 1272; + shipvals[DESTROYER].s_warpinittime = 50; + shipvals[DESTROYER].s_warpprepspeed = 3; + } + shipvals[DESTROYER].s_mass = 1800; + shipvals[DESTROYER].s_tractstr = 2500; + shipvals[DESTROYER].s_tractrng = 0.9; + shipvals[DESTROYER].s_tractcost = 4; + shipvals[DESTROYER].s_tractetemp = 1000; + shipvals[DESTROYER].s_torp.damage = 30; + shipvals[DESTROYER].s_torp.speed = 14; + shipvals[DESTROYER].s_torp.cost = 210; + shipvals[DESTROYER].s_torp.fuse = 30; + shipvals[DESTROYER].s_torp.wtemp = 11; + shipvals[DESTROYER].s_torp.wtemp_halfarc = 32; + shipvals[DESTROYER].s_torp.wtemp_factor = 9; + shipvals[DESTROYER].s_torp.aux = 0; + shipvals[DESTROYER].s_phaser.damage = 85; + shipvals[DESTROYER].s_phaser.speed = 5100; + shipvals[DESTROYER].s_phaser.cost = 595; + shipvals[DESTROYER].s_phaser.fuse = 10; + shipvals[DESTROYER].s_phaser.wtemp = 59; + shipvals[DESTROYER].s_missile.damage = 20; + shipvals[DESTROYER].s_missile.speed = 8; + shipvals[DESTROYER].s_missile.cost = 900; + shipvals[DESTROYER].s_missile.fuse = 100; + shipvals[DESTROYER].s_missile.wtemp = 100; + shipvals[DESTROYER].s_missile.count = 2; + shipvals[DESTROYER].s_missile.aux = 2; + shipvals[DESTROYER].s_missilestored = 8; + shipvals[DESTROYER].s_plasma.damage = 75; + shipvals[DESTROYER].s_plasma.speed = 15; + shipvals[DESTROYER].s_plasma.cost = 2250; + shipvals[DESTROYER].s_plasma.fuse = 30; + shipvals[DESTROYER].s_plasma.wtemp = 217; + shipvals[DESTROYER].s_plasma.aux = 1; + shipvals[DESTROYER].s_maxwpntemp = 1000; + shipvals[DESTROYER].s_wpncoolrate = 2; + if (configvals->bronco_shipvals) + shipvals[DESTROYER].s_maxegntemp = 1000; + else + shipvals[DESTROYER].s_maxegntemp = 1500; + shipvals[DESTROYER].s_egncoolrate = 7; + shipvals[DESTROYER].s_maxfuel = 7000; + shipvals[DESTROYER].s_recharge = 22; + shipvals[DESTROYER].s_mingivefuel = 0; + shipvals[DESTROYER].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[DESTROYER].s_expldam = 65; /* was: 50; (BG) */ + shipvals[DESTROYER].s_fueldam = 45; /* was: 50; (BG) */ + } + else + { + shipvals[DESTROYER].s_expldam = 100; + shipvals[DESTROYER].s_fueldam = 0; + } + shipvals[DESTROYER].s_armyperkill = 2; +#ifndef OLDSHIPVALS + shipvals[DESTROYER].s_maxarmies = 4; +#else + shipvals[DESTROYER].s_maxarmies = 5; +#endif + if (configvals->bronco_shipvals) + shipvals[DESTROYER].s_bomb = 10; + else + shipvals[DESTROYER].s_bomb = 5; + shipvals[DESTROYER].s_repair = 100; + shipvals[DESTROYER].s_maxdamage = 85; + shipvals[DESTROYER].s_maxshield = 85; + shipvals[DESTROYER].s_shieldcost = 3; + shipvals[DESTROYER].s_detcost = 100; + shipvals[DESTROYER].s_detdist = 1750; + if (configvals->bronco_shipvals) + { + shipvals[DESTROYER].s_cloakcost = 105; + shipvals[DESTROYER].s_scanrange = -1; + } + else + { + shipvals[DESTROYER].s_cloakcost = 75; + shipvals[DESTROYER].s_scanrange = 1000; + } + shipvals[DESTROYER].s_numports = 0; + shipvals[DESTROYER].s_letter = 'd'; + shipvals[DESTROYER].s_desig1 = 'D'; + shipvals[DESTROYER].s_desig2 = 'D'; + shipvals[DESTROYER].s_bitmap = 1; + shipvals[DESTROYER].s_width = 20; + shipvals[DESTROYER].s_height = 20; + shipvals[DESTROYER].s_timer = 0; + shipvals[DESTROYER].s_maxnum = 32; + shipvals[DESTROYER].s_rank = 0; + shipvals[DESTROYER].s_numdefn = 0; + shipvals[DESTROYER].s_numplan = 0; + if (configvals->warpdrive) + shipvals[DESTROYER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[DESTROYER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + /* comprehensive definition of CRUISER */ + shipvals[CRUISER].s_alttype = 2; + strcpy(shipvals[CRUISER].s_name, "Cruiser"); + shipvals[CRUISER].s_turns = 170000; + shipvals[CRUISER].s_imp.acc = 150; + shipvals[CRUISER].s_imp.dec = 200; + shipvals[CRUISER].s_imp.cost = 4; + shipvals[CRUISER].s_imp.maxspeed = 9; + shipvals[CRUISER].s_imp.etemp = 1000; + shipvals[CRUISER].s_after.acc = 550; + shipvals[CRUISER].s_after.dec = 270; + shipvals[CRUISER].s_after.cost = 200; + shipvals[CRUISER].s_after.maxspeed = 11; + shipvals[CRUISER].s_after.etemp = 50000; + if (configvals->bronco_shipvals) + { + shipvals[CRUISER].s_warp.acc = 10000; + shipvals[CRUISER].s_warp.dec = 500; + shipvals[CRUISER].s_warp.cost = 25; + shipvals[CRUISER].s_warp.maxspeed = 13; + shipvals[CRUISER].s_warp.etemp = 7000; + shipvals[CRUISER].s_warpinitcost = 1818; + shipvals[CRUISER].s_warpinittime = 60; + shipvals[CRUISER].s_warpprepspeed = 1; + } + else + { + shipvals[CRUISER].s_warp.acc = 10000; + shipvals[CRUISER].s_warp.dec = 500; + shipvals[CRUISER].s_warp.cost = 24; /* was: 25; (BG) */ + shipvals[CRUISER].s_warp.maxspeed = 24; /* was: 19; (BG) */ + shipvals[CRUISER].s_warp.etemp = 7000; + shipvals[CRUISER].s_warpinitcost = 1818; + shipvals[CRUISER].s_warpinittime = 60; + shipvals[CRUISER].s_warpprepspeed = 2; + } + shipvals[CRUISER].s_mass = 2000; + shipvals[CRUISER].s_tractstr = 3000; + shipvals[CRUISER].s_tractrng = 1.0; + shipvals[CRUISER].s_tractcost = 4; + shipvals[CRUISER].s_tractetemp = 1000; + shipvals[CRUISER].s_torp.damage = 40; + shipvals[CRUISER].s_torp.speed = 12; + shipvals[CRUISER].s_torp.cost = 280; + shipvals[CRUISER].s_torp.fuse = 40; + shipvals[CRUISER].s_torp.wtemp = 18; + shipvals[CRUISER].s_torp.wtemp_halfarc = 32; + shipvals[CRUISER].s_torp.wtemp_factor = 9; + shipvals[CRUISER].s_torp.aux = 0; + shipvals[CRUISER].s_phaser.damage = 100; +#ifndef OLDSHIPVALS + shipvals[CRUISER].s_phaser.speed = 6000; +#else + shipvals[CRUISER].s_phaser.speed = 5500; +#endif + shipvals[CRUISER].s_phaser.cost = 700; + shipvals[CRUISER].s_phaser.fuse = 10; + shipvals[CRUISER].s_phaser.wtemp = 70; + shipvals[CRUISER].s_missile.damage = 25; + shipvals[CRUISER].s_missile.speed = 7; + shipvals[CRUISER].s_missile.cost = 900; + shipvals[CRUISER].s_missile.fuse = 100; + shipvals[CRUISER].s_missile.wtemp = 105; + shipvals[CRUISER].s_missile.count = 3; + shipvals[CRUISER].s_missile.aux = 2; + shipvals[CRUISER].s_missilestored = 10; + shipvals[CRUISER].s_plasma.damage = 100; + shipvals[CRUISER].s_plasma.speed = 15; + shipvals[CRUISER].s_plasma.cost = 3000; + shipvals[CRUISER].s_plasma.fuse = 35; + shipvals[CRUISER].s_plasma.wtemp = 292; + shipvals[CRUISER].s_plasma.aux = 1; + shipvals[CRUISER].s_maxwpntemp = 1000; + shipvals[CRUISER].s_wpncoolrate = 2; + if (configvals->bronco_shipvals) + shipvals[CRUISER].s_maxegntemp = 1000; + else + shipvals[CRUISER].s_maxegntemp = 1500; + shipvals[CRUISER].s_egncoolrate = 6; + shipvals[CRUISER].s_maxfuel = 10000; + shipvals[CRUISER].s_recharge = 24; + shipvals[CRUISER].s_mingivefuel = 0; + shipvals[CRUISER].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[CRUISER].s_expldam = 75; /* was: 50; (BG) */ + shipvals[CRUISER].s_fueldam = 40; /* was: 65; (BG) */ + } + else + { + shipvals[CRUISER].s_expldam = 100; + shipvals[CRUISER].s_fueldam = 0; + } + shipvals[CRUISER].s_armyperkill = 2; +#ifndef OLDSHIPVALS + shipvals[CRUISER].s_maxarmies = 6; +#else + shipvals[CRUISER].s_maxarmies = 10; +#endif + shipvals[CRUISER].s_bomb = 10; + shipvals[CRUISER].s_repair = 110; + shipvals[CRUISER].s_maxdamage = 100; + shipvals[CRUISER].s_maxshield = 100; + shipvals[CRUISER].s_shieldcost = 4; + shipvals[CRUISER].s_detcost = 100; + shipvals[CRUISER].s_detdist = 1750; + if (configvals->bronco_shipvals) + shipvals[CRUISER].s_cloakcost = 130; + else + shipvals[CRUISER].s_cloakcost = 100; +#ifdef LONG_SCANRANGE + shipvals[CRUISER].s_scanrange = 1000; +#else + shipvals[CRUISER].s_scanrange = -1; +#endif + shipvals[CRUISER].s_numports = 0; + shipvals[CRUISER].s_letter = 'c'; + shipvals[CRUISER].s_desig1 = 'C'; + shipvals[CRUISER].s_desig2 = 'A'; + shipvals[CRUISER].s_bitmap = 2; + shipvals[CRUISER].s_width = 20; + shipvals[CRUISER].s_height = 20; + shipvals[CRUISER].s_timer = 0; + shipvals[CRUISER].s_maxnum = 32; + shipvals[CRUISER].s_rank = 0; + shipvals[CRUISER].s_numdefn = 0; + shipvals[CRUISER].s_numplan = 0; + if (configvals->warpdrive) + shipvals[CRUISER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[CRUISER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + /* comprehensive definition of BATTLESHIP */ + shipvals[BATTLESHIP].s_alttype = 3; + strcpy(shipvals[BATTLESHIP].s_name, "Battleship"); + shipvals[BATTLESHIP].s_turns = 75000; + shipvals[BATTLESHIP].s_imp.acc = 80; + shipvals[BATTLESHIP].s_imp.dec = 180; + shipvals[BATTLESHIP].s_imp.cost = 6; + shipvals[BATTLESHIP].s_imp.maxspeed = 8; + shipvals[BATTLESHIP].s_imp.etemp = 1000; + shipvals[BATTLESHIP].s_after.acc = 500; + shipvals[BATTLESHIP].s_after.dec = 270; + shipvals[BATTLESHIP].s_after.cost = 100; + shipvals[BATTLESHIP].s_after.maxspeed = 10; + shipvals[BATTLESHIP].s_after.etemp = 50000; + if (configvals->bronco_shipvals) + { + shipvals[BATTLESHIP].s_warp.acc = 10000; + shipvals[BATTLESHIP].s_warp.dec = 500; + shipvals[BATTLESHIP].s_warp.cost = 37; + shipvals[BATTLESHIP].s_warp.maxspeed = 11; + shipvals[BATTLESHIP].s_warp.etemp = 7000; + shipvals[BATTLESHIP].s_warpinitcost = 2545; + shipvals[BATTLESHIP].s_warpinittime = 70; + shipvals[BATTLESHIP].s_warpprepspeed = 0; + } + else + { + shipvals[BATTLESHIP].s_warp.acc = 10000; + shipvals[BATTLESHIP].s_warp.dec = 500; + shipvals[BATTLESHIP].s_warp.cost = 35; /* was: 37; (BG) */ + shipvals[BATTLESHIP].s_warp.maxspeed = 21; /* was: 16; (BG) */ + shipvals[BATTLESHIP].s_warp.etemp = 7000; + shipvals[BATTLESHIP].s_warpinitcost = 2545; + shipvals[BATTLESHIP].s_warpinittime = 70; + shipvals[BATTLESHIP].s_warpprepspeed = 1; + } + shipvals[BATTLESHIP].s_mass = 2300; + shipvals[BATTLESHIP].s_tractstr = 3700; + shipvals[BATTLESHIP].s_tractrng = 1.2; + shipvals[BATTLESHIP].s_tractcost = 4; + shipvals[BATTLESHIP].s_tractetemp = 1000; + shipvals[BATTLESHIP].s_torp.damage = 40; + shipvals[BATTLESHIP].s_torp.speed = 12; + shipvals[BATTLESHIP].s_torp.cost = 300; + shipvals[BATTLESHIP].s_torp.fuse = 40; + shipvals[BATTLESHIP].s_torp.wtemp = 20; + shipvals[BATTLESHIP].s_torp.wtemp_halfarc = 32; + shipvals[BATTLESHIP].s_torp.wtemp_factor = 9; + shipvals[BATTLESHIP].s_torp.aux = 0; + shipvals[BATTLESHIP].s_phaser.damage = 105; +#ifndef OLDSHIPVALS + shipvals[BATTLESHIP].s_phaser.speed = 6300; + shipvals[BATTLESHIP].s_phaser.cost = 945; +#else + shipvals[BATTLESHIP].s_phaser.speed = 6000; + shipvals[BATTLESHIP].s_phaser.cost = 900; +#endif + shipvals[BATTLESHIP].s_phaser.fuse = 10; + shipvals[BATTLESHIP].s_phaser.wtemp = 94; + shipvals[BATTLESHIP].s_missile.damage = 30; + shipvals[BATTLESHIP].s_missile.speed = 5; + shipvals[BATTLESHIP].s_missile.cost = 900; + shipvals[BATTLESHIP].s_missile.fuse = 100; + shipvals[BATTLESHIP].s_missile.wtemp = 100; + shipvals[BATTLESHIP].s_missile.count = 4; + shipvals[BATTLESHIP].s_missile.aux = 3; + shipvals[BATTLESHIP].s_missilestored = 12; + shipvals[BATTLESHIP].s_plasma.damage = 130; + shipvals[BATTLESHIP].s_plasma.speed = 15; + shipvals[BATTLESHIP].s_plasma.cost = 3900; + shipvals[BATTLESHIP].s_plasma.fuse = 35; + shipvals[BATTLESHIP].s_plasma.wtemp = 382; + shipvals[BATTLESHIP].s_plasma.aux = 1; + shipvals[BATTLESHIP].s_maxwpntemp = 1000; + shipvals[BATTLESHIP].s_wpncoolrate = 3; + if (configvals->bronco_shipvals) + shipvals[BATTLESHIP].s_maxegntemp = 1000; + else + shipvals[BATTLESHIP].s_maxegntemp = 1500; + shipvals[BATTLESHIP].s_egncoolrate = 6; + shipvals[BATTLESHIP].s_maxfuel = 14000; + shipvals[BATTLESHIP].s_recharge = 28; + shipvals[BATTLESHIP].s_mingivefuel = 0; + shipvals[BATTLESHIP].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[BATTLESHIP].s_expldam = 85; /* was: 50; (BG) */ + shipvals[BATTLESHIP].s_fueldam = 35; /* was: 85; (BG) */ + } + else + { + shipvals[BATTLESHIP].s_expldam = 10; + shipvals[BATTLESHIP].s_fueldam = 0; + } + shipvals[BATTLESHIP].s_armyperkill = 2; + shipvals[BATTLESHIP].s_maxarmies = 6; + shipvals[BATTLESHIP].s_bomb = 20; + shipvals[BATTLESHIP].s_repair = 125; + shipvals[BATTLESHIP].s_maxdamage = 130; + shipvals[BATTLESHIP].s_maxshield = 130; + shipvals[BATTLESHIP].s_shieldcost = 5; + shipvals[BATTLESHIP].s_detcost = 100; + shipvals[BATTLESHIP].s_detdist = 1750; + shipvals[BATTLESHIP].s_cloakcost = 150; +#ifdef LONG_SCANRANGE + shipvals[BATTLESHIP].s_scanrange = 1000; +#else + shipvals[BATTLESHIP].s_scanrange = -1; +#endif + shipvals[BATTLESHIP].s_numports = 0; + shipvals[BATTLESHIP].s_letter = 'b'; + shipvals[BATTLESHIP].s_desig1 = 'B'; + shipvals[BATTLESHIP].s_desig2 = 'B'; + shipvals[BATTLESHIP].s_bitmap = 3; + shipvals[BATTLESHIP].s_width = 20; + shipvals[BATTLESHIP].s_height = 20; + shipvals[BATTLESHIP].s_timer = 0; + shipvals[BATTLESHIP].s_maxnum = 32; + shipvals[BATTLESHIP].s_rank = 0; + shipvals[BATTLESHIP].s_numdefn = 0; + shipvals[BATTLESHIP].s_numplan = 0; + shipvals[BATTLESHIP].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + + /* comprehensive definition of ASSAULT */ + shipvals[ASSAULT].s_alttype = 4; + strcpy(shipvals[ASSAULT].s_name, "Assault"); + shipvals[ASSAULT].s_turns = 120000; + shipvals[ASSAULT].s_imp.acc = 100; + shipvals[ASSAULT].s_imp.dec = 200; + if (configvals->bronco_shipvals) + shipvals[ASSAULT].s_imp.cost = 3; + else + shipvals[ASSAULT].s_imp.cost = 4; + shipvals[ASSAULT].s_imp.maxspeed = 8; + shipvals[ASSAULT].s_imp.etemp = 1000; + shipvals[ASSAULT].s_after.acc = 550; + shipvals[ASSAULT].s_after.dec = 270; + shipvals[ASSAULT].s_after.cost = 25; + shipvals[ASSAULT].s_after.maxspeed = 10; + shipvals[ASSAULT].s_after.etemp = 50000; + if (configvals->bronco_shipvals) + { + shipvals[ASSAULT].s_warp.acc = 10000; + shipvals[ASSAULT].s_warp.dec = 5000; + shipvals[ASSAULT].s_warp.cost = 20; + shipvals[ASSAULT].s_warp.maxspeed = 12; + shipvals[ASSAULT].s_warp.etemp = 6500; + shipvals[ASSAULT].s_warpinitcost = 1000; + shipvals[ASSAULT].s_warpinittime = 80; + shipvals[ASSAULT].s_warpprepspeed = 0; + } + else + { + shipvals[ASSAULT].s_warp.acc = 10000; + shipvals[ASSAULT].s_warp.dec = 5000; + shipvals[ASSAULT].s_warp.cost = 20; + shipvals[ASSAULT].s_warp.maxspeed = 23; /* was: 18; (BG) */ + shipvals[ASSAULT].s_warp.etemp = 6500; + shipvals[ASSAULT].s_warpinitcost = 1000; + shipvals[ASSAULT].s_warpinittime = 80; + shipvals[ASSAULT].s_warpprepspeed = 1; + } + shipvals[ASSAULT].s_mass = 2300; + shipvals[ASSAULT].s_tractstr = 2500; + shipvals[ASSAULT].s_tractrng = 0.7; + shipvals[ASSAULT].s_tractcost = 3; + shipvals[ASSAULT].s_tractetemp = 1000; + shipvals[ASSAULT].s_torp.damage = 30; + shipvals[ASSAULT].s_torp.speed = 16; + shipvals[ASSAULT].s_torp.cost = 270; + shipvals[ASSAULT].s_torp.fuse = 30; + shipvals[ASSAULT].s_torp.wtemp = 17; + shipvals[ASSAULT].s_torp.wtemp_halfarc = 32; + shipvals[ASSAULT].s_torp.wtemp_factor = 9; + shipvals[ASSAULT].s_torp.aux = 0; + shipvals[ASSAULT].s_phaser.damage = 80; + shipvals[ASSAULT].s_phaser.speed = 4800; + shipvals[ASSAULT].s_phaser.cost = 560; + shipvals[ASSAULT].s_phaser.fuse = 10; + shipvals[ASSAULT].s_phaser.wtemp = 56; + shipvals[ASSAULT].s_missile.damage = 0; + shipvals[ASSAULT].s_missile.speed = 0; + shipvals[ASSAULT].s_missile.cost = 0; + shipvals[ASSAULT].s_missile.fuse = 0; + shipvals[ASSAULT].s_missile.wtemp = 0; + shipvals[ASSAULT].s_missile.count = 0; + shipvals[ASSAULT].s_missile.aux = 0; + shipvals[ASSAULT].s_missilestored = 0; + shipvals[ASSAULT].s_plasma.damage = -1; + shipvals[ASSAULT].s_plasma.speed = 0; + shipvals[ASSAULT].s_plasma.cost = 0; + shipvals[ASSAULT].s_plasma.fuse = 0; + shipvals[ASSAULT].s_plasma.wtemp = 5; + shipvals[ASSAULT].s_plasma.aux = 0; + shipvals[ASSAULT].s_maxwpntemp = 1000; + shipvals[ASSAULT].s_wpncoolrate = 2; + if (configvals->bronco_shipvals) + shipvals[ASSAULT].s_maxegntemp = 1000; + else + shipvals[ASSAULT].s_maxegntemp = 1700; + shipvals[ASSAULT].s_egncoolrate = 6; + shipvals[ASSAULT].s_maxfuel = 6000; + if (configvals->bronco_shipvals) + shipvals[ASSAULT].s_recharge = 20; + else + shipvals[ASSAULT].s_recharge = 24; + shipvals[ASSAULT].s_mingivefuel = 0; + shipvals[ASSAULT].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[ASSAULT].s_expldam = 70; /* was: 50; (BG) */ + shipvals[ASSAULT].s_fueldam = 40; /* was: 45; (BG) */ + } + else + { + shipvals[ASSAULT].s_expldam = 100; + shipvals[ASSAULT].s_fueldam = 0; + } + shipvals[ASSAULT].s_armyperkill = 3; + shipvals[ASSAULT].s_maxarmies = 20; + if (configvals->bronco_shipvals) + shipvals[ASSAULT].s_bomb = 25; + else + shipvals[ASSAULT].s_bomb = 50; + shipvals[ASSAULT].s_repair = 120; + shipvals[ASSAULT].s_maxdamage = 200; + shipvals[ASSAULT].s_maxshield = 80; + shipvals[ASSAULT].s_shieldcost = 3; + shipvals[ASSAULT].s_detcost = 100; + shipvals[ASSAULT].s_detdist = 1750; + if (configvals->bronco_shipvals) + shipvals[ASSAULT].s_cloakcost = 85; + else + shipvals[ASSAULT].s_cloakcost = 80; +#ifdef LONG_SCANRANGE + shipvals[ASSAULT].s_scanrange = 1000; +#else + shipvals[ASSAULT].s_scanrange = -1; +#endif + shipvals[ASSAULT].s_numports = 0; + shipvals[ASSAULT].s_letter = 'a'; + shipvals[ASSAULT].s_desig1 = 'A'; + shipvals[ASSAULT].s_desig2 = 'S'; + shipvals[ASSAULT].s_bitmap = 4; + shipvals[ASSAULT].s_width = 20; + shipvals[ASSAULT].s_height = 20; + shipvals[ASSAULT].s_timer = 0; + shipvals[ASSAULT].s_maxnum = 32; + shipvals[ASSAULT].s_rank = 0; + shipvals[ASSAULT].s_numdefn = 0; + shipvals[ASSAULT].s_numplan = 0; + if (configvals->warpdrive) + shipvals[ASSAULT].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[ASSAULT].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + /* comprehensive definition of STARBASE */ + shipvals[STARBASE].s_alttype = 5; + strcpy(shipvals[STARBASE].s_name, "Starbase"); + shipvals[STARBASE].s_turns = 50000; + shipvals[STARBASE].s_imp.acc = 100; + shipvals[STARBASE].s_imp.dec = 200; + if (configvals->bronco_shipvals) + shipvals[STARBASE].s_imp.cost = 10; + else + shipvals[STARBASE].s_imp.cost = 4; +#ifdef BEEFY_BASES + shipvals[STARBASE].s_imp.maxspeed = 3; +#else + shipvals[STARBASE].s_imp.maxspeed = 2; +#endif + shipvals[STARBASE].s_imp.etemp = 1000; + shipvals[STARBASE].s_after.acc = 100; + shipvals[STARBASE].s_after.dec = 100; + shipvals[STARBASE].s_after.cost = 40; + shipvals[STARBASE].s_after.maxspeed = 5; + shipvals[STARBASE].s_after.etemp = 30000; + if (configvals->bronco_shipvals) + { + shipvals[STARBASE].s_warp.acc = 100; + shipvals[STARBASE].s_warp.dec = 100; + shipvals[STARBASE].s_warp.cost = 20; + shipvals[STARBASE].s_warp.maxspeed = 4; + shipvals[STARBASE].s_warp.etemp = 1500; + shipvals[STARBASE].s_warpinitcost = 10909; + shipvals[STARBASE].s_warpinittime = 100; + shipvals[STARBASE].s_warpprepspeed = 1; + } + else + { + shipvals[STARBASE].s_warp.acc = 100; + shipvals[STARBASE].s_warp.dec = 100; + shipvals[STARBASE].s_warp.cost = 20; + shipvals[STARBASE].s_warp.maxspeed = 6; + shipvals[STARBASE].s_warp.etemp = 1500; + shipvals[STARBASE].s_warpinitcost = 10909; + shipvals[STARBASE].s_warpinittime = 100; + shipvals[STARBASE].s_warpprepspeed = 2; + } + shipvals[STARBASE].s_mass = 5000; + shipvals[STARBASE].s_tractstr = 8000; + shipvals[STARBASE].s_tractrng = 1.5; + shipvals[STARBASE].s_tractcost = 10; + shipvals[STARBASE].s_tractetemp = 3000; + shipvals[STARBASE].s_torp.damage = 30; + shipvals[STARBASE].s_torp.speed = 14; + shipvals[STARBASE].s_torp.cost = 300; + if (configvals->bronco_shipvals) + shipvals[STARBASE].s_torp.fuse = 30; + else + shipvals[STARBASE].s_torp.fuse = 45; + shipvals[STARBASE].s_torp.wtemp = 20; + shipvals[STARBASE].s_torp.wtemp_halfarc = 0; + shipvals[STARBASE].s_torp.wtemp_factor = 0; + shipvals[STARBASE].s_torp.aux = 0; + shipvals[STARBASE].s_phaser.damage = 120; +#ifndef OLDSHIPVALS + shipvals[STARBASE].s_phaser.speed = 7200; + shipvals[STARBASE].s_phaser.wtemp = 96; +#else + shipvals[STARBASE].s_phaser.speed = 6500; + shipvals[STARBASE].s_phaser.wtemp = 66; +#endif + shipvals[STARBASE].s_phaser.cost = 960; + shipvals[STARBASE].s_phaser.fuse = 4; + shipvals[STARBASE].s_missile.damage = 40; + shipvals[STARBASE].s_missile.speed = 14; + shipvals[STARBASE].s_missile.cost = 2000; + shipvals[STARBASE].s_missile.fuse = 100; + shipvals[STARBASE].s_missile.wtemp = 120; + shipvals[STARBASE].s_missile.count = 4; + shipvals[STARBASE].s_missile.aux = 2; + shipvals[STARBASE].s_missilestored = -1; + shipvals[STARBASE].s_plasma.damage = 150; + shipvals[STARBASE].s_plasma.speed = 15; + shipvals[STARBASE].s_plasma.cost = 3750; + if (configvals->bronco_shipvals) + shipvals[STARBASE].s_plasma.fuse = 25; + else + shipvals[STARBASE].s_plasma.fuse = 40; + shipvals[STARBASE].s_plasma.wtemp = 367; + shipvals[STARBASE].s_plasma.aux = 1; + shipvals[STARBASE].s_maxwpntemp = 1300; +#ifdef BEEFY_BASES + shipvals[STARBASE].s_wpncoolrate = 7; +#else + shipvals[STARBASE].s_wpncoolrate = 4; +#endif + if (configvals->bronco_shipvals) + shipvals[STARBASE].s_maxegntemp = 1000; + else + shipvals[STARBASE].s_maxegntemp = 1300; + shipvals[STARBASE].s_egncoolrate = 10; + shipvals[STARBASE].s_maxfuel = 60000; +#ifdef BEEFY_BASES + shipvals[STARBASE].s_recharge = 90; +#else + shipvals[STARBASE].s_recharge = 70; +#endif + shipvals[STARBASE].s_mingivefuel = 10000; + shipvals[STARBASE].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[STARBASE].s_expldam = 150; /* was: 100; (BG) */ + shipvals[STARBASE].s_fueldam = 100; + } + else + { + shipvals[STARBASE].s_expldam = 200; + shipvals[STARBASE].s_fueldam = 0; + } + shipvals[STARBASE].s_armyperkill = 5; + shipvals[STARBASE].s_maxarmies = 25; + shipvals[STARBASE].s_bomb = 50; + shipvals[STARBASE].s_repair = 170; /* was: 140; (BG) */ + shipvals[STARBASE].s_maxdamage = 600; + shipvals[STARBASE].s_maxshield = 500; + shipvals[STARBASE].s_shieldcost = 10; + shipvals[STARBASE].s_detcost = 100; + shipvals[STARBASE].s_detdist = 1800; + if (configvals->bronco_shipvals) + { + shipvals[STARBASE].s_cloakcost = 375; + shipvals[STARBASE].s_scanrange = -1; + shipvals[STARBASE].s_numports = 4; + } + else + { + shipvals[STARBASE].s_cloakcost = 750; +#ifdef LONG_SCANRANGE + shipvals[STARBASE].s_scanrange = 10000; +#else + shipvals[STARBASE].s_scanrange = 5000; +#endif + shipvals[STARBASE].s_numports = 6; + } + shipvals[STARBASE].s_letter = 'o'; + shipvals[STARBASE].s_desig1 = 'S'; + shipvals[STARBASE].s_desig2 = 'B'; + shipvals[STARBASE].s_bitmap = 5; + shipvals[STARBASE].s_width = 20; + shipvals[STARBASE].s_height = 20; + shipvals[STARBASE].s_timer = 30; + shipvals[STARBASE].s_maxnum = 1; + shipvals[STARBASE].s_rank = 4; + shipvals[STARBASE].s_numdefn = 4; + if (configvals->bronco_shipvals) + shipvals[STARBASE].s_numplan = 5; + else + shipvals[STARBASE].s_numplan = 7; + if (configvals->warpdrive) + shipvals[STARBASE].s_nflags = SFNCANWARP | SFNCANFUEL | SFNCANREPAIR | SFNCANREFIT | SFNHASPHASERS | SFNPLASMASTYLE | SFNPLASMAARMED | SFNHASMISSILE; + else + shipvals[STARBASE].s_nflags = SFNCANFUEL | SFNCANREPAIR | SFNCANREFIT | SFNHASPHASERS | SFNPLASMASTYLE | SFNPLASMAARMED | SFNHASMISSILE; + /* comprehensive definition of ATT */ + shipvals[ATT].s_alttype = 6; + strcpy(shipvals[ATT].s_name, "AT&T"); + shipvals[ATT].s_turns = 1000000; + shipvals[ATT].s_imp.acc = 10000; + shipvals[ATT].s_imp.dec = 9000; + shipvals[ATT].s_imp.cost = 1; + shipvals[ATT].s_imp.maxspeed = 90; + shipvals[ATT].s_imp.etemp = 0; + shipvals[ATT].s_after.acc = 550; + shipvals[ATT].s_after.dec = 270; + shipvals[ATT].s_after.cost = 1; + shipvals[ATT].s_after.maxspeed = 99; + shipvals[ATT].s_after.etemp = 5; + shipvals[ATT].s_warp.acc = 32000; + shipvals[ATT].s_warp.dec = 32000; + shipvals[ATT].s_warp.cost = 1; + shipvals[ATT].s_warp.maxspeed = 99; + shipvals[ATT].s_warp.etemp = 1; + shipvals[ATT].s_warpinitcost = 1; + shipvals[ATT].s_warpinittime = 1; + shipvals[ATT].s_warpprepspeed = 0; + shipvals[ATT].s_mass = 6000; + shipvals[ATT].s_tractstr = 32000; + shipvals[ATT].s_tractrng = 3; + shipvals[ATT].s_tractcost = 1; + shipvals[ATT].s_tractetemp = 3; + shipvals[ATT].s_torp.damage = 40; + shipvals[ATT].s_torp.speed = 20; + shipvals[ATT].s_torp.cost = 1; + shipvals[ATT].s_torp.fuse = 20; + shipvals[ATT].s_torp.wtemp = 1; + shipvals[ATT].s_torp.wtemp_halfarc = 0; + shipvals[ATT].s_torp.wtemp_factor = 0; + shipvals[ATT].s_torp.aux = 1; + shipvals[ATT].s_phaser.damage = 110; + shipvals[ATT].s_phaser.speed = 32000; + shipvals[ATT].s_phaser.cost = 1; + shipvals[ATT].s_phaser.fuse = 5; + shipvals[ATT].s_phaser.wtemp = 5; + shipvals[ATT].s_missile.damage = 0; + shipvals[ATT].s_missile.speed = 0; + shipvals[ATT].s_missile.cost = 0; + shipvals[ATT].s_missile.fuse = 0; + shipvals[ATT].s_missile.wtemp = 0; + shipvals[ATT].s_missile.count = 0; + shipvals[ATT].s_missile.aux = 0; + shipvals[ATT].s_missilestored = 0; + shipvals[ATT].s_plasma.damage = 150; + shipvals[ATT].s_plasma.speed = 15; + shipvals[ATT].s_plasma.cost = 1; + shipvals[ATT].s_plasma.fuse = 20; + shipvals[ATT].s_plasma.wtemp = 5; + shipvals[ATT].s_plasma.aux = 2; + shipvals[ATT].s_maxwpntemp = 10000; + shipvals[ATT].s_wpncoolrate = 100; + shipvals[ATT].s_maxegntemp = 10000; + shipvals[ATT].s_egncoolrate = 100; + shipvals[ATT].s_maxfuel = 60000; + shipvals[ATT].s_recharge = 1000; + shipvals[ATT].s_mingivefuel = 0; + shipvals[ATT].s_takeonfuel = 150; + shipvals[ATT].s_expldam = 500; + shipvals[ATT].s_fueldam = 500; + shipvals[ATT].s_armyperkill = 1.5; + shipvals[ATT].s_maxarmies = 1000; + shipvals[ATT].s_bomb = -2100; + shipvals[ATT].s_repair = 30000; + shipvals[ATT].s_maxdamage = 30000; + shipvals[ATT].s_maxshield = 30000; + shipvals[ATT].s_shieldcost = 1; + shipvals[ATT].s_detcost = 1; + shipvals[ATT].s_detdist = 3000; + shipvals[ATT].s_cloakcost = 1; + shipvals[ATT].s_scanrange = 10000; + shipvals[ATT].s_numports = 0; + shipvals[ATT].s_letter = '.'; + shipvals[ATT].s_desig1 = 'A'; + shipvals[ATT].s_desig2 = 'T'; + shipvals[ATT].s_bitmap = 6; + shipvals[ATT].s_width = 28; + shipvals[ATT].s_height = 28; + shipvals[ATT].s_timer = 5; + shipvals[ATT].s_maxnum = 32; + shipvals[ATT].s_rank = 0; + shipvals[ATT].s_numdefn = 0; + shipvals[ATT].s_numplan = 0; + shipvals[ATT].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS | SFNPLASMASTYLE | SFNPLASMAARMED; + + /* comprehensive definition of JUMPSHIP */ + shipvals[JUMPSHIP].s_alttype = 5; + strcpy(shipvals[JUMPSHIP].s_name, "Jumpship"); + shipvals[JUMPSHIP].s_turns = 700000; + if (configvals->bronco_shipvals) + { + shipvals[JUMPSHIP].s_imp.acc = 1000; + shipvals[JUMPSHIP].s_imp.dec = 500; + } + else + { + shipvals[JUMPSHIP].s_imp.acc = 2000; + shipvals[JUMPSHIP].s_imp.dec = 1000; + } + shipvals[JUMPSHIP].s_imp.cost = 1; + shipvals[JUMPSHIP].s_imp.maxspeed = 20; + shipvals[JUMPSHIP].s_imp.etemp = 1000; + shipvals[JUMPSHIP].s_after.acc = 2000; + shipvals[JUMPSHIP].s_after.dec = 2000; +#ifndef OLDSHIPVALS + shipvals[JUMPSHIP].s_after.maxspeed = 30; + shipvals[JUMPSHIP].s_after.etemp = 200000; + shipvals[JUMPSHIP].s_after.cost = 1000; + shipvals[JUMPSHIP].s_warp.cost = 200; +#else + shipvals[JUMPSHIP].s_after.maxspeed = 60; + shipvals[JUMPSHIP].s_after.etemp = 90000; + shipvals[JUMPSHIP].s_after.cost = 15; + shipvals[JUMPSHIP].s_warp.cost = 2; +#endif + shipvals[JUMPSHIP].s_warp.acc = 2000; + shipvals[JUMPSHIP].s_warp.dec = 3000; + if (configvals->bronco_shipvals) + shipvals[JUMPSHIP].s_warp.maxspeed = 32; + else + shipvals[JUMPSHIP].s_warp.maxspeed = 45; + shipvals[JUMPSHIP].s_warp.etemp = 500; + shipvals[JUMPSHIP].s_warpinitcost = 1; + shipvals[JUMPSHIP].s_warpinittime = 7; + shipvals[JUMPSHIP].s_warpprepspeed = 2; + shipvals[JUMPSHIP].s_mass = 10000; + shipvals[JUMPSHIP].s_tractstr = 5000; + shipvals[JUMPSHIP].s_tractrng = 1.5; +#ifndef OLDSHIPVALS + shipvals[JUMPSHIP].s_tractcost = 8; +#else + shipvals[JUMPSHIP].s_tractcost = 3; +#endif + shipvals[JUMPSHIP].s_tractetemp = 5000; + shipvals[JUMPSHIP].s_torp.damage = 5; + shipvals[JUMPSHIP].s_torp.speed = 18; + shipvals[JUMPSHIP].s_torp.cost = 1000; + shipvals[JUMPSHIP].s_torp.fuse = 10; + shipvals[JUMPSHIP].s_torp.wtemp = 99; + shipvals[JUMPSHIP].s_torp.wtemp_halfarc = 32; + shipvals[JUMPSHIP].s_torp.wtemp_factor = 9; + shipvals[JUMPSHIP].s_torp.aux = 0; + shipvals[JUMPSHIP].s_phaser.damage = 25; + shipvals[JUMPSHIP].s_phaser.speed = 3000; + shipvals[JUMPSHIP].s_phaser.cost = 500; + shipvals[JUMPSHIP].s_phaser.fuse = 4; + shipvals[JUMPSHIP].s_phaser.wtemp = 5; + shipvals[JUMPSHIP].s_missile.damage = 0; + shipvals[JUMPSHIP].s_missile.speed = 0; + shipvals[JUMPSHIP].s_missile.cost = 0; + shipvals[JUMPSHIP].s_missile.fuse = 0; + shipvals[JUMPSHIP].s_missile.wtemp = 0; + shipvals[JUMPSHIP].s_missile.count = 0; + shipvals[JUMPSHIP].s_missile.aux = 0; + shipvals[JUMPSHIP].s_missilestored = 0; + shipvals[JUMPSHIP].s_plasma.damage = -1; + shipvals[JUMPSHIP].s_plasma.speed = 15; + shipvals[JUMPSHIP].s_plasma.cost = 0; + shipvals[JUMPSHIP].s_plasma.fuse = 25; + shipvals[JUMPSHIP].s_plasma.wtemp = 5; + shipvals[JUMPSHIP].s_plasma.aux = 1; + shipvals[JUMPSHIP].s_maxwpntemp = 1300; + shipvals[JUMPSHIP].s_wpncoolrate = 4; + shipvals[JUMPSHIP].s_maxegntemp = 5000; + shipvals[JUMPSHIP].s_egncoolrate = 34; + shipvals[JUMPSHIP].s_maxfuel = 50000; + shipvals[JUMPSHIP].s_recharge = 200; + shipvals[JUMPSHIP].s_mingivefuel = 10000; + shipvals[JUMPSHIP].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[JUMPSHIP].s_expldam = 25; /* was: 30; */ + shipvals[JUMPSHIP].s_fueldam = 175; /* was: 160; */ + } + else + { + shipvals[JUMPSHIP].s_expldam = 150; + shipvals[JUMPSHIP].s_fueldam = 0; + } + shipvals[JUMPSHIP].s_armyperkill = 0; + shipvals[JUMPSHIP].s_maxarmies = 0; + shipvals[JUMPSHIP].s_bomb = 30; + shipvals[JUMPSHIP].s_repair = 200; + shipvals[JUMPSHIP].s_maxdamage = 60; + shipvals[JUMPSHIP].s_maxshield = 5; + shipvals[JUMPSHIP].s_shieldcost = 5; + shipvals[JUMPSHIP].s_detcost = 100; + shipvals[JUMPSHIP].s_detdist = 1750; + shipvals[JUMPSHIP].s_cloakcost = 1000; + shipvals[JUMPSHIP].s_scanrange = -1; + shipvals[JUMPSHIP].s_numports = 4; + shipvals[JUMPSHIP].s_letter = 'j'; + shipvals[JUMPSHIP].s_desig1 = 'J'; + shipvals[JUMPSHIP].s_desig2 = 'S'; + shipvals[JUMPSHIP].s_bitmap = 7; + shipvals[JUMPSHIP].s_width = 20; + shipvals[JUMPSHIP].s_height = 20; + shipvals[JUMPSHIP].s_timer = 5; + shipvals[JUMPSHIP].s_maxnum = 1; + shipvals[JUMPSHIP].s_rank = 3; + shipvals[JUMPSHIP].s_numdefn = 3; + shipvals[JUMPSHIP].s_numplan = 0; + /* UFL says jumpships shouldn't refit. */ + if (configvals->warpdrive) + shipvals[JUMPSHIP].s_nflags = SFNCANWARP | SFNCANFUEL | SFNHASPHASERS | SFNCANREFIT; + else + shipvals[JUMPSHIP].s_nflags = SFNCANFUEL | SFNHASPHASERS | SFNCANREFIT; + + /* comprehensive definition of FRIGATE */ + shipvals[FRIGATE].s_alttype = 4; + strcpy(shipvals[FRIGATE].s_name, "Frigate"); + shipvals[FRIGATE].s_turns = 122500; + shipvals[FRIGATE].s_imp.acc = 115; + shipvals[FRIGATE].s_imp.dec = 190; + shipvals[FRIGATE].s_imp.cost = 5; + shipvals[FRIGATE].s_imp.maxspeed = 9; + shipvals[FRIGATE].s_imp.etemp = 1000; + shipvals[FRIGATE].s_after.acc = 525; + shipvals[FRIGATE].s_after.dec = 270; + shipvals[FRIGATE].s_after.cost = 150; + shipvals[FRIGATE].s_after.maxspeed = 10; + shipvals[FRIGATE].s_after.etemp = 50000; + shipvals[FRIGATE].s_warp.acc = 10000; + shipvals[FRIGATE].s_warp.dec = 500; + shipvals[FRIGATE].s_warp.cost = 30; + if (configvals->bronco_shipvals) + shipvals[FRIGATE].s_warp.maxspeed = 12; + else + shipvals[FRIGATE].s_warp.maxspeed = 23; + shipvals[FRIGATE].s_warp.etemp = 7000; + shipvals[FRIGATE].s_warpinitcost = 2272; + shipvals[FRIGATE].s_warpinittime = 65; + if (configvals->bronco_shipvals) + shipvals[FRIGATE].s_warpprepspeed = 1; + else + shipvals[FRIGATE].s_warpprepspeed = 2; + shipvals[FRIGATE].s_mass = 2150; + shipvals[FRIGATE].s_tractstr = 3400; + shipvals[FRIGATE].s_tractrng = 1.1; + shipvals[FRIGATE].s_tractcost = 4; + shipvals[FRIGATE].s_tractetemp = 1000; + shipvals[FRIGATE].s_torp.damage = 40; + shipvals[FRIGATE].s_torp.speed = 12; + shipvals[FRIGATE].s_torp.cost = 290; + shipvals[FRIGATE].s_torp.fuse = 40; + shipvals[FRIGATE].s_torp.wtemp = 19; + shipvals[FRIGATE].s_torp.wtemp_halfarc = 32; + shipvals[FRIGATE].s_torp.wtemp_factor = 9; + shipvals[FRIGATE].s_torp.aux = 0; +#ifndef OLDSHIPVALS + shipvals[FRIGATE].s_phaser.damage = 102; + shipvals[FRIGATE].s_phaser.speed = 6150; + shipvals[FRIGATE].s_phaser.cost = 816; +#else + shipvals[FRIGATE].s_phaser.damage = 100; + shipvals[FRIGATE].s_phaser.speed = 5750; + shipvals[FRIGATE].s_phaser.cost = 800; +#endif + shipvals[FRIGATE].s_phaser.fuse = 10; + shipvals[FRIGATE].s_phaser.wtemp = 80; + shipvals[FRIGATE].s_missile.damage = 23; + shipvals[FRIGATE].s_missile.speed = 6; + shipvals[FRIGATE].s_missile.cost = 850; + shipvals[FRIGATE].s_missile.fuse = 100; + shipvals[FRIGATE].s_missile.wtemp = 100; + shipvals[FRIGATE].s_missile.count = 3; + shipvals[FRIGATE].s_missile.aux = 2; + shipvals[FRIGATE].s_missilestored = 11; + shipvals[FRIGATE].s_plasma.damage = 115; + shipvals[FRIGATE].s_plasma.speed = 15; + shipvals[FRIGATE].s_plasma.cost = 3450; + shipvals[FRIGATE].s_plasma.fuse = 35; + shipvals[FRIGATE].s_plasma.wtemp = 337; + shipvals[FRIGATE].s_plasma.aux = 1; + shipvals[FRIGATE].s_maxwpntemp = 1000; + shipvals[FRIGATE].s_wpncoolrate = 3; + shipvals[FRIGATE].s_maxegntemp = 1500; + shipvals[FRIGATE].s_egncoolrate = 6; + shipvals[FRIGATE].s_maxfuel = 12500; + shipvals[FRIGATE].s_recharge = 26; + shipvals[FRIGATE].s_mingivefuel = 0; + shipvals[FRIGATE].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[FRIGATE].s_expldam = 77; /* was: 50; (BG) */ + shipvals[FRIGATE].s_fueldam = 40; /* was: 72; (BG) */ + } + else + { + shipvals[FRIGATE].s_expldam = 100; + shipvals[FRIGATE].s_fueldam = 0; + } + shipvals[FRIGATE].s_armyperkill = 2; +#ifndef OLDSHIPVALS + shipvals[FRIGATE].s_maxarmies = 6; +#else + shipvals[FRIGATE].s_maxarmies = 8; +#endif + shipvals[FRIGATE].s_bomb = 15; + shipvals[FRIGATE].s_repair = 118; + shipvals[FRIGATE].s_maxdamage = 115; + shipvals[FRIGATE].s_maxshield = 115; + shipvals[FRIGATE].s_shieldcost = 5; + shipvals[FRIGATE].s_detcost = 100; + shipvals[FRIGATE].s_detdist = 1750; + if (configvals->bronco_shipvals) + shipvals[FRIGATE].s_cloakcost = 140; + else + shipvals[FRIGATE].s_cloakcost = 125; +#ifdef LONG_SCANRANGE + shipvals[FRIGATE].s_scanrange = 1000; +#else + shipvals[FRIGATE].s_scanrange = -1; +#endif + shipvals[FRIGATE].s_numports = 0; + shipvals[FRIGATE].s_letter = 'f'; + shipvals[FRIGATE].s_desig1 = 'F'; + shipvals[FRIGATE].s_desig2 = 'R'; + shipvals[FRIGATE].s_bitmap = 8; + shipvals[FRIGATE].s_width = 20; + shipvals[FRIGATE].s_height = 20; + shipvals[FRIGATE].s_timer = 0; + shipvals[FRIGATE].s_maxnum = 32; + shipvals[FRIGATE].s_rank = 0; + shipvals[FRIGATE].s_numdefn = 0; + shipvals[FRIGATE].s_numplan = 0; + if (configvals->warpdrive) + shipvals[FRIGATE].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[FRIGATE].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + /* comprehensive definition of WARBASE */ + shipvals[WARBASE].s_alttype = 5; + strcpy(shipvals[WARBASE].s_name, "Warbase"); + shipvals[WARBASE].s_turns = 90000; + shipvals[WARBASE].s_imp.acc = 100; + shipvals[WARBASE].s_imp.dec = 200; + shipvals[WARBASE].s_imp.cost = 4; +#ifdef BEEFY_BASES + shipvals[WARBASE].s_imp.maxspeed = 3; +#else + shipvals[WARBASE].s_imp.maxspeed = 2; +#endif + shipvals[WARBASE].s_imp.etemp = 1000; + shipvals[WARBASE].s_after.acc = 250; + shipvals[WARBASE].s_after.dec = 100; + shipvals[WARBASE].s_after.cost = 40; + shipvals[WARBASE].s_after.maxspeed = 5; + shipvals[WARBASE].s_after.etemp = 30000; + shipvals[WARBASE].s_warp.acc = 80; + shipvals[WARBASE].s_warp.dec = 80; + shipvals[WARBASE].s_warp.cost = 6; + if (configvals->bronco_shipvals) + { + shipvals[WARBASE].s_warp.maxspeed = 4; + shipvals[WARBASE].s_warpprepspeed = 1; + } + else + { + shipvals[WARBASE].s_warp.maxspeed = 6; + shipvals[WARBASE].s_warpprepspeed = 2; + } + shipvals[WARBASE].s_warp.etemp = 1500; + shipvals[WARBASE].s_warpinitcost = 9090; + shipvals[WARBASE].s_warpinittime = 100; + shipvals[WARBASE].s_mass = 4000; + shipvals[WARBASE].s_tractstr = 8000; + shipvals[WARBASE].s_tractrng = 1.5; + shipvals[WARBASE].s_tractcost = 10; + shipvals[WARBASE].s_tractetemp = 3000; + shipvals[WARBASE].s_torp.damage = 45; + shipvals[WARBASE].s_torp.speed = 15; + shipvals[WARBASE].s_torp.cost = 450; +#ifndef OLDSHIPVALS + shipvals[WARBASE].s_torp.fuse = 20; +#else + shipvals[WARBASE].s_torp.fuse = 18; +#endif + shipvals[WARBASE].s_torp.wtemp = 35; + shipvals[WARBASE].s_torp.wtemp_halfarc = 32; + shipvals[WARBASE].s_torp.wtemp_factor = 9; + shipvals[WARBASE].s_torp.aux = 0; +#ifndef OLDSHIPVALS + shipvals[WARBASE].s_phaser.damage = 125; + shipvals[WARBASE].s_phaser.speed = 7500; + shipvals[WARBASE].s_phaser.cost = 1000; +#else + shipvals[WARBASE].s_phaser.damage = 135; + shipvals[WARBASE].s_phaser.speed = 6000; + shipvals[WARBASE].s_phaser.cost = 1150; +#endif + shipvals[WARBASE].s_phaser.fuse = 5; + shipvals[WARBASE].s_phaser.wtemp = 90; + shipvals[WARBASE].s_missile.damage = 40; + shipvals[WARBASE].s_missile.speed = 14; + shipvals[WARBASE].s_missile.cost = 2000; + shipvals[WARBASE].s_missile.fuse = 100; + shipvals[WARBASE].s_missile.wtemp = 120; + shipvals[WARBASE].s_missile.count = 3; + shipvals[WARBASE].s_missile.aux = 2; + shipvals[WARBASE].s_missilestored = -1; + shipvals[WARBASE].s_plasma.damage = 150; + shipvals[WARBASE].s_plasma.speed = 15; + shipvals[WARBASE].s_plasma.cost = 3750; + shipvals[WARBASE].s_plasma.fuse = 40; + shipvals[WARBASE].s_plasma.wtemp = 360; + shipvals[WARBASE].s_plasma.aux = 1; + shipvals[WARBASE].s_maxwpntemp = 1500; + shipvals[WARBASE].s_wpncoolrate = 5; + shipvals[WARBASE].s_maxegntemp = 1000; + shipvals[WARBASE].s_egncoolrate = 10; + shipvals[WARBASE].s_maxfuel = 50000; + if (configvals->bronco_shipvals) + shipvals[WARBASE].s_recharge = 70; + else + shipvals[WARBASE].s_recharge = 80; + shipvals[WARBASE].s_mingivefuel = 10000; + shipvals[WARBASE].s_takeonfuel = 150; + shipvals[WARBASE].s_expldam = 100; + shipvals[WARBASE].s_fueldam = 100; + shipvals[WARBASE].s_armyperkill = 0; + shipvals[WARBASE].s_maxarmies = 0; + shipvals[WARBASE].s_bomb = 90; + shipvals[WARBASE].s_repair = 170; /* was: 150; (BG) */ + shipvals[WARBASE].s_maxdamage = 500; + shipvals[WARBASE].s_maxshield = 250; + shipvals[WARBASE].s_shieldcost = 10; + shipvals[WARBASE].s_detcost = 100; + shipvals[WARBASE].s_detdist = 1800; + shipvals[WARBASE].s_cloakcost = 1000; + shipvals[WARBASE].s_scanrange = 5000; + shipvals[WARBASE].s_numports = 2; + shipvals[WARBASE].s_letter = 'w'; + shipvals[WARBASE].s_desig1 = 'W'; + shipvals[WARBASE].s_desig2 = 'B'; + shipvals[WARBASE].s_bitmap = 9; + shipvals[WARBASE].s_width = 20; + shipvals[WARBASE].s_height = 20; + shipvals[WARBASE].s_timer = 15; + shipvals[WARBASE].s_maxnum = 1; + shipvals[WARBASE].s_rank = 3; + shipvals[WARBASE].s_numdefn = 3; + shipvals[WARBASE].s_numplan = 3; + if (configvals->warpdrive) + shipvals[WARBASE].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNCANFUEL | SFNCANREPAIR | SFNHASPHASERS | SFNPLASMASTYLE | SFNPLASMAARMED | SFNHASMISSILE; + else + shipvals[WARBASE].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANFUEL | SFNCANREPAIR | SFNHASPHASERS | SFNPLASMASTYLE | SFNPLASMAARMED | SFNHASMISSILE; + + /* comprehensive definition of LIGHTCRUISER */ + shipvals[LIGHTCRUISER].s_alttype = 2; + strcpy(shipvals[LIGHTCRUISER].s_name, "Light"); + shipvals[LIGHTCRUISER].s_turns = 220000; /* was 225000 */ + shipvals[LIGHTCRUISER].s_imp.acc = 190; + shipvals[LIGHTCRUISER].s_imp.dec = 250; + shipvals[LIGHTCRUISER].s_imp.cost = 3; + shipvals[LIGHTCRUISER].s_imp.maxspeed = 10; + shipvals[LIGHTCRUISER].s_imp.etemp = 1000; + shipvals[LIGHTCRUISER].s_after.acc = 720; + shipvals[LIGHTCRUISER].s_after.dec = 280; + shipvals[LIGHTCRUISER].s_after.cost = 80; + shipvals[LIGHTCRUISER].s_after.maxspeed = 12; + shipvals[LIGHTCRUISER].s_after.etemp = 35000; + shipvals[LIGHTCRUISER].s_warp.acc = 10000; + shipvals[LIGHTCRUISER].s_warp.dec = 400; + shipvals[LIGHTCRUISER].s_warp.cost = 24; + if (configvals->bronco_shipvals) + { + shipvals[LIGHTCRUISER].s_warp.maxspeed = 16; + shipvals[LIGHTCRUISER].s_warpprepspeed = 1; + } + else + { + shipvals[LIGHTCRUISER].s_warp.maxspeed = 27; /* was: 24; (BG) */ + shipvals[LIGHTCRUISER].s_warpprepspeed = 2; + } + shipvals[LIGHTCRUISER].s_warp.etemp = 7000; + shipvals[LIGHTCRUISER].s_warpinitcost = 1550; + shipvals[LIGHTCRUISER].s_warpinittime = 45; + shipvals[LIGHTCRUISER].s_mass = 1900; + shipvals[LIGHTCRUISER].s_tractstr = 2700; + shipvals[LIGHTCRUISER].s_tractrng = 0.9; + shipvals[LIGHTCRUISER].s_tractcost = 3; + shipvals[LIGHTCRUISER].s_tractetemp = 1000; + shipvals[LIGHTCRUISER].s_torp.damage = 35; + shipvals[LIGHTCRUISER].s_torp.speed = 13; +#ifndef OLDSHIPVALS + shipvals[LIGHTCRUISER].s_torp.cost = 245; +#else + shipvals[LIGHTCRUISER].s_torp.cost = 240; +#endif + shipvals[LIGHTCRUISER].s_torp.fuse = 35; + shipvals[LIGHTCRUISER].s_torp.wtemp = 16; + shipvals[LIGHTCRUISER].s_torp.wtemp_halfarc = 32; + shipvals[LIGHTCRUISER].s_torp.wtemp_factor = 9; + shipvals[LIGHTCRUISER].s_torp.aux = 0; + shipvals[LIGHTCRUISER].s_phaser.damage = 90; +#ifndef OLDSHIPVALS + shipvals[LIGHTCRUISER].s_phaser.speed = 5400; + shipvals[LIGHTCRUISER].s_phaser.cost = 630; +#else + shipvals[LIGHTCRUISER].s_phaser.speed = 5000; + shipvals[LIGHTCRUISER].s_phaser.cost = 600; +#endif + shipvals[LIGHTCRUISER].s_phaser.fuse = 10; + shipvals[LIGHTCRUISER].s_phaser.wtemp = 60; + shipvals[LIGHTCRUISER].s_missile.damage = 22; + shipvals[LIGHTCRUISER].s_missile.speed = 7; + shipvals[LIGHTCRUISER].s_missile.cost = 800; + shipvals[LIGHTCRUISER].s_missile.fuse = 100; + shipvals[LIGHTCRUISER].s_missile.wtemp = 100; + shipvals[LIGHTCRUISER].s_missile.count = 3; + shipvals[LIGHTCRUISER].s_missile.aux = 2; + shipvals[LIGHTCRUISER].s_missilestored = 9; + shipvals[LIGHTCRUISER].s_plasma.damage = 90; + shipvals[LIGHTCRUISER].s_plasma.speed = 15; + shipvals[LIGHTCRUISER].s_plasma.cost = 2500; + shipvals[LIGHTCRUISER].s_plasma.fuse = 30; + shipvals[LIGHTCRUISER].s_plasma.wtemp = 242; + shipvals[LIGHTCRUISER].s_plasma.aux = 1; + shipvals[LIGHTCRUISER].s_maxwpntemp = 1000; + shipvals[LIGHTCRUISER].s_wpncoolrate = 3; + shipvals[LIGHTCRUISER].s_maxegntemp = 1500; + shipvals[LIGHTCRUISER].s_egncoolrate = 6; + shipvals[LIGHTCRUISER].s_maxfuel = 8500; + shipvals[LIGHTCRUISER].s_recharge = 23; + shipvals[LIGHTCRUISER].s_mingivefuel = 0; + shipvals[LIGHTCRUISER].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[LIGHTCRUISER].s_expldam = 67; /* was: 50; (BG) */ + shipvals[LIGHTCRUISER].s_fueldam = 45; /* was: 58; (BG) */ + } + else + { + shipvals[LIGHTCRUISER].s_expldam = 100; + shipvals[LIGHTCRUISER].s_fueldam = 0; + } + shipvals[LIGHTCRUISER].s_armyperkill = 2; + shipvals[LIGHTCRUISER].s_maxarmies = 3; /* was 4 */ + shipvals[LIGHTCRUISER].s_bomb = 6; + shipvals[LIGHTCRUISER].s_repair = 80; /* was 90 */ + shipvals[LIGHTCRUISER].s_maxdamage = 90; + shipvals[LIGHTCRUISER].s_maxshield = 95; + shipvals[LIGHTCRUISER].s_shieldcost = 4; + shipvals[LIGHTCRUISER].s_detcost = 100; + shipvals[LIGHTCRUISER].s_detdist = 1750; + if (configvals->bronco_shipvals) + shipvals[LIGHTCRUISER].s_cloakcost = 115; + else + shipvals[LIGHTCRUISER].s_cloakcost = 75; +#ifdef LONG_SCANRANGE + shipvals[LIGHTCRUISER].s_scanrange = 1000; +#else + shipvals[LIGHTCRUISER].s_scanrange = 500; +#endif + shipvals[LIGHTCRUISER].s_numports = 0; + shipvals[LIGHTCRUISER].s_letter = 'l'; + shipvals[LIGHTCRUISER].s_desig1 = 'C'; + shipvals[LIGHTCRUISER].s_desig2 = 'L'; + shipvals[LIGHTCRUISER].s_bitmap = 10; + shipvals[LIGHTCRUISER].s_width = 20; + shipvals[LIGHTCRUISER].s_height = 20; + shipvals[LIGHTCRUISER].s_timer = 0; + shipvals[LIGHTCRUISER].s_maxnum = 32; + shipvals[LIGHTCRUISER].s_rank = 0; + shipvals[LIGHTCRUISER].s_numdefn = 0; + shipvals[LIGHTCRUISER].s_numplan = 0; + if (configvals->warpdrive) + shipvals[LIGHTCRUISER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNCANWARP | SFNHASPHASERS; + else + shipvals[LIGHTCRUISER].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS; + + /* comprehensive definition of CARRIER */ + shipvals[CARRIER].s_alttype = 3; + strcpy(shipvals[CARRIER].s_name, "Carrier"); + shipvals[CARRIER].s_turns = 60000; + shipvals[CARRIER].s_imp.acc = 100; + shipvals[CARRIER].s_imp.dec = 200; + shipvals[CARRIER].s_imp.cost = 4; + shipvals[CARRIER].s_imp.maxspeed = 9; + shipvals[CARRIER].s_imp.etemp = 1000; + shipvals[CARRIER].s_after.acc = 500; + shipvals[CARRIER].s_after.dec = 250; + shipvals[CARRIER].s_after.cost = 100; + shipvals[CARRIER].s_after.maxspeed = 11; + shipvals[CARRIER].s_after.etemp = 50000; + shipvals[CARRIER].s_warp.acc = 10000; + shipvals[CARRIER].s_warp.dec = 300; + shipvals[CARRIER].s_warp.cost = 28; + if (configvals->bronco_shipvals) + { + shipvals[CARRIER].s_warp.maxspeed = 14; + shipvals[CARRIER].s_warpprepspeed = 0; + } + else + { + shipvals[CARRIER].s_warp.maxspeed = 25; /* was: 20; (BG) */ + shipvals[CARRIER].s_warpprepspeed = 1; + } + shipvals[CARRIER].s_warp.etemp = 7000; + shipvals[CARRIER].s_warpinitcost = 2800; + shipvals[CARRIER].s_warpinittime = 75; + shipvals[CARRIER].s_mass = 2500; + shipvals[CARRIER].s_tractstr = 4000; /* was 3200 (MDM) */ + shipvals[CARRIER].s_tractrng = 1.3; /* was 1.1 (MDM) */ + shipvals[CARRIER].s_tractcost = 5; + shipvals[CARRIER].s_tractetemp = 1000; + shipvals[CARRIER].s_torp.damage = 30; /* these are the CVs own torps */ + shipvals[CARRIER].s_torp.speed = 13; /* fighter-torps are now constant */ + shipvals[CARRIER].s_torp.cost = 210; /* still used when fighters fire! */ + shipvals[CARRIER].s_torp.fuse = 35; + shipvals[CARRIER].s_torp.wtemp = 20; /* still used when fighters fire! */ + shipvals[CARRIER].s_torp.wtemp_halfarc = 32; + shipvals[CARRIER].s_torp.wtemp_factor = 9; + shipvals[CARRIER].s_torp.aux = 0; + shipvals[CARRIER].s_phaser.damage = 95; + shipvals[CARRIER].s_phaser.speed = 6500; + shipvals[CARRIER].s_phaser.cost = 570; + shipvals[CARRIER].s_phaser.fuse = 6; + shipvals[CARRIER].s_phaser.wtemp = 45; + shipvals[CARRIER].s_missile.damage = 20; + shipvals[CARRIER].s_missile.speed = 14; + shipvals[CARRIER].s_missile.cost = 380; /* no longer includes + * torpcost */ + shipvals[CARRIER].s_missile.fuse = 300; + shipvals[CARRIER].s_missile.wtemp = 35; /* no longer includes torp + * wtemp */ + shipvals[CARRIER].s_missile.count = 8; + shipvals[CARRIER].s_missile.aux = 3; + shipvals[CARRIER].s_missilestored = 0; + shipvals[CARRIER].s_plasma.damage = 80; + shipvals[CARRIER].s_plasma.speed = 15; + shipvals[CARRIER].s_plasma.cost = 3000; + shipvals[CARRIER].s_plasma.fuse = 35; + shipvals[CARRIER].s_plasma.wtemp = 270; + shipvals[CARRIER].s_plasma.aux = 2; + shipvals[CARRIER].s_maxwpntemp = 1000; + shipvals[CARRIER].s_wpncoolrate = 2; + shipvals[CARRIER].s_maxegntemp = 1500; + shipvals[CARRIER].s_egncoolrate = 5; + shipvals[CARRIER].s_maxfuel = 15000; + shipvals[CARRIER].s_recharge = 25; + shipvals[CARRIER].s_mingivefuel = 0; + shipvals[CARRIER].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[CARRIER].s_expldam = 80; /* was: 55; (BG) */ + shipvals[CARRIER].s_fueldam = 70; /* was: 80; (BG) */ + } + else + { + shipvals[CARRIER].s_expldam = 100; + shipvals[CARRIER].s_fueldam = 0; + } + shipvals[CARRIER].s_armyperkill = 25; + shipvals[CARRIER].s_maxarmies = 3; + shipvals[CARRIER].s_bomb = 20; + shipvals[CARRIER].s_repair = 105; + shipvals[CARRIER].s_maxdamage = 150; + shipvals[CARRIER].s_maxshield = 120; + shipvals[CARRIER].s_shieldcost = 5; + shipvals[CARRIER].s_detcost = 50; + shipvals[CARRIER].s_detdist = 1900; + if (configvals->bronco_shipvals) + shipvals[CARRIER].s_cloakcost = 135; + else + shipvals[CARRIER].s_cloakcost = 100; +#ifdef LONG_SCANRANGE + shipvals[CARRIER].s_scanrange = 1000; +#else + shipvals[CARRIER].s_scanrange = -1; +#endif + shipvals[CARRIER].s_numports = 0; + shipvals[CARRIER].s_letter = 'v'; + shipvals[CARRIER].s_desig1 = 'C'; + shipvals[CARRIER].s_desig2 = 'V'; + shipvals[CARRIER].s_bitmap = 11; + shipvals[CARRIER].s_width = 20; + shipvals[CARRIER].s_height = 20; + shipvals[CARRIER].s_timer = 12; + shipvals[CARRIER].s_maxnum = 1; + shipvals[CARRIER].s_rank = 3; + shipvals[CARRIER].s_numdefn = 5; + shipvals[CARRIER].s_numplan = 3; + if (configvals->warpdrive) + shipvals[CARRIER].s_nflags = SFNCANWARP | SFNHASPHASERS | SFNHASMISSILE | SFNHASFIGHTERS; + else + shipvals[CARRIER].s_nflags = SFNHASPHASERS | SFNHASMISSILE | SFNHASFIGHTERS; + + /* comprehensive definition of UTILITY */ + shipvals[UTILITY].s_alttype = 4; + strcpy(shipvals[UTILITY].s_name, "Utility"); + shipvals[UTILITY].s_turns = 80000; + shipvals[UTILITY].s_imp.acc = 100; + shipvals[UTILITY].s_imp.dec = 200; + shipvals[UTILITY].s_imp.cost = 4; + shipvals[UTILITY].s_imp.maxspeed = 7; + shipvals[UTILITY].s_imp.etemp = 1000; + shipvals[UTILITY].s_after.acc = 500; + shipvals[UTILITY].s_after.dec = 250; + shipvals[UTILITY].s_after.cost = 40; + shipvals[UTILITY].s_after.maxspeed = 8; + shipvals[UTILITY].s_after.etemp = 40000; + shipvals[UTILITY].s_warp.acc = 10000; + shipvals[UTILITY].s_warp.dec = 5000; + shipvals[UTILITY].s_warp.cost = 20; + if (configvals->bronco_shipvals) + { + shipvals[UTILITY].s_warp.maxspeed = 10; + shipvals[UTILITY].s_warpprepspeed = 0; + } + else + { + shipvals[UTILITY].s_warp.maxspeed = 20; /* was: 15; (BG) */ + shipvals[UTILITY].s_warpprepspeed = 1; + } + shipvals[UTILITY].s_warp.etemp = 5500; + shipvals[UTILITY].s_warpinitcost = 1200; + shipvals[UTILITY].s_warpinittime = 50; + shipvals[UTILITY].s_mass = 2400; + shipvals[UTILITY].s_tractstr = 3500; + shipvals[UTILITY].s_tractrng = 1.1; + shipvals[UTILITY].s_tractcost = 4; + shipvals[UTILITY].s_tractetemp = 1000; + shipvals[UTILITY].s_torp.damage = 20; + shipvals[UTILITY].s_torp.speed = 15; + shipvals[UTILITY].s_torp.cost = 250; + shipvals[UTILITY].s_torp.fuse = 25; + shipvals[UTILITY].s_torp.wtemp = 18; + shipvals[UTILITY].s_torp.wtemp_halfarc = 16; + shipvals[UTILITY].s_torp.wtemp_factor = 4; + shipvals[UTILITY].s_torp.aux = 0; + shipvals[UTILITY].s_phaser.damage = 80; + shipvals[UTILITY].s_phaser.speed = 5600; + shipvals[UTILITY].s_phaser.cost = 640; + shipvals[UTILITY].s_phaser.fuse = 8; + shipvals[UTILITY].s_phaser.wtemp = 85; + shipvals[UTILITY].s_missile.damage = 30; + shipvals[UTILITY].s_missile.speed = 8; + shipvals[UTILITY].s_missile.cost = 800; + shipvals[UTILITY].s_missile.fuse = 80; + shipvals[UTILITY].s_missile.wtemp = 60; + shipvals[UTILITY].s_missile.count = 3; + shipvals[UTILITY].s_missile.aux = 2; + shipvals[UTILITY].s_missilestored = 18; + shipvals[UTILITY].s_plasma.damage = -1; + shipvals[UTILITY].s_plasma.speed = 0; + shipvals[UTILITY].s_plasma.cost = 0; + shipvals[UTILITY].s_plasma.fuse = 0; + shipvals[UTILITY].s_plasma.wtemp = 0; + shipvals[UTILITY].s_plasma.aux = 0; + shipvals[UTILITY].s_maxwpntemp = 1000; + shipvals[UTILITY].s_wpncoolrate = 2; + shipvals[UTILITY].s_maxegntemp = 1800; + shipvals[UTILITY].s_egncoolrate = 5; + shipvals[UTILITY].s_maxfuel = 16000; + shipvals[UTILITY].s_recharge = 38; + shipvals[UTILITY].s_mingivefuel = 4000; + shipvals[UTILITY].s_takeonfuel = 150; + if (configvals->fuel_explosions) + { + shipvals[UTILITY].s_expldam = 60; + shipvals[UTILITY].s_fueldam = 80; + } + else + { + shipvals[UTILITY].s_expldam = 100; + shipvals[UTILITY].s_fueldam = 0; + } + shipvals[UTILITY].s_armyperkill = 12; + shipvals[UTILITY].s_maxarmies = 12; + shipvals[UTILITY].s_bomb = 0; + shipvals[UTILITY].s_repair = 120; + shipvals[UTILITY].s_maxdamage = 220; + shipvals[UTILITY].s_maxshield = 120; + shipvals[UTILITY].s_shieldcost = 4; + shipvals[UTILITY].s_detcost = 50; + shipvals[UTILITY].s_detdist = 1900; + if (configvals->bronco_shipvals) + shipvals[UTILITY].s_cloakcost = 180; + else + shipvals[UTILITY].s_cloakcost = 130; /* was 90 (MDM) */ + shipvals[UTILITY].s_scanrange = 2000; + shipvals[UTILITY].s_numports = 2; + shipvals[UTILITY].s_letter = 'u'; + shipvals[UTILITY].s_desig1 = 'U'; + shipvals[UTILITY].s_desig2 = 'T'; + shipvals[UTILITY].s_bitmap = 12; + shipvals[UTILITY].s_width = 20; + shipvals[UTILITY].s_height = 20; + shipvals[UTILITY].s_timer = 7; + shipvals[UTILITY].s_maxnum = 1; + shipvals[UTILITY].s_rank = 2; + shipvals[UTILITY].s_numdefn = 2; + shipvals[UTILITY].s_numplan = 1; + if (configvals->warpdrive) + shipvals[UTILITY].s_nflags = SFNCANWARP | SFNHASPHASERS | SFNCANREPAIR | SFNCANFUEL; + else + shipvals[UTILITY].s_nflags = SFNHASPHASERS | SFNCANREPAIR | SFNCANFUEL; + + /* Comprehensive definition of Gunboat */ + shipvals[PATROL].s_alttype = 0; + strcpy(shipvals[PATROL].s_name, "Patrol Ship"); + shipvals[PATROL].s_turns = 1500000; + shipvals[PATROL].s_imp.acc = 350; + shipvals[PATROL].s_imp.dec = 400; + shipvals[PATROL].s_imp.cost = 1; + shipvals[PATROL].s_imp.maxspeed = 13; + shipvals[PATROL].s_imp.etemp = 1000; + shipvals[PATROL].s_after.acc = 800; + shipvals[PATROL].s_after.dec = 350; + shipvals[PATROL].s_after.cost = 18; + shipvals[PATROL].s_after.maxspeed = 15; + shipvals[PATROL].s_after.etemp = 30000; + shipvals[PATROL].s_warp.acc = 10000; + shipvals[PATROL].s_warp.dec = 500; + if (configvals->bronco_shipvals) + { + shipvals[PATROL].s_warp.maxspeed = 21; + shipvals[PATROL].s_warpprepspeed = 2; + } + else + { + shipvals[PATROL].s_warp.maxspeed = 35; /* was: 30; (BG) */ + shipvals[PATROL].s_warpprepspeed = 3; + } + shipvals[PATROL].s_warp.cost = 22; + shipvals[PATROL].s_warp.etemp = 35000; + shipvals[PATROL].s_warpinitcost = 800; + shipvals[PATROL].s_warpinittime = 20; + shipvals[PATROL].s_mass = 1000; + shipvals[PATROL].s_tractstr = 1500; + shipvals[PATROL].s_tractrng = 0.75; + shipvals[PATROL].s_tractcost = 2; + shipvals[PATROL].s_tractetemp = 1000; + shipvals[PATROL].s_torp.damage = 30; + shipvals[PATROL].s_torp.speed = 15; + shipvals[PATROL].s_torp.cost = 180; + shipvals[PATROL].s_torp.fuse = 18; + shipvals[PATROL].s_torp.wtemp = 10; + shipvals[PATROL].s_torp.wtemp_halfarc = 32; + shipvals[PATROL].s_torp.wtemp_factor = 9; + shipvals[PATROL].s_torp.aux = 0; + shipvals[PATROL].s_phaser.damage = 50; + shipvals[PATROL].s_phaser.speed = 5000; + shipvals[PATROL].s_phaser.cost = 300; + shipvals[PATROL].s_phaser.fuse = 8; + shipvals[PATROL].s_phaser.wtemp = 45; + shipvals[PATROL].s_missile.damage = 50; + shipvals[PATROL].s_missile.speed = 17; + shipvals[PATROL].s_missile.cost = 450; + shipvals[PATROL].s_missile.fuse = 50; + shipvals[PATROL].s_missile.wtemp = 50; + shipvals[PATROL].s_missile.count = 6; + shipvals[PATROL].s_missile.aux = 1; + shipvals[PATROL].s_missilestored = 6; + shipvals[PATROL].s_plasma.damage = -1; + shipvals[PATROL].s_plasma.speed = 0; + shipvals[PATROL].s_plasma.cost = 0; + shipvals[PATROL].s_plasma.fuse = 0; + shipvals[PATROL].s_plasma.wtemp = 0; + shipvals[PATROL].s_plasma.aux = 0; + shipvals[PATROL].s_maxwpntemp = 1000; + shipvals[PATROL].s_wpncoolrate = 3; + shipvals[PATROL].s_maxegntemp = 1500; + shipvals[PATROL].s_egncoolrate = 8; + shipvals[PATROL].s_maxfuel = 4000; + shipvals[PATROL].s_recharge = 10; + shipvals[PATROL].s_mingivefuel = 0; + shipvals[PATROL].s_takeonfuel = 120; + if (configvals->fuel_explosions) + { + shipvals[PATROL].s_expldam = 35; + shipvals[PATROL].s_fueldam = 30; + } + else + { + shipvals[PATROL].s_expldam = 60; + shipvals[PATROL].s_fueldam = 0; + } + shipvals[PATROL].s_armyperkill = 1; + shipvals[PATROL].s_maxarmies = 1; + shipvals[PATROL].s_bomb = 0; + shipvals[PATROL].s_repair = 50; + shipvals[PATROL].s_maxdamage = 40; + shipvals[PATROL].s_maxshield = 50; + shipvals[PATROL].s_shieldcost = 2; + shipvals[PATROL].s_detcost = 100; + shipvals[PATROL].s_detdist = 1750; + if (configvals->bronco_shipvals) + shipvals[PATROL].s_cloakcost = 40; + else + shipvals[PATROL].s_cloakcost = 30; + shipvals[PATROL].s_scanrange = -1; + shipvals[PATROL].s_numports = 0; + shipvals[PATROL].s_letter = 'p'; + shipvals[PATROL].s_desig1 = 'P'; + shipvals[PATROL].s_desig2 = 'T'; + shipvals[PATROL].s_bitmap = 13; + shipvals[PATROL].s_width = 20; + shipvals[PATROL].s_height = 20; + shipvals[PATROL].s_timer = 0; + shipvals[PATROL].s_maxnum = 32; + shipvals[PATROL].s_rank = 0; + shipvals[PATROL].s_numdefn = 0; + shipvals[PATROL].s_numplan = 0; /* 1; was 1 but everybody bitched + * (BG) */ + if (configvals->warpdrive) + shipvals[PATROL].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS | SFNHASMISSILE | SFNMASSPRODUCED | SFNCANWARP; + else + shipvals[PATROL].s_nflags = SFNCANORBIT | SFNARMYNEEDKILL | SFNHASPHASERS | SFNHASMISSILE | SFNMASSPRODUCED; +} + +/*----------END OF FILE-----*/