#ifndef _WGTSPR_ #define _WGTSPR_ #include /* WordUp Graphics Toolkit V5.0 Sprite Routines Copyright 1995 Egerter Software */ #ifdef __cplusplus extern "C" { #endif /* The following defines should be altered to suit your program needs */ #define MAX_SPRITES 100 #define MAX_ANIMATION 40 #define MAX_MOVE 15 typedef struct { unsigned char num; /* Sprite number shown */ short x, y; /* Coordinates on screen */ unsigned char on; /* On/Off, for visibility */ int ox, oy, ox2, oy2; signed char animon; /* Animation on/off */ short animation_images[MAX_ANIMATION]; /* Animation numbers */ unsigned char animation_speeds[MAX_ANIMATION]; /* Animation speeds */ signed char current_animation; /* Current animation counter */ unsigned char animation_count; /* Delay count for animation */ signed char movex_on; /* X movement on/off */ short movex_distance[MAX_MOVE]; /* X distance per frame */ short movex_number[MAX_MOVE]; /* Number of times to move */ unsigned char movex_speed[MAX_MOVE]; /* Delay between each movement */ signed char current_movex; /* Movement index */ short current_movex_number; /* Number of times moved */ unsigned char movex_count; /* Delay count for X movement */ signed char movey_on; /* Y movement on/off */ short movey_distance[MAX_MOVE]; /* Y distance per frame */ short movey_number[MAX_MOVE]; /* Number of times to move */ unsigned char movey_speed[MAX_MOVE]; /* Delay between each movement */ signed char current_movey; /* Movement index */ short current_movey_number; /* Number of times moved */ unsigned char movey_count; /* Delay count for Y movement */ } sprite_object; extern sprite_object s[MAX_SPRITES]; extern block backgroundscreen; /* Holds the constant background */ extern block spritescreen; /* Work buffer */ extern short maxsprite; extern short tempx1, tempx2, tempy1, tempy2; extern block *sprite_images; extern void animate (short spritenum, char *animation_sequence); extern void animoff (short spritenum); extern void animon (short spritenum); extern void copy_sprites (void); extern void deinitialize_sprites (void); extern void draw_sprites (int movement_multiplier); extern void erase_sprites (void); extern void expand_dirty_rectangle (int sprite_num, int x, int y, int x2, int y2); extern void initialize_sprites (block *sprite_blocks); extern void movex (short spnum, char *str); extern void movey (short spnum, char *str); extern void movexoff (short spnum); extern void movexon (short spnum); extern void moveyoff (short spnum); extern void moveyon (short spnum); extern short overlap (short s1, short s2); extern void spriteoff (short number); extern void spriteon (short number, short x, short y, short image); #ifdef __cplusplus } #endif #endif