Import Aliens vs Predator - Gold (Build 116)
Source code release, imported from: https://www.gamefront.com/games/aliens-vs-predator-3/file/avp-gold-complete-source-code All text files were converted to Unix format.
This commit is contained in:
commit
218ca90543
572 changed files with 434587 additions and 0 deletions
201
3dc/win95/shpanim.h
Normal file
201
3dc/win95/shpanim.h
Normal file
|
@ -0,0 +1,201 @@
|
|||
#ifndef _shp_anim_h
|
||||
#define _shp_anim_h 1
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
extern "C" {
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Structures for animating shapes (not morphing)
|
||||
|
||||
I am using standard types to organise the
|
||||
sequences as an enum would force a complete
|
||||
recompile each time it changed
|
||||
|
||||
*/
|
||||
|
||||
typedef struct shapeanimationframe
|
||||
{
|
||||
|
||||
// Public variables
|
||||
|
||||
|
||||
|
||||
// Private variables
|
||||
|
||||
int * vertices;
|
||||
int * item_normals;
|
||||
|
||||
|
||||
} SHAPEANIMATIONFRAME;
|
||||
|
||||
|
||||
typedef struct shapeanimationsequence
|
||||
{
|
||||
|
||||
// Public variables
|
||||
|
||||
int radius;
|
||||
|
||||
int max_x;
|
||||
int max_y;
|
||||
int max_z;
|
||||
|
||||
int min_x;
|
||||
int min_y;
|
||||
int min_z;
|
||||
|
||||
|
||||
// Private variables
|
||||
|
||||
unsigned long num_frames;
|
||||
SHAPEANIMATIONFRAME * anim_frames;
|
||||
|
||||
// unsigned long num_interpolated_frames_per_frame;
|
||||
// 0 for none
|
||||
|
||||
int * vertex_normals;
|
||||
|
||||
} SHAPEANIMATIONSEQUENCE;
|
||||
|
||||
|
||||
typedef struct shapeanimationheader
|
||||
{
|
||||
|
||||
// Public variables
|
||||
|
||||
|
||||
// Private variables
|
||||
|
||||
unsigned long num_sequences;
|
||||
|
||||
SHAPEANIMATIONSEQUENCE * anim_sequences;
|
||||
|
||||
int num_shapes_using_this; //number of shapes sharing the same shapeanimationheader
|
||||
|
||||
} SHAPEANIMATIONHEADER;
|
||||
|
||||
|
||||
|
||||
typedef struct shapeanimationcontroldata
|
||||
{
|
||||
|
||||
// Public variables
|
||||
|
||||
// 16.16 fixed point
|
||||
unsigned long seconds_per_frame;
|
||||
// default is ONE_FIXED / 8
|
||||
|
||||
unsigned long sequence_no;
|
||||
// default is 0
|
||||
|
||||
// if you're not interested in setting a start and an end frame
|
||||
// then set the flag 'default_start_and_end_frames' below
|
||||
unsigned long start_frame;
|
||||
unsigned long end_frame;
|
||||
// no default values
|
||||
|
||||
unsigned long default_start_and_end_frames : 1;
|
||||
// default is on
|
||||
|
||||
unsigned long reversed : 1;
|
||||
// default is off
|
||||
|
||||
unsigned long stop_at_end : 1;
|
||||
// default is off
|
||||
|
||||
|
||||
|
||||
// Private variables
|
||||
|
||||
unsigned long empty : 1;
|
||||
unsigned long stop_now : 1;
|
||||
unsigned long pause_at_end : 1;
|
||||
|
||||
// if start_frame == end_frame
|
||||
// then do not stop unless it has done at least one frame
|
||||
unsigned long done_a_frame : 1;
|
||||
|
||||
SHAPEANIMATIONSEQUENCE * sequence;
|
||||
|
||||
signed long current_frame;
|
||||
signed long time_to_next_frame;
|
||||
|
||||
} SHAPEANIMATIONCONTROLDATA;
|
||||
|
||||
|
||||
typedef struct shapeanimationcontroller
|
||||
{
|
||||
|
||||
// Public variables
|
||||
|
||||
SHAPEANIMATIONCONTROLDATA current;
|
||||
|
||||
SHAPEANIMATIONCONTROLDATA next;
|
||||
|
||||
unsigned long finished : 1;
|
||||
|
||||
|
||||
// Private variables
|
||||
|
||||
unsigned long playing : 1;
|
||||
|
||||
SHAPEANIMATIONHEADER * anim_header;
|
||||
|
||||
} SHAPEANIMATIONCONTROLLER;
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////// Funtions /////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct displayblock;
|
||||
struct shapeheader;
|
||||
|
||||
// This sets the current animation (and the next to empty)
|
||||
unsigned int SetShapeAnimationSequence (struct displayblock *, SHAPEANIMATIONCONTROLDATA *);
|
||||
unsigned int SetOrphanedShapeAnimationSequence (SHAPEANIMATIONCONTROLLER * sac, SHAPEANIMATIONCONTROLDATA * sacd);
|
||||
|
||||
// This sets the next animation (if the current is empty it will set the current)
|
||||
unsigned int SetNextShapeAnimationSequence (struct displayblock *, SHAPEANIMATIONCONTROLDATA *);
|
||||
|
||||
// stop_now == 1 will cause the function to ignore the end_frame value
|
||||
// set end_frame to -1 for no change to the ending frame of the sequence
|
||||
void SetCurrentShapeAnimationToStop (struct displayblock *, unsigned long stop_now, signed long end_frame);
|
||||
|
||||
SHAPEANIMATIONCONTROLDATA const * GetCurrentShapeAnimationSequenceData (struct displayblock *);
|
||||
SHAPEANIMATIONCONTROLDATA const * GetNextShapeAnimationSequenceData (struct displayblock *);
|
||||
|
||||
// pause_now == 1 will cause the function to ignore the end_frame value
|
||||
// set end_frame to -1 for no change to the ending frame of the sequence
|
||||
void PauseCurrentShapeAnimation (struct displayblock *, unsigned long pause_now, signed long end_frame);
|
||||
void RestartCurrentShapeAnimation (struct displayblock *);
|
||||
|
||||
// Please use these functions, whenever you create a block of each type
|
||||
void InitShapeAnimationController (SHAPEANIMATIONCONTROLLER *, struct shapeheader *);
|
||||
void InitShapeAnimationControlData (SHAPEANIMATIONCONTROLDATA *);
|
||||
|
||||
|
||||
|
||||
|
||||
// These are for the system
|
||||
|
||||
void DoAllShapeAnimations ();
|
||||
|
||||
void CopyAnimationFrameToShape (SHAPEANIMATIONCONTROLDATA *sacd, struct displayblock * dptr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue