/*============================================================================= Name : P1StandardCorvette.c Purpose : Specifics for the P1StandardCorvette Created 5/06/1998 by ddunlop Copyright Relic Entertainment, Inc. All rights reserved. =============================================================================*/ #include #include "types.h" #include "debug.h" #include "spaceobj.h" #include "P1StandardCorvette.h" #include "statscript.h" #include "gun.h" #include "attack.h" #include "DefaultShip.h" typedef struct { AttackSideStepParameters sidestepParameters; } P1StandardCorvetteStatics; P1StandardCorvetteStatics P1StandardCorvetteStatic; void P1StandardCorvetteStaticInit(char *directory,char *filename,struct ShipStaticInfo *statinfo) { P1StandardCorvetteStatics *corvstat = &P1StandardCorvetteStatic; memset(corvstat,sizeof(*corvstat),0); scriptSetStruct(directory,filename,AttackSideStepParametersScriptTable,(ubyte *)&corvstat->sidestepParameters); statinfo->custstatinfo = corvstat; } void P1StandardCorvetteInit(Ship *ship) { P1StandardCorvetteSpec *spec = (P1StandardCorvetteSpec *)ship->ShipSpecifics; attackSideStepInit(&spec->attacksidestep); } void P1StandardCorvetteAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { P1StandardCorvetteSpec *spec = (P1StandardCorvetteSpec *)ship->ShipSpecifics; P1StandardCorvetteStatics *corvstat = (P1StandardCorvetteStatics *)((ShipStaticInfo *)ship->staticinfo)->custstatinfo; attackSideStep(ship,target,&spec->attacksidestep,&corvstat->sidestepParameters); } void P1StandardCorvetteAttackPassive(Ship *ship,Ship *target,bool rotate) { if ((rotate) & ((bool)((ShipStaticInfo *)(ship->staticinfo))->rotateToRetaliate)) { attackPassiveRotate(ship,target); } else { attackPassive(ship,target); } } CustShipHeader P1StandardCorvetteHeader = { P1StandardCorvette, sizeof(P1StandardCorvetteSpec), P1StandardCorvetteStaticInit, NULL, P1StandardCorvetteInit, NULL, P1StandardCorvetteAttack, DefaultShipFire, P1StandardCorvetteAttackPassive, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };