Main Page | Class List | Directories | File List | Class Members | File Members

mappyal.h

Go to the documentation of this file.
00001 /* Header file for mappyAL V1.0 */
00002 /* (C)2001 Robin Burrows  -  rburrows@bigfoot.com */
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 
00008 #define MER_NONE 0              /* All the horrible things that can go wrong */
00009 #define MER_OUTOFMEM 1
00010 #define MER_MAPLOADERROR 2
00011 #define MER_NOOPEN 3
00012 #define MER_NOSCREEN 4
00013 #define MER_NOACCELERATION 5
00014 #define MER_CVBFAILED 6
00015 
00016 #define AN_END -1                       /* Animation types, AN_END = end of anims */
00017 #define AN_NONE 0                       /* No anim defined */
00018 #define AN_LOOPF 1              /* Loops from start to end, then jumps to start etc */
00019 #define AN_LOOPR 2              /* As above, but from end to start */
00020 #define AN_ONCE 3                       /* Only plays once */
00021 #define AN_ONCEH 4              /* Only plays once, but holds end frame */
00022 #define AN_PPFF 5                       /* Ping Pong start-end-start-end-start etc */
00023 #define AN_PPRR 6                       /* Ping Pong end-start-end-start-end etc */
00024 #define AN_PPRF 7                       /* Used internally by playback */
00025 #define AN_PPFR 8                       /* Used internally by playback */
00026 #define AN_ONCES 9              /* Used internally by playback */
00027 
00028 /* Obsolete functions */
00029 #define MapDraw8BG MapDrawBG
00030 #define MapDraw8BGT MapDrawBGT
00031 #define MapDraw8FG MapDrawFG
00032 #define MapDraw15BG MapDrawBG
00033 #define MapDraw15BGT MapDrawBGT
00034 #define MapDraw15FG MapDrawFG
00035 #define MapDraw16BG MapDrawBG
00036 #define MapDraw16BGT MapDrawBGT
00037 #define MapDraw16FG MapDrawFG
00038 #define MapDraw32BG MapDrawBG
00039 #define MapDraw32BGT MapDrawBGT
00040 #define MapDraw32FG MapDrawFG
00041 
00042 typedef struct {                                /* Structure for data blocks */
00043 long int bgoff, fgoff;                  /* offsets from start of graphic blocks */
00044 long int fgoff2, fgoff3;                /* more overlay blocks */
00045 unsigned long int user1, user2; /* user long data */
00046 unsigned short int user3, user4;        /* user short data */
00047 unsigned char user5, user6, user7;      /* user byte data */
00048 unsigned char tl : 1;                           /* bits for collision detection */
00049 unsigned char tr : 1;
00050 unsigned char bl : 1;
00051 unsigned char br : 1;
00052 unsigned char trigger : 1;                      /* bit to trigger an event */
00053 unsigned char unused1 : 1;
00054 unsigned char unused2 : 1;
00055 unsigned char unused3 : 1;
00056 } BLKSTR;
00057 
00058 typedef struct {                /* Animation control structure */
00059 signed char antype;     /* Type of anim, AN_? */
00060 signed char andelay;    /* Frames to go before next frame */
00061 signed char ancount;    /* Counter, decs each frame, till 0, then resets to andelay */
00062 signed char anuser;     /* User info */
00063 long int ancuroff;      /* Points to current offset in list */
00064 long int anstartoff;    /* Points to start of blkstr offsets list, AFTER ref. blkstr offset */
00065 long int anendoff;      /* Points to end of blkstr offsets list */
00066 } ANISTR;
00067 
00068 
00069 /* All global variables used bt Mappy playback are here */
00070 extern int maperror;            /* Set to a MER_ error if something wrong happens */
00071 extern short int mapwidth, mapheight, mapblockwidth, mapblockheight, mapdepth;
00072 extern short int mapblockstrsize, mapnumblockstr, mapnumblockgfx;
00073 extern short int * mappt;
00074 extern short int ** maparraypt;
00075 extern char * mapcmappt;
00076 extern char * mapblockgfxpt;
00077 extern char * mapblockstrpt;
00078 extern ANISTR * mapanimstrpt;
00079 extern ANISTR * mapanimstrendpt;
00080 extern RGB * mapcmap6bit;
00081 extern short int ** mapmappt;
00082 extern short int *** mapmaparraypt;
00083 extern BITMAP ** abmTiles;
00084 extern int mapblocksinvidmem, mapblocksinsysmem;
00085 extern int mapblockgapx, mapblockgapy;
00086 extern int mapblockstaggerx, mapblockstaggery;
00087 /* End of Mappy globals */
00088 
00089 void Mapconv8to6pal (unsigned char *);
00090 void MapFreeMem (void);
00091 void MapSetPal8 (void);
00092 void MapCorrectColours (void);
00093 int MapRelocate (void);
00094 int MapLoad (char *);
00095 int MapLoadVRAM (char *);
00096 int MapLoadABM (char *);
00097 int MapDecode (unsigned char *);
00098 int MapDecodeVRAM (unsigned char *);
00099 int MapDecodeABM (unsigned char *);
00100 int MapLoadMAR (char *, int);
00101 int MapDecodeMAR (unsigned char *, int);
00102 int MapGetBlockID (int, int);
00103 int MapGenerateYLookup (void);
00104 int MapChangeLayer (int);
00105 int MapGetXOffset (int, int);
00106 int MapGetYOffset (int, int);
00107 BLKSTR * MapGetBlockInPixels (int, int);
00108 BLKSTR * MapGetBlock (int, int);
00109 void MapSetBlockInPixels (int, int, int);
00110 void MapSetBlock (int, int, int);
00111 void MapRestore (void);
00112 void MapInitAnims (void);
00113 void MapUpdateAnims (void);
00114 void MapDrawBG (BITMAP *, int, int, int, int, int, int);
00115 void MapDrawBGT (BITMAP *, int, int, int, int, int, int);
00116 void MapDrawFG (BITMAP *, int, int, int, int, int, int, int);
00117 void MapDrawRow (BITMAP *, int, int, int, int, int, int, int, void (*cellcall) (int cx, int cy, int dx, int dy));
00118 BITMAP * MapMakeParallaxBitmap (BITMAP *, int);
00119 void MapDrawParallax (BITMAP *, BITMAP *, int, int, int, int, int, int);
00120 
00121 #ifdef __cplusplus
00122 }
00123 #endif

Generated on Wed Jul 5 09:05:19 2006 for Super CS Brothers by  doxygen 1.4.4