225 lines
No EOL
4 KiB
C
225 lines
No EOL
4 KiB
C
/*------------------- Patrick 15/10/95 ----------------------
|
|
Special Move data file:
|
|
Data is hard-coded at the moment.
|
|
-----------------------------------------------------------*/
|
|
#include "3dc.h"
|
|
#include "module.h"
|
|
|
|
#include "stratdef.h"
|
|
#include "gamedef.h"
|
|
|
|
#include "bh_types.h"
|
|
#include "pmove.h"
|
|
|
|
|
|
/*------------------- Patrick 23/10/95 ----------------------
|
|
Special Move control data
|
|
-----------------------------------------------------------*/
|
|
|
|
/* this special move rolls thro 360 degrees to the left, while firing */
|
|
static SMV_CONTROLPOINT SpecialMoveControlData0[] =
|
|
{
|
|
{ /* control point 0 */
|
|
{-2000,0,0},
|
|
{0,0,0},
|
|
0,
|
|
SMv_Flag_FirePrimaryWeapon|SMv_Flag_HitTheDeck,
|
|
},
|
|
{ /* control point 1: rotated thro' 360 */
|
|
{0,0,0},
|
|
{0,0,(-4096*2)},
|
|
ONE_FIXED,
|
|
SMv_Flag_HitTheDeck,
|
|
},
|
|
|
|
|
|
};
|
|
|
|
/* this special move rolls thro 360 degrees to the right, while firing */
|
|
static SMV_CONTROLPOINT SpecialMoveControlData1[] =
|
|
{
|
|
{ /* control point 0 */
|
|
{2000,0,0},
|
|
{0,0,0},
|
|
0,
|
|
SMv_Flag_FirePrimaryWeapon|SMv_Flag_HitTheDeck,
|
|
},
|
|
{ /* control point 1: rotated thro' 360 */
|
|
{0,0,0},
|
|
{0,0,(4096*2)},
|
|
ONE_FIXED,
|
|
0,
|
|
},
|
|
|
|
};
|
|
|
|
/* this special move does the shoulder roll */
|
|
static SMV_CONTROLPOINT SpecialMoveControlData2[] =
|
|
{
|
|
{ /* control point 0 */
|
|
{0,0,3000},
|
|
{0,0,0},
|
|
0,
|
|
SMv_Flag_HitTheDeck,
|
|
},
|
|
{ /* control point 1 : fall forward*/
|
|
{0,0,0},
|
|
{0,-1024,1024},
|
|
ONE_FIXED/3,
|
|
SMv_Flag_HitTheDeck,
|
|
},
|
|
{ /* control point 2 : pause */
|
|
{0,0,0},
|
|
{0,-1024,1024},
|
|
(ONE_FIXED/3 + ONE_FIXED/6),
|
|
SMv_Flag_FirePrimaryWeapon,
|
|
},
|
|
{ /* control point 3 : whip round*/
|
|
{0,0,0},
|
|
{0,-2048,0},
|
|
(ONE_FIXED/3 + ONE_FIXED/6 + ONE_FIXED/3),
|
|
0,
|
|
},
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
/*------------------- Patrick 23/10/95 ----------------------
|
|
Special move headers
|
|
-----------------------------------------------------------*/
|
|
|
|
SMV_HEADER SpecialMoveHeader0 =
|
|
{
|
|
SMvType_Marine,
|
|
2,
|
|
&SpecialMoveControlData0[0],
|
|
};
|
|
|
|
SMV_HEADER SpecialMoveHeader1 =
|
|
{
|
|
SMvType_Marine,
|
|
2,
|
|
&SpecialMoveControlData1[0],
|
|
|
|
};
|
|
SMV_HEADER SpecialMoveHeader2 =
|
|
{
|
|
SMvType_Marine,
|
|
4,
|
|
&SpecialMoveControlData2[0],
|
|
};
|
|
|
|
|
|
|
|
|
|
/*------------------- Patrick 30/10/95 ----------------------
|
|
INPUT COMBINATION SEQUENCE DATA
|
|
|
|
The first 2 are for roll left + shoulder roll
|
|
(which start with same combo).
|
|
-----------------------------------------------------------*/
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1G =
|
|
{
|
|
(INPUT_BITMASK_LEFT|INPUT_BITMASK_FIRE),
|
|
&SpecialMoveHeader0, /* roll left */
|
|
0,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1F =
|
|
{
|
|
(INPUT_BITMASK_BACKWARD|INPUT_BITMASK_FIRE),
|
|
&SpecialMoveHeader2, /* shoulder roll */
|
|
0,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1E =
|
|
{
|
|
(INPUT_BITMASK_LEFT|INPUT_BITMASK_FORWARD),
|
|
0,
|
|
&InSeq_1G,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1D =
|
|
{
|
|
(INPUT_BITMASK_BACKWARD|INPUT_BITMASK_LEFT),
|
|
0,
|
|
&InSeq_1F,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1C =
|
|
{
|
|
(INPUT_BITMASK_LEFT),
|
|
0,
|
|
&InSeq_1D,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1B =
|
|
{
|
|
(INPUT_BITMASK_FORWARD),
|
|
0,
|
|
&InSeq_1E,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_1A =
|
|
{
|
|
(INPUT_BITMASK_FORWARD|INPUT_BITMASK_LEFT),
|
|
0,
|
|
&InSeq_1B,
|
|
&InSeq_1C,
|
|
};
|
|
|
|
/*------------------- Patrick 30/10/95 ----------------------
|
|
And the next set are for roll right
|
|
-----------------------------------------------------------*/
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_2D =
|
|
{
|
|
(INPUT_BITMASK_RIGHT|INPUT_BITMASK_FIRE),
|
|
&SpecialMoveHeader1, /* roll right */
|
|
0,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_2C =
|
|
{
|
|
(INPUT_BITMASK_FORWARD|INPUT_BITMASK_RIGHT),
|
|
0,
|
|
&InSeq_2D,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_2B =
|
|
{
|
|
(INPUT_BITMASK_FORWARD),
|
|
0,
|
|
&InSeq_2C,
|
|
0,
|
|
};
|
|
|
|
static INPUT_SEQUENCE_NODE InSeq_2A =
|
|
{
|
|
(INPUT_BITMASK_FORWARD|INPUT_BITMASK_RIGHT),
|
|
0,
|
|
&InSeq_2B,
|
|
0,
|
|
};
|
|
|
|
/*------------------- Patrick 23/10/95 ----------------------
|
|
And the global array of sequence starters
|
|
-----------------------------------------------------------*/
|
|
|
|
INPUT_SEQUENCE_NODE *MarineInputSequences[] =
|
|
{
|
|
&InSeq_1A,
|
|
&InSeq_2A,
|
|
0, /* terminate list */
|
|
}; |