X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=blobdiff_plain;f=16%2Fted5%2FTED5.H;fp=16%2Fted5%2FTED5.H;h=e44ff89cf244ca6735223af9daf096cf67ffddda;hp=0000000000000000000000000000000000000000;hb=4c15d088479b9b6c4a8b298a9db585bc11582321;hpb=21ff8e5607ba86e91ed0d71f6261fd0fcc676e16 diff --git a/16/ted5/TED5.H b/16/ted5/TED5.H new file mode 100755 index 00000000..e44ff89c --- /dev/null +++ b/16/ted5/TED5.H @@ -0,0 +1,356 @@ +#define IDSTRING "TED5v1.0" +#define TITLESTR "TED5 vD.IP" +#define IDSTSTR " "TITLESTR + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lib.h" +#include "memmgr.h" +#include "menu.h" +#include "jhuff.h" +#include "xms.h" + +#define SGN(x) (x>0?1:x<0?-1:0) +#define OFF3(m,i) (*(long huge *)((char huge *)m+(i)*3)&0xffffff) + + +// +// Defs for TED5 +// + +typedef enum {TILES,MASKED,ICONS} screentype; +typedef enum {DATA,CODE,FARDATA} segtype; // FOR MAKEOBJ ONLY + +#define SCindex 0x3C4 +#define SCmapmask 2 +#define GCindex 0x3CE +#define GCreadmap 4 +#define GCmode 5 +#define crtcaddr 0x3d4 + +// +// STRUCTURE OF TED5 TEMPFILE WHILE LAUNCHING +// +typedef struct { + video lastmode; + char ext[4]; + } TempStruct; + +// +// STRUCTURE OF THE "TEDINFO.EXT" FILE THAT TED5 CREATES +// +typedef struct { + int level,lastvid,lastx,lasty,tsize; + int OldCgaXMS,OldEgaXMS,OldVgaXMS; + long OldCgaXMSsize,OldEgaXMSsize,OldVgaXMSsize; + int CgaXMSlook,EgaXMSlook,VgaXMSlook; + char permicon,pflags; + int oscrx,oscry; + char parmstring[64],launchname[14]; + char BackgndColor; + char ImportPath[64]; + } InfoStruct; + +// +// STRUCTURE OF THE "GFXINFO?.EXT" FILE THAT IGRAB CREATES +// +typedef struct { + int num8,num8m,num16,num16m,num32,num32m; + int off8,off8m,off16,off16m,off32,off32m; + int numpics,numpicm,numsprites; + int offpic,offpicm,offsprites; + int offpicstr,offpicmstr,offsprstr; + int numexterns,offexterns; + } GfxStruct; + +// +// TED5 LOADS & SAVES THIS HEADER FOR INTERNAL MAPFILE USAGE +// +typedef struct { unsigned maptype; //bit 0=bkgnd/1=frgnd/2=info + unsigned tsize; //1=8/2=16/3=32 + + unsigned numtplanes,oldtilenum; + long tileinfooff[10]; + unsigned tileinfolen[10]; + char tnames[10][8]; + + unsigned numtmplanes,oldtilemnum; + long tileinfomoff[10]; + unsigned tileinfomlen[10]; + char tmnames[10][8]; + + unsigned RLEWtag; + long dataoffsets[100]; + long datalengths[100]; + + int NumIconRows; + } MapFileHeaderStr; + +// +// TED5 SAVES THIS MAPFILE HEADER FOR THE GAME +// +typedef struct { + unsigned RLEWtag; + long dataoffsets[100]; + + } OutputHeadStr; + +// +// EACH AND EVERY MAP HAS THIS HEADER (IF THE MAP EXISTS) +// +typedef struct { long mapbkgndpl; + long mapfrgndpl; + long mapinfopl; + unsigned mapbkgndlen; + unsigned mapfrgndlen; + unsigned mapinfolen; + unsigned width,height; + char name[16]; + } MapHeaderStr; + +// +// SPECIFY WHAT, WHEREFROM, AND HOW TO COPY A REGION +// +typedef struct { + char PlanesCopied; // use BPLANE,FPLANE,IPLANE to mask + int MapOrTileSelect; // 0:map,1:tileselect + int x,y,w,h; // from map or tileselect + } CopyStr; + +// +// UNDO REGION +// +typedef struct { + int x,y,w,h; + } UndoStr; + +// +// LAST-BUILT "VIEWMAP" +// +typedef struct { + unsigned step,built_flag,EGAseg,maxpack; + } VMapStr; + + +// +// HEADER FOR APPLE-PREFERRED FILES +// +typedef struct { long length; + char Kind[5]; + int MasterMode; + int PixelsPerLine; + int NumColorTables; + int ColorTable[16]; + int NumScanLines; + } ApPrefStr; + +#define CREATED 1 +#define NOTCREATED 2 +#define ANYLIST 3 + +#define BPLANE 1 +#define FPLANE 2 +#define IPLANE 4 + +#define O_FGNDBACK 4 +#define ICONBACK 3 + +#define TINFOWIDTH 3 +#define TINFOHEIGHT 7 +#define TINFOHEIGHTEGA2 25 + +extern MBarDef TED5MenuBar[]; +extern DialogDef DoCreated; + +extern UndoStr UndoRegion; +extern CopyStr TileCopy; +extern MapFileHeaderStr _seg *MapFileHeader; +extern char _seg *Tinfo[10],_seg *TMinfo[10],_seg *GraphHeader; +extern long _seg *XMSlookup,_seg *CgaXMSlookup,_seg *EgaXMSlookup,_seg *VgaXMSlookup; +extern int _seg *MapBkgnd,_seg *MapFrgnd,_seg *MapInfoPl, + _seg *CutBkgnd,_seg *CutFrgnd,_seg *CutInfoPl; +extern MapHeaderStr MapHeader; + +#if 0 +extern char far TOM; // JOKE SHIT! +#endif + +extern TempStruct LaunchInfo; +extern InfoStruct _seg *TEDInfo; +extern GfxStruct _seg *GfxInfo; +extern video lastvideo,videomode; +extern screentype whichscreen; +extern VMapStr VMapData; + +extern char launchname[64],ext[4],format[2],projname[64],mapname[64],planes, + infoname[64],mapheadname[64],tdata,MapNames[100][16],parmstring[64]; +extern char SM_name[64],SM_loadname[64],BkgndColor; + +extern unsigned temp,whichmap,numtplanes,tilenum,tilemnum,numtmplanes,left, + DirtyFlag,tilelen,tilemlen,whicht,whichtm,whichi, + tsize,infoy,infomaxw,mapwidth,mapheight,screenw,usingbat, + screenh,planeton,planemon,planeion,maxiconrows,lasticon,firsticon, + viewton,viewmon,viewion,XMSundoB,XMSundoF,XMSundoI,XMSmaps, + EgaXMS,CgaXMS,VgaXMS,xmshandle,GridMode,SnapMode,snapx,snapy, + snapxsize,snapysize,writeH,F3_flag,NoAbout; +extern int tilebase,tilembase,infobaron,xbase,ybase,scrnbot,scrnrgt, + FillMode,PasteMode,SelectMode,SelX1,SelY1,PasteOK,SelX2,SelY2,pixelx,pixely, + selectcols,px,py,lastmap,TIybase,TIymbase,TIxbase,TIxmbase,BfillMode, + Plotting,TsearchMode; +extern long CgaXMSsize,EgaXMSsize,VgaXMSsize; + +extern void far *XMSdriver; + +// +// FUNCTION PROTOTYPES +// + +// +// LIB_A.ASM +// +extern void CGAcharout(int x,int y,char ch); +extern void EGAcharout(int x,int y,char ch,video vid); +extern void VGAcharout(int x,int y,char ch); + +// +// TED5_A.ASM +// +extern unsigned EGA1lookup[200]; +extern unsigned EGA2lookup[200]; +extern void DrawTile(int x,int y,int tile); +extern void CopyCGA(int srcx,int srcy,int width,int height,int destx,int desty); +extern void CopyEGA(int srcx,int srcy,int width,int height,int destx,int desty); +extern void CopyVGA(int srcx,int srcy,int width,int height,int destx,int desty); +extern void Overlay(int tsize); + +// +// TED5 +// +void FindGraphFile(void); +void HandleEvent(void); +void Continuous(void); +void LoadInfoFile(void); +int LoadGraphStuff(int rtn,video newvid); +void LoadMapHeader(void); +void ParseCmdline(void); +void InitTed5(void); +void CallDesktop(void); +void SelectTiles(int screen); +void STnot(int x,int y); +void DrawProjBord(int x,int y); +void DrawInfoBar(void); +void PrintCoords(void); +void FigureScreenEdges(void); +void errsound(void); +void DrawMap(void); +void CheckSelectEdges(int x,int y,int i,int j); +int InputIconAmount(void); + +// +// TED5-1 +// +void Item_InputInfoplane(void); +void Item_SelectTile(void); +void Item_EditTinfoNames(void); +void Item_BlockFill(void); +void Item_TileSearch(void); +void Item_Launch(void); +void Item_Undo(void); +void Item_TINFOCopy(void); + +void CreateMap(int exitok); +int SelectMap(int exitok,int createflg,char *title); +int PickMorePlanes(void); +void DoBlockFill(void); +void RemoveUndoBuffers(void); +void AllocateUndoBuffers(void); +void RestoreUndo(void); +void SaveUndo(int x,int y,int w,int h); +void CopyUndoRegion(void); +void SaveOutputHeader(void); +void SaveTEDInfo(void); +void BackupFile(char *filename); + +void TInfoNon(int x,int y,int b); +void TInfoNoff(int x,int y,int b); +void TInfoMNon(int x,int y,int b); +void TInfoMNoff(int x,int y,int b); +void TIDoneOn(int x,int y); +void TIDoneOff(int x,int y); + + +// +// TED5-2 +// +void Item_About(void); +void Item_ModeSwitch(void); +void Item_DeleteMap(void); +void Item_EditMap(void); +void Item_SaveMap(void); +void Item_CreateMap(void); +void Item_Quit(void); +void Item_MapStats(void); +void Item_ToggleInfo(void); +void Item_Amputate(void); +void Item_SwitchMap(void); +void Item_EditMapNames(void); +void Item_Copy(void); +void Item_Paste(void); +void Item_LastVideo(void); +void Item_FloodFill(void); +void Item_LastMap(void); +void Item_CountTiles(void); +int CheckForMapSave(void); +void DoFloodFill(int x,int y,int whichb); + +void DrawTileSelect(int deltarows,int *numrows,int *numcols); +void DrawUnused(int deltarow); +void DrawCurrentTiles(void); +void ZeroModes(void); + +// +// TED5-3 +// +void Item_EditMapEdges(void); +void Item_PrintMem(void); +void Item_Huffman(void); +void CheckInfoValues(int i,int j,int tilei); +void PrintMem(int x,int y); +void EraseFloatPaste(void); +void DrawFloatPaste(void); +void CopyScreen(int srcx,int srcy,int width,int height,int destx,int desty); +void Item_LAUNCHname(void); +void Item_PARMstring(void); +void Item_ChangeIconRows(void); +void Item_ChangeLaunchIcon(void); +void Item_ChangeBkgndColor(void); + +// +// TED5-4 +// +void SignalSound(void); +void Item_GraphicDump(void); +void Item_EditTinfoValues(void); +void Item_ProjectReSelect(void); +void Item_AddDelTinfo(void); +void Item_GridMode(void); +void Item_SnapTog(void); +void Item_ViewMap(void); +void Item_ReviewMap(void); +void Item_ImportMaps(void); +void Item_VisitDOS(void); +void Item_POtog(void); +void Do_ViewMap(int how); +int MakeOBJ(char *filename,char *destfilename,char *public,segtype whichseg,char *farname); +void DrawTinfoScreen(int thescreen,int deltax,int deltay); +void EnterTinfoValue(int whichtinfo,int mx,int my,int H_or_V); +void UseTinfoValue(int whichtinfo,int mx,int my,int PickupOrDrop);