diff options
| author | Steven Fuller <relnev@icculus.org> | 2001-07-01 00:55:22 +0000 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-20 02:09:04 +0200 |
| commit | 2186d5f3f95cd74a070a490d899291648d58667a (patch) | |
| tree | 55241a1afa3e1a22e0b6593a8dead0b703800f44 /3dc/win95/shpanim.h | |
| parent | 218ca90543758a20ac326e444ca0643174ca7384 (diff) | |
Initial revision
Diffstat (limited to '3dc/win95/shpanim.h')
| -rw-r--r-- | 3dc/win95/shpanim.h | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/3dc/win95/shpanim.h b/3dc/win95/shpanim.h deleted file mode 100644 index 869cc41..0000000 --- a/3dc/win95/shpanim.h +++ /dev/null @@ -1,201 +0,0 @@ -#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
\ No newline at end of file |
