/*============================================================================= Name : SalCapCorvette.h Purpose : Definitions for Salvage Capture Corvette Created 11/5/1997 by khent Copyright Relic Entertainment, Inc. All rights reserved. =============================================================================*/ #ifndef ___SAL_CAP_CORVETTE_H #define ___SAL_CAP_CORVETTE_H #include "types.h" #include "spaceobj.h" #include "attack.h" #include "shipselect.h" /*============================================================================= Types: =============================================================================*/ typedef struct { AttackSideStep attacksidestep; sdword salvageState; //sal/cap corv aistate for salvaging SpaceObjRotImpTargGuidanceShipDerelict *target; Ship *dockwith; sdword dockindex; sdword salvageIndex; sdword salvageAttributes; real32 timeCounter; real32 getTechTime; sdword tractorBeam; sdword noAvoid; real32 noDamageTargetTime; sdword groupme; SpaceObjRotImpTargGuidanceShipDerelict *noDamageTarget; } SalCapCorvetteSpec; typedef struct { AttackSideStepParameters sidestepParameters; real32 HealthThreshold; real32 healthRemovedPerSecond; real32 getTechTime; real32 flyToDistance; real32 maxPushingVelocitySingle; real32 noLightClampingDistance; } SalCapCorvetteStatics; SalCapCorvetteStatics SalCapCorvetteStatic; //Defs for Salvaging State... #define SALVAGE_AT_GET_TECH 0x01 #define SAL_WL_FLYTOCONEORIGIN 7 /*============================================================================= Public data: =============================================================================*/ extern CustShipHeader SalCapCorvetteHeader; extern CustShipHeader JunkYardDawgHeader; void SalCapCorvette_RegisterExtraSpaceObjs(Ship *ship); void SalCapOrderChangedCleanUp(Ship *ship); void salcapUpdateClampedShip(Ship *ship); void salCapRemoveDerelictReferences(Ship *ship,Derelict *d); void SalCapDropTarget(Ship *ship); void salCapHarvestTarget(SpaceObjRotImpTargGuidanceShipDerelict *target,Ship *dockwith); void salCapExtraSpecialOrderCleanUp(SelectCommand *selection,udword ordertype,Ship *dockwith,SelectCommand *targets); bool DropTargetInShip(Ship *dockwith,sdword *targetDepotState, SpaceObjRotImpTargGuidanceShipDerelict *target,sdword *dockindex); #if RND_VISUALIZATION void dockDrawSalvageInfo(SpaceObjRotImpTargGuidanceShipDerelict *obj); #endif void salCapCleanUpCloakingTarget(Ship *ship, Ship *shiptoremove); bool salCapAreEnoughSalvagersTargettingThisTarget(Ship *ship,SpaceObjRotImpTargGuidanceShipDerelict *target); void salCapClearTechBool(); bool isThereAnotherTargetForMe(Ship *ship,SelectAnyCommand *targets); sdword salCapNeedBig(Ship *ship,SpaceObjRotImpTargGuidanceShipDerelict *target); #endif //___SAL_CAP_CORVETTE_H