+++ /dev/null
-/*\r
-Copyright (C) 1998 BJ Eirich (aka vecna)\r
-This program is free software; you can redistribute it and/or\r
-modify it under the terms of the GNU General Public License\r
-as published by the Free Software Foundation; either version 2\r
-of the License, or (at your option) any later version.\r
-This program is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r
-See the GNU General Public Lic\r
-See the GNU General Public License for more details.\r
-You should have received a copy of the GNU General Public License\r
-along with this program; if not, write to the Free Software\r
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
-*/\r
-\r
-#ifndef MAPED_INC\r
-#define MAPED_INC\r
-\r
-extern const char *const ME2_VERSION;\r
-\r
-#include <stdio.h>\r
-\r
-#define byte unsigned char\r
-#define word unsigned short\r
-\r
-typedef struct\r
-{\r
- unsigned short start; // strand start\r
- unsigned short finish; // strand end\r
- unsigned short delay; // tile-switch delay\r
- unsigned short mode; // tile-animation mode\r
-} vspanim_r;\r
-\r
-typedef struct\r
-{\r
- char pmultx,pdivx; // parallax multiplier/divisor for X\r
- char pmulty,pdivy; // parallax multiplier/divisor for Y\r
- unsigned short sizex, sizey; // layer dimensions.\r
- unsigned char trans, hline; // transparency flag | hline (raster fx)\r
-} layer_r;\r
-\r
-typedef struct\r
-{\r
- char name[40]; // zone name/desc\r
- unsigned short script; // script to call thingy\r
- unsigned short percent; // chance of executing\r
- unsigned short delay; // step-delay\r
- unsigned short aaa; // Accept Adjacent Activation\r
- unsigned short entityscript; // script to call for entities\r
-} zoneinfo;\r
-\r
-typedef struct\r
-{\r
- int x, y; // xwc, ywx position\r
- word tx, ty; // xtc, ytc position\r
- byte facing; // direction entity is facing\r
- byte moving, movecnt; // direction entity is moving\r
- byte frame; // bottom-line frame to display\r
- byte specframe; // special-frame set thingo\r
- byte chrindex, reset; // CHR index | Reset animation\r
- byte obsmode1, obsmode2; // can be obstructed | Is an obstruction\r
- byte speed, speedct; // entity speed, speedcount :)\r
- byte delayct; // animation frame-delay\r
- char *animofs, *moveofs; // anim script | move script\r
- byte face, actm; // auto-face | activation mode\r
- byte movecode, movescript; // movement type | movement script\r
- byte ctr, mode; // sub-tile move ctr, mode flag (internal)\r
- word step, delay; // step, delay\r
- word stepctr, delayctr; // internal use counters\r
- word data1, data2, data3; //\r
- word data4, data5, data6; //\r
- int actscript; // activation script\r
- int expand1, expand2; //\r
- int expand3, expand4; //\r
- char desc[20]; // Entity description.\r
-} entity_r;\r
-\r
-typedef struct\r
-{\r
- char t[60];\r
-} chrlist_r;\r
-\r
-typedef struct {\r
- char t[200];\r
-} movescript;\r
-\r
-extern layer_r layer[4];\r
-extern vspanim_r vspanim[100];\r
-extern zoneinfo zones[256];\r
-extern unsigned short vadelay[100];\r
-extern entity_r entity[256]; // Entity records.\r
-extern byte entities; // number of allocated entities.\r
-extern chrlist_r chrlist[100];\r
-extern byte nmchr;\r
-extern movescript ms[100]; // move scripts arrays\r
-extern byte nms; // number of movement scripts\r
-\r
-extern char *obstruct, *zone, curzone;\r
-extern char numlayers, wrap;\r
-extern unsigned short *layers[6];\r
-extern char rstring[20];\r
-extern char mapname[60], vspname[60];\r
-extern char musname[60];\r
-extern short xstart, ystart;\r
-\r
-// -- vsp related data --\r
-\r
-extern unsigned short numtiles;\r
-extern unsigned char *vsp;\r
-\r
-// -- editing related data --\r
-\r
-extern int xwin, ywin, bmode;\r
-extern char mouse_scroll;\r
-extern short lt, rt;\r
-extern char layertoggle[10], el, modified;\r
-\r
-extern word *copybuf;\r
-extern int copybuf_wide,copybuf_deep;\r
-extern int selx1, sely1, selx2, sely2;\r
-extern int shifted, pasting;\r
-\r
-extern int numzones; // Number of active zones.\r
-\r
-extern int moving_up,moving_down,moving_left,moving_right;\r
-\r
-extern void LoadTransTable();\r
-extern int Exist(char *fname);\r
-extern void err(char *str, ...);\r
-extern void errf(char *str, char *str1);\r
-extern void errn(char *str, int n);\r
-extern int random(int min, int max);\r
-extern void PlayMusic(char *fname);\r
-extern void StopMusic();\r
-extern void LoadVSP(char *fname);\r
-extern void SaveVSP(char *fname);\r
-extern void EmitC (char c);\r
-extern void EmitW (short int w);\r
-extern void WriteCompressedLayer1(unsigned char *p, int len);\r
-extern void ReadCompressedLayer1(unsigned char *dest, int len, FILE *f);\r
-extern void WriteCompressedLayer2(unsigned short *p,int len);\r
-extern void ReadCompressedLayer2(unsigned short *dest, int len, FILE *f);\r
-extern void CountUsedZones();\r
-extern void CountMoveScripts();\r
-extern void CountCHRs();\r
-extern void SaveMAP(char *fname);\r
-extern void LoadOldMAP(FILE *f);\r
-extern void LoadMAP(char *fname);\r
-extern void InitTileIDX();\r
-extern void CheckTimerStuff();\r
-extern void SaveNewCFG();\r
-extern void ShellToDOS();\r
-extern void ShellVERGE();\r
-extern void ShellMAP();\r
-extern void ShellEditMAP();\r
-extern void ShellEditSystem();\r
-extern void CompileAll();\r
-extern void CompileMAP();\r
-extern void tickhandler(void);\r
-extern void RenderHighlight();\r
-extern int EntityThere(int xw, int yw);\r
-extern void AllocateEntity(int xw, int yw);\r
-extern void ProcessEntity(int xw, int yw);\r
-extern void DeleteEntity(int xw, int yw);\r
-extern void Browse(char n, char *m1, char *m2, char *m3, char *m4, char *dest);\r
-\r
-// Includes for a_memory.c\r
-\r
-void *valloc(int amount, char *desc, int owner);\r
-void *qvalloc(int amount);\r
-int vfree(void *pointer);\r
-void qvfree(void *pointer);\r
-void FreeByOwner(int owner);\r
-void MemReport(void);\r
-void CheckCorruption(void);\r
-\r
-#define free ERROR_YEAH_REPLACE_THIS_WITH_VFREE\r
-\r
-#endif // MAPED_INC\r