1 #define IDSTRING "TED5v1.0"
2 #define TITLESTR "TED5 vD.IP"
3 #define IDSTSTR " "TITLESTR
22 #define SGN(x) (x>0?1:x<0?-1:0)
23 #define OFF3(m,i) (*(long huge *)((char huge *)m+(i)*3)&0xffffff)
30 typedef enum {TILES,MASKED,ICONS} screentype;
31 typedef enum {DATA,CODE,FARDATA} segtype; // FOR MAKEOBJ ONLY
38 #define crtcaddr 0x3d4
41 // STRUCTURE OF TED5 TEMPFILE WHILE LAUNCHING
49 // STRUCTURE OF THE "TEDINFO.EXT" FILE THAT TED5 CREATES
52 int level,lastvid,lastx,lasty,tsize;
53 int OldCgaXMS,OldEgaXMS,OldVgaXMS;
54 long OldCgaXMSsize,OldEgaXMSsize,OldVgaXMSsize;
55 int CgaXMSlook,EgaXMSlook,VgaXMSlook;
58 char parmstring[64],launchname[14];
64 // STRUCTURE OF THE "GFXINFO?.EXT" FILE THAT IGRAB CREATES
67 int num8,num8m,num16,num16m,num32,num32m;
68 int off8,off8m,off16,off16m,off32,off32m;
69 int numpics,numpicm,numsprites;
70 int offpic,offpicm,offsprites;
71 int offpicstr,offpicmstr,offsprstr;
72 int numexterns,offexterns;
76 // TED5 LOADS & SAVES THIS HEADER FOR INTERNAL MAPFILE USAGE
78 typedef struct { unsigned maptype; //bit 0=bkgnd/1=frgnd/2=info
79 unsigned tsize; //1=8/2=16/3=32
81 unsigned numtplanes,oldtilenum;
83 unsigned tileinfolen[10];
86 unsigned numtmplanes,oldtilemnum;
87 long tileinfomoff[10];
88 unsigned tileinfomlen[10];
92 long dataoffsets[100];
93 long datalengths[100];
99 // TED5 SAVES THIS MAPFILE HEADER FOR THE GAME
103 long dataoffsets[100];
108 // EACH AND EVERY MAP HAS THIS HEADER (IF THE MAP EXISTS)
110 typedef struct { long mapbkgndpl;
113 unsigned mapbkgndlen;
114 unsigned mapfrgndlen;
116 unsigned width,height;
121 // SPECIFY WHAT, WHEREFROM, AND HOW TO COPY A REGION
124 char PlanesCopied; // use BPLANE,FPLANE,IPLANE to mask
125 int MapOrTileSelect; // 0:map,1:tileselect
126 int x,y,w,h; // from map or tileselect
137 // LAST-BUILT "VIEWMAP"
140 unsigned step,built_flag,EGAseg,maxpack;
145 // HEADER FOR APPLE-PREFERRED FILES
147 typedef struct { long length;
168 #define TINFOHEIGHT 7
169 #define TINFOHEIGHTEGA2 25
171 extern MBarDef TED5MenuBar[];
172 extern DialogDef DoCreated;
174 extern UndoStr UndoRegion;
175 extern CopyStr TileCopy;
176 extern MapFileHeaderStr _seg *MapFileHeader;
177 extern char _seg *Tinfo[10],_seg *TMinfo[10],_seg *GraphHeader;
178 extern long _seg *XMSlookup,_seg *CgaXMSlookup,_seg *EgaXMSlookup,_seg *VgaXMSlookup;
179 extern int _seg *MapBkgnd,_seg *MapFrgnd,_seg *MapInfoPl,
180 _seg *CutBkgnd,_seg *CutFrgnd,_seg *CutInfoPl;
181 extern MapHeaderStr MapHeader;
184 extern char far TOM; // JOKE SHIT!
187 extern TempStruct LaunchInfo;
188 extern InfoStruct _seg *TEDInfo;
189 extern GfxStruct _seg *GfxInfo;
190 extern video lastvideo,videomode;
191 extern screentype whichscreen;
192 extern VMapStr VMapData;
194 extern char launchname[64],ext[4],format[2],projname[64],mapname[64],planes,
195 infoname[64],mapheadname[64],tdata,MapNames[100][16],parmstring[64];
196 extern char SM_name[64],SM_loadname[64],BkgndColor;
198 extern unsigned temp,whichmap,numtplanes,tilenum,tilemnum,numtmplanes,left,
199 DirtyFlag,tilelen,tilemlen,whicht,whichtm,whichi,
200 tsize,infoy,infomaxw,mapwidth,mapheight,screenw,usingbat,
201 screenh,planeton,planemon,planeion,maxiconrows,lasticon,firsticon,
202 viewton,viewmon,viewion,XMSundoB,XMSundoF,XMSundoI,XMSmaps,
203 EgaXMS,CgaXMS,VgaXMS,xmshandle,GridMode,SnapMode,snapx,snapy,
204 snapxsize,snapysize,writeH,F3_flag,NoAbout;
205 extern int tilebase,tilembase,infobaron,xbase,ybase,scrnbot,scrnrgt,
206 FillMode,PasteMode,SelectMode,SelX1,SelY1,PasteOK,SelX2,SelY2,pixelx,pixely,
207 selectcols,px,py,lastmap,TIybase,TIymbase,TIxbase,TIxmbase,BfillMode,
208 Plotting,TsearchMode;
209 extern long CgaXMSsize,EgaXMSsize,VgaXMSsize;
211 extern void far *XMSdriver;
214 // FUNCTION PROTOTYPES
220 extern void CGAcharout(int x,int y,char ch);
221 extern void EGAcharout(int x,int y,char ch,video vid);
222 extern void VGAcharout(int x,int y,char ch);
227 extern unsigned EGA1lookup[200];
228 extern unsigned EGA2lookup[200];
229 extern void DrawTile(int x,int y,int tile);
230 extern void CopyCGA(int srcx,int srcy,int width,int height,int destx,int desty);
231 extern void CopyEGA(int srcx,int srcy,int width,int height,int destx,int desty);
232 extern void CopyVGA(int srcx,int srcy,int width,int height,int destx,int desty);
233 extern void Overlay(int tsize);
238 void FindGraphFile(void);
239 void HandleEvent(void);
240 void Continuous(void);
241 void LoadInfoFile(void);
242 int LoadGraphStuff(int rtn,video newvid);
243 void LoadMapHeader(void);
244 void ParseCmdline(void);
246 void CallDesktop(void);
247 void SelectTiles(int screen);
248 void STnot(int x,int y);
249 void DrawProjBord(int x,int y);
250 void DrawInfoBar(void);
251 void PrintCoords(void);
252 void FigureScreenEdges(void);
255 void CheckSelectEdges(int x,int y,int i,int j);
256 int InputIconAmount(void);
261 void Item_InputInfoplane(void);
262 void Item_SelectTile(void);
263 void Item_EditTinfoNames(void);
264 void Item_BlockFill(void);
265 void Item_TileSearch(void);
266 void Item_Launch(void);
267 void Item_Undo(void);
268 void Item_TINFOCopy(void);
270 void CreateMap(int exitok);
271 int SelectMap(int exitok,int createflg,char *title);
272 int PickMorePlanes(void);
273 void DoBlockFill(void);
274 void RemoveUndoBuffers(void);
275 void AllocateUndoBuffers(void);
276 void RestoreUndo(void);
277 void SaveUndo(int x,int y,int w,int h);
278 void CopyUndoRegion(void);
279 void SaveOutputHeader(void);
280 void SaveTEDInfo(void);
281 void BackupFile(char *filename);
283 void TInfoNon(int x,int y,int b);
284 void TInfoNoff(int x,int y,int b);
285 void TInfoMNon(int x,int y,int b);
286 void TInfoMNoff(int x,int y,int b);
287 void TIDoneOn(int x,int y);
288 void TIDoneOff(int x,int y);
294 void Item_About(void);
295 void Item_ModeSwitch(void);
296 void Item_DeleteMap(void);
297 void Item_EditMap(void);
298 void Item_SaveMap(void);
299 void Item_CreateMap(void);
300 void Item_Quit(void);
301 void Item_MapStats(void);
302 void Item_ToggleInfo(void);
303 void Item_Amputate(void);
304 void Item_SwitchMap(void);
305 void Item_EditMapNames(void);
306 void Item_Copy(void);
307 void Item_Paste(void);
308 void Item_LastVideo(void);
309 void Item_FloodFill(void);
310 void Item_LastMap(void);
311 void Item_CountTiles(void);
312 int CheckForMapSave(void);
313 void DoFloodFill(int x,int y,int whichb);
315 void DrawTileSelect(int deltarows,int *numrows,int *numcols);
316 void DrawUnused(int deltarow);
317 void DrawCurrentTiles(void);
318 void ZeroModes(void);
323 void Item_EditMapEdges(void);
324 void Item_PrintMem(void);
325 void Item_Huffman(void);
326 void CheckInfoValues(int i,int j,int tilei);
327 void PrintMem(int x,int y);
328 void EraseFloatPaste(void);
329 void DrawFloatPaste(void);
330 void CopyScreen(int srcx,int srcy,int width,int height,int destx,int desty);
331 void Item_LAUNCHname(void);
332 void Item_PARMstring(void);
333 void Item_ChangeIconRows(void);
334 void Item_ChangeLaunchIcon(void);
335 void Item_ChangeBkgndColor(void);
340 void SignalSound(void);
341 void Item_GraphicDump(void);
342 void Item_EditTinfoValues(void);
343 void Item_ProjectReSelect(void);
344 void Item_AddDelTinfo(void);
345 void Item_GridMode(void);
346 void Item_SnapTog(void);
347 void Item_ViewMap(void);
348 void Item_ReviewMap(void);
349 void Item_ImportMaps(void);
350 void Item_VisitDOS(void);
351 void Item_POtog(void);
352 void Do_ViewMap(int how);
353 int MakeOBJ(char *filename,char *destfilename,char *public,segtype whichseg,char *farname);
354 void DrawTinfoScreen(int thescreen,int deltax,int deltay);
355 void EnterTinfoValue(int whichtinfo,int mx,int my,int H_or_V);
356 void UseTinfoValue(int whichtinfo,int mx,int my,int PickupOrDrop);