// Header file for ACK-3D Map Editor // Author: Lary Myers // Copyright (c) 1994 #ifndef M1_H_INCLUDED #define M1_H_INCLUDED #define RES_SMFONT 0 // Resource ID's #define RES_MDFONT 1 #define RES_2DSCREEN 2 #define RES_3DSCREEN 3 #define RES_SELSCREEN 4 #define BM_X 272 #define BM_Y 17 #define BM_NUM_X 308 #define BM_NUM_Y 30 #define MAP_X 0 #define MAP_Y 0 #define MAP_X1 256 #define MAP_Y1 160 #define MINI_X 255 #define MINI_Y 135 #define MINI_X1 (MINI_X+63) #define MINI_Y1 (MINI_Y+63) #define MAPXY_X 217 #define MAPXY_Y 165 #define MAPXY_X1 231 #define MAPXY_Y1 165 #define CURXY_X 217 #define CURXY_Y 173 #define CURXY_X1 231 #define CURXY_Y1 173 #define GD_FWT 32 #define GD_FHT 32 #define GD_HWT 16 #define GD_HHT 16 #define VM_2D 0 // View mode is 2D #define VM_3D 1 // View mode is 3D #define VT_MAP 0 // Viewing map #define VT_FLOOR 1 // Viewing floor #define VT_CEIL 2 // Viewing ceiling #define ED_WALLS 0 // Editing walls #define ED_OBJECTS 1 // Editing objects #define AI_UP 1 // Action index's #define AI_RIGHT 2 #define AI_DOWN 3 #define AI_LEFT 4 #define AI_MINI 5 #define AI_SELECT 6 #define AI_VIEW 7 #define AI_FLOORS 8 #define AI_SAVE 9 #define AI_MAP 10 #define AI_WALLS 11 #define AI_CEILING 12 #define AI_OBJECTS 13 #define AI_OPTIONS 14 #define AI_EDITWIN 15 #define AI_BM_UP 16 #define AI_BM_DOWN 17 #define AI_EXIT 99 #define OPT_NORMAL 0 // Selectable option ID's #define OPT_SLIDING 1 #define OPT_SPLIT 2 #define OPT_SECRET 3 #define OPT_LOCKED 4 #define OPT_TRANS 5 #define OPT_MULTI 6 #define OPT_RAISED 7 #define OPT_CANCEL 8 #define OPT_FILL 9 #define OPT_BORDER 10 #define OPT_CLEAR 11 #define OPT_PASSABLE 12 #define OPT_PALETTE 13 #define OPT_MAPPAL 14 #define OPT_MAX 15 // Total number of options above #define BM_COLOR_X 261 // Current bitmap color coordinates #define BM_COLOR_Y 17 #define BM_COLOR_X1 267 #define BM_COLOR_Y1 48 typedef struct { short Action; short x; short y; short x1; short y1; } HS; typedef struct { short id; int xBias; int yBias; UCHAR Flags; char *Text; } OPTS; #define OPTF_CHECKED 0x80 // Button will have a checkmark #define VIDSEG (UCHAR *)0xA0000 #define MAX_MULTI 3 #define KEY_ESC 0x011B #define KEY_SPACE 0x3920 #define KEY_F2 0x3C00 #define KEY_F3 0x3D00 #define KEY_UP 0x4800 #define KEY_RIGHT 0x4D00 #define KEY_DOWN 0x5000 #define KEY_LEFT 0x4B00 #define KEY_PGUP 0x4900 #define KEY_PGDN 0x5100 //============================================================================= // Prototypes; //============================================================================= //----------------------------------------------------------------------------- // Functions in mouse.c //----------------------------------------------------------------------------- short MouseInstalled(void); void ShowMouse(void); void HideMouse(void); short ReadMouseCursor(short *mrow,short *mcol); short ReadMouseButtons(void); void SetMouseCursor(short mrow,short mcol); void SetMouseMinMaxColumns(short mincol,short maxcol); void SetMouseMinMaxRows(short minrow,short maxrow); void SetMouseShape(short hsrow,short hscol,char far *mask); void MouseReleased(void); //----------------------------------------------------------------------------- // Functions in m1.c //----------------------------------------------------------------------------- extern char assetsPath[]; extern char exePath[]; extern char tempFilename[]; void FindFilePaths(const char *exeFile, const char *descFile); char* GetCombinedPath(const char *base, const char *file); short GetAction(short mx,short my); short GetSelAction(short mx,short my); void DrawYline(int x,int y); void DrawXline(int x,int y); void DrawGridBlock(int x,int y); void DrawYbitmap(int x,int y,UCHAR *bm,UCHAR Shade,int TransFlag); void DrawXbitmap(int x,int y,UCHAR *bm,UCHAR Shade,int TransFlag); void ClearGridArea(UCHAR *BufPtr); void RefreshGrid(void); void DrawGrid3D(void); void Draw2Dxline(int x,int y,UCHAR color); void DrawxLineMulti(int x,int y,UCHAR color); void Draw2Dyline(int x,int y,UCHAR color); void DrawyLineMulti(int x,int y,UCHAR color); void DrawGrid2D(void); void DrawTinyBitmap(int x,int y,UCHAR *bm); void DrawFloorCeil(void); void DrawObjects(void); void DrawGrid(void); void ShowScreen(char *Name); void ShowBitmap(int x,int y,UCHAR *bm); short LoadGridMap(char *Name); short SaveGridMap(char *Name); void ShowCurrentBitmap(void); short GetActionIndex(short action); void PressButton(short ActionCode); void ReleaseButton(short ActionCode); void UpdateScreen(void); int GetGridPos(short mx,short my); void PutCode(short mx,short my); void UpdatePosn(short mx,short my); void ShowSelBitmaps(UCHAR bCode); int SelectScreen(void); UCHAR GetIndexColor(short index); UCHAR GetIndexColor2(short index); void DrawBackBox(int x,int y,int x1,int y1); void ShowButtons(OPTS *op,HS *hs,int x,int y,int xAmt,int yAmt); int ShowOptions(void); void FillMap(UCHAR bCode); void DrawArrow(int x,int y,UCHAR color); int SelectGridBox(void); void EditMulti(int mode,short mx,short my); //----------------------------------------------------------------------------- // Functions in m1util.c //----------------------------------------------------------------------------- void SoundBeep(void); short LoadSmallFont(void); short LoadMedFont(void); void mdWriteChar(short x,short y,unsigned char ch); short mdWriteString(short x,short y,char *s); void smWriteChar(short x,short y,unsigned char ch); short smWriteString(short x,short y,char *s); void smWriteHUD(short x,short y,UCHAR color,char *s); void BlitBlock(int x,int y,int x1,int y1,UCHAR *buf); void DrawFillBox(int x,int y,int x1,int y1,UCHAR color); void DrawHorzLine(int x,int y,int x1,UCHAR color); void DrawVertLine(int x,int y,int y1,UCHAR color); void DrawBox(int x,int y,int x1,int y1,UCHAR color); UCHAR GetColor(int x,int y); void SaveVideo(UCHAR *buf); void RestoreVideo(UCHAR *buf); void CreateButton(int x,int y,HS *hs,char *s); int QueryBox(int x,int y,char *Msg); //----------------------------------------------------------------------------- // Functions in m1read.c //----------------------------------------------------------------------------- short LoadDescFile(char *fName); #endif