From 3c487c5cd69c53d6fea948643c0a76df03516605 Mon Sep 17 00:00:00 2001 From: Aki Date: Fri, 1 Apr 2022 21:23:39 +0200 Subject: Moved Stars45 to StarsEx --- Stars45/ShipDesign.h | 291 --------------------------------------------------- 1 file changed, 291 deletions(-) delete mode 100644 Stars45/ShipDesign.h (limited to 'Stars45/ShipDesign.h') diff --git a/Stars45/ShipDesign.h b/Stars45/ShipDesign.h deleted file mode 100644 index c0159b0..0000000 --- a/Stars45/ShipDesign.h +++ /dev/null @@ -1,291 +0,0 @@ -/* Starshatter: The Open Source Project - Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors - Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors - Copyright (c) 1997-2006, Destroyer Studios LLC. - - AUTHOR: John DiCamillo - - - OVERVIEW - ======== - Starship Design parameters class -*/ - -#ifndef ShipDesign_h -#define ShipDesign_h - -#include "Types.h" -#include "Bitmap.h" -#include "Geometry.h" -#include "Term.h" -#include "List.h" - -// +----------------------------------------------------------------------+ - -class ShipDesign; -class Model; -class Skin; -class PowerSource; -class Weapon; -class HardPoint; -class Computer; -class Drive; -class QuantumDrive; -class Farcaster; -class Thruster; -class Sensor; -class NavLight; -class NavSystem; -class Shield; -class FlightDeck; -class LandingGear; -class System; -class Sound; - -// +====================================================================+ - -class ShipLoad -{ -public: - static const char* TYPENAME() { return "ShipLoad"; } - - ShipLoad(); - - char name[64]; - int load[16]; - double mass; -}; - -class ShipSquadron -{ -public: - static const char* TYPENAME() { return "ShipSquadron"; } - - ShipSquadron(); - - char name[64]; - ShipDesign* design; - int count; - int avail; -}; - -class ShipExplosion -{ -public: - static const char* TYPENAME() { return "ShipExplosion"; } - - ShipExplosion() { ZeroMemory(this, sizeof(ShipExplosion)); } - - int type; - float time; - Vec3 loc; - bool final; -}; - -class ShipDebris -{ -public: - static const char* TYPENAME() { return "ShipDebris"; } - - ShipDebris() { ZeroMemory(this, sizeof(ShipDebris)); } - - Model* model; - int count; - int life; - Vec3 loc; - float mass; - float speed; - float drag; - int fire_type; - Vec3 fire_loc[5]; -}; - -// +====================================================================+ -// Used to share common information about ships of a single type. -// ShipDesign objects are loaded from a text file and stored in a -// static list (catalog) member for use by the Ship. - -class ShipDesign -{ -public: - static const char* TYPENAME() { return "ShipDesign"; } - - enum CONSTANTS { - MAX_DEBRIS = 10, - MAX_EXPLOSIONS = 10 - }; - - ShipDesign(); - ShipDesign(const char* name, const char* path, const char* filename, bool secret=false); - ~ShipDesign(); - - // public interface: - static void Initialize(); - static void Close(); - static bool CheckName(const char* name); - static ShipDesign* Get(const char* design_name, const char* design_path=0); - static ShipDesign* FindModDesign(const char* design_name, const char* design_path=0); - static void ClearModCatalog(); - static int GetDesignList(int type, List& designs); // never destroy the design list! - - static int ClassForName(const char* name); - static const char* ClassName(int type); - - static int LoadCatalog(const char* path, const char* file, bool mod=false); - static void LoadSkins(const char* path, const char* archive=0); - static void PreloadCatalog(int index=-1); - static int StandardCatalogSize(); - - int operator == (const ShipDesign& s) const { return !strncmp(name, s.name, 31); } - - // Parser: - void ParseShip(TermDef* def); - - void ParsePower(TermStruct* val); - void ParseDrive(TermStruct* val); - void ParseQuantumDrive(TermStruct* val); - void ParseFarcaster(TermStruct* val); - void ParseThruster(TermStruct* val); - void ParseNavlight(TermStruct* val); - void ParseFlightDeck(TermStruct* val); - void ParseLandingGear(TermStruct* val); - void ParseWeapon(TermStruct* val); - void ParseHardPoint(TermStruct* val); - void ParseSensor(TermStruct* val); - void ParseNavsys(TermStruct* val); - void ParseComputer(TermStruct* val); - void ParseShield(TermStruct* val); - void ParseDeathSpiral(TermStruct* val); - void ParseExplosion(TermStruct* val, int index); - void ParseDebris(TermStruct* val, int index); - void ParseLoadout(TermStruct* val); - void ParseMap(TermStruct* val); - void ParseSquadron(TermStruct* val); - Skin* ParseSkin(TermStruct* val); - void ParseSkinMtl(TermStruct* val, Skin* skin); - - // general information: - const char* DisplayName() const; - - char filename[64]; - char path_name[64]; - char name[64]; - char display_name[64]; - char abrv[16]; - int type; - float scale; - int auto_roll; - bool valid; - bool secret; // don't display in editor - Text description; // background info for tactical reference - - // LOD representation: - int lod_levels; - List models[4]; - List offsets[4]; - float feature_size[4]; - List spin_rates; - - // player selectable skins: - List skins; - const Skin* FindSkin(const char* skin_name) const; - - // virtual cockpit: - Model* cockpit_model; - float cockpit_scale; - - // performance: - float vlimit; - float agility; - float air_factor; - float roll_rate; - float pitch_rate; - float yaw_rate; - float trans_x; - float trans_y; - float trans_z; - float turn_bank; - Vec3 chase_vec; - Vec3 bridge_vec; - Vec3 beauty_cam; - - float prep_time; - - // physical data: - float drag, roll_drag, pitch_drag, yaw_drag; - float arcade_drag; - float mass, integrity, radius; - - // aero data: - float CL, CD, stall; - - // weapons: - int primary; - int secondary; - - // drives: - int main_drive; - - // visibility: - float pcs; // passive sensor cross section - float acs; // active sensor cross section - float detet; // maximum detection range - float e_factor[3]; // pcs scaling by emcon setting - - // ai settings: - float avoid_time; - float avoid_fighter; - float avoid_strike; - float avoid_target; - float commit_range; - - // death spriral sequence: - float death_spiral_time; - float explosion_scale; - ShipExplosion explosion[MAX_EXPLOSIONS]; - ShipDebris debris[MAX_DEBRIS]; - - List reactors; - List weapons; - List hard_points; - List drives; - List computers; - List flight_decks; - List navlights; - QuantumDrive* quantum_drive; - Farcaster* farcaster; - Thruster* thruster; - Sensor* sensor; - NavSystem* navsys; - Shield* shield; - Model* shield_model; - Weapon* decoy; - Weapon* probe; - LandingGear* gear; - - float splash_radius; - float scuttle; - float repair_speed; - int repair_teams; - bool repair_auto; - bool repair_screen; - bool wep_screen; - - Text bolt_hit_sound; - Text beam_hit_sound; - - Sound* bolt_hit_sound_resource; - Sound* beam_hit_sound_resource; - - List loadouts; - List map_sprites; - List squadrons; - - Bitmap beauty; - Bitmap hud_icon; -}; - -// +--------------------------------------------------------------------+ - -#endif // ShipDesign_h - -- cgit v1.1