From 37d7e0fd43264d909e8a3f4836ff047267cc13c1 Mon Sep 17 00:00:00 2001 From: archive Date: Fri, 12 Dec 2014 00:00:00 +0000 Subject: [PATCH] as released 2014-12-12 --- DATA/AMAZON.LBM | Bin 0 -> 35426 bytes DATA/BACKDROP.LBM | Bin 0 -> 44106 bytes DATA/BACKDROP.SCR | 2 + DATA/BEAST.LBM | Bin 0 -> 40384 bytes DATA/BEAST.SCR | 5 + DATA/BLANKMAP.LBM | Bin 0 -> 2974 bytes DATA/CHACMOO2.LBM | Bin 0 -> 24094 bytes DATA/CHACMOOL.LBM | Bin 0 -> 35446 bytes DATA/DOORS1.LBM | Bin 0 -> 36416 bytes DATA/DOORS1.SCR | 2 + DATA/DP_BPAL.$$$ | Bin 0 -> 1024 bytes DATA/DP_CPAL.$$$ | Bin 0 -> 1024 bytes DATA/DP_OPAL.$$$ | Bin 0 -> 1024 bytes DATA/DP_PREFS | Bin 0 -> 324 bytes DATA/DP_SPAL.$$$ | Bin 0 -> 1024 bytes DATA/FIRE.LBM | Bin 0 -> 39962 bytes DATA/FLATS1.LBM | Bin 0 -> 51366 bytes DATA/FLATS1.SCR | 8 + DATA/FLATS2.LBM | Bin 0 -> 35612 bytes DATA/FLATS2.SCR | 4 + DATA/FONT1.LBM | Bin 0 -> 8828 bytes DATA/FONT1.SCR | 2 + DATA/GETMAP.BAT | 4 + DATA/GRABALL.BAT | 20 + DATA/LINKFILE.ILN | 149 +++ DATA/MAP.LBM | Bin 0 -> 10786 bytes DATA/MAP.SCR | 10 + DATA/MAP2.LBM | Bin 0 -> 11008 bytes DATA/MENU.LBM | Bin 0 -> 34800 bytes DATA/MENU.SCR | 2 + DATA/NAZI.LBM | Bin 0 -> 26450 bytes DATA/NAZI.SCR | 9 + DATA/PALETTE.PCX | Bin 0 -> 48479 bytes DATA/PLAYSCR.LBM | Bin 0 -> 67784 bytes DATA/PLAYSCR.SCR | 1 + DATA/RGRID8.LBM | Bin 0 -> 32844 bytes DATA/SHARK.SCR | 1 + DATA/SOFT3D.ICN | Bin 0 -> 2872 bytes DATA/SPRITE1.LBM | Bin 0 -> 29192 bytes DATA/SPRITE1.SCR | 5 + DATA/SPRITE2.LBM | Bin 0 -> 28862 bytes DATA/SPRITE2.SCR | 2 + DATA/SPRITE3.LBM | Bin 0 -> 35836 bytes DATA/SPRITE3.SCR | 2 + DATA/SPRITE4.LBM | Bin 0 -> 26062 bytes DATA/SPRITE4.SCR | 7 + DATA/SPRITE5.LBM | Bin 0 -> 20682 bytes DATA/SPRITE5.SCR | 8 + DATA/TEMP | 200 ++++ DATA/TODD.ILN | 62 ++ DATA/TODD3D.ICN | Bin 0 -> 3510 bytes DATA/TORCHES | 2 + DATA/TROLL.LBM | Bin 0 -> 40506 bytes DATA/TROLL.SCR | 6 + DATA/TROLL2.LBM | Bin 0 -> 32138 bytes DATA/TROLL2.SCR | 4 + DATA/WALLS1.LBM | Bin 0 -> 51072 bytes DATA/WALLS1.SCR | 8 + DATA/WALLS2.LBM | Bin 0 -> 50174 bytes DATA/WALLS2.SCR | 8 + DATA/WALLS3.LBM | Bin 0 -> 51162 bytes DATA/WALLS3.SCR | 8 + DATA/WALLS4.LBM | Bin 0 -> 50704 bytes DATA/WALLS4.SCR | 8 + DATA/WALLS5.LBM | Bin 0 -> 51102 bytes DATA/WALLS5.SCR | 8 + DATA/WALLS6.LBM | Bin 0 -> 50656 bytes DATA/WALLS6.SCR | 8 + DATA/WEAPON2.LBM | Bin 0 -> 28524 bytes DATA/WEAPONS.LBM | Bin 0 -> 28980 bytes DATA/WEAPONS.SCR | 1 + DATA/_BACKUP_.LBM | Bin 0 -> 51366 bytes DP_PREFS | Bin 0 -> 324 bytes IDLINK/BACKUP.BAT | 5 + IDLINK/D.BAT | 1 + IDLINK/IDLINK.C | 928 +++++++++++++++++++ IDLINK/IDLINK.DSK | Bin 0 -> 2506 bytes IDLINK/IDLINK.EXE | Bin 0 -> 11594 bytes IDLINK/IDLINK.PRJ | Bin 0 -> 6040 bytes IDLINK/IDLINK.TXT | 41 + IDLINK/WALLS1.SCR | 6 + LIGHTS/LIGHTS.C | 164 ++++ LIGHTS/LIGHTS.DSK | Bin 0 -> 1213 bytes LIGHTS/LIGHTS.EXE | Bin 0 -> 87505 bytes LIGHTS/LIGHTS.OBJ | Bin 0 -> 2992 bytes LIGHTS/LIGHTS.PRJ | Bin 0 -> 5543 bytes LIGHTS/LOADLBM.C | 590 ++++++++++++ LIGHTS/LOADLBM.OBJ | Bin 0 -> 7994 bytes MYMAP/ACTORS1.LBM | Bin 0 -> 30774 bytes MYMAP/ACTORS2.LBM | Bin 0 -> 26062 bytes MYMAP/B.BAT | 1 + MYMAP/CRISP6X9.FNT | Bin 0 -> 964 bytes MYMAP/DOORS1.LBM | Bin 0 -> 36416 bytes MYMAP/DP_BPAL.$$$ | Bin 0 -> 1024 bytes MYMAP/DP_CPAL.$$$ | Bin 0 -> 1024 bytes MYMAP/DP_OPAL.$$$ | Bin 0 -> 1024 bytes MYMAP/DP_PREFS | Bin 0 -> 324 bytes MYMAP/DP_SPAL.$$$ | Bin 0 -> 1024 bytes MYMAP/FIXED6X8.FNT | Bin 0 -> 788 bytes MYMAP/FLATS1.LBM | Bin 0 -> 51366 bytes MYMAP/FLATS2.LBM | Bin 0 -> 35612 bytes MYMAP/GRAPHIX.LBM | Bin 0 -> 3682 bytes MYMAP/INTRFACE.LBM | Bin 0 -> 21866 bytes MYMAP/MAZER.BKP | 2001 +++++++++++++++++++++++++++++++++++++++ MYMAP/MAZER.C | 53 ++ MYMAP/MAZER.CPP | 2157 +++++++++++++++++++++++++++++++++++++++++++ MYMAP/MAZER.DSK | Bin 0 -> 1388 bytes MYMAP/MAZER.EXE | Bin 0 -> 122120 bytes MYMAP/MAZER.OBJ | Bin 0 -> 37820 bytes MYMAP/MAZER.PRJ | Bin 0 -> 6449 bytes MYMAP/MODERNB.FNT | Bin 0 -> 1060 bytes MYMAP/R.BAT | 1 + MYMAP/SCROLL.DSK | Bin 0 -> 356 bytes MYMAP/SCROLL.PRJ | Bin 0 -> 4928 bytes MYMAP/SHOWLBM.C | 395 ++++++++ MYMAP/SHOWLBM.CPP | 395 ++++++++ MYMAP/SHOWLBM.OBJ | Bin 0 -> 7151 bytes MYMAP/SM.BAT | 1 + MYMAP/SMALTHIN.FNT | Bin 0 -> 676 bytes MYMAP/SOUND.OBJ | Bin 0 -> 13347 bytes MYMAP/SPRITE4.LBM | Bin 0 -> 30918 bytes MYMAP/SV.EXE | Bin 0 -> 6843 bytes MYMAP/TDCONFIG.TD | Bin 0 -> 1183 bytes MYMAP/TIMPANI.FNT | Bin 0 -> 1156 bytes MYMAP/TINY4.FNT | Bin 0 -> 484 bytes MYMAP/TODD.MAP | Bin 0 -> 20480 bytes MYMAP/VAR6X8.FNT | Bin 0 -> 877 bytes MYMAP/VARSWISB.FNT | Bin 0 -> 964 bytes MYMAP/VARSWISL.FNT | Bin 0 -> 964 bytes MYMAP/WALLS1.LBM | Bin 0 -> 51072 bytes MYMAP/WALLS2.LBM | Bin 0 -> 51664 bytes MYMAP/WALLS3.LBM | Bin 0 -> 51162 bytes MYMAP/WALLS4.LBM | Bin 0 -> 50718 bytes MYMAP/WALLS5.LBM | Bin 0 -> 51102 bytes MYMAP/WALLS6.LBM | Bin 0 -> 50656 bytes MYMAP/_BACKUP_.LBM | Bin 0 -> 51250 bytes README | 43 + SGRAB/D.BAT | 1 + SGRAB/DOOMGRB.C | 122 +++ SGRAB/DOOMGRB.OBJ | Bin 0 -> 2238 bytes SGRAB/DP_BPAL.$$$ | Bin 0 -> 1024 bytes SGRAB/DP_CPAL.$$$ | Bin 0 -> 1024 bytes SGRAB/DP_OPAL.$$$ | Bin 0 -> 1024 bytes SGRAB/DP_PREFS | Bin 0 -> 324 bytes SGRAB/DP_SPAL.$$$ | Bin 0 -> 1024 bytes SGRAB/GENGRAB.C | 447 +++++++++ SGRAB/GENGRAB.OBJ | Bin 0 -> 6147 bytes SGRAB/LNXGRAB.C | 241 +++++ SGRAB/LNXGRAB.OBJ | Bin 0 -> 3335 bytes SGRAB/MINMISC.OBJ | Bin 0 -> 1508 bytes SGRAB/RAVGRAB.C | 622 +++++++++++++ SGRAB/RAVGRAB.OBJ | Bin 0 -> 8279 bytes SGRAB/SCRIPT.OBJ | Bin 0 -> 3430 bytes SGRAB/SGRAB.C | 769 +++++++++++++++ SGRAB/SGRAB.DSK | Bin 0 -> 2479 bytes SGRAB/SGRAB.EXE | Bin 0 -> 13587 bytes SGRAB/SGRAB.H | 14 + SGRAB/SGRAB.OBJ | Bin 0 -> 12687 bytes SGRAB/SGRAB.PRJ | Bin 0 -> 6956 bytes SGRAB/SGRAB.SYM | Bin 0 -> 331214 bytes SGRAB/SGRAB.TXT | 70 ++ SGRAB/SPRITE1.DAT | Bin 0 -> 2373 bytes SGRAB/SPRITE1.LBM | Bin 0 -> 34880 bytes SGRAB/SPRITE1.SCR | 1 + SGRAB/_BACKUP_.LBM | Bin 0 -> 34918 bytes SOURCE/3DNOTES.DOC | 56 ++ SOURCE/BLITBUF.ASM | 169 ++++ SOURCE/DP_PREFS | Bin 0 -> 324 bytes SOURCE/DRAWBKUP.ASM | 474 ++++++++++ SOURCE/D_DISK.C | 332 +++++++ SOURCE/D_DISK.H | 50 + SOURCE/D_FONT.C | 285 ++++++ SOURCE/D_FONT.H | 31 + SOURCE/D_GLOBAL.H | 7 + SOURCE/D_INTS.C | 563 +++++++++++ SOURCE/D_INTS.H | 131 +++ SOURCE/D_MISC.C | 147 +++ SOURCE/D_MISC.H | 14 + SOURCE/D_VIDEO.C | 541 +++++++++++ SOURCE/D_VIDEO.H | 169 ++++ SOURCE/GM.BAT | 1 + SOURCE/JON.BAT | 4 + SOURCE/MACROS.INC | 284 ++++++ SOURCE/MAKEDISK.BAT | 3 + SOURCE/MAKEFILE | 29 + SOURCE/MAKEIT.BAT | 1 + SOURCE/NEWMAKE.BAT | 1 + SOURCE/NEW_DRAW.ASM | 474 ++++++++++ SOURCE/Q.BAT | 1 + SOURCE/R.BAT | 1 + SOURCE/RA_DRAW.ASM | 577 ++++++++++++ SOURCE/RA_DRAW.BKP | 474 ++++++++++ SOURCE/RA_DRAW.ORG | 474 ++++++++++ SOURCE/R_CONTEN.C | 402 ++++++++ SOURCE/R_DRAW.C | 133 +++ SOURCE/R_PLANE.C | 619 +++++++++++++ SOURCE/R_PUBLIC.C | 662 +++++++++++++ SOURCE/R_PUBLIC.H | 188 ++++ SOURCE/R_REFDEF.H | 226 +++++ SOURCE/R_RENDER.C | 468 ++++++++++ SOURCE/R_SPANS.C | 418 +++++++++ SOURCE/R_WALLS.C | 275 ++++++ SOURCE/SOFT3D.MAP | Bin 0 -> 49332 bytes SOURCE/SV.EXE | Bin 0 -> 6843 bytes SOURCE/TODD3D.C | 1101 ++++++++++++++++++++++ SOURCE/TPE.RLL | Bin 0 -> 766 bytes SOURCE/VIEWSIZE.H | 7 + SOURCE/VIEWSIZE.INC | 7 + SOURCE/WHATMAKE | 29 + TEMP/MENU.DAT | Bin 0 -> 19788 bytes TEMP/MENU.LBM | Bin 0 -> 34800 bytes TEMP/TODD3D.C | 1012 ++++++++++++++++++++ TODD3D.EXE | Bin 0 -> 275578 bytes TODD3D.MAP | Bin 0 -> 33008 bytes TODD3D.TOD | Bin 0 -> 413183 bytes crashing bug.txt | 54 ++ 216 files changed, 20529 insertions(+) create mode 100644 DATA/AMAZON.LBM create mode 100644 DATA/BACKDROP.LBM create mode 100644 DATA/BACKDROP.SCR create mode 100644 DATA/BEAST.LBM create mode 100644 DATA/BEAST.SCR create mode 100644 DATA/BLANKMAP.LBM create mode 100644 DATA/CHACMOO2.LBM create mode 100644 DATA/CHACMOOL.LBM create mode 100644 DATA/DOORS1.LBM create mode 100644 DATA/DOORS1.SCR create mode 100644 DATA/DP_BPAL.$$$ create mode 100644 DATA/DP_CPAL.$$$ create mode 100644 DATA/DP_OPAL.$$$ create mode 100644 DATA/DP_PREFS create mode 100644 DATA/DP_SPAL.$$$ create mode 100644 DATA/FIRE.LBM create mode 100644 DATA/FLATS1.LBM create mode 100644 DATA/FLATS1.SCR create mode 100644 DATA/FLATS2.LBM create mode 100644 DATA/FLATS2.SCR create mode 100644 DATA/FONT1.LBM create mode 100644 DATA/FONT1.SCR create mode 100644 DATA/GETMAP.BAT create mode 100644 DATA/GRABALL.BAT create mode 100644 DATA/LINKFILE.ILN create mode 100644 DATA/MAP.LBM create mode 100644 DATA/MAP.SCR create mode 100644 DATA/MAP2.LBM create mode 100644 DATA/MENU.LBM create mode 100644 DATA/MENU.SCR create mode 100644 DATA/NAZI.LBM create mode 100644 DATA/NAZI.SCR create mode 100644 DATA/PALETTE.PCX create mode 100644 DATA/PLAYSCR.LBM create mode 100644 DATA/PLAYSCR.SCR create mode 100644 DATA/RGRID8.LBM create mode 100644 DATA/SHARK.SCR create mode 100644 DATA/SOFT3D.ICN create mode 100644 DATA/SPRITE1.LBM create mode 100644 DATA/SPRITE1.SCR create mode 100644 DATA/SPRITE2.LBM create mode 100644 DATA/SPRITE2.SCR create mode 100644 DATA/SPRITE3.LBM create mode 100644 DATA/SPRITE3.SCR create mode 100644 DATA/SPRITE4.LBM create mode 100644 DATA/SPRITE4.SCR create mode 100644 DATA/SPRITE5.LBM create mode 100644 DATA/SPRITE5.SCR create mode 100644 DATA/TEMP create mode 100644 DATA/TODD.ILN create mode 100644 DATA/TODD3D.ICN create mode 100644 DATA/TORCHES create mode 100644 DATA/TROLL.LBM create mode 100644 DATA/TROLL.SCR create mode 100644 DATA/TROLL2.LBM create mode 100644 DATA/TROLL2.SCR create mode 100644 DATA/WALLS1.LBM create mode 100644 DATA/WALLS1.SCR create mode 100644 DATA/WALLS2.LBM create mode 100644 DATA/WALLS2.SCR create mode 100644 DATA/WALLS3.LBM create mode 100644 DATA/WALLS3.SCR create mode 100644 DATA/WALLS4.LBM create mode 100644 DATA/WALLS4.SCR create mode 100644 DATA/WALLS5.LBM create mode 100644 DATA/WALLS5.SCR create mode 100644 DATA/WALLS6.LBM create mode 100644 DATA/WALLS6.SCR create mode 100644 DATA/WEAPON2.LBM create mode 100644 DATA/WEAPONS.LBM create mode 100644 DATA/WEAPONS.SCR create mode 100644 DATA/_BACKUP_.LBM create mode 100644 DP_PREFS create mode 100644 IDLINK/BACKUP.BAT create mode 100644 IDLINK/D.BAT create mode 100644 IDLINK/IDLINK.C create mode 100644 IDLINK/IDLINK.DSK create mode 100644 IDLINK/IDLINK.EXE create mode 100644 IDLINK/IDLINK.PRJ create mode 100644 IDLINK/IDLINK.TXT create mode 100644 IDLINK/WALLS1.SCR create mode 100644 LIGHTS/LIGHTS.C create mode 100644 LIGHTS/LIGHTS.DSK create mode 100644 LIGHTS/LIGHTS.EXE create mode 100644 LIGHTS/LIGHTS.OBJ create mode 100644 LIGHTS/LIGHTS.PRJ create mode 100644 LIGHTS/LOADLBM.C create mode 100644 LIGHTS/LOADLBM.OBJ create mode 100644 MYMAP/ACTORS1.LBM create mode 100644 MYMAP/ACTORS2.LBM create mode 100644 MYMAP/B.BAT create mode 100644 MYMAP/CRISP6X9.FNT create mode 100644 MYMAP/DOORS1.LBM create mode 100644 MYMAP/DP_BPAL.$$$ create mode 100644 MYMAP/DP_CPAL.$$$ create mode 100644 MYMAP/DP_OPAL.$$$ create mode 100644 MYMAP/DP_PREFS create mode 100644 MYMAP/DP_SPAL.$$$ create mode 100644 MYMAP/FIXED6X8.FNT create mode 100644 MYMAP/FLATS1.LBM create mode 100644 MYMAP/FLATS2.LBM create mode 100644 MYMAP/GRAPHIX.LBM create mode 100644 MYMAP/INTRFACE.LBM create mode 100644 MYMAP/MAZER.BKP create mode 100644 MYMAP/MAZER.C create mode 100644 MYMAP/MAZER.CPP create mode 100644 MYMAP/MAZER.DSK create mode 100644 MYMAP/MAZER.EXE create mode 100644 MYMAP/MAZER.OBJ create mode 100644 MYMAP/MAZER.PRJ create mode 100644 MYMAP/MODERNB.FNT create mode 100644 MYMAP/R.BAT create mode 100644 MYMAP/SCROLL.DSK create mode 100644 MYMAP/SCROLL.PRJ create mode 100644 MYMAP/SHOWLBM.C create mode 100644 MYMAP/SHOWLBM.CPP create mode 100644 MYMAP/SHOWLBM.OBJ create mode 100644 MYMAP/SM.BAT create mode 100644 MYMAP/SMALTHIN.FNT create mode 100644 MYMAP/SOUND.OBJ create mode 100644 MYMAP/SPRITE4.LBM create mode 100644 MYMAP/SV.EXE create mode 100644 MYMAP/TDCONFIG.TD create mode 100644 MYMAP/TIMPANI.FNT create mode 100644 MYMAP/TINY4.FNT create mode 100644 MYMAP/TODD.MAP create mode 100644 MYMAP/VAR6X8.FNT create mode 100644 MYMAP/VARSWISB.FNT create mode 100644 MYMAP/VARSWISL.FNT create mode 100644 MYMAP/WALLS1.LBM create mode 100644 MYMAP/WALLS2.LBM create mode 100644 MYMAP/WALLS3.LBM create mode 100644 MYMAP/WALLS4.LBM create mode 100644 MYMAP/WALLS5.LBM create mode 100644 MYMAP/WALLS6.LBM create mode 100644 MYMAP/_BACKUP_.LBM create mode 100644 README create mode 100644 SGRAB/D.BAT create mode 100644 SGRAB/DOOMGRB.C create mode 100644 SGRAB/DOOMGRB.OBJ create mode 100644 SGRAB/DP_BPAL.$$$ create mode 100644 SGRAB/DP_CPAL.$$$ create mode 100644 SGRAB/DP_OPAL.$$$ create mode 100644 SGRAB/DP_PREFS create mode 100644 SGRAB/DP_SPAL.$$$ create mode 100644 SGRAB/GENGRAB.C create mode 100644 SGRAB/GENGRAB.OBJ create mode 100644 SGRAB/LNXGRAB.C create mode 100644 SGRAB/LNXGRAB.OBJ create mode 100644 SGRAB/MINMISC.OBJ create mode 100644 SGRAB/RAVGRAB.C create mode 100644 SGRAB/RAVGRAB.OBJ create mode 100644 SGRAB/SCRIPT.OBJ create mode 100644 SGRAB/SGRAB.C create mode 100644 SGRAB/SGRAB.DSK create mode 100644 SGRAB/SGRAB.EXE create mode 100644 SGRAB/SGRAB.H create mode 100644 SGRAB/SGRAB.OBJ create mode 100644 SGRAB/SGRAB.PRJ create mode 100644 SGRAB/SGRAB.SYM create mode 100644 SGRAB/SGRAB.TXT create mode 100644 SGRAB/SPRITE1.DAT create mode 100644 SGRAB/SPRITE1.LBM create mode 100644 SGRAB/SPRITE1.SCR create mode 100644 SGRAB/_BACKUP_.LBM create mode 100644 SOURCE/3DNOTES.DOC create mode 100644 SOURCE/BLITBUF.ASM create mode 100644 SOURCE/DP_PREFS create mode 100644 SOURCE/DRAWBKUP.ASM create mode 100644 SOURCE/D_DISK.C create mode 100644 SOURCE/D_DISK.H create mode 100644 SOURCE/D_FONT.C create mode 100644 SOURCE/D_FONT.H create mode 100644 SOURCE/D_GLOBAL.H create mode 100644 SOURCE/D_INTS.C create mode 100644 SOURCE/D_INTS.H create mode 100644 SOURCE/D_MISC.C create mode 100644 SOURCE/D_MISC.H create mode 100644 SOURCE/D_VIDEO.C create mode 100644 SOURCE/D_VIDEO.H create mode 100644 SOURCE/GM.BAT create mode 100644 SOURCE/JON.BAT create mode 100644 SOURCE/MACROS.INC create mode 100644 SOURCE/MAKEDISK.BAT create mode 100644 SOURCE/MAKEFILE create mode 100644 SOURCE/MAKEIT.BAT create mode 100644 SOURCE/NEWMAKE.BAT create mode 100644 SOURCE/NEW_DRAW.ASM create mode 100644 SOURCE/Q.BAT create mode 100644 SOURCE/R.BAT create mode 100644 SOURCE/RA_DRAW.ASM create mode 100644 SOURCE/RA_DRAW.BKP create mode 100644 SOURCE/RA_DRAW.ORG create mode 100644 SOURCE/R_CONTEN.C create mode 100644 SOURCE/R_DRAW.C create mode 100644 SOURCE/R_PLANE.C create mode 100644 SOURCE/R_PUBLIC.C create mode 100644 SOURCE/R_PUBLIC.H create mode 100644 SOURCE/R_REFDEF.H create mode 100644 SOURCE/R_RENDER.C create mode 100644 SOURCE/R_SPANS.C create mode 100644 SOURCE/R_WALLS.C create mode 100644 SOURCE/SOFT3D.MAP create mode 100644 SOURCE/SV.EXE create mode 100644 SOURCE/TODD3D.C create mode 100644 SOURCE/TPE.RLL create mode 100644 SOURCE/VIEWSIZE.H create mode 100644 SOURCE/VIEWSIZE.INC create mode 100644 SOURCE/WHATMAKE create mode 100644 TEMP/MENU.DAT create mode 100644 TEMP/MENU.LBM create mode 100644 TEMP/TODD3D.C create mode 100644 TODD3D.EXE create mode 100644 TODD3D.MAP create mode 100644 TODD3D.TOD create mode 100644 crashing bug.txt diff --git a/DATA/AMAZON.LBM b/DATA/AMAZON.LBM new file mode 100644 index 0000000000000000000000000000000000000000..407cf97919fdc6bd505891768f406c1d1f7968c7 GIT binary patch literal 35426 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 literal 0 HcmV?d00001 diff --git a/DATA/BACKDROP.LBM b/DATA/BACKDROP.LBM new file mode 100644 index 0000000000000000000000000000000000000000..e673da4587e1e5d5c3c37aa5093f0cba483eec26 GIT binary patch literal 44106 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 DC~v)0 literal 0 HcmV?d00001 diff --git a/DATA/BACKDROP.SCR b/DATA/BACKDROP.SCR new file mode 100644 index 0000000..3d99e52 --- /dev/null +++ b/DATA/BACKDROP.SCR @@ -0,0 +1,2 @@ +backdrop.dat lpic 0 0 320 99 +back2.dat lpic 0 100 320 199 diff --git a/DATA/BEAST.LBM b/DATA/BEAST.LBM new file mode 100644 index 0000000000000000000000000000000000000000..138085c2832136c30fbcdbfb2ab6091dff7ec85a GIT binary patch literal 40384 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 literal 0 HcmV?d00001 diff --git a/DATA/BEAST.SCR b/DATA/BEAST.SCR new file mode 100644 index 0000000..2a8f0bf --- /dev/null +++ b/DATA/BEAST.SCR @@ -0,0 +1,5 @@ +beast_1.dat DSPRITE 16 16 56 64 +beast_2.dat DSPRITE 80 16 56 64 +beast_3.dat DSPRITE 144 16 56 64 +beast_4.dat DSPRITE 208 16 56 64 + diff --git a/DATA/BLANKMAP.LBM b/DATA/BLANKMAP.LBM new file mode 100644 index 0000000000000000000000000000000000000000..3cafa989196940e7ea0218f12a87ebc3f4889e2c GIT binary patch literal 2974 zcmeHJKWH0Q82_FB^a2@7OQ3@X7jE$2K@bfZG}!esb&GIL#061qc!LH73e|9f1`kKj zph1HMLpt2>h71}sl%nAc8V*&13mR_F5W)=_JRHS?Q9@8@Aius->O_VFS_&ZqzsL9Y zefRGBetaKy-?;aWfZLDC`$u2xAANfO;EuJ2-;KmASit7`XPGUIzAgi+nH%Vtjb1Nf zMpQDjk}aBDAv3lRM!meeoKB~c$z(JdX{}9U7>1orCkO)H_iMG9d8||_6^q4OF6TH7 zflJ^Vcmj-p2Z{xSzdI!X}dCM9*+YzIw@)Yu=k^QT-#OE;;AgOy?paH*Kl|0rEMvk%I;RF zxGD0R#oU)W&c^EoeHSlmZEd-(E2R`dec$8GOkx6L42JOA|T@4vhEgQ@))%D6kTW-GJR+1hOH-Do!$eE2?ih=&*&y5TnneCh~1#UC44r~d|gzATM@ jVH;^>{-@@n|JNIOI~!O2Ke2w>{99u&HdoGP|G~oF&VBN? literal 0 HcmV?d00001 diff --git a/DATA/CHACMOO2.LBM b/DATA/CHACMOO2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..bc9c50833d58d296c5878c5566977e029a1ca4f7 GIT binary patch literal 24094 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 literal 0 HcmV?d00001 diff --git a/DATA/DOORS1.LBM b/DATA/DOORS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..c0ab9f38b41b5966da6dab584555d22c8d42e437 GIT binary patch literal 36416 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 literal 0 HcmV?d00001 diff --git a/DATA/DP_PREFS b/DATA/DP_PREFS new file mode 100644 index 0000000000000000000000000000000000000000..755a793cbd3a1f9eebdbf118fb7cb3b2fffcac61 GIT binary patch literal 324 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

_tOZDmT~2cB zW$e_OsJeBByvaGq4%wgv_;t#yNS>IKlN@__a%a>6$4?a}CC82zl9I(UEp{Bjr^-s6 zmLYI_a-+nKtH2u9DA>`=AT2qDlb%90a_O{WEkJtg@{(iuofohipu-e-(5{Vp&{OmP zqMYO((0Pj?hdN=$|pa+bc=n2?zq+eNEy_|horj>}BW zKcr70Ab4D6GDNEWNW-??;GNKU5HSn5C&tfiBar5fApWC(DQoji`Mbarwp%y5#OY}bEV zngGRXPfyOI;E99uWKHO?%}*909ONexpM(5lC~}maoJrYq>;R5HW|W{D!(oe)1Z7QV zvdd5w5|Z6$Iwb2U0=pGk@`?c$uIC`(1QIm)q}&T^DV zm6IH0xP&=p6S^=1Q94K2ZoeqaeCHWY5Q92uBl^`%u~iUIFn*qZ)rk$N#{(`lrt$D98Q;}EcBE}Qx?mEY15Q#xhAD4 zw>06TVfr*>yQP61!1?@)(v)KfoPtf8rY!Wh?b4KE2@FwFrYVo-z<1*GG2i$!CZWO<5;hrPGul#Yvj-I5w4m+CM%`87xlHlx;rq(gVjC zn_-$V9XdEkQx>{Pr6~&`Q>Q79XHiJ>;3H8nB;?bS1IKZCHhr41IQ76sO?GL@5|x>y zDaT-jlQddi1=a)!Rrn(sNOQ$IpG1#Xmx3(a&fBH0KlR5~UuofMJVLkBYk*2KI z;p>^1rYUzJAf2Qs3uUF!lu5|+Y0BfcN~bB;L70Oy&rfJHVUWBfLG-aWz zRGKoq<rz!Io*0)a5lu22sG-V+qpMYE{O?f<5 z$uwms;ywpy$`EIZiXNzCY=&vdu>%ar%F>MHV0|S1dEe2WqbrV8Ix9E zGQ%`w6J}16rmT}1`!r=y+ew--{Tn=v(v(|)hl4a_(*_Q#IR4A0DeLq-;0)80=>t6{ zY05&^%_Y*5yXc_XNt&`^d=%XU6Z#Zs%Jey)gEZwXn`7!S`bcl)Y09(=I2AFI($vyv z%0gYqG-a`vaFV917zr5+)-_0_E0Ly5>kbEL%699HGWy_X=4r|?Sl}Q{S!gSrrc6>C zr6~(WCuzz7NOX{J6`E?%USGfPzNb&{wo6_w6Z zCR80{DoeHj8eH)9XNpW^Vsw(JZ1a7f*18QVwG^@eUPG!fKC2V&AmSxbmGi=$ za*lG9$1zTos|+`$&Q%`&381rFWlAlz$yLrgAH@Q<4o|f%Nvm6NQ42n3vZya=&2MH>rA-e+Z!HyZ_10bZAHyY4Ol zay?2kMcWi@L@!X0dNv~}P>H5!n<8HzUty<+9F0meMcWk3D^%!^6{tj0v`tZMp~3-K zfl4$*+Z1gqR5&XuP>H7K$wj=?a)F!VviL2j3BOB+Hm}di=oT{Qx1=Wi-k9e+D>&)5 zq$d9MPWmmWiNELNIXeU={g%|k-?e$p1A>!&OKRe8=XSmh_-SwW(7+v|sm;qb urq&@^Pn1}+O;K%Lwst@?jYcIFZBz6o920)4`uB5)bi^~R1?oS`v;PN$d}wt5 literal 0 HcmV?d00001 diff --git a/DATA/FLATS1.LBM b/DATA/FLATS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..db2b6135afc3f175875cc955bef47b5dc05b15ac GIT binary patch literal 51366 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 M<@VWSHiN1EAHf1qSO5S3 literal 0 HcmV?d00001 diff --git a/DATA/FLATS1.SCR b/DATA/FLATS1.SCR new file mode 100644 index 0000000..f28958e --- /dev/null +++ b/DATA/FLATS1.SCR @@ -0,0 +1,8 @@ +f1_1.dat flat 2 2 +f1_2.dat flat 11 2 +f1_3.dat flat 20 2 +f1_4.dat flat 29 2 +f1_5.dat flat 2 11 +f1_6.dat flat 11 11 +f1_7.dat flat 20 11 +f1_8.dat flat 29 11 diff --git a/DATA/FLATS2.LBM b/DATA/FLATS2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..bf818e9cc6ca5320577c1a42478e1abc94855636 GIT binary patch literal 35612 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%0ATvp zBGyJ-eD+|ENRJ-xCJ-ad;*dbg1vE@42dSDllNm|%Ksm}oHc+<0J4GnAVS8U7iNFv+ zvZ7iy=D;}ch2R1D0U`);AR(r9DLLa1(ip`~*hAbUD#6{S6cTNuAO$>12<{ATO^8E6 zq-il55FKEn7l@TWTq~$fD@EN&qc2dk3RiP%_#-?@^-ADV6gCmYv6I5O=af(F#}a$p z;#dViJFya>Q#|#+iY0&vurrlsfsFyMgBYp2M86F64c=Bhuo4iiI7|1xsL-hlASAJZ zt`0CpdiAW6a&*N60>JCkwp~8E!v_=j_FD#X+YPpjVpv`PpeEYh<7(l zwu)8mLHQ6%KY@_@a?~Lt!I;RL;k2iqZTxPy=};O6=G*lEi$1tP46SIPVmU04AXS`? zah32@trI9yI%NO|>*T%6TzJ~P2;e$k+cr@1I!XK^k1U{xI4uedoP{_-ABv6tT-#K~ z;Cl59Q51YE;DM-+4HiId>P0!+2>^E_j@|=Y$MYcjtbjJ}2tb?^wzU-GVJPndy)h61 zas$CB1>jB*T!d)eEr98nK3T=|!RT za3RXre3wMrM8Xo>Qn%Ozl<#r_9 z!3#x!CsZJ8$uTYOtU|Twn5qg5-L?v~icvc(b-e4MJ3yDZ{FH@&1PyFCveHmP&u9^} zD~448chT&_$3DuyrWgVypaG3CJ|4d|s~){>5MdvAj|ltuEMfViX=#QtDcPXbR{@$N zJP~{OXLml+0y)5g<2!^sIB?Xs{+S${;5*gQq+VTCKZZ}3wG@I@M6(DexcWeAHBvPoXSi7c1zVJR3$!$?fPA%P5Is0L1*;SpL|FV ztf%={wN^@nuylV?*GYOCXqcQ%h* z4()&z-|>*yR2^49bq_p$MNhjQ;0!2d?NMgoi&j^-dl8LZzm3K$T2-pUatyCoaM}D} ze%d^jQ?~|^rKfyX!Q<($E|7ewfFcJwZ#19 zi55{R&(vAO-XcXiR$M#GB4%t`+rd~lp3Z&BJ%4EK?`m$g^M>brPo?wR?Rsa<;I9bq z&1$!K^|&Q=zXkv6@-}Gevi~tvfp085jcrJ!-IV?gIN0;VE@}js&#o#SBCc;@?x?pg zX0GBZu7l%A6~dDxdf6;sMOY7r)UJZ)fy;X4DI>w&W=slgjEswW)4cJ7lTKlmtqgY} zk5|XzIPGXVdzXid4o{SLPro~9XqAl`@u+jhja?-e*;ju$D}gizk)3yB{g%ck*XQbW!|h?@ohtLC@@d`&Hp` z(AArpJ2^Z#C&TvbO5l04Q8+cfJ;V}=v-Ft~4_e{g8$7KeV%#sB~S literal 0 HcmV?d00001 diff --git a/DATA/FONT1.SCR b/DATA/FONT1.SCR new file mode 100644 index 0000000..0899b8a --- /dev/null +++ b/DATA/FONT1.SCR @@ -0,0 +1,2 @@ +font1.dat font 32 126 + diff --git a/DATA/GETMAP.BAT b/DATA/GETMAP.BAT new file mode 100644 index 0000000..3f6f27c --- /dev/null +++ b/DATA/GETMAP.BAT @@ -0,0 +1,4 @@ +..\sgrab\sgrab map +..\idlink\idlink -b +copy todd3d.tod ..\source +cd ..\source diff --git a/DATA/GRABALL.BAT b/DATA/GRABALL.BAT new file mode 100644 index 0000000..fd9ff03 --- /dev/null +++ b/DATA/GRABALL.BAT @@ -0,0 +1,20 @@ +..\sgrab\sgrab doors1 +..\sgrab\sgrab walls1 +..\sgrab\sgrab walls2 +..\sgrab\sgrab walls3 +..\sgrab\sgrab walls4 +..\sgrab\sgrab walls5 +..\sgrab\sgrab walls6 +..\sgrab\sgrab sprite1 +..\sgrab\sgrab sprite2 +..\sgrab\sgrab sprite3 +..\sgrab\sgrab sprite4 +..\sgrab\sgrab sprite5 +..\sgrab\sgrab flats1 +..\sgrab\sgrab flats2 +..\sgrab\sgrab playscr +..\sgrab\sgrab weapons +..\sgrab\sgrab font1 +..\sgrab\sgrab map +..\lights\lights playscr.lbm 59 +..\idlink\idlink -b diff --git a/DATA/LINKFILE.ILN b/DATA/LINKFILE.ILN new file mode 100644 index 0000000..9524b47 --- /dev/null +++ b/DATA/LINKFILE.ILN @@ -0,0 +1,149 @@ +todd3d.tod + +palette.dat palette +lights.dat lights + +$OPENCOMP map +map1.dat map +map2.dat +map3.dat +map4.dat +map5.dat +map6.dat +map7.dat +map8.dat +map9.dat +map10.dat + +$OPENCOMP playscr +playscr.dat playscreen + +$OPENCOMP font1 +font1.dat font + +;=============== +; rendering data +;=============== + +; sprites +LABEL startsprites + +$OPENCOMP sprite1 +sp1_1.dat brazier +sp1_2.dat +sp1_3.dat +sp1_4.dat + +$OPENCOMP sprite2 +sp2_1.dat chacmool + +$OPENCOMP sprite3 +sp3_1.dat snake + +$OPENCOMP sprite4 +sp4_1.dat urn1 +sp4_2.dat urn2 +sp4_3.dat bowl +sp4_4.dat cup +sp4_5.dat jade1 +sp4_6.dat ankh + +$OPENCOMP sprite5 +sp5_1.dat atk1 +sp5_2.dat +sp5_3.dat +sp5_4.dat atk1_mx +sp5_5.dat exp1 +sp5_6.dat +sp5_7.dat exp1_mx + +LABEL endsprites + +$OPENCOMP weapons +weapons.dat weapons + + + +; flat floors / ceilings +LABEL startflats +$OPENCOMP flats1 +f1_1.dat ; Stone ceiling +f1_2.dat ; wood floor +f1_3.dat +f1_4.dat +f1_5.dat +f1_6.dat +f1_7.dat +f1_8.dat +$OPENCOMP flats2 +f2_1.dat +f2_2.dat +f2_3.dat +f2_4.dat +LABEL endflats + + +; walls +LABEL startwalls +$OPENCOMP walls1 +w1_1.dat +w1_2.dat +w1_3.dat +w1_4.dat +w1_5.dat +w1_6.dat +w1_7.dat +w1_8.dat +$OPENCOMP walls2 +w1_9.dat +w1_10.dat +w1_11.dat +w1_12.dat +w1_13.dat +w1_14.dat +w1_15.dat +w1_16.dat +$OPENCOMP walls3 +w1_17.dat +w1_18.dat +w1_19.dat +w1_20.dat +w1_21.dat +w1_22.dat +w1_23.dat +w1_24.dat +$OPENCOMP walls4 +w1_25.dat +w1_26.dat +w1_27.dat +w1_28.dat +w1_29.dat +w1_30.dat +w1_31.dat +w1_32.dat +$OPENCOMP walls5 +w1_33.dat +w1_34.dat +w1_35.dat +w1_36.dat +w1_37.dat +w1_38.dat +w1_39.dat +w1_40.dat +$OPENCOMP walls6 +w1_41.dat +w1_42.dat +w1_43.dat +w1_44.dat +w1_45.dat +w1_46.dat +w1_47.dat +w1_48.dat + + +; doors (doors are the same data as walls) +$OPENCOMP doors1 +door1.dat wolfdoor +door2.dat wooddoor + +LABEL endwalls diff --git a/DATA/MAP.LBM b/DATA/MAP.LBM new file mode 100644 index 0000000000000000000000000000000000000000..67ca2257ec284c50c0ce6cebc34271a64addca0f GIT binary patch literal 10786 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 literal 0 HcmV?d00001 diff --git a/DATA/MENU.SCR b/DATA/MENU.SCR new file mode 100644 index 0000000..25290d6 --- /dev/null +++ b/DATA/MENU.SCR @@ -0,0 +1,2 @@ +menu.dat lpic 16 16 184 104 +binky.dat lpic 208 16 24 24 diff --git a/DATA/NAZI.LBM b/DATA/NAZI.LBM new file mode 100644 index 0000000000000000000000000000000000000000..bb969354c2c86b98e50fbb4abfd5de09cbc188fa GIT binary patch literal 26450 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 literal 0 HcmV?d00001 diff --git a/DATA/NAZI.SCR b/DATA/NAZI.SCR new file mode 100644 index 0000000..d0a79f7 --- /dev/null +++ b/DATA/NAZI.SCR @@ -0,0 +1,9 @@ +nazi_1.dat DSPRITE 37 32 22 48 +nazi_2.dat DSPRITE 113 32 17 48 +nazi_3.dat DSPRITE 187 32 14 48 +nazi_4.dat DSPRITE 255 32 15 48 +nazi_5.dat DSPRITE 38 104 21 48 +nazi_6.dat DSPRITE 113 104 16 48 +nazi_7.dat DSPRITE 183 104 14 48 +nazi_8.dat DSPRITE 255 104 17 48 + diff --git a/DATA/PALETTE.PCX b/DATA/PALETTE.PCX new file mode 100644 index 0000000000000000000000000000000000000000..651811950bf3e99f4a57cd282059361441854ef0 GIT binary patch literal 48479 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

7A8s<`G5AfNNi3s^hdpQa;bU&HO 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 Tf3)+#g}?pF&fnffb9eqf6p!AV literal 0 HcmV?d00001 diff --git a/DATA/PLAYSCR.LBM b/DATA/PLAYSCR.LBM new file mode 100644 index 0000000000000000000000000000000000000000..e31ff2a6ba354997ac0698fd3545048321cd18f5 GIT binary patch literal 67784 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 F{{wSa{~iDU literal 0 HcmV?d00001 diff --git a/DATA/PLAYSCR.SCR b/DATA/PLAYSCR.SCR new file mode 100644 index 0000000..fe7d74f --- /dev/null +++ b/DATA/PLAYSCR.SCR @@ -0,0 +1 @@ +playscr.dat lpic 0 0 320 200 diff --git a/DATA/RGRID8.LBM b/DATA/RGRID8.LBM new file mode 100644 index 0000000000000000000000000000000000000000..b48569dddc49a7aa24c7e29417cb92d172e5db1f GIT binary patch literal 32844 zcmeHQKWrLT82@~BLMkF%BUhr52O=?eU_dGZQW14D*LW{7NTzkc7ldj}?U6AV<}HDDi) zcN~xJ@9+EG_nyz+Bpy8gc)YfL@4?-B5ALr4z-J3z!5`SdEm**(8#k#Reem@nb73hX5P;&rEg z)P8%=dfR#4+u!ZAYj5_pU$?eizbG9(+w9bH`#agas_~+nY7`Uo%~)+Cx}6DE(!o+P zP>8SQqrPm|YXnzP0Z-DuoLF6suP(=Ydeo;!yn5KH3xGEOhXDHkEr4eLHGnEW2_O%U z0Z0Nw0fGQN01to=Al`sD0?`4{2GIi10Pz&WHi#_{MG$#7GT>zbb|X*;;$`t(C)zy- zcMgKBeSdw=S9$I&?s_t{>20+OI* zRLFQA2nIzsCSqxk%nPF=Hnv5+E{YAYwI{as#nX=1Jrd7fi@i5u|E)Oaix(hvp;vQt ztFFVc>s7(^GVg9>-3`NCPwBOUUXAJHh+Yio`GB7F>xL9h@5t5dxDMN{S1s4ehPzdF zH+J0hie4-0)q-Bm>BX#`PwUyFZg{+&72k^2@AUmh4)kqmF zBa2oV3QfisZs2nNr`+ZKZ?(&PG-hi&^Yi@sKYaV}M`Zs?ScfkfO#um^ zHHG}qn(CFXUyXeZKn{un(nl}Kce(D5gWEZF`BJoqw z8~xhtsaV9nC4H&yGm?noMsO)EhNZ9~Pa>P@O@b#93-*!o+e7Cy z)b5?ZWpou<1lqe4hT{i%M?B=r=h_Wq5yf#aWG~3Jl+XpW;uCtGWY(0XH6kH8eWoqa zApf7ShD3FOV4xvu$RXJaiUK(`TM`decy8x0kh;6(O-V;wAwM`G$nq`NM{A9>o#_v#H>jM%t_nWRmvRq{CLVI-?!q~ zgpCyj(aB7xnXFY|b+UFOXnmmfe<(`)>vbep%B?4B7X*UvP!zIe9Q4hI&76*7zrbVR?WLo6VR!73y;@v5 zmb>WW)<2%p%DHamx>d&dU$(>O!a2p_o}hB4k2k(>uS{}J|7gc5-&K7zJ+dn=R*jNf z7H!Tl2U8_>1S&h6lQ>B}J(uG3rKfTedoK)EUmgJ+8+#N3Tw1y1MAo*f^ouR%D7Ts1 zc&07;V|#1(oW@CH>kK)nKW~&90oZxVySQU*_hm<^ne7a%Dzc++;LU1N9$ONJc15wJ zaZrV2OCo1$bQJE`^L=)zcFZIT3B~PPwA+lG3>7dAwp_3!(E(CqJe#&K$03s}&Oy+G z9S1nf&<0_)PCZoZW=o^F8G|i(LnUu^G+L-*Z^>Xs;K(G)qL*KsHbKYU(#KAYDv#is zEe&$TzkqDRQpSDjHSGF=e!H$J(3B&RK?V z$1FN=1xR_nW=t9Jm*y}mm!!?=C*3-bEs1J*k}-+a%!M(9&ag%K4-mMz^9b%Rt|SlE z3mB(l2st;%waIBXMnMHToFlb`JDf?pZQq%eud1ztN1_kE)#!I|hwEA!{-YD?F2t(k zCrvZq!CZ{(!n6V&)p7(!3wRh;Y@K0?=6`(RIW-u;9lrB^XXLgP-mr%q#(OPoxM3?q nXPBZRrdb&F*xs{lPTO@7JNld1xlYGV=jL)7UuI;VD7U`>)SE#d literal 0 HcmV?d00001 diff --git a/DATA/SHARK.SCR b/DATA/SHARK.SCR new file mode 100644 index 0000000..2e5e880 --- /dev/null +++ b/DATA/SHARK.SCR @@ -0,0 +1 @@ +ogre_1.dat DSPRITE 16 16 37 55 diff --git a/DATA/SOFT3D.ICN b/DATA/SOFT3D.ICN new file mode 100644 index 0000000000000000000000000000000000000000..dc8d0e6e01124c47aae0f2913f4fbcf2b70193e6 GIT binary patch literal 2872 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 literal 0 HcmV?d00001 diff --git a/DATA/SPRITE1.SCR b/DATA/SPRITE1.SCR new file mode 100644 index 0000000..e8c2c83 --- /dev/null +++ b/DATA/SPRITE1.SCR @@ -0,0 +1,5 @@ +sp1_1.dat DSPRITE 24 19 48 61 +sp1_2.dat DSPRITE 96 19 48 61 +sp1_3.dat DSPRITE 168 19 48 61 +sp1_4.dat DSPRITE 240 19 48 61 + diff --git a/DATA/SPRITE2.LBM b/DATA/SPRITE2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..9dfc6ceff340cdc1db90a9463c5a6e298ab9d270 GIT binary patch literal 28862 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 literal 0 HcmV?d00001 diff --git a/DATA/SPRITE2.SCR b/DATA/SPRITE2.SCR new file mode 100644 index 0000000..4ecbf3d --- /dev/null +++ b/DATA/SPRITE2.SCR @@ -0,0 +1,2 @@ +sp2_1.dat DSPRITE 19 16 58 64 + diff --git a/DATA/SPRITE3.LBM b/DATA/SPRITE3.LBM new file mode 100644 index 0000000000000000000000000000000000000000..ee8e8a251f5e126ff9cf0f7b1c3c615c485f619c GIT binary patch literal 35836 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 SKkIGdI^*#3v)-OmZ~qUek=1zs literal 0 HcmV?d00001 diff --git a/DATA/SPRITE4.SCR b/DATA/SPRITE4.SCR new file mode 100644 index 0000000..7f32b1f --- /dev/null +++ b/DATA/SPRITE4.SCR @@ -0,0 +1,7 @@ +sp4_1.dat DSPRITE 29 36 34 44 +sp4_2.dat DSPRITE 105 36 34 44 +sp4_3.dat DSPRITE 175 56 37 18 +sp4_4.dat DSPRITE 254 53 17 19 +sp4_5.dat DSPRITE 25 108 47 44 +sp4_6.dat DSPRITE 111 101 23 49 + diff --git a/DATA/SPRITE5.LBM b/DATA/SPRITE5.LBM new file mode 100644 index 0000000000000000000000000000000000000000..537cee4784f44f111db3b860674cc9f45a56106d GIT binary patch literal 20682 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 a?>K8ds{TF;`m167KX0o?NH^Uz=)VE>Y$6^2 literal 0 HcmV?d00001 diff --git a/DATA/SPRITE5.SCR b/DATA/SPRITE5.SCR new file mode 100644 index 0000000..903a3c4 --- /dev/null +++ b/DATA/SPRITE5.SCR @@ -0,0 +1,8 @@ +sp5_1.dat DSPRITE 16 16 28 28 +sp5_2.dat DSPRITE 52 16 28 28 +sp5_3.dat DSPRITE 16 52 28 28 +sp5_4.dat DSPRITE 52 52 28 28 +sp5_5.dat DSPRITE 88 16 36 36 +sp5_6.dat DSPRITE 160 16 48 48 +sp5_7.dat DSPRITE 232 16 48 48 + diff --git a/DATA/TEMP b/DATA/TEMP new file mode 100644 index 0000000..52440f8 --- /dev/null +++ b/DATA/TEMP @@ -0,0 +1,200 @@ +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 +atemp 00000000 btemp 0 ctemp 00000000 dtemp 0 diff --git a/DATA/TODD.ILN b/DATA/TODD.ILN new file mode 100644 index 0000000..cd325bf --- /dev/null +++ b/DATA/TODD.ILN @@ -0,0 +1,62 @@ + +soft3d.dat + +palette.dat palette +lights.dat lights + +$OPENCOMP map +map1.dat map +map2.dat +map3.dat +map4.dat +map5.dat +map6.dat +map7.dat +map8.dat +map9.dat + +$OPENCOMP playscr +toddscr.dat playscreen + +$OPENCOMP font1 +font1.dat font + +;=============== +; rendering data +;=============== + +; sprites +LABEL startsprites + +$OPENCOMP nazi +nazi_1.dat nazi +nazi_2.dat +nazi_3.dat +nazi_4.dat +nazi_5.dat +nazi_6.dat +nazi_7.dat +nazi_8.dat + +LABEL endsprites + + +; flat floors / ceilings +LABEL startflats +$OPENCOMP flats1 +f1_1.dat ; Stone ceiling +f1_2.dat ; wood floor +LABEL endflats + + +; walls +LABEL startwalls +$OPENCOMP walls1 +w1_1.dat ; green brick +w1_2.dat ; wood slats + +; doors (doors are the same data as walls) +$OPENCOMP doors1 +door1.dat wolfdoor + +LABEL endwalls diff --git a/DATA/TODD3D.ICN b/DATA/TODD3D.ICN new file mode 100644 index 0000000000000000000000000000000000000000..f1fb9c199406b8c08963184f3b04be46db95cbe0 GIT binary patch literal 3510 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 W8~C>#`~8xc^nZe3@&C`q>Hh&^1FMMu literal 0 HcmV?d00001 diff --git a/DATA/TROLL.SCR b/DATA/TROLL.SCR new file mode 100644 index 0000000..729b3fb --- /dev/null +++ b/DATA/TROLL.SCR @@ -0,0 +1,6 @@ +troll_1.dat DSPRITE 26 16 24 64 +troll_2.dat DSPRITE 74 16 24 64 +troll_3.dat DSPRITE 122 16 24 64 +troll_4.dat DSPRITE 170 16 24 64 +troll_5.dat DSPRITE 208 16 48 64 + diff --git a/DATA/TROLL2.LBM b/DATA/TROLL2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..bbbec9db3ee4487b8ad409834edc4718a8496247 GIT binary patch literal 32138 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 b-)cf@{)p}L9`PgJPR}#y?nl1$%(wpo4`yeN literal 0 HcmV?d00001 diff --git a/DATA/TROLL2.SCR b/DATA/TROLL2.SCR new file mode 100644 index 0000000..6641971 --- /dev/null +++ b/DATA/TROLL2.SCR @@ -0,0 +1,4 @@ +troll_6.dat DSPRITE 16 16 56 64 +troll_7.dat DSPRITE 80 16 56 64 +troll_8.dat DSPRITE 144 16 56 64 + diff --git a/DATA/WALLS1.LBM b/DATA/WALLS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..4f00a240bebf89712f241550203c9eb5c7b22fa6 GIT binary patch literal 51072 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 literal 0 HcmV?d00001 diff --git a/DATA/WALLS2.SCR b/DATA/WALLS2.SCR new file mode 100644 index 0000000..c2df4cf --- /dev/null +++ b/DATA/WALLS2.SCR @@ -0,0 +1,8 @@ +w1_9.dat wall 2 2 8 +w1_10.dat wall 10 2 8 +w1_11.dat wall 18 2 8 +w1_12.dat wall 26 2 8 +w1_13.dat wall 2 10 8 +w1_14.dat wall 10 10 8 +w1_15.dat wall 18 10 8 +w1_16.dat wall 26 10 8 diff --git a/DATA/WALLS3.LBM b/DATA/WALLS3.LBM new file mode 100644 index 0000000000000000000000000000000000000000..a1e2710fbfe8f0f22d4be1265bf1f510d9642221 GIT binary patch literal 51162 zcmeIbUu<0WmFIa`ltkH*McZ;BRn@Kgw{AI(+c7;dS@-{qX>KWPr`y4J0b|>XxCaL8 z1p=%e{E!D(B&&)nHmHU^FL9PU;W?T zTl^Da@lU?9q$tWGQ{Ptp1CPo{Ws2X&PssJNfAY-t6lGeT=D$;?PMte<&bI9*pL{Y1 zf{Pa~zWCycue|cg4}S22AO7%%{eJ(QciwsT-FM%A|NRd>_~642Km6#UkAC~x-+uh@ z$De-sX_jT5{_?$#fAQmw-@o+nyRZN5r>|W3@yow?`^Aq|Uij6e=RbV&*}r`w`QY{7 z=dZTkfBC|DFFpD0i;rjjaAoWFAAR=Q4?nx|H=q9c=bwJ`-ar2GXaDfwkN@Fs`@j3e z53juc#;@Of{g*#|4TLQ-v8mn_kQr~&t47QdHF*B#V0R4|LB{~+OG%tD;Mf7 zJ$dfM$Irg-=-KBVJ$uofeb$~$^w~h4%@pMy73Ft|@@qx;P*HxNDDNrCPZg!FC~qpt ztBUfXqCBf87Zk--lyi!bWlHvsO7?ptyP{+tDcOfg_JNZ9TP6FMlKoi8R+Q{b<@c{B zzj{IWd7`{?fww*X>6K?c{%vsOw--MA_2cjV(thV}^p&5Vd-c7uFZ^^idHd9pmuB=g zX3oB<%)G29FYp0-4d@+3Sy7ZX6y=rtJ&B?`nGfhJH{@UqE?mfhi`m7OvlrjYUg>8) z_*wSm``O9|*^hsj{p{D-zrB+E{P)@4{6qH3f6RXUS@zql>~EFq=gOz=&3ydRncuxV z^P5XEzk2i3hp(Ud;FVMFzcl;a3$s7HIQw=oyV9P0^U2xQAD?|C7tg1^pZWO8%I;N4U2zcc&Z+p|BtH2d}&vn#L9zWMU(>o3l}a!x;2x9j@jx_!ZZ zy#4r-$&(i@UI?CVCocxizWnU-uUvfL_2*xD<=m-L`t0oEXV13l z^=Ebcg-0KK>G8*3ee%K^?e?W0dHdOm?_7NT-REC?|HYR+cQ_Iikdw8 zEV}yq3opF*;!7{R{PN4MzWVCxKY0C(H{N*jhi_h5L2)m={p0>SKm8#4MUb^W%YL?% z1=&aMWj}3i{Y|#@CYqZqeeZiHgYv&B6q;g94&UVrwV|LH~kJXx0~ zj=eq@U(2PU7*FoL{_{6>U;nH3c3-2+qyCEa_x|<&_{V?xKPk%T&z0{f|LlW}OnD)z zY-IVr%EtJwZ0D~7Kc^^pr*tSycmFFs<_>-<%5dX(GuZuaV`KNV8SL*FWkXT^SjHDv zyZ>z{yRQRlKhJD2wi#7-5-aqb)IH<4TBvPo9N?K+>fS$UwKF!=F%nmEEz{7Nnr4|B z%AGtTW2*#7GK`-}>T%rk!!X&{;EBKwLZ6>oJ##g_fAq49D$6czR8-qY9H*+8P1W_d zP!xVuUCY%Q4bwLw*I}G{Jwq#7cbuY?jOuySu@k3eHjPAgLN1V)V^@7GWL&mpN6qF< zo=F@lX*NC6G4oc1#LzPuC2BJcqNEgM4gS;HbuV{YU@$CuZVlEoWncXKD)z;l+#3)hwpzj-PS=?E7KqnZ)pX+p#RY zXtg7^#Pt%@RIPVRFKltKq429}E!f|EE~@DZQHZ9Ep7Fw<^i1MeiRA=dOIpd;YO3YO z3yGhY{0q21N|s;s+}eC2t)21Y7L=c<7thqBmE*VzzQstSRY}vl*a;HNv0~p-9mdA5 zs^;3Z(bgVbaAonn$ zMlIFPw~SzKBPxTV!|Xe%mn5;V8FxH0^ts5*V{Sr|T_#kk=`~fg<96AEh8_m7FsixS z{)fb}lE!ApOV>_d?+!H<5dpQMHBbM!~N)qtjwW z$C7)@H;h=r5P5dwhg{?aat|YF+o`L}r~0{@7}0!i535!fTM0(ZNg56pn9UpP=rFmu zr~MquE5l28YO;C7>%^YMMPV$BX(C>A->;22i%kmLVBc=yyYwPLYSbwE^d37WxK4jmsSX&#c4f=z% z{^joK9<4-BGSL&OYs+iP{n01LCSu>8(C0=Bx+^Q)es}LlEWWVB{%7Oy?nZax?>4UT z=Tu%Jx^S{mgj$SCy+7 z^RG;08^df`W`2$9YqBF`RtodaWNv9TtjN>Mb%;aL9MFgqrfT%X)|%T|8Bw?!gfxgKW5vnWfUomsv_T(z!~kUYIznU+re zztdMqR97(u6{f}vMPCpFGc6uPXkrcI_q4o?#lwr+BLg9(BG;U+Y6m;M;hM~d6(a&b z6ExAsyq&NJi}L@b;%)&-6FO=Wx6u)+yCSqWdFZbc6(Z+l}qlh zkKB{;9iY3LU7x?%3l+KN!@D)_iJKjH+dF+IytFvEoBdo>j-i^eQg46v@;iLfp30xF zvfDe9or)}syMKM|W&^mJ^Tqn-AA3}f2awYd&A0G$BPVsI4?B($)Ra5S!#-ZT+08uY z^9Q^6vi3**?2r#5H^?F@OwHjQ$8Pm-kJmY^eXjofT8Ue}PXsI2`f!g^8AkY%4P`Dh zj~PL=t`(2!=yCtoS2w==9<~WD9DWpva*d7Z&hBfg^2{7j@t}%yMvskyUT<7ezJ1U( z*T4UW`be(t_n_C;@Y(;Qu!j>5g!YMi>Ig>c&+%J!h!uXJOX3Uu!zPMxHZC!qlud zmPZ1SGz_uzp;oapZ5XCnW+~2gG8OWHl`o~;!;M;LoMz3u)i{-Kyy`~L#pyX!v$l;a zT=0{GY&l`@Ky%3phoNa&zGXENhYQWHB;RW}rW=Nu=6J5>B~j=YGVOb)hk2PrtyZ1| zIp*8Wq7cd_8?H#h(#b@S%{P*UW?FO=2Abn1f$12g?II1=Nf41`A_d;+gc>P{G&~k* zfni?VXx{@}h=1Qbj@quNsI`4frEu`d#y0LtR@h^6sz}Fm0@pP~JlG)qIS$G|838Lo zB%Qd4W~J^4%Uz)E0LhR<*GP_%ueqjt;}$(2>@U5CThC%zW>F|h0f+Ml{nybN&+Lv5zzv))`2v3%|3J($jy-@~nD zabh%!v0)hn=eH`_9Cy=qn^a?r#DZN3ZQo*TnX2xl)-1_!1jgIMp2R_rhT9m_XHHBmO6bg})0P>@AnJLFJ{UWtvT7lBC*w zZrt>O7+Z^zxeq-t3~Gx+S6Vmk12x;-hx6t1ajUtU+?mS_8uPfAUq5i09yZ1k@iZ;O z)AX$XjREgqbP-)!G$u~H8As!dxTDmV!9lfMP2ABpZ_$Tfrcxi;m(|BD=W=2+mmBQN ztcb_;0^Cg#i8M5fEV`n3O)HHn7~(Xc@X2v-*ILZ8uI1@Qh(qT|!=?!)|I`$rr|Tkpw;w2Gd|YIbKC^k%--0;&9@C zSrk(FWMgVB_(Sqf@rk5Wt<_Caq!7oHRyLcdKNa|&hm>wm3iXF%hAC0o*mBa~1XUwG zC77u{42EImSML1X0zjnq{~Bk(R(xYudE}tHw^8PX`u)`NVEhatvDIyDh*F2)WlMip{x&GEa-V)$U3j|s^wXA+T3Iy>rmOWJ_`LdX z{b@>lqQLjTt&Zh5hiiC7uhrBWM!Kac*0osK8R79_RK@Kmd4Mx>y3S~An_`xrnW(8T zYjFi)u;Qdj&zd=Go^3JP(6&^=vu&%D&H^7*@4~hT5pjFU(T_ zTdM_6SF0B;RI5+V8!QE{4Io)S`J>c7X*7etb*SUPuO7aO2av+9X*{|!4JxVlS9tw6 zR++&K^9Y)SVDjLI#76*^Gx$aWfMll>ZW>@E*>Z?y)I^6>1Ym$be-B|-Ee$&!4>$PD~4E52h~D0 zCyt_v+GrHU?uqzP%)8_M^onI}Jjyeo66p4wS(&NVcxl~AsSDr33Y z#RAcqsd?7Yn{P5(rdH^~^fiu&hSI zwhS|M9`SiFOh1~TNkOgv)M@*Ogf-*bZy^y`MNP9gOw=$4@>QC|p~rp}iR?6S&8y0{CzqCA ztIscJ4Ql~AYw7d4{BJc>_34J|G~2d`WAr^UG7>7FS+VGMknd@ZqK^m5;~33k)-qd^ z)avFKD5k;r7#ri_sIQxfg;9_oY*{+bARX7U0GUA~yL=l&<&Kt-X?j6&zE&gPV-;2m z`Gie7K|JF&l*wOHs*`KSs_NQ8yNQTGip&?&NJ)kfg}Ur}&j&WA5?r5xN0yQxFklB; znj`Asq4Fq-nQXfc+kR~7W0VL`jBR7+WZvxVX*gCPnol-PAP^f3Pwg{d)Z(lF`}tz^ zkRm`Q&(~5TOCAYDU$E;AtB4Zaahpo$nAbK=DC6s|(?^v96~6DZwUDzMOdEs|Zu!-~ zx2xwZO>Z~tmaHP*X%bIqdJa*Oo!y9tcU{s2ge$*mhL6Ok3Q)>+q+Dh8+ycl;s@}B$#mx zjLwmEF*BaWXUQ>ai)9Yu%suTyHn7YiV8f8N6NTX(FWxw|E92eA)SUlW@)+kpWaV%! z1S`wRAGbkE4<{kO^IRqs#@CuOn(w95ksLrWye(R1aK;I zg2RCwewL_$!*l0><^%n_@JB!SSHwgmzCd(bpAq8_F-K`oNhEqRRkTi-Udyo;+BH24 zQF=ezdQSW9GofYMwd#3e!C5d}w=L!X*X@`Z2NBARA1XI~%8AV;l4yAK=$6eZ;Ok*N zboO)tL9GHx$FaSwW?qGLmBydz(^0Sn*eYW;b4cO3n9o}0KF#IKq>X%*IdoPQ`F`|-@}nVck%ldFMj8bpZn8i5DTJc zXef?8AL1xv|Jx)GwA07A(KxQ_!}qpc(>SbR-?oF(;|>zlsDU~k&*5{d#*+Y>$I|y? zE0s?~H2_S-&SWH;awhY^xd}ecaRmVMiKdquMMFn6fALp8$)&?gFpva8u?*~L@T;m| zdecDrwT($9nqLQH0O=cAg|M}0;i}w}c5$U9jhZi)%2$G19nbnjS5uIF9>No2H z3-Q|atJ!N=c-#(e)dR3%XR84YQgKcr)EV2V%^|V^LUJ0ys(XxT3Nvp+9yv?DqYYGDygZ!3V zyKtc~&mwZ7zzLsw?)!hfb+I9uQ|L{@b&Y5dy%AW7k&#nrWcqH_f#JRO>Pvt2XW#$+ ztFOIAIOJA+oGJIgwj;Hk7-7&@1=SRrJi+S7CPFw&1P{o-i;1-CVp&OMWrED(20qj_ zMiS9=B=VPk_1FLUum9>VbCZI(L}fe-AO|1gc-Wfe7P!|oRAr|N&@ot+9gJmg=n!pr z?)zI8zn&{gJ{zmX?!t*>B{^>DW$u*aUfn=dMw^4{+Pl_kucm*Neg9l8kYX+E)rG)} zC(50GAIu%xDcWL>!`-r&nu#8y-U$`}ZLEAAL34~UP?w^RajS9+*$6~G39wBNj%}ol zmSAMXrjFF*f0Nauvxr1CfzwRwQy|lp(Q273Q||V3(Z|^w9M@|cG+H1O_-$eY-+k`t zL|JOgixZd!6g{9Yg4txRq$6XI$zSCX0kEU&h{WWf#iP~2 za1CAYlE+3JOxc|7JX3R9oU2ZPmW4nrekZ+n{$I!fDzu-Cuin6YMLu>p7@{yYbZ~mo zffI}jOXfdZsM{@@&)a?iw%GxlG11?hAh#d44UJ%~uFE_Otcpy)b?uQrvW&zw0f1w3 zg3D8HHb=C`RAqZ^B9Wo)*jD&23wy#YmC&Y$fkTJrQs{(Y(j_e=_qgcdYk3z|wVKqm z1=mOfb0CxSJI23w4v9oTKBpSnyoNrHNC1Q^v9MY0Z;Y*jK``{-a=I!Keu zs^n<%G47$SHYd?-Kehso{R4IcXvx4qd@>O~DJ;r1C0!zy$L0iFzTR0)t!pRz+}*t9a%LOHOvszWt(OM4bEBAI)6p9XvJJyV+A@UB)?0F@z<>#QRWG=@mFTL;LckHI`p_irqo+wFG}P32IEmS5 zmjExP?uquQnVne=6#%$O7u>++Lg=;AMp~bqZ;(ftKda7b8W2=pkQ@-9oB;p19aN5{ z1Dy5slc-Tm=d>GfJg%dN9dcMcvoI>6-$^m*0kQDUVEYNFRbzu)c4xAJ= zKp-eMlEL5l6t95rIcy%tjy!L3j5ZD^V7j=xKkoufaJ?3Z`p8g+H4eqrl*Z?^ubr>g zOmL1XD&P|!BGL*dJWN}G4%2va27ljV@K>Fwm{N)As8k}v>fsVc)hDHK8#}OJ6!o-3 zFD5vZtX<#`Swa$~YqB6{D>4jEkZpHa-)T52z-*^Yo=DErvy(om^wCB$tk!?4etlje z25K!V;1L6teOVI+a;HrawKn;bcs$Y;5hrU>4#7fY>L|C=L+l#q7#Wo6EeM7KM5|*U z%C?ue2gLH!1_^MYwA;x;ocKl*_yg91k8_b0GkJ@A9#e7+a?8W1ZuP>v>9!n4Yc$w^ z;C^j`m?kV8Y2!h)Vb$gtS5ssW0L@c(x{$@u^ifMK;;8vJ;_7%Nfn~*|qKH}SKA~3~ z|3|q*K9>`tHe-V^iT)ad^Gcw!PR0x2@RN8AlTw2wj&LR<@B>tjA-`}kD@#sK+T`;2 z*5o?z-8$ygfun;UFm*$0FvP5L%Lx*j;!f-I>ZnbbQ;Jpodo5+x1q=MO2- z7z5eqrYZRkp_-9kDj`hCDC-1w7hLcH_}#I&JEWv!`=)836rr^V{faFm779p1vyZro z(j1OCC=7GBzo?1GMUq-4cg>-~pbLqVswU6Qm9Z&-D%8ap2AOj*P8tQgPQ5xSi5v@1 z5JnoprjsVHC0tWZPp*j^r}|l9f7GGOH;DEGBnZgdxk2hwt$DUJs#qvbEUST@68mW$ zSsxGY8pmWR51}rTVg@#=amA2z?E~_6elLN(ksaKJI}83_a)?;SqJ)depULRTAJub$mygm$-*M@7ktFrX7ah z8nP-!+`|pCC{;4Z9{$EzR2cOQI&-w@Lq`vkEF z)<``@veN|EiCj+ZTo03nK$<9+6XSIVe>)^hhVxa!Z4wQ1eLC{z$>7UEB6l{sI6sL>F{AW}a{yiE!yjkaQ$vTrnbbOG@$o1Oqede&rURqN-J6oOL{BBj zH5Cg72yw*($Iz++vQ zggF};3m3>+)UcW)NU`S4Bqr2Hq`@Qbgpp#i(@4_B3BwN}&toe=KG8Zg=|uOpf(QH{ zh-AaiLfL~b4UVC&MC~I~AQHJGS#$zA73tuba>(Wj1Rp0Ke~>vGFXnKASiU}o4ot$E zl-`YNSnHJDVfV*1tT10ml*?i#O;JtSI7!5q{IM^y%78MHK6IS`6UijD=Lm*9R?Hr& z;ydwYK^9F}tdx{e&%-zU8aHtAsrw)K%y{I5FeWSGTO4C5g)`}Kcj2lCUvl9IyXj(q zoH3Fnr4ugp3NeZ(p4ioeZsfUfDu2-tQ;Zl|B7t#)S?a>^j=T%?U=w*@_e5?`lNmYT zRm3$H7{7>SQozdGcM4c{tsa{IwY6Zh7jXB;=ESZ(I8y**XZ?jv5Ru*SDfY6QC=LM; zr4`6F{OJ3jU@(u-&fnQwZV=DZ9N|rM9Nwg&g5VFSVK0P|ijB2F>1%4$NjjAmk=+0j z7?RO2q`X(TlP)mRN881eMbPMWGpXHTCf6^jC+GBXq*IqjJdqVE!0iVN9(c^k!BQj= z_V;Wn_0G77&F;c+2%VBKMmFENqdq`wUwR)8?4C;@oliCl)>9tm1lfR`uqs3ynoJjh zF$lzhR!hQCeiXsCNLGcdIEWgiHeyzQPSBEeZNpFw+sD-n@cQ9~AsFP)olHPV!F8}z zxqlA75jj#wBJqr18iGxC3$(#`o1ldi9fl9I1b(uBDT_vgsk0qU8(Ir(x$mpgw!)al z_GD7`r_B9*axMOQfE6K}EKmL)@QEAytj`6tc{!`1c|5Ysup)WnXiLzTADUS}1>DVF zo(hm`?W^8{5?pVeIGY>P8agSl8e*B}$bn39A@G7)SU2ZQGrHaD$c0$>J<&&U*l~=d zGYKm_GuO~tOfEz@{F>TeqNWHauCa5in_6(;cCU+kZug$sy?#V}B)9vV+r3`MryN*1 zNntkv32G1msPZU4G~%%ioC)etO>z{Y*T1&s>&z|FkB{H;Rq5lAJ?FBcKclm`Q*#Ez zgdsw3Q2|Lp9p!fKx!vnuLLX=Mnrk7Q?#8?DE&jVv)!|M( zKv7X9Z}}pA{trIq6Mn?u?(CAkh!2*}C_a3=ioWoV-|sX(*&!|Z|A%%HZ_)1K8Nh2W18CioQAi+<6lXAnMUvY}lWJD;jsP_uH z%u$SEV!6eBi%=+C5iSSnkcl&M+%NJ8@JBIB-|UVE!xE1m6Xi#ni<0`_4W!%e8&!r{ zv54oOBrey#{~qc?#549S-^p3$W&{Jeq_gs zQ9`hewCLzS8mG8qeurguxrh2F%jl_z9+em$0&-Uo@$JneiQPd;Ad$!-%#NHuu6q3RQiUd(kteb5` zov2})n`5om_C3z^u=biZ9a0Zb4UbE3%k-i0`H>ih`cuSVf@r=Wd24c_bn$5j#-? zhD0QuWpf_dO8o~65!BKqg*CRkIWNz+1x<|{W!}jYeif*0%3{fDr_us!4~=c;37C9f zJ5dMwk#MjJe?}%-ioE>mh3S1Ak$4*Iy=^70<2#JhE6E}#Pc|G;j0=i|mVz{~Q*J}*aG!)XQ$hF{ z6gQQlA-XAH4k;k1Rd$n}ZFW$6{^uLTqEu;C79B8Z%ol2Pt}Ja@oh5@?Os!uT%X4e* zlnO^`aVSA0Gn`hH+OWE9-8~wdLZK&N<8!-VdFP74ZrYE`6x7LXoc!a-g~zT)yNxOHKpH z#N{?roRz3;j({EK0b$2kcv^c}*Pb>S-q7c>VWnWrVX1>Q!fUsUr`uY7{=pxy;~bt} z=W3p87{_Gt1GA4@htV5wG(~aR$-*gE2s}>lY+?fwHnTQ9WC`e=2ltT94z5RUMzl0X zz>afr#E#Q;)Akv|gss8z1L`%|F;T%>Yjcjwv0Bhtz;94UXUvXsFoK=4)R*5tu(Mk} zW9^}$eL`!-5d}4FVE!VBII!1UlJZ0;Qnfi^MhL*MwT2Uw+aMoK#vGO-XIB^1+S6?` zrDgNod+a2I?Sr$Zc1T6H1xxBu9I9=Nll*0-oZHdt)P-r|W;8pyB{NFH2*uesLN6Ft z%4XutygYaj4RI{9A)8$&BRKUCN0e|HyjMag5AH!Ib1-TgL@ULNgjgZhsnr`#OOgB1 zVl2EjSov@<3YUn^bD$+z;y7a4up^CAlpO6CQR7_YcI@in;OshuIChd1XDV~MNXgP@ zE+!=q`JI@}3XmO?QCoy9bgbq#F{O`1>2S&bCg07GSwcP~{}D^^At$n<(2DqeTd1u( z>|4aSA$E0`KIn}JBq5(k8xTy+b+Z>kjvVRNZ^MvtmO~~%;B$Zm{$NZR4w+L2v3x_b zbsBP~MGkf1PZ7rsP0kLx&Ykh(l#)lq3FI15D4Fe~(jmnbhS;~I&Gbq$Hj~XxCxr3Z z3r*S4Nqz)rl-r1w6r?zu0Ztygj#5YG+{MY7zAs9h2USzoY&))z%+pcDntoNSg=As) zLT%M^+XXg3b#5fo+0Dk|*c_%IVBC=7m~!~}W`sOtwYZi&gDgtUBJvj(LqcOf0I(XR z+nk(OiWVzLVjHqrldm}j-NuWY$^5vgKA``MV&CWBWPK0I$^WJPBB|V7sSl1n056}}xw;UZlkVOtrw}lF$ zOtZ74Jbqm#6RsZos+=WN>rY*%k_ZzWx*1nbVR!R9j#L|&VpmE8Ytd2?D@vu~bUJ3k z35nA~it<2AeZ!&v%&0?YcjZYZo%QIoHl?Ie%HZuwbYD z6Ra)MhIW>9h4QlbX!{|=PqwwFwjqWPJ=!PT4)XD>`dn45U#R-A2&kd$P1z#?;yjrm zt|VV8OdyQRhUB)0h=fiXOyrIgpYx|o_;#*sT-Qg5ut#W@ zoAVknsn)B6N<}1l5$=?*Ob&L1sH{cckjy62kI{Gx4SOGxFYX4ua8Kk;#biT0C*{3U z!tOCjdzRUCP9`IE9h<|4BmLM1xlXlU$02CJRwbJ3Juu@!_HY4ZaB-t z$psb-EKpvg>fTW2te2DO4}ox-7`C=?Yl59`P6&3y?k*T}a~JAWww8r<>`Adxc1jX{ zt6))5V{UBC<)9_oLnG{v3}&wkJn0y+T?C}W4e~iuFA#|iX>)SiMik~&R6E$&K+MU$ zsCH_37SXC2F`hZ9xjJkT)Jo`0mT;=q3AYFsC+_V)tcpR|i)!cGsE;yT59JuXIjlDF z9E>cUo3QolmXA=|nXGFTY(cCnd2;d2B>O6xK-|zW<>+EVo|9sX>tOe1g?W>;AWgV?Q$PgwFT`E3^ULm1->q4%~?AH7&ttLXR@G7YQwrC z8zpZ-x>MiX1(iM2SdVCXc-y(4X&TW}x1!y-Q9e&9Wmk|8bVA0FL8ub{(+N8fSwUhi z@Qgsa#|9htl*OmZZIDmFr#PnGIkiK*Lo6~iXKzKl^9V#bm{8{4fQ`oTV2P2#!hA-S z9Orf{2I%VX_QIj*cS?X|oU++v@d<8ly2v&R4>Dv_1cdKIOIIR|WllWX@;anMQNwak z3xH*ZV`oo-9xCAXMbLAmTDMy^McRqFG^E z*4t)kR~FRz->X^uq#DcIk$!rFG(F|1OXd7A1wfn=ojo3-@|r1lOB4e?A}CCDn^K>+ zD4Q6H(_$|kHxO7l=GZB*+hhl4=xO8(J$Op9-L^H2g4Q-v5$vjPY7o^KsV zZktWpnI~PsW`V=lWM7;X$Bc(Myd?UA^LY^I$Vqx`ln~CgU`CrOn9*V)CeaefQQ~WX zREhwHs63Lail8w}D=R4si#EseHb`iPXy*o!n*&qzwAuauU@@75SYaX1_%;=UBT;E? zj|Q=ku19*E9izCKBPQz+`HV6G){&7R&0Dr2Vp1&JxJt7zh zj;J-h5N}MG<|ii5qeBMNOZ}RJX{h|AK98hrVwxN)go~W@CT+%)X=ESR!fT-eDw(kg_=qhQ1Xq#qu>pLI4Gk z9|2Xq?;>FjJ!!&S%{h1u!{2j^9bXV`M_KS+j*_dVP~b^r$h2&!gf#65pBu;VX${67E~dq~?t%i#um8BlbW z>3hlo8kL>ir|j^irO8|YuGnVy9X}@XVrvjLaMwsvCgGJUayF3Ab4M+;5rnmyfakCz zK9B<@yGVSHkk2LvZXK$tbjWADvm+XB2EiQg+U4oIUNgyRRnpmq>H4I zdx@=qY@o5lopKui28ZUk*=HyEEs1|d8064{Dd7?cp)X3}vgB0=40{R51pwxi&CM$~ zsKw3_*?|x*E*U9s7PN)%)=%1?I$tU3oe^D7v1}%|K zkhEOKlM_{VB;pFbQ*MJG4#?J%+aXkSTq9Xjy3H_>5mVV5#+Kb78TJtI+YV9sPGt%E zU%7InlWY(G`E{WE$qlwMiSH2 zi0o609ZK1)sWprSDYuv-(Cjvy2mCT=8q@mT+h^M>J-T1o+Glg(4$aj*+i}%uxV8OzvjcMiXrO_3loVdGte~jXF zvU~DAkEJ;Iw$pp}PEW>q?~QR3eNA)jvZEi~vBBD4&>s#S=neX7gWmdJ(CziRgLFL` zJksm-*ZQk#gVn)cz1Q!pt`7ETO~f4i-NxCq!TK8A_6O_z?s{*n*BkVD=^*Q#<|BJ+ z-EMDnrPuAH%g6d_%iZ2D3hO0d=DVlWbN#_!ZGC-ht>2fqu5}0fmGz#?Z*_IO+h18; z>8`J=@OZhm+F!lA@A=+0I>(-GaWi3UI{I6ct)1!(7<8Z8)aRb{vVOK!<9@BJtgiLf zS690$m)971e|35Jt+)0)^x|YsgsZTZKb!o(%<)(N4E2BxyWgx+ut4> zXHBlJchiBkx-NrWMT>ju%gbw*S1~86Z@tw+;QL>XVmg(6I;dcBSulJA2DH~5tZ?(z zx`<-Ex4hn8UhZ8+6_+o+#ZSp}=9M9L2l-`#Z;7uEqdDkec2;}h6xOgmJ&b0z*TsUa zt}J7Qx|bQvF*HTnDy%58{8R2&Ct7I?{P;M`en@K8b8a+*dAor+y6}}jOKB% zL9&kT2FQLWH}nG*1R_TXa8>D`zB=gkaaK5~?)qiSeHVL=t9ony;vU=0y9s)x@l#lP zWqmkkBKJO4r;pUJnmtjI<+Z*z|8DQC<>iAcjgjTNnp4D_w*$jO!biWH@c{cV4ME>fYk{!z-WMLSfjla zv8Py!?xpj3Rlfbly1 zm_K`19@fP&*6A`%W4ZelW8AlDJ-DM<0B4NR-9Vnh0SjUP7|OaPOL(xtzJPnRx(cWe zxV*Z&w$jHR^)Kyz+=T@NwvE2y{OE-}9EcnJM!p9Tza?&TZDjxe>N0ZvWYDZ-RI7IY z_dGVAcga`$p?W&g`!WIsm_cVpz4 zpdtSC)1D(LgPG@Yja9tTWfgXpWv9ou`^&4qm*sm(%h?-Zh#2*HUw#8Y*$VgB6|M`! zVW*1EMOjwX-nzVs_uBW^@3sY1#M7eb2wb-A#U2r$I9NvCF{8-3-|b#r?P6K>J!r9@ z>EN3Z6IeqTkqmx?1thCzu)Kot%B^T0iGVSH}DP;NoDEqP-W>1DKBId9ryZGLv z)%~xGyKhI22>@k5e?ufbARdHc?Mes&=emjy73_Z*FCc=ybO78xwxId3_q!9soFmqQ zoW+)cf>7mr_+93(1_lu6udJ?K21ElzSs?pf9Xl5Et~oC@TLNF$STf9fOWXq=2x`WK zb(j17waY!EFL4tTe|6s@{~{FqG&Z7-<&p9CF;0eDv*%jlH%7mY>&1;NudWa}S?=vW zaB`Qo^Gg3J(7!1Qa~-pZk^`FA9|HGL@yqPxm)}C)SN1P#F{0T(0fH)Q9`5FliBh8@kv7qs9 z&Lt9w6MbhA|0l1Bkwjl2F*P_O@6R??nu$ceH1jW=PHUR>)KgELK7G1eE-qP-@!UJFe&#Q~yz%`nto_C3FTA~Z_Rl}(zx90iJ6GH{ zKVyFT)2F|+k&pi7orCwk|BD~J{fl@0>}Nmt&d7GczxEmPOB<&@f8o^T*{7Z_Klz;b_@_^6 z8~K^FQ!^J%%{=|o#M!4N{3j>MPfkRM#NQ^<-%cdHkw|@cY|q0<)@>kKND?i zM$dgIdhwgl=9|$M-iluRUi8f$ME~)f=sWL6fA%-g_x>*W!7rj89YlYgh`y8f*|&#( z@{Qs5zC8SwpCA5<&Gg&Pr{8)m{pP19zP&c_ji)ER>`#2bo!C4*@qB*bxfq_Gy+8bu zcZT2l{_tPEJ^UAMrQd!t{noeAZ@xD1?JrM!6VGW+YL7ql z_>=i3pE94yyZO`pY4d5be8KfM%4a`w_QG>duRVX^)1O=W%;v^(pa1mpUwTeUr=Ogd z$j{8Uk3W9)$tTxNo%(b>f916KIoJJs+5hs{r(b*e!nZDLyt(n|w?6&c+s{1@m71mr zq55afLaP_n);2ai{prtq<}+8WTzUS*=Rfzk&u#wk=I6fv;eP(huYT#ZZ@d-VDM#)v zqHi8V<>>q0j=td@{8@Cc3FSuTnoWoy@lqlwd~p1)?}bF7Pq-$Tn268(kDQU;fumnu ze&sPt_K|=8mG@`YFFwsRBah341JA4-zwh1mvC|)Y|8GC{(f7B%{n7Uj^HG1j`~Ta2 z-+t!e|By(G{jZ5;!gy;ZN~}f6ohbgF+&Mmq9v=PLZHYwODILnKAN}9^n19CKM54RX z?x z{+K+Sbx~ItXLi=TwARoJL+vEYhOQcB!^+;%yX&VKI|)m_r})49m9J*E)mQGkPKzJZ z_Iy7$S34Kf_`8$X33;}<^Q=;qp>6!h#O&I>v8Z--RJ-9=H*UQ2wXZd_TYvg;duNA7 zywPsFWZn2;qfu~gy|lAqE6ehmor+cIbk@dQQ=aYj_{R@tTv#)7rEK@q zq@?-!qUiii za>T7^N^5U-wl8bXEYMv-_nd+ZXqtKEdGq@9O>c8|chhU# z42s1P=(Z}h?PqMqGJIuLIu9RCH|FLtdb_i(*_s87>=c$&5SZptOVIw7O*?PS;>1aHPrPcG}C#F;5 zi~7vujF#F-bT>b?wYfRIx%GY!(8MJjUs2O-AWZ(TQ{>F^K68jaZScqlE-^EtHXw#Dl8eA8``C% zhB*R(>858W(_6lqSJ^<*7I$_GJ)?U(u>sv!*??I!)@sUhlpUCkW;*Z2Bp368rwVj8 z$+Ojzu4_D;xvVrp6*G5@Wo^+?+D^hV^+M6en0d3M3dOm~PQt0c56$%qqwQ$6e#{R= zrolvpRP9Uj+t4+bRUa{xD(d5wZdwz|U}+hqX6Exnt=Lj}pfju1l;d-$+K54uS7S(QqAx^3%*GNgrZx~qjkrBEpI<2&Ut za?AGp)jfaJKUWP_sw+YDhWVwd{$keb>6AW!DfQ?XE(nkr3A)s=oe(RcnrWwKpF#)Vp> zBE1hOVDwiEqjF$qIRoKYvcY_{**ST#)5$oNb@W(uV|v;z8eX>KWf5Pg3p;(cQ|H~; zqRQycj3`Em)>+QymX}MY63fXg=kv=uJM$gWb>`i7&ot8up6#qY#B9X$N`CN4$qP(+ zQ+lHBw)f-u<;%>)GpMmiVY6JdR&^_;$*klm)r$9cqKK$8m;lpt7Z~p`-PTPjuu4Ht zDw^(Su~skc^tF&5&8vZDSS}nQG9X7s{Lv0+Ka*&E;I7_*lVTESacsyaXI?c>N$t$gv z9lP3DJwom&vtYb3HWn;d*;oBnUxgU@Ox;Lby)wJ7uu-emm4P@qEDu!5OQqsLd5q_3 zX6ENhZnbJaa(yfDa}5haDP@j?V=G$r)ok|Pzp8jHrR5*%T$xdNt>$@f=uV3ltA+%1bW7wYV*sinZKYXsFp_$$6Q!4xFs}uh|`zntGt>zCmX3Tnh!z-vF zm=(Y*S29COGjlr7VMcU1%?*Q|+)DM`&WD)w%gteSG@qUR?yG+GyM;twR~c8lX(rS2 z{*9*`9&LF!r%EQ+TguAkF%jlZo-_;yZnaW$+|}~K`9uJwrl(I77-sgn-_2%uwnE0a z?9JMSWfnKQjLWl?3%bjEG7q0Zf|emR(}UJlAzpjlDZUruW(pg4rjyG0S>e&_cl{IJ zP4syxec8ISF`~RuwV=p0b5eZA9acIMpqg`??2MtZ8E&^*4% zp766LcKVnWQ!QAQH#==qs}3lYN>#Ts;FK)41fNz`(Ju3=tKCl29BiFD)3O(Y560!u z9HlK4&7xAlWH%^+nvMWjH0R6>^n7t8fDMZIVtKh#&X+0$jG|?fvSZI1hWnW1x*p)U zK#Q#<#$_yyc=wz6A0`fW{_np3^sgXx|23ZVx2sPv|9>;HBy%6Eox^ka-~N|>xAX6I z{?pF=L}KS4>Pzk%B&U!XQIzC2e&ukdn;fEHhu=`Hc_7EpVRGc*1rL&aJITY}w)=;V zpZ|X1e#H2bebG)g>X(r};Qa&fCMaX2yBTmY^ z$r2T?!ATrd!~bt7z6Mi?@o$Cn;(u)`FC$ZuT_=)K;6A4TEuxRGHVpM-+rt9Z}I z#~x`BT(H(7$g}QBNTc83P##{70^T)$lrds4CdkF;gNt4Q4zDzZ)*n+b;AQ0 z5%eGcKnXiC{8$W18%)#R8+Q6wtjcTmp=S6kxcd=>aI6-Q^&!KRf&b&bu?G34|M|j4 zH7#hx$o)%SnUhCnfbM?Pd-bbMBxTOK|61ezP|Y4`+kfs$PfLrE`&Ga96GVzY;Ga5! zzq+SKKj8}>)ees;6=95j{rB3hdVqh;@gn`>kNr)({u(&_hQ`~|bVo|+pZoGqQDQa4 z3iDt3`t+}w%wMz{z>tF9Ri3|%9(Zl=tB82cyNz@pI-c?;qBS}N#Qzs6`@9~@X_TI5q=T%8+c8X1F{((K(%z zi(wqD43WB;Ji;KQW|tQ8T7EXa^C0o@f&w=wK; z|GK-rey9dCE;G98{n_<(?vK`Ilp|5z24QIVbSrCc`$41sD~;{#1C?@}thT-V6@J3) z!LO+8ZDoXNfU&2z`$^j*!w`cYa7eC<_#N?I-pPQ?u90F^XeXCucR^yzvQ5J#JjkUU zJtTJiO9F39bP06yAW4YMux6%aT+`GUykrn`fx&S(kT<$xt<27@n3g`t+t83mZKy^H zT&Am8n=Z!+B-N}ew@V)fjUlJOF*Df+?=5tUlY~k?cWcpW8w^ zVI7*vA|wb3%zqCd@Dk#1j)wox?S7CPbxcTVV#YOeT?nsh^qa1+ayXk^A@J{wq*gA? zt~_($_x3LmYX^}~A2?!!e!~?wLBs4bvRwmEjD!;!VIwjg+#70Sy^%?Rkc#(SxE@*e z*CVGt>$u$0FCQ8q_N%FFCV|WJF=zV@ z$+7|v+z}84gz~M>3Be(>yUr6b%Mb?vIElhR5HN&9Gv%!SGXMexuq7Sq2nM9ck$>?Z znX&-jVsp&_21Q!P$mpbaKA4S05^ncWG#joB?>8D3_a(P$^eO%f*+Tr%*N_PnH?oZ` zw;nVS=3!%)PrP^UYuT@b_xj1X=m+Zw=WsoVc<8PVaHa4;pJjCQsL{QbQumns>^;(e z;k{E0A^bZr`G55*DXx7z<^>fu-+BGc_Um7L{SK*t2Z=$;@dMuvgMPo}*TP_I&#zVe zT2LeRTMNRy{&O||Tv(eU{Toz+bMnGp&YnBxbB8^D1Vg`=v~l<)IV^m6x$~@bsD?xk zNM>SoghZw5tXQ+{?xp$8rP*iBUszb%-(MrS$`v96m`&4hGW0j>!7>d}%7<#Sp}RVw z;U#{;hW1heK-yp9Z{uDbzPGIP^_Tbw*Ap)t0!ljuC0d_iz8gA|*J$XCd-}chy_Z7O z-?+EE9X9&z?1y)rNWGp)arx{2(^u~-Y1?=5OZql~dVQcSvBXcC4uc_0_@fUIjbdR-`v zUwZlFTesxrrCawJUjr9iHyigrro@wZqP-)v%W4}Hq!B(WaitAA3`ppjS;W0 zZNBu<4`1I6$D)STZe%idUSC{VRE=%9^s8Td`Q?{hx#!9|~(vc$POkrA)n@5q%2g%=+>W0qcXB~QU&=N|m%&yGp zB(*aX7o2MIa|v8#Q|%uw>1)rd?dwnk^$upn%*>MifqDzdX*b$XhUFqEjRx#`>()#1 z!=IPiUu%b7o7eJ21NEZm<|C(GTIaropfc3}7G|fRT$c;B;{KwSrW#%YP%P(%KQy)G1%c+-d^=_kwMpau^`WtWXfXu zy3_795baj-jjtOI{wVRM-5b%ZM7#U7=-%KmWBj^))cC`sp}3UKOdz+_`g-q_+`WZ} zY`pRH#)CiV-+K9rv-GlUo|uWpzQ3?`u`rTBzl|Uo;GJ2W-X=YmO0}HW0ztBV{f`cxPyf-4KfS>Z z6w^XwBuE(dN&7^veb<66VC46?eMIaG%nvy|&gs_6TQ^L{Dl{6>GDXW5U*2kgw06h1 zv%f8k!@b6@%H5_NbSnOovJcJ2Ed;{eS`(T-*(qrv3{bLAh6fs9XM_(t_iiSG&1EHQ zNX0qUD390|!!Ek{B@#JldyDpK3!3?Sfud+g~si_PZFz z7<`lfh&Udh;=#~c7+77Ee&g%T*J0}$H@sW7x;F+aN3~S>t5-M41u2-t#Gn)pN3ra$Ev)?>Qq&-O&VOyTXLrzv z(b7X}8p-Q8Z>U^haj9M^dZ#V(MtCdPQfBwwTz*NtktZ{*jUJu3b!$9p^w5dcA1m~6 zRUjHz>Ja;T8g9V)7Hs@xZEsxRt#plHfbsXtWBK_A#e{0mx!AlYm}FwN%+v}?OZt+w za$skR?at}^>CUM(BQNNHa$$cTZw1=w&sd^s&&*-MIFL6Ain{D3yV2DK7}vEDg3}AlCjp`FBnuzh}eoRXj#s!Tj)APncbz7VR0YoIRB9+3C{NGi&j9eiiPXgI-Hb0eX7$A)d@rGFCbiu zeI=fZI9aozb3-+$J5+>;@@BYs2(EtUWzEy(EnC53%GkfBH7L(oqU!F@8#7OPw+eZb zddm^XGVs1yFX-WNzn-@^J=o$tk7*jzmsL(~n4+haW#B31m+sura*G;`12hUEbEbs| zZLY=ER_u+zFspT6O&Os*f`d{~f2FX?g61xc&bRbzTV z6qKH)-q0&`z1fn_sg|x>1t#}EamnbN87=wpF{)*X884u`ue$jNvfxI~Yf(x=nNl99 zuNL#YTc%4b*Higr&Dg)Qn1@H>k4TncN--0)gU)kixAy^b$w|)B5>9#Q` zV^^-&APZ}2S{F$R1lS+3#c#B5@gifCYk(0l@Vv07d47;}ku-D&6xb*5mKC2Gl~Xix zAAyR&_t(|?>-lhbT+2;!zF2I@d3`xt9G;$B%o*`LGoIhdS_+AzBX1Y;IW2BZa_Rk@ zq-j^e&J=VK3k#81jIr!2_9i*pw-;79Wg^5_3R>J z48Na{!`f)Y6FWZUs&p{L~gQZ7sK`mZ$wQ>-H5aH%>IS_wKZWI#EKXdlVamq zEh_dh8I{3iTf(}lFEY!M*~uA%fOtvw3fjF!N_s$u9-X2Gq>b>MdS4mq?`xCVbS5{m zSg(7fmfWkB7sFG(JDtzZC~2d=)(qt)xkcp^3Yxa83P;V8^f7Fpn48$@;dn6@&&o@VfXRu0f#f(EcV+Nv)sHCC-^_WZ^Q9vnN+@%$J#lsWlxid>1kE`;k z)?T@KZQHYpwp(1;zS@RWW|&_D3bIxh4O%gbk#S+iQP(s^mRep$++2w6Y7m6tf|lHi(9Xk+kOrlEaeu8~ z#K`AhDbQX-Vb+iOqK_Hd*;`*1FGe)-Y9<3s5EBW}J>wNoI_sSdCM{)fZfK_QK`3?I z^TibmoBey#>pT(@lCV&0yeb_%4BH$M1OuInsS34X`&#GPc5NkWFRW~DU+c6*H48Kd z7N99;fP?d=i(E+=NNcy{T7?4e8t|-{nK6wSCfWDBVxU?XLtAR7{JncR^~a_)cXZ0c zThySb7@Q$}eO)T%P=%Vs1+Ct_dBQ5Q_q5!k+q+e&N@cz32Zyq$TE>V2m@-LveUARw^f zIyJj?;R0lekU%(UwW8j>y58B|KI}x>)7RFoU2f-1LM-438Zp5cTbC}|C%4X+caI)t5dI}jWUCePo zE54T*OX=E_)9Bq2jFzbE7P_H|E!0P>-iHV@)2_4HYOO;EI5Q_ZE@DN5jQwP6$W@x_ zO+3CeF=HSdB4~z*4Ra2;6m|w%YkL$5_6Ucn6``5POs~|4JGl+?kt&2*#>nZQqC2&# z>)YE~-7jXhuU%WedZk^=qhT?1@1mrQi?|pA6cdY_ND@jptoOMVCNLe$8XCphqEkx6 zV!c%I>aGGzjfk2aS)=hOgk#Zn59=bS2&K64d#L8+T*)gJi=v7|Kw(73*9SC*!3yql96X4xy3-$U@+tNkYyBZU74cu=JX1t-Xgv zF0uB9q=GS~tD0MLS$<m{Qx~;@NlZzP zd4OPBT{KXc_@gPB3c)~`eCgViYp54a4SVG|tFf;UXdE{lIaP8v+2=8={`&g5b+|P| z2i%E18vvP-eYi!XtI_K#2#ehSySBH7fIZm@pnzBmPz+CHjT38~4^7;kQi6;6P)&2K(WtG6>Bdhy ze&Pk!u5EWaQ`K!DlUiKrS`)K>uDd^Moq~Xkyt>cIj!@0iTQ!O_&2+h(L7iwU!SG69 zF@4PooZhLT8se}`2F-A=eQ#*H40TU)&rPNm|$hP^;O zq8Nnb@aE`NQ1pwiU-4R<+s%IAg|IW*Y?W#(?vXGXQDByRF#6hFo!9}Uu46gG=ezcp z>Ay>$0Wk{@RxffA7YQOq<|1vb(1JrP&xzpx3Is%9v9QuvuO4nsZmoCzZCk4u;3Qa_ z2a6G$ICza!BXF_#yG%PCb5JIPuNgtPOm2fICb<4M(JTvFlv8Ht&0+}4Ac{egkSdkEYHJmtWXe<{`(n4+bXG;s2yM8>dgo!aPx1_+9(#%z z*IZ)rF`2+1i%YtO-hp$rx9i*2uCxn_2pq?*EuohPy=#urPnkG8B23N{GGcikSpoq7 z`nH22*c7dRr)Kmm(g%Ty*fdQRPca&=Sdvq*2yHnX`uHT60K$u({p@uX`fPDQ%M(nF z+IFqDjhk9-XEVT+H^+-deVHXzbVFVoi z9Po($Xo*`S@a#QIV|^HHJ3|&s=}oMxf@Y9cTv;jBYQ|zg!;lmf+WO-5_G@qu3tI9u zByqlghr-2Zhf_5dmw=}l(kx9po)87=_?J;3>-n_ zYV>i^GO={Umh;s(Yda7fL=S|DMC(AmJr%^G&0@k-Y35N)J&w_JV5eha_mP+ao}xN! zw8RJ{fRZuw71p%y#>`Akx357s+gn0CZEO*!hs8VS#wDT(wLxokB6gkolozVLRwh&* zGlYDK0XY@;M%XGdxwNRgPuH=y4gAC6r0JzSoB=R~U_pRkjerbva%1y)cXLd5st3&G z?&jfcv^f%US;=X24sIp`*FQk7xn{}I3fzj%S0yS<1ZteYiaR)k?(v)TOa_C4I3eyo z_U@b=N1!@BF&5EJrWh=KXD`kc_4LqDx$T4GY0D$!Aij&3PkD@Uomb)s7`pAN+x0KL zw*A`H_LVkqf(zumE?f-t#9~()Av1I8l#vm7>BC&o`w>)3KXl{>B4t#DSu)cK??s#+ zz!q;a@YArAkv7dz+5!_+9CS7}rH{?6@OpG(bo2VItO48HDs{rmzOC!w?)dob?)B@t zyV3^Vv>x0X*u5#~E_8Yjmik#W$Ngt4CqUPhd_r@Q0(Kk}k1)xqASH1pgeUOCytCF^ z6Vid1(BKszDf2jD`DnstmTUx40$al*4k8AwP!0BlmekucH?4b zWU%K71(4D8Q#CREr}R8Ik-N*%g@))0s^zeh2#6D=l>^%ucLBVhCNm&on(4HeE+HF` zRPf$_jx?c<*)50#@wLJ9loaDPqMzoMy>5yyJ zn-Z`D6KKZG<&YgF+EzI$oom-f++G{K(w@vI?IJX@biii)J^texU$OeV0YrC#AJ#`{jlCOt|0K6m7358?vCjMI6U}{EfzCXh((bq zHlKi$#CyivWw}YuhKWTm{Pal3Wf-lj>ri=U{H~hALYqTiqML-N=Gxa-tb)CdZB!Sj z0I_k%I z;yz-twnI3sDT)xWa9{F0ceux($qGI5G_@G;l{;>br zAO0b6g@LmgpoA-thLd2)Jp~;49xqNvwT{-RmwDiFkk-ZzvWb~)cKXL8I~H3cQPt8S z3P=^RGhuvYv~BU3hL8heie3meCtvvN^H9o*ry&VxK2KZnh0nea?vA~9em7;Mve{1S z<}MaLz!&?DJ4&{XKnaM-m1?mJ6+J8tAmoi=1|+13M4?Sv7^>4+6Hh7529Q?vD;O=u zphQux9xTHeR*ZhZ0;Xe_)LrQ0LY01YCA=E_;Y{tt7i(9}*4t-UckS9M*mFHWLI_$V z9gi_hdXSg8>$vq|xt!0B=f@ATi4$QqIg?F=x%7A*N(3CVdiyXtJd@4NOlI48N?1~z zlwe|h_JtQVU)cQp-4`}bzwlX+8yLIi&r93+-RE~t-@7NE%uH^zcG33&d$9RPPxL@> zQ5|j5EC;A&ic2DM1mmq4yNRK7f?$)lJ^+C*00rTSI^e2UagP>GEf+Rp#(_zSSm?v}MRlihlsLmaJgaI@Wx`=TR$+Vqh`HFrC6O{PD# zM*smW{BDLIKY|yEL2+XD$Iu8#xl+5fm+&b-_|S%nh&joxWRzLTiezXJ{sUF?C$S)r zgt`)J)_bS`&RLeNpT+$$3;6;{PBb_Y8YYr>V>(kHCv;Z_8&`#k^I(Huk^iaeiIldu zcvoB2mL+y?rB3`JJ35mka%3HmOaBcN&*AUSFlHbTa@mxY^XKoKKOb(6LMxkF+3BtK zZ*GP+2Lr)m<`>YSSp4I%>KswAPWg#Qm9F(T#u^90Ghh*r`@mU)I?O#aZXVkG&T5@F zctnKqVdmpeF#0?K*@Gnbu;aU0B7dOf3#whOfx|T+kE?R9a^}Bx)>67kw%L{LnZdXt|fQQAjCDaW<*eJO{mDF|S_7Kk3F3SISy0*ioGWc=$w3GtsR zD{WyVUAAGs$VDa=LQoJ>;Dm_Zm{rKn7c3~)Au|)2(_Ya?F9O5eI0cBdv5>S0l*qqD5o#6#%AE4HDBtu5h>1mqC+G-!H3 zR#*h>zzh>-T$gM{)jv0$A#(*JJjj4w$KeY*6Bw>BRZ!qclw;5T0CD+(|@YEh__s!W1*7a{QkgqA9s2G(#l|C@EiNF4 zgv_Lkk34Q;@U1q@hd0NMdm=Q`Lxd`3*>XlQH6aCQag`czR)mAm-J>Xprx*Q-RyC>7 z8jw;IYIpkg*r(z+S^Qz-brdpJ_;pYSgB-@$RZBYC1*kEnR%AK8U6hw13FsQG2&IeU zuBiEBw;c%!pp5A=4Tc4{O~}kVygr~AHO;^=JThY_$hKzK%zTrKas7GQX}4+ z_TbRvyy}56u!&r-x}B%CZo~v3m~3wCS^`REYxjng!pir8HkfQ~!7_f7P1JXYP>ohmPBx$bO;<3XKEiA``-?7Vs|NB0;Tan+!?Kr+Vs8`(uHC(U zg1gfU9GfJqmX|R=PEikl72{0!#cVb}Cv!4j*MXRK;-cj4*2&F|wV8r8;1M_ne1i^lXeh?nGQ{Zb7q5v#jq`+6D?>?l85^ljfWd~d z#>VK)Gb#?EZ=kTXCH;(6Y5;>58$Uz8Yt_~cJA)E@9akZi7Gmu%MkVqGE5tx7`+(IG zLPS)xrD_t2T>DU@Jc3BtN!3)Q<&jxdlc7e~WeHJXh?i=?HUb90R*BBlM1&aoP6HVa zBy6ZvE8_PsoN?J+$h@1O6Lz4Ir4G|jQcdRED^p!`Y8oy&c7Nw7-KC=7uA&P_ zhf#`YL;k`5lQi-qcNfzv%=a&=v=L^fh?^j1;VnbUP)*xX#{C^=fFQ5Z%nY$4JqW#2 zOPkR0vcK^15qDi=?V`E-t} zbdV*%IQT;%j?e(jpMAYzDu^TSuua99CjKS(F!fhXfpNWUWpYKLVXBMDL^Wr z{V`|+Sdh0A+7cwA>ek!+%Lr7=RYVFpIhS8% zs~-lG%@S_Ki6oko9+@PWYPL+_o-^3Lq>>Pl(nW?{(Cz{%!PSw-x{Ay2wimO=Ci+o&)g#0qxcVux<(U5dS0t<~6b z7g~9wv~3tqfS8Z0M6wYYY&ixGNQ54Xlxz-30MX67R9()%NevR=)XF0nNJ)@9;HjRn z<|sXDInWGG9up1%*a^@!UIvd2<($if%aeGyX*k}ztS@-jUW3MgoUUg+zr= z3&sl^6mD5p*JB2+7c7FR(*3lJTVC55F%gr1UD`fAYjm zwQCPl5UmsqB=!#)1MsbODy;R1fEi(|Y7*J$qSKM3SaIkoEsaf4E9=Ihc2|nm*nG-L zqlU&Na}%MF9?LLlplIm=%MeFc*5(5>Oa{1BD#voy_=RoqAX{^;w%+WV!^uZx7!r+VsN~aY7#^Y1XPJlA02tL!Rzn{0Gxh;SEJ=3- zkJJ<&m;IfQ9n`Ql5VMlAPzFL5R%E$aZn0bhVYjNVU0k;o>u_^lZx9+}H3{T^ZB`Q< zea0Ly_2rfXSYSpb7^Z;WN!wL|9NN{mYf-F+4z@%=lQk z$dhg4-n(h;k-92E+EyA(AK&D_O8BOe1q2n{n{)Ew7KD>N?wACN#MQ$Smc>ir`AMn4 z`aADX$AmkG3UVU9A3qoqZlI)1k$kgLdDVeY#U|mh5H^w0iVDddLil&% zRg-FB5k03=+Vr5~yhco0R68BOPkb8pXL()Bz-PcI!8n5y5H4+)Uy#>|+rnkj#Vv7( zoU^;4e1^QxM`X{}I{vDpBrpM7%4b1_wHfG}00YA~v?lDmAXp>7j#G$%Gp-*R!?szg zRUc}jkMK~W4HTFO{eZIKf+Thb9io)ADkcDd=o*`Qx#dGOXf>P$>$LU>SQ9=ImQE9v zoKr1?BzXv!o;r4l(%CAlQWg*LVQKtvH;%-wF7kmzZQ*zjA6h_u@M*J5xH@} zzK(Y|t_c^hs!>r|5T{Wh;`s_dKTw|{T?6ru+^b{|6k49*hd5Lxvu#?KYrNoHLm-GK zD3fQAvfBbq9EG!T(cKKXnbm^J>0+@`rj8+P@@fEv$ngT+f=M%)yjTPbDGrG2bgd|M z3Y99mST>&5ChcU+~kNVT;WLRWp}4G~+4~ zatq8JbbAHe2hxDjr~%dPX&cQE=#pVShkGqb~A<42niLJ?a%ng$(iYyvTZ+m$y1j)S1(;cy|B5Z z3rSFHD$XDhq91dUdHJ|1peS0)hMUUBe>xGJnx=?iJe5%eDua;=k1=9BZ4}dRK5-V( z#W_ig89l)|!-}#v;FQTsPG%+%qIdDw^G_^iQi#sLL4Qeql-@#TNOb7Jqqc`dG;*2- zo@1Ec(m3H|R$~(wkkU{J*b>d|`c$h)V5J_wCbFVDVp-)*0k+Uy7+qs&`g_lyDtCH9>$a_6#u!$LevdJV1rPyd{3=!SvaRRkX^ZsLRmhyj1r{R4Bd{pSjmvN}`w|fGw&_0;n%;262Fq_@O@#)GFmF zTb|1L*-BNG&{o+vIauAR*J>=6Os<~W3xlW@1>IVP(x7vkK3A*Y<tJ z5hUUdlIx$OhMI7bSF6E49ZOr}!1%YPYTK% zq3A?nNu+L|35s-FBORnMQ3ERs#yRCo#?}YGh_;BI0wY?@%^76cv1DC{3`Hi#V!6ey zjz=A`B;H&o#tTy2fVgJB29xyg6p7B5CqNYI1S+B;2yd39dEyP>)uM02f2O1ujbu;4 zJyIDd84cnuvEJ(;^I;5*Z2`cc8E3T$2{IRh)2!cRno+;erPNhtY3b6l&t6)vFK16=@=4u3COKltB7|QqyCzxl7Ao1;~NP#yrw5_hfU_ja^=$sT!CbN9h1uL5v z6=h^#D!~_E8c)R z9II%rULrA8OH>YIV+TA3R=&H!&_hN6XQ!nOS&}cbe~4R)sT4pp_%m8aLlhj~&(hY_ zvEj{DTvwOk^MDC%;)*2Wmn%cAOiAEzt_AA^U2c6KF>Y8=7~`0XTr4?-dXKIy9)Yd~f8(|JRTIs{3B_*Msl<)nC2$9{Cr13nT%xP89QUM{Efo znZuy3$l0!!Ch&kqMz)rhZt>8|1V&3J{gI~rz!j#A$h1V(jMNOt!~u!WIB(-bq>+$G zG{z*nECh~Q5hthYJ|f1BR9g#a|A(FEKPSfiR{jqCyPY5Ow%O=aLiD_qZX)dC;$QK5 z&?hIvC`&}Y;*$7Qu8^yKQ@>&cipu}cJpK)K{+oEn|MGBassH~G|M}DY-zSO(2}y7L ze@L(ocRe_cKQJS|p$&}=*_r5{KflKyNYwRl*O17f7*HrTd?wjrKhxWfhz*4zm5ete z>O;1X zNf~XtNSC*9HdthDB_6^M;KW@DPuz~`py`FT!aBJf6hM6Tj@9)Ti4kBthLNm`HH2{|uCri(^@MY4rMk$~!Q>7G zJGBClo>c92HygFb*l-A&4EIJlA*v-k5cFXsH6?o7iP444H5(V-hWSL{{%U_Uzg#$2 z9Sr>HG8;hoL-L-w?gw%vU-)3PFMukabgX%{gBBA=Kwx0@{A2TE=rN0^8ld)neuP%X z_E0Hkb!!ZLI`4u4SAM80d;XaG#ZY#;!MN+01*x25T)4w}=o2uNFAl*B@)Niu1C)|U zC?e9L!l*ntm!Z!b8UIjnM*uMnD+DguiD?o7ZC0fbD~wm;QyL>lVpW*rb{2<<6|ZTO zl5s^rm+E7-p;#`2jB}Y6t1th^F%5qID&r5W{(K?Wh_5<&x7vHROb^&BAb^pCQN*gN zIB1E^W#)Uk_lHgrf`KBj7yyII*wiPoQ}a~bfu;M)R@1TdL=_lG^eBk89%AdFX_Fnm zW$S<0MCj-cw~%NdhzLM{6T8v4&(y*k5r^p+4=Rx{>yn$#X4|g7iq|@cEu{#O9fAm% z6udS}d8zcxFD>QuLcxhG^-`@+F1eM}D!YNZrALm7pJdrZ$+A8P`*6%P{>Fw}<-}K& z{f*TP-ias!mjtUg+3W(|JaD6V1`nfoG8}+49CM) zi!U0O7GR{5pPh^>A55r=>-zn@gUC<05;_GIp@TkrStBa+OX01cGLYOs0DMqkR~x52 zEuc_Y!gfda`5E@KVUZ!Lq~bK!Q3q*!6oXnxoPV*gF@DS0)pEH+MM|;YmdllLxmd7V zj>B?P8KNDmoWt@+#Rn1)aSzMG6@kYsa(|!g-uLHL%d0E#mol($ezm&lSF8TsyL;#G z&BE%OA5{Iy$~k#i;Ts$HgWp#5-Q$Aphgcl#QP~${4tsd>fqVG)5(%IyT8;QO&N z4T;Yz{;?Y4+eV173H!)!NtTgX6HM5F)v|tGVLLBG$Yk3?&>(T}O}GGvyX4Mi;7AxL zCNYPkKN|!IPZN*wv#Wj&3`fYoFUwx^1*g*WhkIDK9Hz<@0RxbDGg7WV9$Z8RpCHr5 zKm`PTYJlQ%v{$e8PzgBp&+YjSs(rz^usRM5epN8bjJ^A?!tj^z7;u8@bP!HQ*;HWa z8Uz#IN8*^LN@14Fu%=4|13x9!vBrm-jr0)_u!N3~N)cE+(yqEaGub2iHb_od*(*X3q7cOwsXiO0W_S%zo z!}5-EKr+O4Iym#?O1L_|(mF#4Ri}A|)n)`W_%C6dGtK6iR_jc+Gr)=FNkXJ2<&utW zjE$X}KMwI6@5~+zB*7y~-D{RwGb1>JcLskYzwS&;9lzpR`NKblfkRy{Dl|GS2qX=_Y zZn;GEE*_*D$L-Jq8xT?1ALg@1SIIl_d|xZA_bk*S)-!yPa4~2}*_AmwmM*_fVMWpiad!5WdlJC%*H93u^mk4I(j2u{8ejx)StxJU1tK`4QD_jj-)N}@)H zbJzUUYLyjyj5InK#lM3PLg(Zef}$rUJ7*w;=Ga(z^sh?9k=;1@d1PrEt#Zg1P9W8X zKoGznF&#j(s?^O6P6-SUsmG-y%ncR{5dRYz@FR-NKPjTJBGRE;{3O!h;c;=9W5mX)h}7OyybFA) z<_bl*&Zm#`yc6$whH+t4yQ{-hW?p7GB%&7r#xT^+_|JgN^cmKkHPh))*$@V0;y+yL z(en$l$Gam+HL@;(BFirdWg>u|k#Byfhk)PB4vA_(P;_JZ;JbPVTIh2>Ug&{=BDuJK z9z}8@LekuC_pwtG=?0{vWz4ak6x@)au9WyCbp{c8&S@$Y%gnCdEwg(Y#szr9hpYXy z4L?3S^t-E~Mh*kcO4C4vbwNNdV!13HbucSJYjVCK;&Jti1bGn*ClLVyv4{v+lh}`# zSP#>Q%%L;n%{zPlKyCEaj#-q6O0-8t-y88%!1rzuuGD;_!BLa%qhDi+;15*ZwT9t+ ztG%#rQ3wM2^WypQ?FW^C$?Wur69))OB%*gr1_V1b^$*uHS#u##+NC&TGPJFE^AOZ9^O0a`Osa|lLg zqM%L3hBwA5R=J_GnubyRz0p_6ePATbN-jS9xxD{{(O2T!V9DUC#uzg~ivbgMTCJ|E zuBhG2v| zF}j%aurN)qTyodEWeJ4iq~eVYWR#!0Z$w@^&i;xk!%gz{=Z4I3WDixO5<-S6MzU-c zir8CS4LYj_odhFBX>Ul@ z8EFO@aPYWkxc>0$KphomhPMZq<)d+*Nba;R+)mx5;o<`0o;=YuXU#*euTJWMEi)ge z0jHQo%K9^i*;B+{Br(c98j1dISUp>0RlAVQb!<34JGP4v=4C(6W#+G z5m@YVjlXBjqtPuU?7xj8kC8Q06=zUt1B3`pyEsbd%rfR-AS#Ze@OrC>iXNjFLdtm@ zzE!ITw089z8};!K;x_!0GAVc)(Z){@_^gPJBworhdcHr7Mc8W^tUo*)u2W2W`*w;U z_X~0NbpOYhblPsmq~P)ud9$;{Dxu>#rlMrJ4E^Ty@R>Osza4RhXMsh8)6V7)xLJY< zcEIweZ27`hQstHl%VB;HJBY8kV*fBA4I#ChDOPk?R5$UJW?{ZBx7^Klm+{MY2Irm1 z$&MbHk(3SjuaMGPh_1x;J^JvVWmm433 zpINyQKm{X{6oggz$}usFDe0AkMU!4wjY1PXyxj?F(Rn#6tuKCKoT< zzK!HdEv4$0XD9tqwTjFO7Z>odGwSBe>(4xc9moQ3Y$3zJwFC^LE#6hso97&9TGWA8 z>pFd5DZ`h1oFN*h+;fGln{ls6y9dv79Dg(+5!&oyYTk7kk9Sg?Y0qs&FoBg zxvx%QFw%zM4ddp`XP)UIe6XyLu9Og>C$HbnqedE`HEjd#x_^>ykAxvJxk$4QtW($nJf)wD<}5J7DpPeJmri0xlAlfM*b%vIUa7 z7ujLO+1*^%nlbHV3`$Cw;-OX;y{si2AYa3N(d^Pp{BFd|0U7mxK$fHgs!PH~Kw&is zi-6ha@1Iw2MS}>DMgi5EFP)tkW5J;0EMwa8Ptm0()s8<;2*rPhuEJyZq zVg#zqkmG09nbM$Fn2efxIk zh3(-V3ochXSHsH#S1(_ceekBl_ZD=30{Q?R6iiZrSp^m?vBn+g604RG%d4`Op1D@+yWf(MZvacL_Sv>7E>zf*c86qIaQ| zrw}S=N)MzYxK-qf3m5Ea;Dd^ooGt(C!!3f2QRxv&I!Tc>r3t`7uB(Kr>~>$t$uNG32B+7{r#v&S95REJ70FMVkm68N3I=JIF=c}v# zz~<~FdxlZMjDT&cyr>wK*htqaLNw;%NBDT`{8RT#NzKZkXy`h*zY)Gs6MKR}Z@~x0 zLpBFe3%J_gEJOo7{JB)$*no)T6K-C=iI7QZ#4FiusVi%<3wfyuBh(tR)bgOImQA;E zV6o_nBZvKdyJn{5eJbWGxadiJrtho)gH zNzBb!@;9dVQ2Dml9T3 zN_wxbtw6s(6M7%Ja;@lDqjgE|KfVBI$^v^f@F~?P*ohAX8mw`#y@~ts<*#fia`_Ly zMd;@e8oLgYIJ(7pHHm_UOD8}F`70YjQmQY(EhZf=6os206>_YP@nYk| z$ak{BPA5;|wcy88S05JW{FJZPCBjM74_WGfSZlWwy&~Hz^ie!hQh|3Z-dDsLWuLlh z#nF15(kZW4YlZcpvK+!nao%IDg{30v@-^49>MU$Q&H8cBchLpTv)F7YJ>w= zAhT4+NF`vuGCVO~awPc$4pGV&w1?%v-gjZL;haa$pJLRcPb59=R4d&oNP*Arr})~^ zRZ-PDgVuamob}E!lMltT80nd&p^xce>bu^13*-kJG3Kk4)wBGEgV@uYO@&ULIkU=w z4=Ln23S}I-ZqZzdebK-M2i8Q)yfVbDB@l|)Ev1TAL`^{`#cmxC$@G)-FW zF!;(?U=dsp3A|vk7+ovPi^+-x{9MyKpqz0?@Z&V7sGQ}ZP=rVxOBQ7dp-hXJKY0>h zu$9<|#hqZsR)@JPNhNEr;s=MTlNEeiz>BXtyBe1U^r}xJk8-4r`dO3!qx1*qz&!{? zUMcZ~vOPq82R!)3TF@#6wud?rKsda88#%+F(@Q30VaKHBX#TQ9|-$|mj@Tv z3&*Q=i_?gex>sc_oKdgCIpWwtq(n^s1^X^$p3$D%6_T+I%mER!Mwbc_zRB zYhHOtA#ihI#&|%IA+gasi8w)wZk)l}ixBZV&VnS_pbtCN8FBa*b8IzH4OcUUfXX{{;@ckt9$1eYYD5gKSeCe{c5FFImGmDKr!M4set6HcJi*YC=+(_Yq z)>B9p#*0%7bN#ph`EIU{y@hfSzayWNuc~!Q`5e{ixg>r9n~V}5#bdxzFhn|o&LBIc z;{Sx5$MJ#In`cBK!!@oQ`@jzDSnoKrw*3{%Mz<*Mp6yRp$#Pi{=z93fD$ z!S|LIh>Ejkfxfs1CR{HTg3t?UXAYAE!GiOH^pL+CW2V?7=?-(l3e6)TD72=em5rnclD&aDPP1#|C#(^rF=WaZqzYSsGX zMAPxMhZ=cVo)n)&w*K*7dBxir8H00BOA=7;%cpT8!6dBrRY^CDaLC!)fnZbUV_y@% z83!E9G`>BEs6gILcdzzc{)6!H^wrWrsa&--aEUf%9d~AC2`zp?B1nr%6fEa*lp2zS z!$^q1iLA#&&XCNHeIPkT`EqP|Y*-bpE@)I+!_3ld#b@Kcz(b2GghOp#@c*`VHoI+{ zSsE58QX(bNk|`BcQZvjCCK_21J>p+g@uyf46B1q+XvLMa7ji@Qk*#?J+VmZ0>s?>K z+(ELL0J9umfN2AR*b-Ts=lzP5)d@068b+)DK^&`8CDB!<&Ub#^^Pck^N2goIySax9 zdM9_`4+1I?vp~n}Oor*;;KXR0fZ(lT^X?hw$};X9byrTPcbH@r((X~MWGa1+o(+()}1|v@l}Qk*bf`U zqL>iS3<*or=EO(SFt(4%;9kr~Ukplvs<1o`h65dfNr(DWVJ&y}w}wMzWNslDU8VTV zUoe#8pGJSAH-DmjC=iuEu1f6zw*fz`O26F%ZZh(S%%0uOi}v;b>D z^IP_8hw%3F{KZ*VERtZA(@wt}7RymM?L|+f1K?(&;S~nVqvf*CKqvp*S)?x8jXI01 z{mPKJQ9N{K_+Oo5k4JpP_zs^gW1yA%5(yyhoRD*aw+=wp0%fJr(#50m{iIm{g9KR+ z@k3XzAMqIGSwJEkSV*cuI#tM2<6)!BG&jvhxup;R5L5D$o7PK!w^16Hd3Kn!)GbP_ z-Z5o1fb<3qRn^3#o87_ZVn1Je9Y)3J*UN4nh^yb>ftPyW6AzF!^419JDiy#AvXW}G zq2WT1IS#K6t`4D|9%kxvCf41XXD2m0oI<_7W`1=N?=wD3RI~<~CI73*`N}SMTHPzV zZORMYx;QJuWhb3>fHvllf@3vZ2rdR-p=>?$1J=P!J6DXM!~=n7onQ!sB5=aTuQS(x z)3mMT!Un@x4n$D7pej9@21#pVM3TJ-s*h^OAucy&kOS0jhzwEnQ>2F! z$P@SbVr2CNoK4Lre+rKSOq55Y;WnT)8xT5280E;@Ck#r}S!L*QTO zwlFp1!!vt{@gz}fr1j&9&5oNTEdgS(<8yi~Yd``e$7_@8DcOVWLU}={AfbZtKg0Vm zIQ0n?xd30o+qmslV)Si|z>%4ED7Ec&Gnw`EH@RGBWA?i+8a9nQiWj3bbc990_c|o4 z6-RnzIPoX6R`R?DkFtL;&CDcy8>|B+ckJ)k^-j6m8HbU#fM6CVRz%gbk74kP#oU?M z$NG&mJd7=4{iq)Kpt1h6yW`7B#^+;XX?EO@#l%Q55Xe-WK;iRI{Zqm++=dhmU^|!f?P??bCy#oZZDZwC( zi;I!98JNRpl(B%A1+p8#d=3c+ufg)M4>q=TcIG-0u5WCFUJh%pq}Sml`wd{kd@YQ}H88K!*Cq<{cQ0FkTYzc^DYYh5on*>q1d z2Z%|_NaR#mG6MJ>4=d0+PaUI{h8cz|CQgB2QBq;U<7lp`XA-7nN%!IHp(oZ zT9z)8FrTBEmD>%;-s@i@5*!I4d3kYhX;}?(I2v(ClET6>B6)~N@FDvL`~UiAtG=^y zc1m)y@H`4vH;Pt~{+8;0ZVa3&RAt&)B*3v1iPwCRFqv6m9AhnqIiEd|t zHBB<%2Tq*}r^sLI`rTgCUGOK}Om9er8jECwQoVwXkc1^V|D0GJso0KNcIvrY-Pl-G zjEsq}6ve2)35DD&Y4G{!7hl|rTAmB#ri{Z&l9oW|IFw#knMqj4g*o0ZO^yxD6pUD+ z(emYmWi$oHayhaB;!7l{C6rIT(x>1wSyS1w@pyXn38tlpnphYY+s45Rm}wpMWMD{{ z`t1tLvjjzFZ}I8Cl(Q=tMHzqt%4(w8hB80Bcb*>!NQ-KXt2%tAx@k1WA)zwFXNJq* zt`d6!pPBMCu+rwatO0kYiE9ENJ-~9}u}p&sFOjNhJS)3M^7OR-kEn_EPM(n4EYe$p z^I5J7+_5$aKUhfw0?KY}&-8?#1A$lpDx<@Z3feZP9P+^H`ClN;6s0ygv(?J}mZfZdokVqmR+)!>}(mVo$`V?L} zrv*l?$1(!4H87i@yCgkYe9s?hRuIba)idQQ=b*Ip$jQ4@dr7%Ott>UkZB{^Jwb1xM zLbueH^wOZMalwaw1d`*{lJfL`BBr%afaehs6%mzw6f1`Uu(grZh-D#R5H8Su5l0=+ zzqD!QIt}dhLG9>he0qj*6gJq{D#^Ia>j51R9*V()f!11uAyc;Rd#xsU&{GW?npVK` zh(LfGNo&~xqO$k6&0~vBN|8sp;Zq2MX}Y%#`_Pm-WNnP__;q)Yjd+yx9_M+;-4GmK zx}{AJJ`*NDy^BP6*c}dg{_wkRzYQe`&;tzekacqlC7H)2#NBxu4uvXa7~^8B!j+W> zL6JWt9>ua=zO-JV4;NY`@u5T#D5^9ODN2SspxJrr1;!27V}p=*;kcMmHJ@S*L9`!U zQ%?;&c98TVFVo!GV)r~d1{r~fggV1wAzFc8+KRm@GBulS=2^%c;XMcRDCF8 z$b9taDi&gZG)!o8J0{Vn!iT045d*|KsC8vQAqR}D2SgcLTQaHA5bF|J(8Y+QVh$ss zSnM$Sz+pf>691N(7GZw%5e|HS;^KbE8Nx!bP=tNVzOXrP7ur`IK7jy-tSIkR`+u&N zO%K(yQZNZw8`K#+u=lX7?e>I?O$9*9ipXL_w3ap~1j_KX8!V>f>K+lBv8juVQhPT# zU4kixWrgcmD(#3cMe3rkz0@obtwJnpwLYUl9kV6((xi zis&Kz*$0w}_(7S171|Ze?C1O%>w> zvY{ws1Y@>PJb;;;1BG2cIMXL|xp@Pu5m2tfyj|%_1tr0*wp19N?4>ydt{NkaH;8~P z?Fvzg+d3Qr8l{aC`K4s3))gh{0bT}s$m|ITLR+dvPKKNxHZQyb=EKVq3w?D?Cc_NF z%z@>9Qs|mvM5##jE6W66wS)SdHOndihO&Hf<(?^YJc2P%xwf>ex_XR8b4^!=9Fi>weZEs7Egf zCb}o{Z|nRiAli@Pv$;6Z+R;v4mqDgmE`}5jA)T0Iok?{J za))wAF%-pcayq4Q7)4wW$_GWA9a zgCU;-4j-|23VcWL939g2xOlE=v7}-EQtkj$1%0Ox!$Bq}&3Kq2i-B`{&MyKL zX)6^v<;neox(-h$Z{4_?zrQMz$q@dNQ?mfGRsjp5C4-`1LEziR(%3G%H0wlap(Vqz ziVyc2aX9jMjZs0$|MIo|sv`*T#S7|KeWM>5mh-LeHOrjUkhb zBKs3T5IAshxfb)3*jEOOAkOE%i#7Kqax@} zT@%?*fesxoZ-S*hAaJ1mmxnNCh-;(}S`tkf6^LgHZ0bknpAn-Il;WFrcL@+^ff9X-B zMwb9LHQh@b?L|k+-OAq45q~C?wBcn!y`;ifnQ=2&K$T<@>e|u5-qjIs!QS*p5!Obj zNr}!OAXBJLYR97K!cgnQF?t%O43siHPtkr_E7M+zO<4kg{`M!GFLRW6T3bWqUD2p* zmJiR4`+cB5H3XA1xu3NGXIW=9B^ESAhZ4)kG42Clm-+a*cC81lrI_2$eGFIAnQ=8IF=Mfm z@abjA%6K+Qr2Ra4f?1ZwQ+CScjy_*;Gb`Cg6(9wk_e2N7~*i-(_B zW2Pi7hxz=LG(z9P)*G!wmrJyH=&2`{2|F*3l1skww7U4^)v!7_dk{AC%rBn1vKSc@ zVXcaPtr0~i3=0V$P=qSGq%+_BiES6 zQR)Nnr1}Ks&wwYNsn`Gw8`eaU*UnydOqCE^42<3YS@&T&DBz z*jUTJvFQZ}cW5=Jez)uK&KrbW z#kz8#TCr9W0fn{Thn#p&SMm%0u<0ppdoD{refSKDpLj<7SN)KP#te+2pl7H5Y*&lQSR!bMG~uNtCyU2S z%%fBA7?9`fiD?*&f+THTlOWn#pm~r)J1~+cZM9KwMOsbcC8${%L5Q)ePKC74K<(Hz zJ)WL3C%w9(%ADr}hUztsE8w_bA}7h5%LX0>BEiT#n()B9E9M3v1SR&2M5nKb`FQ5R zv6q(By>%!lEMp4zoqFwx31L{tPM3E1tcwwBl*rzpbK*L?I8T>tLh0L}{6gG}9s!ad z0%|01XhNQN4M_h{3$*J`4L%^n%$dTp1;4!HY)1?Q~>_$)sn(D zbwP2atqlaBdxoaZ8JwKmYSFJS-AvKC5Ff$z4dQ@;nsgo}$fMafpgcs8GA^wV;yPiP zdz0ewdaEw_-Ux3|rx001r)cKb49rEEIW~g>1Ak>P z7#IXO-z&D&vTLg?n@vnIa6Z7K!d4MGS@f>_D{s~JF}qiG_^=q-2M&6{nBl=hhMTO)U#*cJfw!R5k5%_ zh0JHh!0fUYW0_K}E+YvC3KPHo<1nI>1g@rDhOuRt>}zC@sLrs2TK&MAQIGyM=NbKmhPc()DHt$DaD1igRH2k2;p|B`cus0|;9$bi;V&?W zX|-S5_Pp)7;};3LF|0(KsxUBkhPd>dIJx&I3Am0(=%vV z<;UIMuTRDL=}u2 zKuAPmHEo)u);O?&%Jg8<_BtLEuhmW;{=>Gv-Vgnv4-1rBcEYfllanaSvWKOQDw$wp z-asfxbm9iWxG|6(TN=vI6GH81xP~z%>^9%gJEv<)aibw3B1>gXfu5TtbQm=ha$9lb zvQetJHO1_>Cd&9}b`eJ?QS$*8@K>%&w?BbBpK&`nnTrUXCu9diR82FUie)f{E}wu2 zV)&bVhQCjkyTb{3WcnRV;7LNGnK|U9c)QH@`2@UutHCN%8$#D5Vuyv5Y z{`6!TF8gi$*RRZiZdwXIZqr7nmcqca6tZMGw4I0Q%T`Na2eQTrSK1XVv@T|7)qH2# z5S7hMokcP z^wp`Gs5+FO<&t3CjZyuS;!HN*oPE7@h8$T>tBVkTJx^kR3Ep?de1Q6I+0>8j6-3%v zh0DYbGHt^5*WZNGlf{s6R@Wgtywr2`b|#Hni$bo~sE4p;v<=2mOPCLvuj|vvaq29> zI(NalrWVnH5#3V!*D|=8ChIjf2sls_o_J>mtpImt714%|CQyvxZ#2j>6VSXtd5Yyj zAJR<%_sy$sUj6$!j%JLv^Y`8Jfj-EGx8SbEX>^8TWU`|LntP<`~`iW6>RNW3Ju5B& z|9SPd#5b@08rvb2#^;*(w?uqD@9|%|>yBP8War(dvBShm-1R#jK=)z-PI3lD-p_ly zVf-7=^nTvs46?b;uljeQk7l3f*)Xy@*6RmYFSi068JIcE;?AXg*V2FA*IzHZ+w)b? z&fPxcec!=dpJ&E2Vs~I5#pdTe-s0T!{BqZP*JHo$>#rAPrsqE2Vs7pV@A0di1vv3G z^>-Ma_x%#@`n=Z*Kean?d~?@t{?^xDFRb6ZYwRQI`|hykx4*|Y>LHRKP&NC>-MjZa zH$3yN_t7}c4A1P#eZ0fphb|hE^ZT$n^MvZRUb1)nd;d(fb=POU@9Xn`=l5WCW(~#n zaZTTtn|o`!e|@6$zE$n6&%0sn{jxmku8(`)*WZOZDBv7Jx_2)6k9+%P-n&%qk9Yd( Q4eK9r`}H!De!gD#KW#NJ;s5{u literal 0 HcmV?d00001 diff --git a/DATA/WALLS4.SCR b/DATA/WALLS4.SCR new file mode 100644 index 0000000..c102d53 --- /dev/null +++ b/DATA/WALLS4.SCR @@ -0,0 +1,8 @@ +w1_25.dat wall 2 2 8 +w1_26.dat wall 11 2 8 +w1_27.dat wall 20 2 8 +w1_28.dat wall 29 2 8 +w1_29.dat wall 2 11 8 +w1_30.dat wall 11 11 8 +w1_31.dat wall 20 11 8 +w1_32.dat wall 29 11 8 diff --git a/DATA/WALLS5.LBM b/DATA/WALLS5.LBM new file mode 100644 index 0000000000000000000000000000000000000000..ad251523b21e5f2688ab3eadd38fd0d5b274da0f GIT binary patch literal 51102 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 UCVbDyIMTSAoHsBczwcrHU$}&g-2eap literal 0 HcmV?d00001 diff --git a/DATA/WALLS5.SCR b/DATA/WALLS5.SCR new file mode 100644 index 0000000..88d6e1d --- /dev/null +++ b/DATA/WALLS5.SCR @@ -0,0 +1,8 @@ +w1_33.dat wall 2 2 8 +w1_34.dat wall 11 2 8 +w1_35.dat wall 20 2 8 +w1_36.dat wall 29 2 8 +w1_37.dat wall 2 11 8 +w1_38.dat wall 11 11 8 +w1_39.dat wall 20 11 8 +w1_40.dat wall 29 11 8 diff --git a/DATA/WALLS6.LBM b/DATA/WALLS6.LBM new file mode 100644 index 0000000000000000000000000000000000000000..ec205ce5725ee72191c86fbf98a72675fb4ad106 GIT binary patch literal 50656 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 literal 0 HcmV?d00001 diff --git a/DATA/WALLS6.SCR b/DATA/WALLS6.SCR new file mode 100644 index 0000000..1f1e38b --- /dev/null +++ b/DATA/WALLS6.SCR @@ -0,0 +1,8 @@ +w1_41.dat wall 2 2 8 +w1_42.dat wall 11 2 8 +w1_43.dat wall 20 2 8 +w1_44.dat wall 29 2 8 +w1_45.dat wall 2 11 8 +w1_46.dat wall 11 11 8 +w1_47.dat wall 20 11 8 +w1_48.dat wall 29 11 8 diff --git a/DATA/WEAPON2.LBM b/DATA/WEAPON2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..7bf758e34e820affe9b328b1c8bbc29d27b7fbf0 GIT binary patch literal 28524 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 literal 0 HcmV?d00001 diff --git a/DATA/WEAPONS.SCR b/DATA/WEAPONS.SCR new file mode 100644 index 0000000..2c02a8a --- /dev/null +++ b/DATA/WEAPONS.SCR @@ -0,0 +1 @@ +weapons.dat lpic 103 159 128 32 diff --git a/DATA/_BACKUP_.LBM b/DATA/_BACKUP_.LBM new file mode 100644 index 0000000000000000000000000000000000000000..db2b6135afc3f175875cc955bef47b5dc05b15ac GIT binary patch literal 51366 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 M<@VWSHiN1EAHf1qSO5S3 literal 0 HcmV?d00001 diff --git a/DP_PREFS b/DP_PREFS new file mode 100644 index 0000000000000000000000000000000000000000..aec29b35dd20afdc7f258369dace93a0f94a1d94 GIT binary patch literal 324 zcmWe&U}X6Jp8*6|!6YLin1T`w96$y)vIrLTZiX25FKh)2PAZUFJAH#=tK=r{uvzL5e_@D%IaiuH6fhhuFjPro_4&zTYMeZ2) z8>~jUD}ek>K)eTtZvk- +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "\miscsrc\types.h" +#include "\miscsrc\minmisc.h" +#include "\miscsrc\script.h" + +#pragma hdrstop + + + + +typedef struct +{ + char id[4]; + int numlumps; + long headeroffset; + int headerlength; +} compprologue_t; + +typedef struct +{ + char name[14]; + int lumptype; // the command number used to produce the lump + long dataoffset; + long datalength; +} compheader_t; + + +typedef enum +{ + co_uncompressed, + co_rle, + co_rlew, + co_huffman, + co_carmacized +} compress_t; + + +typedef struct +{ + long filepos; // debug: make these three byte values? + long size; + unsigned nameofs; + compress_t compress; +} lumpinfo_t; + + +typedef struct +{ + int numlumps; + long infotableofs; + long infotablesize; +} fileinfo_t; + + +fileinfo_t fileinfo,oldfileinfo; +lumpinfo_t *lumpinfo,*oldlumpinfo; +int *contentbuffer,*oldcontent; +char *content_p; + +boolean incompfile; +int comphandle; +compprologue_t compprologue; +compheader_t *compheader,*compheader_p; + +char filename[MAXPATH]; +char filepath[MAXPATH]; +char sourcepath[MAXPATH]; +char destpath[MAXPATH]; +char scriptfilename[MAXPATH]; +char datafilename[MAXPATH]; +char contentfilename[MAXPATH]; +char compfilepath[MAXPATH]; +byte *lumpalloc; // for lumpinfo and the names +char *name_p; + +int datahandle; +int filescopied; + +boolean fullbuild; + +unsigned long oldtime; // time stamp of old file (bit fields) +unsigned long newtime; + + +/* + + +output filename + +; any line starting with a non alphanumeric char is a comment +filename [-compression] [lumpname] +LABEL [lumpname] + + +idlink [-b][-path FILENAME] scriptfile + +put in a SPARSE command + +*/ + + + +/* +============================================================================= + + GENERIC FUNCTIONS + +============================================================================= +*/ + +int SafeOpenWrite (char *filename) +{ + int handle; + + handle = open(filename,O_RDWR | O_BINARY | O_CREAT | O_TRUNC + , S_IREAD | S_IWRITE); + + if (handle == -1) + MS_Quit ("Error opening %s: %s\n",filename,strerror(errno)); + + return handle; +} + +int SafeOpenRead (char *filename) +{ + int handle; + + handle = open(filename,O_RDONLY | O_BINARY); + + if (handle == -1) + MS_Quit ("Error opening %s: %s\n",filename,strerror(errno)); + + return handle; +} + + +void SafeRead (int handle, void far *buffer, unsigned count) +{ + unsigned iocount; + + _dos_read (handle,buffer,count,&iocount); + if (iocount != count) + MS_Quit ("File read failure\n"); +} + + +void SafeWrite (int handle, void far *buffer, unsigned count) +{ + unsigned iocount; + + _dos_write (handle,buffer,count,&iocount); + if (iocount != count) + MS_Quit ("File write failure\n"); +} + + +void far *SafeMalloc (long size) +{ + void far *ptr; + + ptr = farmalloc (size); + + if (!ptr) + MS_Quit ("Malloc failure for %l bytes\n",size); + + return ptr; +} + + +/* +============================================================================= + + COPOSITE FILE STUFF + +============================================================================= +*/ + + +/* +================= += += OpenComposite += +================= +*/ + +void OpenComposite (void) +{ + char *str; + + if (incompfile) + { + close (comphandle); + free (compheader); + } + +// +// get and qualify composite data file name +// + GetToken (false); + + for (str = token ; *str ; str++) + if (*str == '.') + break; + + if (!*str) + strcat (str,".DAT"); + + if (token[0] == '\\') + strcpy (compfilepath,token); + else + { + strcpy (compfilepath,sourcepath); + strcat (compfilepath,token); + } + +// +// open it and read in header +// + comphandle = SafeOpenRead (compfilepath); + SafeRead (comphandle,&compprologue,sizeof(compprologue)); + + if (strncmp(compprologue.id,"SGRB",4)) + MS_Quit ("Composite file %s doesn't have SGRB id\n",compfilepath); + + compheader = SafeMalloc (compprologue.headerlength); + + lseek (comphandle,compprologue.headeroffset,SEEK_SET); + + SafeRead (comphandle,compheader,compprologue.headerlength); + + getftime(comphandle,(struct ftime *)&newtime); + + incompfile = true; +} + + +/* +================= += += CloseComposite += +================= +*/ + +void CloseComposite (void) +{ + if (!incompfile) + MS_Quit ("$CLOSECOMP issued without an open composite file\n"); + + close (comphandle); + free (compheader); + incompfile = false; +} + + +/* +============================================================================= + + IDLINK FUNCTIONS + +============================================================================= +*/ + +/* +=================== += += QualifyFilename += +=================== +*/ + +void QualifyFilename (void) +{ + if (incompfile) + { + if (filename[0] == '\\' || strlen(filename)>13) + MS_Quit ("Illegal comp file member name: %s\n",filename); + + strcpy (filepath,compfilepath); + strcat (filepath,":"); + strcat (filepath,filename); + return; + } + + if (filename[0] == '\\') + strcpy (filepath,filename); + else + { + strcpy (filepath,sourcepath); + strcat (filepath,filename); + } +} + + +/* +================= += += ReadOldFile += += Tries to read in info from old file. += If there is a problem, a full rebuild will be specified += +================= +*/ + +void ReadOldFile (void) +{ + int iocount,size; + int handle; + +// +// open and read data file +// + datahandle = open(datafilename,O_RDWR | O_BINARY); + if (datahandle == -1) + { + printf ("No current file to do a partial build from. Rebuilding.\n"); + fullbuild = true; + return; + } + + iocount = read (datahandle,&oldfileinfo,sizeof(oldfileinfo)); + if (iocount != sizeof(oldfileinfo)) + { + printf ("Couldn't read old fileinfo. Rebuilding.\n"); + close (datahandle); + fullbuild = true; + return; + } + + size = oldfileinfo.infotablesize; + + oldlumpinfo = malloc (size); + if (!oldlumpinfo) + { + printf ("Couldn't allocate %u bytes for oldinfotable. Rebuilding.\n" + ,size); + close (datahandle); + fullbuild = true; + return; + } + + lseek (datahandle,oldfileinfo.infotableofs,SEEK_SET); + iocount = read (datahandle , oldlumpinfo, size); + if (iocount != size) + { + printf ("Couldn't read old fileinfo. Rebuilding.\n"); + close (datahandle); + fullbuild = true; + return; + } + +// +// get timestamp +// + getftime(datahandle,(struct ftime *)&oldtime); + +// +// load in the content file +// + handle = open(contentfilename,O_RDWR | O_BINARY); + if (handle == -1) + { + printf ("No content file. Rebuilding.\n"); + close (datahandle); + fullbuild = true; + return; + } + + size = filelength (handle); + oldcontent = malloc (size); + if (!oldcontent) + { + printf ("Couldn't allocate %u bytes for oldcontent. Rebuilding.\n" + ,size); + close (handle); + close (datahandle); + fullbuild = true; + return; + } + + iocount = read (handle,oldcontent,size); + if (iocount != size) + { + printf ("Couldn't read old content file. Rebuilding.\n"); + close (handle); + close (datahandle); + fullbuild = true; + return; + } +} + + +/* +=================== += += ParseScript += +=================== +*/ + +void ParseScript (void) +{ + char *fname_p; + +// +// load the script file into memory +// + LoadScriptFile (scriptfilename); + incompfile = false; + +// +// get the output filename +// + GetToken (true); + strcpy (datafilename,destpath); + strcat (datafilename,token); + +// +// the content file holds a list of the pathnames used to build the +// data file. Used for future makes +// + strcpy (contentfilename,datafilename); + fname_p = contentfilename+strlen(contentfilename); + while ( *fname_p != '.' ) + if (--fname_p == datafilename) + { // filename didn't have an extension + fname_p = contentfilename+strlen(contentfilename); + break; + } + strcpy (fname_p,".ICN"); + + + printf ("Data file : %s\n",datafilename); + printf ("Content file : %s\n",contentfilename); + + if (!fullbuild) + ReadOldFile (); + + if (fullbuild) + { + unlink (datafilename); + datahandle = open(datafilename,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE); + if (datahandle == -1) + MS_Quit ("Error opening data file: %s\n",strerror(errno)); + } + +// +// count the lumps in the script +// + fileinfo.numlumps = 0; + + do + { + while (TokenAvailable ()) // skip to the end of line + GetToken (false); + + GetToken (true); // get the next token + if (!endofscript && token[0] != '$') // don't count commands + fileinfo.numlumps++; + + } while (!endofscript); + + printf ("%i lumps in output file\n",fileinfo.numlumps); + +// +// allocate space for the lump directory and names +// + lumpalloc = malloc (0xfff0); + if (!lumpalloc) + MS_Quit ("Couldn't allocate lump directory!\n"); + + lumpinfo = (lumpinfo_t *) (lumpalloc + 16-FP_OFF(lumpalloc)); + name_p = (char *)(lumpinfo + fileinfo.numlumps); + +// +// allocate space for the content file +// + contentbuffer = malloc (0xfff0); + if (!contentbuffer) + MS_Quit ("Couldn't allocate lump directory!\n"); + content_p = (char *)(contentbuffer + fileinfo.numlumps); + *content_p++ = 0; // in case the first lump is a label + +// +// position the file pointer to begin writing data +// + if (fullbuild) + // leave space in the data file for the header + lseek (datahandle,sizeof(fileinfo),SEEK_SET); + else + // go to the end of the file + lseek (datahandle,filelength (datahandle),SEEK_SET); +} + + +/* +=================== += += CopyFiles += +=================== +*/ + +#define BUFFERSIZE 0xfff0 + +void CopyFiles (void) +{ + int i; + int lump,oldlump; + int inputhandle; + long size; + char *buffer,*oldname_p; + + filescopied = 0; + + script_p = scriptbuffer; + GetToken (true); // skip output name + + buffer = malloc (BUFFERSIZE); + + for (lump=0 ; lumpdataoffset,SEEK_SET); + size = compheader_p->datalength; + } + else + size = filelength (inputhandle); + + printf ("%4i = %s (%lu bytes)\n" + ,lump,filepath,size); + + lumpinfo[lump].filepos = tell(datahandle); + lumpinfo[lump].size = size; + lumpinfo[lump].compress = co_uncompressed; + + do + { + read (inputhandle,buffer,BUFFERSIZE); + if (size < BUFFERSIZE) + write (datahandle,buffer,size); + else + write (datahandle,buffer,BUFFERSIZE); + + size -= BUFFERSIZE; + + } while (size > 0); + + if (!incompfile) + close (inputhandle); + } + + free (buffer); + +} + + +/* +=================== += += WriteDirectory += +=================== +*/ + +void WriteDirectory (void) +{ +// +// write lumpinfo +// + fileinfo.infotableofs = tell(datahandle); + fileinfo.infotablesize = name_p - (char *)lumpinfo; + write (datahandle,lumpinfo,fileinfo.infotablesize); + +// +// write fileinfo +// + lseek (datahandle,0,SEEK_SET); + write (datahandle,&fileinfo,sizeof(fileinfo)); + + close (datahandle); +} + + + +/* +=================== += += WriteContentFile += +=================== +*/ + +void WriteContentFile (void) +{ + int handle,size,iocount; + + unlink (contentfilename); + handle = open(contentfilename,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE); + if (handle == -1) + MS_Quit ("Error opening content file: %s\n",strerror(errno)); + + size = content_p - (char *)contentbuffer; + iocount = write (handle,contentbuffer,size); + if (iocount != size) + MS_Quit ("Write error on content file\n"); + + close (handle); +} + + +/* +=================== += += main += +=================== +*/ + +int main (void) +{ + int parmnum,parmsleft; + + printf ("\nIDLINK "VERSION" by John Carmack, copyright (c) 1992 Id Software\n"); + + parmsleft = _argc; + +// +// check for help +// + if (MS_CheckParm ("?")) + { + printf ( +"Usage: idlink [-b] [-source path] [-dest path] [-script scriptfile]\n\n" + +"-b Force a full rebuild of the file, rather than a file\n" +" bulking partial update\n" +"\n" +"-source path To place the source for the files in another directory\n" +"\n" +"-dest path To place the linked file in another directory\n" +"\n" +"-script file The script name defaults to LINKFILE.ILN if not specified\n" +); + exit (1); + } + + +// +// check for full or partial build +// + if (MS_CheckParm ("b")) + { + printf ("Full rebuild\n"); + fullbuild = true; + parmsleft--; + } + else + { + printf ("Partial make (file size may increase, use -b to rebuild)\n"); + fullbuild = false; + } + + +// +// get source directory for data files +// + parmnum = MS_CheckParm ("source"); + + if (parmnum) + { + strcpy (sourcepath,_argv[parmnum+1]); + parmsleft -= 2; + } + else + { + strcpy(sourcepath, "X:\\"); + sourcepath[0] = 'A' + getdisk(); + getcurdir(0, sourcepath+3); + } + if (sourcepath[strlen(sourcepath)-1] != '\\') + strcat (sourcepath,"\\"); + + printf ("Source directory : %s\n",sourcepath); + +// +// get destination directory for link file +// + parmnum = MS_CheckParm ("dest"); + + if (parmnum) + { + strcpy (destpath,_argv[parmnum+1]); + parmsleft -= 2; + } + else + { + strcpy(destpath, "X:\\"); + destpath[0] = 'A' + getdisk(); + getcurdir(0, destpath+3); + } + if (destpath[strlen(destpath)-1] != '\\') + strcat (destpath,"\\"); + + printf ("Destination directory : %s\n",destpath); + +// +// get script file +// + parmnum = MS_CheckParm ("script"); + + if (parmnum) + { + strcpy (scriptfilename,_argv[parmnum+1]); + parmsleft -= 2; + } + else + { + strcpy(scriptfilename, "X:\\"); + scriptfilename[0] = 'A' + getdisk(); + getcurdir(0, scriptfilename+3); + strcat (scriptfilename,"\\LINKFILE.ILN"); + } + + printf ("Script file : %s\n",scriptfilename); + + if (parmsleft != 1) + MS_Quit ("Improper parameters. IDLINK -? for help.\n"); + +// +// start doing stuff +// + ParseScript (); + CopyFiles (); + + if (filescopied) + { + WriteDirectory (); + WriteContentFile (); + } + else + { + close (datahandle); + } + + printf ("\n%u files copied.\n",filescopied); + return 0; +} diff --git a/IDLINK/IDLINK.DSK b/IDLINK/IDLINK.DSK new file mode 100644 index 0000000000000000000000000000000000000000..9e1cc7beeda98a36f8ec5bac098f0fd03bfc9d7f GIT binary patch literal 2506 zcmbVOO>7fK6#mwU9VcA~0YVB5t%ahfaIgeYLF9n2*BflH{=w^nBCVR3#E4MGHi=!4 zsuhS6;?hb;oau!_PsqJ+^nGR90SHy@jJo*?!t!27LR-UW;3qk7A?=UikU(w zZeao;7_u9by)DYoC;@_o*-TDg&~grGoM7*@@&C_LcL`BsQcfm!nM=RK_n`>8furQ~ zOXvvxk^c?EhYXw_0xEciajtvG4G&=!=WqcjT!DvMXy85`<2U?)7x?Hvmq(u}-Cb3> zR=Uj-%+@zV^Zb3jun)uL!d_P@;;9OGSI0X=9?waM=UG=tJwE z%%k4-O$SX8G|e(~Vi%^@0!+K0QSlP%pk%s~kTsR(LfF6&cD;Q=-Pv$d3qcoHR)+z= z48bTK)BVjILXiI-wtXc>RBdsd>FoURl$-oI}1xHB+KsycgaAfk3XK@6c z9Tz23$tX+c;F%C-u5@e)huh|>NkB>YEY#hgd$jI;#Pe{FB+~oZ=F9znk}_Nha1WOa zg||J{Ht+EyP%=QUgD0*YqKt~JxBb+N^OW)*CvY*+Hvb;!$^bugOE54(Gtu=HmU{3) e;=B8HqHR7n1SlDRQ}G*gHB!L-r3-lf9{2$5ho;N` literal 0 HcmV?d00001 diff --git a/IDLINK/IDLINK.EXE b/IDLINK/IDLINK.EXE new file mode 100644 index 0000000000000000000000000000000000000000..48437c37a16de5917b551a0c5f8c69bc4d80fdb7 GIT binary patch literal 11594 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%0D67oF_ z;&fmJLz)R`7DJwms)FhqU@qVRN`O-CZ1v1zsZyA^$;H~&0@nf8196}UXa*9%2A~DF z5oiN8Gbjn^W}pM;0=59R0Jj3S0k;Ep0CzIzQAl?I-9Qh}3)~HC1?~av1?~gxXV3$X z9t0i&9tIu(9s{-k+kwXccOhd0FcKIA@kYR(5HFS-CzWwLzu*tRHA(d zYC~38u(?w4gaV)QE(lF~y^CC1f^~A-HN5%C{t2o0ST0lQLun z7f5lRC3VNdgPgCUBheP$lt^Xr9P^o>Oy{y`uL`YEs;<$Ms)*tlZrj z_9x<9EiIWdNS)2uIyrYgPhd?T>9m%d#Q$o>_ZS9$}XlUsv$hGDfZiBf7lx6=zd@a=5+LNhHCD5LuA+4mV6pZ^Z6-iR86T#b)%Y4o77Hqg{r8!>Q{rz zu)2zCnXT23;pVqZ^1FElIF>m=>vO4IvaFNxae24AP2MCo$fdGd{?fI_^@J??~IFFQ`I_Q=IKj;&GMox|mFL#e0jU3(gRnDL6}TwxA+-so)&Jxq=?S62Vfz zd4gq>yrHkCoHS+y6;ysxWLfZH>+^>y@{)^NZHu;V+pBHe*0XKdaoAP{+O;gKBnxKJ zm)L-5A4^5_ZEIhVJ+6U%Y^#+b+WCS5$7PS&j-M|>9J&bK_H*VZl16@3*8-;Ly^03Y zGGl(9(EuexlpgXwyTU@U(odcm4|ha5)6bpm$S0BU^pml*(STD_zF;t-At)5P`&r{# zsYisFK~&7OW}_MN#T;@_uZ3el2OSMzJLvfBfUu-8#H>dg2F26C_gx1+X3WsTV$KF} zwJy9m=rpKx;d(vjG%60s4tp?X{y@FcWcYRC^x*q1@3nljoWQ$&K2`D;Br)5kP)=nu Pk4mY8JpAh~xcmMM1s8~Y literal 0 HcmV?d00001 diff --git a/IDLINK/IDLINK.TXT b/IDLINK/IDLINK.TXT new file mode 100644 index 0000000..ebf588f --- /dev/null +++ b/IDLINK/IDLINK.TXT @@ -0,0 +1,41 @@ + +IDLINK DOCUMENTATION +-------------------- + +idlink [-b] [-source path] [-dest path] [-script scriptfile] + +-b Force a full rebuild of the file, rather than a file + bulking partial update + +-source path To place the source for the files in another directory + +-dest path To place the linked file in another directory + +-script file The script name defaults to LINKFILE.ILN if not specified + + + +Script file format: + +; Comments can be uses at the beginning of a line, or after a command's parms +; whitespace can be introduced anywhere, but a command cannot cross lines +outputfilename ; must be the first token of the file + +filename [labelname] ; adds filename to the data file, possibly with label +$OPENCOMP filename ; opens a composite data file. Filenames after this + ; are assumed to be in the composit file +$CLOSECOMP ; Closes the open composite file. Files after this + ; are assumed to be seperate files. You can issue + ; multiple $OPENCOMPs without $CLOSECOMP +LABEL labelname ; inserts a label on an empty lump + + +Idlink generates the output linked file, and a file with the same base and +a content file with a .ICN (Id CoNtent file) extension. This file holds the +pathnames and composite files for each of the lumps. This allows the partial +linking to find the correct data even if you rearrange the link script. You +can delete this file whenever you want, it will just force a full rebuild. + +During a partial link, if a lump has grown it will be added on to the end of +the file, leaving wasted space behind. You should periodically use the -B +option to force a rebuild from scratch. diff --git a/IDLINK/WALLS1.SCR b/IDLINK/WALLS1.SCR new file mode 100644 index 0000000..936187d --- /dev/null +++ b/IDLINK/WALLS1.SCR @@ -0,0 +1,6 @@ +COMPOSITE + +w1_1.dat wall 2 2 10 +w1_2.dat wall 11 2 6 +w1_3.dat wall 20 2 8 +w1_4.dat wall 29 2 12 diff --git a/LIGHTS/LIGHTS.C b/LIGHTS/LIGHTS.C new file mode 100644 index 0000000..cebf62e --- /dev/null +++ b/LIGHTS/LIGHTS.C @@ -0,0 +1,164 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +typedef unsigned char byte; +unsigned NUMLIGHTS; + +byte palette[768]; +byte far lightpalette[254][256]; + + +/* +===================== += += RF_BuildLights += += 0 is full palette += NUMLIGHTS and NUMLIGHTS+1 are all black += +===================== +*/ + +void RF_BuildLights (void) +{ + int i,l,c,test,table; + int red,green,blue; + int dist,bestdist,rdist,gdist,bdist,bestcolor; + byte *palptr, *palsrc; + byte far *screen; + + screen = MK_FP(0xa000,0); + + for (l=0;l added 11-12-94 + // Allows last 16 palette entries to be unafected + // by shading and thus available for lighted tiles + // such as flames, lamps, etc. + + if (c < 248) + { + palptr = palette; + bestdist = 32000; + for (test=0;test<256;test++) + { + rdist = (int)*palptr++ - red; + gdist = (int)*palptr++ - green; + bdist = (int)*palptr++ - blue; + dist = rdist*rdist + gdist*gdist + bdist*bdist; + if (dist|?+8?z!jQcdy+y$Gb7n;f@5`T-SBXN0wfA6NB&ZHdwekH9b$ifxBnXNa1#jZIhvqdUWVgh|-OD^cK_ vUd12wA#~5bCsQvfEN~xoUYzy${ZBs{(NW)SQ%9A603~uVdxh7)#Rc#Wz@xK8 literal 0 HcmV?d00001 diff --git a/LIGHTS/LIGHTS.EXE b/LIGHTS/LIGHTS.EXE new file mode 100644 index 0000000000000000000000000000000000000000..e0986e8cced808cccf1de95a485fe908a0243878 GIT binary patch literal 87505 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 YEyQ;#KJryjnWt(Aq2}e4WmWY50hPYvt^fc4 literal 0 HcmV?d00001 diff --git a/LIGHTS/LIGHTS.OBJ b/LIGHTS/LIGHTS.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..5ab8c64069a175685064f3512654bf2ed8989105 GIT binary patch literal 2992 zcmb_eeQZwQf@BN)~&pr2^d+$CQtW}j2F0aSod@PX%V7k}2@^O1tWRKin6bGpW^=SVT=v%({?Q;QYpx(i(SFNp+cXOJ%jQs;;bji^uD( ztgdjlZYCB^&}QF_rk9m#9*3*^OIX!)RaFkx@_Vy9-m=OXhs$|y$MkBgvZ~zS8cxig zaBSAy94o7IJ6t!ugi}MVU%5ADUHLj;=bk~(oYh{MUQMEK!lSu&^T@N&Ls2d9I$TQ= z_6cI%-H0LxUr$(os|-k)z={J28*n)fDrQ)*URGv-<11FRCUFwDW{EXM{r*rMzmkC^ zQXh;(8)vE65=M;ZEY*UX27koYKV@ug<>~;1gdy73}MnPzcD9jcU=c-3m@~Ph@7wSRvl8%vIGuCO--sftyhKXo2p9J;ir-_S8!-CU6L~w z@l*~hx{NeFl#F>32FgwHZjsgNn0Rjv`tn?LkqAyWka?ei3UPOGqy_#rL(Za)=J7kL`;f58VyJBT}h$S zQO?L5Y!Sk#T;%9_bF06#F|rfCl6$XEq$9(VQe&~uC{&RrjV?y0D;Ho{dTV_klx8>~ zNe`PN^?>fy^wM}B*i;qR)?&nn^{V7AnQ&u`^0Y0(lsHOc6blST1s`VW;7@(s@GXN>iY@SvM$sEX@&G2E#%q7TD$24a&j8 z$B%N_6Lrb{_WlCjhI86A96zUB0nTaTlphD!p9CBuIEuqrZ=+KisW8i-iE^;w1e79e zd^j|coB`$iKINU_zYISPg{YtP41KX@=(C=|FZK-X-!nFX-K~EV;|^f=IgQfwM%`ic zZ4_xEo!TwUghQQL{{$TD)cUlfc566vt2U|i4~P0UDeony z?N)ln#?xRlhTwhldpa=ycWtKaTBhyFFpRw)Nt~|m1pR9~FP6Mv8K#3{65pn>v zJ-|kNYx3&1Ps?@Vz75Gemi9fWV%(qRW;bo--rs;^t@tx>PCD&pEUCXee~SDr{_uBT z>6ue6PEGG)wQ1g7n_eLGh>{#woyo+r(hl5MorY2?2K1TQqS%;;tD-mwrRUvGC)I2I zTiur4BpZ6;ndh|eT3T%pF=^|LJ)5*wd`iwIt>EI+;#0k@j5#yohnLW?*T*`Z_GNc$ z_gTAxUiCtYSMC1Jbf$Fpe70`)bjCZ%eU|PL0^P-;`KvzOv4r^ZeOcWF)X@Eq;8=*m z37ox2O$RUg)PsNa<($1hEeC%|;OC<2Bz0YU!8hgX0k3*~zgN8&AiS0EX2MRwD+#ag zs%P`5oa$B2yhsXXI)r#eh^P=jAsU2uN(gdLIpY#yjS#a*v>)F?S0QYWM?=gW2{an< zsNWH6Xtm2GqrM^NkJ&JB1UQ=N4U~%`&n}MPKxmsi95*6y!~S`KY3zS8*r3u#G7mr-eN7Zaa(bkg>jxm@IH&-0~RL_+tAN;;GgVi{EO|xAlrpuwilnU zee^$zX}kk7`5_eY7f{5zu!6scmHZ|8k77MPhRysnwDBL|`}}o0%iq93egcR1kCEbM J57U|${{dQNmM#DQ literal 0 HcmV?d00001 diff --git a/LIGHTS/LIGHTS.PRJ b/LIGHTS/LIGHTS.PRJ new file mode 100644 index 0000000000000000000000000000000000000000..6c9282b6bee5feb21add2a3af1ee6935013d0355 GIT binary patch literal 5543 zcmeI0Sx{SL6vxk(1W2Kjl+v=p9gW(SX;@mI#U+F!(9C3;B#dZN83-v-fnb2TRlwcR z(b4+mliIp(b$xKFJ~*RoLC2+=zWLy*`)=d;f0seKgbPV5GmhVdU(Pu>-#O==``z3n zG#>AbDR#vlkL`>`#+3Gf!KhM3BEPU$@JCJq1&kk(jszWK5*?EAVaaJ}nUQ=e58u8m z`HtiPrl3!x=ckgNG4*tW*-A&H<(TAgCh1Rr^exY!?||=t9~k0CNI#K*Xo~1(D8B%| z0>5FFvfseeeIp|r$z$_T;FzrAIK&eyn&=CrfquulR|^<_uq6J3dJ;$gB-qA-gq}eL zAPdNbEr(HRWb`d#D7g&E1C|5%zzT*afMfzz0*`Pu-J?kP7_b-E2Rsfu0Xzvj1?&f2 z0$v7Q0iFh)Vd$TQ^c?U!@B;86@EY(sP>7VPfFg!i4XlA$EYu#BKq(dIcNxTTpn@SP zAyqN-)le0v=K<#fX5a$gLY|zMyojY58Ri-ti`y7tJ8%`y3q*iEAPVdN`hlw%Gz1I- zG1#t!GzyFZyI{Kx()EyT0B!_s0(LX#e&A-P6Tl=e1>6GM3f#t^+acWn+zItA;BKh* z0QUm-0S^EV0(*dm0E3B<1!My`fDzar9NfY5heb@0y(Qe{3%G4whdu1_+TEQFXZnE` z5ux_98r-h7Ma<5OYaK7ojSWQgB8wUtIc5V3^>uYb8^vU1QluVblc=Kg^G9Z~ zh0i3S_N6b)&S$a3PJZf;mx@G!&u7Z!YwdgagO$1TxsfJ10#5$|4q|^iIkD3P^DAb5z~}LY6tkTbPq1SxifdqD-LBX`pR(Q(Q5Kxw9626J zh>4KAk+Y4CMu&O_qw!>!L$;tN*>|bfYdu{`?UgR2)~A>=9XpkJQk`=+L23sl9MRtK z{{G}0q_MtKlbn5?+1cgv+C1m>dVls((y~s^wU8escJOmV(nUyPBkYk@vQsDjS6Voe z5P^y4Xly(li7NKk&`9zw2JEM{AYILz>451Ll;Zr4__xqCG!l!CDei&Zcu#zwXE;eH zm&c#c+gx*|1172a-!^}oz%}~+kyZy9$-&Q+kne{a zwva8XYO^0~T>QW*6$AehRZ>mvVC7dv`3i%4oYU>IIoxd?j{DDCbH+s{%i`O%9K2+i zdSeosNvT#hi-l$-)_Wq;)@|04E!(ZrDQt?>Z;e}H)}7X5YOb_M%;vS_E9U(HgSjEtdcB}TrIgq zvRJZ2vQ)B6vRtx4GLb-pGySF6VhQu#=@0T@o7?TPTefl?%c+1?nmUWstZE%L% zur)j!n)Nzd0gV{l-gcMUso@k1In+I$XP3IYoo=mN>UKEWwOSku1zg?^6oe!G_qiw! g%iPaEGgVO@uZ&8npmHjsQYujoT%v@n82B;%3r)%U@&Et; literal 0 HcmV?d00001 diff --git a/LIGHTS/LOADLBM.C b/LIGHTS/LOADLBM.C new file mode 100644 index 0000000..56180a0 --- /dev/null +++ b/LIGHTS/LOADLBM.C @@ -0,0 +1,590 @@ +/* +** ILBM file loader by John Romero (C) 1990 PCRcade +** +** Loads and decompresses an ILBM-format file to the +** screen in either CGA, EGA or MCGA -- compressed or +** or unpacked! +** +** Merely pass the filename of the image to LoadLBM +** and sit back! The proper graphics mode is initialized +** and the screen (or brush) is loaded and displayed! +** +*/ + +struct LBMinfo { int width,height,planes; } CurrentLBM; + +#include +#include +#include +#include +#include +#include + +#define SC_index 0x3c4 +#define SC_mapmask 2 + +/* +** FUNCTION PROTOTYPES +*/ + +void GetChunkID(char huge *buffer,char *tempstr); +int NextChunkID(char huge *buffer); +void huge *Decompress(char huge *buffer,char *unpacked,int bpwidth,char planes); +void huge *SetupLBM(char *filename); +void Do_CGA_Screen(char huge *buffer,char compress,char planes,int width,int height); +void Do_EGA_Screen(char huge *buffer,char compress,char planes,int width,int height,int scrwidth); +void Do_MCGA_Screen(char huge *buffer,char compress,int width,int height); +void EGA_MoveBitplane(char huge *from,char far *to,int bpwidth); + +char typestr[5],huge *startbuff; + +// EGA loader NOTE: the "scrwidth" var should be 0=320 mode,1=640 mode + +void LoadLBM(char *filename,int scrwidth,int graphflag) +{ + + char huge *buffer,huge *cmap; + char planes, + tempstr[5], + compress; + int handle, + width, + height; + + if((buffer = SetupLBM(filename))==NULL) exit(1); + + /* + ** Need to get BMHD info, like: + ** - screen width, height + ** - # of bitplanes + ** - compression flag (YES/NO) + */ + + CurrentLBM.width=width = (*(buffer+9)&0xFF)+(*(buffer+8)*256); + CurrentLBM.height=height = (*(buffer+11)&0xFF)+(*(buffer+10)*256); + CurrentLBM.planes=planes = *(buffer+16); + compress = *(buffer+18); + + /* + if ((strcmp(typestr,"PBM ")!=0)&&(planes==8)) + { + printf("This VGA screen is not in PBM format, but ILBM, which I\ncannot decode at this time.\n"); + exit(1); + }*/ + + /* + ** Find the CMAP chunk so I can remap the registers... + */ + + movedata(FP_SEG(buffer),FP_OFF(buffer),_DS,(unsigned)tempstr,4); + tempstr[4]=0; + while (strcmp(tempstr,"CMAP")!=0) + { + buffer += NextChunkID(buffer); + movedata(FP_SEG(buffer),FP_OFF(buffer),_DS,(unsigned)tempstr,4); + } + + cmap = buffer+8; + + /* + ** Now, find the BODY chunk... + */ + + movedata(FP_SEG(buffer),FP_OFF(buffer),_DS,(unsigned)tempstr,4); + while (strcmp(tempstr,"BODY")!=0) + { + buffer += NextChunkID(buffer); + movedata(FP_SEG(buffer),FP_OFF(buffer),_DS,(unsigned)tempstr,4); + } + + /* + ** Found the BODY chunk! Here we go! + */ + + buffer += 8; /* point to actual data */ + + /* Turn graphics mode on, if desired */ + + if (graphflag==1) + { + switch (planes) + { + case 2: { _AX=4; geninterrupt(0x10); break; } + case 4: { + _AX=0x0d; + geninterrupt(0x10); + scrwidth=0; + break; + } + case 8: { _AX=0x13; geninterrupt(0x10); break; } + } + } + + switch (planes) + { + case 2: Do_CGA_Screen(buffer,compress,planes,width,height); + break; + case 4: Do_EGA_Screen(buffer,compress,planes,width,height,scrwidth); + break; + case 8: { + unsigned int i; + + for (i=0;i<0x300;i++) (unsigned char)*cmap++ >>= 2; + + cmap -= 0x300; // reset to beginning again + + _BX = 0; + _CX = 0x100; + _ES = FP_SEG(cmap); + _DX = FP_OFF(cmap); + _AX = 0x1012; + geninterrupt(0x10); + + Do_MCGA_Screen(buffer,compress,width,height); + + break; + } + + default: { + printf("This screen has %d bitplanes. I don't understand that sort of stuff.\n",planes); + exit(); + } + } + farfree((void far *)startbuff); +} + + + +//============================================== +//= +//= Load a *LARGE* file into a FAR buffer! +//= by John Romero (C) 1990 PCRcade +//= +//============================================== + +unsigned long LoadFile(char *filename,char huge *buffer) +{ + unsigned int handle,flength1,flength2,buf1,buf2,foff1,foff2; + + buf1=FP_OFF(buffer); + buf2=FP_SEG(buffer); + +asm mov WORD PTR foff1,0 // file offset = 0 (start) +asm mov WORD PTR foff2,0 + +asm mov dx,filename +asm mov ax,3d00h // OPEN w/handle (read only) +asm int 21h +asm jc out + +asm mov handle,ax +asm mov bx,ax +asm xor cx,cx +asm xor dx,dx +asm mov ax,4202h +asm int 21h // SEEK (find file length) +asm jc out + +asm mov flength1,ax +asm mov flength2,dx + +asm mov cx,flength2 +asm inc cx // <- at least once! + +L_1: + +asm push cx + +asm mov cx,foff2 +asm mov dx,foff1 +asm mov ax,4200h +asm int 21h // SEEK from start + +asm push ds +asm mov bx,handle +asm mov cx,-1 +asm mov dx,buf1 +asm mov ax,buf2 +asm mov ds,ax +asm mov ah,3fh // READ w/handle +asm int 21h +asm pop ds + +asm pop cx +asm jc out +asm cmp ax,-1 +asm jne out + +asm push cx // need to read the last byte +asm push ds // into the segment! IMPORTANT! +asm mov bx,handle +asm mov cx,1 +asm mov dx,buf1 +asm add dx,-1 +asm mov ax,buf2 +asm mov ds,ax +asm mov ah,3fh +asm int 21h +asm pop ds +asm pop cx + +asm add buf2,1000h +asm inc WORD PTR foff2 +asm loop L_1 + +out: + +asm mov bx,handle // CLOSE w/handle +asm mov ah,3eh +asm int 21h + +return (flength2*0x10000+flength1); + +} + + + +void huge *SetupLBM(char *filename) +{ + int handle; + char huge *buffer; + char tempstr[64]; + + + buffer = startbuff = (char huge *)farmalloc(0xf000); + if (buffer==NULL) return(NULL); + + strupr(filename); + if (strstr(filename,".")==NULL) + strcat(filename,".LBM"); + + + LoadFile(filename,buffer); + + GetChunkID(buffer,tempstr); + if (strcmp(tempstr,"FORM")!=0) + { + printf("This isn't in ILBM FORM format file!\n"); + return(NULL); + } + + /* + ** point past the FORM chunk + ** and see if this really IS + ** and ILBM file + */ + + buffer += 8; + GetChunkID(buffer,tempstr); + strcpy(typestr,tempstr); // save file type + if ((strcmp(tempstr,"ILBM")!=0) && (strcmp(tempstr,"PBM ")!=0) ) + { + printf("This isn't an ILBM format file!\n"); + return(NULL); + } + + /* + ** point to BMHD chunk, the first NORMAL chunk! + */ + + buffer += 4; + GetChunkID(buffer,tempstr); + if (strcmp(tempstr,"BMHD")!=0) + { + printf("What kind of ILBM is this? There's no BMHD chunk!\n"); + return(NULL); + } + return(buffer); +} + + + +void GetChunkID(char huge *buffer,char *tempstr) +{ + movedata(FP_SEG(buffer),FP_OFF(buffer),_DS,(unsigned)tempstr,4); + tempstr[4]=0; +} + + + +int NextChunkID(char huge *buffer) +{ + unsigned int newoffset; + + newoffset = (*(buffer+7)&0xFF) + (*(buffer+6)*256); + if ((newoffset & 1)==1) newoffset += 1; + return(newoffset+8); /* +8 because chunk + offset = 8 bytes! */ +} + + + +/* +** CGA loader +*/ + +void Do_CGA_Screen(char huge *buffer,char compress,char planes,int width,int height) +{ + unsigned int bpwidth, + loopY, + loopX, + loopB, + offset, + data; + char far *screen, + b1, + b2, + unpacked[80]; + + + bpwidth = width/8; + + for (loopY=0;loopY>= 2; + b1 >>= 1; + b2 >>= 1; + } + */ + + *screen = data >> 8; + *(screen+1) = data; + screen += 2; + } + + if (compress==0) + buffer += bpwidth*planes; + } +} + + + +/* +** EGA loader (NOTE: the "scrwidth" var should be 0=320 mode,1=640 mode +*/ + +void Do_EGA_Screen(char huge *buffer,char compress,char planes,int width,int height,int scrwidth) +{ + unsigned int bpwidth, + loopY, + loopX, + loopB, + offset, + data; + char far *screen = (char far *)0xa0000000, + b1, + b2, + unpacked[160]; + + + bpwidth = width/8; + + for (loopY=0;loopY>tloop2); + } + movedata(_DS,(unsigned)unpacked1,FP_SEG(screen),FP_OFF(screen),width); + } + else movedata(_DS,(unsigned)unpacked,FP_SEG(screen),FP_OFF(screen),width); + } + else + { + movedata(FP_SEG(buffer),FP_OFF(buffer),FP_SEG(screen),FP_OFF(screen),width); + buffer += width; + } + screen = MK_FP(0xa000,FP_OFF(screen)+320); + } +} + + + + +/* +** ILBM's RLE decompressor. Merely pass the address of the compressed +** ILBM bitplane data, where to unpack it, the # of bytes each bitplane +** takes up, and the # of bit planes to unpack. +*/ + +void huge *Decompress(char huge *buffer,char *unpacked,int bpwidth,char planes) +{ + int count, + offset, + loopP; + unsigned char byte, + rept; + + for (loopP=0;loopP 0x80) + { + rept = (rept^0xff)+2; + byte = *(buffer+1); + buffer+=2; + + memset(unpacked,byte,rept); + } + else if (rept < 0x80) + { + rept++; + movedata(FP_SEG(buffer),FP_OFF(buffer)+1,_DS,(unsigned) unpacked,rept); + buffer += rept+1; + } + count += rept; + unpacked += rept; + + } while (countLLC7Uo11u;YnnLSlANhYl8y?=Cf^{KB; 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 literal 0 HcmV?d00001 diff --git a/MYMAP/ACTORS2.LBM b/MYMAP/ACTORS2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..0d69cd89dd90dc6660465e0226ba26560b35f318 GIT binary patch literal 26062 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 T|0lg|TxT49e$v~M>h0eFGBedl literal 0 HcmV?d00001 diff --git a/MYMAP/B.BAT b/MYMAP/B.BAT new file mode 100644 index 0000000..6b9387a --- /dev/null +++ b/MYMAP/B.BAT @@ -0,0 +1 @@ +bc mazer.prj diff --git a/MYMAP/CRISP6X9.FNT b/MYMAP/CRISP6X9.FNT new file mode 100644 index 0000000000000000000000000000000000000000..0b8a209b8cac3df93c1a36a636ab3ac75171b130 GIT binary patch literal 964 zcmZ9LL2KkN4289>*Y$=T!VpR+CK$5}i|HwcQcB2A+uy$5lieOxGZV{Ck=~Q+srJjh zEe4qdv#>17fTL{}A2zAmN~3rq&$sv^8dFs4!3Xa5Y+N4={x+Dwq@ z>lo8;1^aKAuq%W;1gRe$ZITrfN literal 0 HcmV?d00001 diff --git a/MYMAP/DOORS1.LBM b/MYMAP/DOORS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..c0ab9f38b41b5966da6dab584555d22c8d42e437 GIT binary patch literal 36416 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 literal 0 HcmV?d00001 diff --git a/MYMAP/DP_PREFS b/MYMAP/DP_PREFS new file mode 100644 index 0000000000000000000000000000000000000000..212a077a11e10dee1d6e36799c23827bccec09a7 GIT binary patch literal 324 zcmWe&U|{(FA4o7Tu!2cOMlb~>8aRLqZe$TG?A;7kgTAm8FgU3k3IWj|9P*#xgY#>K z53gS_e6V3)XLkkSa3IbHVk4a;!x+k> z_k!WWrS}XU7#=Wu&}TTpp7)R8!+gdCOu<02mwaIOpagVrw=2VeDFR}Q^MLpc<4JZ! z?yEsJSXW!D0P;5h@g5+)1;os(3z$GOGIju}?=>jrd36CO0dyxwu1~s&;}P4T5PWzo LQ2rJOL(KyKxvgHs literal 0 HcmV?d00001 diff --git a/MYMAP/DP_SPAL.$$$ b/MYMAP/DP_SPAL.$$$ new file mode 100644 index 0000000000000000000000000000000000000000..06d7405020018ddf3cacee90fd4af10487da3d20 GIT binary patch literal 1024 ScmZQz7zLvtFd70QH3R?z00031 literal 0 HcmV?d00001 diff --git a/MYMAP/FIXED6X8.FNT b/MYMAP/FIXED6X8.FNT new file mode 100644 index 0000000000000000000000000000000000000000..8d04a2774aceb4997686c90ae4509405399d8f50 GIT binary patch literal 788 zcmYjP(Q@1%3|xrp1M0)*Tz8U5YC4lIXdn7|ACnL1uV)uur;9QQjY z_xrI(pJEaiN_jX+=L6U=)vv1o?_088KQZSi?)e*LivyS}#%Kxr690i>-IT+q88+ku z_lHFl@uLwPfa)*%<`p*U0F`#D!MpU*=npyP&eT1uO?LILI(2VMzyg(qY%YiPS@-`h zs*27BusmP>t1|HnXTR0=@7Hj^ihFkllk25Fgur~4?C$x39>OJr{?I}DFRII3hB>N^ z&+|9R@aO4i$_{3sbolGO3+LO;IO4eor(y&QTfE9v9P?N8LlPybGw@nV8TP)vGM^V6 zeQ4qO;FbJwEHRP~b>GM{IZTN>7ymZ~5;DiXL#pjyy&!tozb2#p8@;4<*lVa*Zt=pz z!zSbP#5*TS?`=UF4BQrym&u*H6kW70B7pk3G2t1{{CF^+dd$a@UN`Xp93)_6yviw_ vQ3HSWFI)Xni-56zdlR5@ydBSG(d?Pmfm7x;C(d2hA7$bKq_^K6AAj%(eRdtd literal 0 HcmV?d00001 diff --git a/MYMAP/FLATS1.LBM b/MYMAP/FLATS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..db2b6135afc3f175875cc955bef47b5dc05b15ac GIT binary patch literal 51366 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 M<@VWSHiN1EAHf1qSO5S3 literal 0 HcmV?d00001 diff --git a/MYMAP/FLATS2.LBM b/MYMAP/FLATS2.LBM new file mode 100644 index 0000000000000000000000000000000000000000..bf818e9cc6ca5320577c1a42478e1abc94855636 GIT binary patch literal 35612 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 P!Q1(51>RQRjaA@p<`wiU literal 0 HcmV?d00001 diff --git a/MYMAP/INTRFACE.LBM b/MYMAP/INTRFACE.LBM new file mode 100644 index 0000000000000000000000000000000000000000..75bf0ec44ac6b0ab031304ab6557f1aeb4e36f55 GIT binary patch literal 21866 zcmd^{OKe={b;rLM4j>g7DAxKVBq`u<}SR@LW>~a!V537@WN>Y!wVM>0vYf^3opDdS^+f*!&Md6BIn-z z{@8W zZ`{6pJBp$^ckZmMt=+qK@BaP!4<0=D^XY+?W|-vdm;(nCvr?Ju=w?lifGjJ(K<1WN(@5O_SX+ z*$wmAviWe)ynWV0^IUfE$)j_RKUsM6$^89?C)PeV9=$tv>+PA9yVHwF`D|tE)Xm|! z>%-G4X85Wxiww|fLXk1IjJa;ivb*N2F{j*wra6$^HJG2z7A|BLu4YR&vgO;^>u+T@ z*0NjovNu1--g=n*{89GyXW6@-XCHi#J^U*BWIcP&WN(`%cZVM*!=F}$KfXEq;f=BT z*T(KGkF8xP-(4&x7s{2hi^VnWM*#&YhS$K7ahg=@X~Uo|?Zfzi{#N*`o?xGaq|{}d$aQ9?I^jIy|a*={wjNGJzK~g+|82H>+fdkH;~-yhnFuS4CbFqQF_q) zSNI2G3euXQDVqbl+kBLGu802hdybNI{Oj@h+)saUfon#N>cY}sx%oP8_l;AXumARX z=j-@x=WB$y(O=&FxBvBD{l!oIhUNdIxorOUn?Vv88wNJ;LmNbXU`>)(8^uu+hn9D0 ziAn7r@id8j8^(c+OcDig6vlDI#&%2dMGLa+?kDh>LR4i`&#!u39D3Gcd~4&l%5d>V zrf9R+(117S`tI_VpXTCuY$7;=rjsKB( zIk5plMnS+jL!ZT4Kk?&Qz`i6wYyvKcLZ%!A)>i$*dcGHV0do(S7gP4X8|-=xQ4rRG zG#(0Sk)@~98;i6Vam=iu(Aba6fDI#CKVr<+?lE9kzNTBUwKy>8r9rcDer469bH=1A z1)i*ArVv!WyZil!IB1hD?aMo)*Jg(UCP`lv)5+#19V?=GBFUwl}d_1sT;GJnnH7mBl#5BmeiJFV}8s9gRADX z*P0hham;@8)!iSE1pjLW(_=#mv)YK4H^n#ctEfq+UmfDhxh3|QF?vMLkY+#l(`5JZ zfoRRn8vf4)>FltcM7*xg7Lj=qp#wn{KbvKQS;OCq?U!&2NR}Bm=8-Ts@_TysYnQao znvGeLq_dpGtO=gY7LjwQ!hj@~K`oDvw;R$rBWXo@Lg}z?eH$RlLF@;qEh4zz^LM=i z67w*O(s;nPiT`xfNw-!$AbCx_A#f~;BMGX)uKzYgg!4P$u18Mop&+So z;!FUv^uriz05fgs7r+Ci@UkQpbcl@?C4hkdB#z=F5vH_BtWbuzeP{QpN1t+x@~b9z z$U#QAdO0a9B8C6S0jH)2Dt#~B^$HQulbr0At3v?-)`qGlQ@xoOq^&7trTFBTGrVh} z^o+#p1&*=-u=MP2V(L%>Q+YSeVN~KZJP-o9ep5rK?@NFBt>7Y7Q#)z8EOcQF3n}-1x`;` zh@R00*yc<29sXr;!B(^miE1u3gSqu)$+qO|{R?bn1M$>H7E9iKu=qnfiXZ*szQEQH zk|c^Gh>68$AByBg$d2MIM3~3WM@hnz4G;YaSa6WH00mqLsnqXR^K$pvCo4%(4L}VW zf@L;NlRvCQ+Pg?UiLE)`EU3gBvf#z9RQxJ0sy^mADf_>_%?IscZT-r@j>77n78i*ibHtIdbUSnOnnk-hbk2W2Ek&OBHp_8Zp06R z5U7i5b&FFL>amY-1%*WpYpLA_5EAADzGv&6snoqA5o0nCn8?8Vw_c5xUJ!U;>Wzl& zjSsuVaza={T&*xN*Z@XY9KlfI*L@S>{6-v9T#vHg?;ZZTSO$CM%O{ItFXD$GLf`W> zlokzAGrsR@E^H3J*d&jYU_QE<6CcXQjR0}52ff1W#j$nc4>+|72HE^tz)Z4;(~qWn zd@wczYry49H$gJ&tVh^q5f^^3A}^GoU}x9_!XE-6uVACPcMuWjYMrn+x*jET1pXMB z4Tyu_XXc;HDENujpukOWV>HZYOxDMB97lEquQg0f96z&1fK=bd-YfFudVcM+>1bP1 zJX%IZZ7^iAattS9W`AKaJI=x58e-84-YbMFb+ZVoodp$hdY0?G2FD)N(1) zDk5XLbWoe($7$%?Ek6@935~6DhWrw+yB8H#+x?fdE={wFBE&eyZX_p_3A@NCvVtO8 zu2~h3Ll9ut*XKaO+A2{@G-d@v;JzFbNCtQ5KD1Y-82Z%|vE>A#afwGFgkr=n^Nmw; z6Rq3Hm>pmj7!bRnO&;Z7aG%jIYty(Mj!RLPqlC`)@q1tt!WU{;^kX+}iMb>|%fSR) zmWZJqsUg8Aen5fk8I~D{S@nxZ+f%1F8c^jWY(dyFI}T!eu@ z>^NgCf)=c@=n|Vy_0np|nawmA@bF60@SCy4j9_M+eTCoi)R=cV8W(B2UL8PgfGA7_ z4N*piXD=(FmwqZHW2s0Qf0+WNO<_b*P>?Yi1z4@BSH+S8a~MpNE=Vw?prL1+5rI(4 zs&#LqyDeBGy{r~1wu)E_f8(f#=s4i>O*IWiA{k8N-ER2b$KLCe z9l&uAQ2^jEBVo=F^K@y@s5kR;rTOH1^GWNSl>@pas?}n-fJB)z=E!oNbsteV9*|Bb zwL>-6>(a(0!=usB#!7a6V`U^C2iA9E&YVx@`iz3EX!irWL+o8p#20t^6zrE9RFi2z z?gLHv#YP#@Jb>8Lj3fcZfT-E$Osg7Yn3K~0wR$uJbmSW}oKJjZI%KG`V)qRgAZvSxSBW*L}-dks)ush_Vm`^}G}xtQj=Pn!n~ssmL%M~cXm5Zk?C%0V#2Ie;-C zk5so)_&TQ3G0{!2%;zT2;E>Qf0d>wQ{agos^90!QQ;9?MMtUSgc7rVyc zkdr}SM$XU887C(lTh&@s&m&Yp{0Vm^L;<3|l#x)HlFLN{(&4ax|E{-7fFGBzb8>EF+Tz%`l%KPD05I6 z7bqc;SRt$vCV&h53NoZfnKngETvtviG?2#DgfD?J7J;KK&{hY>O;z3?7qd?@CJf=A zdRdAQmLoYNGKm?0-x>mZlo#M+j9n52Y;P&X*&im3DV3kCBTJ*g|AC@QIIwlv5e#S! zqMM4)I_oV@1}1d+a#5kqYY^Q8|Eb%(mlPWy(EP#OG)}!&%!+YiCY{)5fBE%m!;IcF&X9vGV2S@I zynFd6tOE?Jq!qwMDc@Qeor+l{iaVRk#lR7smmE@V{kGqIw8A9QkCc7W3m_rU64 zYa+L0jg^eGR^p_22S;vH zo9PQd8v#tPGol{r)kUh4kats)6TSmlyce@wCr)_b#yh6PJ%y_vYB#f8hg8EI+MZM2 zJuUw29rD^LWZCGV)L+?Q+vjlN)BRZO18uCfqr|}-F?$`1df(R1=ftVDw4WKMbv@}t zWS8X(IcNnCKy34GC#joB@;?E8Cd_kbZR(ODbMo=*;2A@GQvQUp9-d5|F(O*TUG^fn zhsCKube~LTsqUG@167?1bx-OF&zkpP+GaBfQONJ{`G!6qB6AJ6IGru1nI0RnBWEz- z9b9>F&yf&GCagXX6peuWj%ja9YJl>Iw#l+wO}0Keq4!n1lmDu_8Ml^FB5Z`ZPHECPB(-9VAxmzwx+%F~-H23BxJKGdJ@WAiXH0L}e-iVCGlEgTA!$vv zb3A;*ZI%cV>OS3|T&R7Cl7L?6gDKqDj`TsJ@07!oEY$O}&KFtd@Ff8GLK|X$p`lG( zGSd))%xx+ob|fL1uEG@Fj=;8+Mra6XOLW;XC$YE_eG>~K&BVgVe?LR52OmO_5wHL-!${T% z{+hi0WE(S2qpl;!-x)=ZkwZc%G5SqTeyWR;Hzzk5^3V{0hC&f)Im zoF++|QWOx#z;SKT_a&ygS1;qhWp<>4z}J{04TJ}qn#gQ&`IUN(w$NhMJkvz0Of|9_zCu zG-)eUKh;ImYp6lGck9bc(J7%8QBi;6ye%x$=Z)1-e#N=dd4DFJ^pD7NMsF;H9y*UX za41zbqix+cj#&m}o$;t*bdP7+wGQ4Lp3iw-Q(eq?Lmpd#S!1&v&w`p8y}0km4(_{w z1Pw%hW6cqvo$~I@S)*fq(D>DlyC$*J#$A&bk=rQKN%tz5ULcy_=pm3`jnJJ$kg@ zb=fIpJQ#{dO?k<%mH_Z|TTuM5NvKn-0LA;QPF{Y;tvBiTnJzkBOo2cOs$fBEk#?DF z5M#&xPVya7$LAevep~ao=QZ!i-5V91#CVFzRi}^@svAx1{@70_u~&{w@rj7}U%_*2 zz7i`|!pYw&(2x=z~GyQl*YQ(+cNqG zkz8b1(J#}#5YDtvH|?GUV8&fS;9-P0w;czZ6Nog%g%H)=?jvRfp=Qg0@JzzqYB ziITBYtqgw=EIJ%CecAh0JJ@?q>2^;EL4N3h+@}k;sqR4=Ym~f1p2&InER&V#AnV)M ztf(yit3kJ`NJlw3<>x33qCiJ(x>c6Z9kVy+ICa;hPPr$?{wH8Wi(@BsN##xADsEH} zq%JwEy!c0FrUamDl4hybJ&5(PEKD1*PO4QYXmW?zRd$oJ0DMXNs?>qVaRVXdIx+)fVRa2~w{7b~y<0c)3WvJ#3i5DNDdU4j-0XljqfzJ%Hx__Vex8mW zj43rxQ3urmjE|}bya2I6;Bi}mN7I5|tyA~Gyk+RALUKk(M}S^5iEO1RzOU0#ssi5u zwjZUE$yTKjRe97ndf=7rX%JL^JK$La5&;(sMe~!u2F(R?YVM)sl=ZphoNu*KC7lVg z1`2G+cN}1;?fDM*2&r=NN(~~nj6+FU$#u=TRiwaDb(5Ixjsm;##sDB7s2UGD0h)ng zdE+>$hgm!>JI4{V=SUn`m&|u0IY4+>73?(31TDZu6o-XtG|*b`RSP{VJA2O(DQscy zX#l8E&Iwl1oT0fiZ!WzP1i?=C%7~~M2K;GdL>%%0ZUnmAAdsp+GReF#(4K0NSWwOJ zPO$AviGy)XIe$u6E%h10HOf_u_J^hg6~{~hG4clcB}ypHZzW2Q0Pd_4P7s*AgbK@h zg1~X4cUuOe9v#DN1dch;T{qrLpGVMZ`f`vq_hi99_=Q0f1mU zV}OO+!m))6{|(;7unm#^|9&69&KUZwrSz0Dp{PCT;i;wHT8KZQ#DZ7|O#%r+J0L$2c7ocwBb0LGU#`15+DFdM7c zuTC75Rh_sw$xVxJm1oEdzfaXNTnB-ABS>$f!}09*9HdNLX8m}x#QR`_Xu1t}1dXj} zm)zK58kspx(`JQu?=o)@OY5$6=vuQBUZ;+faVACn0h-af^qY&nc8wF)7!rinWu}5# zAv+{f+`AOKt0g=oE%(uq2K`IJha6#@&$%#rCUv87PHxKZGutxHgSZaNu(?}-Ys~hs zdmAD|deg|`a*h0ryjmy2>4dLoZ>rQskx+i~q zrsxFAHT$(AWd-7xZwBbD6E8VB_lYTJjs;^;6|ohcAX(5h8V&iEtHqcAGW zKaF=>63)FhjgoMBAj{xSE7VefL1$6;CIQ@C*gfhz5Ef1$f;NEws!wTmlL+3fINQ(% z_ucj>&)%-YntMPIB*|L=-mpI*gSG0NXsm+KRDAz0>rd`h( z;3FM8r~;%`4X~RAMKjMW<2}+*#;f}YP+I&>Vhj41F(J2KDVzy4eZ`qQOMH*?=Q-U> zAjY;~I*Z|6mFx)a9oW%_CzWs>0=_a!X1 zVH~N672^mZIaQ+s!XDbnIdX1o#lRDNc*2w_m-knv42Z#x4z)=YZc7bLIc#pD2I-_o znsEy`*tf9vKu!jt5{yjwBBRsCD2%4#1HoHVuP^_1q=Ww>pb-0l+$*xu&Z_W9B{vAM z7{I=a-{CgK4^^cXN2yTY`2Om+q11^TkvS6Sr&M9DLfQ$Gq($-(QQBdGHjrGdoP;fB z`CORYht->K;M*#frLqvd9OnV7$Tx*`h}J_R(_m7Q>`@fkpT>i)bW`bI@;K*C=B~JB z1NRb%x6ZoRHr}sLV-6lM`X=)S^RqLqZ%i&-&h_bF4#VO0WBYbQ*EQ4+k3=D>0`V<` zU6XM;wjE{0Tx4+vnw;Af(rmNtmHXc$oKBpey+$`_FFF}86dyC-uB4L=Ua+5stZ zxHqo?1^@o)OHdkpc$rOV7aTdKcPA86^_uypsBJcxKqNb)(8 z2P;*IuSGRHk3Tx#_#=V~u^+4&QJ@pzt@gk*iv)*=Vs`q? z1w))I+X!WJRN8@{^eEA^c7TK8=F6?6l6xt${9SCjP^_nigG-6(e1d3ERBYD0f_ JTenxW{x1OmMx6iv literal 0 HcmV?d00001 diff --git a/MYMAP/MAZER.BKP b/MYMAP/MAZER.BKP new file mode 100644 index 0000000..714ae31 --- /dev/null +++ b/MYMAP/MAZER.BKP @@ -0,0 +1,2001 @@ +#include +#include +#include +#include +#include +#include +#include +#include "xlib_all.h" + +#define PROGRAM_GRAPHIX "GRAPHIX.LBM" +#define INTERFACE_SCREEN "INTRFACE.LBM" +#define DATA_FILE "TODD3D.TOD" + +#define UP_KEY 72 + 256 +#define DOWN_KEY 80 + 256 +#define LEFT_KEY 75 + 256 +#define RIGHT_KEY 77 + 256 + +#define GRID_MARK_COLOR 80 + +#define MAP_VIEW_SIZE 16 +#define MAP_SIZE 64 +#define MAX_TILES 40 +#define MAP_LAYERS 5 +#define TILE_SIZE 12 + +#define WEST_LAYER 0 +#define NORTH_LAYER 1 +#define FLOOR_LAYER 2 +#define CEILING_LAYER 3 +#define SPRITE_LAYER 4 + +#define PIC_BASEX 227 +#define PIC_BASEY 133 +# + +#define AA_BASEX 4 +#define AA_BASEY 4 +#define AA_MAXX 195 +#define AA_MAXY 195 + +#define MC_BASEX 254 +#define MC_BASEY 100 +#define MC_MAXX 303 +#define MC_MAXY 108 +#define MC_BGCOLOR 101 +#define MC_FGCOLOR 0 + +#define DM_BASEX 214 +#define DM_BASEY 10 +#define DM_MAXX 304 +#define DM_MAXY 18 +#define DM_BGCOLOR 101 +#define DM_FGCOLOR 0 + +#define IN_BASEX 214 +#define IN_BASEY 120 +#define IN_MAXX 304 +#define IN_MAXY 128 +#define IN_BGCOLOR 101 +#define IN_FGCOLOR 0 + +#define LEFT_MOUSE_CLICK 1 +#define RIGHT_MOUSE_CLICK 2 + +#define DM_NONE 0 +#define DM_WESTWALL 1 +#define DM_NORTHWALL 2 +#define DM_FLOOR 3 +#define DM_CEILING 4 +#define DM_SPRITE 5 + +#define TT_WESTWALL 0 +#define TT_NORTHWALL 1 +#define TT_FLAT 2 +#define TT_ACTOR 3 + +#define CC_NONE 0 +#define CC_WESTWALL 1 +#define CC_NORTHWALL 2 +#define CC_FLAT 3 +#define CC_FILL 4 +#define CC_DOOR 5 +#define CC_ACTOR 6 +#define CC_PLAYER 7 + +#define DLG_OKAY 0 +#define DLG_CANCEL 1 +#define DLG_YES 2 +#define DLG_NO 3 + +#define ID_OK 1 +#define ID_CANCEL 2 +#define ID_YES 4 +#define ID_NO 8 +#define ID_NOBUTTONS 16 +#define ID_NOTITLE 32 +#define ID_DEFAULT 1 +#define ID_OKAYCANCEL 3 +#define ID_YESNO 12 + +#define FILL_BUTTON 0 +#define NEW_BUTTON 1 +#define LOAD_BUTTON 2 +#define SAVE_BUTTON 3 +#define EXIT_BUTTON 4 +#define EXTRA_BUTTON 5 +#define PIC_LEFT_BUTTON 6 +#define PIC_RIGHT_BUTTON 7 + +#define WALL_BUTTON 8 +#define FLOOR_BUTTON 9 +#define CEILING_BUTTON 10 +#define TT4_BUTTON 11 +#define TT5_BUTTON 12 +#define PLAYER_BUTTON 13 +#define TT7_BUTTON 14 +#define SPRITE_BUTTON 15 +#define TT9_BUTTON 16 +#define TT10_BUTTON 17 + +#define OKAY_BUTTON 18 +#define CANCEL_BUTTON 19 +#define YES_BUTTON 20 +#define NO_BUTTON 21 + +#define END_OF_BUTTONS 22 +#define END_OF_MAIN_BUT 17 +#define END_OF_DLG_BUT 22 + +#define START_MAIN_BUT 0 +#define START_DLG_BUT 18 + + +extern void showLBM(int,int,char*,long); + +void load_user_fonts(void); +void exitfunc(void); + +void setUpInterface(void); +void drawLoop(void); +void handleUserActions(void); +char MouseOnButton(char); +void handleButton(char); +void pushButton(char); +void handleKeystroke(int); + +char MessageBox(int, int, long, char *, char *, int); +void deactivateMainButtons(void); +void activateMainButtons(void); +void deactivateDlgButtons(void); +void activateDlgButtons(void); + +void showDrawMode(void); +void showItemName(void); +void showCurrentPic(void); +void showMouseCoords(int, int); + +void handleMouseCursor(void); +void DrawGridTile(char xpos, char ypos); +void RedrawMap(); +void RedrawRow(char whichRow); +void RedrawCol(char whichCol); + +int SaveMapToTOD(void); +int LoadMapFromTOD(void); +int SaveMapToFile(char *); +int LoadMapFromFile(char *); + +void ScaleTiles(); + +void FillAnArea(char, char, char, char); + +typedef struct picStruct +{ + char *pbm; +} picType; + + +typedef struct scriptStruct +{ + char picFile[30]; + char picName[20]; + char Xoffset; + char Yoffset; +} scriptType; + +scriptStruct scripts[37] = +{ + "WALLS1.LBM", + "W1_1", + 2, + 2, + "WALLS1.LBM", + "W1_2", + 10, + 2, + "WALLS1.LBM", + "W1_3", + 18, + 2, + "WALLS1.LBM", + "W1_4", + 26, + 2, + "WALLS1.LBM", + "W1_5", + 2, + 10, + "WALLS1.LBM", + "W1_6", + 10, + 10, + "WALLS1.LBM", + "W1_7", + 18, + 10, + "WALLS1.LBM", + "W1_8", + 26, + 10, + "WALLS2.LBM", + "W2_1", + 2, + 2, + "WALLS2.LBM", + "W2_2", + 10, + 2, + "WALLS2.LBM", + "W2_3", + 18, + 2, + "WALLS2.LBM", + "W2_4", + 26, + 2, + "WALLS2.LBM", + "W2_5", + 2, + 10, + "WALLS2.LBM", + "W2_6", + 10, + 10, + "WALLS2.LBM", + "W2_7", + 18, + 10, + "WALLS2.LBM", + "W2_8", + 26, + 10, + "WALLS3.LBM", + "W3_1", + 2, + 2, + "WALLS3.LBM", + "W3_2", + 11, + 2, + "WALLS3.LBM", + "W3_3", + 20, + 2, + "WALLS3.LBM", + "W3_4", + 29, + 2, + "WALLS3.LBM", + "W3_5", + 2, + 11, + "WALLS3.LBM", + "W3_6", + 11, + 11, + "WALLS3.LBM", + "W3_7", + 20, + 11, + "WALLS3.LBM", + "W3_8", + 29, + 11, + "FLATS1.LBM", + "F1_1", + 2, + 2, + "FLATS1.LBM", + "F1_2", + 11, + 2, + "FLATS1.LBM", + "F1_3", + 20, + 2, + "FLATS1.LBM", + "F1_4", + 29, + 2, + "FLATS1.LBM", + "F1_5", + 2, + 11, + "FLATS1.LBM", + "F1_6", + 11, + 11, + "FLATS1.LBM", + "F1_7", + 20, + 11, + "FLATS1.LBM", + "F1_8", + 29, + 11, + "ACTORS1.LBM", + "A1_1", + 2, + 2, + "ACTORS1.LBM", + "A1_2", + 11, + 2, + "ACTORS1.LBM", + "P1_1", + 20, + 2, + "ACTORS1.LBM", + "W1_1", + 29, + 2, + "ACTORS1.LBM", + "A1_3", + 11, + 11 +}; + +char far *FillCursor[] = +{ "THISISATEST!!!"}; + +char far *userfnt1; +char *FillPic = NULL; + +char IN_ACTIVE_AREA = 0; +char DONE_DRAWING = 0; +char FILL_ACTIVE = 0; +char UPDATE_PIC_LBM = 1; +char DRAW_FROM_PIC = 1; +char GRAPHIC_CURSOR = 0; +char CurrentDrawMode = DM_WESTWALL; +char CurrentCursor = CC_WESTWALL; +char OldCursor = CurrentCursor; +char CurrentPic = 0; +char MinPic = 0; +char StartWallPic = 0; +char MaxWallPic = 23; +char MaxPic = MaxWallPic; +char StartFlatPic = 24; +char MaxFlatPic = 31; +char MaxScriptPic = 36; +char StartActorPic = 32; +char MaxActorPic = 36; + +int OldMouseX; +int OldMouseY; +int NewMouseX; +int NewMouseY; +char GRIDX; +char GRIDY; +char FillStartX; +char FillStartY; +char GridBaseX = 0; +char GridBaseY = 0; + +int buttons[] = +{ + 214, 73, 241, 81, 1, + 214, 85, 241, 93, 1, + 246, 73, 273, 81, 1, + 246, 85, 273, 93, 1, + 278, 73, 305, 81, 1, + 278, 85, 305, 93, 1, + 212, 133, 223, 144, 1, + 294, 133, 305, 144, 1, + + 215, 32, 230, 47, 1, + 233, 32, 248, 47, 1, + 251, 32, 266, 47, 1, + 269, 32, 284, 47, 1, + 287, 32, 302, 47, 1, + 215, 50, 230, 65, 1, + 233, 50, 248, 65, 1, + 251, 50, 266, 65, 1, + 269, 50, 284, 65, 1, + 287, 50, 302, 65, 1, + + 0, 0, 27, 8, 0, // DIALOG BUTTONS + 0, 9, 27, 17, 0, // Start out at grab position in graphix file + 0, 18, 27, 26, 0, // Are filled in on the fly leter based on where + 0, 27, 27, 35, 0, // dialog is to be shown + + 0, 0, 0, 0, 0 +}; + +char *DrawModes[] = +{ + "DRAW INACTIVE", + "WEST WALL", + "NORTH WALL", + "FLOOR", + "CEILING", + "SPRITE PLACEMENT", + "", +}; + +char DialogButtons[4][300]; +char DrawCursors[7][146]; +char DrawBuffer[TILE_SIZE*TILE_SIZE+2]; +//char Pics[4][MAX_TILES][TILE_SIZE*TILE_SIZE+2]; +picStruct Pics[4][MAX_TILES]; + +char map[MAP_LAYERS][MAP_SIZE*MAP_SIZE]; + +void main(void) +{ + int i; + int j; + + userfnt1 = (char far *) farmalloc(256*16+4); + + x_text_mode(); + x_set_mode(X_MODE_320x200,340); + x_text_init(); + NonVisual_Offs += ScrnLogicalByteWidth * 14; // Fixes mouse droppings prob. + x_mouse_init(); + MouseColor=103; + atexit(exitfunc); + load_user_fonts(); + x_set_doublebuffer(200); + + for (i=0; i < 4; i++) + for (j=0; j < MAX_TILES; j++) + Pics[i][j].pbm = (char *) malloc (TILE_SIZE*TILE_SIZE+2); + + setUpInterface(); + + drawLoop(); + + for (i=0; i < 4; i++) + for (j=0; j < MAX_TILES; j++) + free(Pics[i][j].pbm); + +} // main + +void drawLoop(void) +{ + x_mouse_window(0, 0, 319, 199); + + x_show_mouse(); + + while (!DONE_DRAWING) + { + handleUserActions(); + handleMouseCursor(); + } // while + + x_hide_mouse(); +} // drawLoop + +void handleUserActions(void) +{ + char BUTTON_FOUND = 0; + char currentButton; + int currentKey; + + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + currentButton = 0; + while ((!BUTTON_FOUND) && (currentButton != END_OF_BUTTONS)) + { + if ((MouseOnButton(currentButton)) && + (buttons[currentButton*5+4])) + { + handleButton(currentButton); + BUTTON_FOUND = 1; + } // if + + currentButton++; + } // while + } // if + else if (bioskey(1)) + { + currentKey = bioskey(0); + if (!(currentKey & 0xFF)) + currentKey = (currentKey >> 8) + 256; + else + currentKey = currentKey & 0xFF; + + handleKeystroke(currentKey); + } // else +} // handleUserActions + +void handleKeystroke(int whichKey) +{ + switch (whichKey) + { + case UP_KEY : + if (GridBaseY > 0) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + + x_shift_rect(AA_BASEX, AA_BASEY, + AA_MAXX-3, AA_MAXY-TILE_SIZE, + AA_BASEX, AA_BASEY+TILE_SIZE, Page0_Offs); + GridBaseY--; + RedrawRow(0); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case DOWN_KEY : + if (GridBaseY + MAP_VIEW_SIZE -1 < MAP_SIZE-1) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + + x_shift_rect(AA_BASEX, AA_BASEY+TILE_SIZE, + AA_MAXX-3, AA_MAXY, + AA_BASEX, AA_BASEY, Page0_Offs); + GridBaseY++; + RedrawRow(MAP_VIEW_SIZE-1); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case LEFT_KEY : + + if (GridBaseX > 0) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + x_shift_rect(AA_BASEX, AA_BASEY, AA_MAXX-TILE_SIZE-3, + AA_MAXY, AA_BASEX+TILE_SIZE, AA_BASEY, Page0_Offs); + GridBaseX--; + RedrawCol(0); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case RIGHT_KEY : + + if (GridBaseX + MAP_VIEW_SIZE - 1 < MAP_SIZE-1) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + x_shift_rect(AA_BASEX+TILE_SIZE, AA_BASEY, AA_MAXX-3, + AA_MAXY, AA_BASEX, AA_BASEY, Page0_Offs); + GridBaseX++; + RedrawCol(MAP_VIEW_SIZE-1); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + +// break; + } // switch +} // handleKeyStroke + +void handleButton(char whichButton) +{ + pushButton(whichButton); + + if (!MouseOnButton(whichButton)) // check if still modal to button + return; + + switch (whichButton) + { + case EXIT_BUTTON : + + if (MessageBox(160, 100, Page0_Offs, "Are you sure you want to exit?", + "Last Chance", ID_YESNO) == ID_YES) + DONE_DRAWING = 1; + + break; + + case SAVE_BUTTON : + if (MessageBox(160, 100, Page0_Offs, + "Do you want to save?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + { + if (MessageBox(160, 100, Page0_Offs, + "Do you want to insert\ninto .TOD file?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + SaveMapToTOD(); + else + SaveMapToFile("TODD.MAP"); + } // if + break; + + case LOAD_BUTTON : + if (MessageBox(160, 100, Page0_Offs, + "Do you want to load?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + { + if (MessageBox(160, 100, Page0_Offs, + "Do you want to extract\nfrom .TOD file?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + LoadMapFromTOD(); + else + LoadMapFromFile("TODD.MAP"); + + RedrawMap(); + } // if + break; + + case EXTRA_BUTTON : + + MessageBox(160, 100, Page0_Offs, + "This button has no\nmeaning as of yet.", "", ID_OK | ID_NOTITLE); + + break; + + case FILL_BUTTON : + + if (CurrentCursor == CC_FILL) + CurrentCursor = OldCursor; + else + { + OldCursor = CurrentCursor; + CurrentCursor = CC_FILL; + } // else + + if (IN_ACTIVE_AREA) + { + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs,DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // if + + break; + + case NEW_BUTTON : + + if (MessageBox(160, 100, Page0_Offs, + "Do you wish to start a\nnew map from scratch?", + "Last Chance", ID_YESNO) == ID_YES) + { + memset(map, 0, MAP_LAYERS*MAP_SIZE*MAP_SIZE); + RedrawMap(); + } // if + + break; + + case WALL_BUTTON : + if ((CurrentDrawMode != DM_WESTWALL) && + (CurrentDrawMode != DM_NORTHWALL)) + { + MinPic = StartWallPic; + CurrentPic = StartWallPic; + MaxPic = MaxWallPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + } // if + + if (CurrentDrawMode == DM_WESTWALL) + { + CurrentDrawMode = DM_NORTHWALL; + CurrentCursor = CC_NORTHWALL; + } // if + else + { + CurrentDrawMode = DM_WESTWALL; + CurrentCursor = CC_WESTWALL; + } // else + showDrawMode(); + + break; + + case FLOOR_BUTTON : + CurrentDrawMode = DM_FLOOR; + CurrentCursor = CC_FLAT; + showDrawMode(); + + MinPic = StartFlatPic; + CurrentPic = StartFlatPic; + MaxPic = MaxFlatPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + + break; + + case CEILING_BUTTON : + CurrentDrawMode = DM_CEILING; + CurrentCursor = CC_FLAT; + showDrawMode(); + + MinPic = StartFlatPic; + CurrentPic = StartFlatPic; + MaxPic = MaxFlatPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + break; + + case SPRITE_BUTTON : + CurrentDrawMode = DM_SPRITE; + CurrentCursor = CC_ACTOR; + showDrawMode(); + + MinPic = StartActorPic; + CurrentPic = StartActorPic; + MaxPic = MaxActorPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + break; + + case TT4_BUTTON : + case TT5_BUTTON : + case TT7_BUTTON : + case TT9_BUTTON : + case TT10_BUTTON : + + break; + + case PIC_LEFT_BUTTON : + if (CurrentPic > MinPic) + { + if (stricmp(scripts[CurrentPic].picFile,scripts[CurrentPic-1].picFile)) + UPDATE_PIC_LBM = 1; + CurrentPic--; + showCurrentPic(); + showItemName(); + } // if + break; + + case PIC_RIGHT_BUTTON : + if (CurrentPic < MaxPic) + { + if (stricmp(scripts[CurrentPic].picFile,scripts[CurrentPic+1].picFile)) + UPDATE_PIC_LBM = 1; + CurrentPic++; + showCurrentPic(); + showItemName(); + } // if + break; + + } // switch +} // handleButton + +void pushButton(char whichButton) +{ + char buttonBuffer[1000]; + char BUTTON_DOWN = 1; + + x_hide_mouse(); + + x_get_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + (buttons[whichButton*5+2] - buttons[whichButton*5] + 1) / 4, + buttons[whichButton*5+3] - buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5] + 1, buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + + x_show_mouse(); + + while (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (BUTTON_DOWN) + { + if (!MouseOnButton(whichButton)) + { + x_hide_mouse(); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + Page0_Offs, buttonBuffer); + x_show_mouse(); + + BUTTON_DOWN = 0; + } // if + } // if + else + { + if (MouseOnButton(whichButton)) + { + x_hide_mouse(); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5] + 1, buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + x_show_mouse(); + + BUTTON_DOWN = 1; + } // if + } // else + }; + + x_hide_mouse(); + + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + Page0_Offs, buttonBuffer); + + x_show_mouse(); +} // pushButton + +char MouseOnButton(char whichButton) +{ + if ((MouseX >= buttons[whichButton*5]) && + (MouseX <= buttons[whichButton*5+2]) && + (MouseY >= buttons[whichButton*5+1]) && + (MouseY <= buttons[whichButton*5+3])) + return 1; + + return 0; +} // MouseOnButton + +void handleOptionButtons(void) +{ +} // handleOptionButtons + +void setUpInterface(void) +{ + memset(map, 0, MAP_LAYERS*MAP_SIZE*MAP_SIZE); + memset(Pics, 0, 4*MAX_TILES); + + x_set_font(2); + + x_page_flip(0, 0); + + x_rect_fill(110, 80, 210, 120, Page1_Offs, 1); + x_printf(115, 95, Page1_Offs, 10, "Initializing MAZER..."); + + showLBM(0, 0, PROGRAM_GRAPHIX, Page0_Offs); + x_get_pbm(buttons[OKAY_BUTTON*5], buttons[OKAY_BUTTON*5+1], + (buttons[OKAY_BUTTON*5+2] - buttons[OKAY_BUTTON*5] + 1) / 4, + buttons[OKAY_BUTTON*5+3] - buttons[OKAY_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_OKAY]); + x_get_pbm(buttons[CANCEL_BUTTON*5], buttons[CANCEL_BUTTON*5+1], + (buttons[CANCEL_BUTTON*5+2] - buttons[CANCEL_BUTTON*5] + 1) / 4, + buttons[CANCEL_BUTTON*5+3] - buttons[CANCEL_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_CANCEL]); + x_get_pbm(buttons[YES_BUTTON*5], buttons[YES_BUTTON*5+1], + (buttons[YES_BUTTON*5+2] - buttons[YES_BUTTON*5] + 1) / 4, + buttons[YES_BUTTON*5+3] - buttons[YES_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_YES]); + x_get_pbm(buttons[NO_BUTTON*5], buttons[NO_BUTTON*5+1], + (buttons[NO_BUTTON*5+2] - buttons[NO_BUTTON*5] + 1) / 4, + buttons[NO_BUTTON*5+3] - buttons[NO_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_NO]); + x_get_pbm(0,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[1]); + x_get_pbm(13,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[2]); + x_get_pbm(26,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[3]); + x_get_pbm(39,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[4]); + x_get_pbm(52,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[5]); + x_get_pbm(65,45, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[6]); + + ScaleTiles(); + + showLBM(0, 0, INTERFACE_SCREEN, Page0_Offs); + + showDrawMode(); + showItemName(); + + x_page_flip(0, 0); + + showCurrentPic(); +} // setUpInterface + +void load_user_fonts(void) +{ + FILE *f; + f=fopen("smalthin.fnt","rb"); + /* read char by char as fread wont read to far pointers in small model */ + { int i; char c; + for (i=0;i<256*8+4;i++){ + fread(&c,1,1,f); + *(userfnt1+i)=c; + } + } + + fclose(f); + + x_register_userfont(userfnt1); +} + +void exitfunc(void){ + x_mouse_remove(); + x_text_mode(); + printf("Ta-da\n"); +} + +char MessageBox(int baseX, int baseY, + long pageOffset, char * textMsg, char * titleMsg, + int buttonFlag) +{ + char Xoffset = 5; + char Yoffset = 5; + char TitleHeight = 10; + char TitleYoffset = 8; + char TextYoffset = 10; + char ButtonHeight = 9; + char ButtonWidth = 28; + int ButtonStart = 0; + int width = 100; + int height = 50; + char showButtons; + char ActiveButton = 0; + char AlterButton = 0; + + char *boxBG = NULL; + + int defaultColors[] = + { + 139, // basic color + 154, // hilite color + 144, // lolite color + 79, // title bar color + 255, // text color + 103 // title text color + }; + + int stringWidth; + int stringHeight; + + char numButtons = 0; + char currentButton = 0; + char BUTTON_FOUND = 0; + char return_value = 0; + + + if ((x_strlen(textMsg) > x_strlen(titleMsg)) || + (buttonFlag & ID_NOTITLE)) + width = x_strlen(textMsg) + Xoffset * 2; + else + width = x_strlen(titleMsg) + Xoffset * 4; + + height = x_strheight(textMsg) + Yoffset * 2; + if (!(buttonFlag & ID_NOTITLE)) + height += TitleHeight + TextYoffset + Yoffset; + + if (!(buttonFlag & ID_NOBUTTONS)) + height += ButtonHeight + Yoffset; + + if (buttonFlag & ID_OK) + { + buttons[OKAY_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_CANCEL) + { + buttons[CANCEL_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_YES) + { + buttons[YES_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_NO) + { + buttons[NO_BUTTON*5+4] = 1; + numButtons++; + } + + if ((numButtons * (ButtonWidth+2)) + ((numButtons-1) * Xoffset) + + (Xoffset * 2) > width) + width = (numButtons * ButtonWidth) + ((numButtons-1) * Xoffset) + + (Xoffset * 2); + + // to account for 4 pixel byte boundary + width += 4 - (width % 4); + + baseX -= width / 2; + baseY -= height / 2; + + deactivateMainButtons(); + + x_hide_mouse(); + + boxBG = (char *) malloc(width*height+2); + x_get_pbm(baseX, baseY, width/4, height, pageOffset, boxBG); + + x_rect_fill(baseX, baseY, baseX+width-1, baseY+height-1, + pageOffset, defaultColors[0]); + x_line(baseX, baseY, baseX+width-1, baseY, + defaultColors[1], pageOffset); + x_line(baseX, baseY, baseX, baseY+height-1, + defaultColors[1], pageOffset); + x_line(baseX, baseY+height-1, baseX+width-1, baseY+height-1, + defaultColors[2], pageOffset); + x_line(baseX+width-1, baseY, baseX+width-1, baseY+height-1, + defaultColors[2], pageOffset); + + if (!(buttonFlag & ID_NOTITLE)) + { + x_rect_fill(baseX+Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + pageOffset, defaultColors[3]); + x_line(baseX+Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset, + defaultColors[2], pageOffset); + x_line(baseX+Xoffset, baseY+Yoffset, + baseX+Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[2], pageOffset); + x_line(baseX+Xoffset, baseY+Yoffset+TitleHeight, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[1], pageOffset); + x_line(baseX+width-1-Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[1], pageOffset); + + stringWidth = x_strlen(titleMsg); + x_printf(baseX+(width/2)-(stringWidth/2), baseY+TitleYoffset, + pageOffset, defaultColors[5], titleMsg); + } // if + else + { + TitleHeight = 0; + TextYoffset = 0; + } // else + + stringWidth = x_strlen(textMsg); + x_printf(baseX+(width/2)-(stringWidth/2), + baseY+Yoffset+TitleHeight+TextYoffset, + pageOffset, defaultColors[4], textMsg); + + if (!(buttonFlag & ID_NOBUTTONS)) + { + ButtonStart = baseX + (width / 2) - + ((numButtons * (ButtonWidth+2) + + (numButtons-1) * Xoffset) / 2); + for (showButtons = 0; showButtons < numButtons; showButtons++) + { + switch (showButtons) + { + case 0: + if (buttonFlag & ID_OK) + { + ActiveButton = DLG_OKAY; + AlterButton = OKAY_BUTTON; + } // if + else if (buttonFlag & ID_YES) + { + ActiveButton = DLG_YES; + AlterButton = YES_BUTTON; + } // else + break; + case 1: + if (buttonFlag & ID_CANCEL) + { + ActiveButton = DLG_CANCEL; + AlterButton = CANCEL_BUTTON; + } // if + else if (buttonFlag & ID_NO) + { + ActiveButton = DLG_NO; + AlterButton = NO_BUTTON; + } // else + break; + } // switch + + buttons[AlterButton*5] = ButtonStart+1; + buttons[AlterButton*5+1] = baseY+height-1-Yoffset-ButtonHeight+1; + buttons[AlterButton*5+2] = buttons[AlterButton*5] + ButtonWidth - 1; + buttons[AlterButton*5+3] = buttons[AlterButton*5+1] + ButtonHeight - 1; + + x_rect_fill(ButtonStart, baseY+height-1-Yoffset-ButtonHeight, + ButtonStart+ButtonWidth-1+3, + baseY+height-1-Yoffset-1+3,pageOffset,0); + x_put_pbm(ButtonStart+1, baseY+height-1-Yoffset-ButtonHeight+1, + pageOffset, DialogButtons[ActiveButton]); + + ButtonStart += ButtonWidth + 2 + Xoffset; + + } // for + } // if + + x_show_mouse(); + + + BUTTON_FOUND = 0; + + while (!return_value) + { + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (buttonFlag & ID_NOBUTTONS) + return_value = ID_OK; + + currentButton = 0; + while ((!BUTTON_FOUND) && (currentButton != END_OF_BUTTONS)) + { + if ((MouseOnButton(currentButton)) && + (buttons[currentButton*5+4])) + { + + pushButton(currentButton); + + if (MouseOnButton(currentButton)) // check if still modal to button + { + + switch (currentButton) + { + case OKAY_BUTTON: + return_value = ID_OK; + BUTTON_FOUND = 1; + break; + + case CANCEL_BUTTON: + return_value = ID_CANCEL; + BUTTON_FOUND = 1; + break; + + case YES_BUTTON: + return_value = ID_YES; + BUTTON_FOUND = 1; + break; + + case NO_BUTTON: + return_value = ID_NO; + BUTTON_FOUND = 1; + break; + } // switch + } // if + } // if + + currentButton++; + } // while + } // if + } // while + + x_hide_mouse(); + + x_put_pbm(baseX, baseY, pageOffset, boxBG); + + x_show_mouse(); + + deactivateDlgButtons(); + activateMainButtons(); + + if (boxBG) + free(boxBG); + + return return_value; +} // char + +void deactivateMainButtons(void) +{ + char runButtons = START_MAIN_BUT; + + while ((runButtons < END_OF_MAIN_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 0; + + runButtons++; + } // while +} // deactivateMainButtons + +void activateMainButtons(void) +{ + char runButtons = START_MAIN_BUT; + + while ((runButtons < END_OF_MAIN_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 1; + + runButtons++; + } // while +} // activateMainButtons + +void deactivateDlgButtons(void) +{ + char runButtons = START_DLG_BUT; + + while ((runButtons < END_OF_DLG_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 0; + + runButtons++; + } // while +} // deactivateDlgButtons + +void activateDlgButtons(void) +{ + char runButtons = START_DLG_BUT; + + while ((runButtons < END_OF_DLG_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 1; + + runButtons++; + } // while +} // activateDlgButtons + +void showDrawMode(void) +{ + x_rect_fill(DM_BASEX, DM_BASEY, DM_MAXX, DM_MAXY, Page0_Offs, DM_BGCOLOR); + x_printf(DM_BASEX+((DM_MAXX-DM_BASEX)/2)- + (x_strlen(DrawModes[CurrentDrawMode])/2), + DM_BASEY + 2, + Page0_Offs, DM_FGCOLOR, DrawModes[CurrentDrawMode]); +} // showDrawMode + +void showItemName(void) +{ + x_rect_fill(IN_BASEX, IN_BASEY, IN_MAXX, IN_MAXY, Page0_Offs, IN_BGCOLOR); + x_printf(IN_BASEX+((IN_MAXX-IN_BASEX)/2)- + (x_strlen(scripts[CurrentPic].picName)/2), + IN_BASEY + 2, + Page0_Offs, IN_FGCOLOR, scripts[CurrentPic].picName); +} // showItemName + +void showMouseCoords(int posX, int posY) +{ + char buffer[20]; + + sprintf(buffer, "%d, %d", GridBaseX+posX, GridBaseY+posY); + + if (!IN_ACTIVE_AREA) + x_hide_mouse(); + + x_rect_fill(MC_BASEX, MC_BASEY, MC_MAXX, MC_MAXY, Page0_Offs, MC_BGCOLOR); + x_printf(MC_BASEX+2, + MC_BASEY + 2, + Page0_Offs, MC_FGCOLOR, buffer); + + if (!IN_ACTIVE_AREA) + x_show_mouse(); + +} // showMouseCoords + +void showCurrentPic(void) +{ + char picBuf[4100]; + + x_hide_mouse(); + + if (UPDATE_PIC_LBM) + { + showLBM(0, 0, scripts[CurrentPic].picFile, Page1_Offs); + UPDATE_PIC_LBM = 0; + } // if + + x_get_pbm(scripts[CurrentPic].Xoffset*8, + scripts[CurrentPic].Yoffset*8, 16, 64, Page1_Offs, picBuf); + x_put_pbm(PIC_BASEX, PIC_BASEY, Page0_Offs, picBuf); + + x_show_mouse(); +} // showCurrentPic + +void handleMouseCursor(void) +{ + NewMouseX = MouseX; + NewMouseY = MouseY; + + + if ((FILL_ACTIVE) && + (!(MouseButtonStatus & LEFT_MOUSE_CLICK))) + { + + FillAnArea(FillStartX, FillStartY, + (OldMouseX - 4)/TILE_SIZE, + (OldMouseY - 4)/TILE_SIZE); + RedrawMap(); + FILL_ACTIVE = 0; +// CurrentCursor = OldCursor; + + if ((NewMouseX < AA_BASEX) || (NewMouseX > AA_MAXX) || + (NewMouseY < AA_BASEY) || (NewMouseY > AA_MAXY)) + x_hide_mouse(); + else + { + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // else + + if ((NewMouseX < AA_BASEX) || (NewMouseX > AA_MAXX) || + (NewMouseY < AA_BASEY) || (NewMouseY > AA_MAXY)) + x_show_mouse(); + + return; + } // if + + + if ((NewMouseX >= AA_BASEX) && (NewMouseX <= AA_MAXX) && + (NewMouseY >= AA_BASEY) && (NewMouseY <= AA_MAXY)) + { + if (!IN_ACTIVE_AREA) + { + x_hide_mouse(); + OldMouseX = 4 + ((NewMouseX-4)/TILE_SIZE)*TILE_SIZE; + OldMouseY = 4 + ((NewMouseY-4)/TILE_SIZE)*TILE_SIZE; + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + + IN_ACTIVE_AREA = 1; + } // if + } // if + else + { + if (IN_ACTIVE_AREA) + { + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + + x_show_mouse(); + IN_ACTIVE_AREA = 0; + } // if + } // else + + if (IN_ACTIVE_AREA) + { + NewMouseX = 4 + ((NewMouseX-4)/TILE_SIZE)*TILE_SIZE; + NewMouseY = 4 + ((NewMouseY-4)/TILE_SIZE)*TILE_SIZE; + + if ((NewMouseX != OldMouseX) || (NewMouseY != OldMouseY) || + (MouseButtonStatus & LEFT_MOUSE_CLICK) || + (MouseButtonStatus & RIGHT_MOUSE_CLICK)) + { + if (!(MouseButtonStatus & LEFT_MOUSE_CLICK) && + !(MouseButtonStatus & RIGHT_MOUSE_CLICK)) + showMouseCoords((NewMouseX-4)/TILE_SIZE,(NewMouseY-4)/TILE_SIZE); + + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + OldMouseX = NewMouseX; + OldMouseY = NewMouseY; + + GRIDX = (OldMouseX - 4)/TILE_SIZE; + GRIDY = (OldMouseY - 4)/TILE_SIZE; + + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (CurrentCursor == CC_FILL) + { + if (FILL_ACTIVE) + { + RedrawMap(); + //x_put_pbm(4, 4, Page0_Offs, FillPic); + if ((FillStartX <= GRIDX) && (FillStartY <= GRIDY)) + { + x_line(4+FillStartX*TILE_SIZE, 4+FillStartY*TILE_SIZE, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+FillStartY*TILE_SIZE, + 255, Page0_Offs); + x_line(4+FillStartX*TILE_SIZE, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + x_line(4+FillStartX*TILE_SIZE, 4+FillStartY*TILE_SIZE, + 4+FillStartX*TILE_SIZE, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + x_line(4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+FillStartY*TILE_SIZE, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + } // if + + } // if + else + { + FILL_ACTIVE = 1; + FillStartX = GRIDX; + FillStartY = GRIDY; + //FillPic = (char *) malloc(MAP_VIEW_SIZE*TILE_SIZE*TILE_SIZE); + //x_get_pbm(4, 4, (MAP_VIEW_SIZE*TILE_SIZE)/4, + // MAP_VIEW_SIZE*TILE_SIZE, Page0_Offs, FillPic); + } // else + } // if + else + { + switch (CurrentCursor) + { + case CC_WESTWALL : + map[WEST_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + x_get_pbm(PIC_BASEX, PIC_BASEY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawBuffer); + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pbm(0, 0, Page1_Offs, DrawBuffer); + x_line(0, 0, TILE_SIZE, 0, 0, Page0_Offs); + x_line(0, TILE_SIZE-1, TILE_SIZE, TILE_SIZE-1, 0, Page1_Offs); + x_line(0, 0, 0, TILE_SIZE, 0, Page1_Offs); + x_line(3, 0, 3, TILE_SIZE, 0, Page1_Offs); + + if (!Pics[TT_WESTWALL][CurrentPic-MinPic][0]) + { + x_get_pbm(0, 0, 1, TILE_SIZE, + Page1_Offs, Pics[TT_WESTWALL][CurrentPic-MinPic]); + } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_line(OldMouseX-1, OldMouseY, OldMouseX, OldMouseY + TILE_SIZE-1, + 103, Page0_Offs); + break; + + case CC_NORTHWALL : + map[NORTH_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + x_get_pbm(PIC_BASEX, PIC_BASEY, TILE_SIZE/4, 4, + Page0_Offs, DrawBuffer); + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pbm(0, 0, Page1_Offs, DrawBuffer); + x_line(0, 0, TILE_SIZE, 0, 0, Page1_Offs); + x_line(0, 3, TILE_SIZE, 3, 0, Page1_Offs); + x_line(0, 0, 0, TILE_SIZE, 0, Page1_Offs); + x_line(TILE_SIZE-1, 0, TILE_SIZE-1, TILE_SIZE, 0, Page1_Offs); + + if (!Pics[TT_NORTHWALL][CurrentPic-MinPic][0]) + { + x_get_pbm(0, 0, TILE_SIZE/4, 4, + Page1_Offs, Pics[TT_NORTHWALL][CurrentPic-MinPic]); + } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_line(OldMouseX + 1, OldMouseY, OldMouseX + 5, OldMouseY, + 103, Page0_Offs); + break; + + case CC_FLAT : + if (CurrentDrawMode == DM_FLOOR) + map[FLOOR_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + else + map[CEILING_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + // if (!Pics[TT_FLAT][CurrentPic-MinPic][0]) + // { + // x_get_pbm(0, 0, TILE_SIZE/4, TILE_SIZE, + // Page0_Offs, Pics[TT_FLAT][CurrentPic-MinPic]); + // } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_rect_fill(OldMouseX + 2, OldMouseY + 2, + OldMouseX + 5, OldMouseY + 5, + Page0_Offs, 103); + break; + + case CC_ACTOR : + map[SPRITE_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + DrawGridTile(GRIDX, GRIDY); + } // if + + break; + } // if + } // else + } // if + else if (MouseButtonStatus & RIGHT_MOUSE_CLICK) + { + switch (CurrentCursor) + { + case CC_WESTWALL : + map[WEST_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_NORTHWALL : + map[NORTH_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_FLAT : + if (CurrentDrawMode == DM_FLOOR) + map[FLOOR_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + else + map[CEILING_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_ACTOR : + map[SPRITE_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + if (DRAW_FROM_PIC) + { + DrawGridTile(GRIDX, GRIDY); + } // if + + break; + } // if + } // if + else + { + if (FILL_ACTIVE) + { + //x_put_pbm(4, 4, Page0_Offs, FillPic); + //free(FillPic); + //FillPic = NULL; + //RedrawMap(); + //FILL_ACTIVE = 0; + //CurrentCursor = OldCursor; + } // if + } // else + + + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // if + } // if +} // handleMouseCursor + +void DrawGridTile(char xpos, char ypos) +{ + char TileBuffer[146]; + + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pix(0, 0, Page1_Offs, GRID_MARK_COLOR); + + if (map[FLOOR_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_FLAT][map[FLOOR_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1]); + } // if + if (map[WEST_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_WESTWALL][map[WEST_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1]); + } // if + if (map[NORTH_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_NORTHWALL][map[NORTH_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1]); + } // if + if (map[SPRITE_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_masked_pbm(0, 0, Page1_Offs, + Pics[TT_ACTOR][map[SPRITE_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1]); + } // if + + x_get_pbm(0, 0, TILE_SIZE/4, TILE_SIZE, Page1_Offs, TileBuffer); + + x_put_pbm(4+xpos*TILE_SIZE, 4+ypos*TILE_SIZE, Page0_Offs, TileBuffer); + +} // DrawGridTile + +void RedrawMap(void) +{ + char row; + char col; + + + if (CurrentCursor != CC_FILL) + { + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs,DrawCursors[0]); + else + x_hide_mouse(); + } // if + + for (row = 0; row < MAP_VIEW_SIZE; row++) + { + for (col = 0; col < MAP_VIEW_SIZE; col++) + { + DrawGridTile(col, row); + } // for + } // for + + if (CurrentCursor != CC_FILL) + { + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + } // if +} // RedrawMap + +void RedrawCol(char whichCol) +{ + char row; + + for (row = 0; row < MAP_VIEW_SIZE; row++) + { + DrawGridTile(whichCol, row); + } // for +} // RedrawRow + +void RedrawRow(char whichRow) +{ + char col; + + for (col = 0; col < MAP_VIEW_SIZE; col++) + { + DrawGridTile(col, whichRow); + } // for +} // RedrawRow + +int SaveMapToFile(char *filename) +{ + int MapFile; + + if ((MapFile = f_open(filename, F_RDWR)) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "New saved okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // SaveMapToFile + +int SaveMapToTOD(void) +{ + int MapFile; + + if ((MapFile = f_open(DATA_FILE, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x3E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x4E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x5E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x6E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0xCE0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "New map inserted okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // SaveMapToTOD + +int LoadMapFromFile(char *filename) +{ + int MapFile; + long numRead; + + if ((MapFile = f_open(filename, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "Old map loaded okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // LoadMapFromFile + +int LoadMapFromTOD(void) +{ + int MapFile; + long numRead; + + if ((MapFile = f_open(DATA_FILE, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x3E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x4E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x5E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x6E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0xCE0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "Old map extracted okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // LoadMapFromTOD + +void ScaleTiles() +{ + char i; + char j; + WORD color; + char scaleX = TILE_SIZE; + char scaleY = TILE_SIZE; + char picToScale = 0; + + + + scaleX = 4; + scaleY = TILE_SIZE; + + picToScale = StartWallPic; + + while (picToScale <= MaxWallPic) + { + if ((picToScale == StartWallPic) || + (strcmpi(scripts[picToScale].picFile, scripts[picToScale-1].picFile))) + showLBM(0, 0, scripts[picToScale].picFile, Page0_Offs); + + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page0_Offs, 0); + + for (i=0; i +#include +#include +#include +#include +#include "xlib_all.h" + +void load_user_fonts(void); +void exitfunc(void); + +char far *userfnt1; + +void main(void) +{ + int i; + int j; + + userfnt1 = (char far *) farmalloc(256*16+4); + + x_text_mode(); + x_set_mode(X_MODE_320x200,320); + x_text_init(); + x_mouse_init(); + MouseColor=15; + atexit(exitfunc); + load_user_fonts(); + + + getch(); +} // main + +void load_user_fonts(void) +{ + FILE *f; + f=fopen("tiny4.fnt","rb"); + /* read char by char as fread wont read to far pointers in small model */ + { int i; char c; + for (i=0;i<256*8+4;i++){ + fread(&c,1,1,f); + *(userfnt1+i)=c; + } + } + + fclose(f); + + x_register_userfont(userfnt1); +} + +void exitfunc(void){ + x_mouse_remove(); + x_text_mode(); + printf("Ta-da\n"); +} \ No newline at end of file diff --git a/MYMAP/MAZER.CPP b/MYMAP/MAZER.CPP new file mode 100644 index 0000000..4e1b521 --- /dev/null +++ b/MYMAP/MAZER.CPP @@ -0,0 +1,2157 @@ +#include +#include +#include +#include +#include +#include +#include +#include "xlib_all.h" + +#define PROGRAM_GRAPHIX "GRAPHIX.LBM" +#define INTERFACE_SCREEN "INTRFACE.LBM" +#define DATA_FILE "TODD3D.TOD" + +#define UP_KEY 72 + 256 +#define DOWN_KEY 80 + 256 +#define LEFT_KEY 75 + 256 +#define RIGHT_KEY 77 + 256 + +#define GRID_MARK_COLOR 80 + +#define MAP_VIEW_SIZE 16 +#define MAP_SIZE 64 +#define MAX_TILES 64 +#define MAP_LAYERS 5 +#define TILE_SIZE 12 + +#define WEST_LAYER 0 +#define NORTH_LAYER 1 +#define FLOOR_LAYER 2 +#define CEILING_LAYER 3 +#define SPRITE_LAYER 4 + +#define PIC_BASEX 227 +#define PIC_BASEY 133 + +#define AA_BASEX 4 +#define AA_BASEY 4 +#define AA_MAXX 195 +#define AA_MAXY 195 + +#define MC_BASEX 254 +#define MC_BASEY 100 +#define MC_MAXX 303 +#define MC_MAXY 108 +#define MC_BGCOLOR 101 +#define MC_FGCOLOR 0 + +#define DM_BASEX 214 +#define DM_BASEY 10 +#define DM_MAXX 304 +#define DM_MAXY 18 +#define DM_BGCOLOR 101 +#define DM_FGCOLOR 0 + +#define IN_BASEX 214 +#define IN_BASEY 120 +#define IN_MAXX 304 +#define IN_MAXY 128 +#define IN_BGCOLOR 101 +#define IN_FGCOLOR 0 + +#define LEFT_MOUSE_CLICK 1 +#define RIGHT_MOUSE_CLICK 2 + +#define DM_NONE 0 +#define DM_WESTWALL 1 +#define DM_NORTHWALL 2 +#define DM_FLOOR 3 +#define DM_CEILING 4 +#define DM_SPRITE 5 +#define DM_DOOR 6 + +#define TT_WESTWALL 0 +#define TT_NORTHWALL 1 +#define TT_FLAT 2 +#define TT_ACTOR 3 + +#define CC_NONE 0 +#define CC_WESTWALL 1 +#define CC_NORTHWALL 2 +#define CC_FLAT 3 +#define CC_FILL 4 +#define CC_DOOR 5 +#define CC_ACTOR 6 +#define CC_PLAYER 7 + +#define DLG_OKAY 0 +#define DLG_CANCEL 1 +#define DLG_YES 2 +#define DLG_NO 3 + +#define ID_OK 1 +#define ID_CANCEL 2 +#define ID_YES 4 +#define ID_NO 8 +#define ID_NOBUTTONS 16 +#define ID_NOTITLE 32 +#define ID_DEFAULT 1 +#define ID_OKAYCANCEL 3 +#define ID_YESNO 12 + +#define FILL_BUTTON 0 +#define NEW_BUTTON 1 +#define LOAD_BUTTON 2 +#define SAVE_BUTTON 3 +#define EXIT_BUTTON 4 +#define EXTRA_BUTTON 5 +#define PIC_LEFT_BUTTON 6 +#define PIC_RIGHT_BUTTON 7 + +#define WALL_BUTTON 8 +#define FLOOR_BUTTON 9 +#define CEILING_BUTTON 10 +#define TT4_BUTTON 11 +#define TT5_BUTTON 12 +#define PLAYER_BUTTON 13 +#define TT7_BUTTON 14 +#define SPRITE_BUTTON 15 +#define TT9_BUTTON 16 +#define TT10_BUTTON 17 + +#define OKAY_BUTTON 18 +#define CANCEL_BUTTON 19 +#define YES_BUTTON 20 +#define NO_BUTTON 21 + +#define END_OF_BUTTONS 22 +#define END_OF_MAIN_BUT 17 +#define END_OF_DLG_BUT 22 + +#define START_MAIN_BUT 0 +#define START_DLG_BUT 18 + + +extern void showLBM(int,int,char*,long); + +void load_user_fonts(void); +void exitfunc(void); + +void setUpInterface(void); +void drawLoop(void); +void handleUserActions(void); +char MouseOnButton(char); +void handleButton(char); +void pushButton(char); +void handleKeystroke(int); + +char MessageBox(int, int, long, char *, char *, int); +void deactivateMainButtons(void); +void activateMainButtons(void); +void deactivateDlgButtons(void); +void activateDlgButtons(void); + +void showDrawMode(void); +void showItemName(void); +void showCurrentPic(void); +void showMouseCoords(int, int); + +void handleMouseCursor(void); +void DrawGridTile(char xpos, char ypos); +void RedrawMap(); +void RedrawRow(char whichRow); +void RedrawCol(char whichCol); + +int SaveMapToTOD(void); +int LoadMapFromTOD(void); +int SaveMapToFile(char *); +int LoadMapFromFile(char *); + +void ScaleTiles(); + +void FillAnArea(char, char, char, char); + +typedef struct picStruct +{ + char *pbm; +} picType; + +typedef struct mapStruct +{ + char *layer; +} mapType; + +typedef struct scriptStruct +{ + char picFile[30]; + char picName[20]; + char Xoffset; + char Yoffset; +} scriptType; + +scriptStruct scripts[75] = +{ + "WALLS1.LBM", + "W1_1", + 2, + 2, + "WALLS1.LBM", + "W1_2", + 10, + 2, + "WALLS1.LBM", + "W1_3", + 18, + 2, + "WALLS1.LBM", + "W1_4", + 26, + 2, + "WALLS1.LBM", + "W1_5", + 2, + 10, + "WALLS1.LBM", + "W1_6", + 10, + 10, + "WALLS1.LBM", + "W1_7", + 18, + 10, + "WALLS1.LBM", + "W1_8", + 26, + 10, + "WALLS2.LBM", + "W2_1", + 2, + 2, + "WALLS2.LBM", + "W2_2", + 10, + 2, + "WALLS2.LBM", + "W2_3", + 18, + 2, + "WALLS2.LBM", + "W2_4", + 26, + 2, + "WALLS2.LBM", + "W2_5", + 2, + 10, + "WALLS2.LBM", + "W2_6", + 10, + 10, + "WALLS2.LBM", + "W2_7", + 18, + 10, + "WALLS2.LBM", + "W2_8", + 26, + 10, + "WALLS3.LBM", + "W3_1", + 2, + 2, + "WALLS3.LBM", + "W3_2", + 11, + 2, + "WALLS3.LBM", + "W3_3", + 20, + 2, + "WALLS3.LBM", + "W3_4", + 29, + 2, + "WALLS3.LBM", + "W3_5", + 2, + 11, + "WALLS3.LBM", + "W3_6", + 11, + 11, + "WALLS3.LBM", + "W3_7", + 20, + 11, + "WALLS3.LBM", + "W3_8", + 29, + 11, + "WALLS4.LBM", + "W4_1", + 2, + 2, + "WALLS4.LBM", + "W4_2", + 11, + 2, + "WALLS4.LBM", + "W4_3", + 20, + 2, + "WALLS4.LBM", + "W4_4", + 29, + 2, + "WALLS4.LBM", + "W4_5", + 2, + 11, + "WALLS4.LBM", + "W4_6", + 11, + 11, + "WALLS4.LBM", + "W4_7", + 20, + 11, + "WALLS4.LBM", + "W4_8", + 29, + 11, + "WALLS5.LBM", + "W5_1", + 2, + 2, + "WALLS5.LBM", + "W5_2", + 11, + 2, + "WALLS5.LBM", + "W5_3", + 20, + 2, + "WALLS5.LBM", + "W5_4", + 29, + 2, + "WALLS5.LBM", + "W5_5", + 2, + 11, + "WALLS5.LBM", + "W5_6", + 11, + 11, + "WALLS5.LBM", + "W5_7", + 20, + 11, + "WALLS5.LBM", + "W5_8", + 29, + 11, + "WALLS6.LBM", + "W6_1", + 2, + 2, + "WALLS6.LBM", + "W5_2", + 11, + 2, + "WALLS6.LBM", + "W5_3", + 20, + 2, + "WALLS6.LBM", + "W5_4", + 29, + 2, + "WALLS6.LBM", + "W5_5", + 2, + 11, + "WALLS6.LBM", + "W5_6", + 11, + 11, + "WALLS6.LBM", + "W5_7", + 20, + 11, + "WALLS6.LBM", + "W5_8", + 29, + 11, + "FLATS1.LBM", + "F1_1", + 2, + 2, + "FLATS1.LBM", + "F1_2", + 11, + 2, + "FLATS1.LBM", + "F1_3", + 20, + 2, + "FLATS1.LBM", + "F1_4", + 29, + 2, + "FLATS1.LBM", + "F1_5", + 2, + 11, + "FLATS1.LBM", + "F1_6", + 11, + 11, + "FLATS1.LBM", + "F1_7", + 20, + 11, + "FLATS1.LBM", + "F1_8", + 29, + 11, + "FLATS2.LBM", + "F2_1", + 2, + 2, + "FLATS2.LBM", + "F2_2", + 11, + 2, + "FLATS2.LBM", + "F2_3", + 2, + 11, + "FLATS2.LBM", + "F2_4", + 11, + 11, + "ACTORS1.LBM", + "A1_1", + 2, + 2, + "ACTORS1.LBM", + "A1_2", + 11, + 2, + "ACTORS1.LBM", + "P1_1", + 20, + 2, + "ACTORS1.LBM", + "W1_1", + 29, + 2, + "ACTORS1.LBM", + "A1_3", + 11, + 11, + "ACTORS1.LBM", + "W1_1", + 2, + 11, + "ACTORS1.LBM", + "W1_1", + 20, + 11, + "ACTORS1.LBM", + "W1_1", + 29, + 11, + "ACTORS2.LBM", + "U1_1", + 2, + 2, + "ACTORS2.LBM", + "U1_1", + 11, + 2, + "ACTORS2.LBM", + "B1_1", + 20, + 2, + "ACTORS2.LBM", + "C1_1", + 29, + 2, + "ACTORS2.LBM", + "J1_1", + 2, + 11, + "ACTORS1.LBM", + "VERTICAL DOOR", + 29, + 2, + "ACTORS2.LBM", + "A1_1", + 11, + 11, +}; + +char far *FillCursor[] = +{ "THISISATEST!!!"}; + +char far *userfnt1; +char *FillPic = NULL; + +char IN_ACTIVE_AREA = 0; +char DONE_DRAWING = 0; +char FILL_ACTIVE = 0; +char UPDATE_PIC_LBM = 1; +char DRAW_FROM_PIC = 1; +char GRAPHIC_CURSOR = 0; +char CurrentDrawMode = DM_WESTWALL; +char CurrentCursor = CC_WESTWALL; +char OldCursor = CurrentCursor; +char CurrentPic = 0; +char MinPic = 0; +char StartWallPic = 0; +char MaxWallPic = 47; +char MaxPic = MaxWallPic; +char StartFlatPic = MaxWallPic + 1; +char MaxFlatPic = StartFlatPic + 11; +char StartActorPic = MaxFlatPic + 1; +char MaxActorPic = StartActorPic + 14; +char MaxScriptPic = MaxActorPic; + +int OldMouseX; +int OldMouseY; +int NewMouseX; +int NewMouseY; +char GRIDX; +char GRIDY; +char FillStartX; +char FillStartY; +char GridBaseX = 0; +char GridBaseY = 0; + +int buttons[] = +{ + 214, 73, 241, 81, 1, + 214, 85, 241, 93, 1, + 246, 73, 273, 81, 1, + 246, 85, 273, 93, 1, + 278, 73, 305, 81, 1, + 278, 85, 305, 93, 1, + 212, 133, 223, 144, 1, + 294, 133, 305, 144, 1, + + 215, 32, 230, 47, 1, + 233, 32, 248, 47, 1, + 251, 32, 266, 47, 1, + 269, 32, 284, 47, 1, + 287, 32, 302, 47, 1, + 215, 50, 230, 65, 1, + 233, 50, 248, 65, 1, + 251, 50, 266, 65, 1, + 269, 50, 284, 65, 1, + 287, 50, 302, 65, 1, + + 0, 0, 27, 8, 0, // DIALOG BUTTONS + 0, 9, 27, 17, 0, // Start out at grab position in graphix file + 0, 18, 27, 26, 0, // Are filled in on the fly leter based on where + 0, 27, 27, 35, 0, // dialog is to be shown + + 0, 0, 0, 0, 0 +}; + +char *DrawModes[] = +{ + "DRAW INACTIVE", + "WEST WALL", + "NORTH WALL", + "FLOOR", + "CEILING", + "SPRITE PLACEMENT", + "", +}; + +char DialogButtons[4][300]; +char DrawCursors[7][146]; +char DrawBuffer[TILE_SIZE*TILE_SIZE+2]; +//char Pics[4][MAX_TILES][TILE_SIZE*TILE_SIZE+2]; +picStruct Pics[4][MAX_TILES]; + +char map[MAP_LAYERS][MAP_SIZE*MAP_SIZE]; + +void main(void) +{ + int i; + int j; + + userfnt1 = (char far *) farmalloc(256*16+4); + + x_text_mode(); + x_set_mode(X_MODE_320x200,340); + x_text_init(); + NonVisual_Offs += ScrnLogicalByteWidth * 14; // Fixes mouse droppings prob. + x_mouse_init(); + MouseColor=103; + atexit(exitfunc); + load_user_fonts(); + x_set_doublebuffer(200); + + for (i=0; i < 4; i++) + for (j=0; j < MAX_TILES; j++) + Pics[i][j].pbm = (char *) malloc (TILE_SIZE*TILE_SIZE+2); + + setUpInterface(); + + drawLoop(); + + for (i=0; i < 4; i++) + for (j=0; j < MAX_TILES; j++) + free(Pics[i][j].pbm); + +} // main + +void drawLoop(void) +{ + x_mouse_window(0, 0, 319, 199); + + x_show_mouse(); + + while (!DONE_DRAWING) + { + handleUserActions(); + handleMouseCursor(); + } // while + + x_hide_mouse(); +} // drawLoop + +void handleUserActions(void) +{ + char BUTTON_FOUND = 0; + char currentButton; + int currentKey; + + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + currentButton = 0; + while ((!BUTTON_FOUND) && (currentButton != END_OF_BUTTONS)) + { + if ((MouseOnButton(currentButton)) && + (buttons[currentButton*5+4])) + { + handleButton(currentButton); + BUTTON_FOUND = 1; + } // if + + currentButton++; + } // while + } // if + else if (bioskey(1)) + { + currentKey = bioskey(0); + if (!(currentKey & 0xFF)) + currentKey = (currentKey >> 8) + 256; + else + currentKey = currentKey & 0xFF; + + handleKeystroke(currentKey); + } // else +} // handleUserActions + +void handleKeystroke(int whichKey) +{ + switch (whichKey) + { + case UP_KEY : + if (GridBaseY > 0) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + + x_shift_rect(AA_BASEX, AA_BASEY, + AA_MAXX-3, AA_MAXY-TILE_SIZE, + AA_BASEX, AA_BASEY+TILE_SIZE, Page0_Offs); + GridBaseY--; + RedrawRow(0); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case DOWN_KEY : + if (GridBaseY + MAP_VIEW_SIZE -1 < MAP_SIZE-1) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + + x_shift_rect(AA_BASEX, AA_BASEY+TILE_SIZE, + AA_MAXX-3, AA_MAXY, + AA_BASEX, AA_BASEY, Page0_Offs); + GridBaseY++; + RedrawRow(MAP_VIEW_SIZE-1); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case LEFT_KEY : + + if (GridBaseX > 0) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + x_shift_rect(AA_BASEX, AA_BASEY, AA_MAXX-TILE_SIZE-3, + AA_MAXY, AA_BASEX+TILE_SIZE, AA_BASEY, Page0_Offs); + GridBaseX--; + RedrawCol(0); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + break; + + case RIGHT_KEY : + + if (GridBaseX + MAP_VIEW_SIZE - 1 < MAP_SIZE-1) + { + if (IN_ACTIVE_AREA) + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + else + x_hide_mouse(); + x_shift_rect(AA_BASEX+TILE_SIZE, AA_BASEY, AA_MAXX-3, + AA_MAXY, AA_BASEX, AA_BASEY, Page0_Offs); + GridBaseX++; + RedrawCol(MAP_VIEW_SIZE-1); + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + + showMouseCoords((OldMouseX-4)/TILE_SIZE,(OldMouseY-4)/TILE_SIZE); + } // if + +// break; + } // switch +} // handleKeyStroke + +void handleButton(char whichButton) +{ + pushButton(whichButton); + + if (!MouseOnButton(whichButton)) // check if still modal to button + return; + + switch (whichButton) + { + case EXIT_BUTTON : + + if (MessageBox(160, 100, Page0_Offs, "Are you sure you want to exit?", + "Last Chance", ID_YESNO) == ID_YES) + DONE_DRAWING = 1; + + break; + + case SAVE_BUTTON : + if (MessageBox(160, 100, Page0_Offs, + "Do you want to save?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + { + if (MessageBox(160, 100, Page0_Offs, + "Do you want to insert\ninto .TOD file?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + SaveMapToTOD(); + else + SaveMapToFile("TODD.MAP"); + } // if + break; + + case LOAD_BUTTON : + if (MessageBox(160, 100, Page0_Offs, + "Do you want to load?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + { + if (MessageBox(160, 100, Page0_Offs, + "Do you want to extract\nfrom .TOD file?", + "", ID_YESNO | ID_NOTITLE) == ID_YES) + LoadMapFromTOD(); + else + LoadMapFromFile("TODD.MAP"); + + RedrawMap(); + } // if + break; + + case EXTRA_BUTTON : + + MessageBox(160, 100, Page0_Offs, + "This button has no\nmeaning as of yet.", "", ID_OK | ID_NOTITLE); + + break; + + case FILL_BUTTON : + + if (CurrentCursor == CC_FILL) + CurrentCursor = OldCursor; + else + { + OldCursor = CurrentCursor; + CurrentCursor = CC_FILL; + } // else + + if (IN_ACTIVE_AREA) + { + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs,DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // if + + break; + + case NEW_BUTTON : + + if (MessageBox(160, 100, Page0_Offs, + "Do you wish to start a\nnew map from scratch?", + "Last Chance", ID_YESNO) == ID_YES) + { + memset(map, 0, MAP_LAYERS*MAP_SIZE*MAP_SIZE); + RedrawMap(); + } // if + + break; + + case WALL_BUTTON : + if ((CurrentDrawMode != DM_WESTWALL) && + (CurrentDrawMode != DM_NORTHWALL)) + { + MinPic = StartWallPic; + CurrentPic = StartWallPic; + MaxPic = MaxWallPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + } // if + + if (CurrentDrawMode == DM_WESTWALL) + { + CurrentDrawMode = DM_NORTHWALL; + CurrentCursor = CC_NORTHWALL; + } // if + else + { + CurrentDrawMode = DM_WESTWALL; + CurrentCursor = CC_WESTWALL; + } // else + showDrawMode(); + + break; + + case FLOOR_BUTTON : + CurrentDrawMode = DM_FLOOR; + CurrentCursor = CC_FLAT; + showDrawMode(); + + MinPic = StartFlatPic; + CurrentPic = StartFlatPic; + MaxPic = MaxFlatPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + + break; + + case CEILING_BUTTON : + CurrentDrawMode = DM_CEILING; + CurrentCursor = CC_FLAT; + showDrawMode(); + + MinPic = StartFlatPic; + CurrentPic = StartFlatPic; + MaxPic = MaxFlatPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + break; + + case SPRITE_BUTTON : + CurrentDrawMode = DM_SPRITE; + CurrentCursor = CC_ACTOR; + showDrawMode(); + + MinPic = StartActorPic; + CurrentPic = StartActorPic; + MaxPic = MaxActorPic; + + UPDATE_PIC_LBM = 1; + + showCurrentPic(); + showItemName(); + break; + + case TT4_BUTTON : + case TT5_BUTTON : + case TT7_BUTTON : + case TT9_BUTTON : + case TT10_BUTTON : + + break; + + case PIC_LEFT_BUTTON : + if (CurrentPic > MinPic) + { + if (stricmp(scripts[CurrentPic].picFile,scripts[CurrentPic-1].picFile)) + UPDATE_PIC_LBM = 1; + CurrentPic--; + showCurrentPic(); + showItemName(); + } // if + break; + + case PIC_RIGHT_BUTTON : + if (CurrentPic < MaxPic) + { + if (stricmp(scripts[CurrentPic].picFile,scripts[CurrentPic+1].picFile)) + UPDATE_PIC_LBM = 1; + CurrentPic++; + showCurrentPic(); + showItemName(); + } // if + break; + + } // switch +} // handleButton + +void pushButton(char whichButton) +{ + char buttonBuffer[1000]; + char BUTTON_DOWN = 1; + + x_hide_mouse(); + + x_get_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + (buttons[whichButton*5+2] - buttons[whichButton*5] + 1) / 4, + buttons[whichButton*5+3] - buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5] + 1, buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + + x_show_mouse(); + + while (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (BUTTON_DOWN) + { + if (!MouseOnButton(whichButton)) + { + x_hide_mouse(); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + Page0_Offs, buttonBuffer); + x_show_mouse(); + + BUTTON_DOWN = 0; + } // if + } // if + else + { + if (MouseOnButton(whichButton)) + { + x_hide_mouse(); + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5] + 1, buttons[whichButton*5+1] + 1, + Page0_Offs, buttonBuffer); + x_show_mouse(); + + BUTTON_DOWN = 1; + } // if + } // else + }; + + x_hide_mouse(); + + x_rect_fill(buttons[whichButton*5] - 1, buttons[whichButton*5+1] - 1, + buttons[whichButton*5+2] + 2, buttons[whichButton*5+3] + 2, + Page0_Offs, 0); + x_put_pbm(buttons[whichButton*5], buttons[whichButton*5+1], + Page0_Offs, buttonBuffer); + + x_show_mouse(); +} // pushButton + +char MouseOnButton(char whichButton) +{ + if ((MouseX >= buttons[whichButton*5]) && + (MouseX <= buttons[whichButton*5+2]) && + (MouseY >= buttons[whichButton*5+1]) && + (MouseY <= buttons[whichButton*5+3])) + return 1; + + return 0; +} // MouseOnButton + +void handleOptionButtons(void) +{ +} // handleOptionButtons + +void setUpInterface(void) +{ + memset(map, 0, MAP_LAYERS*MAP_SIZE*MAP_SIZE); +// memset(Pics, 0, 4*MAX_TILES); + + x_set_font(2); + + x_page_flip(0, 0); + + x_rect_fill(110, 80, 210, 120, Page1_Offs, 1); + x_printf(115, 95, Page1_Offs, 10, "Initializing MAZER..."); + + showLBM(0, 0, PROGRAM_GRAPHIX, Page0_Offs); + x_get_pbm(buttons[OKAY_BUTTON*5], buttons[OKAY_BUTTON*5+1], + (buttons[OKAY_BUTTON*5+2] - buttons[OKAY_BUTTON*5] + 1) / 4, + buttons[OKAY_BUTTON*5+3] - buttons[OKAY_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_OKAY]); + x_get_pbm(buttons[CANCEL_BUTTON*5], buttons[CANCEL_BUTTON*5+1], + (buttons[CANCEL_BUTTON*5+2] - buttons[CANCEL_BUTTON*5] + 1) / 4, + buttons[CANCEL_BUTTON*5+3] - buttons[CANCEL_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_CANCEL]); + x_get_pbm(buttons[YES_BUTTON*5], buttons[YES_BUTTON*5+1], + (buttons[YES_BUTTON*5+2] - buttons[YES_BUTTON*5] + 1) / 4, + buttons[YES_BUTTON*5+3] - buttons[YES_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_YES]); + x_get_pbm(buttons[NO_BUTTON*5], buttons[NO_BUTTON*5+1], + (buttons[NO_BUTTON*5+2] - buttons[NO_BUTTON*5] + 1) / 4, + buttons[NO_BUTTON*5+3] - buttons[NO_BUTTON*5+1] + 1, + Page0_Offs, DialogButtons[DLG_NO]); + x_get_pbm(0,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[1]); + x_get_pbm(13,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[2]); + x_get_pbm(26,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[3]); + x_get_pbm(39,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[4]); + x_get_pbm(52,45,TILE_SIZE/4,TILE_SIZE,Page0_Offs, DrawCursors[5]); + x_get_pbm(65,45, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[6]); + + ScaleTiles(); + + showLBM(0, 0, INTERFACE_SCREEN, Page0_Offs); + + showDrawMode(); + showItemName(); + + x_page_flip(0, 0); + + showCurrentPic(); +} // setUpInterface + +void load_user_fonts(void) +{ + FILE *f; + f=fopen("smalthin.fnt","rb"); + /* read char by char as fread wont read to far pointers in small model */ + { int i; char c; + for (i=0;i<256*8+4;i++){ + fread(&c,1,1,f); + *(userfnt1+i)=c; + } + } + + fclose(f); + + x_register_userfont(userfnt1); +} + +void exitfunc(void){ + x_mouse_remove(); + x_text_mode(); + printf("Ta-da\n"); +} + +char MessageBox(int baseX, int baseY, + long pageOffset, char * textMsg, char * titleMsg, + int buttonFlag) +{ + char Xoffset = 5; + char Yoffset = 5; + char TitleHeight = 10; + char TitleYoffset = 8; + char TextYoffset = 10; + char ButtonHeight = 9; + char ButtonWidth = 28; + int ButtonStart = 0; + int width = 100; + int height = 50; + char showButtons; + char ActiveButton = 0; + char AlterButton = 0; + + char *boxBG = NULL; + + int defaultColors[] = + { + 139, // basic color + 154, // hilite color + 144, // lolite color + 79, // title bar color + 255, // text color + 103 // title text color + }; + + int stringWidth; + int stringHeight; + + char numButtons = 0; + char currentButton = 0; + char BUTTON_FOUND = 0; + char return_value = 0; + + + if ((x_strlen(textMsg) > x_strlen(titleMsg)) || + (buttonFlag & ID_NOTITLE)) + width = x_strlen(textMsg) + Xoffset * 2; + else + width = x_strlen(titleMsg) + Xoffset * 4; + + height = x_strheight(textMsg) + Yoffset * 2; + if (!(buttonFlag & ID_NOTITLE)) + height += TitleHeight + TextYoffset + Yoffset; + + if (!(buttonFlag & ID_NOBUTTONS)) + height += ButtonHeight + Yoffset; + + if (buttonFlag & ID_OK) + { + buttons[OKAY_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_CANCEL) + { + buttons[CANCEL_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_YES) + { + buttons[YES_BUTTON*5+4] = 1; + numButtons++; + } + if (buttonFlag & ID_NO) + { + buttons[NO_BUTTON*5+4] = 1; + numButtons++; + } + + if ((numButtons * (ButtonWidth+2)) + ((numButtons-1) * Xoffset) + + (Xoffset * 2) > width) + width = (numButtons * ButtonWidth) + ((numButtons-1) * Xoffset) + + (Xoffset * 2); + + // to account for 4 pixel byte boundary + width += 4 - (width % 4); + + baseX -= width / 2; + baseY -= height / 2; + + deactivateMainButtons(); + + x_hide_mouse(); + + boxBG = (char *) malloc(width*height+2); + x_get_pbm(baseX, baseY, width/4, height, pageOffset, boxBG); + + x_rect_fill(baseX, baseY, baseX+width-1, baseY+height-1, + pageOffset, defaultColors[0]); + x_line(baseX, baseY, baseX+width-1, baseY, + defaultColors[1], pageOffset); + x_line(baseX, baseY, baseX, baseY+height-1, + defaultColors[1], pageOffset); + x_line(baseX, baseY+height-1, baseX+width-1, baseY+height-1, + defaultColors[2], pageOffset); + x_line(baseX+width-1, baseY, baseX+width-1, baseY+height-1, + defaultColors[2], pageOffset); + + if (!(buttonFlag & ID_NOTITLE)) + { + x_rect_fill(baseX+Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + pageOffset, defaultColors[3]); + x_line(baseX+Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset, + defaultColors[2], pageOffset); + x_line(baseX+Xoffset, baseY+Yoffset, + baseX+Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[2], pageOffset); + x_line(baseX+Xoffset, baseY+Yoffset+TitleHeight, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[1], pageOffset); + x_line(baseX+width-1-Xoffset, baseY+Yoffset, + baseX+width-1-Xoffset, baseY+Yoffset+TitleHeight, + defaultColors[1], pageOffset); + + stringWidth = x_strlen(titleMsg); + x_printf(baseX+(width/2)-(stringWidth/2), baseY+TitleYoffset, + pageOffset, defaultColors[5], titleMsg); + } // if + else + { + TitleHeight = 0; + TextYoffset = 0; + } // else + + stringWidth = x_strlen(textMsg); + x_printf(baseX+(width/2)-(stringWidth/2), + baseY+Yoffset+TitleHeight+TextYoffset, + pageOffset, defaultColors[4], textMsg); + + if (!(buttonFlag & ID_NOBUTTONS)) + { + ButtonStart = baseX + (width / 2) - + ((numButtons * (ButtonWidth+2) + + (numButtons-1) * Xoffset) / 2); + for (showButtons = 0; showButtons < numButtons; showButtons++) + { + switch (showButtons) + { + case 0: + if (buttonFlag & ID_OK) + { + ActiveButton = DLG_OKAY; + AlterButton = OKAY_BUTTON; + } // if + else if (buttonFlag & ID_YES) + { + ActiveButton = DLG_YES; + AlterButton = YES_BUTTON; + } // else + break; + case 1: + if (buttonFlag & ID_CANCEL) + { + ActiveButton = DLG_CANCEL; + AlterButton = CANCEL_BUTTON; + } // if + else if (buttonFlag & ID_NO) + { + ActiveButton = DLG_NO; + AlterButton = NO_BUTTON; + } // else + break; + } // switch + + buttons[AlterButton*5] = ButtonStart+1; + buttons[AlterButton*5+1] = baseY+height-1-Yoffset-ButtonHeight+1; + buttons[AlterButton*5+2] = buttons[AlterButton*5] + ButtonWidth - 1; + buttons[AlterButton*5+3] = buttons[AlterButton*5+1] + ButtonHeight - 1; + + x_rect_fill(ButtonStart, baseY+height-1-Yoffset-ButtonHeight, + ButtonStart+ButtonWidth-1+3, + baseY+height-1-Yoffset-1+3,pageOffset,0); + x_put_pbm(ButtonStart+1, baseY+height-1-Yoffset-ButtonHeight+1, + pageOffset, DialogButtons[ActiveButton]); + + ButtonStart += ButtonWidth + 2 + Xoffset; + + } // for + } // if + + x_show_mouse(); + + + BUTTON_FOUND = 0; + + while (!return_value) + { + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (buttonFlag & ID_NOBUTTONS) + return_value = ID_OK; + + currentButton = 0; + while ((!BUTTON_FOUND) && (currentButton != END_OF_BUTTONS)) + { + if ((MouseOnButton(currentButton)) && + (buttons[currentButton*5+4])) + { + + pushButton(currentButton); + + if (MouseOnButton(currentButton)) // check if still modal to button + { + + switch (currentButton) + { + case OKAY_BUTTON: + return_value = ID_OK; + BUTTON_FOUND = 1; + break; + + case CANCEL_BUTTON: + return_value = ID_CANCEL; + BUTTON_FOUND = 1; + break; + + case YES_BUTTON: + return_value = ID_YES; + BUTTON_FOUND = 1; + break; + + case NO_BUTTON: + return_value = ID_NO; + BUTTON_FOUND = 1; + break; + } // switch + } // if + } // if + + currentButton++; + } // while + } // if + } // while + + x_hide_mouse(); + + x_put_pbm(baseX, baseY, pageOffset, boxBG); + + x_show_mouse(); + + deactivateDlgButtons(); + activateMainButtons(); + + if (boxBG) + free(boxBG); + + return return_value; +} // char + +void deactivateMainButtons(void) +{ + char runButtons = START_MAIN_BUT; + + while ((runButtons < END_OF_MAIN_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 0; + + runButtons++; + } // while +} // deactivateMainButtons + +void activateMainButtons(void) +{ + char runButtons = START_MAIN_BUT; + + while ((runButtons < END_OF_MAIN_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 1; + + runButtons++; + } // while +} // activateMainButtons + +void deactivateDlgButtons(void) +{ + char runButtons = START_DLG_BUT; + + while ((runButtons < END_OF_DLG_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 0; + + runButtons++; + } // while +} // deactivateDlgButtons + +void activateDlgButtons(void) +{ + char runButtons = START_DLG_BUT; + + while ((runButtons < END_OF_DLG_BUT) && + (runButtons < END_OF_BUTTONS)) + { + buttons[runButtons*5+4] = 1; + + runButtons++; + } // while +} // activateDlgButtons + +void showDrawMode(void) +{ + x_rect_fill(DM_BASEX, DM_BASEY, DM_MAXX, DM_MAXY, Page0_Offs, DM_BGCOLOR); + x_printf(DM_BASEX+((DM_MAXX-DM_BASEX)/2)- + (x_strlen(DrawModes[CurrentDrawMode])/2), + DM_BASEY + 2, + Page0_Offs, DM_FGCOLOR, DrawModes[CurrentDrawMode]); +} // showDrawMode + +void showItemName(void) +{ + x_rect_fill(IN_BASEX, IN_BASEY, IN_MAXX, IN_MAXY, Page0_Offs, IN_BGCOLOR); + x_printf(IN_BASEX+((IN_MAXX-IN_BASEX)/2)- + (x_strlen(scripts[CurrentPic].picName)/2), + IN_BASEY + 2, + Page0_Offs, IN_FGCOLOR, scripts[CurrentPic].picName); +} // showItemName + +void showMouseCoords(int posX, int posY) +{ + char buffer[20]; + + sprintf(buffer, "%d, %d", GridBaseX+posX, GridBaseY+posY); + + if (!IN_ACTIVE_AREA) + x_hide_mouse(); + + x_rect_fill(MC_BASEX, MC_BASEY, MC_MAXX, MC_MAXY, Page0_Offs, MC_BGCOLOR); + x_printf(MC_BASEX+2, + MC_BASEY + 2, + Page0_Offs, MC_FGCOLOR, buffer); + + if (!IN_ACTIVE_AREA) + x_show_mouse(); + +} // showMouseCoords + +void showCurrentPic(void) +{ + char picBuf[4100]; + + x_hide_mouse(); + + if (UPDATE_PIC_LBM) + { + showLBM(0, 0, scripts[CurrentPic].picFile, Page1_Offs); + UPDATE_PIC_LBM = 0; + } // if + + x_get_pbm(scripts[CurrentPic].Xoffset*8, + scripts[CurrentPic].Yoffset*8, 16, 64, Page1_Offs, picBuf); + x_put_pbm(PIC_BASEX, PIC_BASEY, Page0_Offs, picBuf); + + x_show_mouse(); +} // showCurrentPic + +void handleMouseCursor(void) +{ + NewMouseX = MouseX; + NewMouseY = MouseY; + + + if ((FILL_ACTIVE) && + (!(MouseButtonStatus & LEFT_MOUSE_CLICK))) + { + + FillAnArea(FillStartX, FillStartY, + (OldMouseX - 4)/TILE_SIZE, + (OldMouseY - 4)/TILE_SIZE); + RedrawMap(); + FILL_ACTIVE = 0; +// CurrentCursor = OldCursor; + + if ((NewMouseX < AA_BASEX) || (NewMouseX > AA_MAXX) || + (NewMouseY < AA_BASEY) || (NewMouseY > AA_MAXY)) + x_hide_mouse(); + else + { + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // else + + if ((NewMouseX < AA_BASEX) || (NewMouseX > AA_MAXX) || + (NewMouseY < AA_BASEY) || (NewMouseY > AA_MAXY)) + x_show_mouse(); + + return; + } // if + + + if ((NewMouseX >= AA_BASEX) && (NewMouseX <= AA_MAXX) && + (NewMouseY >= AA_BASEY) && (NewMouseY <= AA_MAXY)) + { + if (!IN_ACTIVE_AREA) + { + x_hide_mouse(); + OldMouseX = 4 + ((NewMouseX-4)/TILE_SIZE)*TILE_SIZE; + OldMouseY = 4 + ((NewMouseY-4)/TILE_SIZE)*TILE_SIZE; + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawCursors[0]); + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + + IN_ACTIVE_AREA = 1; + } // if + } // if + else + { + if (IN_ACTIVE_AREA) + { + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + + x_show_mouse(); + IN_ACTIVE_AREA = 0; + } // if + } // else + + if (IN_ACTIVE_AREA) + { + NewMouseX = 4 + ((NewMouseX-4)/TILE_SIZE)*TILE_SIZE; + NewMouseY = 4 + ((NewMouseY-4)/TILE_SIZE)*TILE_SIZE; + + if ((NewMouseX != OldMouseX) || (NewMouseY != OldMouseY) || + (MouseButtonStatus & LEFT_MOUSE_CLICK) || + (MouseButtonStatus & RIGHT_MOUSE_CLICK)) + { + if (!(MouseButtonStatus & LEFT_MOUSE_CLICK) && + !(MouseButtonStatus & RIGHT_MOUSE_CLICK)) + showMouseCoords((NewMouseX-4)/TILE_SIZE,(NewMouseY-4)/TILE_SIZE); + + x_put_pbm(OldMouseX, OldMouseY, Page0_Offs, DrawCursors[0]); + OldMouseX = NewMouseX; + OldMouseY = NewMouseY; + + GRIDX = (OldMouseX - 4)/TILE_SIZE; + GRIDY = (OldMouseY - 4)/TILE_SIZE; + + if (MouseButtonStatus & LEFT_MOUSE_CLICK) + { + if (CurrentCursor == CC_FILL) + { + if (FILL_ACTIVE) + { + RedrawMap(); + //x_put_pbm(4, 4, Page0_Offs, FillPic); + if ((FillStartX <= GRIDX) && (FillStartY <= GRIDY)) + { + x_line(4+FillStartX*TILE_SIZE, 4+FillStartY*TILE_SIZE, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+FillStartY*TILE_SIZE, + 255, Page0_Offs); + x_line(4+FillStartX*TILE_SIZE, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + x_line(4+FillStartX*TILE_SIZE, 4+FillStartY*TILE_SIZE, + 4+FillStartX*TILE_SIZE, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + x_line(4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+FillStartY*TILE_SIZE, + 4+GRIDX*TILE_SIZE+TILE_SIZE-1, 4+GRIDY*TILE_SIZE+TILE_SIZE-1, + 255, Page0_Offs); + } // if + + } // if + else + { + FILL_ACTIVE = 1; + FillStartX = GRIDX; + FillStartY = GRIDY; + //FillPic = (char *) malloc(MAP_VIEW_SIZE*TILE_SIZE*TILE_SIZE); + //x_get_pbm(4, 4, (MAP_VIEW_SIZE*TILE_SIZE)/4, + // MAP_VIEW_SIZE*TILE_SIZE, Page0_Offs, FillPic); + } // else + } // if + else + { + switch (CurrentCursor) + { + case CC_WESTWALL : + map[WEST_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + x_get_pbm(PIC_BASEX, PIC_BASEY, TILE_SIZE/4, TILE_SIZE, + Page0_Offs, DrawBuffer); + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pbm(0, 0, Page1_Offs, DrawBuffer); + x_line(0, 0, TILE_SIZE, 0, 0, Page0_Offs); + x_line(0, TILE_SIZE-1, TILE_SIZE, TILE_SIZE-1, 0, Page1_Offs); + x_line(0, 0, 0, TILE_SIZE, 0, Page1_Offs); + x_line(3, 0, 3, TILE_SIZE, 0, Page1_Offs); + + if (!Pics[TT_WESTWALL][CurrentPic-MinPic].pbm) + { + x_get_pbm(0, 0, 1, TILE_SIZE, + Page1_Offs, Pics[TT_WESTWALL][CurrentPic-MinPic].pbm); + } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_line(OldMouseX-1, OldMouseY, OldMouseX, OldMouseY + TILE_SIZE-1, + 103, Page0_Offs); + break; + + case CC_NORTHWALL : + map[NORTH_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + x_get_pbm(PIC_BASEX, PIC_BASEY, TILE_SIZE/4, 4, + Page0_Offs, DrawBuffer); + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pbm(0, 0, Page1_Offs, DrawBuffer); + x_line(0, 0, TILE_SIZE, 0, 0, Page1_Offs); + x_line(0, 3, TILE_SIZE, 3, 0, Page1_Offs); + x_line(0, 0, 0, TILE_SIZE, 0, Page1_Offs); + x_line(TILE_SIZE-1, 0, TILE_SIZE-1, TILE_SIZE, 0, Page1_Offs); + + if (!Pics[TT_NORTHWALL][CurrentPic-MinPic].pbm) + { + x_get_pbm(0, 0, TILE_SIZE/4, 4, + Page1_Offs, Pics[TT_NORTHWALL][CurrentPic-MinPic].pbm); + } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_line(OldMouseX + 1, OldMouseY, OldMouseX + 5, OldMouseY, + 103, Page0_Offs); + break; + + case CC_FLAT : + if (CurrentDrawMode == DM_FLOOR) + map[FLOOR_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + else + map[CEILING_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + // if (!Pics[TT_FLAT][CurrentPic-MinPic][0]) + // { + // x_get_pbm(0, 0, TILE_SIZE/4, TILE_SIZE, + // Page0_Offs, Pics[TT_FLAT][CurrentPic-MinPic]); + // } // if + + DrawGridTile(GRIDX, GRIDY); + } // if + else + x_rect_fill(OldMouseX + 2, OldMouseY + 2, + OldMouseX + 5, OldMouseY + 5, + Page0_Offs, 103); + break; + + case CC_ACTOR : + map[SPRITE_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = CurrentPic-MinPic+1; + + if (DRAW_FROM_PIC) + { + DrawGridTile(GRIDX, GRIDY); + } // if + + break; + } // if + } // else + } // if + else if (MouseButtonStatus & RIGHT_MOUSE_CLICK) + { + switch (CurrentCursor) + { + case CC_WESTWALL : + map[WEST_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_NORTHWALL : + map[NORTH_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_FLAT : + if (CurrentDrawMode == DM_FLOOR) + map[FLOOR_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + else + map[CEILING_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + DrawGridTile(GRIDX, GRIDY); + break; + + case CC_ACTOR : + map[SPRITE_LAYER][(GridBaseY+GRIDY)*MAP_SIZE + (GridBaseX+GRIDX)] = 0; + + if (DRAW_FROM_PIC) + { + DrawGridTile(GRIDX, GRIDY); + } // if + + break; + } // if + } // if + else + { + if (FILL_ACTIVE) + { + //x_put_pbm(4, 4, Page0_Offs, FillPic); + //free(FillPic); + //FillPic = NULL; + //RedrawMap(); + //FILL_ACTIVE = 0; + //CurrentCursor = OldCursor; + } // if + } // else + + + x_get_pbm(OldMouseX, OldMouseY, TILE_SIZE/4, TILE_SIZE, Page0_Offs, DrawCursors[0]); + + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + } // if + } // if +} // handleMouseCursor + +void DrawGridTile(char xpos, char ypos) +{ + char TileBuffer[146]; + + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page1_Offs, 0); + x_put_pix(0, 0, Page1_Offs, GRID_MARK_COLOR); + + if (map[FLOOR_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_FLAT][map[FLOOR_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1].pbm); + } // if + if (map[WEST_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_WESTWALL][map[WEST_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1].pbm); + } // if + if (map[NORTH_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_pbm(0, 0, Page1_Offs, + Pics[TT_NORTHWALL][map[NORTH_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1].pbm); + } // if + if (map[SPRITE_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]) + { + x_put_masked_pbm(0, 0, Page1_Offs, + Pics[TT_ACTOR][map[SPRITE_LAYER][(GridBaseY+ypos)*MAP_SIZE+(GridBaseX+xpos)]-1].pbm); + } // if + + x_get_pbm(0, 0, TILE_SIZE/4, TILE_SIZE, Page1_Offs, TileBuffer); + + x_put_pbm(4+xpos*TILE_SIZE, 4+ypos*TILE_SIZE, Page0_Offs, TileBuffer); + +} // DrawGridTile + +void RedrawMap(void) +{ + char row; + char col; + + + if (CurrentCursor != CC_FILL) + { + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs,DrawCursors[0]); + else + x_hide_mouse(); + } // if + + for (row = 0; row < MAP_VIEW_SIZE; row++) + { + for (col = 0; col < MAP_VIEW_SIZE; col++) + { + DrawGridTile(col, row); + } // for + } // for + + if (CurrentCursor != CC_FILL) + { + if (IN_ACTIVE_AREA) + x_put_masked_pbm(OldMouseX, OldMouseY, Page0_Offs, + DrawCursors[CurrentCursor]); + else + x_show_mouse(); + } // if +} // RedrawMap + +void RedrawCol(char whichCol) +{ + char row; + + for (row = 0; row < MAP_VIEW_SIZE; row++) + { + DrawGridTile(whichCol, row); + } // for +} // RedrawRow + +void RedrawRow(char whichRow) +{ + char col; + + for (col = 0; col < MAP_VIEW_SIZE; col++) + { + DrawGridTile(col, whichRow); + } // for +} // RedrawRow + +int SaveMapToFile(char *filename) +{ + int MapFile; + + if ((MapFile = f_open(filename, F_RDWR)) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "New saved okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // SaveMapToFile + +int SaveMapToTOD(void) +{ + int MapFile; + + if ((MapFile = f_open(DATA_FILE, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x3E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x4E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x5E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x6E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0xCE0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_write(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "New map inserted okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // SaveMapToTOD + +int LoadMapFromFile(char *filename) +{ + int MapFile; + long numRead; + + if ((MapFile = f_open(filename, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "Old map loaded okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // LoadMapFromFile + +int LoadMapFromTOD(void) +{ + int MapFile; + long numRead; + + if ((MapFile = f_open(DATA_FILE, F_RDWR)) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x3E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[FLOOR_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x4E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[CEILING_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x5E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[NORTH_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0x6E0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[WEST_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_seek(MapFile, 0xCE0A, SEEK_START) == FILE_ERR) + return 0; + + if (f_read(MapFile, map[SPRITE_LAYER], MAP_SIZE*MAP_SIZE) == FILE_ERR) + return 0; + + if (f_close(MapFile) == FILE_ERR) + return 0; + + MessageBox(160, 100, Page0_Offs, "Old map extracted okay.", "", ID_OK | ID_NOTITLE); + + return 1; +} // LoadMapFromTOD + +void ScaleTiles() +{ + char i; + char j; + WORD color; + char scaleX = TILE_SIZE; + char scaleY = TILE_SIZE; + char picToScale = 0; + + + + scaleX = 4; + scaleY = TILE_SIZE; + + picToScale = StartWallPic; + + while (picToScale <= MaxWallPic) + { + if ((picToScale == StartWallPic) || + (strcmpi(scripts[picToScale].picFile, scripts[picToScale-1].picFile))) + showLBM(0, 0, scripts[picToScale].picFile, Page0_Offs); + + x_rect_fill(0, 0, TILE_SIZE, TILE_SIZE, Page0_Offs, 0); + + for (i=0; ip?(DsDa?ad4AIY8PYZVXo@XBV@+^u?| z#ggf9gIyRHWNx6hfKhf1z#+cl14@|105xM?ODS_|fF}}Q7-0-OWUbAGmk7xH0;=@k zTzqKMA4qCpyQG8^!^e57g13a@fM$B7gZ~Z1ZB~MUR=TuuHpuK7{@g3(Aq~S zqXm@n#Z4q+J&A3zy0jI8v7RrPNrVkNHLJO;wK5XL^=-m!rIC^q#hA9cAX34cgs37X z4MZhC=1EP*D?GDwACPW0&f_8}Unb>Ic;Sa+)$%^V;BuTt6s$%J#5MSXh{bK*Nt=?G zr5seAYp4nB5Khg%#fUu#M~G|pjO@5R&81S#wKgp$c-4S$Q~`M zSo{+4^$_0`cyJ4oxJw&g0gK4sF`gg~Dde|ayr>il*xV`WX1-t*X(F2rX6t{_ME$oO zsRbtOxMX)zS*ytDVm7^zMG+gYec~egA~6$E4_n(j!qRAkI-Ae4PvfWG6RR G<@^gSt@zOZ literal 0 HcmV?d00001 diff --git a/MYMAP/MAZER.EXE b/MYMAP/MAZER.EXE new file mode 100644 index 0000000000000000000000000000000000000000..3e044e522d56081ce0ce71b423967ead3b8c598b GIT binary patch literal 122120 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 z zXfK$8N8!RCi~n|43v7zT6))2$mZ zo=Q{FTJf~@a#}Yvt)F4htX9VU+27-aJC^Z_>(6Enc+a^avV8VW{H?96@OwOHch238 zn_J45A~M=3>0LFH?i&$$(^xNA#x5mqEIr`yh3A+B#S%HkT29Z#VowW{N}Jjy>|V~f zTwBgDZFx1VC+Fw$Eo4ssqc0H8adZrkv_$biW z)tLKB)Lu-Uw$r#>vn|TFgN1779;dxSm4{}HHXgWQer@`LV$Iz0Yp>~7ibPsB9Ea6a zv0U;r-igR)Cn7TXN)hQ{8<_nz!~jjdng9BPruvm=D*Jm+77^N4jd1NNLwJO1MT`_J zzk1m|fAR_rcZJ&Kl_d7}q~xNXb1sw&mj6uH#A+7FX{`)B@fUFy&fWfK6<+Jp-KYcg zRf?KT@y$Jxlb?GO?ZB9N-I%?lIK_4i_i;WIwfpS6**oTLpL^`_9J680RO9-EQCYd? zb927vm}@ipPPY{`Tez0udo*{)+`QJU`)6awv^FYhEnYSov%f47KDTUkw+${z5Bk0B z#H9!6Z2B#`-ECdIzgfO-wMJjSzzByU?zR>$>=<78lVhHHbstuDTb(6^`yRf%)U>p? z7(VX1+f3^w?aM7JpR|$U-eSbj0tEDuvfvQp5j=bE+`L7PP(OE8eVTg1bx}z6qaF!( zWZ-^8u24>Nd)vPlkd6EBhkzbYS&!hlDQhi8fNMA4g*$P_oPPS(Lqm!l9;ps zsn=bzyZ0z{4_1RUj}XUIOue(a(=)2XAwCU^)ZyAgCHFZ~{!F9TX6Me`ZqJ)WL3+@& zjG{+siTnDQt=!h0yT9(8R&HOA2i$H^d-bD1%`uj9QbyiRWyb4hJ@(G2wJLGoN&Ix7rA&EvG5j z1d=^x`L7jYc4XJdfc`TJ(a@$hMpixX9y`@o>}I`Rv`0o~h_@^}wB6b6R+`0j)Bfb3 z!g;0`T=%AUAeo9t^s+y-U?Uz61$mb3UI(mtmx`xaMtg&3m8cxqnp zR}!k>D=%#DahsX<6+0hnlWFGM0##Ht43o6J0xqEZ^h4dtn{8o0e>#hYoHAbgRny z^yGmVs)w%NW+~V_G&TMy3U(m{%Td>Crl@NfhwKW@IGG#(6(2w*4%s}Q<_y0dq2~P= z$1<|>=d+AaD()b%+cb{KvgFsE;BVZyiMj5{cnA-NqOOs?uR-4hd1i00acAx|JeH2< zp3XUO?)G0=hGLnyT#1&ekd}iBk0!a>0&H_ON>%n5w=2adups*0_s#Ro_06AXU94-? zr|=N+b)e9$n*A*G5F4P6uir;cZs?b-kC?mnn2Aw2?vdE3bx`nE^nwR$Hd(j(+B3kh zYwf;b#wp+ivlexnbnd-PV&CJw#k~%XANbn5@idReE`OdDFQ;MO-gpDfwcFN!Rk>C7 zkKF6@ukcjrZY{M)OIA0rbdEi59OH$ej#E@)(5yzb!mY*3a#lNVCF4QsDmlrr@woX7 z#N5=k?vB5-5I|Z8*0Up{wL=T4@mO*dTkBceGEHO2&G08cVcvC{u_xIe_BT2*{<2M_ z&!p3-*R?4wV$ZA=TEPjMr`VI$LW_@2Q7xS{mQ*-SyPw-%#lhEfe|JNFi+(*L9#&h9 z(^qkl9E>32Y1W=)uAEwQGsPXhNXf?I{+Fozsk^=6Q`{UTu-wzOTe+8iLN%0Fut+2Q zd0Gb<`<-Cz(=92mo?t^8%+DOp$Xp~-Vw~_Tq{*RgAtL@GsvsjCn`CsOMX5Xa)a@J& zm)!HPl9l?G3(u595U-N`LyzolF1l^Tx46_4pu#^41Zn+QS_hssUQU~)?v6L&$0P>b z`c9TzEC;9?+zN)OHQm@EFI`|ywQ5>+TV+rdc!R`qf#`c zNYNSHKHFD5f(}>8f&nxFEIBU z<_?lrqM_}cM$z^_yJP*AjMPzLZmkwU{%tYZC@LNR@|R8I|mpMkNI zOLCtLN*|EKZbW2Cfh%a#!&s$1PApt56G_Z-W7|SUe#Ox@-N=>Pts@Gp%^yb>*Kg#% zrHOxnwMkJi#toR}uC(cM+-z$Vy84m-mgTq_Qj~3NP-yjfY@J?c-CJzEP@L@;S5cCV z1oXIBk8b)47tpW9)Wu8a7p4ZcSrFzzD6t=kcE3^4?w$25_U~s$i5>mEp}h=nFuLhw z(EXQqz5E!1wjVz|{O0w+eZQsw+~ygrADL@=e_V2%J}eZ$hYtpC_^Oh2sR(`?O#bhF z-&T(AK4Tquyp)(1@}tXxeDX8r%@=;`^Y+OC@{@At1%BKz?l^#(Etpw^zii>gtg~+EYHPx9>Mb47w#Utu2X8D{v5sc8A=o|J zHadMde%aK&XnHme$asj*oI=xxu*aNMf3CzI_OSM}QbMLH*2;IuY@%>#}C?%2F${?%>4^gG< z%5UjVKEc{fH)?FoFA14V4fU^=y~bE9xqNPK;ChprSX#Fjbyd+DyB?@w)X}$U9@X1D zdvw2Utf;3uGr!KFUTjHZ!J|s=0oHEAUK|2!f6e!}gf%?-tJC<9()!<313wfld6o3D zbEfHIUYzty>bYl4qrP{FA+7^_069OO`(B^}+TdQb@^s4Ks@` zFsg=Lyee$*sgPi;_Yn7e0%Bk4P%4Z)f16b34cL(_Hr%ccg&ellqqbgGzqUI2?Lg9FLaNiv4?fH^);82@TK)vH~N;u^!TvF(^2rvlP`FcI8*z>N%DBe{AJOZ{y^D0 z!OJn_+s0UNhay|KCr34S=0+7`P*Y*y`~@(oKu0OJO6MBZhLWaKX~15LWyy+`Lx zT@o_>#9zJMRwK|l^o~A{*x5ayyLBG^=#tx<@kM`y{_f74WVh};dRW(9#E(56;lFj{ zWok(QcI%FPBwc8g^;odROi}vkU%JmRyFt5+FL&2}O;%)$c_JVhZ`QQ3BXS|8%aE@;!O4ct2A9_p?^;FgAg3D$}C>3+c-bm~%ZoNlWt$q)YEwz?6c zh>h~xJsDT2`qM`nJ0+w}#a)7t0ZwGL{^u6{$RQkJr@2~RxV@*9TAAg4j){Sh%}M@~ z=3X<4tlMtQEJ_`PL>F8Q!)cz6()$-#9?IrMy#FK1d2LqzN4d6f-tf1m#2@8$#s!+C z(W=NJF}0L@u$Kj!H$6I8&)h6-Z=m~X|M_0CMj5Hh*%>gz7_GZ+_M8=G zg!$8U<(~=cyJ-vkr_1o0Hm`rWEWK$Ramz9lX4MKAt#nJPJI#>Xtf7zfBsR-7j+ygY zE|?}|6m4YIk8fHYOUdU^1uP4H9__rl&7(9%Tg5H=-Alhwp^I~<%e;1h;-Y;__;ESx zxo#|_LzArHY01`{n`k`6^*OUd2zJMUS*V;*XnpbSyDI%o`;oQIEtG4{6gPD7*1U5) zbMKAow@02acuyQZb$?HsT=&kNI91+k>w`Qedtn|}B~EpXlU?JutDGE+VKYmP$SA@< zeun}1NAAzxuysSfJMf0B146PaT$HS<3^tU_y77kXr9F74A#!@tNoAJUv^c}=I3s55 zxT~zb52-*EFVK6tbGiXl#wbwI3wSZROQ+5o<<0o{ZpHLH`>h2Rzw!({!gmy0+(=7Lz*sWM&=8>8AXZ~ut zG12v98r$X`p_x|3_(y3K)7tU0DRNp@6?(DvC$wyKA)(WT!5ifT1uzI6H15A(JhMRm z*qMH5ZLgm8f<7XPZ$(U|$(CuB@id;&pk`w>B_yTp^ark|lFCnrnqJg!WRmBED%0;b z8=s_22ugi;bAtaSRzsG(QoPbH(||hTcGP~`P1`VAVhyjUv}ApX)}(Vz6lG1h%`cQZ zOR)B}pDm(t7r;cnu&}_|AHOuUBi^kE#Tf_iN!Y3wD=-Dtro{)LePn#+7f=jV`g4A! zg;V^^weMWmoiA)x(2Az087cN`)$xD%Yz-Rw)9Vs!|v4eX9h8 zeN`ng?At0HVQ7)QYW@exgs_60rsP{K(s#~29hPPGXl$8%BndkM*aVR=%`alzJ7>Z) z+slnzl0)jR(Aey3%lUit=LQ>D?beE_MeK=toOS`2-%-hz)OzgUql8YKy9DD=t!7-U zpB5d%c8>Sy@D+<#U!z`Q!?*?CYgwTuLLbey6laYaW+{%H;A8f~Ecc=m&-ZM@Iy zQ??-y>un-p-3R#gt^H5Ed}tE!MiDRL;>$X5P*eP&e{wr)tEUqORkwSpBI3zMMfk-> zIf^!CE`DZHuw63OwUvkW*@qWd9!Sa3;<;ILi7o_M9%qdc`Ab;AE))HMbpE}{Li3`F zSFbZ|X~05v@LdY{vCaMI6rizA|oKl{P-Ez`$) z7)%JHA!p>6vF;F6P_P|cHat7LC3NZBDSyZ*{Uh>B>Tb7$E}illU0$d=v^iz}JaP6% zl~u{7+_fm!<&_**u*;C#mGZLX&th?JrOdW0h)6)PznRE!W+7d7+47<8cF?p(l^ML+ zy&N=Q(^%*(S1Vnn$P|P-VVYTpkE^EqRDs4(AhOX-VA*3OMtK?XO3pU3{IkM3g;}Su zkG)tFp7h@hWR12bN%OyQE4V#h?8R2Y1J)8dZMOAbF+GMNGDa5^o@{USw4TUE$x`ZKK$KCc^`R|BHK!*7<9*OX|sb>6$)_DE)rp!9Tx`%`f?m>{@GF*9XJ8 zox}R&!@qs0XdfnLo5TJHn;G_2*dcr#!oR)vycBi||NhY5ODdfTFYbID5PH&bRyF25 z!u}pKrWe9WhctIqJ{wL%(YNy&ABa-ik+d%l-J@{WakR?L6tc(8gRiV%LBuQgeT$O65}BweQtN(?|$C>Pj|(`-=nHW zQuvn@J`1c}J|f_C-B(h0uAyI$Vn_;q(bw0D{L>>Vo1SVkAsKT8mS^PgBPl;r%3d0t z8@@jLhw!}ctKr{=u+Wp(Ys|twSWJJQdexiZC3P2Fyx0`3SN#n}g~%wfH|W)-aQjy> z9+dj|mFd-mKY~cX@f@{ZqOxLJr`@SEyyaqu<*`WawnuHiINO81Yslz5YJHYGlWrBP zmqN>waz?NRi#lC+++Hg#R+x#i<|G?Y0T~{+vac{NH~;aSReP|#m^I&n0Yx)m^TsM+ zGJd@aC+q}~tY2WakqtLwNb+s;1yQOOdrFH<>)>TG*3YOfv-(u?^*{Dt^uZr?AYPw!qm_ic`K;fgO-YE!9Cr8Sk-SK3nPU%fG6 z*)`s09rcGt=AQmwq2=MFq>>(D^_d9d6Z^bpC3Fh*4_U!jx(9|!XHzVVDlj@@8CNmXyB+@tJuS?Gy9NlhcYa z(}xx>OY%&Prg6NQdGcsxp4Ap?_IT5cI66=DW0`puY;KvS@=CwuuZG*%%;@8=$z5{L7Ia<>XM@GT*+Lg=uRfvyyo#-zG9o=4IyHre%z3 zYs6%s$Fn{2=+6XrKeatG??Dd!R&dNNGcKOVJaykzC;d#$Rs2bWn2Wj-f>qRmUC z>%rU{iezn`W`F45O>exBTTF?*19W|dW#(mN9!Ie0_z7UMWFKs#gC*aUa&;;{Gw(j7 zaf=d-+H3R4%*)>>Awf$0icXF)KSI)v&g(f(ANqJ%l2>vyBm)P%p7TFtI{vM;qgnpj zl!5#-x^xP4i+Vna)Bh-<%!2sG&7tDFn|eOB+j`Sy9%>5L@*Z0{Joe1YO9Vc$41Ih@ z$J5=5^eQ@|zdxo*r~H>hkegUE&V|$&26gVuJRNWMOx{Q(s-BEq%r5#6>Nti_!HzLh zh(0_|=pI}UuW_^VaMyTlJyM(zSFDehx-}8!&EZY7Gs)idElpL%r@ByO7RPg2KRgL` z%bAuq>C?3F+}7dvdAQcMcSHCDLe-|eXcd^!^Re~q49fWIqZYR z26Mf>+!1J(d-;~u8@8yJRi_id+fuh;{oN7P}<#))K+ZB~-_ zn}%%tF1enadAw-^%RC(&!9I@05Y=+YqPxUg$`ooetJyR*=F-Y&qzez(^xWGz?@H&4 z1D5j`oRg}4(JX%)edl)Pt(g&>XYY^k*I4I_gLJsu&b~(Mr2gyGVocJgL5YJ+Eu*4L zHBBwYjGdG;V%TuAsm@C;)iF6Pwn;RPie_;m#*Y|0#55!+X-ty4vH7csW0FP>8f6-r zG-g=RpwTAtkfhNg5(k+_j7fCY4Uc~%@+{hr@{g-Mnzw7$rA~Ca7VZDxT=JzyodI?J z?aujg!^HeMjPdzl>_)-A1@w7-m=X)>Ux5OjALfO>eA|f|pIe^#{|;k(ewY{k9mePR zVH*59OrSkXOqul)Q)c}c{W- zVVX%tR zWrulTKw0(ktT1KO&$GgmRX@)PQ&#;vD@gTy(o>D*04fB-xd2X1e)X#InJf(h~8>X!KDRWE_|J3oDp3bwvlvO{^ z3iCw$aM$Oi^F;l)x;AgwwPWWp8(j0Jwzuboc}jVn9VX!^>G<(yhk4purqXl5pgd3L z?Rh$QS~~nWdV5+JzyCp)N+n^+Y6#t)qBmZmga1w#*XM+3@sxBN^;1?lEuRv`Q9osc zdF3f#o~P^XtvYvY)3SLxQ(VW6ol7QM&r9cN?b_A#p;wG!`;8IDFoC-D0JSfR*8e~iyGQl)@&{&fm|G3wZ2AN+Q{?Ed;NgQDwF=*6?$rNMz=Dk~W zj*gCItvfeQc)3kaeH_=OL)Xsn(4+ok985~);Uf~GhbEd?(yOfNpqhgR8Cm$?8m92U ztOJrGbqzL+898VYvPIgc8%O%luTfU)iu=n;$5DgzERur$a{XIChldhf{pAN+5n2ez z@j}a_48?cs+@7_h3TV+Wt`|FRU<0IPyoFdUw^NuOD}SCzKeO{*e|J^gwWco3y{>q# z^EvIu%3bzX$=6NBIQfqy|Hh~JiG`ob1~yXa#e0jna(^YA{11o!%ie!?{d-v7nvN8P zQ)nNSDD~t0#eDfyS)`msopA=1ET} zN$kH%az;8Y>>*+$gs_+8U%q0cGty<3zvtQ>VmLxPr8Fg>|6Uq|_xxvguUXzRe1_?M zM*D9i%?y{GD6ywY?9)nI?@6CGT?RhYC%5>f`+n-X)%Tq5D}LSm#`?|j+u(Q5ugEXX zx3{mO<8gjEHQ?01|Aq#*tTImzH-o1naE8FsUzXS`(~5y-yyhk3)ZQ@mreW60KS!<^ zZVmXL=g|gRCf<|Zj@udb>EH`~?{z&`Z)rueXJ<<4wDUbMDEp~){ z^6ELC1)cZDe3f+DnEuKy)xUWCO5oDo#~N;({6Kvtes{!YLofL+>VCNXH#op#Zihdj zzf8OyysZDJrrYrQ=;_V3SN?d=S?~Fsa_ek-TuPuhxIY+z44d;B>Q}Qi}hk z6e!6vq*+RFNKl>H0|)-?!v7DDcJ}}KRoizuI};e=`WCy4_f&Qh?{Bk5c%Q+PpcvP8 zm?z$6vTAsb8#8*)h(s1Q#J*DHSipL9lBqW9IDSad&{1P1ux^QiODF+D8jMs-qsENW z2R>tyhP*an9G0_K7xSRkMw*5WN*-lq@fb&#X)H5#48~^m)v$)9@Nrn3$BqY#z)Z~< z`?&>UljB%y#dwyG-I|4&+gKI_v^D*(tsS$Rd2v#9^OnmtkBwThe%D7MVh??`ueeRf z#2p7>&&}|bu;hN@iPu>6Mp>5h1om%dh@A27}D=M5{8DHKldHOrad=3-Mi?>um4crxv_U@RAza0p{A*s}Wf*Qp@qjDCKqpO34DpP#p%n_ua5Ha3awmvOHRN*roxXu`es_uFVFttFdj z_F*=S8j(11$Y6a9+5QU`FJ&Y~UGz^fiMkIt^SVb3mJjiu{D1Y&Mrqfe^WCWdrv{uF zaB9G*0jCC>8gOdBsR5@3oEmUyz^MVJ2AmpjYQU)hrv{uFaB9G*0jCC>8gOdBsR5@3 zoEmUyz^MVJ2AmpjYQU)hrv{uFaB9G*0jCC>8gOdBsR5@3oEmUyz^MVJ2AmpjYQU)h zrv{uFaB9G*0jCC>8gOdBsR5@3oEmUyz^MVJ2AmpjYQU)hrv{uFaB9G*0jCC>8gOdB zsR5@3oEmUyz^MVJ2AmpjYQU)hrv{uFaB9G*0jCC>8gOdBsR5@3oEmUyz^MVJ2Ampj zYT&=1frp*FL~$r%4TQT?n{Ae-N^~H^0=Cn`gVDb;jqGQg*xyb6i190)H}xM5_~JMj zMR6R5qR<&AZV-jenCL;*70BxZDr6)99a5AU9OUXWoF2OW1Kk5bl5oz)fQxy!YY#{szZ7cL_tOo)PPJSs0k@1z#)GugtSE` zS-wnA8?uU^4y1^H&TB14iloC)V*m=B6kDHM=y+cJoDe#5H-vOd2kCYs&`-yOvXz(c z#m5hC4Ouf5PtXX0!}b_!44F;P1TvSPDQm@kA+6)6A3MYXVxWGdIg4WlsUBLemh2Qk zOGqQChd6R2Xa$L(3WmY@$Ln(DkSq#;2+NPmLN7IJ-=AQk2CC=YlWC7VJp1BE_E@D2(+H~=sc`j9ICWpP2P%I(0x%cVa-k~VUDU>@NWeVQSkLN!`MBd_P{Yas zROW^{a9PM!pi_%h1Kwkw;HCw<&pu|K6D(rO*a3pY>@(Iv0(`($v6eDm30uy7PykEW zr|b|xCR>UA67V70$fmL_DjM-d79#|uo7^e;8VZ^ z8L$d)n&2})9|f=)@HW93z&wJ_*>|V|AB}whs7oCHRKz!!x6c#=Zr-Mz95NiQqfH zD-vKUAdmyT2b?1K0jKpESh~i31jG?+1FR?b32>Ak3!q7W?TF66R%-z}*hRENKsLL8 zm;gK3c{Wr6>|!>?*&dDU223N^1Nf8RXTWd?uorNi;1_lWkBX}r`xTHx@EhO`!SDF+ zmjHiId$ypF>|+n;foEVj0CZsnmWwlpRc0`-{eXr92LL?@4g%gJI0RTma2T+i;0WLX z!BK#l1jqx_A~?oeq%O>4V8;RH2~GgG1ULz3O>hdZg5WgZ0Kpl+O@gz4>Kt$m(39Xi z^4{bVWc~u6bLD;pC=Ojp1mF@t6^D%MGGI4>6;N9SL!50Gf>}y8#$Ya1-zb!7V^C!EL|Jc{LI>OfOruNp0VxCz z0BD)6Xq5~{HUl03W)eIGWDpbq-X$nT*54!0$30n4f+Y23Ii7IgQbl%_BM^3-bj8Nk$e|4p31t zuy}$>aA{2t3}{0T0%%KMf}i#TmEqEnAQaGvpbDT1K^UMLK{%iXK?I-|K~+E>f=EC= zf@**P1l0k92%-S55!3(-A*cx$Mi31cK~M`YlAtzVG(jD}7=jqU8w7O$;|S^jk_lb_ zOdzNam_+a*;7x)CfT;v80a6GW0;Ur*0;Cc&mfYA3f+lcDBWMc9AZP}dLl6sim!LUd zK0yn>LV}i1-TMS_fRzD&R)9|l;-x&cil8-IJ|}n?E?*F|fyiU>iXPT*@No2-r@LfJ-|FIss<@y`fEqQiz$|rV#|V<8t}ML@U_5%>SycfOqy!ci379B#V1YFN zlaP%V^ef6_X*CO+0+%=85|{#*LRlr43c#q|msyaFqGC*krUNv%$!`Hvf>flgUwRur zhkx=JC6|n)@D47KXXBGF(-CTx6u|t^^YJJBkPGF+Ee-I{kqtfd45iOc>wA^9;{8W}F8<27>vH94;Mq#>zEp`F zC0K-*uMjMTpBn@p0B#a20o)>3icq%+G68=QdKF#e%44K>=7Q1{By*thx!7b*YaA)#1bh~sY|J!b?~DXXFWhK&Xn{-3#gg_w2Ce+|$zzX_mgelt25y^UGmQquTKvhfXE+@MV3w}6tS zRicFXaM3gNWT?_h^WaC<}4nHE44(Sq2A#rJ&GEu-`JJ zE~S1-q4ZLoG@IR~F69`qq4!#jBFo36x%S)h1TwGRl}Ds^%ZfQqnrBbF6rP#G`S$MO zBx1f!cfl!u-W8li4eDu~0Tj}uvyP0NlNPYg&>QpfaJfg9sHdeO%NGE8FL4o|SIQ-T zUInEkEiHR##wZ@WKO`5uKfEk0v{%zPDb23cOK{P(YDLBAG3QI~vEGz=>7`Q7rNK)h zEKMR^nq_Z(Pd3P-(j5Jgb_flCUfN^nOW40Kp(_IPASec`B4GSWOtb(J;2Z%5JR}f+ zS80MN170Uk0P_e`z()icz(`Y01E4d33!o=~5wM8B6|j`R4e%3zJKzL?2jDb;C*U@L z7l6}5l~VU3@CF1CP@+u;d;pUie$pL&<~#g+LqH|H?eHULo=fo<348&81QcOC0`feT zzz;672+9FIB%lJWA@B#>boeQB`0=7?GWn@UP#!RXAOP?tK_ItxXgml&w0-!#VH{u(aOm*56(37Asa`-wy z6TldPXIL1T!OtgD-LZhx1W(!=n&Z+es=*e3xdbf%pA(dtBjVr^OO?_J(2AhcKoJj@ z@5rS!U>iZH$>L?WyhsXf187W8YQ%U2F4M{7zhcd33(xOSrL+SqAqazh;%J%^4(Lq~ z0k9BM1*8*10zM_E2G~ka9dM2y3gG4kr~wEgs0nz5AR5q}pcY^(L2bY+f;xZ=1Tlbv z1a$#L1oZ%sGz%!5cD=w2|AYBgeT3>j@%+DSBK9H*`2V#T*-KF7`!uC$;DCmJCFIf( z#i7oeCjj(YuMT4e%o9 z1JIvMeF6G2r5`|le)R|FkG4|7-2nb0tg5i!4Ft3$7zF4<@G4+1!E1m|2nGYbA{YWV zLNF9?mS7m5mIN3Mc!^*Hpe4cUfOZ5U0i6g&0lE;31`H=i1dJyb19*pEEMOkN8-Vu- zk^n0R#sSt6m;qlCBm*`ROyE1wbHQxr4%kL85palL62M9@8E}=LNZQE?3EqTDTQW9I z0lY&n6)=Zj8ekzo3ShazPoBfiWrv>|4nKtil$OK+l$Jt3X?YP$=Wg~oeG7G=w~bVQ zUX{5d;+T9|RP$mEa@5p9GWyCxbR6p%PFM9t0HXZGvTh zjRfR*2f=c{Zh{qnT!N1QUIOq5Ad+AuU?9ONRIc91dZ9~prrt*H zWd3gm^*P#@p4JygRPWH%0`v}T9YF8U{#)7juSB>WG3(m+5}<42KLEWwZvg0b!A5|t zjjsTD4!;J_2%m2P&}t{&44}b3{{}z{nEYFSUWzRMy%gU8^ioi9^lo`8Ku`U9fS&pf z06p~|0eb4&0D9^_0rb?f0D9`%0eTWoE}HB_bq}YO`Q+-!E?nwDjqS;0lpT1qEu}|W zHeeaS9)18ucr2Ry3|K_q16WP47jTK-7r@K3urdYEo8VVKBEfF}3&HPznFN0T77^?N zd_<4~SVNEt_zwXk@eRR#zz%`~fZqrXp~$+%4m-N0Bm9`%r4;D7tSghA%epd;0(51T zK0Wi`qO0y0K(C$u))LZj=;ssC&;ORe_5{yk8!5t*fXxJ_ki>Tcr;)?&$WD8fAJHIjNV% zT$)yC>ZO*Pe3Xk`>Q!#VhzRR?*8n{Ut^;}#+yJ~vKz{Z({QTkYljHDn)ZwQItq)Q> zaRe0VTZhXw0*X0{;3nV~ho3sUBvgHZC&!r%t@7Kr3-pG42ddLMhl>2VyQw$ zT+-XdePB4>bH3zK-UK8NAEL9KmSwFK@p%Yfe&CTK`~&l!{sIc6F0GvSK`NqK!Qs=fe*E>Es^dx;_zNh{Za7h!V}phzl$G6CMW)YakA-2oFF zkm-PJ4mj%oBQ1PWJT(dY5wqFhGL>KhR_OExhp&*)Iia)ibLhDgR>P0};3$VndPDlZ z?vg+Bqo-9K`T1vB&$twTjOmZ93IM$s|F3TzC|wo|5~?(UHV+g@s&tm1B3vp)ST!BdtfIs22fo zq>To`MM@`#Lf^8J1{F1go3x*xCUQ8L)@q{xQwVASrV-QzSP1F>-Xe$ryiHIS@D9QM z$wlOP$j^HePl}|tot9iMWU>GI4c}{U1)FgsT^?Z=(uXHv9YoTlJ%%@XxeM%@k}h5G zeLoMy22@Fx@%XNanz;8RT^8VbN6{3c6G@ld`2LZo$PD;Sa)wK8rv=C6R7n>buHQm< zBfgV7!1qWQTQ$HWs*qVD8P;tui6_2ykVCO?RnjF8-`|mIqa&AenI_F|F|E?C(w@d| zRI0!$_{Ifw;E$A=LEZFs3;*(qmO-EDd{BSC!rQuzt8|NJc+?Eyf_xhFcOU&dR8)^K zSBmEnYYQE;=fSK4uYv(X9hSiBvrfDPtn#f{7v7F_<$YK;K9Kd`ufsr}$a?W)=y4V6 z$G>0$_Y5eFfM_z7{CpAkoRzR2SS`55< zKt9WR$rpKF`7$3VTX~Xvh0l>~e1Uuwa*cl@U*}up8$4US#m~vNdA@uHa+kX+h1^GZ z#Oo?WytTr_D+(7~6(L?z6fsnB5pOC+h^zQiaTlK}USgf%1Mw4w6n{v0QKVE5iW(%m z)nMVLnjoQ~i5dn87em#mVzgRKOj4u7G_{tPuGWUch|kpe;&b&yu|aJJqk1E;O>HW& z)mZV1+FYDhTR>U~MQbArT3bkaQAg__T4|lcD_U34Uh4+wA^K=N#UQPh7^d|RqqTk_ zN$W2rXoJKQ?KP3A4HmPsA!3d;T)eA|5btRt#S(3_Sf-5?A8T)j&$J}5Rx^tYTC(^? z8!vv)EMmL%uJ~D-Cw|xFi~ZU{aYTDhoYdYI=e5NmUt1!sYfHr)EmPdnR*Hw(XQD`3 zBQ(S3qL$$cQO~eeG%&0aO$=X(7KV)?&hWKpZ`dS~4V%Se!#84@;aibv_)g3+{2fEi~kt&Ay)9az{5+?&7A&J=|R6UT&^(UpIHTzniB# z$jwJicJq@{-2CO)Zsp~5ZWZLcZh`W7w@Q#;xtx1tNT}S}Jsc7tPjasYsV=W|kCOMg z*O0C5HD%2sT8{9jCAadZBM;(qH9Wh@(Vji!#-6?8 zSkK;aoM#{TWzW8HJI{V{f@goZtLFf@r{_SqpXVU?RnOPtVV;BKk)A{4F`gsjNuFaN z$#RD0c==t=3GzbEiSlC4H|0#vDUhl14$l<%sONO~PtUhx53f|YoYxGwy4O2$9j{q( ztXI0++ABkD?=?qG@OoG7;Wbb0=e0l{==GjF%?p4S?gdw(Ho-s@yH@AY!1_kZM;-WwnrbeeR4P7{c;cA19BhV!}0*%Bk~yEJjii*qwh)id*9QLGxB}kb29V0D0}){mi_&# za-d(n9PD>RHu+tZtNLA&qx^2jwft_$b^Pwg4gCI;8~fdrWBm%`7Jm2SHh%Zz_I?lL zPJTsl7r$b8s2@{i`$@{TenPq6r$AICyqpGcQF@f~P$rb~R;H9Ir=*rEugonMpuAr$ zP+3y0lCr#9Fr>1QRj!J%w_JpBxLh^GR<62oqg<47r(Cphw_IK2VYvp13y_HG+ zeU%LV9?Bg5o{;{^V*i2468~3~5B-NJEBr?&U-=JKHu(>Mj8wMyk5;n$$0*tUW@V56 zcqPyO4du9h5@e!s(SNdX*?)?1#eceT-9J@f<)gex5R=`~oGV{6b}U`9+Y$%9-*@lyl`jQmo~dE5?8oici2NO8J15%8LQ3Agh%w z0c(^#0beKs1J)^n12!ll1HMwm25eF$1Z-B825eE52Yd(Fs+QOI#+ zM}-rRlggP2rg*@R;jUCuToRBX{Bb6ShZiJ=IZ21E!6py zTB_?S#i_qmYNcMT)LK=7+o&PIuRz+X9fLcl{eu(Kfx(?1oz=I4yQwpSd#Ia&d#T%k zdqeuDCxiQ{4}$xt-XZK2-<`iAaOV?uXB_NrY&e^nDh_o>ODIqHJY{py;~gX+G}Ly#k? zUzI$yQI%tm6RM@kDRp&~(~z_3)hg#z->?gi%WBWCe06-7P5mV7n)+GT9d%vUUG?j* z0(EQHJ@ru7L-knLWA#i}v3e;?Xll5kxreKoU$_Qw(HexiYE8o3wdUd8TI+CMtvx!1 z!Qth#;o(7AVt6IZ93G-&gjd$y4G-5AhDT^?!y~l~;nlP~;ZfS&@EY2g@M!H^crERI zcpdFwc#P%~QBU)WctMMbcu|XvXs9)bXsiv2Xrc{^Xr{d$(Nar{h|^|7#B1pht+mw= zZM4rLUeU55+G#r?+H0pHI%;Pl60~~}owWxMU9|F5yJ>+{yK8l-_SEWC?WJ|9+DGeJ zwXZg^YJV-U>HsaH>L6`y)mODuRR?Qpst(h>tvW(GUiEeDY}HZPg{p68)~ZPwi!^IW zWU^K{a)MSRa-!BSaWLuj;Sh>bQtjE1q%H?(ol?uL|T4?}9SmtkhKpJ85fIf%budvt)|LUf=( zsug4~)T(6gtW_BjYFJq-+;F&71SHa+*7h;D)Q&Qgt6jrTp?0*PQtcQ+MD4nedWIgg z>l-H5ZeUnk`z6D&+KmjWYBz(#8eXc?(lDw{93Gs5s; z%QYU{===YdD>;YSRV3>g$9b^mW7HV0W0PdgHe{{a~RQ2pNQ*-n@#9 zCPQH&9D!Bw*C8WenHz;4jwIs;8SOoT^FA*NnXwT_z2Q z)>Zk9jZ%KckAn8GPn8_DQORZBD0%D$RI089OAXa9DM1aFMyhqCscJpxEw#QhQ*9#6Q=3Xl)#lPl zwS}}zZ6)nhkjED z4cB^0uWNm!aaw>S~KaaHbT0qy)He_%$Vv=l{7<& z{rPb3%cd7$Q-~9VSDspDTp1Rt;>>$9h0iC<5E?2LaNSAN;TOj zsTOKHhMkdKU>Bqp*+u-~=aSTzU6z_+Ex0+$m*UtJ>1Ae<+Oq3Xdv*ic$ZukE`E98O zE5Hvl3h`@=d)RY&UmCz3NCVkJ={5F98UlmYFxWKB*oH73E69^zTYVEd_oiUG(p2nJ znufhe7HmtJj*UofVGmL&wja&F&ZC*wbd=6s;ImnM{w}t-%x5p51vW&>Ym8RcgfGLE zv5(OzKfxOOO4giziZ%3AES`VPXj@hrzJa|0yFpvN8McRSVSCsLyTkXeIs62h!w%LR z>+L=HF4!7=X1)2Zus2|Bo$rIKAqTdG1K4qL2=;~}*k_W5oh8R$b2x$hB&T3^IEy_a z=dfMmB6f;cu_YuQyFspEBgl2^0l9(gA2-=}eha%l?qI*ipV)qJ7dtNsu&?7D)*$cW z?s>>8{1NtEJZ7o97|Z5dn!y#=CCH}e0=tAO>=N!$I`@Qa!Ur}9KWQE>2fIW7>=HrJ zd%O~C6DDa9uLAo-7;F<&rDeRjw1P)VAM;w$C%m?_61I=8d5pA)*OfN&7o;t`f%F}3 zByHtQr5|{#^doO6W$`#^JCB!k@Ry}*-d5Vh+ey25d+9juAf4bHrIWmqbeeaT&hoC( zIo?aU!23uS`9R6aUzPItFzE^(F4_19={A2|y2D3HcX^^zz{g63e4KQTo2C0aS$e?7 z<7bx>Vdulo3&dne5>q8EERqnZk}PIPipY>OF-J0rd6I`%D0zwxBrma4@)jRTf#M^n zl2|TBD2k*6A@NQ^ z;hlxXy9y)kCOmi#;mvyrAKpv&@!rCpj}aC4SP{tI5Ec12QHh&{i6@IHe7uO@6GSAR zC~ERaq86Vl>hY)krXNm4SUG(G` zqA#B<2J$&#FrO<%@YP}@Un55G&qX3%E5`73B8jgT$^1((k^e_b<{Lx`-zcW@uf#ii zlbFRfi`o1;F_&)@3;2&>5zi7!`F8Ok-yxRsY_XE>6s!1dv6}A{pYvbDTK=n8&wmpe z`0rv9|3iGkbHo;&D}Lk$VbMAycJjkwH$MVP)=}{*&w~}~7_3*vVXZnLj`7pt1V1ZI z^K;@1KQGSli{b*mBrfyIBA;8u64Q7pJ%vL+1IaE}WBSdw%nuwC4L=8Dw)Rb$BT5?@cTW%og$PGn|+*rIQHxVz%uZV_n zThU1FAR5aFqKVvDG?TlCSh<^MF835IG{Y5KzfQXj|iq`V0;$?ZTctsu} z+R8&kJ9)ThFOL)*$H$*2nNpzOSi7s-o=qgVT-Q8LVuCzNOqSEdoASG2iabxG$n%9oUL@X>JH;Y-k60}46(7jIily>zB2)fD{2$ew z2YggT_xJDIk_4m)At8WBNu?$sG!;oNkVX<9h_EinCRy0*hTRP$*rh2JtSE|t9jw?N z%cEdd>uvQddPjY$ezv|%kJPv8-Sl00cYU{hj=o1fSN~D(tN*0O=|AfU`hLB? zen20h|Dvbp2lb))VLeShqG#ww^-TSko}(Yv^Yp*;0{w4&tbS52)D@#d7e<+`8Wp-` zOwe^>qHY+I^e|(x9&Sw0+ZY$?ZH=k=S%yPzXH3`I8!o+rQLA?}>hw;ATR+>Fp?5Ys zdKbg1M;bmo%4pD|jYhqjF649@^oxv_^(n?{`c&f$eVVaOcNlN$PUAy;y0KobGCtL-jW6{YW20VcY|`tD?{&Aa zMPF!a)fXAt^y`cr`eI{`e!cOdeuHs9zsWeLFEI}5HyeNGw;4zD+l>?Y9fo2oH8kT+ z!!VW^;l|xYTVuJ=&bZg;VBBwXG9EO#7!MiI#=}O8@u<<$SY@1JtTy@>j~V@p$BhKz zNn?QVlrhM7+DJB@F@_q?8pDj|jFH9*#`(sJ#%SXuBi(q}$TeOu@{CuFamH&#iSfEo zX1rlk7;BBm#yaC7V}mip*l1jAd~HlKHW^Oi8>8Cz)~GQy8@!Rh8yOyBtI=R=GXlnT zW45uwXfl2<<{G<zAK^&lvl~PC zzD62$_b{a|%fPXGaUy|lOeFGoi2=%JQeQ~wB2pJ)hnJFiyfPeneH8Zk1*{fdh`pYU zy`IVHdk*_G^0C{;a%i`RMfg(e_cFe4s#dh&F^KS?|m#q zu3(4bN=}JC%zocT+2puN*~QFfFP{K7L8&J>TQ9`Z9DH8G3Fl`x%KR*cm!IRf@=I)M z_y;GEU*X8{tIUI5V>kOhIX3(T8!6VZBYhobfZyS;@4FoDeUAgZ@3Ub4AzO*pb6!{O znEaSsoS$$U_frnwe#Y6`4eT!7$U)n$Ia<4k`P4UTru>#U)mAneZ{wKkb|qKr;3(`5 zoPzz4eaAm>(sduJk-xCV?I6cif90U+VUDK$!C}-R96$Y&bEd~Q*m9it*k4MGILU@& zMa&dJcsL>N6PoY~U9fjR%oc6L9MM+H6=#V{IbnafXfLi59mF-FqnIx`i-n?#xK2ch z8$?%eljtsP7CppmqNm`{qF5?=i95x);%?Df+{>EzeJq!+6mjAKksuxtiQ-X_Bvy-o z;&CxZJS7H;HDZW(PNaz!#4z!q7%pBCBgD&Mqa(oxky$tETo3V5chx(Tz z<#L9+0-0Wkbl=ah{s-XTMQVQu3I7Mu{W2W90tc_MrSLU4_$QM6IyJw6RIjD>b=3SO zHGjtG{LiWV3u^w7nl~WT8RR1UE>5noBjv?*GIl2B9XVw2k;)O^?(o%#Wh9YfgNZBx?Y&g<2LUf|N5V&o%fuKYJPQfW5m$*^aka=t%EyTX)V7G)uBEo? zM44DjZP$wlNc}{lzEa%6wvSuI#Yp~Cal3FJ{g)v9)5Tq)N-PuAi~yIoN7RVraJCxG z9)q*T;pz#-+mmqiG@Px0vuDIC@hsdu2WQX2(F<_%qPRl*1CCyXn^(m=@lVFw>u~c1 zoUDb5H^q(OEwMzr4Hxgi!F$yHKI85KYX6Yh*HiOHjK5FB3h}A9Uwp>+`-1WJrFcYq z#TeWmR*8*p^)+1m3|IT$YCq%g09^e7R|nzhH@G?kN53;B4>KN*!o@LaKQ7jZ6V%Q| ze{qu974>}~)DMNGek8)wZ$!AdSwwIUv5mS_oTY9P?bPj}J!cI&sJlcbb&u$*?iF2F z?~YV|7G2f-B3k`L#Ha^FclB4%Lp>yVs)t1{^@!-L{weyX$3$QCI9p{-h*@5BD%0Y8g3wHF+|A*KXOQ! zi|)%KMLtgocrq61I4Fh0iU^g0BjdT2@mCIpRDd57z>Z2VV=|a=5tuOr&3G}m(ST;2 z1$Ow+hXJr-HV8Hc{AdC@n!$~^Jh>Fax(w&y2 z=o?DjOv&GYKwBt%D<8YrMhzUd1hHNQv0eeOHiB4RgIJqDt8YN5Z$YWe$^mfh7jhjU z*Aa3Z1M5zZ^CUUt=U+6j3sl+*8vV#uM1E>PBZ)*^(0|dOQ4i3lmpFv({T8~i3K7RzATmL!Ec9?Tn2-Zn<$?=&=;8v93KJ6{sdQ#!u4@*^#q7^5?oc(B|>G#jIQ1y4E1)K}OCj^K6slTCj|#XTV3 zeIVcc>R))=PKbxpzr~{<;A0@*ld7sd4GKO33O)}CzNm(C=%Nj~fZD1rgM_cD?brp> zUVQ^ZTnie$2^zi)8or}Osqd=M>IZ5!^&>S#{Z#Fte$K(%uhetYjq17T*J^KdliEl9 zM(wM9%OTqD)L8XV?EP!(;0Dzr(eu1!`A?IQLjO;y`y)7YQnP}}2G>ZrNYPFf9n zm1@;!txoNZhp8vtrCwUS+6NC)KRitFc$gBkfSRNQ)j@cghG?_ZWNnU`rZua>wM*5J z+GXnb+7;@Bc%Cw}tJG}m8Z}3or{-(()p2;C3bjRQ37)9&+G4dFZ`4HXMm%Rr)Qh!S z*b{ZTdWm+2I$gU{t=8^RYw%9hY4@mZ?Ot`JcAx6SOVyw~fM@MN)vrB-ckN-kYmeYr zTZLz>gq?Ha(JN)lsVcBfCt#mWWKJ~+y;6yNdJ(qi6y{P>(IwNE+c~gDFJW%yM3+>f zOI&E58njLwGd?%kW+rnv5Bg*tnr1#aWg$9c5jy2sG|OVF-Rr6C25P#A8kSJ{EtGsK zCEkt>xr37Kq?EfTVHtYkUbM=6*qSTQA}i4x_oFc$q~wPv^%1ngqm;CoQXV7sljsW0 z24gYG)6grx>j$u39|fl$2dAF^gP#P0p8|u|fWOax+|PsDFM-^zfZYECxz}N5zKNar z4ha4(2>w0@{sCXI`Vf2bW9-e(LGlgQoExz@zvi6%CcZrN4ff_{5dC{aVMZgcFI5}a z+2)F^xd(Lri5b>D5dHu*=daAN4r6Z~!QMQooDFh!2DQ6@*pVQ1R}ec2#7+gVExWQU zxZ57w?Evm}1a~`uyJv&Dk>G9=m>UD;_5^d!1#|m?xv^kw0+^cw-VOwBhk&;!AblEm zI}*G-AG{q6-i`rpvqAh^ur?p89S6>qfUo00{0ZReBrx?NtiUPY>Qpe*0j4^^)G9Ew z8ceMPQ{7~9t&>}*M!O|PS z(wm{&3gtE^OTp2*z|mzqS$~K5j~wq~A%2MFSWm8x&>o+X^9yo*h0VH= z)u9MxZPAQ~e$3qB7!gT)mNbc3+xd)&F+9m&_Ljxy$ie$j$*7seD5=Hrnu+CAPp(vBq9tiqmqJVk!SoC}$dOl035GBe~FAhFcK^9JVx+nFkuX%IFr`M1`~1_%>~S3 z$I&u{jOrq0lH(cKW!Q`pXr)Qmi~+#yz0Iee}*su;W3n<6*F46_(^`5aJ1XjIUsjV=XDy zk?Ji{ybXT5LyC8K@*dRp!H^GlvYyyS#6BkU3D?iKe!=xiaO5kl8~FPg4A}&Rd;^Aj zi>0_3g!&E(@p}+z3+S|!8Spj`X$Nxg18B4pdvX`@u^Tkn0~&>46^4T+5#UK1=BRDO zaWLjDEXfn#%-_sy1*oBc8eyPDTl^mFn3;A2JEn6 zfB+U^A8@1}^Uye~!gyx92_RDQ`Hh?4`xRDn3v;EW55 zsR3hZnQPX8Gj7mk23Ru_r15|<^vG?-TqoM#? zZya`B5q4e)c3v5F9#)e&2|KS+)!6^7^U(uCy%<|>syc?bYC6c70cvJ~m{}lZHi(%E z#^iyH`7OTMWRPPRsA2hPOPSS<$HpilXF0hl$T5M`6G5~|;7cV)HW?JVh!pIY2Tdk{ z%yOoBF&H%sRJjCHsRE;1{MCX}Zmu&yn0gSVfzT`v#SfwcK$J!hWi~j}1gbQHDsw@V zOF@;(TIR0vz?S)7%K|WEA;_}`d*oVhF}Qy{7R^mqG)tI~-VC=5DDUjzGo;;8B@)8L2GAUjI$JT;EZ;|R9aO^!&t_QCHT~FZ0w` z@h7_KsFDa8^#_eY9k+@F3PNdFF|Uz6$K6#6y| z?J=BQ9)bQDg$6mF-X2YFkD;ffA2pkP&!ML+U+P?B>NfP&?a0*~$kkFL@J_f|23L2( z(LHdo98T_qi~HbW1stqIzV3&E2jJjAICuytlRJ(cfs55}@B|z@2?uNT`OE$!f@4Q8OPXVMOrqqDD|Ev}+1u4X)4LmSNF z-RJY(3wZB^yze4vy^b2Mr?wkt`3I@-A!>Y>+8(9#S5eDqYIuy&A2;8#p7-?ep0kim zJ|j)*K1<6!$2&gH82XU+T+bN#h?+lPG<`}MNJ6|$VzG9SYp!GM>>R;39 z-_YXU(&C$G@%^;;0b2YQTKiX8`!_f^MD4#*>tSm9gPM-ent#%oM`_JtwB%p3;tBNg z-;AS9tYVxk-bA9`Mxx(AqSqtQA0yG9Dc!`ENcBdgJJR2Sm5QE7{y9kfxnesKzC-CF zeo)e|?}v$9tZ?kX3fr%YVicT*^q-F&z5wYTjnrR={vCtFrz7bZ*z}o5c{cht2S0HI zI(Py${Ur2oC0ckg8u%i#?-cC#i_yMQ(Y({p!49uc(7o4V?cadzy^)%4qShtUcr&%#LQQv2 z%Tj8&i&~aZi{8K*0-9q-3>e1P%!AY=0(@AG1tw{AYM)*#oc^BhqH=}wl^#N@-rOy8G-za#C98Hd-95rp%QGk z@yHS1c(vuHBR$y}`RPJ$Mj}65>CtH9Cx%|_iTs>PulAu=`_iki*iUiTPjYP`3EOD^ zw$osGI0f4&729bTcGGZrdL+Gk9yZhY^z>*ft8{uh6M4%*-m;Om9PFlCEUG+YDj%5| zi%gXuQ{$1TiO7^(Pne8MU4%?c!^*k@d76$5B-anz$WuKw&@61AAQo2>a&;*-(3Qy6 zJZzu^$k#&TYccY56JGt>kgui8*Or?zyfx%}hMaGZb1hQ&COO|C<=aT&JJ@OO^7K9I zv=6b<)?=rA#Qg6Q?6gm@%|0W==U7o+K>ZTRS5P)W`5MYzC_h5^3Cho6GnUr(SX$fh z`0d2ww;PLVFKY+~SVQ;)3+o_Wy8t}$v?wL5=3@KE(sd*P$%gMX?Y*F^kNN%;EvFOA~SLt}JGSqxRh4`^biIwBWs!;RP2~a2UHwg=?k}pb4#>$$4l{Jk& z2Y;9F=j5+iovzk!tyNv>4F2lXnQDXTQT>F1s#l$@`qU;UbJbbuWl*nB=crdfxms;j zuYo#Gy;NPmlZ8+gL0Jst22S(c1oalEw?Vx_y;fZc^)B^B^&WMJdY^hTCjxKfMBr`e z!|Lsv0=z?gT)h+j-(8#lyoVEj%kll)i{I})e10qN`K`p?_b}%HAHmP}sQNx<2iJ2_ z@MCg)#@WFyIXk!k&*3I=e~b5Uv-&JPzUT1my`cVp2XQwg?ZJb%m$QUFQ{p~KJfOa= z{)#8@kh)Gij3@CAN`lSAyMFhPEAF-wu3zKd9~4 zh1F5prJl`BtS;JK{Cq#+=lcmi-#+|&`|}Beaw1D0XLEpb70lP1nX~hL)~{X_;EMmZkO7vbA%x z9Icm@r=6?iYkjl=t*=(3_0vkUSZ%x(r&Vb2+9WMOo2(^jQ?(@R60N^BT^p!XYlE~} zZLl^&OV(y;DVkSH)f%*++AJ+i^J~Mjpf*Bl)JAG^wDYvN+WFe0aB!J6TDu%Bu7r!L z;bOj)p)G`qMR0K~TwJFWYm2G*daYEuQ7hAK(#o}4;NUiGf_9fSQM(&X?$Ii><=PbO zUhQJ-0XTX@o2IRXtH(8`_9UD=17|O2F6|Y#drhm;*1_Rhnn!zAtJl`UtC0S@;6Sb-@A$G*iE@vgqiWd9WMx9D!SvL;nzJn4wkQE{_{sAC~GKFe(1I_D%Ped z{NhG}@(lEzP?oo%uZ8|B^j^^4YDM1z{W<8pq5ss1-XYoxMZvP<2YaGtnqhglEV{-F z%NnnYu2SU3faSj((bp(1(uVPb_eNi4(&VMO+e+nS%1hKrnI!-BeD0;uPPQk-v*DpLs>_e@?S<=0)4Dv_4AW6aedhH zZPDwXzXM&iuowD!HhoFlX7+-sSjGH?QQX&Dt$#D(=b}r5DP7+9+2|CjoSg~Bl#fV1 zl4N@m{s<-KCq?F>Zv<8i@18i@N=&%2e`WZm^xXx79sS3LZxFhfXH7~0t4@50HBxrYU==Oa5!C^ih7I9Wn_=V)O5}`5Ax>eSkFC&{MFn58CwAwB)bQ zbD=*=-a~f1Ut*UZq27Gx-(WkPu*=V6=kZC(9}7L79m)J7q;UG68J!owOn_hI(Hqcr z7OSrrF?_U7Fe74o8Bt0H)f%=Ni~;Dsj?7p18obdLU1yCACE_6^PL=Z)`ZwZU_OM&! z>)3ZgRjW-d$7Ua4r!U5yy1-5oqn5Fc-4gYg>I(L-Tj|?sv)RLLg|E_@*~4ztbyT~8 zJ?s`gbM!jS&0A@<>X)&X-Kuwrk)-^tT4U;J<|N1L_eu~M%5gh=oyby7+VwszW++27 ztDG?G&=HzdR~56R3vBvs=0NG1#phV&5_xu-?&{l0p=R;3MZH_O(GF+R{x@q@dv3xu zzC~+C>(D;fkuTfy2U_@l-R-1$|`m*i3=YdGMcHTm2q~s9p^R*?J|c5e9d;aoVlgnu2&T~N~2BB6O;L6 z9qV0IilIugUCx){9A&OeKPb*qF0<+V)j`VTb~{w64=LB!^uN@6Wu6_*)^e5kcHYHW zHhSzhQZ{O+P%;SPwBvV#+A4QPWU{&-wVcL>e062HQGw>si0evcglQ^0#z(D*b4)h8 zgYu-=um8a20jA$@ph^AA|k?&o-4^MzmL&D z=^ddeA8FT;T7DnH`YS6|tg{G*%eE1B z3O-+?+~4LMN^PUmv`vE-TBU6)YcOXiub;Jmy4xvP?eeIzy|TF7qtw+wNojw(C17UT zP&IX4b@JrND~ThWbR;ro6Bq$R%yD2+_>2tcx$=(>k5Q{kFTVvt90DQITVs(TPonQl z0q$sL>SQPGU>AxmGkGBgcd6B_a_Ky?66^@`KETe0j^3+LB_AB5-0n)R#RBy&>^NUP zGU=++-par-nmxsH9A;He4rfl+%d;`%KL7+f5~sgFX)Irt=G$dCbG_R z%ri5++5i8(f6r`>GvlY;=mZ?HNiRx`*hx zw8c%(q!G=3<{gAH-wTR)M{>=3h)xUA9^h%j|2Y5uwBG+|zW-PJQZKF7wxzv7a%j`c(%+F6d8U|2rLL?6suiY`J(aa2P&j0a0r#PprYH}}ybo|$3%WDAW)`OW zEEX!tJ{gj~dc>@b%K>@$MP3fd9C8+?{3b7l>gpy74)W0RIV$zEAvSziEHJKI4O8olIvBI*6b(!t#QP_iT z<{>K=Y=l`Ulx9U_#@%#!ru?y9ezCg@9^-5ArWa2nGx9$MG=h= zb0e;eSRAn?;-!c!ZT7S|+Gc6nWo;j8JMOHBXZ>>4p|g&j)xKT7cB9&rv>V^9yxpXB zliOX~ZdyBMyA>Vo@35-F+754b__@Qr4!?Ei(6LL$sEz|W;?e2&YR5M_Zt8fT`7f5U0&_NCjufPBHKrHjEsux z9hne0Br+v(WMpP!LFD+z@m6N}bzRZ*iLPtAZtVJP*PUH|?)ppD z!(ESe6;a_)ZKFCzb&Kj3RTkxls*dtUHAXc@-57Oi)SXewqLxRkjCwxm<*3)A)<(S* z^2^uC>TWZ; z&FQwHn-ZhPgvXo{lNeJKGc(2?GdJeym^WiSi1|EbQ_QxQT`_xOev3H~6W+aZ_wLwZV~<=x-t{y}%8N1GmJ_vqOpw#UF8g+1=>@lcPadc4tNeUHsOzwddV=dV2v_f*aa zKj*@8&h1sw>ylpcdoAkqdao7detPb7FeH;6J+BdS_`Tefy z_h`R;{kp_f#y$}HNbD1_&&9qHyCL@5*ln@9V}Fl55_=+6i3^Ks9~T)nGH!HSMqFN8 zQQVZcX>rwYb#dOfVB9rv3*xSiTM~C$+~aXi#;u8aFYbf5ZE-u|j>a92>l_~$KOmlO zti+FwuZ^D(?~Pv&zbJlj`~&fi#;=ZF8~*e9`H;(3V|B$g*mNc1Fn z6Bi_2o46wJfyAd0pGn-DxFvB%;?cz8iGL?XCG|);Cn+sycv5jvdD4U=Pm(ujVbb+U zHzo1ylccpt?#z5nt4 zj|^Bn;Q0YB4R~{adtl?hg#(uid}-jf1OFaq3|cejxk0ZFS~uvUL4mGcA@G{{Z}6 z53{EDEbGW$;?ug26{~z!C$C~vX^fu5+19J|`T8P#qrRCFv^(_WoZEbebC<7izVb`Z zVT;i%?7Xnju)D+V4OVpUH~g1WWQBBt8NwM4$Dhf&pODyo>R#Ce-?5$f{p&^zO30n#o?%$ z9jtNAB#@C`o?nn#AxR#W)7#h}Lv^mInchZ^hj7s4uXlT$K^I}aD-iVgU2|Q2pW<*% z_xXcLc3xS@gwk{#78R9b=M)lf)HIOLC2Of^XmopnN^U`U+4%9qE3+obnra$ce!tI8 zsI+8KO0wc;@Xg_t>&UGrDNI+atAje5+_IEvU%*l83f8z`Fc_5CB!wDIQS6lVttxbP zn1NhJc~(j3};9Ax?5MM$+p zce>jbnCX%XIBMMffNWNW$7$XDzS%BXwZ`wFlWUxQGmu-5V^&x1^mu$#COs5{ffiaz z*fHHNc?g&{x34NFg{LehqtNVfn4L~BGDTHgy$}AYJidUGDf{m7)li2Wsj2Za2I`2* z8+DPaq%@~Ex0FC$PKCVJ_!?YZZVi3}OlGxOrN(N_nxMzi4MBe!%yMKSd-LS)}i#O&#fa1{t;o!t@&1pQS` zYLNGO1{-&GDBzK=;USOieSw;D9;_*4F9TecFm%KqMnH-2UjovCVL6IvEaMrpqeNFJ= z_IT%31=HM0?$`_|ap~1ACoeFY;a|jCwyx_x(NE>b_SF8n3}=u7b-p>-v|W*}+TvIe z3WBcsVrTs+g4qaJKA*puS8&sAGF4Wi-|zAUOWoF+Sgm5EZ1e|we)Iig*?E329@NG66qGl8=@AMtn52Hv#Xg2Ei{$U5RRK7YN;?ySx--~L~pAwt<1 zS>zg7mX}GJpc&G$8|!)h@+vS189g%()ydWb_h?_Q+uK+bO!2rCN0S_S4)6tJkztRk zD(I+o)i@hHK}Unf>9y%WMyAId44B2sqz#B8aN}k`T4e-+PJhthtgZ$mnjCfRYS)=r zWCNT@b5_r24E#&slBa54<8+S;P^ghmYt_NXZ)iA^SOpV)*p`VRCoF%*;y(n4~2B)Bx1$;~tnXtb8xt)B<|PH&(AM5ZNLWix9zl})~g zzjnGT!SAEe)=5JIyN0TUD#pGa4Rd-jS>nHcB3~NaqXcreaN;M&3OQZok>hgR4 zC6P^+>8ctWv)$EZUKtJ4xohCNb(^}q(y*|4L1L6udaXM^(I#?*h_ck>YZreYDdF#bdA-C|4OkRn(6JZ z*?m@?TEDZQ&RrF7R5|@-6E*mKRp6;Kr{K|>Gh7F&ta8k zh0S_uY<*V~Qpz>9KC20-B#VHFfD*K5cGyi2bKKr) zpDB!tPsEl{3$KnU6GhF&mE+4K%9uFSvNI|&%5(Ch*^BB+o``Ij z<}8u4){$YYBg0!FS;s%?n%gUBnAu(|L`S(qvkG^;EJ7M;p4rl-0-YPCJ54L>G+NLn?UE|c zDHuR(EVEPU3zVNJXEKZiR2&7xj*P5|f{8hf3`{)*d$%~pkzJNCsh~Jdai9YV?dOVP zLMe@w<0vi2a-cRyN-9TgSxJ#3DUQ6djM99bWlbn6m!`9=XG2=Lg%Dz)#8Vv#+DT1@ zirilFZocp&Oh=3AY-$}ol_J;Ul&V~D6git(!e(ATYs*{tZ3f#+@8FrJCsUG*Wc7sckY%Z3FX+f5lN@X`9oDS~bh4sCU+uqnNt=4+JKE$B3-l62 z_&gpOyd_MF+nh?43aZhGt>RY2`R?j!msdWw;*-#&Zg1@=LWQp(%hdjvKCI$;D_rQR z30k2t3GG%e)Jvw6$gYBy(`e>9oJo{SO4Xfj8tJBmF8icNVqTex$xEOP`D3h`l-5a+ z4LNu-utY$4E0N8<`JhmOXlp_~ytYtEU7k`WFkzNhiXDjZG_##f%JMZzCD=NZB_{|h z`YzP|GHgp=E?Tox&c$=(Y*Id8h-31%&}Ag6E|k-X*?G-$RyO;EEt}ou!fJvLz?rd% z=7vyf6_nvfkm^N(o1MMD8wfJirO99>x4QeZvU%xXBVublm*OK^o?bEU*wAz3)XR)m z2B^a^5;XuwqECasyDZyLm|eluwkOS}mXD%JHlFEgz`(OZ_5{_W+OtWF1edcOCLCV* z0^H?;8d-9UWwScGzTgCD5lB))AUM;S5#sI$Avr;Fpko_PBvDHe>}wC6ofZ`%$8&|R zIuz$+{Wabo2QmT9P#c7TG()iqq#_Y56AD7jD=Wx`B5%Yb>YK6ysU-|O+wJuDLenk_ z^(<)SO(g_|BnilbQjhw~Eih+#4$OUQNGX%Niq(|32?#sN-L+n)#}qJ!tG-bw%D5<} zY;aa-sTJZBiCd|%ree%(LqSW7l*|bg6(z-v+>!~!oZ7)ys*`EV!09QnOC}X77F^p* zR>50g4o6`usyW<(?x4q26sT3CIWF%FHjdyZkm_@?d976ZIAkzPXPXf0ZLGKI3Mh0t zSYye)Ejy-+1(fN&rp!Dg!-LgnGiHIc9g#DPP$6{|%Fi+Nfv588 zdc@N7epdrN(bi#QqU1iD1)j_0r*M+M^B5YRRf%%_p7GRiZRGoPh>8 z`)Upa=uf8gmdsjVTO9qsY^{8zOqX^{Wl=^!v67z7`?;%aTfoYdo}TT4b^DQNPo<}q z<3}(J9|?Zu&^40!On4y>GQ?=69Iq1#O|nznsyXEAo3>nfddbWRUlytw7l~}G0x#&~ z#!X{RRnyZ=RRTTBhgYjASXtti;@J|PY{kuP7@SdFq?lR?u$LAb9cQ6Ysp(fSD{QG* zzPDYA2P=xP)u8yzN~fC!mQtBIZ208VCsfhR05JMYbI-EO|!BNvu?w!+X(A6(z=aOY|%F}WLU&Z zrLwey6$JZc_IRZ{E?rxK#cyJhS-qU{D3yf;#jIh;tC_GVMQLV-d8*Q!YGxn@6H)}P z%CE>vig`^%OE44|x`oLp3i#1LU?~67l!>G^g{W|7ic&Z^5z>2FC-mp*A5JhENjSUnI|GR{%Pqt@}fGvcysGYZX?DrJf% zA-cE)@6ArM+BXX@4J9xs1tw^hDS1k!lI@nGR00V}%KcIu*T`Tt9GhY3hxg(NX;!4a zl_#yFBH8NX6lIcJUTAq%=EE{R6|F4G$>L+D=~;3K@D#>{C@oVWJH@GqkqMIa#EaB& zI0R@@g3?yR5(q(Vw$IFzQ;nLm9?Isls!7yvIr?fX0hgLo4sT9MWr>aCM!A85aGfgu$WMaF{>oZ zl~|Tl866^rpQV;;$fIjQ#n_?A3N*7Y>poeLeP$uRlxmYW5l+nr3(v|aTViXrF za@(r9Aq7gg3ny}Qv3t5i?DX`8R4x^DZhtG%P)M>luQq zrA5U(B~1n_?k&~PDr`1!rMYaIt9ZPjd5q#=)rG!Lsyzy#UhQGAZ+dN&X&=|v_t{Q| z2g4Ouk&C{$gR=-_7F1v`@@i&(*yDwFw?p8G9V+&juT4tXQ_x#7n@wOzmr~+)18zu$N4M+y7yQZv#sAdVyD(R$Gto1@nX6bKXj$(SPm3mjO&R0z%;1={Cs&&$Z zQ(06pp*)A8r1TfCV8Jw7+Wy#(9%jc;p2bLUUwp92P$>{0XO{BopU^7>a zL47J_4uDh9P})kFWU{=pjJeD_xdLjYcYCd7^eeWPpIMyrOS4Kcy_RXXxk-gky?hNv HDDD3O6*O8+ literal 0 HcmV?d00001 diff --git a/MYMAP/MAZER.OBJ b/MYMAP/MAZER.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..fef8d1675c2c36da0e5d66500ccdd0783dadf354 GIT binary patch literal 37820 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 nV$??FD0=kcZVS_BheGr<7A*b~Je+C8sZkI9c literal 0 HcmV?d00001 diff --git a/MYMAP/SCROLL.PRJ b/MYMAP/SCROLL.PRJ new file mode 100644 index 0000000000000000000000000000000000000000..ce539e8aa81b4ce9fa39648087b2a1d45a34e225 GIT binary patch literal 4928 zcmeI$`EwIx7zgm@ZIUKZky?%dN_|Hnatv)6>_Mw8VG}wTbIqn5J6d%}veY7NYMSDK zruD?p(ed~PRKWYd^Cyp=6-pfsF8>KH#5+FUH-#xq)75Q&(Qz~V?DM|+zVGwq?QXK0 z?$KN-D|MO3Ww)E@yxcOd!<5TO%&)5#ymR}>@O(m5B{`(IQpUT zBjv}epwCsyFO*-h4m!+kq9dy2sPY&~j^mKNFysU- zP>nh_v&_R}E@0$5hHAitU_Q8r5epF2f{VekoUQ6Pqk%!=r!;TaF)$A91NVam7HOniKLZtxQ|3m5rYc)ETLnteW^4PtE8*`I@hSBVB% zJ8Pa6%NDJcE!r$wv|F~=XxXB}vPGw5i>obLTw~edTFVxiWs6OG;-2p&HWRD?MOkr}wu< zo8-^J@ZfMZmzR-&RBmf-VCzts&f#c+Z*$8Wv{CJ?^nfC*|74aSY|2C%;XrUlK zW0p2vPqm?x)Qxx~qV9)I?WbDV+uK3FH5PHi*MW9 z$TL2n{gao}5?W5nYTGqaOKW+pLz7xk(=|hjYY~3QSw?H6U9^hR-$F4u_1@;PpBiQQ s((tc5ynv?%9Xc`TYB)LR5)>8GMoY=V>Fa3;Ev7}Zkm~qV+HjTp3E=8~7ytkO literal 0 HcmV?d00001 diff --git a/MYMAP/SHOWLBM.C b/MYMAP/SHOWLBM.C new file mode 100644 index 0000000..391d569 --- /dev/null +++ b/MYMAP/SHOWLBM.C @@ -0,0 +1,395 @@ +#include +#include +#include +//#include +#include "xlib_all.h" + +/*-------------------------------------------------------------------------*/ +/* ILBM320 by Mark E. Kern. The following source code may be used, */ +/* modified, copied and shared with no obligation to the author */ +/* whatsoever, as long as this notice accompanies the source. */ +/* Please direct any questions to GEnie:MKERN1 or CS:70670,3120. */ +/* Code written in Borland C++ in ANSI C mode. Sept 9,1991 */ +/* ------------------------------------------------------------------------*/ + + +/***************************************************************************\ +** ** +* SHOWLBM by Todd Michael Lewis * +* * +* August 27, 1994 * +* * +* Using Mark E. Kern's code for the display of ILBMs, this routine was * +* developed to show ILBMs using the XLIB graphic display library with a * +* call to showLBM(x, y, LBM_FILE). * +* * +** ** +\***************************************************************************/ + +char testPBM[14] = +{ + 3, 1, + 1,1,1, + 1,1,1, + 1,1,0, + 1,0,0, +}; + +/* This defines the key information header contained in the ILBM format */ +struct headform{ + long flen; + char msg2[8]; + long hlen; + int width; + int length; + int xoff; + int yoff; + char planes; + char masking; + char compression; + char padbyte; + int transparent; + char x_aspect; + char y_aspect; + int screenWidth; + int screenHeight; +}; + +/* Structure used to store RGB values as they are read from the file */ +struct RGBColor { + char red; + char green; + char blue; +}; + +char RGBpalette[768]; + +int ReadHeader(FILE *picFile, struct headform *header); +int ReadCMap(FILE *picFile, struct headform *header); +int DumpToScreen(FILE *picFile, struct headform *header, long page); +void drawline(int *yoffset,unsigned char Vbuff[322], + int *scanline,long page,int maxLines); +long ReverseLong(long num); +int ReverseWord(int num); +int expo(int x,int y); +void setDAC(struct RGBColor pallete[256]); + +/* expo calculates x^y and returns it as an integer value. */ +int expo(int x,int y){ + int answer=x; + + while(y > 1){ + answer = answer * x; + --y; + } + return(answer); +} + +/* This code reverses the byte order in the long values read in from the + file. This is to satisfy Intel's byte ordering scheme. */ +long ReverseLong(long num){ + long actualnum; + + actualnum = ((num >> 24) & 0x000000ff) | + ((num >> 8) & 0x0000ff00) | + ((num << 8) & 0x00ff0000) | + ((num << 24) & 0xff000000); + return(actualnum); +} + +/* This code reverses the byte order in the word values read in from the + file. This is to satisfy Intel's byte ordering scheme. */ +int ReverseWord(int num){ + int actualnum; + + actualnum = ((num >> 8) & 0x00ff) | + ((num << 8) & 0xff00); + return(actualnum); +} + +/* main asks for the ILBM file to diplay, opens the file, and then proceeds + to: 1)Init the graphics. + 2)Read in the major header information. + 3)Read in the color map and set the DAC registers. + 4)Dump the image line by line from the file to the screen. + 5)Wait for a keypress before closing up the file and shutting down. */ + +void showLBM(int startX, int startY, char *filename, long page) +{ + FILE *picFile; + struct headform header; + + picFile = fopen(filename,"rb"); + ReadHeader(picFile,&header); + ReadCMap(picFile,&header); + DumpToScreen(picFile,&header, page); + fclose(picFile); +} + +/* ReadHeader takes a file pointer and starts to read in values into the + header structure previously defined. It first checks to see if the + file is an ILBM file by looking for the word "FORM", which should be + in the beginning of the file. */ +int ReadHeader(FILE *picFile, struct headform *header){ + int err; + char form[5]; + + fread(form,4,1,picFile); + form[4]='\0'; + if(strcmp("FORM",form) != 0) + return(1); + fread(&header->flen,sizeof(header->flen),1,picFile); + fread(&header->msg2,8,1,picFile); + fread(&header->hlen,4,1,picFile); + fread(&header->width,sizeof(header->width),1,picFile); + fread(&header->length,sizeof(header->length),1,picFile); + fread(&header->xoff,sizeof(header->xoff),1,picFile); + fread(&header->yoff,sizeof(header->yoff),1,picFile); + fread(&header->planes,sizeof(header->planes),1,picFile); + fread(&header->masking,sizeof(header->masking),1,picFile); + fread(&header->compression,sizeof(header->compression),1,picFile); + fread(&header->padbyte,sizeof(header->padbyte),1,picFile); + fread(&header->transparent,sizeof(header->transparent),1,picFile); + fread(&header->x_aspect,sizeof(header->x_aspect),1,picFile); + fread(&header->y_aspect,sizeof(header->y_aspect),1,picFile); + fread(&header->screenWidth,sizeof(header->screenWidth),1,picFile); + fread(&header->screenHeight,sizeof(header->screenHeight),1,picFile); + + /* Finished loading in the header, now reverse the values to make + them Intel compatible. */ + header->flen = ReverseLong(header->flen); + header->hlen = ReverseLong(header->hlen); + header->width = ReverseWord(header->width); + header->length = ReverseWord(header->length); + header->xoff = ReverseWord(header->xoff); + header->yoff = ReverseWord(header->yoff); + header->transparent = ReverseWord(header->transparent); + header->screenWidth = ReverseWord(header->screenWidth); + header->screenHeight = ReverseWord(header->screenHeight); + + return(0); +} + +/* ReadCMap first looks for the CMAP text in the file which denotes the + beginning of the color information. Once it finds the CMAP header, it + checks to see if the number of colors(x 3 for numbytes) matches the + length of the CMAP, which is read in after the header. If everything + is ok, it then loads up the array pallete with the rgb values contained + in the CMAP section of the file. ReadCMap then calls setDAC to load + the video DAC registers with the appropriate values. */ +int ReadCMap(FILE *picFile, struct headform *header){ + char form[5]; + long CMAPsize; + struct palettetype pal; + unsigned char rgbTuple[3]; + int x; + int numColors; + struct RGBColor pallete[256]; + + fread(form,4,1,picFile); + form[4]='\0'; + if(strcmp("CMAP",form) != 0) + return(1); + fread(&CMAPsize,sizeof(CMAPsize),1,picFile); + CMAPsize=ReverseLong(CMAPsize); + numColors=expo(2,header->planes); + if(CMAPsize != (numColors*3)) + return(1); + for(x=0;x>2; + pallete[x].green = rgbTuple[1]>>2; + pallete[x].blue = rgbTuple[2]>>2; + RGBpalette[x*3] = rgbTuple[0]>>2; + RGBpalette[x*3+1] = rgbTuple[1]>>2; + RGBpalette[x*3+2] = rgbTuple[2]>>2; + } + setDAC(pallete); + return(0); +} + +/* setDAC uses some pretty sophisticated funtions of Borland C. We first + set up a bunch of variables to hold CPU register values in type REGS. + Once we have done this, we can make some low level calls to the video + BIOS to set up the colors we want in the picture. We enter a loop that + sets each register to a RGB color combination and calls the BIOS routine + to set the specific DAC register we are interesed in. */ +void setDAC(struct RGBColor pallete[256]) +{ + union REGS regs; + int i; + + /* This sets up each of the 16 pallete entries to enable the proper + DAC register when the pallete value is combined with the pixel + value. */ +/* for(i=0;i<16;++i){ + regs.h.ah = 0x10; + regs.h.al = 0x00; + regs.h.bh = i; + regs.h.bl = i; + int86(0x10,®s,®s); + } + + regs.h.bl = 0x00; + for (i=0;i<256;++i){ + regs.h.ah = 0x10; /* set specific DAC rgb register value */ +// regs.h.al = 0x10; /* subfunction number, set register */ +// regs.h.ch = pallete[i].green; /* CH contains the green value */ +// regs.h.cl = pallete[i].blue; /* CL contains the blue value */ +// regs.h.dh = pallete[i].red; /* DH contains the red value */ +// int86(0x10, ®s, ®s); /* int 10h */ +// ++regs.h.bl; +// }*/ + x_put_pal_raw(RGBpalette, 256, 0); + +} + +/* DumpToScreen unpacks the graphics information contained in the file. It + first searches for the BODY header which precedes the actual graphics + data. If we don't find the BODY header, the program will just crash, since + I don't look out for the end of the file here. Once it finds the header, + it reads in the next value, which is the length of the body. We use this + value to read in the the next n number of bytes as specified by the body + length. ILBM seems to use a run length encoding scheme to pack the data. + The function looks at the first byte read. If the first byte read in is + between -1 and -127, then this means we are to read in the next byte + value, and repeat this value 1 to 127 times depending on the first byte + value we read. I.E. if the first value we read was -1, we read the next + value and repeat this value in the scanline 2 times (1-(-1)). If the + header value was -128, we would do nothing, as this is the no-operation + code. If the header value, call this n,is between 0 and 128, we interpret + this to mean the next n bytes are to be read in normally and stuffed + into the scanline without any sort of expansion or processing. Once this + function has read enough bytes to make up a scanline (320 bytes in VGA + mode 13h), we call a routine that dumps the scanline we just built to + the screen. We keep doing this until we run out of bytes to read. Note + that it is possible for an image to have more than 200 scanlines of data, + but our scanline dump routine ignores lines past 200. */ +int DumpToScreen(FILE *picFile, struct headform *header, long page){ + int yoffset=0; /* the y coord of the scanline */ + int index=0; /* index into the scanline array */ + int pixelsToGo=0; /* number of pixels to go to form a line*/ + int i; /* loop counter */ + int maxLines = header->length; + unsigned char Vbuff[322]; /* buffer to hold the scanline. It + is 4 bytes longer than the regular + length so it can hold hsize and + vsize data for the putimage call */ + int repeat; /* how many times to repeat the byte*/ + char repeatValue; /* raw byte value from file */ + char bufValue; /* raw buffer value read from file*/ + long size; /* size of the BODY segment */ + long bytesToGo; /* bytes to go till end of BODY */ + char form[5]; /* holds header */ + fread(form,4,1,picFile); + form[4]='\0'; + while(strcmp("BODY",form) != 0){ /* find the BODY */ + form[0]=form[1]; + form[1]=form[2]; + form[2]=form[3]; + form[3]=fgetc(picFile); + } + fread(&size,sizeof(size),1,picFile); + bytesToGo = ReverseLong(size); + +// Vbuff[0]=(320-1) & 0xff; + /* set up height and width of + our scanline. Since we use + putimage to dump our scanline, + we have to tell it how big + the 'shape' we are drawing + to the screen is. In our case + the shape is 320x1 in size.*/ +// Vbuff[1]=(320-1) >> 8; +// Vbuff[2]=1; +// Vbuff[3]=0; + + Vbuff[0] = 160; + Vbuff[1] = 1; + + index = index+2; + +// index = index+4; /* update the index into the scanline */ + + /* Check to see if the compression is of the proper type, which in + our case is 1. If it is uncompressed, or if we don't know the + compression type, we exit the program. */ + if(header->compression != 1) + return(1); + while(bytesToGo > 0) + { + fread(&repeatValue,1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + repeat = repeatValue; + + if (repeat == -128); + else if((repeat <= -1) && (repeat >= -127)) + { + fread(&bufValue,1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + for (i=0;i<(1-repeat);++i) + { + Vbuff[pixelsToGo+4-index] = bufValue; + ++pixelsToGo; + if(pixelsToGo == 320) + drawline(&yoffset,Vbuff,&pixelsToGo,page, + maxLines); + } + } + + else if((repeat >= 0) && (repeat <= 127)) + { + for(i=0;i<=repeat;++i) + { + fread(&(Vbuff[pixelsToGo+4-index]),1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + ++pixelsToGo; + if(pixelsToGo == 320) + drawline(&yoffset,Vbuff,&pixelsToGo,page,maxLines); + } + } /*end if*/ + }/*end while bodysize*/ + return(0); +} + + +/* drawline takes an array containing the scanline data we have just + read in, and dumps it to the screen using the putimage call in the + Borland BGI. The function then increments the yvalue to point to + the next scanline, then resets the pixels to go value (scanline) to + 0 again. If we are currently working on a scanline greater than can + fit on the screen (i.e. greater than 200), we just ignore it and don't + draw it to the screen. */ +void drawline(int *yoffset,unsigned char Vbuff[322], + int *scanline,long page, int maxLines) +{ + + // must split image because CHAR cannot hold a length of 320 + + unsigned char PBMbuff[162]; + char *imagePtr; + + if(*yoffset <= maxLines) +// putimage(0,*yoffset,Vbuff,COPY_PUT); + imagePtr = Vbuff; + x_bm_to_pbm(imagePtr, PBMbuff); + x_put_pbm(0,*yoffset,page,PBMbuff); + Vbuff[160] = 160; + Vbuff[161] = 1; + imagePtr+=160; + x_bm_to_pbm(imagePtr, PBMbuff); + x_put_pbm(160,*yoffset,page,PBMbuff); + ++*yoffset; + *scanline=0; +} + + diff --git a/MYMAP/SHOWLBM.CPP b/MYMAP/SHOWLBM.CPP new file mode 100644 index 0000000..391d569 --- /dev/null +++ b/MYMAP/SHOWLBM.CPP @@ -0,0 +1,395 @@ +#include +#include +#include +//#include +#include "xlib_all.h" + +/*-------------------------------------------------------------------------*/ +/* ILBM320 by Mark E. Kern. The following source code may be used, */ +/* modified, copied and shared with no obligation to the author */ +/* whatsoever, as long as this notice accompanies the source. */ +/* Please direct any questions to GEnie:MKERN1 or CS:70670,3120. */ +/* Code written in Borland C++ in ANSI C mode. Sept 9,1991 */ +/* ------------------------------------------------------------------------*/ + + +/***************************************************************************\ +** ** +* SHOWLBM by Todd Michael Lewis * +* * +* August 27, 1994 * +* * +* Using Mark E. Kern's code for the display of ILBMs, this routine was * +* developed to show ILBMs using the XLIB graphic display library with a * +* call to showLBM(x, y, LBM_FILE). * +* * +** ** +\***************************************************************************/ + +char testPBM[14] = +{ + 3, 1, + 1,1,1, + 1,1,1, + 1,1,0, + 1,0,0, +}; + +/* This defines the key information header contained in the ILBM format */ +struct headform{ + long flen; + char msg2[8]; + long hlen; + int width; + int length; + int xoff; + int yoff; + char planes; + char masking; + char compression; + char padbyte; + int transparent; + char x_aspect; + char y_aspect; + int screenWidth; + int screenHeight; +}; + +/* Structure used to store RGB values as they are read from the file */ +struct RGBColor { + char red; + char green; + char blue; +}; + +char RGBpalette[768]; + +int ReadHeader(FILE *picFile, struct headform *header); +int ReadCMap(FILE *picFile, struct headform *header); +int DumpToScreen(FILE *picFile, struct headform *header, long page); +void drawline(int *yoffset,unsigned char Vbuff[322], + int *scanline,long page,int maxLines); +long ReverseLong(long num); +int ReverseWord(int num); +int expo(int x,int y); +void setDAC(struct RGBColor pallete[256]); + +/* expo calculates x^y and returns it as an integer value. */ +int expo(int x,int y){ + int answer=x; + + while(y > 1){ + answer = answer * x; + --y; + } + return(answer); +} + +/* This code reverses the byte order in the long values read in from the + file. This is to satisfy Intel's byte ordering scheme. */ +long ReverseLong(long num){ + long actualnum; + + actualnum = ((num >> 24) & 0x000000ff) | + ((num >> 8) & 0x0000ff00) | + ((num << 8) & 0x00ff0000) | + ((num << 24) & 0xff000000); + return(actualnum); +} + +/* This code reverses the byte order in the word values read in from the + file. This is to satisfy Intel's byte ordering scheme. */ +int ReverseWord(int num){ + int actualnum; + + actualnum = ((num >> 8) & 0x00ff) | + ((num << 8) & 0xff00); + return(actualnum); +} + +/* main asks for the ILBM file to diplay, opens the file, and then proceeds + to: 1)Init the graphics. + 2)Read in the major header information. + 3)Read in the color map and set the DAC registers. + 4)Dump the image line by line from the file to the screen. + 5)Wait for a keypress before closing up the file and shutting down. */ + +void showLBM(int startX, int startY, char *filename, long page) +{ + FILE *picFile; + struct headform header; + + picFile = fopen(filename,"rb"); + ReadHeader(picFile,&header); + ReadCMap(picFile,&header); + DumpToScreen(picFile,&header, page); + fclose(picFile); +} + +/* ReadHeader takes a file pointer and starts to read in values into the + header structure previously defined. It first checks to see if the + file is an ILBM file by looking for the word "FORM", which should be + in the beginning of the file. */ +int ReadHeader(FILE *picFile, struct headform *header){ + int err; + char form[5]; + + fread(form,4,1,picFile); + form[4]='\0'; + if(strcmp("FORM",form) != 0) + return(1); + fread(&header->flen,sizeof(header->flen),1,picFile); + fread(&header->msg2,8,1,picFile); + fread(&header->hlen,4,1,picFile); + fread(&header->width,sizeof(header->width),1,picFile); + fread(&header->length,sizeof(header->length),1,picFile); + fread(&header->xoff,sizeof(header->xoff),1,picFile); + fread(&header->yoff,sizeof(header->yoff),1,picFile); + fread(&header->planes,sizeof(header->planes),1,picFile); + fread(&header->masking,sizeof(header->masking),1,picFile); + fread(&header->compression,sizeof(header->compression),1,picFile); + fread(&header->padbyte,sizeof(header->padbyte),1,picFile); + fread(&header->transparent,sizeof(header->transparent),1,picFile); + fread(&header->x_aspect,sizeof(header->x_aspect),1,picFile); + fread(&header->y_aspect,sizeof(header->y_aspect),1,picFile); + fread(&header->screenWidth,sizeof(header->screenWidth),1,picFile); + fread(&header->screenHeight,sizeof(header->screenHeight),1,picFile); + + /* Finished loading in the header, now reverse the values to make + them Intel compatible. */ + header->flen = ReverseLong(header->flen); + header->hlen = ReverseLong(header->hlen); + header->width = ReverseWord(header->width); + header->length = ReverseWord(header->length); + header->xoff = ReverseWord(header->xoff); + header->yoff = ReverseWord(header->yoff); + header->transparent = ReverseWord(header->transparent); + header->screenWidth = ReverseWord(header->screenWidth); + header->screenHeight = ReverseWord(header->screenHeight); + + return(0); +} + +/* ReadCMap first looks for the CMAP text in the file which denotes the + beginning of the color information. Once it finds the CMAP header, it + checks to see if the number of colors(x 3 for numbytes) matches the + length of the CMAP, which is read in after the header. If everything + is ok, it then loads up the array pallete with the rgb values contained + in the CMAP section of the file. ReadCMap then calls setDAC to load + the video DAC registers with the appropriate values. */ +int ReadCMap(FILE *picFile, struct headform *header){ + char form[5]; + long CMAPsize; + struct palettetype pal; + unsigned char rgbTuple[3]; + int x; + int numColors; + struct RGBColor pallete[256]; + + fread(form,4,1,picFile); + form[4]='\0'; + if(strcmp("CMAP",form) != 0) + return(1); + fread(&CMAPsize,sizeof(CMAPsize),1,picFile); + CMAPsize=ReverseLong(CMAPsize); + numColors=expo(2,header->planes); + if(CMAPsize != (numColors*3)) + return(1); + for(x=0;x>2; + pallete[x].green = rgbTuple[1]>>2; + pallete[x].blue = rgbTuple[2]>>2; + RGBpalette[x*3] = rgbTuple[0]>>2; + RGBpalette[x*3+1] = rgbTuple[1]>>2; + RGBpalette[x*3+2] = rgbTuple[2]>>2; + } + setDAC(pallete); + return(0); +} + +/* setDAC uses some pretty sophisticated funtions of Borland C. We first + set up a bunch of variables to hold CPU register values in type REGS. + Once we have done this, we can make some low level calls to the video + BIOS to set up the colors we want in the picture. We enter a loop that + sets each register to a RGB color combination and calls the BIOS routine + to set the specific DAC register we are interesed in. */ +void setDAC(struct RGBColor pallete[256]) +{ + union REGS regs; + int i; + + /* This sets up each of the 16 pallete entries to enable the proper + DAC register when the pallete value is combined with the pixel + value. */ +/* for(i=0;i<16;++i){ + regs.h.ah = 0x10; + regs.h.al = 0x00; + regs.h.bh = i; + regs.h.bl = i; + int86(0x10,®s,®s); + } + + regs.h.bl = 0x00; + for (i=0;i<256;++i){ + regs.h.ah = 0x10; /* set specific DAC rgb register value */ +// regs.h.al = 0x10; /* subfunction number, set register */ +// regs.h.ch = pallete[i].green; /* CH contains the green value */ +// regs.h.cl = pallete[i].blue; /* CL contains the blue value */ +// regs.h.dh = pallete[i].red; /* DH contains the red value */ +// int86(0x10, ®s, ®s); /* int 10h */ +// ++regs.h.bl; +// }*/ + x_put_pal_raw(RGBpalette, 256, 0); + +} + +/* DumpToScreen unpacks the graphics information contained in the file. It + first searches for the BODY header which precedes the actual graphics + data. If we don't find the BODY header, the program will just crash, since + I don't look out for the end of the file here. Once it finds the header, + it reads in the next value, which is the length of the body. We use this + value to read in the the next n number of bytes as specified by the body + length. ILBM seems to use a run length encoding scheme to pack the data. + The function looks at the first byte read. If the first byte read in is + between -1 and -127, then this means we are to read in the next byte + value, and repeat this value 1 to 127 times depending on the first byte + value we read. I.E. if the first value we read was -1, we read the next + value and repeat this value in the scanline 2 times (1-(-1)). If the + header value was -128, we would do nothing, as this is the no-operation + code. If the header value, call this n,is between 0 and 128, we interpret + this to mean the next n bytes are to be read in normally and stuffed + into the scanline without any sort of expansion or processing. Once this + function has read enough bytes to make up a scanline (320 bytes in VGA + mode 13h), we call a routine that dumps the scanline we just built to + the screen. We keep doing this until we run out of bytes to read. Note + that it is possible for an image to have more than 200 scanlines of data, + but our scanline dump routine ignores lines past 200. */ +int DumpToScreen(FILE *picFile, struct headform *header, long page){ + int yoffset=0; /* the y coord of the scanline */ + int index=0; /* index into the scanline array */ + int pixelsToGo=0; /* number of pixels to go to form a line*/ + int i; /* loop counter */ + int maxLines = header->length; + unsigned char Vbuff[322]; /* buffer to hold the scanline. It + is 4 bytes longer than the regular + length so it can hold hsize and + vsize data for the putimage call */ + int repeat; /* how many times to repeat the byte*/ + char repeatValue; /* raw byte value from file */ + char bufValue; /* raw buffer value read from file*/ + long size; /* size of the BODY segment */ + long bytesToGo; /* bytes to go till end of BODY */ + char form[5]; /* holds header */ + fread(form,4,1,picFile); + form[4]='\0'; + while(strcmp("BODY",form) != 0){ /* find the BODY */ + form[0]=form[1]; + form[1]=form[2]; + form[2]=form[3]; + form[3]=fgetc(picFile); + } + fread(&size,sizeof(size),1,picFile); + bytesToGo = ReverseLong(size); + +// Vbuff[0]=(320-1) & 0xff; + /* set up height and width of + our scanline. Since we use + putimage to dump our scanline, + we have to tell it how big + the 'shape' we are drawing + to the screen is. In our case + the shape is 320x1 in size.*/ +// Vbuff[1]=(320-1) >> 8; +// Vbuff[2]=1; +// Vbuff[3]=0; + + Vbuff[0] = 160; + Vbuff[1] = 1; + + index = index+2; + +// index = index+4; /* update the index into the scanline */ + + /* Check to see if the compression is of the proper type, which in + our case is 1. If it is uncompressed, or if we don't know the + compression type, we exit the program. */ + if(header->compression != 1) + return(1); + while(bytesToGo > 0) + { + fread(&repeatValue,1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + repeat = repeatValue; + + if (repeat == -128); + else if((repeat <= -1) && (repeat >= -127)) + { + fread(&bufValue,1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + for (i=0;i<(1-repeat);++i) + { + Vbuff[pixelsToGo+4-index] = bufValue; + ++pixelsToGo; + if(pixelsToGo == 320) + drawline(&yoffset,Vbuff,&pixelsToGo,page, + maxLines); + } + } + + else if((repeat >= 0) && (repeat <= 127)) + { + for(i=0;i<=repeat;++i) + { + fread(&(Vbuff[pixelsToGo+4-index]),1,1,picFile); + if(ferror(picFile)) + { + } + --bytesToGo; + ++pixelsToGo; + if(pixelsToGo == 320) + drawline(&yoffset,Vbuff,&pixelsToGo,page,maxLines); + } + } /*end if*/ + }/*end while bodysize*/ + return(0); +} + + +/* drawline takes an array containing the scanline data we have just + read in, and dumps it to the screen using the putimage call in the + Borland BGI. The function then increments the yvalue to point to + the next scanline, then resets the pixels to go value (scanline) to + 0 again. If we are currently working on a scanline greater than can + fit on the screen (i.e. greater than 200), we just ignore it and don't + draw it to the screen. */ +void drawline(int *yoffset,unsigned char Vbuff[322], + int *scanline,long page, int maxLines) +{ + + // must split image because CHAR cannot hold a length of 320 + + unsigned char PBMbuff[162]; + char *imagePtr; + + if(*yoffset <= maxLines) +// putimage(0,*yoffset,Vbuff,COPY_PUT); + imagePtr = Vbuff; + x_bm_to_pbm(imagePtr, PBMbuff); + x_put_pbm(0,*yoffset,page,PBMbuff); + Vbuff[160] = 160; + Vbuff[161] = 1; + imagePtr+=160; + x_bm_to_pbm(imagePtr, PBMbuff); + x_put_pbm(160,*yoffset,page,PBMbuff); + ++*yoffset; + *scanline=0; +} + + diff --git a/MYMAP/SHOWLBM.OBJ b/MYMAP/SHOWLBM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f0b6ac8bb07b6a2ab2b569637023f06e4bafa86e GIT binary patch literal 7151 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 literal 0 HcmV?d00001 diff --git a/MYMAP/SOUND.OBJ b/MYMAP/SOUND.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..60d34d511d4c34eadd3642bf7609c88a7aa2634b GIT binary patch literal 13347 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 WY5g0ztlyy9`Yo=p#yv>sE%3i3(0bDV literal 0 HcmV?d00001 diff --git a/MYMAP/SPRITE4.LBM b/MYMAP/SPRITE4.LBM new file mode 100644 index 0000000000000000000000000000000000000000..4f809a3bee0f73f198e3afe6b842773138a56f74 GIT binary patch literal 30918 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 Q46HxN?fGTKGKSp#AA9$5p#T5? literal 0 HcmV?d00001 diff --git a/MYMAP/SV.EXE b/MYMAP/SV.EXE new file mode 100644 index 0000000000000000000000000000000000000000..dd0f1a2e05cc29415e812e17b1fd814f521ab283 GIT binary patch literal 6843 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 V%%!#5N$qh;`G3tHxPi?E_yV|0GvxpP literal 0 HcmV?d00001 diff --git a/MYMAP/TIMPANI.FNT b/MYMAP/TIMPANI.FNT new file mode 100644 index 0000000000000000000000000000000000000000..8907f0a7662d9847556e2847d90a4e27b0d51f44 GIT binary patch literal 1156 zcmYjR!D`$v5FNByRk)@Y;loml5het)^iXozgK>iqf#kU7oc059=(&_)`UU$LKK3K> zS)uQZ?2wnpejYu|j7Fo4@>xE>8ba_dVv3^Jrfdj5f({Yqn`2QP`eWn8xyRee+q=i_ zBA;wgSbGfN8#LD1ZSBsN>eiNCtZ~)@)){aOqcX(ve)OInZd+)L?8v`l!@EO>4O|fP zV4E(Z!P39zp23Hdk`B~% zm{2WarUAU|CZcP>k-up%xW|nnfTRBBG+mydq4+l+;E-mBm`V{siG0#cU6%Dt`ir=m zgg)o_^>taUSLQQ4JUl&}FBke5=nr5%Bi@XSxU2nq8SYm*MXz8)K`7dnm_{q0Q=jYdp+MbaJMDxWM>RpLz~I65f!ley3>QuvsfAT z=um(aJjEssIAhr1lI_4cvnRO)?F}>-6j`J8G279NIStXi&6?QK_Vtzv=u>dH2);L- zEunBlP)+{UdH8?164)d7yC01Umrc$s=ZW~RuW=*!$9&3Qy`D89s~wx={bFW!ytB&d znuQ}r^_Rr@gQH2x5OP1`cOaD3?%3Nc`x*7w!+_g}QR=;3cOba#0Pm{XZU|Q4&gwHi F?0>ggUdR9d literal 0 HcmV?d00001 diff --git a/MYMAP/TINY4.FNT b/MYMAP/TINY4.FNT new file mode 100644 index 0000000000000000000000000000000000000000..d213c3d75b1fbbae057525a75ca35149c3da6874 GIT binary patch literal 484 zcmXYu!D<6B3`C7>O_m_sVoEW^h?3*dgAc`&67>1`g#Db*aZ<5steq!m?EMTmtjIt> zIC&c1vI}5)I@Olrz}Q5wxlJ3a8Y;k4s+JMP=;tf0LsyeS85LF;yd36b042S2^F7AV3`u~5o_s;0$SdL|73wwGrIF>w`J9lQJ_#h`> zOqE)JT7g=DT7g=DT7mzx0!vD{$3wv%7CTrNqeqbkiG5*8Q;^ufukHK@mdm5#CGluV zYPejUoD#>T1h0u77UvJ@19!~NUJwT=hE1sp;%4JlPMCt?(K&?ha#|dG1-$0K1Qtif zSdKX|fYfGpaW*ac>(8?1J9|e$S<{rQOQ!=Womb(RP8M@M7iP zwqS=whIJ(2MAnGvW#Z6X=&g(IJ9t$8*7eYV4C~2GJZ$8)0lY>;3K!eZLC{$I>cHVe zfdm9T5ll86U+Wd&K|akdPHc{dh?hL6hPAh29M}|Q;B`J7!2?F5oW03r zCyjS&!r?bj;W~}?v)7C?aUGYPYRZ}ZaD^M#?D^M#?D^M$tSAhj3&opHv z@Wmo$2atku7o>>NCe+j=^whNg*2|g93*O9|tu(R0H zWT_tv_AKRMU}BdY^?k=fEHwi&w`>*8;Vo`tSjSO#VX$vo$)8muTt^ZCM6PAxV8ZMv z=)$8Au#*<$m$RLC?}2c_Na12jJ5jC0@9)_N2%-aque}61!4G>q1QkvRv<7DfED1cu zcyLeiiwEG@63+%N)lh54IIt3>`VG2&6?16JTKuB;n@e*6_6u{#rbyb>;4tme6VCIc zT?3ETZ0TOQSNyzm0SPa?Px->gM6YEAZ!DeZe&Q#Ne{KZL$L3t7U7~NlY|Z~qNP?g- zXZR@wjoqb~U)qYxkmNe3#L=)6KM^kPZIA~30-NYk(M{S(HdU!NI<5&ak!Web% zv~Jh(x-;gZF_^Xncol-|+kmc8(nfgP@LsS{T7;2MIhwZ`9W-U|3IpzBs3w zZNzWR89&SBBm&sb{5|Ms@|=+lM-xep9ba72mINYBmP>5|6&Qh&A^8>zxIzm=EQGq z?`6qj1ApdruiNtG=D+s<;O2qLj{9eMfa7Lz%*OzKeSL}j=ap<@{a$tqt=v8ShZ{V0 zx>SBYe`9!^A;DwfWbW>7?fw_*2fIh6AzR?2i`8eZ{>~mexElsq?45<6MaSFqI?8WV za=-8%&WXXnWvsm(a&Yk-&-?zS_DLgXI`jMtB-5Z;PVB^z;D@~)l8`n2@x#2vIM-i& zay?`7hetfMF*qzgci=SI!XMY4cvy$5`S?K(PZf8F6+D$b9ewhq&n^HTt^daQ`DP3z zROVD%b=@P~J~D<88R2)<0vty>v(Vc7gJNcHSNu%6YF;Z)D^M#?D^M#?D^M%&f2n}} z*?Z9+zaxcXpT?2zy?IBz4*TY;LMU0w*J48@-X{`#jat9Z{yy}=S`+{uyX?AnGXLd3 zzckUBx06>Azf6ALar){Mk{*FJWA?`ItY1$4V|W`AbI;3vkTD*-t*jT<+RGVDHoxD) z2Iuj6ui(2BHX*wn2I&PJ>BanjgjH1V{1Hi`V)OW&`3LjCMV6KS3B&>1jXMG|h^?vj i@xhby+`PMXW0;qHyfR1p3B-2Q(av{`?f&biufV@1TTpob literal 0 HcmV?d00001 diff --git a/MYMAP/VAR6X8.FNT b/MYMAP/VAR6X8.FNT new file mode 100644 index 0000000000000000000000000000000000000000..6cd3b0d607148733a4c61d3f8521fda6eb66d7f6 GIT binary patch literal 877 zcmYL{3v$~q3`9YNqCQn^^I*2C7rY_gZ%4NQVh_4o7Pm9!#8)#mE0Cht}-j;2uBwyo2p^mJ?C zsh)1GP;V5X8Og417+2&#Lt|>hFd$0H;2d;dRCp5+p(sNt#`)_tUGUl6ySo({>8nsm zNiCMm-M5AADJ>~Mbr>mf-h&1ipn=yAnz6Q0Eh+|9u~x^ZcM7@0w^Bk=$bi(wR+86AVr2G-RoWy{>qG#Ky)d zSz(g%-+K8=7o8p?A^D0bYZg&xD>SF6k}lteJb+Y0)a6uKXT5cf+T z?vvR!2_*RIBT%Xw`j`!cq8F80W-Yu*YCj zhS`j4dhoa`XLcmAwpj~3VVK7cGziN2S8gETKq}SF=%R!JZx+=f0vD`_s9`}tv(`DE zEu3;@A3EoleXq^YT2yOAgrw-GqwdNYHgGy2=W!_lWAN~#4oLJ;d475M z#)&T0qFd!1eQCGbcDps8tzZ`gu4Zru;aWAxRG?Xrf%N>g^XtC9A$!!i)p`JV-7d0I zvIvhR@==pZ|Ff#HKaS(R@2Du(*1nbky=|A+z~x$#(KSx)d*^Ds;<*&rg@`q{;aIQ( za79DVW3RQYD^wo){eUw;AlCW-`c=dip1YvChV?v_^Yj;;CfNXu{n(6IM$8M^*gGjd z8S65dsDasVAw}r%EXSs21TM0o6*(LjvchF{Ko}7$h`yi}*_?ut+KdN986O0u=|nsX z$S#Z5b-Pn!iN2tLckF}c^I0ov{BoQxOrT sM5XojNV3pY4%z7Jf~-da(VIzzRQhEnwJx_o-Xr08N@x3YN_*G%4~5!=mH+?% literal 0 HcmV?d00001 diff --git a/MYMAP/VARSWISL.FNT b/MYMAP/VARSWISL.FNT new file mode 100644 index 0000000000000000000000000000000000000000..d1b2e5653395fc22d251f79555b6c8dbd9aa0e5d GIT binary patch literal 964 zcmX|A!HU~J3{_=icIpmh7)%Mlm|}(!Lg;B(dN83F(@Xy#$5ITv?4jqd9}(C?f22Q9 z=&$tFZ|IZ8StZ2E(@5`)B)_BA^kTwl#6(=zD=KY!!lxy2u^U1hIw41&-$(!LE76_Q z_lJ~@h$68Vmom&!u@vLVxiwnhDUImwdfW(!8vT32pg=QCP8E_`AlisHg^7SgFR2Hn zUbLtWq3(SLtmh^cEHF1Ew@=<%E;5pSEjM*Bss}>Q>&;isRC!_XMO9-0K@CK3NKAnW z-i*`F=jZP{l8ds`Oz{Q*W7a&f6`jEYoy8=d2!pZC>F0nfEcqkKjdjg>4>K1T$CZ zL-kW-Q-kL!dD*Kn{T{rGCYoV4LhKTFHp4*X literal 0 HcmV?d00001 diff --git a/MYMAP/WALLS1.LBM b/MYMAP/WALLS1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..4f00a240bebf89712f241550203c9eb5c7b22fa6 GIT binary patch literal 51072 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 jQ^|@FN+TVhO^&_Y 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 literal 0 HcmV?d00001 diff --git a/MYMAP/WALLS5.LBM b/MYMAP/WALLS5.LBM new file mode 100644 index 0000000000000000000000000000000000000000..ad251523b21e5f2688ab3eadd38fd0d5b274da0f GIT binary patch literal 51102 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 UCVbDyIMTSAoHsBczwcrHU$}&g-2eap literal 0 HcmV?d00001 diff --git a/MYMAP/WALLS6.LBM b/MYMAP/WALLS6.LBM new file mode 100644 index 0000000000000000000000000000000000000000..ec205ce5725ee72191c86fbf98a72675fb4ad106 GIT binary patch literal 50656 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 literal 0 HcmV?d00001 diff --git a/MYMAP/_BACKUP_.LBM b/MYMAP/_BACKUP_.LBM new file mode 100644 index 0000000000000000000000000000000000000000..eaf8ff1aad4e76ba9c51f3f52f4a12cc874e6f3c GIT binary patch literal 51250 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 +#include +#include +#include +#include +#include + +#include "sgrab.h" +#pragma hdrstop + +#define TRANSCOLOR 0 + + +typedef struct +{ + short leftoffset; // source pixels to the left of midpoint + short width; // last row used - first row + 1 + short collumnofs[256]; // only [width] used, [0] is &collumnofs[width] + // 0 collumnofs means empty row + // the data is : top, bottom, pixels... +} dsprite_t; + + + +/* +============== += += GrabDSprite += += filename dsprite x y width height += +============== +*/ + +void GrabDSprite (void) +{ + int x,y,xl,yl,w,h; + byte far *screen_p; + int linedelta; + dsprite_t far *header; + int first,last; + + GetToken (false); + xl = atoi (token); + GetToken (false); + yl = atoi (token); + GetToken (false); + w = atoi (token); + GetToken (false); + h = atoi (token); + + +// +// find first and last collumn +// + screen_p = MK_FP(0xa000,yl*SCREENWIDTH+xl); + for (first=0 ; first=0 ; last--) + { + for (y=0 ; yleftoffset = w/2 - first; + header->width = w; + +// +// start grabbing rows +// + lump_p = (byte far *)&header->collumnofs[header->width]; + + screen_p = MK_FP(0xa000,yl*SCREENWIDTH+xl+first); + for (x=0 ; x< w ; x++,screen_p++) + { + // find first good pixel + for (first=0 ; firstcollumnofs[x] = 0; // nothing in this collumn + continue; + } + // find last good pixel + for (last=h-1 ; last>=0 ; last--) + { + if ( *(screen_p+last*SCREENWIDTH) != TRANSCOLOR ) + break; + *(screen_p+last*SCREENWIDTH) ^= 0xff; + } + + // grab that segment + header->collumnofs[x] = lump_p - (byte far *)header; + *lump_p++ = h - 1 - first; + *lump_p++ = h - 1 - last; + for (y=first ; y<=last ; y++) + { + *lump_p++ = *(screen_p+y*SCREENWIDTH); + *(screen_p+y*SCREENWIDTH) = 0xff; + } + } +} + + diff --git a/SGRAB/DOOMGRB.OBJ b/SGRAB/DOOMGRB.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..043fa2efaa4745f3d0169eaee79343020058d001 GIT binary patch literal 2238 zcmah~du&r>6#so+@7leHvf=C=jPY;~h6S7gGJ@OM-L|o7YugQw!DVbMD~xq^cWjtJ zNM^zru=0kC?I)M+<(jxGYIQY(bfsfMKO6wT8cM5_Y ztW^*UIH_LDe_MIlz10m2Qpt&U8}H#We2y>i6~4hyoIpPYa2umwOkf5!jcsQ#+spQ| zkJ({%gdJnu>@2&)uCN z=W$&{M=}gjee?E4sgZJ0w)5F&?MOwEWcACw&^CVq{!mhA!*i&pxlDklfpXB&kp#UY zYlwdBcxGY`viK=2J`+1SQjjQ>d!^T!gEBU09JzNnm|4T*qPZgx2~xEjs>fOlFiQpK z1+3Npvmn2d4zN_o8m``K@ivBovY!y08aD4P8A{a)^JktB>l6zee^PCehLhw>J%r6W zWq+a`NsV&2HW&yX@-`Xy6Uhbb8-_;a6bLl= zWdR8-!CJXaKypo}o;Ir?6llsiE^y%V!8T4epduP;kIkrDQ+V8cfXYI97tcKkOc+8$ z9Gf~cI(2Ad>d+oj78fAdQk95o1%(rj64&hvLpy`|cQaor#LE z0&%c7B90v5h-Ls0@p`24D)D?&@MGUF#kw|L&5sz!ksq=0{HT@posU*t*PUtqNr+@{ zMChJ8P|V;&Ers!cJGk5BeCpw$7IPkQEssyMI^5Pru_AG}IW5}Lcb@XouJl+1dSYKt zs$s1`VvIe+nDvm07{|LjbqFZ@wLrYueh$&oeHT>9bJUKoPaGEF3#mtHB407Y>2i*{ zVv}6a9fOw(9yp_YhRNZ{r`K(W(f7s&J@64V*BN=>5J@=<1xoc<NU=R!jK@bE%FbIMmxG)F~1P2Zb zf&)QtAqWlx!GRz+aNzgF>DVHmM=G^^^JUUBU^ot zF3%*3-wb9);^{kK+0ZZE2=YC>(GEYY@rGO6WW)K>aJ+ugT)uccf3Z6~*d8CO4|kT$ zC-b*YCNCcp^;z>zntx!pc+>1X(WE9EZwW?g&8+Z}InVJFCoHjpoF_k{>ka9+37zMG z#8^%wA(q{jKo?`=E+2A|MqXqqE163vBS|C_UmWQwSAUnQoaHEu?B$oNWhpZ$CA-4l z9r`W=+*(^cS}T6H7QDBnH0_doJEv}EY^@MQjN^;7kQ`dodgKA~%Od2*hxT^q-DaC28QDCi-R@#pHl2>k(^C)I4tdtQ=DI_CZ$z(G&=00W;et4- zNa78{q$V5g$+PCq9{Re&pIr>Y{-1pu3}QW#kfuXMqm*$zq9}4EWx;G(YCk6|7gJW% doEM{=GJ#&RF9P$e-7)l5x|P>&{U4(D^FP)>I4%GH literal 0 HcmV?d00001 diff --git a/SGRAB/DP_CPAL.$$$ b/SGRAB/DP_CPAL.$$$ new file mode 100644 index 0000000000000000000000000000000000000000..06d7405020018ddf3cacee90fd4af10487da3d20 GIT binary patch literal 1024 ScmZQz7zLvtFd70QH3R?z00031 literal 0 HcmV?d00001 diff --git a/SGRAB/DP_OPAL.$$$ b/SGRAB/DP_OPAL.$$$ new file mode 100644 index 0000000000000000000000000000000000000000..17bc906904e0ec42bfba89bb336a0ecce617ba91 GIT binary patch literal 1024 zcmbu;5xDAp9LMpu1;HQ)4h#kd27^H`2nK^eFbD>NU=R!jK@bE%FbIMmxG)F~1P2Zb zf&)QtAqWlx!GRz+aNzgF>DVHmM=G^^^JUUBU^ot zF3%*3-wb9);^{kK+0ZZE2=YC>(GEYY@rGO6WW)K>aJ+ugT)uccf3Z6~*d8CO4|kT$ zC-b*YCNCcp^;z>zntx!pc+>1X(WE9EZwW?g&8+Z}InVJFCoHjpoF_k{>ka9+37zMG z#8^%wA(q{jKo?`=E+2A|MqXqqE163vBS|C_UmWQwSAUnQoaHEu?B$oNWhpZ$CA-4l z9r`W=+*(^cS}T6H7QDBnH0_doJEv}EY^@MQjN^;7kQ`dodgKA~%Od2*hxT^q-DaC28QDCi-R@#pHl2>k(^C)I4tdtQ=DI_CZ$z(G&=00W;et4- zNa78{q$V5g$+PCq9{Re&pIr>Y{-1pu3}QW#kfuXMqm*$zq9}4EWx;G(YCk6|7gJW% doEM{=GJ#&RF9P$e-7)l5x|P>&{U4(D^FP)>I4%GH literal 0 HcmV?d00001 diff --git a/SGRAB/DP_PREFS b/SGRAB/DP_PREFS new file mode 100644 index 0000000000000000000000000000000000000000..8b6c3bcf9f41f279d0042cc773bde0223cf4575d GIT binary patch literal 324 zcmWe&U|{(FA4o7Tu!2cOMlb~>8aRLqZe$TG?A;6vo?qAs7@Smcy+Jexhx}*w@WGSe zL;ib)4>k;&I9!1k#0KHddiOX%^md>aNbP*pdz`*M7(O@xaS3|?gXMFE4}Tb4S@d2o ze7FQucjhs}2Ym*0&b)sNAKn4g2LsJs@`2%l641pTd>9@~5fEdX2gG+6bvPBd8$55Y zhUu>W@;3qT9w5F2#7RJNK{PUU0IF|g`pom{0#E{I4@hnU<2}wtY`Na}@LHh!Ef9v9 F2LMsMVtD`n literal 0 HcmV?d00001 diff --git a/SGRAB/DP_SPAL.$$$ b/SGRAB/DP_SPAL.$$$ new file mode 100644 index 0000000000000000000000000000000000000000..06d7405020018ddf3cacee90fd4af10487da3d20 GIT binary patch literal 1024 ScmZQz7zLvtFd70QH3R?z00031 literal 0 HcmV?d00001 diff --git a/SGRAB/GENGRAB.C b/SGRAB/GENGRAB.C new file mode 100644 index 0000000..2a34113 --- /dev/null +++ b/SGRAB/GENGRAB.C @@ -0,0 +1,447 @@ +#include +#include +#include +#include +#include + +#include "sgrab.h" +#pragma hdrstop + + + +typedef struct +{ + unsigned width,height; + unsigned planeofs[4]; + int orgx,orgy; // from here on out is optional + int hitxl,hityl,hitxh,hityh; +} pic_t; + +typedef struct +{ + short width,height; + short orgx,orgy; + byte data; +} lpic_t; + +typedef struct +{ + unsigned height; + char width[256]; + unsigned charofs[256]; +} font_t; + + + + +/* +============== += += GrabRaw += += filename RAW x y width height += +============== +*/ + +void GrabRaw (void) +{ + int x,y,xl,yl,xh,yh,w,h; + byte far *screen_p; + int linedelta; + + GetToken (false); + xl = atoi (token); + GetToken (false); + yl = atoi (token); + GetToken (false); + w = atoi (token); + GetToken (false); + h = atoi (token); + + xh = xl+w; + yh = yl+h; + + screen_p = MK_FP(0xa000,yl*SCREENWIDTH+xl); + linedelta = SCREENWIDTH - w; + + for (y=yl ; ywidth = w; + header->height = h; + + lump_p = (byte far *)&header->orgx; + +// +// optional origin offset +// + if (TokenAvailable()) + { + GetToken (false); + header->orgx = atoi (token); + GetToken (false); + header->orgy = atoi (token); + lump_p = (byte far *)&header->hitxl; + // + // optional hit rectangle + // + if (TokenAvailable()) + { + GetToken (false); + header->hitxl = atoi (token); + GetToken (false); + header->hitxh = atoi (token); + GetToken (false); + header->hityl = atoi (token); + GetToken (false); + header->hityh = atoi (token); + lump_p = ((byte far *)&header->hityh)+1; + } + } + + +// +// grab in munged format +// + for (p=0 ; p<4 ; p++) + { + header->planeofs[p] = lump_p - lumpbuffer; + + for (y=0 ; y=clipplane) + *lump_p++ = 0; // pad with transparent + else + { + *lump_p++ = *screen_p; + *screen_p = 0; + } + screen_p += 4; + } + } + } + +} + + +/* +============== += += GrabLinearPic += += filename LPIC x y width height [orgx orgy] += +============== +*/ + +void GrabLinearPic (void) +{ + int x,y,xl,yl,xh,yh,w,h,p; + int clipplane; + lpic_t far *header; + byte far *screen_p; + + GetToken (false); + xl = atoi (token); + GetToken (false); + yl = atoi (token); + GetToken (false); + w = atoi (token); + GetToken (false); + h = atoi (token); + + header = (lpic_t far *)lump_p; + header->width = w; + header->height = h; + + +// +// optional origin offset +// + if (TokenAvailable()) + { + GetToken (false); + header->orgx = atoi (token); + GetToken (false); + header->orgy = atoi (token); + } + else + header->orgx = header->orgy = 0; + + lump_p = (byte far *)&header->data; + + +// +// grab it +// + for (y=0 ; yheight, and += advances sx,sy += +=================== +*/ + +int GrabChar (void) +{ + int y; + byte far *screen_p,b; + int count; + +// +// look for a vertical line with a source pixel +// + + do + { + screen_p = MK_FP(0xa000,sy*SCREENWIDTH+sx); + for (y=0 ; yheight ; y++) + if (screen_p[y*SCREENWIDTH]) + goto startgrabing; + if (++sx == SCREENWIDTH) + { + sx=0; + sy += font->height+1; + if (sy+font->height > SCREENHEIGHT) + { + printf ("Ran out of characters at char %i\n",ch); + exit (1); + } + } + + } while (1); + +startgrabing: +// +// grab the character +// + font->width[ch] = 0; + font->charofs[ch] = lump_p - (byte far *)font; + + do + { + font->width[ch]++; + + screen_p = MK_FP(0xa000,sy*SCREENWIDTH+sx); + count = 0; + + for (y=0 ; yheight ; y++) + { + b = *screen_p; + if (b) + count++; + if (b==254) // 254 is a grabbable 0 + b = 0; + *lump_p++ = b; + screen_p += SCREENWIDTH; + } + + if (count) // color the grabbed collumn + for (y=0 ; yheight ; y++) + { + screen_p -= SCREENWIDTH; + *screen_p = 1; + } + + if (++sx == SCREENWIDTH) + { + sx=0; + sy += font->height+1; + return; + } + + if (!count) // hit a blank row? + { + lump_p -= font->height; + font->width[ch]--; + return; + } + + } while (1); +} + + +/* +=================== += += GrabFont += += filename FONT startchar endchar [startchar endchar [...]] += +=================== +*/ + +void GrabFont (void) +{ + int c; + int x,y; + byte far *screen_p; + int top,bottom; + int startchar,endchar; + + font = (font_t far *)lump_p; + _fmemset (font,0,sizeof(*font)); + +// +// find the height of the font by scanning for quide lines (color 255) +// + screen_p = MK_FP(0xa000,0); + + top = -1; + for (y=0;y<10;y++) + if (screen_p[y*SCREENWIDTH] == 255) + { + top = y; + break; + } + + if (top == -1) + MS_Quit ("No color 255 top guideline found!\n"); + + bottom = -1; + for ( y++ ; y<100 ; y++) + if (screen_p[y*SCREENWIDTH] == 255) + { + bottom = y; + break; + } + + if (bottom == -1) + MS_Quit ("No color 255 bottom guideline found!\n"); + + font->height = bottom-top-1; + lump_p = &(byte)font->charofs[256]; + + sx = 0; + sy = top+1; + +// +// grab ranges of characters +// + do + { + GetToken (false); + startchar = atoi (token); + GetToken (false); + endchar = atoi (token); + + for (ch=startchar ; ch<=endchar ; ch++) + GrabChar (); + + } while (TokenAvailable ()); +} + + diff --git a/SGRAB/GENGRAB.OBJ b/SGRAB/GENGRAB.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..4642333a5f32001892b1b07553cbc85736d5fd04 GIT binary patch literal 6147 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 literal 0 HcmV?d00001 diff --git a/SGRAB/LNXGRAB.C b/SGRAB/LNXGRAB.C new file mode 100644 index 0000000..e5ec394 --- /dev/null +++ b/SGRAB/LNXGRAB.C @@ -0,0 +1,241 @@ +#include +#include +#include +#include +#include + +#include "sgrab.h" +#pragma hdrstop + +#define TILEBOXWIDTH 24 +#define TILEBOXHEIGHT 32 +#define TILESPERLINE 12 + +#define TILEWIDTH 16 +#define TILEHEIGHT 30 + +#define MASKCOLOR 255 + +/* +============== += += GrabLynxWalls += += filename LYNXWALLS numtiles += +============== +*/ + +void GrabLynxWalls (void) +{ + int x,y,xl,yl,w,h; + int t,tiles; + byte far *screen_p; + + GetToken (false); + tiles = atoi (token); + + for (t=0 ; t=0;lastline--) + { + for (x=0;x=0;lastx--) + if (quadrant[y][lastx] != MASKCOLOR) + break; + + // leave space for line length in bytes + length_p = lump_p; + lump_p++; + + // grab the line, packing pixels if 3 in a row + databyte = bit = 0; + + for (x=0 ; x<=lastx ; x++) + { + pixel = quadrant[y][x]; + if (pixel==MASKCOLOR) + pixel = 0; + pixel <<= bit; + databyte |= pixel; + bit += 4; + if (bit>=8) + { + *lump_p++ = (byte)databyte; + bit-=8; + databyte>>=8; + } +#if 0 + // check for a run of pixels + for (rle=0 ; x+rle<=lastx ; rle++) + if (quadrant[y][x+rle+1] != pixel) + break; +#endif + + } + if (bit || *(lump_p-1)&1 || lump_p == length_p+1) + // if bits left, lynx bug, or nothing on line, write a final byte out + *lump_p++ = (byte)databyte; + + // write out the length + *length_p = lump_p-length_p; + } + +} + + +/* +============== += += GrabLynxScale += += filename LYNXSCALE spot += +============== +*/ + +void GrabLynxScale (void) +{ + int spot,x,y,xl,yl,xh,yh; + byte far *screen_p,pixel; + int linedelta; + + GetToken (false); + spot = atoi (token); + + xl = spot%5*64+1; + yl = spot/5*62+1; + +// +// grab the source block +// + xh = xl+63; + yh = yl+60; + + screen_p = MK_FP(0xa000,yl*SCREENWIDTH+xl); + linedelta = SCREENWIDTH - 63; + + memset (counts,0,sizeof(counts)); + + for (y=yl ; yZ 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 F{tGvERy_a! literal 0 HcmV?d00001 diff --git a/SGRAB/MINMISC.OBJ b/SGRAB/MINMISC.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f6fdbc60e49fa7ce5f6a51ba54ab2c3e0f452c44 GIT binary patch literal 1508 zcmai!Z)_8F7{|ZA>-E~T1B{aGx<9NkH&NsaLD4{nbl2Wm?fSoUBV*@MJ8cBkbk_og z7c(S!+ts)i1{PuriN5ibF(isFbbE0ji1U?ic!^Q)AI_HqTvngEc9X<0l3wrW^>fen zx#xMlH|;~aB#qK%D3X@bDVfeOE0pBFbrHb!jQrw$|G;GV*!YRp{qpYJ{(aKkd%6?2 z>%d992l#!txF9|#$u+%~h{L{XVyApybReFJ24X>ZG!m1e*S8qKAk*4NSnhHs-T1Mi^zjC5)HfC~0LMw^GM_w^Xdj|C+?X_49UM znUn;yz>CMwg#d=|aU-+E*_!z`3;DNf&5_1G!+1{LK{9-4ynI}=L|BpM1vvjB-L`~@ ztLtal$7PnpFpgpd=kYnd#8>zR3%I1afP1v9w2=;KOU=6F57v6-+_OMybEDNvXgI^m z@nFcQ1_PM@Z-1!+>9m6mAvl+EIr%MG)>n((I64JqCZJ-mUYAp~{ zm0DfJ9eV~{)(k`(vVks~TnF;-*w=V`P;Co# z0(WhOdTo~$u#@aSWsc^?wx~mCRkmi6pfMzYy*5myw&BCptbXbdab#{A(Qb=QR!A4L zB-R7_Es*gnV1s@UBl=Dns;fG#9xG01J^{i+X>v-{1d67LZx>XJ_OAWnRnW#{joW8$ z^Oqg?;Soa-yoy_s%rT*V`Xy+6?<<~KZgoaksaIDM^{P94fs}C8bYEsjG-K}m*tmK0 z`$odtw+w$CF|K^U{dmKq$97!rHwL+WqkTqMoyo13V=Mi$u6g77?0XFJpS7a0wXUpP z^)6~Xq*$+#uDf0p)>OTV6_;^k%o0%!?g!3X+_z}|n)}EP^XoRoFMXP0<~wbSGYf6Z zv83djO9$wXa)Mu{F8#(H^n$crp5N)bg%}^ksms=+c9NZX$xwY{sVB)&yC`}J&*N!2 o_K?9Ove+RcF+g4jk{c9MF-V?xnOyM-`65QHh?6h=ndJcOUztv#5C8xG literal 0 HcmV?d00001 diff --git a/SGRAB/RAVGRAB.C b/SGRAB/RAVGRAB.C new file mode 100644 index 0000000..0612008 --- /dev/null +++ b/SGRAB/RAVGRAB.C @@ -0,0 +1,622 @@ +#include +#include +#include +#include +#include +#include + +#include "sgrab.h" +#pragma hdrstop + + + +typedef struct +{ + unsigned height; // in blocks*2 + unsigned collumnofs[64]; +} wall_t; + + +typedef struct +{ + unsigned postofs[4096]; +} holo_t; +// post data: numruns [skipvalue(*2) runlen [data]] + +typedef struct +{ + unsigned width; + unsigned top,bottom; + unsigned postofs[]; +} scaleshape_t; + + + +/* +============== += += GrabWall += += filename WALL xblock yblock blockheight += +============== +*/ + +void GrabWall (void) +{ + int x,y,xl,yl,xh,yh,w,h; + byte far *screen_p; + int linedelta; + wall_t far *header; + + GetToken (false); + xl = atoi (token)*8; + GetToken (false); + yl = atoi (token)*8; + GetToken (false); + h = atoi (token)*8; + w = 64; + + xh = xl+w; + yh = yl+h; + + header = (wall_t far *)lump_p; + header->height = h/4; // block height*2 + + for (x=0;x<64;x++) + header->collumnofs[x] = 65*2+x*h - (96-h); // adjusted for entry + + lump_p = (byte far *)&header->collumnofs[64]; + + screen_p = MK_FP(0xa000,yl*SCREENWIDTH+xl); + + for (x=xl;xwidth = w; + lump_p = (byte far *)&header->postofs[w]; +// +// copy the lines to post[], then let SparsePost () write the data +// + header->top = WORLDHEIGHT; + header->bottom = 0; + + for (x=0 ; xpostofs[x] = lump_p - (byte far *)header; + + for (y=0 ; ytop) + header->top = adj; + if (adj > header->bottom) + header->bottom = adj; + } + + *(screen_p+y*SCREENWIDTH) = 0; + } + SparsePost (); + screen_p++; + } +} + +/* +============================================================================= + + HOLOGRAM + +============================================================================= +*/ + + +/* +============== += += GrabHolo += += filename HOLO += +============== +*/ + +#define HOLOSIZE 64 + +void GrabHolo (void) +{ + int x,y,z,shift; + int runcount,runs,count,lastz; + byte far *screen_p,pixel; + byte far *runs_p, far *count_p; + holo_t far *header; + byte far *plane[HOLOSIZE]; + boolean inrun; + +// +// initialize a blank hologram +// A plane is an X/Y horizontal slice through the hologram +// + for (z=0;z=0;y--) + if (*(plane[z]+y*HOLOSIZE+x)) + { + if (y==HOLOSIZE-1 || !*(plane[z]+(y+1)*HOLOSIZE+x)) + *(plane[z]+y*HOLOSIZE+x) = pixel; + } + *screen_p = pixel; + } + +// +// color the west plane +// + for (z=0;z=0;x--) + if (*(plane[z]+y*HOLOSIZE+x)) + { + if (x==HOLOSIZE-1 || !*(plane[z]+y*HOLOSIZE+x+1)) + *(plane[z]+y*HOLOSIZE+x) = pixel; + } + *screen_p = pixel; + } + + +// +// color the top plane +// + for (y=0;y=0;z--) + if (*(plane[z]+y*HOLOSIZE+x)) + { + if (z==HOLOSIZE-1 || !*(plane[z+1]+y*HOLOSIZE+x)) + *(plane[z]+y*HOLOSIZE+x) = pixel; + } + *screen_p = pixel; + } + + +// +// draw an orthographic representation +// + screen_p = MK_FP(0xa000,0); + for (y=0;ypostofs[4096]; + + for (y=0;ypostofs[y*HOLOSIZE+x] = lump_p - (byte far *)header; + runs_p = lump_p++; + + runs = 0; + lastz = 0; + inrun = false; + + for (z=0;zpostofs[y*HOLOSIZE+x] = 0; + *screen_p = 255; + lump_p--; + continue; + } + *runs_p = runs; + + *screen_p = pixel; + } + + + for (z=0;zZZ~o|0b^HGAJ^Q(* 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 literal 0 HcmV?d00001 diff --git a/SGRAB/SCRIPT.OBJ b/SGRAB/SCRIPT.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..0dfc000a674771ca30e55f9da8b9c468cca40a6e GIT binary patch literal 3430 zcmcImeNa@_760AK@)nj=5gEEf#WjjmF>4bNjbSjsg$*WD0aqGHE_X9tM zF|=y(2+-naO`E2PADPx<8Z((`s;#xr3fLI1shxIAowmtnY!qXi)TUF0VSCQoWicI- z|2hM|clVy(J@J5b z?+LWnodpHHiz$@);cEE5XLMZJ9}1 z{S!51B=o9&2br8?%1WA6S5)ynIm(~c72qQQ^yn7gq75eGNIa%b2QH_1eSR(A*{Inp zM9Pda&Dg0IlF=0QZPgSx8iUyvYz{^P5sMs;L0M1x>(@*s1)m@OBi`%3pU2OVUlM$s zCN{&4LOc!)I(o4Wf55r;Ow2XJUBH{hpo@4l`6aQ}#d%!7hZu>o*gBP#kPC@BfzH^| z;t@TIl%_X_g5j{=7tnHf9UXD{CwQ5&?y@-&+@J;2Hk%xa;TEb@L6b3Cqg;Q;dr_ zGG8u{g|bvu$$Gg)?u^UfS&YSc<@|W?!|9(q++JN7z&jQHtP>&qUmH#w_I%Tm?S zlKK*p0qUx{x)l0XN*}JRZm7BOeKQuGkupWJQmgzNOsS%nTYI3G#ikc%r(-gf($JHE zG<9{I`e@V_L8G2Qdohz{pC?Sh#dCi!6PtT1FsmCqet)nzk#Vy*;{@sq{w(ItHo=Ja z2eYuLX9_H;+7b+_A3*Er5R+j5*9OnedRon1e{q zRAi`}&Xmxtk@fhqL9;VWF`?L?*%3AzHT#2M4L1x1T?2-rl?G!jLVZ~fDH*DfG%RTg z5q`-#_aU9l&3!q5n5NcqN|m&Ge11=pUu%>w8_p;zF)!DIg$Dml8y+KX5E*Ji;9)Id z3_1@iH@I|}apdrz!JTJ=yDyWt>FNaYBJfXxNf(;ITxl@p+t83uQ5p2K)HR2EZ4nnO zoLKD!KR>}QHu(8A)c4JxHCa_H&=T~9jR6vP#4sC+iZ3~C;bUY1-Y~4x==g^uEx!3n-$n$3^i=oWSf$(HATH%Ekw&7 zp0rOPyAt1qY+yi7r)*n*PTV2S7^DTj2K_ER-%Y`wU-JZV6_}c~M6@&o3SV7ngf4^h zwn(VO=k=-)MM0iUo-QHP>+#e6qtg@#MKytfeP<YOpY++^t#5$ z{b+1i7GldXG2y}5?HVsUSL7axrWUzIBgx5@CWlT=wm%EqIhi;(6~%S^~S z>P$|quvZcHH&Qb}wNFx?ye+jq&x)90#e&WUEz#Ub_BSWlF%r!*qS&|n_%@#PN$xEo z5<`lj#pHEST<*)0%#oat>654s8U1`jx6mtzrr;hwS8;b*d9!T>F1O4CRd`+dWxd2vAaQYavv!837=iA zamtx)*O(FWdkRnRPK_*PKF3OlcaR3ki*7fuNP?9mOqk+K`?g_Yq6D9Em;KbfxJ?Yc zk}XmOUt-wIuz{hK!9{Sk*ewQEWD7ZXA9pQfn9DGe;VTR?7^X0QU|^KtD#K-l3k-i` z_&ve!fLjclBzFVHx$6xEo`3j<)c-v9@8+&9hMf!@46JK7NDR^@2Uy#{6ATRuUuR

F5+>eu3 zfzx;Z!ziM9u^Q*`D3yY>R17|ai||l^)=VW@3za{uRH*r=RQm?3VgqIiKfRSvEEbzk zC^loc*n)Dg6;+}Gbz&Pl;%R826YU}lD&w$2JcC~GEOrSU2SgVRi5|QzzJnv;yErCx z;XSb%?~6V7o9M$Ou@|3;7jaYU!?@UwEO`+5@)Z=ymryEyf_ixfYvfyKl)r#i9z$6E u3LWwUcF2?HmA}Dmc?x@FKMu)Xva#T)vA_atMR+r_WKwME(nD>D4X( literal 0 HcmV?d00001 diff --git a/SGRAB/SGRAB.C b/SGRAB/SGRAB.C new file mode 100644 index 0000000..da374e2 --- /dev/null +++ b/SGRAB/SGRAB.C @@ -0,0 +1,769 @@ +#define VERSION "v0.2" + +/* +============================================================================= + + SGRAB + + by John Carmack + +silent output mode +open / close chunk? +do an SGRAB * option +script / data directory options + +============================================================================= +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "sgrab.h" +#pragma hdrstop + + +boolean pause; +byte *lumpbuffer,*lump_p; + + +/* +============================================================================ + + LBM STUFF + +============================================================================ +*/ + +#define PEL_WRITE_ADR 0x3c8 +#define PEL_READ_ADR 0x3c7 +#define PEL_DATA 0x3c9 + + +#define FORMID ('F'+('O'<<8)+((long)'R'<<16)+((long)'M'<<24)) +#define ILBMID ('I'+('L'<<8)+((long)'B'<<16)+((long)'M'<<24)) +#define PBMID ('P'+('B'<<8)+((long)'M'<<16)+((long)' '<<24)) +#define BMHDID ('B'+('M'<<8)+((long)'H'<<16)+((long)'D'<<24)) +#define BODYID ('B'+('O'<<8)+((long)'D'<<16)+((long)'Y'<<24)) +#define CMAPID ('C'+('M'<<8)+((long)'A'<<16)+((long)'P'<<24)) + +typedef unsigned char UBYTE; +typedef short WORD; +typedef unsigned short UWORD; +typedef long LONG; + +typedef enum +{ + ms_none, + ms_mask, + ms_transcolor, + ms_lasso +} mask_t; + +typedef enum +{ + cm_none, + cm_rle1 +} compress_t; + +typedef struct +{ + UWORD w,h; + WORD x,y; + UBYTE nPlanes; + UBYTE masking; + UBYTE compression; + UBYTE pad1; + UWORD transparentColor; + UBYTE xAspect,yAspect; + WORD pageWidth,pageHeight; +} bmhd_t; + +bmhd_t bmhd; + +unsigned ShortSwap (unsigned l) +{ + byte b1,b2; + + b1 = l&255; + b2 = (l>>8)&255; + + return (b1<<8) + b2; +} + +long LongSwap (long l) +{ + byte b1,b2,b3,b4; + + b1 = l&255; + b2 = (l>>8)&255; + b3 = (l>>16)&255; + b4 = (l>>24)&255; + + return ((long)b1<<24) + ((long)b2<<16) + ((long)b3<<8) + b4; +} + +long Align (long l) +{ + if (l&1) + return l+1; + return l; +} + + + +/* +================ += += LBMRLEdecompress += += Source must be evenly aligned! += +================ +*/ + +byte huge *LBMRLEDecompress (byte far *source,byte far *unpacked + ,int bpwidth) +{ + int count,plane; + byte b,rept; + + count = 0; + + do + { + rept = *source++; + + if (rept > 0x80) + { + rept = (rept^0xff)+2; + b = *source++; + _fmemset(unpacked,b,rept); + unpacked += rept; + } + else if (rept < 0x80) + { + rept++; + _fmemcpy(unpacked,source,rept); + unpacked += rept; + source += rept; + } + else + rept = 0; // rept of 0x80 is NOP + + count += rept; + + } while (countbpwidth) + MS_Quit ("Decompression exceeded width!\n"); + + + return source; +} + + +#define BPLANESIZE 128 +byte bitplanes[9][BPLANESIZE]; // max size 1024 by 9 bit planes + + +/* +================= += += MungeBitPlanes8 += += This destroys the bit plane data! += +================= +*/ + +void MungeBitPlanes8 (int width, byte far *dest) +{ +asm les di,[dest] +asm mov si,-1 +asm mov cx,[width] +mungebyte: +asm inc si +asm mov dx,8 +mungebit: +asm shl [BYTE PTR bitplanes + BPLANESIZE*7 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*6 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*5 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*4 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*3 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*2 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*1 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*0 +si],1 +asm rcl al,1 +asm stosb +asm dec cx +asm jz done +asm dec dx +asm jnz mungebit +asm jmp mungebyte + +done: +} + + +void MungeBitPlanes4 (int width, byte far *dest) +{ +asm les di,[dest] +asm mov si,-1 +asm mov cx,[width] +mungebyte: +asm inc si +asm mov dx,8 +mungebit: +asm xor al,al +asm shl [BYTE PTR bitplanes + BPLANESIZE*3 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*2 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*1 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*0 +si],1 +asm rcl al,1 +asm stosb +asm dec cx +asm jz done +asm dec dx +asm jnz mungebit +asm jmp mungebyte + +done: +} + + +void MungeBitPlanes2 (int width, byte far *dest) +{ +asm les di,[dest] +asm mov si,-1 +asm mov cx,[width] +mungebyte: +asm inc si +asm mov dx,8 +mungebit: +asm xor al,al +asm shl [BYTE PTR bitplanes + BPLANESIZE*1 +si],1 +asm rcl al,1 +asm shl [BYTE PTR bitplanes + BPLANESIZE*0 +si],1 +asm rcl al,1 +asm stosb +asm dec cx +asm jz done +asm dec dx +asm jnz mungebit +asm jmp mungebyte + +done: +} + + +void MungeBitPlanes1 (int width, byte far *dest) +{ +asm les di,[dest] +asm mov si,-1 +asm mov cx,[width] +mungebyte: +asm inc si +asm mov dx,8 +mungebit: +asm xor al,al +asm shl [BYTE PTR bitplanes + BPLANESIZE*0 +si],1 +asm rcl al,1 +asm stosb +asm dec cx +asm jz done +asm dec dx +asm jnz mungebit +asm jmp mungebyte + +done: +} + + +/* +================= += += LoadLBM += +================= +*/ + +void LoadLBM (char *filename) +{ + int handle; + int i,y,p,planes; + long size,remaining; + unsigned readsize,iocount; + byte far *LBMbuffer; + byte huge *LBM_P, huge *LBMEND_P; + byte far *pic_p; + byte huge *body_p; + unsigned linesize,rowsize; + + long formtype,formlength; + long chunktype,chunklength; + void (*mungecall) (int, byte far *); + +// +// load the LBM +// + handle = _open (filename,O_RDONLY); + if ( handle == -1) + MS_Quit ("Cannot open %s\n",filename); + + size = filelength (handle); + LBMbuffer = farmalloc (size); + if (!LBMbuffer) + MS_Quit ("Cannot allocate %lu byte\n",size); + + remaining = size; + LBM_P = LBMbuffer; + + while (remaining) + { + readsize = remaining < 0xf000 ? remaining : 0xf000; + _dos_read (handle,LBM_P,readsize,&iocount); + if (iocount != readsize) + MS_Quit ("Read failure on %s\n",filename); + remaining -= readsize; + LBM_P += readsize; + } + + close (handle); + +// +// parse the LBM header +// + LBM_P = LBMbuffer; + if ( *(long far *)LBMbuffer != FORMID ) + MS_Quit ("No FORM ID at start of file!\n"); + + LBM_P += 4; + formlength = LongSwap( *(long far *)LBM_P ); + LBM_P += 4; + LBMEND_P = LBM_P + Align(formlength); + + formtype = *(long far *)LBM_P; + + if (formtype != ILBMID && formtype != PBMID) + MS_Quit ("Unrecognized form type: %c%c%c%c\n", formtype&0xff + ,(formtype>>8)&0xff,(formtype>>16)&0xff,(formtype>>24)&0xff); + + LBM_P += 4; + +// +// parse chunks +// + asm mov ax,0x13 // go into VGA mode + asm int 0x10 + + + while (LBM_P < LBMEND_P) + { + chunktype = *(long far *)LBM_P; + LBM_P += 4; + chunklength = LongSwap(*(long far *)LBM_P); + LBM_P += 4; + + switch (chunktype) + { + case BMHDID: + _fmemcpy (&bmhd,LBM_P,sizeof(bmhd)); + bmhd.w = ShortSwap(bmhd.w); + bmhd.h = ShortSwap(bmhd.h); + bmhd.x = ShortSwap(bmhd.x); + bmhd.y = ShortSwap(bmhd.y); + bmhd.pageWidth = ShortSwap(bmhd.pageWidth); + bmhd.pageHeight = ShortSwap(bmhd.pageHeight); + break; + + case CMAPID: + outportb (PEL_WRITE_ADR,0); + for (i=0;i> 2); + break; + + case BODYID: + body_p = LBM_P; + + if (formtype == PBMID) + { + // + // unpack PBM + // + for (y=0 ; y MAXLUMP) + MS_Quit ("Lump size exceeded %l, memory corrupted!\n",MAXLUMP); + + if (!composite) + { + // open a seperate file for the lump + + if ( (handle = open(filename, O_BINARY | O_WRONLY | O_CREAT | + O_TRUNC,S_IREAD | S_IWRITE) ) == -1) + MS_Quit ("Cannot open %s\n",filename); + } + else + { + // record directory info for the lump in the composte header + + if (grabbed == MAXLUMPS) + MS_Quit ("Too many lumps grabbed for composite file!\n"); + + if (strlen(filename) > 13) + MS_Quit ("Filename %s is too long for composite name!\n",filename); + + strcpy (header_p->name,filename); + header_p->lumptype = cmd; + header_p->dataoffset = tell (handle); + header_p->datalength = size; + + header_p++; + } + + _dos_write (handle,lumpbuffer , size , &iocount); + if (iocount != size) + MS_Quit ("Write error on %s\n",filename); + + if (!composite) + close(handle); + + } while (script_p < scriptend_p); + +// +// if a composite grab, write the header out +// + if (composite) + { + offset = tell (handle); + size = grabbed*sizeof(compheader_t); + _dos_write (handle,header , size, &iocount); + if (iocount != size) + MS_Quit ("Write error on %s\n",filename); + + lseek (handle,0,SEEK_SET); + strncpy (compprologue.id,"SGRB",4); + compprologue.numlumps = grabbed; + compprologue.headeroffset = offset; + compprologue.headerlength = size; + + _dos_write (handle,&compprologue , sizeof(compprologue), &iocount); + + close (handle); + } + + +// +// all done +// +asm mov ax,0x3 // go into text mode +asm int 0x10 + + if (composite) + printf ("%i lumps grabbed in a composite file\n",grabbed); + else + printf ("%i lumps grabbed\n",grabbed); + + exit (0); +} + + diff --git a/SGRAB/SGRAB.DSK b/SGRAB/SGRAB.DSK new file mode 100644 index 0000000000000000000000000000000000000000..62b7aa574c28414aa402175122ec5dd246524acf GIT binary patch literal 2479 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 literal 0 HcmV?d00001 diff --git a/SGRAB/SGRAB.TXT b/SGRAB/SGRAB.TXT new file mode 100644 index 0000000..2269f4c --- /dev/null +++ b/SGRAB/SGRAB.TXT @@ -0,0 +1,70 @@ +SGRAB DOCUMENTATION +------------------- + +SGRAB [-s | -c] [-p] filename + -s force seperate files + -c force a composite .DAT file (default) + -p wait for a keypress after each grab command + + +Filename should be the root (no extension) of the picture (.LBM) to be +grabbed. The script file (.SCR) is read in and parsed, causing lumps to be +grabbed off the screen and saved into an output data (.DAT) file. + +If the -s option is used, or the first command in the script file is +$SEPERATE, the lumps are each saved to a seperate file, rather than being +combined into a composite file. + + +The script file format is as follows: + +[$SEPERATE] +lumpname grabcommand [parameters] +; Comments can be uses at the beginning of a line, or after a command's parms +; whitespace can be introduced anywhere, but a command cannot cross lines + + + +If the lumps are being saved individually, lumpname can be any valid pathname, +but for composite files it must be a filename[.ext] size. + + +Current grab commands: + +GENERAL + +filename RAW x y width height + An unadorned raw block of pixels + +filename PIC x y width height [orgx orgy [hitxl hityl hitxh hityh]] + A structured pic, with optional origin offsets and hit rectangles + +filename LPIC x y width height [orgx orgy [hitxl hityl hitxh hityh]] + A linear VGA pic, with optional origin offsets + +filename FONT startchar endchar [startchar endchar [...]] + A proportional font, possible skipping ranges of characters + +filename PALETTE [startcolor endcolor] + The VGA palette, all 256 by default + +RAVEN ENGINE + +filename WALL xblock yblock blockheight + Blocks are multiples of 8 pixels, implicit 8 block height + +filename FLAT xblock yblock + Flat floors or ceilings, implicit 8 by 8 block size + +filename DSCALE x y width height + Values in pixels, not blocks. + +LYNX + +filename LYNXWALLS numtiles + Grabs numtiles 16*30 walls off the template screen + +filename LYNXSCALE spot + Grabs a 64*60 lynx sprite from position spot (0-14) on the template screen + + diff --git a/SGRAB/SPRITE1.DAT b/SGRAB/SPRITE1.DAT new file mode 100644 index 0000000000000000000000000000000000000000..67ec1cf6c8051277aff7ad1996a8b9b079e67fd6 GIT binary patch literal 2373 zcmZ{my^a(|6oqU4XIKn~09isvMu-kD*2r2w;ALmqMbJs3DixKiWQ4{@jxF;5L;fcGJqjEfk76aR}n#epC{7LJHGGQ2dAZoJR2s@BIQad67AOtR7sU5e2b5u&v| zixZDwRq^1IY+C$|BIB^U37AfU36UZkti`(v3uwuA=EQ}i)JuXYUyD0Qb*y>PJAS;9 z;*LdCo4Vjcb);&dRdN{*=P6l{trB2*8d3!5>o3m?h;mrh_2Cp=)9RoKa*-?NB1y|> zNk9SmDaL7?=@y??6C@ykp<1Sxy1ft1jZ=GailJ2ITdos>_ z9b;Y%yFyyVq^y$hPQq3Ov;K~@Ny|9mM+1Ru09BH)f2x_o{o%l|LGYFA6=) zRCS_6NSThIo|aH_aqA(|=gD=2SAe2fGLW36fKp`6O+x~}tNm&>LL*DrgEI#r2nS78 zh+v(XJKms|aEoQ9_$JI~Y+G6sB`v{;K`uawkGtuF1Xdl|(l*i~5Pq zdovKyj(t%>>0cI)_*z;@R;QAHoLPXD3h3d91Uf4L{;0@UwT#x~4_`6S|9=HLx(lu7 zxX{1?N91fKHG|4X^^^S*30MTw$HFV)Qbc2O+jme?8lcyE_uQ;58W|m}y%X)LkXA^c zbZK6=&&7s-{qw+S#e(UE#JVv*bg2$R4cBtlX+>O4>5ZE~7V=UDqCP*`jEb0L@xb>&zCc zlCfb^W@*b*X)Ba+hSlC(C=Uy(PTX$7#!|m^W<(8Q<=h5+Thx%E${@UMSbgPMf=xgt zRz|81`082tMKq4F3K<#VK;bOPI*OzZr6zztvZleEbJ9~w6_GaBr@>OXbJj$J1g{A! zpJFJ6SAfvg`Uu7P_Bp`Z8`LJdp9;`+sU1A)qjT%Lg%n;D>2aHLNwL29X-Uj{F0V`T Z$+zEq?rQhTz58FXK=#~eIG6d?=|5W6J-`3} literal 0 HcmV?d00001 diff --git a/SGRAB/SPRITE1.LBM b/SGRAB/SPRITE1.LBM new file mode 100644 index 0000000000000000000000000000000000000000..facdc2908c31f17b6b05ec33b1104b8c3ed9f2fd GIT binary patch literal 34880 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 literal 0 HcmV?d00001 diff --git a/SGRAB/SPRITE1.SCR b/SGRAB/SPRITE1.SCR new file mode 100644 index 0000000..f0ba4d8 --- /dev/null +++ b/SGRAB/SPRITE1.SCR @@ -0,0 +1 @@ +spr1 dsprite 2 2 6 8 diff --git a/SGRAB/_BACKUP_.LBM b/SGRAB/_BACKUP_.LBM new file mode 100644 index 0000000000000000000000000000000000000000..278ef8eebe4596e9b01e7276cba4553407f1ba2f GIT binary patch literal 34918 zcmeHQPiz}kdjE#h6D85!N#d@(3-7KL@Rr`f2Q8`sE}(-|Dk!%wvqMk>48uTG!4Om+ zMa`J87)N7~4kfxk1h{|?Ir!ki9&`xM9CQeZ0M#LfY~e$&n*v7RLk{lNO`M5i$&&bQ zX8QZy%#f5Uttrh&m5Mb*4QDi*_j});-}k-my&3dE>8AL}5NmbR`;%o;Y#h)TvVg0|P@tLy1IUbaZrVZ0yZ9-^}Op zrBdnk?b~{(KGgw2lYqy*B>seKlpg%^AA_< z-+TJ$2TzvXfAUG`%a8I87Os4LckJ3aiRdGudqj7LN<=xL z%S59@BSeElr-)7v**4iv$$muk1G4Xvy+rmR*}o?H1G3*IyFhl19*xmw8hv<Uf8oOum+u|Z?x^Q(MF*xM{Z}H#E>q+Zk%k7g0(6_G z0NE3b$#c#T4M;%8ppl(@VQ|nMO4x}@_Gr!?E7@;;VCNR>!lM2Dr}hV*+rNHbfB4A$ z_=)}LQ~UFE`(fSwgzOJ#{9(S_UUy<6&?Y4z3>wJ@pXE~%5F>ez|? z6DLod>_5|gYVg#Vvu6g*4Gbm*ht8ipH##(OY2^G^LYq8);fi)CH##iOQ`qulU+jkc2kB02C>-GnAd&s_j z&%SfE{;^%p+4je`Ur(iA4D^o_Vn^`)DSuC-u-Al0r6i6{IdA0`*#3)i)^?xS$u|7k zVt*w4s|3#Jan381H}3y*VB`MZUD>$*&-XU&!2xv;)QUnCA#@>(N@X5bvw@ylwAEM8yJVU&iDZVf zBrZ;t-Vln8lfr0DSoE`wo3!bK7K^3Rv5PDxg$$jWtOzve2=n`_D~bbAA^~{Z8>;BS z(ruws=GW+SM@yob!DS{`h+=;Jw-8@9D=ePM)G3^av9@f(7Jord)O;suYCnfn7LLba zag+LnGg5q{>%ufbGgYyQ`w@P%T8s*BSzj~3!+q>64yl` z+d&IrdaA4nbv9q%F2Fj}U;aT@QWwQSaWsY1@6N67fyWPGE^+h&K;jEXJ7cs#_v)TeV|fS zHH_I=l6vmUe!zhFk`Se<9dsc~Q`3b8;sxvA&pI_DQL{qUORbbcUWazGvFF?Fu^Y*2 zZg$OWzwr_o<9p3(cH%)DwsY97$qC8JCDqv(7R9yKkxRY%4>y&Y%D*dBxOScMo_gq2 zY{05`%PkYE8S2IX1#gSbsqtsE5$b84PzxzasBzf7AMx;4sj8y?oI;vvn0sEsevPwB z^or1boBL*|W{3}?ucm6tj|cQyRit2We%T2`cqkJ;&23FZC=TI-E_uvEPJ>RMgIR>t4&l@kU25I{#H*TVfUpc8g24Yk-^BX8#A<{UO9UH}|UF ztuX6G+ud%QDDAk})}O0{@j4{XsRp;c%H|dd8>2&eP+`Z|`~4H!0ocp_g8gN)L2Y*+ zr-1s){3I#d&!!nDku}MH>35shPMJGBzBA>s@4NBL=f(+#URd2Ij2{3kW$E&RTze1!p9YZMY%B|B|u)no%FJ_B?A zj%Xflr54b8nJ_Ytfrtv-Z%}y$bBsK{%X=--*x!WwZ;(zcCs%gH?GT!bGtOlXf z(eP)uQt?Q&ci!W2WghfySeDP2dkpEN7ofOZ&C zr3tA=7)c|E$}AvZA|OctLuxk`lLSig$t28#Ae+}To`yhy9Y=ssOC+^4yDD4kI(186 z2IR%EiWn|VGf;uKg^n6(V_~lJn~)J(uq|gt?4*_G0Vve}ftyX|3Dv|?z^edK7vyFn zO~AuMixFli1`F;PSNj3T1|Umoz{bN66y|sO*vv5P!t$$u3sxv1XF)1LuZnd^3^w%% z)~fS<4(pF31p^jv35PRCX}B3XYPsCsw8ENs1x5p_VLN7pp!1d%kxijNb|C|O?{Oww zF!N&Zk`XIZ3-I@dZKcC(?Pju~bxHH*Kd`N=V3raH z8-g$?M*t0|x^ST?0!GpGdvxOW(1c`wfZ?_oIZ+L8t9Y|@VA>H#nFGMYphDdT$^wLemnY<$QMWl4b&L2qa;GR&7#*Zn10O zWr>E~BP|s(z>p!l&a5c9;4EwzGvCi#R&7rU5NV+&D@|yU8MdC51YY;rhm1I4AQ%g) z(kn0*%RkUir6${D^;s2LhXS9#DY{iSvntS3kTPlW<35hTlJnsf85<6fOh6(+MrIso z;3LOsNQXG-6ov`8^y%#DWu1WTD5vKY+?n zIvtB=G90zw(!H?4bUKrX$5OHvyxW9c*SlEOdYz3BAq>e6x)X+r&wmSHhrmqCM7-sE zHaH{XI+<51W9HIX9=dkOzLjNI_8nBQNw2~a*EA9tu znq9!s3W3ZU%N}F~9AF19>A^xr)&M3_9PB?xT#QSxb6NuI@rzhOAh9#?bJ~CbDac3H z8^-q;c?Gg}k>e;j0O8wARl$x`P>F2{8*y7Ect6Hki;IvoM9(w;u;UkrQjC^$!J1~5 ztRnmXuZ6$_)L6Y>R-7JKdkYg53b|V8A3*z9>k`j6Fk!_pta%v+Ocp7}M9xC1;G%B8 zge(CSgNh0Ve?+N05au&pyaa-@)8b+*1#FY)ktEFNWrTj3mVB*AbBi1LDs<8i< zItb2?WQyPZ6@J$>XtegAGcykDs5u9kd;x=DJy1=ccs`7cqmn2LxKf?YYdED zm}~Gxe3Ox{0mcm6ikc;SjP#Val)n`_%7|bv{7OrZ@(&I~2mtD^bb@-0>c<6W8xf6v z9cQFAObIq0sIgb67H#G94eE`j<8ii~REk3o27pM)z%wbX57=@DSVd|hP22$rVICI@ zFv1&H5x~Qq5cT!|Xmb#cRbX)lk}-1h4fEi`N?;*dLwYL@RjX`Jx+&#pidC%Tl4ey2 zL-m0|TcdCkYroo3L<|gp&PlqpUYXe-MkbO~h>$&j{jeP#>`zxJdL08J1V=bzu+V-UftLvY+h`1_^NZ;TQklpgfA-4pb%z8L7!Y=rbzPL>sV34%R`E?;4rWw&dbf zEXrdr&0%Fyt3ZN+ody%7os&rmxHzD|w+s!wv?23=xg9}FmbfAq-B8YC&UDX-3}<0VDOlhv7n=sLPDi-pv^_c zbQ)_r3Gp(Vip5fOC>w)V)Y=#())WJ#2}E6t5aj{eXl6D6OKl@UUYE?JH26U}UMDd) zFh~P~sIlOvjY0>bL(LW%Z6HxFCpZ(|D`XY2qFlf6<}(G>@4_9~^y?H!#RdmxFqWzT zv8?50uXoBQb_qA zwQxck2C^!WdN~M#>?Uju)<_7u;0#W_3P+m1sr(zSq{ISn5T2X3htOv;4sz18uLxB! zFaTf8=_j0BM^$EGf|r8JvU#X^Ihqe@6tvxSUXt_S7d6TVMi^i zoV_p|VBiMQf@K7NtKn)#aSOjnF0>OcjjRP;V^9P5}> zRN?j;tP%xDGXoxhILBk-7cWZ1e@irMWf2`fEBfSNAtL+ z!KJk7_=jo<{-5%aKWv>y1@jX(Uchr!ATp#sP!Wd zRw#s9^xDAc6;xq)cBK!(h8M_?FU?^;M9le9b7~7|T*{6eK@0>%ga6Vf3n7`)lEZ5- zT-5Smrj{HEA8&{-$VD^^jwt(Kw;O;Wqf61S6-V7By}|(HOguh8*CvmIF*DUH4FTYO zP#@19c%EM&B?a5GGLNL(99SHAIc#up+`!0vpHMwRK5oZtNQ*N61v;w(0B3C&gwr~L zgsp?!486waWD>_ovX`{3Q5TY-Vfp3X<2VOuU9VMEVF}$e?|XaC1RK+QP-rGToElES zQ2!gKaDyW%UDe8yeTu{FgQ68Wl0l$|^9UZ3k%@1B2dO{suveRvb)Hz-bEa%JzGV^_ z2}qW?xig4?IKwuMx$U(bmv`sBUh3c5US_Aw z?&N$2qI35Hk~LIjTtaH{(oU|nALk+yl9|4fDY^O5_GI*bB2@>Y=jGmZTW0SVUwf!8tb)@eBPbnfAm zi#2>)i4i=d@8=6yU=w*j%;T{*GdgaGpDXVc9)E9Hu9&J&6pux4u8!YUzORCIu20`6 z=%unnw~!{cNXK**torN?hAsIYzH|NEcc-Uy{l?4;dNy6Ci2U_;b#4_*=S%F&I&Jf_ zKCZ@6dQLydPrCv#^6%;eBR^y0b-Y|dE}_cl18>W>ya{<9mt(-IbV_7l#H>OCrVMYp z0e55Qj2L#U;|UA_AZ}Y}=i_<|nMa1l^Vw^Tc&~53ZRUHVT?B) zWZ~Gbk#}A!`usc7(=&x&PzPttHTpSVPZzS%L}1rfbJwO|EZMw~oidnM;D&l3>j$?p zD&YzKASsZM1E0uV6ImcGmf0)cx|(|%`0=Tj2Xbt$`9sdxiy7th`CY~A)wicC@nc*X z&vn5PC$M8~3Mv;2ATRjO0{qA&Zu!$p%7RKJqs8o7x!g5$xHy-si!PlNR~HfNU48pn zp36GBcH=6c;O!unWvx!eWF0p4Gby=ZwkQSVu8_>nI3MyQ20!H&youo?MFZ!~8XYZ` zvs1|r6l2D7mhc;*_Ya#n^iRW0H2$xAT8x2AIg_R3NrG8eRI98xhTswcEm8SzZ83E zZng|kV!^ZAVabSKoHfk^l=(ZWf_y`cu$^af*NSGzoK@y#>vLAQ7asmr4iT#m5Z1PJ zHogH%88bf=5we(g*hu(Qd~dc4+%mWGg?mGZuQ~bR8+Z@WfGHVQEr{BLoR1U{b~$BW z!{8ar4pXHU&+|%tUn#GYI2B(Q+ePaf)Jo+EbZ-KP1d<4h(+Z_dFSXTq?N!3&+E^b#<2I_)%K`&t7!(59L}_Az zVKZdb7V@91pmcg{V}Y(Yr|lDTh2`ud#Mf`k$Yr6DDvNU^*TPD?5Uf*>o6p+}I-m-} zI*Xb!9xw}*i`u2{Ns5HeUXxzo3v(-13oOH2qaKd*;6|kJ6R#O1Le#;L5?c$Z4aE|c zYV2CbEx^GI(^sk68EVLNrLQ7f;=$(t?D38-z)Ue%lFC%U&x#6W@UceBO&l=YrK>38 zMP)Yc+JqkwyNEfZv|_te+loxtQygL9wBW_U3!UZ-3$9BeE9^p6=sw2Ehci1#Q=de8ooD<@Ya!Gl%Dg@{ zTf_6Qc5iad%=J+MjZX3W8&7bSzQHr3+K4WwAsVIx;CFJ&i{ceZSCtSR1Gj66lY-`z zJWjqB7|Yc-|IWUJ2$_4E%T#%>9^$0Z^Uj@aG3)Q#1>#w7ut;lJtS-eQ*PMhxJ{0+S0)b$Q3LCXKYfS-o$JXx3@Xm#L(=@g*xWNbMc zJ&+K+iShtbiD131d3*K&MtC@E@v!7O%sb7r=ioVYYm(*wr(~#p33hE}o?!hk2!*ts zy?u})wOb`R$PkY-ALM>;Rqa;9CHn+nJV9RLg?uN#l~=*K-7?|-?Q$R5?`?yWL=e}K zgF!G45}kk+3Iu_w{TeOe@$#Nvwbb6$Za+5@p1`WqyG63y_YR9K26y|^c9Pib@fUdK z;EwwbM{eu#&4H(#0~}wPbaP;ZcsNY)Pz a constant that is 1.0 in fixed point + + +Player starts out at: + playerx = (3 * 64 + 32) * FRACUNIT; + playery = (3 * 64 + 32) * FRACUNIT; + playerz = 32 * FRACUNIT; + playerangle = 0; + + +The interrupt does the reading of controls and controlling movement. +The play loop itself does nothing but Render the view and shoot the rendered +drawing to the screen. + +Movement: + Pg/Up & Dn change playerz by FRACUNIT + Home sets playerz to 32.0 + + For translation movement: + Up and Down - + Checks to see if the move can be made then increments the players position + by a set amount. + + playerx and playery are updated depending upon angle of movement and + if the operation succeeds. In this case if you did not run into a wall. + + Left and Right - + Changes the playerangle by PLAYERTURNSPEED; in this case 1 degree(?) + + + +View Rendering : + +This is done with a call to RF_RenderView int R_PUBLIC.C sending player +position and angle. + +This sets the global varibles viewx, viewy, viewz by stripping off most +of the lowest nibbles of the fixed point numbers. viewangle is set to +playerangle. + +SetupFrame is then called: +View buffer is cleared +wallz array is set to MAXZ + 1 ((6 shl 22) + 1) +mapcache_height contents are set to 0xF0 +numspans is set to 0 +frameon is incremented(?) +viewtilex and viewtiley are set to the respective x and y values shifted +by 22(?) + +viewfineangle is set by shifting viewangle by 5 +Initializes backvertex; + + + \ No newline at end of file diff --git a/SOURCE/BLITBUF.ASM b/SOURCE/BLITBUF.ASM new file mode 100644 index 0000000..4ee0021 --- /dev/null +++ b/SOURCE/BLITBUF.ASM @@ -0,0 +1,169 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + .CODE + +;========================================================================= +;= VI_DrawMaskedPicToBuffer = +;= = +;= C prototype: = +;= void VI_DrawMaskedPicToBuffer (int x, int y, pic_t *pic) = +;========================================================================= + + @Proc VI_DrawMaskedPicToBuffer, , <,,> + + + mov edi,OFFSET viewbuffer + mov esi,[pic] ; si -> pic + +;----- Set up y and height + + xor ecx,ecx + mov cx,[esi+2] ; get height (row count) of image + mov eax,[y] ; get row location + sub ax,[esi+6] ; subtract orgy + +;----- Adjust for y < 0 + + or eax,eax ; is y < 0 ? + jnl short @@findheight ; if not, go to height adjust + add ecx,eax ; if so, add y to height (h -= (-y)) + xor eax,eax ; y = 0 + +;----- Check for bitmap going off the bottom edge + +@@findheight: + push eax ; save y + add eax,ecx ; bottom row of image + cmp eax,windowHeight + pop eax ; restore y + jle short @@heightok ; if not, get on with it + mov ecx,windowHeight + sub ecx,eax ; h = bottom - y + +@@heightok: + +;;;; set es:edi to di+(eax*MAX_VIEW_WIDTH) + + mov ebx,windowWidth + mul ebx ; oh no, not a mul! + add edi,eax ; move down Viewbuffer to proper row + +;----- Set up x and width + + mov edx,[x] ; get column location + sub dx,[esi+4] ; subtract orgx + mov bx,[esi] ; get width (col count) of image + +;----- Set up esi to pic->data + + add esi,8 + +;----- Adjust for x < 0 + + or edx,edx ; is x < 0: + jnl short @@findwidth ; if not, go to width adjust + add ebx,edx ; if so, add x to width (w -= (-x)) + +;----- Check for bitmap going off the right edge + +@@findwidth: + push edx ; save x + add edx,ebx ; rightmost col of image + cmp edx,windowWidth ; is (w+x) > right ? + pop edx ; restore x + jle short @@widthok ; if not, get on with it + mov ebx,windowWidth ; if so, + sub ebx,edx ; w = right - x + +@@widthok: + +;----- Set up edi to point to Veiwbuffer[x,y] + + add edi,edx + + mov edx,windowWidth ; set eax to pixels in viewbuffer + sub edx,ebx ; to right of our image + +@@rowloop: + + push ecx ; save height (row count) + +;------ Copy this row (masked) to Viewbuffer + + mov ecx,ebx ; get width (col count) of image + shr ecx,2 + +@@colloop: ; for each pixel in row +; lodsb ; get the pixel +; test al,al ; check for zero (mask) +; jnz short @@putit ; if not zero, put it in Viewbuffer +; inc di ; otherwise, increment Viewbuffer ptr + + lodsd + test eax,eax + jnz short @@try1 + add edi,4 + loop @@colloop + jmp short @@rowdone + +@@try1: + test al,al + jz short @@try2 + mov [es:edi],al +@@try2: + inc edi + shr eax,8 + test al,al + jz short @@try3 + mov [es:edi],al +@@try3: + inc edi + shr eax,8 + test al,al + jz short @@try4 + mov [es:edi],al +@@try4: + inc edi + shr eax,8 + test al,al + jz short @@next4 + mov [es:edi],al +@@next4: + inc edi + loop @@colloop ; and go to next pixel +; jmp short @@rowdone ; we must be done with this row +;@@putit: ; put the pixel in Viewbuffer +; stosb ; go ahead, put it there +; loop @@colloop ; go to the next pixel +@@rowdone: ; this row is finished + +;------ + + pop ecx ; restore height (row count) + + add edi,edx ; increment Viewbuffer to next row + loop @@rowloop ; go to the next row + + @exitp + ENDP +END diff --git a/SOURCE/DP_PREFS b/SOURCE/DP_PREFS new file mode 100644 index 0000000000000000000000000000000000000000..c276c77e49e311660b4bd0334ebc6b19828dc49f GIT binary patch literal 324 zcmWe&U|{(FA4o7TuyTS(Mn(_`0}UKN7B`HCgWk<>HRual0fUpup%4%a!Xf_|J~+Q- z`0)A_!v`A%c6L`F4hQ0VAU4uz;+PMlw*xUq?Q)|g4&NUP9~^#271jKuQ_!bZ|vo2r)(a6{VsJ_>roafaApajsJAh|y2CXPpJheGh- MwLtk>APhAR0K}zU&Hw-a literal 0 HcmV?d00001 diff --git a/SOURCE/DRAWBKUP.ASM b/SOURCE/DRAWBKUP.ASM new file mode 100644 index 0000000..e2e27e0 --- /dev/null +++ b/SOURCE/DRAWBKUP.ASM @@ -0,0 +1,474 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + .CODE + +;============================================================================ +; +; Fixed point math +; +;============================================================================ + +@Proc FIXEDMUL, <>, <,> + mov eax,op1 + imul [op2] + shrd eax,edx,16 + @exitp <> +ENDP + +@Proc FIXEDDIV, <>, <,> + mov eax,op1 + cdq + shld edx,eax,16 + sal eax,16 + idiv [op2] +@exitp <> + +ENDP + + + +;============================================================================ +; +; RF_BlitView +; +;============================================================================ + +@Proc RF_BlitView, + + mov esi,OFFSET viewbuffer + mov edi,[viewLocation] + mov ebx,[windowHeight] + mov eax,SCREENWIDTH + sub eax,[windowWidth] + mov edx,eax + mov eax,[windowWidth] + shr eax,2 + +ALIGN 4 +@@blitloop1: + mov ecx,eax + rep movsd + add edi,edx + dec ebx + jnz @@blitloop1 + + @exitp +ENDP + + +;============================================================================ +; +; Merge +; +; merge two parts of the unsorted array to the sorted array +; +;============================================================================ + +.DATA + +EXTRN src1:DWORD +EXTRN src2:DWORD +EXTRN dest:DWORD +EXTRN size1:DWORD +EXTRN size2:DWORD + +PUBLIC mergefrom1 +PUBLIC finishfrom1 +PUBLIC mergefrom2 +PUBLIC finishfrom2 +PUBLIC mergedone + +.CODE + + @Proc Merge, + + mov ebx,[src1] + mov esi,[src2] + mov edi,[dest] + mov ecx,[size1] + mov edx,[size2] + + mov eax,[ebx] + cmp eax,[esi] + jb SHORT mergefrom2 ; if (*src1 < *src2) goto mergefrom2; + +mergefrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + dec ecx + jz finishfrom2 ; if (!--size1) goto finishfrom2; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + +mergefrom2: + movsd ; *dest++ = *src2++; + dec edx + jz finishfrom1 ; if (!--size2) goto finishfrom1; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + jmp SHORT mergefrom2 + + ALIGN 4 +finishfrom2: + movsd ; *dest++ = *src2++; + dec edx ; while (size2--) + jnz SHORT finishfrom2 + jmp SHORT mergedone + + ALIGN 4 +finishfrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + loop SHORT finishfrom1 ; while (size1--) + +mergedone: + mov [dest],edi + @exitp + ENDP + + +;============================================================================ +; +; unwound vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx fractional step value +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +SCALELABEL MACRO number +vscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + SCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ecx ; calculate next location + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +vscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + mov [edi],al +vscale0: + ret + + +.DATA + +SCALEDEFINE MACRO number + dd vscale&number +ENDM + + ALIGN 4 +scalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + SCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC scalecalls + +;================================================= + +; +; parameters for RN_ScalePost +; +sp_dest dd 0 +sp_count dd 0 +sp_fracstep dd 0 +sp_frac dd 0 +sp_source dd 0 +sp_colormap dd 0 + +PUBLIC sp_dest, sp_count, sp_fracstep, sp_frac, sp_source, sp_colormap + +.CODE + + +;================ +; +; ScalePost +; +;================ + + @Proc ScalePost, + +IFE SKIPPRIMITIVES + + mov edx,[sp_frac] + mov ecx,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + shld ebx,edx,16 ; get address of first location + mov ebp,[sp_count] + call [scalecalls+ebp*4] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound masked vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx all 0, low byte overwritten +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; ebp fractional step value +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +ALIGN 4 +MSCALELABEL MACRO number +mvscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + MSCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ebp ; calculate next location + mov cl,al ; save original color for jcxz + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + jcxz $+9 + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +mvscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + test al,0 + jz mvscale0 + mov [edi],al +mvscale0: + ret + + +.DATA + +MSCALEDEFINE MACRO number + dd mvscale&number +ENDM + + ALIGN 4 +mscalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + MSCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mscalecalls + +mscalecall dd 0 + +.CODE + + +;================ +; +; ScaleMaskedPost +; +; Same parameters as ScalePost, but 0 pixels are not drawn +; +;================ + + @Proc ScaleMaskedPost, + +IFE SKIPPRIMITIVES + + mov ebp,[sp_count] + mov eax,[mscalecalls+ebp*4] + mov [mscalecall],eax + + mov edx,[sp_frac] + mov ebp,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + xor ecx,ecx + shld ebx,edx,16 ; get address of first location + call [mscalecall] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound horizontal texture mapping code +; +; eax lighttable +; ebx xtotal 6 bits units 26 bits frac +; ecx ytotal 6 bits units 26 bits frac +; edx xstep +; esi start of block +; edi dest +; ebp scratch offset +; +; [ystep] +; +; ebp should by preset from ebx / ecx before calling +;============================================================================ + +MAPLABEL MACRO number +hmap&number: +ENDM + +LINE = MAXWINDOWWIDTH +REPT MAXWINDOWWIDTH + MAPLABEL %LINE + mov al,[esi+ebp] ; get source pixel + add ebx,edx ; xtotal += xstep + add ecx,[ystep] ; ytotal += ystep + xor ebp,ebp + mov al,[eax] ; translate color + shld ebp,ecx,6 ; shift in new y/x position + shld ebp,ebx,6 + mov [edi-(LINE-1)],al ; write pixel +LINE = LINE-1 +ENDM +hmap0: + ret + + +.DATA + +ystep dd 0 + +MAPDEFINE MACRO number + dd hmap&number +ENDM + + ALIGN 4 +mapcalls LABEL +LINE = 0 +REPT MAXWINDOWWIDTH+1 + MAPDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mapcalls + + + +mapcall dd 0 + +; +; parameters for RN_MapLine +; +mr_dest dd 0 ; pointer to first pixel in view buffer +mr_count dd 0 +mr_picture dd 0 ; pointer to 4096 pixel block +mr_colormap dd 0 ; page aligned light table +mr_xfrac dd 0 ; 16 frac bits +mr_yfrac dd 0 ; 16 frac bits +mr_xstep dd 0 +mr_ystep dd 0 + +PUBLIC mr_dest,mr_picture,mr_colormap,mr_xfrac,mr_yfrac,mr_xstep,mr_ystep,mr_count + +.CODE + + +;================ +; +; MapRow +; +; Horizontal texture mapping +; +;================ + + +@Proc MapRow, + +IFE SKIPPRIMITIVES + + mov eax,[mr_count] + mov ebx,[mapcalls+eax*4] + mov [mapcall],ebx ; spot to jump into unwound + + mov edi,[mr_dest] + add edi,[mr_count] + dec edi + + mov eax,[mr_ystep] + shl eax,10 + mov [ystep],eax + + mov eax,[mr_colormap] + mov ebx,[mr_xfrac] + shl ebx,10 + mov ecx,[mr_yfrac] + shl ecx,10 + mov edx,[mr_xstep] + shl edx,10 + mov esi,[mr_picture] + + + xor ebp,ebp + shld ebp,ecx,6 + shld ebp,ebx,6 ; do first step for pipeline + + call [mapcall] + + shr ebx,10 + mov [mr_xfrac],ebx + shr ecx,10 + mov [mr_yfrac],ecx + +ENDIF + + @exitp +ENDP + +END diff --git a/SOURCE/D_DISK.C b/SOURCE/D_DISK.C new file mode 100644 index 0000000..83f3f2e --- /dev/null +++ b/SOURCE/D_DISK.C @@ -0,0 +1,332 @@ +// D_DISK.C + +#include +#include +#include +#include +#include + +#include "d_global.h" +#include "d_disk.h" +#include "d_misc.h" + +/* +============================================================================= + + GLOBALS + +============================================================================= +*/ + +fileinfo_t fileinfo; // the file header +lumpinfo_t *infotable; // pointers into the cache file +void **lumpmain; // pointers to the lumps in main memory + +int cachehandle; // handle of current file + +FILE *debugstream; // misc io stream + +/* +============================================================================ + + LOW LEVEL ROUTINES + +============================================================================ +*/ + + +/* +====================== += += CA_ReadFile += +====================== +*/ + +void CA_ReadFile (char *name, void *buffer, unsigned length) +{ + int handle; + + if ((handle = open(name,O_RDONLY | O_BINARY)) == -1) + MS_Error ("CA_ReadFile: Open failed!"); + + if (!read(handle,buffer,length)) + { + close (handle); + MS_Error ("CA_LoadFile: Read failed!"); + } + + close (handle); +} + + +/* +====================== += += CA_LoadFile += +====================== +*/ + +void *CA_LoadFile (char *name) +{ + int handle; + unsigned length; + void *buffer; + + if ((handle = open(name,O_RDONLY | O_BINARY)) == -1) + MS_Error ("CA_LoadFile: Open failed!"); + + length = filelength (handle); + + if (!(buffer = malloc(length)) ) + MS_Error ("CA_LoadFile: Malloc failed!"); + + if (!read(handle,buffer,length)) + { + close (handle); + MS_Error ("CA_LoadFile: Read failed!"); + } + + close (handle); + + return buffer; +} + + +/* +============================================================================ + + IDLINK STUFF + +============================================================================ +*/ + + +/* +==================== += += CA_InitFile += +==================== +*/ + +void CA_InitFile (char *filename) +{ + unsigned size,i; + +// +// if a file is allready open, shut it down +// + if (cachehandle) + { + close (cachehandle); + free (infotable); + for (i=0 ; i < fileinfo.numlumps ; i++) + if (lumpmain[i]) + free (lumpmain[i]); + free (lumpmain); + } + +// +// load the header +// + if ((cachehandle = open(filename, + O_RDONLY | O_BINARY, S_IREAD)) == -1) + MS_Error ("Can't open %s!",filename); + + read(cachehandle, (void *)&fileinfo, sizeof(fileinfo)); + +// +// load the info list +// + size = fileinfo.infotablesize; + infotable = malloc(size); + lseek (cachehandle,fileinfo.infotableofs,SEEK_SET); + read (cachehandle, (void *)infotable, size); + + size = fileinfo.numlumps*sizeof(int); + lumpmain = malloc(size); + memset (lumpmain,0,size); +} + + +/* +==================== += += CA_CheckNamedNum += += Returns -1 if name not found += +==================== +*/ + +int CA_CheckNamedNum (char *name) +{ + int i,ofs; + + for (i=0 ; i=fileinfo.numlumps) + MS_Error ("CA_LumpPointer: %i > numlumps!",lump); +#endif + if (!lumpmain[lump]) { + // + // load the lump off disk + // + if (! (lumpmain[lump] = malloc(infotable[lump].size)) ) + MS_Error ("CA_LumpPointer: malloc failure of lump %d, with size %d", + lump,infotable[lump].size); + lseek (cachehandle, infotable[lump].filepos, SEEK_SET); + read (cachehandle,lumpmain[lump],infotable[lump].size); + } + + return lumpmain[lump]; +} + + +/* +==================== += += CA_ReadLump += += Reads a lump into an allready allocated buffer += Does NOT consider it to be cached there, so it is ok to change it += +==================== +*/ + +void CA_ReadLump (int lump, void *dest) +{ +#ifdef PARMCHECK + if (lump>=fileinfo.numlumps) + MS_Error ("CA_ReadLump: %i > numlumps!",lump); +#endif + lseek (cachehandle, infotable[lump].filepos, SEEK_SET); + read (cachehandle,dest,infotable[lump].size); +} + + + +/* +==================== += += CA_FreeLump += += Frees the memory associated with a lump += +==================== +*/ + +void CA_FreeLump (unsigned lump) +{ +#ifdef PARMCHECK + if (lump>=fileinfo.numlumps) + MS_Error ("CA_FreeLump: %i > numlumps!",lump); +#endif + free (lumpmain[lump]); + lumpmain[lump] = NULL; +} + + +/* +==================== += += CA_WriteLump += += Writes a lump back out to disk. It must be currently cached in. += No size change is possible += +==================== +*/ + +void CA_WriteLump (unsigned lump) +{ +#ifdef PARMCHECK + if (lump>=fileinfo.numlumps) + MS_Error ("CA_WriteLump: %i > numlumps!",lump); + if (!lumpmain[lump]) + MS_Error ("CA_WriteLump: %i not cached in!",lump); +#endif + + lseek (cachehandle,infotable[lump].filepos, SEEK_SET); + write (cachehandle,lumpmain[lump],infotable[lump].size); +} + + +/* +====================== += += CA_OpenDebug += +====================== +*/ + +void CA_OpenDebug (void) +{ + debugstream = fopen("DEBUG.TXT","w"); +} + + +/* +====================== += += CA_CloseDebug += +====================== +*/ + +void CA_CloseDebug (void) +{ + fclose (debugstream); +} + diff --git a/SOURCE/D_DISK.H b/SOURCE/D_DISK.H new file mode 100644 index 0000000..0c19d79 --- /dev/null +++ b/SOURCE/D_DISK.H @@ -0,0 +1,50 @@ +// D_DISK.H + +#ifndef __DISK__ +#define __DISK__ + +#include + +#pragma noalign (fileinfo_s) + +typedef struct fileinfo_s // must be noaligned, or the first +{ // short will be padded to 4 bytes + short numlumps; + int infotableofs; + int infotablesize; +} fileinfo_t; + + +typedef struct +{ + int filepos; + unsigned size; + short nameofs; + short compress; +} lumpinfo_t; + + + +extern fileinfo_t fileinfo; // the file header +extern lumpinfo_t *infotable; // pointers into the cache file +extern void **lumpmain; // pointers to the lumps in main memory + +extern int cachehandle; // handle of current file + +extern FILE *debugstream; // misc io stream + + +void CA_ReadFile (char *name, void *buffer, unsigned length); +void *CA_LoadFile (char *name); + +void CA_InitFile (char *filename); +int CA_CheckNamedNum (char *name); +int CA_GetNamedNum (char *name); +void *CA_CacheLump (int lump); +void CA_ReadLump (int lump, void *dest); +void CA_FreeLump (unsigned lump); +void CA_WriteLump (unsigned lump); +void CA_OpenDebug (void); +void CA_CloseDebug (void); + +#endif diff --git a/SOURCE/D_FONT.C b/SOURCE/D_FONT.C new file mode 100644 index 0000000..9ecc9b1 --- /dev/null +++ b/SOURCE/D_FONT.C @@ -0,0 +1,285 @@ +// d_font.c + +#include +#include +#include + +#include "d_global.h" +#include "d_video.h" +#include "d_misc.h" +#include "d_font.h" + + +font_t *font; +int fontbasecolor = 0; +int fontspacing = 1; + +char str[MAXPRINTF]; // general purpose string buffer + +int printx = 0,printy = 0; // the printing position (top left corner) + +int windowx = 0; // window size for text positioning +int windowy = 0; +int windoww = 320; +int windowh = 200; + + +/* +======================== += += FN_RawPrint += += Draws a string of characters to the screen += +======================== +*/ + +void FN_RawPrint (char *str) +{ + byte b; + byte *dest, *source; + int width,height; + char ch; + int x,y; + int oldpx; + + oldpx = printx; + + dest = ylookup[printy]+printx; + + height = font->height; + + while ( (ch=*str++) != 0) + { + width = font->width[ch]; + source = ((byte *)font) + font->charofs[ch]; + + while (width--) + { + for (y=0;yheight); +} + + +/* +======================== += += FN_RawWidth += += Returns the width of a string += Does NOT handle newlines += +======================== +*/ + +int FN_RawWidth (char *str) +{ + int width; + + width = 0; + + while (*str) + { + width += font->width[*str++]; + width += fontspacing; + } + + return width; +} + + +/* +======================== += += FN_Print += += Prints a string in the current window, with newlines += going down a line and back to windowx += +======================== +*/ + +void FN_Print(char *s) +{ + char c, *se; + unsigned h; + + h = font->height; + + while (*s) + { + se = s; + + c = *se; + while (c && c != '\n') + c= *++se; + + *se = '\0'; + + FN_RawPrint (s); + + s = se; + if (c) + { + *se = c; + s++; + + printx = windowx; + printy += h; + } + } +} + + +/* +===================== += += FN_PrintCentered += += Prints a multi line string with each line centered += +===================== +*/ + +void FN_PrintCentered (char *s) +{ + char c, *se; + unsigned w,h; + + h = font->height; + + while (*s) + { + se = s; + + c = *se; + while (c && c != '\n') + c= *++se; + + *se = '\0'; + + w = FN_RawWidth (s); + printx = windowx + (windoww-w)/2; + FN_RawPrint (s); + + s = se; + if (c) + { + *se = c; + s++; + + printx = windowx; + printy += h; + } + } +} + + +/* +===================== += += FN_Printf += += Prints a printf style formatted string at the current print position += using the current print routines += +===================== +*/ + +void FN_Printf (char *fmt, ...) +{ + va_list argptr; + int cnt; + + va_start (argptr,fmt); + cnt = vsprintf (str,fmt,argptr); + va_end (argptr); + + if (cnt>=MAXPRINTF) + MS_Error ("FN_Printf: String too long: %s",fmt); + + FN_Print (str); +} + + +/* +===================== += += FN_CenterPrintf += += As FN_Printf, but centers each line of text in the window bounds += +===================== +*/ + +void FN_CenterPrintf (char *fmt, ...) +{ + va_list argptr; + int cnt; + + va_start (argptr,fmt); + cnt = vsprintf (str,fmt,argptr); + va_end (argptr); + + if (cnt>=MAXPRINTF) + MS_Error ("FN_CPrintf: String too long: %s",fmt); + + FN_PrintCentered (str); +} + + +/* +===================== += += FN_BlockCenterPrintf += += As FN_CenterPrintf, but also enters the entire set of lines vertically in += the window bounds += +===================== +*/ + +void FN_BlockCenterPrintf (char *fmt, ...) +{ + va_list argptr; + int cnt; + char *s; + int height; + + va_start (argptr,fmt); + cnt = vsprintf (str,fmt,argptr); + va_end (argptr); + + if (cnt>=MAXPRINTF) + MS_Error ("FN_CCPrintf: String too long: %s",fmt); + + height = 1; + s = str; + + while (*s) + { + if (*s++=='\n') + height++; + } + + height *= font->height; + + printy = windowy + (windowh-height)/2; + FN_PrintCentered (str); +} + + diff --git a/SOURCE/D_FONT.H b/SOURCE/D_FONT.H new file mode 100644 index 0000000..9d6c3f2 --- /dev/null +++ b/SOURCE/D_FONT.H @@ -0,0 +1,31 @@ +// d_font.h + +#ifndef __FONT__ +#define __FONT__ + +#define MAXPRINTF 256 + +typedef struct +{ + short height; + char width[256]; + short charofs[256]; +} font_t; + + +extern font_t *font; +extern int fontbasecolor; +extern int fontspacing; + +extern int printx,printy; +extern int windowx,windowy,windoww,windowh; + + +int FN_RawWidth (char *str); + +void FN_Printf (char *fmt, ...); +void FN_CenterPrintf (char *fmt, ...); +void FN_BlockCenterPrintf (char *fmt, ...); + + +#endif diff --git a/SOURCE/D_GLOBAL.H b/SOURCE/D_GLOBAL.H new file mode 100644 index 0000000..808b327 --- /dev/null +++ b/SOURCE/D_GLOBAL.H @@ -0,0 +1,7 @@ +// d_global.h + +#define PARMCHECK + +typedef unsigned char byte; +typedef unsigned short word; +typedef enum {false,true} boolean; diff --git a/SOURCE/D_INTS.C b/SOURCE/D_INTS.C new file mode 100644 index 0000000..d3ca930 --- /dev/null +++ b/SOURCE/D_INTS.C @@ -0,0 +1,563 @@ +// d_ints.c + +#include +#include +#include +#include + +#include "d_global.h" +#include "d_video.h" +#include "d_ints.h" +#include "d_misc.h" + +#define TIMERINT 8 +#define KEYBOARDINT 9 + +#define ISRCOLOR 190 +#define FRAMEHOOKCOLOR 200 +#define TIMERHOOKCOLOR 210 + +#define VBLCOUNTER 16000 // this could be a bit higher, but + // i'm givving it some latency elbow room + +void (*oldkeyboardisr)() = 0; +void (*oldtimerisr)() = 0; + +//=================================== + +void (*framehook)() = 0; // called every frame (cursor) +void (*timerhook)() = 0; // called every other frame (player) + +boolean timeractive = false; + +int timerspeed; // 16 bit hardware counter value +int colorborder = 0; // if true, ISRs will color border +int timecount; + +int framesperhook,framecounter; +int intsperframe,intcounter; +int oldbordercolor; +byte *pendingscreen; + +//=================================== + +boolean keyboard[NUMCODES]; +boolean paused,capslock; +char lastascii; +byte lastscan; + +byte ASCIINames[] = // Unshifted ASCII for scan codes + { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0 ,27 ,'1','2','3','4','5','6','7','8','9','0','-','=',8 ,9 , // 0 + 'q','w','e','r','t','y','u','i','o','p','[',']',13 ,0 ,'a','s', // 1 + 'd','f','g','h','j','k','l',';',39 ,'`',0 ,92 ,'z','x','c','v', // 2 + 'b','n','m',',','.','/',0 ,'*',0 ,' ',0 ,0 ,0 ,0 ,0 ,0 , // 3 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,'7','8','9','-','4','5','6','+','1', // 4 + '2','3','0',127,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 5 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 + }, + ShiftNames[] = // Shifted ASCII for scan codes + { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0 ,27 ,'!','@','#','$','%','^','&','*','(',')','_','+',8 ,9 , // 0 + 'Q','W','E','R','T','Y','U','I','O','P','{','}',13 ,0 ,'A','S', // 1 + 'D','F','G','H','J','K','L',':',34 ,'~',0 ,'|','Z','X','C','V', // 2 + 'B','N','M','<','>','?',0 ,'*',0 ,' ',0 ,0 ,0 ,0 ,0 ,0 , // 3 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,'7','8','9','-','4','5','6','+','1', // 4 + '2','3','0',127,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 5 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 + }, + SpecialNames[] = // ASCII for 0xe0 prefixed codes + { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 0 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,13 ,0 ,0 ,0 , // 1 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 2 + 0 ,0 ,0 ,0 ,0 ,'/',0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 3 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 4 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 5 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , // 6 + 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 // 7 + }; + + +int scanbuttons[NUMBUTTONS] = +{ + SC_UPARROW, // bt_north + SC_RIGHTARROW, // bt_east + SC_DOWNARROW, // bt_south + SC_LEFTARROW, // bt_west + SC_CONTROL, // bt_a + SC_ALT, // bt_b + SC_SPACE, // bt_c + SC_RSHIFT // bt_d +}; + + +int in_button[NUMBUTTONS]; // frames the button has been down + + + +//=========================================================================== + + + +/* +================ += += INT_KeyboardISR += +================ +*/ + +#pragma interrupt(INT_KeyboardISR) +void INT_KeyboardISR () +{ +static boolean special; + byte k,c; + unsigned short temp; + _XSTACK *ptr; /* ptr to the stack frame */ + +// Get the scan code + + k = _inbyte((unsigned short)0x60); + +// acknowledge the interrupt + + _outbyte((unsigned short)0x20,(unsigned char)0x20); + if (k == 0xe0) // Special key prefix + special = true; + else if (k == 0xe1) // Handle Pause key + paused = true; + else + { + if (k & 0x80) // Break code + { + k &= 0x7f; + keyboard[k] = false; + } + else // Make code + { + lastscan = k; + keyboard[k] = true; + + if (special) + c = SpecialNames[k]; + else + { + if (k == SC_CAPSLOCK) + { + capslock ^= true; + // DEBUG - make caps lock light work + } + + if (keyboard[SC_LSHIFT] || keyboard[SC_RSHIFT]) // If shifted + { + c = ShiftNames[k]; + if ((c >= 'A') && (c <= 'Z') && capslock) + c += 'a' - 'A'; + } + else + { + c = ASCIINames[k]; + if ((c >= 'a') && (c <= 'z') && capslock) + c -= 'a' - 'A'; + } + } + if (c) + lastascii = c; + + *(short *)0x41c = *(short *)0x41a; // clear bios key buffer + } + + special = false; + } + +} + +//=========================================================================== + +/* +================ += += INT_TimerISR += +================ +*/ + +#pragma interrupt(INT_TimerISR) +void INT_TimerISR () +{ + _XSTACK *ptr; // ptr to the stack frame + +// don't chain this to the dos isr + + ptr = (_XSTACK *)_get_stk_frame(); // get ptr to the V86 _XSTACK frame + ptr->opts |= _STK_NOINT; // set _STK_NOINT to prevent V86 call + + _outbyte(0x20,0x20); // Ack the interrupt + CLI; // don't let any more ints hit + + if (colorborder) + VI_ColorBorder(ISRCOLOR); + + if (--intcounter <= 0) + { + intcounter = intsperframe; + // + // increment timing variables + // + timecount++; + + if (framehook) + { + if (colorborder) + VI_ColorBorder(FRAMEHOOKCOLOR); + framehook (); + } + + // + // call the user hook if needed + // + if (timerhook && --framecounter <= 0) + { + framecounter = framesperhook; + + if (colorborder) + VI_ColorBorder(TIMERHOOKCOLOR); + timerhook (); + } + } + + if (colorborder) + VI_ColorBorder(oldbordercolor); +} + +//=========================================================================== + +/* +===================== += += INT_SetTimer0 += += Sets system timer 0 to the specified speed += +===================== +*/ + +void INT_SetTimer0(int speed) +{ +#ifdef PARMCHECK + if (speed > 0 && speed < 150) + MS_Error ("SD_SetTimer0: %i is a bad value",speed); +#endif + + timerspeed = speed; + + _outbyte(0x43,0x36); // Change timer 0 + _outbyte(0x40,timerspeed); + _outbyte(0x40,timerspeed >> 8); +} + +/* +===================== += += INT_SetIntsPerFrame += += Determines the number of interrupts that will occur each += raster scan. (VGA 70 fps) += +===================== +*/ + +void INT_SetIntsPerFrame (int ints) +{ + intsperframe = intcounter = ints; + INT_SetTimer0(VBLCOUNTER/ints); +} + + + +/* +================ += += INT_TimerHook += +================ +*/ + +void INT_TimerHook(void (* hook)(void), int tics) +{ + framecounter = framesperhook = tics; + timerhook = hook; +} + + +/* +================ += += INT_FrameHook += +================ +*/ + +void INT_FrameHook(void (* hook)(void) ) +{ + framehook = hook; +} + + +/* +===================== += += IN_ClearKeysDown += += Clears the keyboard array += +===================== +*/ + +void IN_ClearKeysDown(void) +{ + lastscan = SC_NONE; + lastascii = KEY_NONE; + memset (keyboard,0,sizeof(keyboard)); +} + + +/* +=================== += += IN_ReadControls += +=================== +*/ + +void IN_ReadControls (void) +{ + int i; + boolean buttonstate[NUMBUTTONS]; + + memset (buttonstate,0,sizeof(buttonstate)); +// +// get keyboard +// + for (i=0;i>=1) + if (buttons&1) + btnstate[i] = true; + if (mouseb1) + btnstate[0] = true; + if (mouseb2) + btnstate[1] = true; +#endif +} + + +/* +===================== += += IN_CheckAck += +===================== +*/ + +boolean IN_CheckAck (void) +{ + unsigned i,buttons; + +// +// see if something has been pressed +// + if (lastscan) + return true; + +#if 0 +// DBDOOM + buttons = IN_JoyButtons () << 4; + if (mousepresent) + buttons |= IN_MouseButtons (); + + for (i=0;i<8;i++,buttons>>=1) + if ( buttons&1 ) + { + if (!btnstate[i]) + return true; + } + else + btnstate[i]=false; + if ( mouseb1 ) + { + if (!btnstate[0]) + return true; + } + else + btnstate[0]=false; + + if ( mouseb2 ) + { + if (!btnstate[1]) + return true; + } + else + btnstate[1]=false; +#endif + + return false; +} + + +/* +===================== += += IN_Ack += +===================== +*/ + +void IN_Ack (void) +{ + IN_StartAck (); + + while (!IN_CheckAck ()) + ; +} + + +/* +===================== += += IN_AckTics += += Wait a certain number of tics or aborts out if any += button is pressed += +===================== +*/ + +boolean IN_AckTics(int delay) +{ + int lasttime; + + lasttime = timecount; + IN_StartAck (); + do + { + if (IN_CheckAck()) + return true; + } while (timecount - lasttime < delay); + + return false; +} + + + +//========================================================================== + + +/* +================ += += INT_Setup += +================ +*/ + +void INT_Setup (void) +{ + oldkeyboardisr = _dos_getvect(KEYBOARDINT); + _dpmi_lockregion (INT_KeyboardISR,4096); + _dos_setvect (KEYBOARDINT, INT_KeyboardISR); + + oldtimerisr = _dos_getvect(TIMERINT); + _dpmi_lockregion (INT_TimerISR,4096); + _dos_setvect (TIMERINT, INT_TimerISR); + timeractive = true; + + INT_SetFPS(70); +} + + +/* +================ += += INT_Shutdown += +================ +*/ + +void INT_Shutdown (void) +{ + if (oldkeyboardisr) + _dos_setvect (KEYBOARDINT, oldkeyboardisr); + + if (oldtimerisr) + _dos_setvect (TIMERINT, oldtimerisr); + + INT_SetTimer0 (0); // back to 18.4 ips +} + +void INT_SetFPS(int fps) +{ + INT_SetTimer0(1193180/fps); +} diff --git a/SOURCE/D_INTS.H b/SOURCE/D_INTS.H new file mode 100644 index 0000000..2762b92 --- /dev/null +++ b/SOURCE/D_INTS.H @@ -0,0 +1,131 @@ +// d_ints.h + +// +// keyboard scan codes +// +#define NUMCODES 128 + + +#define SC_NONE 0 +#define SC_BAD 0xff +#define SC_ENTER 0X1c +#define SC_ESCAPE 0x01 +#define SC_SPACE 0x39 +#define SC_BACKSPACE 0x0e +#define SC_TAB 0x0f +#define SC_ALT 0x38 +#define SC_CONTROL 0x1d +#define SC_CAPSLOCK 0x3a +#define SC_LSHIFT 0x2a +#define SC_RSHIFT 0x36 +#define SC_UPARROW 0x48 +#define SC_DOWNARROW 0x50 +#define SC_LEFTARROW 0x4b +#define SC_RIGHTARROW 0x4d +#define SC_INSERT 0x52 +#define SC_DELETE 0x53 +#define SC_HOME 0x47 +#define SC_END 0x4f +#define SC_PGUP 0x49 +#define SC_PGDN 0x51 +#define SC_F1 0x3b +#define SC_F2 0x3c +#define SC_F3 0x3d +#define SC_F4 0x3e +#define SC_F5 0x3f +#define SC_F6 0x40 +#define SC_F7 0x41 +#define SC_F8 0x42 +#define SC_F9 0x43 +#define SC_F10 0x44 +#define SC_F11 0x57 +#define SC_F12 0x59 + +#define SC_1 0x02 +#define SC_2 0x03 +#define SC_3 0x04 +#define SC_4 0x05 +#define SC_5 0x06 +#define SC_6 0x07 +#define SC_7 0x08 +#define SC_8 0x09 +#define SC_9 0x0a +#define SC_0 0x0b + +#define SC_A 0x1e +#define SC_B 0x30 +#define SC_C 0x2e +#define SC_D 0x20 +#define SC_E 0x12 +#define SC_F 0x21 +#define SC_G 0x22 +#define SC_H 0x23 +#define SC_I 0x17 +#define SC_J 0x24 +#define SC_K 0x25 +#define SC_L 0x26 +#define SC_M 0x32 +#define SC_N 0x31 +#define SC_O 0x18 +#define SC_P 0x19 +#define SC_Q 0x10 +#define SC_R 0x13 +#define SC_S 0x1f +#define SC_T 0x14 +#define SC_U 0x16 +#define SC_V 0x2f +#define SC_W 0x11 +#define SC_X 0x2d +#define SC_Y 0x15 +#define SC_Z 0x2c + +#define KEY_NONE 0 +#define KEY_RETURN 0x0d +#define KEY_ENTER 0X0d +#define KEY_ESCAPE 0x1b +#define KEY_SPACE 0x20 +#define KEY_BACKSPACE 0x08 +#define KEY_TAB 0x09 +#define KEY_DELETE 0x7f + + +extern byte *pendingscreen; + +#define NUMBUTTONS 9 + +enum { + bt_nobutton = -1, + bt_north = 0, + bt_east, + bt_south, + bt_west, + bt_a, + bt_b, + bt_c, + bt_d +}; + + +extern boolean keyboard[NUMCODES]; +extern boolean paused,capslock; +extern char lastascii; +extern byte lastscan; + +extern boolean timeractive; + +extern int timecount; + +extern int scanbuttons[NUMBUTTONS]; +extern int in_button[NUMBUTTONS]; // frames the button has been down + + +void INT_Setup (void); +void INT_Shutdown (void); + +void INT_FrameHook(void (* hook)(void)); +void INT_TimerHook(void (* hook)(void), int tics); + +void IN_ClearKeysDown (void); +void IN_Ack (void); +void IN_ReadControls (void); +void INT_SetFPS(int fps); diff --git a/SOURCE/D_MISC.C b/SOURCE/D_MISC.C new file mode 100644 index 0000000..f5b632d --- /dev/null +++ b/SOURCE/D_MISC.C @@ -0,0 +1,147 @@ +// P_MISC.C + +#include +#include +#include +#include +#include + +#include "d_global.h" +#include "d_ints.h" +#include "d_video.h" +#include "d_misc.h" + +int my_argc; +char ** my_argv; + +/* +============================================================================= + + ODD FUNCTIONS + +============================================================================= +*/ + + +/* +================= += += MS_CheckParm += += Checks for the given parameter in the program's command line arguments += += Returns the argument number (1 to argc-1) or 0 if not present += +================= +*/ + +int MS_CheckParm (char *check) +{ + int i; + char *parm; + + for (i = 1;i +#include +#include +#include +#include + +#include "d_global.h" +#include "d_ints.h" +#include "d_video.h" +#include "d_misc.h" +// added to allow drawing directly to buffer where frame is built +// TML 9-20-94 +#include "r_public.h" + +#define CRTCOFF (_inbyte(STATUS_REGISTER_1)&1) + +void VI_CopyUpdate (void); +void VI_BlitMaskedPic (byte *source,byte *dest,int width,int height,int mask); + +/* +============================================================================= + + GLOBALS + +============================================================================= +*/ + +byte *screen = (byte *)SCREEN; + +byte *ylookup[SCREENHEIGHT]; // into video screen + +/* +============================================================================= + + VGA REGISTER MANAGEMENT ROUTINES + +============================================================================= +*/ + + +/* +================= += += VI_SetTextMode += +================= +*/ + +void VI_SetTextMode (void) +{ + union REGS r; + + r.x.ax = 3; + int86 (0x10,(const union REGS *)&r,&r); +} + + +//========================================================================= + +/* +================= += += VI_SetVGAMode += +================= +*/ + +void VI_SetVGAMode (void) +{ + union REGS r; + + r.x.ax = 0x13; + int86 (0x10,(const union REGS *)&r,&r); +} + + +//========================================================================= + +/* +================= += += VI_WaitVBL += +================= +*/ + +void VI_WaitVBL (int vbls) +{ + int old; + int i,stat; + + while (vbls--) + { + // wait for display enabled, so we know it isn't just after vsync + waitdisplay: + CLI; + while (CRTCOFF) + ; + + // wait for display just turned off + waitbottom: + STI; + i--; // time for an interrupt + CLI; + + for (i=0;i<10;i++) + { + stat = _inbyte(STATUS_REGISTER_1); + if (stat & 8) + goto waitdisplay; // vsync... + if (!(stat&1)) + goto waitbottom; + } + STI; + } +} + + +/* +============================================================================= + + PALETTE OPS + +============================================================================= +*/ + + +/* +================= += += VI_FillPalette += +================= +*/ + +void VI_FillPalette (int red, int green, int blue) +{ + int i; + + _outbyte (PEL_WRITE_ADR,0); + for (i=0;i<256;i++) + { + _outbyte (PEL_DATA,red); + _outbyte (PEL_DATA,green); + _outbyte (PEL_DATA,blue); + } +} + +//=========================================================================== + +/* +================= += += VI_SetColor += +================= +*/ + +void VI_SetColor (int color, int red, int green, int blue) +{ + _outbyte (PEL_WRITE_ADR,color); + _outbyte (PEL_DATA,red); + _outbyte (PEL_DATA,green); + _outbyte (PEL_DATA,blue); +} + +//=========================================================================== + +/* +================= += += VI_GetColor += +================= +*/ + +void VI_GetColor (int color, int *red, int *green, int *blue) +{ + _outbyte (PEL_READ_ADR,color); + *red = _inbyte (PEL_DATA); + *green = _inbyte (PEL_DATA); + *blue = _inbyte (PEL_DATA); +} + +//=========================================================================== + +/* +================= += += VI_SetPalette += +================= +*/ + +void VI_SetPalette (byte *palette) +{ + int i; + + _outbyte (PEL_WRITE_ADR,0); + for (i=0;i<768;i++) + _outbyte(PEL_DATA,*palette++); +} + + +//=========================================================================== + +/* +================= += += VI_GetPalette += +================= +*/ + +void VI_GetPalette (byte *palette) +{ + int i; + + _outbyte (PEL_READ_ADR,0); + for (i=0;i<768;i++) + *palette++ = _inbyte(PEL_DATA); +} + + +//=========================================================================== + +/* +================= += += VI_FadeOut += += Fades the current palette to the given color in the given number of steps += +================= +*/ + +void VI_FadeOut (int start, int end, int red, int green, int blue, int steps) +{ + byte basep[256][3],work[256][3]; + int i,j,delta; + + VI_GetPalette (&basep[0][0]); + +// +// fade through intermediate frames +// + for (i=0;iwidth; + height = pic->height; + source = &pic->data; + + dest = ylookup[y]+x; + while (height--) { + memcpy (dest,source,(size_t)width); + source += width; + dest += SCREENWIDTH; + } +} + + + +/* +================= += += VI_DrawMaskedPic += += Masks a block of main memory to the screen. += Uses orgx,orgy to offset the block += If the hot spot is inside the block shape, the offsets are positive += +================= +*/ + +void VI_DrawMaskedPic (int x, int y, pic_t *pic) +{ + byte *dest, *source; + int width,height,xcor,col; + + x -= pic->orgx; + y -= pic->orgy; + height = pic->height; + source = &pic->data; + while (y<0) { + source += pic->width; + height--; + } + while (height--) { + if (y<200) { + dest = ylookup[y]+x; + xcor = x; + width = pic->width; + while (width--) { + if ((xcor>=0)&&(xcor<=319)) { + if (*source) *dest = *source; + } + xcor++; + source++; + dest++; + } + } + y++; + } +} + +/* +================= += += VI_DrawMaskedPicToBuffer += += Masks a block of main memory to the offscreen buffer where frame is built += Uses orgx,orgy to offset the block += If the hot spot is inside the block shape, the offsets are positive += +================= +*/ + +// TML - Added 9-20-94 (allows image transfer to viewbuffer) + +void VI_DrawMaskedPicToBuffer2 (int x, int y, pic_t *pic) +{ + byte *dest,*source; + int width,height,xcor,col; + + x -= pic->orgx; + y -= pic->orgy; + height = pic->height; + source = &pic->data; + while (y<0) { + source += pic->width; + height--; + } + while (height--) { + if (y<200) { +// dest = ylookup[y]+x; // for blitting to video mem. + dest = viewbuffer+(y*MAX_VIEW_WIDTH+x); + xcor = x; + width = pic->width; + while (width--) { + if ((xcor>=0)&&(xcor<=319)) { + if (*source) *dest = *source; + } + xcor++; + source++; + dest++; + } + } + y++; + } +} + +void VI_Init (void) +{ + int y; + + for (y=0;y],[<[,]...>] +;* +;* Defines a C-callable PUBLIC procedure. Performs the following functions: +;* +;* a) Makes the name PUBLIC. +;* b) Delares a NEAR PROC. +;* c) Saves EBP. +;* d) Establishes stack frame base (EBP <- ESP). +;* e) Saves registers (if given). +;* f) Defines arguments (if given) as [ebp+?]. +;* +;* (Ex:) @Proc MyFunc, , <, > +;* @Proc MyFunc,, <> +;* +;*-------------------------------------------------------------------------- +;* @ExitP [] +;* +;* Leaves a routine previously defined using the '@Proc' macro. +;* +;* a) Cleans up local variables from stack. +;* b) Restores registers. +;* c) Restores EBP. +;* d) Returns ("ret"). +;* +;* (Ex:) @ExitP +;* +;*************************************************************************** +;* Notes: +;* +;* Every procedure defined using "@Proc" must end with "@ExitP". Do not +;* include a "ret" statement in the procedure; jump to a label just before +;* the "@ExitP" macro. +;* +;* The register list given with "@ExitP" must match EXACTLY with the list +;* given with the matching "@Proc" macro. The registers MUST ALWAYS specify +;* 32-bit registers. +;* +;* The variable "typ" may be BYTE, WORD, DWORD, or PTR. +;*************************************************************************** +@Proc MACRO name, regs, args + PUBLIC name + name PROC NEAR + @arg = 8 + @reg = 0 + @loc = 0 + push ebp + mov ebp,esp + ifnb + @Push regs + endif + + irp x, + ifnb + @DefArg x, %(@arg) + endif + endm + ENDM + + +@ExitP MACRO regs + @ClnStk %@loc + ifnb + @Pop regs + endif + pop ebp + ret + ENDM + + +;******************************************************************************* +;* @Local <[,]...> +;* +;* Used within a C-callable procedure declared using "@Proc" to define local +;* (stack) variables. +;* +;* a) Defines local variables as EQUates to [ebp - ?]. +;* +;* (Ex:) @Local <, > +;* @Local < +;* @EndLoc +;*-------------------------------------------------------------------------- +;* @EndLoc +;* +;* Must be used after the final "@Local" statement within a procedure. +;* +;* a) Reserves storage for the previously defined "@Local" variables. +;* +;******************************************************************************* +;* Notes: +;* +;* You can only use "@Local" in a procedure defined with "@Proc" and "@ExitP". +;* ("@ExitP" deallocates the stack storage reserved by "@EndLoc".) +;* +;* The variable "typ" may be BYTE, WORD, DWORD, or PTR. However, all local +;* variables reserve space as if they were DWORDs, to keep the stack DWORD- +;* aligned. +;******************************************************************************* +@Local MACRO local_list + irp x, + ifnb + @loc = @loc + 4 + @DefLoc x, %(@reg+@loc) + endif + endm + ENDM + +@EndLoc MACRO + @LocStk %@loc + ENDM + +@LocStk MACRO num_bytes + sub esp,num_bytes + ENDM + + +;****************************************************************************** +;* @Invoke name, [p1[, p2]...] +;* +;* Calls a C-callable routine with the parameters specified, if any. +;* +;* a) Repeat for all parameters given: +;* 1. Push p? (where p? is one of p10,p9..p1). +;* b) Call the function. +;* c) Clean up the stack. +;* +;* (Ex:) @Invoke Myfunc, MyParm1, MyParm2 +;* +;****************************************************************************** +;* Notes: +;* +;* All parameters are pushed as DWORD PTRs to keep the stack DWORD-aligned. +;****************************************************************************** +@ClnStk MACRO num_bytes + add esp,num_bytes + ENDM + +@Invoke MACRO name,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10 + @prm = 0 + irp x, + ifnb + @prm = @prm + 4 + push DWORD PTR x + endif + endm + call name + @ClnStk %@prm + ENDM + + +;****************************************************************************** +;* @Push +;* +;* Used by the "@Proc" macro to save the register list given. May be used if +;* desired as a shorthand for multiple DWORD push statements. +;* +;* a) Repeat for all elements given: +;* 1. Update register displacement counter (@reg). +;* 2. Push r? (where r? is one of the r1,r2..r14). +;* +;* (Ex:) @Push ebx, esi, edi +;* +;*-------------------------------------------------------------------------- +;* @Pop +;* +;* Counterpart of the above "@Push" macro. +;* +;* a) Repeat for all elements given: +;* 1. Pop r? (where r? is one of the r14,r13..r1). +;* +;* (Ex:) @Pop ebx, esi, edi +;****************************************************************************** +@Push MACRO r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14 + irp x, + ifnb + @reg = @reg + 4 + push x + endif + endm + ENDM + +@Pop MACRO r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14 + irp x, + ifnb + pop x + endif + endm + ENDM + + +;****************************************************************************** +;* @DefArg +;* +;* Used by the "@Proc" macro to setup EQUates to a procedure's arguments. Has +;* no "standalone" use. +;* +;* a) Defines variable as [ebp+?]. +;* b) Updates argument displacement counter (@arg). +;* +;* (Ex:) @DefArg MyArg1, DWORD +;****************************************************************************** +@DefArg MACRO name, typ, displ + + @val_typ = @False + ifidni , ;;Byte + @val_typ = @True + name EQU BYTE PTR [ebp + displ] + @arg = @arg + 4 + endif + + ifidni , ;;Word + @val_typ = @True + name EQU WORD PTR [ebp + displ] + @arg = @arg + 4 + endif + + ifidni , ;;DWord + @val_typ = @True + name EQU DWORD PTR [ebp + displ] + @arg = @arg + 4 + endif + + ifidni , ;;pointer + @val_typ = @True + name EQU DWORD PTR [ebp + displ] + @arg = @arg + 4 + endif + + ife @val_typ + %OUT Unknown type typ. + .ERR + endif + ENDM + + +;****************************************************************************** +;* @DefLoc name, typ +;* +;* Used by the "@Local" macro to setup EQUates to the local variables. Has +;* no "standalone" use. +;* +;* a) Update local variable displacement counter (@loc). +;* b) Define variable as [ebp-?]. +;* +;* (Ex:) @LocArg MyLoc1, DWORD +;****************************************************************************** +@DefLoc MACRO name, typ, displ + @val_typ = @False + ifidni , ;;Byte + @val_typ = @True + name EQU BYTE PTR [ebp - displ] + endif + + ifidni , ;;Word + @val_typ = @True + name EQU WORD PTR [ebp - displ] + endif + + ifidni , ;;DWord + @val_typ = @True + name EQU DWORD PTR [ebp - displ] + endif + + ifidni , ;;pointer + @val_typ = @True + name EQU DWORD PTR [ebp - displ] + endif + + ife @val_typ + %OUT Unknown type typ. + .ERR + endif + ENDM + diff --git a/SOURCE/MAKEDISK.BAT b/SOURCE/MAKEDISK.BAT new file mode 100644 index 0000000..c7002d4 --- /dev/null +++ b/SOURCE/MAKEDISK.BAT @@ -0,0 +1,3 @@ +copy todd3d.exe %1 +copy todd3d.tod %1 +copy readme. %1 diff --git a/SOURCE/MAKEFILE b/SOURCE/MAKEFILE new file mode 100644 index 0000000..bef187f --- /dev/null +++ b/SOURCE/MAKEFILE @@ -0,0 +1,29 @@ +EXE = todd3d + +AFLAGS = /mx +CFLAGS = /g /t /d2 /O3 /znoansi +LFLAGS = /g /t + +OBJS = todd3d.obj \ + r_public.obj \ + r_spans.obj \ + r_conten.obj \ + r_plane.obj \ + r_render.obj \ + r_walls.obj \ + ra_draw.obj \ + blitbuf.obj \ + d_disk.obj \ + d_ints.obj \ + d_misc.obj \ + d_video.obj + + +$(EXE): $(OBJS) + $(CC) $(LFLAGS) /m /e $(EXE) *.obj mouse.lib + +.c.obj: + $(CC) /c $(CFLAGS) /o $(.TARGET) $(.NEWER) + +.asm.obj: + tasm $(AFLAGS) $(.NEWER),$(.TARGET) diff --git a/SOURCE/MAKEIT.BAT b/SOURCE/MAKEIT.BAT new file mode 100644 index 0000000..63a59e3 --- /dev/null +++ b/SOURCE/MAKEIT.BAT @@ -0,0 +1 @@ +c:\codebldr\bin\make diff --git a/SOURCE/NEWMAKE.BAT b/SOURCE/NEWMAKE.BAT new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/SOURCE/NEWMAKE.BAT @@ -0,0 +1 @@ + diff --git a/SOURCE/NEW_DRAW.ASM b/SOURCE/NEW_DRAW.ASM new file mode 100644 index 0000000..e2e27e0 --- /dev/null +++ b/SOURCE/NEW_DRAW.ASM @@ -0,0 +1,474 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + .CODE + +;============================================================================ +; +; Fixed point math +; +;============================================================================ + +@Proc FIXEDMUL, <>, <,> + mov eax,op1 + imul [op2] + shrd eax,edx,16 + @exitp <> +ENDP + +@Proc FIXEDDIV, <>, <,> + mov eax,op1 + cdq + shld edx,eax,16 + sal eax,16 + idiv [op2] +@exitp <> + +ENDP + + + +;============================================================================ +; +; RF_BlitView +; +;============================================================================ + +@Proc RF_BlitView, + + mov esi,OFFSET viewbuffer + mov edi,[viewLocation] + mov ebx,[windowHeight] + mov eax,SCREENWIDTH + sub eax,[windowWidth] + mov edx,eax + mov eax,[windowWidth] + shr eax,2 + +ALIGN 4 +@@blitloop1: + mov ecx,eax + rep movsd + add edi,edx + dec ebx + jnz @@blitloop1 + + @exitp +ENDP + + +;============================================================================ +; +; Merge +; +; merge two parts of the unsorted array to the sorted array +; +;============================================================================ + +.DATA + +EXTRN src1:DWORD +EXTRN src2:DWORD +EXTRN dest:DWORD +EXTRN size1:DWORD +EXTRN size2:DWORD + +PUBLIC mergefrom1 +PUBLIC finishfrom1 +PUBLIC mergefrom2 +PUBLIC finishfrom2 +PUBLIC mergedone + +.CODE + + @Proc Merge, + + mov ebx,[src1] + mov esi,[src2] + mov edi,[dest] + mov ecx,[size1] + mov edx,[size2] + + mov eax,[ebx] + cmp eax,[esi] + jb SHORT mergefrom2 ; if (*src1 < *src2) goto mergefrom2; + +mergefrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + dec ecx + jz finishfrom2 ; if (!--size1) goto finishfrom2; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + +mergefrom2: + movsd ; *dest++ = *src2++; + dec edx + jz finishfrom1 ; if (!--size2) goto finishfrom1; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + jmp SHORT mergefrom2 + + ALIGN 4 +finishfrom2: + movsd ; *dest++ = *src2++; + dec edx ; while (size2--) + jnz SHORT finishfrom2 + jmp SHORT mergedone + + ALIGN 4 +finishfrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + loop SHORT finishfrom1 ; while (size1--) + +mergedone: + mov [dest],edi + @exitp + ENDP + + +;============================================================================ +; +; unwound vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx fractional step value +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +SCALELABEL MACRO number +vscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + SCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ecx ; calculate next location + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +vscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + mov [edi],al +vscale0: + ret + + +.DATA + +SCALEDEFINE MACRO number + dd vscale&number +ENDM + + ALIGN 4 +scalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + SCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC scalecalls + +;================================================= + +; +; parameters for RN_ScalePost +; +sp_dest dd 0 +sp_count dd 0 +sp_fracstep dd 0 +sp_frac dd 0 +sp_source dd 0 +sp_colormap dd 0 + +PUBLIC sp_dest, sp_count, sp_fracstep, sp_frac, sp_source, sp_colormap + +.CODE + + +;================ +; +; ScalePost +; +;================ + + @Proc ScalePost, + +IFE SKIPPRIMITIVES + + mov edx,[sp_frac] + mov ecx,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + shld ebx,edx,16 ; get address of first location + mov ebp,[sp_count] + call [scalecalls+ebp*4] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound masked vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx all 0, low byte overwritten +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; ebp fractional step value +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +ALIGN 4 +MSCALELABEL MACRO number +mvscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + MSCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ebp ; calculate next location + mov cl,al ; save original color for jcxz + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + jcxz $+9 + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +mvscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + test al,0 + jz mvscale0 + mov [edi],al +mvscale0: + ret + + +.DATA + +MSCALEDEFINE MACRO number + dd mvscale&number +ENDM + + ALIGN 4 +mscalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + MSCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mscalecalls + +mscalecall dd 0 + +.CODE + + +;================ +; +; ScaleMaskedPost +; +; Same parameters as ScalePost, but 0 pixels are not drawn +; +;================ + + @Proc ScaleMaskedPost, + +IFE SKIPPRIMITIVES + + mov ebp,[sp_count] + mov eax,[mscalecalls+ebp*4] + mov [mscalecall],eax + + mov edx,[sp_frac] + mov ebp,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + xor ecx,ecx + shld ebx,edx,16 ; get address of first location + call [mscalecall] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound horizontal texture mapping code +; +; eax lighttable +; ebx xtotal 6 bits units 26 bits frac +; ecx ytotal 6 bits units 26 bits frac +; edx xstep +; esi start of block +; edi dest +; ebp scratch offset +; +; [ystep] +; +; ebp should by preset from ebx / ecx before calling +;============================================================================ + +MAPLABEL MACRO number +hmap&number: +ENDM + +LINE = MAXWINDOWWIDTH +REPT MAXWINDOWWIDTH + MAPLABEL %LINE + mov al,[esi+ebp] ; get source pixel + add ebx,edx ; xtotal += xstep + add ecx,[ystep] ; ytotal += ystep + xor ebp,ebp + mov al,[eax] ; translate color + shld ebp,ecx,6 ; shift in new y/x position + shld ebp,ebx,6 + mov [edi-(LINE-1)],al ; write pixel +LINE = LINE-1 +ENDM +hmap0: + ret + + +.DATA + +ystep dd 0 + +MAPDEFINE MACRO number + dd hmap&number +ENDM + + ALIGN 4 +mapcalls LABEL +LINE = 0 +REPT MAXWINDOWWIDTH+1 + MAPDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mapcalls + + + +mapcall dd 0 + +; +; parameters for RN_MapLine +; +mr_dest dd 0 ; pointer to first pixel in view buffer +mr_count dd 0 +mr_picture dd 0 ; pointer to 4096 pixel block +mr_colormap dd 0 ; page aligned light table +mr_xfrac dd 0 ; 16 frac bits +mr_yfrac dd 0 ; 16 frac bits +mr_xstep dd 0 +mr_ystep dd 0 + +PUBLIC mr_dest,mr_picture,mr_colormap,mr_xfrac,mr_yfrac,mr_xstep,mr_ystep,mr_count + +.CODE + + +;================ +; +; MapRow +; +; Horizontal texture mapping +; +;================ + + +@Proc MapRow, + +IFE SKIPPRIMITIVES + + mov eax,[mr_count] + mov ebx,[mapcalls+eax*4] + mov [mapcall],ebx ; spot to jump into unwound + + mov edi,[mr_dest] + add edi,[mr_count] + dec edi + + mov eax,[mr_ystep] + shl eax,10 + mov [ystep],eax + + mov eax,[mr_colormap] + mov ebx,[mr_xfrac] + shl ebx,10 + mov ecx,[mr_yfrac] + shl ecx,10 + mov edx,[mr_xstep] + shl edx,10 + mov esi,[mr_picture] + + + xor ebp,ebp + shld ebp,ecx,6 + shld ebp,ebx,6 ; do first step for pipeline + + call [mapcall] + + shr ebx,10 + mov [mr_xfrac],ebx + shr ecx,10 + mov [mr_yfrac],ecx + +ENDIF + + @exitp +ENDP + +END diff --git a/SOURCE/Q.BAT b/SOURCE/Q.BAT new file mode 100644 index 0000000..655fa04 --- /dev/null +++ b/SOURCE/Q.BAT @@ -0,0 +1 @@ +c:\qedit\q %1 %2 %3 %4 %5 diff --git a/SOURCE/R.BAT b/SOURCE/R.BAT new file mode 100644 index 0000000..1461b56 --- /dev/null +++ b/SOURCE/R.BAT @@ -0,0 +1 @@ +todd3d diff --git a/SOURCE/RA_DRAW.ASM b/SOURCE/RA_DRAW.ASM new file mode 100644 index 0000000..84f68e9 --- /dev/null +++ b/SOURCE/RA_DRAW.ASM @@ -0,0 +1,577 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN viewylookup;DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + + .CODE + +;============================================================================ +; +; Fixed point math +; +;============================================================================ + +@Proc FIXEDMUL, <>, <,> + mov eax,op1 + imul [op2] + shrd eax,edx,16 + @exitp <> +ENDP + +@Proc FIXEDDIV, <>, <,> + mov eax,op1 + cdq + shld edx,eax,16 + sal eax,16 + idiv [op2] + endz: +@exitp <> + +ENDP + + + +;============================================================================ +; +; RF_BlitView +; +;============================================================================ + +@Proc RF_BlitView, + + mov esi,OFFSET viewbuffer + mov edi,[viewLocation] + mov ebx,[windowHeight] + mov eax,SCREENWIDTH + sub eax,[windowWidth] + mov edx,eax ; x modulos + mov eax,[windowWidth] + shr eax,2 + +ALIGN 4 +@@blitloop1: + mov ecx,eax + rep movsd + add edi,edx + dec ebx + jnz @@blitloop1 + + @exitp +ENDP + +;============================================================================ +; +; ClearViewBuffer +; +;============================================================================ + +@Proc ClearViewBuffer, + + mov ebx,[windowHeight] + mov esi,[windowWidth] + mov edx,esi + shr esi,2 + xor eax,eax + +ALIGN 4 +@@clearloop: + dec ebx + mov ecx,esi + mov edi,OFFSET viewylookup + mov edi,[edi+ebx*4] + rep stosd + add edi,edx + cmp ebx,0 + jnz @@clearloop + + @exitp +ENDP + +;============================================================================ +; +; Merge +; +; merge two parts of the unsorted array to the sorted array +; +;============================================================================ + +.DATA + +EXTRN src1:DWORD +EXTRN src2:DWORD +EXTRN dest:DWORD +EXTRN size1:DWORD +EXTRN size2:DWORD + +PUBLIC mergefrom1 +PUBLIC finishfrom1 +PUBLIC mergefrom2 +PUBLIC finishfrom2 +PUBLIC mergedone + +.CODE + + @Proc Merge, + + mov ebx,[src1] + mov esi,[src2] + mov edi,[dest] + mov ecx,[size1] + mov edx,[size2] + + mov eax,[ebx] + cmp eax,[esi] + jb SHORT mergefrom2 ; if (*src1 < *src2) goto mergefrom2; + +mergefrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + dec ecx + jz finishfrom2 ; if (!--size1) goto finishfrom2; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + +mergefrom2: + movsd ; *dest++ = *src2++; + dec edx + jz finishfrom1 ; if (!--size2) goto finishfrom1; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + jmp SHORT mergefrom2 + + ALIGN 4 +finishfrom2: + movsd ; *dest++ = *src2++; + dec edx ; while (size2--) + jnz SHORT finishfrom2 + jmp SHORT mergedone + + ALIGN 4 +finishfrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + loop SHORT finishfrom1 ; while (size1--) + +mergedone: + mov [dest],edi + @exitp + ENDP + + +;============================================================================ +; +; unwound vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx fractional step value +; edx fractional scale value +; esistart of source pixels +; edi bottom pixel in screenbuffer to blit into +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +; the assembler creates vscale: numbers of the following +; code segement. LINE is used as the arg to SCALELABEL. there exists +; vscale:. the value of LINE ranges from 0 to +; MAXWINDOWWIDTH. scalecalls is made visible to the other modules with the +; PUBLIC directive. + + +SCALEDEFINE MACRO number + dd vscale&number +ENDM + +ALIGN 4 +scalecalls LABEL UNKNOWN +LINE = 0 +REPT MAXWINDOWHEIGHT + 1 + SCALEDEFINE %LINE +LINE = LINE + 1 +ENDM + +scalecall dd 0 + +PUBLIC scalecalls + +;================================================= + +; +; parameters for RN_ScalePost +; +sp_dest dd 0 +sp_count dd 0 +sp_fracstep dd 0 +sp_frac dd 0 +sp_source dd 0 +sp_colormap dd 0 + +PUBLIC sp_dest, sp_count, sp_fracstep, sp_frac, sp_source, sp_colormap + +.CODE + + +;================ +; +; ScalePost +; +;================ + + @Proc ScalePost, + +IFE SKIPPRIMITIVES + + mov edx,[sp_frac] + mov ecx,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + shld ebx,edx,16 ; get address of first location + mov ebp,[sp_count] + call [scalecalls+ebp*4] + +ENDIF + + @exitp + ENDP + +;============================================================================ + + @Proc GetScaleRoutines + + mov eax,OFFSET vscale200 + + @exitp + ENDP + +; +;============================================================================ +; +; unwound masked vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx all 0, low byte overwritten +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; ebp fractional step value +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +; the assembler creates mvscale: numbers of the following +; code segement. all sections of the code are ALINGN'ed on a 32 bit +; boundary. LINE is used as the arg to MSCALELABEL. there exists +; mvscale + +IFE SKIPPRIMITIVES + + mov ebp,[sp_count] + mov eax,[mscalecalls+ebp*4] + mov [mscalecall],eax + + mov edx,[sp_frac] + mov ebp,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + xor ecx,ecx + shld ebx,edx,16 ; get address of first location + call [mscalecall] + +ENDIF + @exitp + ENDP + +;============================================================================ + + @Proc GetMScaleRoutines + + mov eax,OFFSET mvscale200 + + @exitp + ENDP + +;============================================================================ +; +; unwound horizontal texture mapping code +; +; eax lighttable +; ebx xtotal 6 bits units 26 bits frac +; ecx ytotal 6 bits units 26 bits frac +; edx xstep +; esi start of block +; edi dest +; ebp scratch offset +; +; [ystep] +; +; ebp should by preset from ebx / ecx before calling +;============================================================================ + +; the assembler creates hmap: numbers of the following +; code segement. all sections of the code are not ALINGN'ed on a 32 bit +; boundary. LINE is used as the arg to MAPLABEL. there exists +; hmapMAXWINDOWWIDTH: to hmap0: units of code. map0 is used as the exit +; point. + +MAPLABEL MACRO number +hmap&number: +ENDM + +LINE = MAXWINDOWWIDTH +REPT MAXWINDOWWIDTH + MAPLABEL %LINE + mov al,[esi+ebp] ; get source pixel + add ebx,edx ; xtotal += xstep + add ecx,[ystep] ; ytotal += ystep + xor ebp,ebp + mov al,[eax] ; translate color + shld ebp,ecx,6 ; shift in new y/x position + shld ebp,ebx,6 + mov [edi-(LINE-1)],al ; write pixel +LINE = LINE - 1 +ENDM +hmap0: + ret + + +.DATA + +ystep dd 0 +mapcall dd 0 + +; the following 2 macros allocate a block of dd or 4 byte locations that are +; ALIGN'ed on a 4 byte or 32 bit boundary. the starting 4 bytes may be +; referred to as mapcalls. the others may not because in the macro MAPDEFINE +; they are not given a name. the label mapcalls refers to a position in the +; code which happens to be the start of the allocated block. there are +; MAXWINDOWWIDTH + 1 4 byte word's are allocated and each word is initialized +; with the address of hmap:. the value of LINE ranges from 0 to +; MAXWINDOWWIDTH. mapcalls is made visible to the other modules with the +; PUBLIC directive. + +MAPDEFINE MACRO number + dd hmap&number +ENDM + +ALIGN 4 +mapcalls LABEL UNKNOWN +LINE = 0 +REPT MAXWINDOWWIDTH + 1 + MAPDEFINE %LINE +LINE = LINE + 1 +ENDM + +PUBLIC mapcalls + + + + +; +; parameters for RN_MapLine +; +mr_dest dd 0 ; pointer to first pixel in view buffer +mr_count dd 0 +mr_picture dd 0 ; pointer to 4096 pixel block +mr_colormap dd 0 ; page aligned light table +mr_xfrac dd 0 ; 16 frac bits +mr_yfrac dd 0 ; 16 frac bits +mr_xstep dd 0 +mr_ystep dd 0 + +PUBLIC mr_dest, mr_picture, mr_colormap, mr_xfrac +PUBLIC mr_yfrac, mr_xstep, mr_ystep, mr_count + +.CODE + + +;================ +; +; MapRow +; +; Horizontal texture mapping +; +;================ + + +@Proc MapRow, + +IFE SKIPPRIMITIVES + + mov eax,[mr_count] + mov ebx,[mapcalls+eax*4] + mov [mapcall],ebx ; spot to jump into unwound + + mov edi,[mr_dest] + add edi,[mr_count] + dec edi + + mov eax,[mr_ystep] + shl eax,10 + mov [ystep],eax + + mov eax,[mr_colormap] + mov ebx,[mr_xfrac] + shl ebx,10 + mov ecx,[mr_yfrac] + shl ecx,10 + mov edx,[mr_xstep] + shl edx,10 + mov esi,[mr_picture] + + xor ebp,ebp + shld ebp,ecx,6 + shld ebp,ebx,6 ; do first step for pipeline + + call [mapcall] + + shr ebx,10 + mov [mr_xfrac],ebx + shr ecx,10 + mov [mr_yfrac],ecx + +ENDIF + + @exitp +ENDP + +END diff --git a/SOURCE/RA_DRAW.BKP b/SOURCE/RA_DRAW.BKP new file mode 100644 index 0000000..e2e27e0 --- /dev/null +++ b/SOURCE/RA_DRAW.BKP @@ -0,0 +1,474 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + .CODE + +;============================================================================ +; +; Fixed point math +; +;============================================================================ + +@Proc FIXEDMUL, <>, <,> + mov eax,op1 + imul [op2] + shrd eax,edx,16 + @exitp <> +ENDP + +@Proc FIXEDDIV, <>, <,> + mov eax,op1 + cdq + shld edx,eax,16 + sal eax,16 + idiv [op2] +@exitp <> + +ENDP + + + +;============================================================================ +; +; RF_BlitView +; +;============================================================================ + +@Proc RF_BlitView, + + mov esi,OFFSET viewbuffer + mov edi,[viewLocation] + mov ebx,[windowHeight] + mov eax,SCREENWIDTH + sub eax,[windowWidth] + mov edx,eax + mov eax,[windowWidth] + shr eax,2 + +ALIGN 4 +@@blitloop1: + mov ecx,eax + rep movsd + add edi,edx + dec ebx + jnz @@blitloop1 + + @exitp +ENDP + + +;============================================================================ +; +; Merge +; +; merge two parts of the unsorted array to the sorted array +; +;============================================================================ + +.DATA + +EXTRN src1:DWORD +EXTRN src2:DWORD +EXTRN dest:DWORD +EXTRN size1:DWORD +EXTRN size2:DWORD + +PUBLIC mergefrom1 +PUBLIC finishfrom1 +PUBLIC mergefrom2 +PUBLIC finishfrom2 +PUBLIC mergedone + +.CODE + + @Proc Merge, + + mov ebx,[src1] + mov esi,[src2] + mov edi,[dest] + mov ecx,[size1] + mov edx,[size2] + + mov eax,[ebx] + cmp eax,[esi] + jb SHORT mergefrom2 ; if (*src1 < *src2) goto mergefrom2; + +mergefrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + dec ecx + jz finishfrom2 ; if (!--size1) goto finishfrom2; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + +mergefrom2: + movsd ; *dest++ = *src2++; + dec edx + jz finishfrom1 ; if (!--size2) goto finishfrom1; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + jmp SHORT mergefrom2 + + ALIGN 4 +finishfrom2: + movsd ; *dest++ = *src2++; + dec edx ; while (size2--) + jnz SHORT finishfrom2 + jmp SHORT mergedone + + ALIGN 4 +finishfrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + loop SHORT finishfrom1 ; while (size1--) + +mergedone: + mov [dest],edi + @exitp + ENDP + + +;============================================================================ +; +; unwound vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx fractional step value +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +SCALELABEL MACRO number +vscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + SCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ecx ; calculate next location + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +vscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + mov [edi],al +vscale0: + ret + + +.DATA + +SCALEDEFINE MACRO number + dd vscale&number +ENDM + + ALIGN 4 +scalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + SCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC scalecalls + +;================================================= + +; +; parameters for RN_ScalePost +; +sp_dest dd 0 +sp_count dd 0 +sp_fracstep dd 0 +sp_frac dd 0 +sp_source dd 0 +sp_colormap dd 0 + +PUBLIC sp_dest, sp_count, sp_fracstep, sp_frac, sp_source, sp_colormap + +.CODE + + +;================ +; +; ScalePost +; +;================ + + @Proc ScalePost, + +IFE SKIPPRIMITIVES + + mov edx,[sp_frac] + mov ecx,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + shld ebx,edx,16 ; get address of first location + mov ebp,[sp_count] + call [scalecalls+ebp*4] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound masked vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx all 0, low byte overwritten +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; ebp fractional step value +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +ALIGN 4 +MSCALELABEL MACRO number +mvscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + MSCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ebp ; calculate next location + mov cl,al ; save original color for jcxz + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + jcxz $+9 + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +mvscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + test al,0 + jz mvscale0 + mov [edi],al +mvscale0: + ret + + +.DATA + +MSCALEDEFINE MACRO number + dd mvscale&number +ENDM + + ALIGN 4 +mscalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + MSCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mscalecalls + +mscalecall dd 0 + +.CODE + + +;================ +; +; ScaleMaskedPost +; +; Same parameters as ScalePost, but 0 pixels are not drawn +; +;================ + + @Proc ScaleMaskedPost, + +IFE SKIPPRIMITIVES + + mov ebp,[sp_count] + mov eax,[mscalecalls+ebp*4] + mov [mscalecall],eax + + mov edx,[sp_frac] + mov ebp,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + xor ecx,ecx + shld ebx,edx,16 ; get address of first location + call [mscalecall] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound horizontal texture mapping code +; +; eax lighttable +; ebx xtotal 6 bits units 26 bits frac +; ecx ytotal 6 bits units 26 bits frac +; edx xstep +; esi start of block +; edi dest +; ebp scratch offset +; +; [ystep] +; +; ebp should by preset from ebx / ecx before calling +;============================================================================ + +MAPLABEL MACRO number +hmap&number: +ENDM + +LINE = MAXWINDOWWIDTH +REPT MAXWINDOWWIDTH + MAPLABEL %LINE + mov al,[esi+ebp] ; get source pixel + add ebx,edx ; xtotal += xstep + add ecx,[ystep] ; ytotal += ystep + xor ebp,ebp + mov al,[eax] ; translate color + shld ebp,ecx,6 ; shift in new y/x position + shld ebp,ebx,6 + mov [edi-(LINE-1)],al ; write pixel +LINE = LINE-1 +ENDM +hmap0: + ret + + +.DATA + +ystep dd 0 + +MAPDEFINE MACRO number + dd hmap&number +ENDM + + ALIGN 4 +mapcalls LABEL +LINE = 0 +REPT MAXWINDOWWIDTH+1 + MAPDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mapcalls + + + +mapcall dd 0 + +; +; parameters for RN_MapLine +; +mr_dest dd 0 ; pointer to first pixel in view buffer +mr_count dd 0 +mr_picture dd 0 ; pointer to 4096 pixel block +mr_colormap dd 0 ; page aligned light table +mr_xfrac dd 0 ; 16 frac bits +mr_yfrac dd 0 ; 16 frac bits +mr_xstep dd 0 +mr_ystep dd 0 + +PUBLIC mr_dest,mr_picture,mr_colormap,mr_xfrac,mr_yfrac,mr_xstep,mr_ystep,mr_count + +.CODE + + +;================ +; +; MapRow +; +; Horizontal texture mapping +; +;================ + + +@Proc MapRow, + +IFE SKIPPRIMITIVES + + mov eax,[mr_count] + mov ebx,[mapcalls+eax*4] + mov [mapcall],ebx ; spot to jump into unwound + + mov edi,[mr_dest] + add edi,[mr_count] + dec edi + + mov eax,[mr_ystep] + shl eax,10 + mov [ystep],eax + + mov eax,[mr_colormap] + mov ebx,[mr_xfrac] + shl ebx,10 + mov ecx,[mr_yfrac] + shl ecx,10 + mov edx,[mr_xstep] + shl edx,10 + mov esi,[mr_picture] + + + xor ebp,ebp + shld ebp,ecx,6 + shld ebp,ebx,6 ; do first step for pipeline + + call [mapcall] + + shr ebx,10 + mov [mr_xfrac],ebx + shr ecx,10 + mov [mr_yfrac],ecx + +ENDIF + + @exitp +ENDP + +END diff --git a/SOURCE/RA_DRAW.ORG b/SOURCE/RA_DRAW.ORG new file mode 100644 index 0000000..e2e27e0 --- /dev/null +++ b/SOURCE/RA_DRAW.ORG @@ -0,0 +1,474 @@ + .386 + .MODEL small + +SKIPPRIMITIVES = 0 ; set to 1 to skip unwound drawing + +INCLUDE viewsize.inc +INCLUDE macros.inc + + +SCREEN = 0a0000h +SCREENWIDTH = 320 + +PEL_WRITE_ADR = 03c8h +PEL_DATA = 03c9h + + .DATA + +EXTRN viewbuffer:WORD +EXTRN viewLocation:DWORD +EXTRN windowWidth:DWORD +EXTRN windowHeight:DWORD + + .CODE + +;============================================================================ +; +; Fixed point math +; +;============================================================================ + +@Proc FIXEDMUL, <>, <,> + mov eax,op1 + imul [op2] + shrd eax,edx,16 + @exitp <> +ENDP + +@Proc FIXEDDIV, <>, <,> + mov eax,op1 + cdq + shld edx,eax,16 + sal eax,16 + idiv [op2] +@exitp <> + +ENDP + + + +;============================================================================ +; +; RF_BlitView +; +;============================================================================ + +@Proc RF_BlitView, + + mov esi,OFFSET viewbuffer + mov edi,[viewLocation] + mov ebx,[windowHeight] + mov eax,SCREENWIDTH + sub eax,[windowWidth] + mov edx,eax + mov eax,[windowWidth] + shr eax,2 + +ALIGN 4 +@@blitloop1: + mov ecx,eax + rep movsd + add edi,edx + dec ebx + jnz @@blitloop1 + + @exitp +ENDP + + +;============================================================================ +; +; Merge +; +; merge two parts of the unsorted array to the sorted array +; +;============================================================================ + +.DATA + +EXTRN src1:DWORD +EXTRN src2:DWORD +EXTRN dest:DWORD +EXTRN size1:DWORD +EXTRN size2:DWORD + +PUBLIC mergefrom1 +PUBLIC finishfrom1 +PUBLIC mergefrom2 +PUBLIC finishfrom2 +PUBLIC mergedone + +.CODE + + @Proc Merge, + + mov ebx,[src1] + mov esi,[src2] + mov edi,[dest] + mov ecx,[size1] + mov edx,[size2] + + mov eax,[ebx] + cmp eax,[esi] + jb SHORT mergefrom2 ; if (*src1 < *src2) goto mergefrom2; + +mergefrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + dec ecx + jz finishfrom2 ; if (!--size1) goto finishfrom2; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + +mergefrom2: + movsd ; *dest++ = *src2++; + dec edx + jz finishfrom1 ; if (!--size2) goto finishfrom1; + cmp eax,[esi] + ja SHORT mergefrom1 ; if (*src1 > *src2) goto mergefrom1; + jmp SHORT mergefrom2 + + ALIGN 4 +finishfrom2: + movsd ; *dest++ = *src2++; + dec edx ; while (size2--) + jnz SHORT finishfrom2 + jmp SHORT mergedone + + ALIGN 4 +finishfrom1: + stosd + add ebx,4 ; *dest++ = *src1++; + mov eax,[ebx] + loop SHORT finishfrom1 ; while (size1--) + +mergedone: + mov [dest],edi + @exitp + ENDP + + +;============================================================================ +; +; unwound vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx fractional step value +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +SCALELABEL MACRO number +vscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + SCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ecx ; calculate next location + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +vscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + mov [edi],al +vscale0: + ret + + +.DATA + +SCALEDEFINE MACRO number + dd vscale&number +ENDM + + ALIGN 4 +scalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + SCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC scalecalls + +;================================================= + +; +; parameters for RN_ScalePost +; +sp_dest dd 0 +sp_count dd 0 +sp_fracstep dd 0 +sp_frac dd 0 +sp_source dd 0 +sp_colormap dd 0 + +PUBLIC sp_dest, sp_count, sp_fracstep, sp_frac, sp_source, sp_colormap + +.CODE + + +;================ +; +; ScalePost +; +;================ + + @Proc ScalePost, + +IFE SKIPPRIMITIVES + + mov edx,[sp_frac] + mov ecx,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + shld ebx,edx,16 ; get address of first location + mov ebp,[sp_count] + call [scalecalls+ebp*4] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound masked vertical scaling code +; +; eax light table pointer, 0 lowbyte overwritten +; ebx all 0, low byte overwritten +; ecx all 0, low byte overwritten +; edx fractional scale value +; esi start of source pixels +; edi bottom pixel in screenbuffer to blit into +; ebp fractional step value +; +; ebx should be set to 0 0 0 dh to feed the pipeline +;============================================================================ + +ALIGN 4 +MSCALELABEL MACRO number +mvscale&number: +ENDM + +LINE = MAXWINDOWHEIGHT +REPT MAXWINDOWHEIGHT-1 + MSCALELABEL %LINE + mov al,[esi+ebx] ; get source pixel + add edx,ebp ; calculate next location + mov cl,al ; save original color for jcxz + mov al,[eax] ; translate the color + xor ebx,ebx + shld ebx,edx,16 ; get address of next location + jcxz $+9 + mov [edi-(LINE-1)*MAXWINDOWWIDTH],al ; draw a pixel to the buffer +LINE = LINE-1 +ENDM +mvscale1: + mov al,[esi+ebx] + add edx,ecx + mov al,[eax] + test al,0 + jz mvscale0 + mov [edi],al +mvscale0: + ret + + +.DATA + +MSCALEDEFINE MACRO number + dd mvscale&number +ENDM + + ALIGN 4 +mscalecalls LABEL +LINE = 0 +REPT MAXWINDOWHEIGHT+1 + MSCALEDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mscalecalls + +mscalecall dd 0 + +.CODE + + +;================ +; +; ScaleMaskedPost +; +; Same parameters as ScalePost, but 0 pixels are not drawn +; +;================ + + @Proc ScaleMaskedPost, + +IFE SKIPPRIMITIVES + + mov ebp,[sp_count] + mov eax,[mscalecalls+ebp*4] + mov [mscalecall],eax + + mov edx,[sp_frac] + mov ebp,[sp_fracstep] + mov esi,[sp_source] + mov eax,[sp_colormap] + mov edi,[sp_dest] + xor ebx,ebx + xor ecx,ecx + shld ebx,edx,16 ; get address of first location + call [mscalecall] + +ENDIF + + @exitp + ENDP + + +;============================================================================ +; +; unwound horizontal texture mapping code +; +; eax lighttable +; ebx xtotal 6 bits units 26 bits frac +; ecx ytotal 6 bits units 26 bits frac +; edx xstep +; esi start of block +; edi dest +; ebp scratch offset +; +; [ystep] +; +; ebp should by preset from ebx / ecx before calling +;============================================================================ + +MAPLABEL MACRO number +hmap&number: +ENDM + +LINE = MAXWINDOWWIDTH +REPT MAXWINDOWWIDTH + MAPLABEL %LINE + mov al,[esi+ebp] ; get source pixel + add ebx,edx ; xtotal += xstep + add ecx,[ystep] ; ytotal += ystep + xor ebp,ebp + mov al,[eax] ; translate color + shld ebp,ecx,6 ; shift in new y/x position + shld ebp,ebx,6 + mov [edi-(LINE-1)],al ; write pixel +LINE = LINE-1 +ENDM +hmap0: + ret + + +.DATA + +ystep dd 0 + +MAPDEFINE MACRO number + dd hmap&number +ENDM + + ALIGN 4 +mapcalls LABEL +LINE = 0 +REPT MAXWINDOWWIDTH+1 + MAPDEFINE %LINE +LINE = LINE+1 +ENDM + +PUBLIC mapcalls + + + +mapcall dd 0 + +; +; parameters for RN_MapLine +; +mr_dest dd 0 ; pointer to first pixel in view buffer +mr_count dd 0 +mr_picture dd 0 ; pointer to 4096 pixel block +mr_colormap dd 0 ; page aligned light table +mr_xfrac dd 0 ; 16 frac bits +mr_yfrac dd 0 ; 16 frac bits +mr_xstep dd 0 +mr_ystep dd 0 + +PUBLIC mr_dest,mr_picture,mr_colormap,mr_xfrac,mr_yfrac,mr_xstep,mr_ystep,mr_count + +.CODE + + +;================ +; +; MapRow +; +; Horizontal texture mapping +; +;================ + + +@Proc MapRow, + +IFE SKIPPRIMITIVES + + mov eax,[mr_count] + mov ebx,[mapcalls+eax*4] + mov [mapcall],ebx ; spot to jump into unwound + + mov edi,[mr_dest] + add edi,[mr_count] + dec edi + + mov eax,[mr_ystep] + shl eax,10 + mov [ystep],eax + + mov eax,[mr_colormap] + mov ebx,[mr_xfrac] + shl ebx,10 + mov ecx,[mr_yfrac] + shl ecx,10 + mov edx,[mr_xstep] + shl edx,10 + mov esi,[mr_picture] + + + xor ebp,ebp + shld ebp,ecx,6 + shld ebp,ebx,6 ; do first step for pipeline + + call [mapcall] + + shr ebx,10 + mov [mr_xfrac],ebx + shr ecx,10 + mov [mr_yfrac],ecx + +ENDIF + + @exitp +ENDP + +END diff --git a/SOURCE/R_CONTEN.C b/SOURCE/R_CONTEN.C new file mode 100644 index 0000000..3de1d68 --- /dev/null +++ b/SOURCE/R_CONTEN.C @@ -0,0 +1,402 @@ +// R_conten.c +#include "D_global.h" +#include "d_disk.h" +#include "R_refdef.h" +#include "d_misc.h" +#include "d_ints.h" + +#define MINDIST (FRACUNIT*4) +#define PLAYERSIZE MINDIST // almost a half tile +#define FRACTILESHIFT (FRACBITS+TILESHIFT) + +scaleobj_t firstscaleobj, lastscaleobj; // just placeholders for links +scaleobj_t scaleobjlist[MAXSPRITES], *freescaleobj_p; + +doorobj_t doorlist[MAXDOORS]; +int numdoors; + +int doorxl, doorxh; + +void DrawDoor(void); + +//============================================================ + +/* */ +/*================== */ +/*= */ +/*= TransformPoint */ +/*= */ +/*= Returns a vertex pointer, but the only fields filled in are */ +/*= tx, tz, and px (if tz >= MINZ) */ +/*= */ +/*================== */ +/* */ + +vertex_t *TransformPoint(fixed_t x, fixed_t y) +{ + fixed_t trx, try; + fixed_t gxt, gyt; + fixed_t scale; + vertex_t *point; + + point=vertexlist_p++; +#ifdef VALIDATE + if (point>=&vertexlist[MAXVISVERTEXES]) + MS_Error("TransformPoint: Vertexlist overflow"); +#endif + trx=x-viewx; + try=y-viewy; + + gxt=FIXEDMUL(trx, viewsin); + gyt=FIXEDMUL(try, viewcos); + point->tx=gyt+gxt; + + gxt=FIXEDMUL(trx, viewcos); + gyt=FIXEDMUL(try, viewsin); + point->tz=gxt-gyt; + + if (point->tz>=MINZ) { + scale=FIXEDDIV(SCALE, point->tz); + point->px=CENTERX+(FIXEDMUL(point->tx, scale)>>FRACBITS); + } + return point; +} + +/* */ +/*================== */ +/*= */ +/*= ClipDoor */ +/*= */ +/*= Sets p1->px and p2->px correctly for Z values < MINZ */ +/*= */ +/*= Returns false if entire door is too close or far away */ +/*= */ +/*================== */ +/* */ + +boolean ClipDoor(void) +{ + fixed_t frac, clip; + + if (p1->tz>MAXZ&&p2->tz>MAXZ) + return false; // entire face is too far away + + if (p1->tz<0&&p2->tz<0) + return false; // totally behind the projection plane + + if (p1->tztz==0) + clip=p1->tx; + else { + frac=FIXEDDIV(p2->tz, (p2->tz-p1->tz)); + clip=p2->tx+FIXEDMUL((p1->tx-p2->tx), frac); + } + p1->px=clip<0?0:windowWidth; + } + else if (p2->tztz==0) + clip=p2->tx; + else { + frac=FIXEDDIV(p1->tz, (p1->tz-p2->tz)); + clip=p1->tx+FIXEDMUL((p2->tx-p1->tx), frac); + } + p2->px=clip<0?0:windowWidth; + } + return true; +} + +/* */ +/*=============== */ +/*= */ +/*= RenderDoor */ +/*= */ +/*= Posts one pixel wide span events for each visible post of the door a*/ +/*= tilex / tiley / xclipl / xcliph */ +/*= */ +/*= sets doorxl, doorxh based on the position of the door. One of the t*/ +/*= in the tile bounds, the other will be off the edge of the view. The*/ +/*= restrict the flowing into other tiles bounds. */ +/*= */ +/*=============== */ +/* */ + +void RenderDoor(fixed_t playerx, fixed_t playery) +{ + doorobj_t *door_p, *last_p; + fixed_t tx, ty; + byte **postindex; // start of the 64 entry texture table for t + fixed_t pointz; // transformed distance to wall post + fixed_t anglecos; + fixed_t ceilingheight; // top of the wall + fixed_t floorheight; // bottom of the wall + int angle; // the ray angle that strikes the current po + int texture; // 0-63 post number + int x, x1, x2; // collumn and ranges + fixed_t px,py; // player position + span_t *span_p; + unsigned span; + fixed_t distance, absdistance; + int baseangle; + fixed_t textureadjust; // the amount the texture p1ane is shifted + spanobj_t spantype; + + // scan the doorlist for matching tilex/tiley + // this only happens a couple times / frame max, so it's not a big d + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; ; door_p++) { + if (door_p==last_p) + MS_Error("RenderDoor: Door not located"); + + if (door_p->tilex==tilex&&door_p->tiley==tiley) + break; + } + walltype=door_p->pic; + + // + // transform both endpoints of the door + // p1 is the anchored point, p2 is the moveable point + // + tx=tilex<<(TILESHIFT+FRACBITS); + ty=tiley<<(TILESHIFT+FRACBITS); + + px = (int)((playerx) >> FRACTILESHIFT); + py = (int)((playery) >> FRACTILESHIFT); + + switch (door_p->orientation) { + case dr_horizontal: + ty+=FRACUNIT *32; + p1=TransformPoint(tx, ty); + p2=TransformPoint(tx+door_p->position, ty); + textureadjust=viewx+FRACUNIT *TILESIZE-(tx+door_p->position); + baseangle=TANANGLES *2; + distance=viewy-ty; + break; + case dr_vertical: + tx+=FRACUNIT *32; + p1=TransformPoint(tx, ty); + p2=TransformPoint(tx, ty+door_p->position); + textureadjust=viewy+FRACUNIT *TILESIZE-(ty+door_p->position); + baseangle=TANANGLES; + distance=tx-viewx; + break; + } + + if (!door_p->position||!ClipDoor()) { + doorxl=windowWidth+1; + doorxh=-1; + return; + } + if (p1->pxpx) { + doorxl=p1->px; + doorxh=p2->px-1; + x1=p1->px; + x2=p2->px; + } + else { + doorxl=p2->px; + doorxh=p1->px-1; + x1=p2->px; + x2=p1->px; + } + // + // calculate the textures to post into the span list + // + if (x1xcliph+1) + x2=xcliph+1; + if (x1>x2) + return; // totally clipped off side + + // + // set up for loop + // + if (door_p->transparent) + { + spantype=sp_maskeddoor; + doortile = false; + } + else + spantype=sp_door; + + ceilingheight=vertex[0]->ceilingheight; + floorheight=-vertex[0]->floorheight; + +#ifdef VALIDATE + if (walltype>=numwalls) + MS_Error("DrawDoor: Invalid source walltype"); +#endif + walltype=walltranslation[walltype]; // global animation +#ifdef VALIDATE + if (walltype>=numwalls) + MS_Error("DrawDoor: Invalid translated walltype"); +#endif + walltype--; // make 0 based + postindex=wallposts+(walltype<<6); // 64 pointers to texture starts + baseangle+=viewfineangle; + + absdistance=distance<0?-distance : distance; + + // + // step through the individual posts + // + for (x=x1; x>FRACBITS; + texture&=63; + sp_source=postindex[texture]; + + // + // the z distance of the post hit = walldistance*cos(screenangle + // + anglecos=cosines[(angle-TANANGLES)&(TANANGLES *4-1)]; + pointz=FIXEDDIV(absdistance, anglecos); + pointz=FIXEDMUL(pointz, pixelcosine[x]); + + if (pointz>MAXZ||pointzspantype=spantype; + span_p->picture=sp_source; + span_p->y=ceilingheight; + span_p->yh=floorheight; + + span_p->structure=door_p; + + numspans++; + + } +} + +//=========================================================== + +/* */ +/*=============== */ +/*= */ +/*= RenderSprites */ +/*= */ +/*= For each sprite, if the sprite's bounding rect touches a tile with a*/ +/*= vertex, transform and clip the projected view rect. If still visibl*/ +/*= a span into the span list */ +/*= */ +/*=============== */ +/* */ + +void RenderSprites(fixed_t x, fixed_t y, fixed_t z, int angle, byte showBlast) +{ + scaleobj_t *sprite; + fixed_t deltax, deltay; + fixed_t pointx, pointz; + fixed_t gxt, gyt; + int picnum; + unsigned span; + span_t *span_p; + byte animationGraphic; + byte animationMax; + byte animationDelay; + + for (sprite=firstscaleobj.next; sprite!=&lastscaleobj; + sprite=sprite->next) + { + deltax=sprite->x-viewx; + if (deltax<-MAXZ||deltax>MAXZ) + continue; + deltay=sprite->y-viewy; + if (deltay<-MAXZ||deltay>MAXZ) + continue; + + // + // transform the point + // + gxt=FIXEDMUL(deltax, viewsin); + gyt=FIXEDMUL(deltay, viewcos); + pointx=gyt+gxt; + + gxt=FIXEDMUL(deltax, viewcos); + gyt=FIXEDMUL(deltay, viewsin); + pointz=gxt-gyt; + + if (pointzMAXZ) + continue; + + // + // calculate which image to display + // + picnum=sprite->basepic; + if (sprite->rotate) { // this is only aproximate, but ok for 8 + if (sprite->rotate == rt_eight) + picnum+=((viewangle-sprite->angle+0x90)>>5)&7; + else + picnum+=((viewangle-sprite->angle+0x90)>>5)&3; + } + // TML 9-24-94 + // okay to animate sprites here because we don't need to unless + // the player can see them (they only need to move when out of + // sight) + + if ((sprite->animation) && + (timecount > sprite->animationTime)) + { + animationGraphic = (sprite->animation & ANIM_CG_MASK) >> 1; + animationMax = (sprite->animation & ANIM_MG_MASK) >> 5; + animationDelay = (sprite->animation & ANIM_DELAY_MASK) >> 9; + + if (animationGraphic < animationMax-1) + animationGraphic++; + else if (sprite->animation & ANIM_LOOP_MASK) + animationGraphic = 0; + + picnum+=animationGraphic; + + sprite->animation = (sprite->animation & ANIM_LOOP_MASK) + + (animationGraphic << 1) + + (animationMax << 5) + + (animationDelay << 9); + + sprite->animationTime = timecount + animationDelay; + } + +#ifdef VALIDATE +/* + if (picnum>=numsprites) + MS_Error("RenderSprites: picnum > numsprites"); +*/ +#endif + + // + // post the span event + // +#ifdef VALIDATE + if (numspans==MAXSPANS) + MS_Error("MAXSPANS exceeded"); +#endif + span=(pointz<spantype=sp_shape; + span_p->picture=lumpmain[picnum]; + span_p->x2=pointx; + span_p->y=sprite->z-viewz; + span_p->structure=sprite; + + numspans++; + } +} diff --git a/SOURCE/R_DRAW.C b/SOURCE/R_DRAW.C new file mode 100644 index 0000000..f41bd6c --- /dev/null +++ b/SOURCE/R_DRAW.C @@ -0,0 +1,133 @@ +// R_draw.c + +#include +#include "D_global.h" +#include "R_refdef.h" + +/* */ +/*==================== */ +/*= */ +/*= ScalePost */ +/*= */ +/*= Primitive scaling operation, coordinates must be clipped */ +/*= */ +/*= Imp1emented on the IBM by jumping into an unwound loop */ +/*= The destination address is the BOTTOM pixel, but the texture start i*/ +/*= pixel (bottom+1-count) */ +/*= */ +/*==================== */ +/* */ + +byte *sp_dest; // the bottom most pixel to be drawn (in vie +byte *sp_source; // the first pixel in the vertical post (may +byte *sp_colormap; // pointer to a 256 byte color number to pal +int sp_frac; // fixed point location past sp_source +int sp_fracstep; // fixed point step value +int sp_count; // the number of pixels to draw + +void ScalePost(void) +{ + //return; // debug +#ifdef VALIDATE + if (sp_count<1) + MS_Error("sp_count < 1"); + + if (sp_dest>(viewbuffer+windowWidth*windowHeight)) + MS_Error("sp_dest > viewbuffer+windowWidth*windowHeight"); +#endif + sp_dest -= windowWidth*(sp_count-1); // go to the top + +#ifdef VALIDATE + if (sp_dest viewbuffer"); +#endif + while (sp_count--) { + *sp_dest=sp_colormap[sp_source[sp_frac>>FRACBITS]]; + sp_dest += windowWidth; + sp_frac += sp_fracstep; + } +} + +/* */ +/*==================== */ +/*= */ +/*= ScaleMaskedPost */ +/*= */ +/*= Primitive scaling operation, coordinates must be clipped */ +/*= */ +/*= Imp1emented on the IBM by jumping into an unwound loop */ +/*= The destination address is the BOTTOM pixel, but the texture start i*/ +/*= pixel (bottom+1-count) */ +/*= */ +/*==================== */ +/* */ + +void ScaleMaskedPost(void) +{ + pixel_t color; + +#ifdef VALIDATE + if (sp_count<1) + MS_Error("sp_count < 1"); + + if (sp_dest>(viewbuffer+windowWidth*windowHeight) + MS_Error("sp_dest > viewbuffer+windowWidth*windowHeight"); +#endif + sp_dest -= windowWidth*(sp_count-1); // go to the top + +#ifdef VALIDATE + if (sp_dest viewbuffer"); +#endif + while (sp_count--) { + color=sp_source[sp_frac>>FRACBITS]; + if (color) + *sp_dest=sp_colormap[color]; + sp_dest += windowWidth; + sp_frac += sp_fracstep; + } +} + +/* */ +/*==================== */ +/*= */ +/*= MapRow */ +/*= */ +/*= Primitive scaling operation, coordinates must be clipped */ +/*= */ +/*= The destination address and texture spot are for the */ +/*= leftmost (first) pixel */ +/*= */ +/*==================== */ +/* */ + +byte *mr_dest; // the left most pixel to be drawn (in viewb +byte *mr_picture; // pointer to a raw 64*64 pixel picture +byte *mr_colormap; // pointer to a 256 byte color number to pal +int mr_xfrac; // starting texture coordinate +int mr_yfrac; // starting texture coordinate +int mr_xstep; // fixed point step value +int mr_ystep; // fixed point step value +int mr_count; // the number of pixels to draw + +void MapRow(void) +{ + int spot; + //return; // debug + +#ifdef VALIDATE + if (mr_count<1) + MS_Error("mr_count < 1"); + + if (!mr_colormap) + return; + if ((mr_destviewbuffer+windowSize)) + MS_Error("bad destination for MapRow"); +#endif + while (mr_count--) { + spot=((mr_yfrac>>(FRACBITS-6))&(63*64))+((mr_xfrac>>FRACBITS)&63); + *mr_dest++=mr_colormap[mr_picture[spot]]; + mr_xfrac+=mr_xstep; + mr_yfrac+=mr_ystep; + } +} diff --git a/SOURCE/R_PLANE.C b/SOURCE/R_PLANE.C new file mode 100644 index 0000000..67c385f --- /dev/null +++ b/SOURCE/R_PLANE.C @@ -0,0 +1,619 @@ +// R_plane.c +#include +#include +#include "D_global.h" +#include "d_disk.h" +#include "R_refdef.h" +int backvertex; // the farthest vertex in a tile, whcih is t + +int ceilingbit; // set to CEILINGBIT when on ceiling, else 0 + +int mr_y, mr_x1, mr_x2; // used by mapplane to calculate texture end +fixed_t mr_deltaheight; // + +fixed_t mapcache_height[MAX_VIEW_HEIGHT]; +fixed_t mapcache_pointz[MAX_VIEW_HEIGHT]; + +// +// vertexes for drawable polygon +// +int numvertex; +int vertexy[10]; +int vertexx[10]; + +// +// vertexes in need of Z clipping +// +clippoint_t vertexpt[10]; + +// +// coefficients of the plane equation for sloping polygons +// +fixed_t planeA, planeB, planeC, planeD; + +#define COPYFLOOR(s,d) \ +vertexpt[d].tx = vertex[s]->tx; \ +vertexpt[d].ty = vertex[s]->floorheight; \ +vertexpt[d].tz = vertex[s]->tz; \ +vertexpt[d].px = vertex[s]->px; \ +vertexpt[d].py = vertex[s]->floory; + +#define COPYCEILING(s,d) \ +vertexpt[d].tx = vertex[s]->tx; \ +vertexpt[d].ty = vertex[s]->ceilingheight; \ +vertexpt[d].tz = vertex[s]->tz; \ +vertexpt[d].px = vertex[s]->px; \ +vertexpt[d].py = vertex[s]->ceilingy; + + +//============================================================ + +/* */ +/*=============== */ +/*= */ +/*= ClearMapCache */ +/*= */ +/*= Invalidates any cached calculations */ +/*= */ +/*=============== */ +/* */ + +void ClearMapCache(void) +{ + memset(mapcache_height, 0xf0, sizeof(mapcache_height)); +} + +//========================================================= + +/* */ +/*================== */ +/*= */ +/*= FlatSpan */ +/*= */ +/*= used for flat floors and ceilings, coordinates must be pre clipped */ +/*= */ +/*= mr_deltaheight is planeheight - viewheight, with height values incre*/ +/*= */ +/*= mr_picture and mr_deltaheight are set once per polygon */ +/*= */ +/*================== */ +/* */ + +void FlatSpan(void) +{ + fixed_t pointz; // row's distance to view plane + span_t *span_p; + unsigned span; + +#ifdef VALIDATE + if (numspans==MAXSPANS) + MS_Error("MAXSPANS exceeded"); + if ((mr_x1<0)||(mr_x2>windowWidth)||(mr_x1>=mr_x2)||(mr_y<0)||(mr_y>=windowWidth)) + MS_Error("Bad MapPlane coordinates"); +#endif + + // + // use cached pointz if valid + // + if (mapcache_height[mr_y]==mr_deltaheight) + pointz=mapcache_pointz[mr_y]; + else { + mapcache_height[mr_y]=mr_deltaheight; + pointz=mapcache_pointz[mr_y]=FIXEDDIV(mr_deltaheight, yslope[mr_y]); + } + if (pointz>MAXZ) + return; + // + // post the span in the draw list + // + span=(pointz<spantype=sp_flat; + span_p->picture=mr_picture; + span_p->x2=mr_x2; + span_p->y=mr_y; + + numspans++; +} + +//========================================================= + +/* */ +/*================== */ +/*= */ +/*= SlopeSpan */ +/*= */ +/*= used for sloping floors and ceilings */ +/*= */ +/*= planeA, planeB, planeC, planeD must be precalculated */ +/*= */ +/*= mr_picture is set once per polygon */ +/*= */ +/*================== */ +/* */ + +void SlopeSpan(void) +{ + fixed_t pointz, pointz2; // row's distance to view plane + fixed_t partial, denom; + span_t *span_p; + unsigned span; + +#ifdef VALIDATE + if (numspans==MAXSPANS) + MS_Error("MAXSPANS exceeded"); + if ((mr_x1<0)||(mr_x2>windowWidth)||(mr_x1>=mr_x2)||(mr_y<0)||(mr_y>=windowWidth)) + MS_Error("Bad MapPlane coordinates"); +#endif + // + // calculate the Z values for each end of the span + // + partial=FIXEDMUL(planeB, yslope[mr_y])+planeC; + denom=FIXEDMUL(planeA, xslope[mr_x1])+partial; + pointz=FIXEDDIV(planeD, denom); + denom=FIXEDMUL(planeA, xslope[mr_x2])+partial; + pointz2=FIXEDDIV(planeD, denom); + + if (pointz>MAXZ||pointz2>MAXZ) + return; + + // + // post the span in the draw list + // + span=(pointz<spantype=sp_slope; + span_p->picture=mr_picture; + span_p->x2=mr_x2; + span_p->y=mr_y; + span_p->yh=pointz2; + + numspans++; +} + +//========================================================= + +/* */ +/*================== */ +/*= */ +/*= RenderPolygon */ +/*= */ +/*= Vertex list must be precliped, convex, and in clockwise order */ +/*= Backfaces (not in clockwise order) generate no pixels */ +/*= */ +/*= The polygon is divided into trapezoids (from 1 to numvertex-1 can be*/ +/*= which have a constant slope on both sides */ +/*= */ +/*= mr_x1 screen coordinates of the span to draw, used by map */ +/*= mr_x2 plane to calculate textures at the endpoints */ +/*= mr_y along with mr_deltaheight */ +/*= */ +/*= mr_dest pointer inside viewbuffer where span starts */ +/*= mr_count length of span to draw (mr_x2 - mr_x1) */ +/*= */ +/*= spanfunction is a pointer to a function that will handle determining*/ +/*= in the calculated span (FlatSpan or SlopeSpan) */ +/*= */ +/*================== */ +/* */ + +void RenderPolygon(void (*spanfunction)(void)) +{ + int stopy; + fixed_t leftfrac, rightfrac; + fixed_t leftstep, rightstep; + int leftvertex, rightvertex; + int deltax, deltay; + int oldx; + + // + // find topmost vertex + // + rightvertex=0; // topmost so far + for (leftvertex=1; leftvertex=windowHeight) + return; // totally off bottom + + do { + if (mr_y==vertexy[rightvertex]) { + skiprightvertex : oldx=vertexx[rightvertex]; + if (++rightvertex==numvertex) + rightvertex=0; + deltay=vertexy[rightvertex]-mr_y; + if (!deltay) { + if (leftvertex==rightvertex) + return; // the last edge is exactly horizontal + goto skiprightvertex; + } + deltax=vertexx[rightvertex]-oldx; + rightfrac=(oldx<windowHeight) + stopy=windowHeight; + + for (; mr_y>FRACBITS; + mr_x2=rightfrac>>FRACBITS; + if (mr_x1xcliph) + mr_x2=xcliph; + + if (mr_x1mr_x1) + spanfunction(); // different functions for flat and slop + + leftfrac+=leftstep; + rightfrac+=rightstep; + } + } while ((rightvertex!=leftvertex)&&(mr_y!=windowHeight)); + +} + + +//============================================================ + +/* */ +/*================== */ +/*= */ +/*= CalcPlaneEquation */ +/*= */ +/*= Calculates planeA, planeB, planeC, planeD */ +/*= planeD is actually -planeD */ +/*= */ +/*= for vertexpt[0-2] */ +/*= */ +/*================== */ +/* */ + +void CalcPlaneEquation(void) +{ + fixed_t x1, y1, z1; + fixed_t x2, y2, z2; + fixed_t check1, check2; + + // + // calculate two vectors going away from the middle vertex + // + x1=vertexpt[0].tx-vertexpt[1].tx; + y1=vertexpt[0].ty-vertexpt[1].ty; + z1=vertexpt[0].tz-vertexpt[1].tz; + + x2=vertexpt[2].tx-vertexpt[1].tx; + y2=vertexpt[2].ty-vertexpt[1].ty; + z2=vertexpt[2].tz-vertexpt[1].tz; + + // + // the A, B, C coefficients are the cross product of v1 and v2 + // shift over to save some precision bits + planeA=(FIXEDMUL(y1, z2)-FIXEDMUL(z1, y2))>>8; + planeB=(FIXEDMUL(z1, x2)-FIXEDMUL(x1, z2))>>8; + planeC=(FIXEDMUL(x1, y2)-FIXEDMUL(y1, x2))>>8; + + // + // calculate D based on A,B,C and one of the vertex points + // + planeD=FIXEDMUL(planeA, vertexpt[0].tx) + +FIXEDMUL(planeB, vertexpt[0].ty) + +FIXEDMUL(planeC, vertexpt[0].tz); + + check1=FIXEDMUL(planeA, vertexpt[1].tx) + +FIXEDMUL(planeB, vertexpt[1].ty) + +FIXEDMUL(planeC, vertexpt[1].tz); + check2=FIXEDMUL(planeA, vertexpt[2].tx) + +FIXEDMUL(planeB, vertexpt[2].ty) + +FIXEDMUL(planeC, vertexpt[2].tz); +} + +//============================================================ + +/* */ +/*================== */ +/*= */ +/*= ZClipPolygon */ +/*= */ +/*= Returns true if the polygon should be rendered */ +/*= */ +/*================== */ +/* */ + +boolean ZClipPolygon(int numvertexpts, fixed_t minz) +{ + int v; + fixed_t scale; + fixed_t frac, cliptx, clipty; + clippoint_t *p1, *p2; + + numvertex=0; + + if (minztztztz-minz), (p1->tz-p2->tz)); + + cliptx=p1->tx+FIXEDMUL((p2->tx-p1->tx), frac); + clipty=p1->ty+FIXEDMUL((p2->ty-p1->ty), frac); + + vertexx[numvertex]=CENTERX+(FIXEDMUL(cliptx, scale)>>FRACBITS); + vertexy[numvertex]=CENTERY-(FIXEDMUL(clipty, scale)>>FRACBITS); + numvertex++; + } + if (p1->tz>=minz) { + vertexx[numvertex]=p1->px; + vertexy[numvertex]=p1->py; + numvertex++; + } + } + if (!numvertex) + return false; + + return true; +} + +//================================================================ + +/* */ +/*==================*/ +/*= */ +/*= RenderTileEnds */ +/*= */ +/*= Draw the floor */ +/*= and ceiling for */ +/*= a tile */ +/*==================*/ +/* */ + +void RenderTileEnds(void) +{ + int flatpic; + int flags, polytype; + + xcliph++; // debug: handle this globally + flags=mapflags[mapspot]; + + // + // draw the floor + // + flatpic=floorpic[mapspot]; +#ifdef VALIDATE + if (flatpic>=numflats) + MS_Error("RenderTileEnds: Invalid floorpic at (%i,%i)", tilex, tiley); +#endif + flatpic=flattranslation[flatpic]; +#ifdef VALIDATE + if (flatpic>=numflats) + MS_Error("RenderTileEnds: Invalid translated floor"); +#endif + mr_picture=lumpmain[flatlump+flatpic]; + ceilingbit=0; + + polytype=(flags&FL_FLOOR)>>FLS_FLOOR; + switch (polytype) { + case POLY_FLAT: + mr_deltaheight=vertex[0]->floorheight; + if (mr_deltaheight<0) { + COPYFLOOR(0, 0); + COPYFLOOR(1, 1); + COPYFLOOR(2, 2); + COPYFLOOR(3, 3); + if (ZClipPolygon(4, -mr_deltaheight)) + RenderPolygon(FlatSpan); + } + break; + + case POLY_SLOPE: + COPYFLOOR(0, 0); + COPYFLOOR(1, 1); + COPYFLOOR(2, 2); + COPYFLOOR(3, 3); + CalcPlaneEquation(); + if (ZClipPolygon(4, MINZ)) + RenderPolygon(SlopeSpan); + break; + + case POLY_ULTOLR: + COPYFLOOR(0, 0); + COPYFLOOR(1, 1); + COPYFLOOR(2, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + + COPYFLOOR(2, 0); + COPYFLOOR(3, 1); + COPYFLOOR(0, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + break; + + case POLY_URTOLL: + COPYFLOOR(0, 0); + COPYFLOOR(1, 1); + COPYFLOOR(3, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + + COPYFLOOR(1, 0); + COPYFLOOR(2, 1); + COPYFLOOR(3, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + break; + } + // + // draw the ceiling + // + + //return; // remove to show ceilings + + flatpic=ceilingpic[mapspot]; +#ifdef VALIDATE + if (flatpic>=numflats) + MS_Error("RenderTileEnds: Invalid ceilingpic at (%i,%i)", tilex, + tiley); +#endif + flatpic=flattranslation[flatpic]; +#ifdef VALIDATE + if (flatpic>=numflats) + MS_Error("RenderTileEnds: Invalid ceiling translation for %i", + flatlump); +#endif + mr_picture=lumpmain[flatlump+flatpic]; + + ceilingbit=CEILINGBIT; + + polytype=(flags&FL_CEILING)>>FLS_CEILING; + switch (polytype) { + case POLY_FLAT: + mr_deltaheight=vertex[0]->ceilingheight; + if (mr_deltaheight>0) { + COPYCEILING(3, 0); + COPYCEILING(2, 1); + COPYCEILING(1, 2); + COPYCEILING(0, 3); + if (ZClipPolygon(4, mr_deltaheight)) + RenderPolygon(FlatSpan); + } + break; + + case POLY_SLOPE: + COPYCEILING(3, 0); + COPYCEILING(2, 1); + COPYCEILING(1, 2); + COPYCEILING(0, 3); + CalcPlaneEquation(); + if (ZClipPolygon(4, MINZ)) + RenderPolygon(SlopeSpan); + break; + + case POLY_ULTOLR: + COPYCEILING(3, 0); + COPYCEILING(2, 1); + COPYCEILING(1, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + + COPYCEILING(3, 0); + COPYCEILING(1, 1); + COPYCEILING(0, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + break; + + case POLY_URTOLL: + COPYCEILING(3, 0); + COPYCEILING(2, 1); + COPYCEILING(0, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + + COPYCEILING(2, 0); + COPYCEILING(1, 1); + COPYCEILING(0, 2); + CalcPlaneEquation(); + if (ZClipPolygon(3, MINZ)) + RenderPolygon(SlopeSpan); + break; + } +} + +//=============================================================== + +/* */ +/*==================== */ +/*= */ +/*= FindBackVertex */ +/*= */ +/*==================== */ +/* */ + +void FindBackVertex(void) +{ + int v; + fixed_t greatestz; + + // + // transform the view tile and find the vertex with the greatest Z + // + vertex[0]=TransformVertex(viewtilex, viewtiley); + vertex[1]=TransformVertex(viewtilex+1, viewtiley); + vertex[2]=TransformVertex(viewtilex+1, viewtiley+1); + vertex[3]=TransformVertex(viewtilex, viewtiley+1); + + backvertex=0; + greatestz=vertex[0]->tz; + + for (v=1; v<4; v++) + if (vertex[v]->tz>greatestz) { + backvertex=v; + greatestz=vertex[v]->tz; + } +} diff --git a/SOURCE/R_PUBLIC.C b/SOURCE/R_PUBLIC.C new file mode 100644 index 0000000..8206088 --- /dev/null +++ b/SOURCE/R_PUBLIC.C @@ -0,0 +1,662 @@ + +#include +#include +#include +//#include "r_public.h" +#include "D_global.h" +#include "d_disk.h" +#include "R_refdef.h" + +int windowHeight = INIT_VIEW_HEIGHT; +int windowWidth = INIT_VIEW_WIDTH; +int windowLeft = (320-INIT_VIEW_WIDTH) >> 1; +int windowTop = (200-INIT_VIEW_HEIGHT) >> 1; +int windowSize = INIT_VIEW_HEIGHT*INIT_VIEW_WIDTH; +int viewLocation = 0xA0000+VIEW_TOP*320+VIEW_LEFT; + +//============================================================= + +/* */ +/*===================== */ +/*= */ +/*= RF_PreloadGraphics */ +/*= */ +/*===================== */ +/* */ + +void RF_PreloadGraphics(void) +{ + int i, x; + byte *base; + byte *wall; + int size; + + // + // find the number of lumps of each type + // + spritelump=CA_GetNamedNum("startsprites"); + numsprites=CA_GetNamedNum("endsprites")-spritelump; + + walllump=CA_GetNamedNum("startwalls"); + numwalls=CA_GetNamedNum("endwalls")-walllump; + + flatlump=CA_GetNamedNum("startflats"); + numflats=CA_GetNamedNum("endflats")-flatlump; + + // + // load the lumps + // + for (i=1; itilex=tilex; + door->tiley=tiley; + + mapflags[tiley*MAPROWS+tilex] |= FL_DOOR; + + return door; +} + +//========================================================== + +/* */ +/*================ */ +/*= */ +/*= RF_GetSprite */ +/*= */ +/*= Return a free sprite structure that has been added to the end of */ +/*= the active list */ +/*= */ +/*================ */ +/* */ + +scaleobj_t *RF_GetSprite(void) +{ + scaleobj_t *new; + + if (!freescaleobj_p) + MS_Error("GetSprite: Out of spots in scaleobjlist!"); + + new=freescaleobj_p; + freescaleobj_p=freescaleobj_p->next; + + memset(new, 0, sizeof(*new)); + new->next=(scaleobj_t *)&lastscaleobj; + new->prev=lastscaleobj.prev; + lastscaleobj.prev=new; + new->prev->next=new; + + return new; +} + +//========================================================== + +/* */ +/*====================*/ +/*= */ +/*= RF_RemoveSprite */ +/*= */ +/*= Unlink the sprite */ +/*= from the active */ +/*= list */ +/*= */ +/*====================*/ +/* */ + +void RF_RemoveSprite(scaleobj_t *spr) +{ + spr->next->prev=spr->prev; + spr->prev->next=spr->next; + + memset(spr, 0, sizeof(spr)); + spr->next=freescaleobj_p; + freescaleobj_p=spr; +} + +//========================================================== + + +/* */ +/*=====================*/ +/*= */ +/*= RF_GetFloorZ */ +/*= */ +/*=====================*/ +/* */ + +fixed_t RF_GetFloorZ(fixed_t x, fixed_t y) +{ + fixed_t h1, h2, h3, h4; + int tilex, tiley, mapspot; + int polytype; + fixed_t fx, fy; + fixed_t top, bottom; + + tilex=x>>(FRACBITS+TILESHIFT); + tiley=y>>(FRACBITS+TILESHIFT); + + mapspot=tiley *MAPSIZE+tilex; + polytype=(mapflags[mapspot]&FL_FLOOR)>>FLS_FLOOR; + + // + // flat + // + if (polytype==POLY_FLAT) + return floorheight[mapspot]<>6; // range from 0 to fracunit-1 + fy=(y&(TILEUNIT-1))>>6; + + if (polytype==POLY_SLOPE) { + if (h1==h2) // north/south slope + return h1+FIXEDMUL(h3-h1, fy); + else // east/west slope + return h1+FIXEDMUL(h2-h1, fx); + } + // + // triangulated slopes + // + + // set the outside corner of the triangle that the point is NOT in s + // plane with the other three + + if (polytype==POLY_ULTOLR) { + if (fx>fy) + h3=h1-(h2-h1); + else + h2=h1+(h1-h3); + } + else { + if (fx>(FRACBITS+TILESHIFT); + tiley=y>>(FRACBITS+TILESHIFT); + + mapspot=tiley *MAPSIZE+tilex; + polytype=(mapflags[mapspot]&FL_CEILING)>>FLS_CEILING; + + // + // flat + // + if (polytype==POLY_FLAT) + return ceilingheight[mapspot]<>6; // range from 0 to fracunit-1 + fy=(y&(TILEUNIT-1))>>6; + + if (polytype==POLY_SLOPE) { + if (h1==h2) // north/south slope + return h1+FIXEDMUL(h3-h1, fy); + else // east/west slope + return h1+FIXEDMUL(h2-h1, fx); + } + // + // triangulated slopes + // + + // set the outside corner of the triangle that the point is NOT in s + // plane with the other three + + if (polytype==POLY_ULTOLR) { + if (fx>fy) + h3=h1-(h2-h1); + else + h2=h1+(h1-h3); + } + else { + if (fxpicture; + shapebottom=span_p->y; + + scale=FIXEDDIV(SCALE, pointz); + fracstep=FIXEDMUL(pointz, ISCALE); + sp_fracstep=fracstep; + leftx=span_p->x2; + leftx-=pic->leftoffset<>FRACBITS); + if (x>sx) + return false; // the sprite is to the right of the point + deltascreen=sx-x; + post=(fracstep *deltascreen)>>FRACBITS; + + if (post>=pic->width) + return false; // the sprite is to the left of the point + + if (pointz>wallz[sx]) + return false; // this post is obscured by a closer wall + + collumn=(byte *)pic+pic->collumnofs[post]; + + topheight=shapebottom+(*collumn<>FRACBITS); + if (topy>sy) + return false; // shape is below point + bottomy=CENTERY-(FIXEDMUL(bottomheight, scale)>>FRACBITS); + if (bottomy>FRACBITS; + + if (!collumn[posty]) + return false; // point is in a transparent area + + id_type=id_sprite; + id_structure=span_p->structure; + return true; +} + +/* */ +/*========================*/ +/*= =*/ +/*= RF_PixelIdentity =*/ +/*= =*/ +/*= You can only call =*/ +/*= this between frames, =*/ +/*= not during an action =*/ +/*= hook routine call =*/ +/*= =*/ +/*========================*/ +/* */ + +void RF_PixelIdentity(int sx, int sy) +{ + unsigned tag, *spantag_p; + int spannum; + span_t *span_p; + int spanx; + fixed_t pointz, length, fracstep; + int deltay; + int angle; + + // + // scan the sorted span lists from closest to farthest + // + spantag_p=endtaglist_p-1; + while (spantag_p>=starttaglist_p) { + tag=*spantag_p--; + + spannum=tag&SPANMASK; + span_p=&spans[spannum]; + spanx=tag&XMASK; + pointz=(tag&ZMASK)>>ZTOFRAC; + + if (span_p->spantype==sp_shape) { + // check for intersection with the sprite's pixels + if (CheckSpriteContact(span_p, pointz, sx, sy)) + return; + continue; + } + spanx=(spanx>>XSHIFT)^0x1ff; // invert back to regular x + + if ((span_p->spantype==sp_door)||(span_p->spantype==sp_maskeddoor)) { + // if it got here, it didn't hit a floor or ceiling in front + if (spanx!=sx) + continue; + id_type=id_door; + id_structure=span_p->structure; + return; + } + /// its just a floor/ ceiling span + // check the extent of the span + if (span_p->y!=sy||spanx>sx||span_p->x2<=sx) + continue; + if (tag&CEILINGBIT) + id_type=id_ceiling; + else + id_type=id_floor; + + angle=viewfineangle+pixelangle[sx]; + angle&=TANANGLES *4-1; + + length=FIXEDDIV(pointz, pixelcosine[sx]); + id_px=viewx+FIXEDMUL(length, cosines[angle]); + id_py=viewy-FIXEDMUL(length, sines[angle]); + return; + } + // + // if there is a wall post at sx, the click was somewhere in it + // + if (wallz[sx]==MAXZ+1) { + // didn't click on anything + id_type=id_empty; + return; + } + id_type=id_wall; + id_tilex=wallnumber[sx]>>17; + id_tiley=(wallnumber[sx]>>2)&63; + id_side=wallnumber[sx]&3; + id_px=walltexture[sx]; + deltay=sy-walltopy[sx]; + fracstep=FIXEDMUL(wallz[sx], ISCALEFUDGE); + id_py=(deltay *fracstep)>>FRACBITS; + if (id_py<0) + id_py=0; + +} + +/* */ +/*=====================*/ +/*= */ +/*= RF_SetLights */ +/*= */ +/*= Spreads the light */ +/*= translation tables */ +/*= from 0 - MAXZ, with*/ +/*= the black point at */ +/*= blackz. It is OK to*/ +/*= have blackz>MAXZ, */ +/*= things will be */ +/*= brighter when they */ +/*= appear */ +/*=====================*/ +/* */ + +void RF_SetLights(fixed_t blackz) +{ + // linear diminishing + int i; + int table; + + blackz>>=FRACBITS; + for (i=0; i<=MAXZ>>FRACBITS; i++) { + table=numcolormaps *i/blackz; + if (table>=numcolormaps) + table=numcolormaps-1; + zcolormap[i]=colormaps+table *256; + } +} + +//========================================================== + +/* */ +/*===================== */ +/*= */ +/*= RF_CheckActionFlag */ +/*= */ +/*===================== */ +/* */ + +void RF_CheckActionFlag(void) +{ + if (!actionflag) + return; + + if (!actionhook) + MS_Error("RF_CheckActionFlag: Actionhook not set"); + + actionhook(); + actionflag=0; +} + +/* */ +/*===================== */ +/*= */ +/*= RF_SetActionHook */ +/*= */ +/*===================== */ +/* */ + +void RF_SetActionHook(void (*hook)(void)) +{ + actionhook=hook; +} + +//========================================================== + +/* */ +/*=============== */ +/*= */ +/*= RF_RenderView */ +/*= */ +/*=============== */ +/* */ + +void RF_RenderView(fixed_t x, fixed_t y, fixed_t z, int angle, byte showBlast) +{ + if ((x<=0)||(x>=((MAPSIZE-1)<<(FRACBITS+TILESHIFT)))||(y<=0)|| + (y>=((MAPSIZE-1)<<(FRACBITS+TILESHIFT))||angle<0||angle>=ANGLES)) + MS_Error("Invalid RF_RenderView (%p, %p, %p, %i)\n", x, y, z, angle); + + viewx=(x&~0xfff) + 0x800; + viewy=(y&~0xfff) + 0x800; + viewz=(z&~0xfff) + 0x800; + viewangle=angle; + + SetupFrame(); + RF_CheckActionFlag(); + FlowView(x,y); + RF_CheckActionFlag(); + RenderSprites(x, y, z, angle, showBlast); + RF_CheckActionFlag(); + DrawSpans(); + RF_CheckActionFlag(); +} + +void SetViewSize(int width, int height) +{ + int i; + + if (width>MAX_VIEW_WIDTH) width = MAX_VIEW_WIDTH; + if (height>MAX_VIEW_HEIGHT) height = MAX_VIEW_HEIGHT; + windowHeight = height; + windowWidth = width; + windowSize = width*height; + for (i=0;i 0 + int floory; + int ceilingy; +#ifdef FLOATCOORD + float ftx, ftz; +#endif +} vertex_t; + +typedef struct { + int tilex, tiley; + int xmin, xmax; +} entry_t; + +/* */ +/*The span_t structure is used with the spantags bit fields to determine*/ +/*after sorting all the draw events. */ +/* */ +/* floor/ceiling doorpost scaled shape slop*/ +/* --------------- ------------ ----------------- */ +/*tagz pointz pointz pointz p*/ +/*tagx ~xstart ~xposition 0 */ +/* */ +/*picture texture block top of post scale pic */ +/*x2 x end + 1 ?? pointx */ +/*y screen y ceiling height pointy */ +/*yh ?? floor height ?? */ +/*structure ?? doorobj scaleobj ?? */ +/* */ +/* */ + +typedef enum { + sp_flat, sp_slope, sp_door, sp_shape, sp_maskeddoor +} spanobj_t; + +typedef struct { + spanobj_t spantype; + byte *picture; + void *structure; // either doorobj or scaleobj + int x2; + int y; + int yh; +} span_t; + +typedef struct { + short leftoffset, width; + short collumnofs[256]; // only uses [width] entries +} scalepic_t; + +typedef struct { + fixed_t tx, ty, tz; + int px, py; +} clippoint_t; + +//================= +// R_render +//================= +extern void (*actionhook)(void); + +extern int framevalid[MAPROWS][MAPCOLS]; +extern vertex_t *cornervertex[MAPROWS][MAPCOLS]; +extern vertex_t vertexlist[MAXVISVERTEXES], *vertexlist_p; + +extern int yslope[MAX_VIEW_HEIGHT], xslope[MAX_VIEW_WIDTH+1]; + +extern byte **wallposts; + +extern byte *colormaps; +extern int numcolormaps; +extern byte *zcolormap[(MAXZ>>FRACBITS) ++1]; + +extern fixed_t viewx, viewy, viewz; +extern fixed_t viewcos, viewsin; +extern fixed_t xscale, yscale; +extern int viewangle, viewfineangle; +extern int viewtilex, viewtiley; + +extern int side; +extern int walltype; +extern int wallshadow; +extern vertex_t *vertex[4]; // points to the for corner vertexes in vert +extern vertex_t *p1, *p2; + +extern int xclipl, xcliph; // clip window for current tile +extern int tilex, tiley; // coordinates of the tile being rendered +extern int mapspot; // tiley*MAPSIZE+tilex + +extern boolean doortile; // true if the tile being renderd has a door + +void SetupFrame(void); +vertex_t *TransformVertex(int tilex, int tiley); +void FlowView(fixed_t x, fixed_t y); + +//================= +// R_walls +//================= + +extern fixed_t tangents[TANANGLES *2]; +extern fixed_t sines[TANANGLES *5]; +extern fixed_t *cosines; // point 1/4 phase into sines + +extern int pixelangle[MAX_VIEW_WIDTH+1]; // +1 because span ends go one past +extern fixed_t pixelcosine[MAX_VIEW_WIDTH+1]; + +extern int wallnumber[MAX_VIEW_WIDTH]; +extern int walltopy[MAX_VIEW_WIDTH]; +extern int walltexture[MAX_VIEW_WIDTH]; +extern fixed_t wallz[MAX_VIEW_WIDTH]; + +void InitWalls(void); +void ClearWalls(void); +void RenderTileWalls(entry_t *e, fixed_t playerx, fixed_t playery); +void DrawWall(void); + +//================= +// R_plane +//================= + +extern byte *mr_picture; // pointer to a raw 64*64 pixel picture +extern fixed_t mf_deltaheight; +extern int spancount; + +void InitPlane(void); +void ClearMapCache(void); +void RenderTileEnds(void); +void FindBackVertex(void); + +//================= +// R_conten +//================= + +extern scaleobj_t firstscaleobj, lastscaleobj; +extern scaleobj_t scaleobjlist[MAXSPRITES], *freescaleobj_p; + +extern doorobj_t doorlist[MAXDOORS]; +extern int numdoors; + +extern int doorxl, doorxh; + +void RenderDoor(fixed_t playerx, fixed_t playery); +void RenderSprites(fixed_t x, fixed_t y, fixed_t z, int angle, byte showBlast); + +//================= +// R_draw +//================= + +extern byte *sp_dest; // the bottom most pixel to be drawn (in vie +extern byte *sp_source; // the first pixel in the vertical post (may +extern byte *sp_colormap; // pointer to a 256 byte color number to pal +extern int sp_frac; // fixed point location past sp_source +extern int sp_fracstep; // fixed point step value +extern int sp_count; // the number of pixels to draw + +void ScalePost(void); +void ScaleMaskedPost(void); + +extern byte *mr_dest; // the left most pixel to be drawn (in viewb +extern byte *mr_picture; // pointer to a raw 64*64 pixel picture +extern byte *mr_colormap; // pointer to a 256 byte color number to pal +extern int mr_xfrac; // starting texture coordinate +extern int mr_yfrac; // starting texture coordinate +extern int mr_xstep; // fixed point step value +extern int mr_ystep; // fixed point step value +extern int mr_count; // the number of pixels to draw + +void MapRow(void); + +//================= +// R_spans +//================= + +extern unsigned spantags[2][MAXSPANS]; +extern unsigned *starttaglist_p, *endtaglist_p; +extern span_t spans[MAXSPANS], *spans_p; +extern int numspans; + +void DrawSpans(void); diff --git a/SOURCE/R_RENDER.C b/SOURCE/R_RENDER.C new file mode 100644 index 0000000..d71b83e --- /dev/null +++ b/SOURCE/R_RENDER.C @@ -0,0 +1,468 @@ +// R_render.c +#include +#include +#include +#include "D_global.h" +#include "R_refdef.h" + +/* */ +/*=================== */ +/*CONSTANTS */ +/*=================== */ +/* */ + +/* */ +/*=================== */ +/*TYPES */ +/*=================== */ +/* */ + +/* */ +/*=================== */ +/*GLOBALS */ +/*=================== */ + /* */ +hit_t id_type; +int id_tilex, id_tiley; // not valid for sprites +int id_side; // 0(north)-3(west) for walls +int id_px, id_py; // position in texture +void *id_structure; // either doorobj_t or scaleobj_t + +byte floorpic[MAPROWS*MAPCOLS]; +byte ceilingpic[MAPROWS*MAPCOLS]; +byte floorheight[MAPROWS*MAPCOLS]; +byte ceilingheight[MAPROWS*MAPCOLS]; +byte northwall[MAPROWS*MAPCOLS]; +byte westwall[MAPROWS*MAPCOLS]; +byte northbottom[MAPROWS*MAPCOLS]; +byte westbottom[MAPROWS*MAPCOLS]; +byte mapflags[MAPROWS*MAPCOLS]; +byte mapsprites[MAPROWS*MAPCOLS]; + +void (*actionhook)(void); +int actionflag; + +// each visible vertex is used up to four times, so to prevent recalcula +// the vertex info is reused if it has been calculated previously that f +// The calculated flag is also used to determine if a moving sprite is i +// is at least partially visable. +// +// frameon is incremented at the start of each frame, so it is 1 on the +// framevalid[][] holds the frameon number for which vertex[][] is valid +// set to 0 at initialization, so no points are valid +// cornervertex[][] is a pointer into vertexlist[] +// vertexlist[] holds the currently valid transformed vertexes +// vertexlist_p is set to vertexlist[0] at the start of each frame, and +// after transforming a new vertex +int frameon; +int framevalid[MAPROWS][MAPCOLS]; +vertex_t *cornervertex[MAPROWS][MAPCOLS]; +vertex_t vertexlist[MAXVISVERTEXES], *vertexlist_p; + +fixed_t costable[ANGLES]; +fixed_t sintable[ANGLES]; + +pixel_t viewbuffer[MAX_VIEW_WIDTH*MAX_VIEW_HEIGHT]; +pixel_t *viewylookup[MAX_VIEW_HEIGHT]; + +fixed_t yslope[MAX_VIEW_HEIGHT], xslope[MAX_VIEW_WIDTH+1]; + +byte **wallposts; + +byte *colormaps; +int numcolormaps; +byte *zcolormap[(MAXZ>>FRACBITS)+1]; + +fixed_t viewx, viewy, viewz; +fixed_t viewcos, viewsin; +fixed_t xscale, yscale; // SCALE/viewcos , SCALE/viewsin +int viewangle, viewfineangle; +int viewtilex, viewtiley; + +vertex_t *vertex[4]; // points to the for corner vertexes in vert +vertex_t *p1, *p2; +int side; // wall number 0-3 +int walltype; // wall number (picture) of p1-p2 edge +int wallshadow; // degree of shadow for a tile + +int xclipl, xcliph; // clip window for current tile +int tilex, tiley; // coordinates of the tile being rendered +int mapspot; // tiley*MAPSIZE+tilex + +int *flattranslation; // global animation tables +int *walltranslation; + +int spritelump, walllump, flatlump; +int numsprites, numwalls, numflats; + +boolean doortile; // true if the tile being renderd has a door + +/* */ +/*=================== */ +/*LOCALS */ +/*=================== */ +/* */ + +int adjacentx[4]= +{ + 0, 1, 0, -1 +}; + +// deltas to the tile facing the given wall +int adjacenty[4]= +{ + -1, 0, 1, 0 +}; + + + +entry_t entries[2][30], *entry_p; // holds tile numbers and clip windo +// entries are read out of one list, checked for +// duplication, and passed to RenderTile +// The other list collects new entries from the +// exits detected by RenderTile + +/* */ +/*================== */ +/*= */ +/*= TransformVertex */ +/*= */ +/*= Returns a pointer to the vertex for a given coordinate */ +/*= tx,tz will be the transformed coordinates */ +/*= px, floorheight, ceilingheight will be valid if tz >= MINZ */ +/*= */ +/*================== */ +/* */ + +vertex_t *TransformVertex(int tilex, int tiley) +{ + fixed_t trx, try; + fixed_t gxt, gyt; + fixed_t scale; + vertex_t *point; + int mapspot; + + mapspot=tiley*MAPROWS+tilex; + + if (framevalid[tiley][tilex]==frameon) + return cornervertex[tiley][tilex]; // vertex has already been t + + point=vertexlist_p++; +#ifdef VALIDATE + if (point>=&vertexlist[MAXVISVERTEXES]) + MS_Error("Vertexlist overflow"); +#endif + framevalid[tiley][tilex]=frameon; + cornervertex[tiley][tilex]=point; + + point->floorheight=(floorheight[mapspot]<ceilingheight=(ceilingheight[mapspot]<tx=gyt+gxt; + + gxt=FIXEDMUL(trx, viewcos); + gyt=FIXEDMUL(try, viewsin); + point->tz=gxt-gyt; + +#ifdef FLOATCOORD + point->ftx=(float)point->tx/FRACUNIT; + point->ftz=(float)point->tz/FRACUNIT; +#endif + if (point->tz>=MINZ) { + scale=FIXEDDIV(SCALE, point->tz); + point->px=CENTERX+(FIXEDMUL(point->tx, scale)>>FRACBITS); + point->floory=CENTERY-(FIXEDMUL(point->floorheight, scale)>>FRACBITS); + point->ceilingy=CENTERY-(FIXEDMUL(point->ceilingheight,scale)>>FRACBITS); + } + return point; +} + +/* */ +/*================== */ +/*= */ +/*= ClipEdge */ +/*= */ +/*= Sets p1->px and p2->px correctly for Z values < MINZ */ +/*= */ +/*= Returns false if entire edge is too close or far away */ +/*= */ +/*================== */ +/* */ + +boolean ClipEdge(void) +{ + fixed_t leftfrac, rightfrac, clipz; + fixed_t dx,dz; + + if (p1->tz>MAXZ&&p2->tz>MAXZ) + return false; // entire face is too far away + + if (p1->tz<0&&p2->tz<0) + return false; // totally behind the projection plane + + if (p1->tztztx - p1->tx; + dz = p2->tz - p1->tz; + if (p1->tztx - p1->tz , dx+dz); + } + if (p2->tztx - p1->tz , -dx+dz); + if (p1->tztz + FIXEDMUL(dz,rightfrac); + if (clipz<0) + return false; + p2->px = windowWidth; + } + } + + if (p1->tztz + FIXEDMUL(dz,leftfrac); + if (clipz<0) + return false; + p1->px = 0; + } + + if (p1->px==p2->px) + return false; + + return true; +} + + +/* */ +/*=============== */ +/*= */ +/*= RenderTileWalls */ +/*= */ +/*=============== */ +/* */ + +void RenderTileWalls(entry_t *e, fixed_t playerx, fixed_t playery) +{ + int xl, xh; + + tilex=e->tilex; + tiley=e->tiley; + mapspot=tiley*MAPROWS+tilex; + + xclipl=e->xmin; + xcliph=e->xmax; + +#ifdef VALIDATE + if ((tilex<0)||(tilex>=MAPCOLS)||(tiley<0)||(tiley>=MAPROWS)||(xclipl<0)|| + (xclipl>=windowWidth)||(xcliph<0)||(xcliph>=windowWidth)||(xclipl>xcliph)) + MS_Error("Invalid RenderTile (%i, %i, %i, %i)\n", e->tilex, e->tiley, + e->xmin, e->xmax); +#endif + + // + // validate or transform the four corner vertexes + // + vertex[0]=TransformVertex(tilex, tiley); + vertex[1]=TransformVertex(tilex+1, tiley); + vertex[2]=TransformVertex(tilex+1, tiley+1); + vertex[3]=TransformVertex(tilex, tiley+1); + + // + // handle a door if present + // + if (mapflags[mapspot]&FL_DOOR) { + doortile=true; + RenderDoor(playerx,playery); // sets doorxl / doorxh + } + else + doortile=false; + + // + // draw or flow through the walls + // + for (side=0; side<4; side++) { + p1=vertex[side]; + p2=vertex[(side+1)&3]; + if (!ClipEdge()) continue; + if (p1->px>=p2->px) continue; // back face + switch (side) { + // only 64 wall types allowed so &63 ensures that + // all values are mapped into a correct value; + // any portion above 63 is assumed to be a shadowing + // factor + case 0: + wallshadow=northwall[mapspot] >> 6; + walltype=northwall[mapspot] & 63; + break; + case 1: + wallshadow=westwall[mapspot+1] >> 6; + walltype=westwall[mapspot+1] & 63; + break; + case 2: + wallshadow=northwall[mapspot+MAPSIZE] >> 6; + walltype=northwall[mapspot+MAPSIZE] & 63; + break; + case 3: + wallshadow=westwall[mapspot] >> 6; + walltype=westwall[mapspot] & 63; + break; + } + if (walltype) + { + DrawWall(); + } + else { + // + // restrict outward flow by the door, if present + // + xl=p1->px; + xh=p2->px-1; + + if (doortile) { + if ((doorxl<=xclipl)&&(doorxh>=xl)) xl=doorxh+1; + if ((doorxh>=xcliph)&&(doorxl<=xh)) xh=doorxl-1; + } + // + // restrict by clipping window + // + if (xlxcliph) xh=xcliph; + // + // flow into the adjacent tile if there is at lest a one pix + // + if (xh>=xl) { + entry_p->tilex=tilex+adjacentx[side]; + entry_p->tiley=tiley+adjacenty[side]; + entry_p->xmin=xl; + entry_p->xmax=xh; + entry_p++; + } + } + } +} + +//============================================================ + +/* */ +/*================ */ +/*= */ +/*= SetupFrame */ +/*= */ +/*================ */ +/* */ +void SetupFrame(void) +{ + // + // clear buffers + // + memset(viewbuffer, 0, sizeof(viewbuffer)); + ClearWalls(); // no walls drawn yet + ClearMapCache(); // invalidate cached pointz calculations + numspans=0; + frameon++; // vertexes from last frame are now invalid + vertexlist_p=&vertexlist[0]; // put the first transformed vertex + // begining of the list + + viewtilex=viewx>>TILEFRACSHIFT; + viewtiley=viewy>>TILEFRACSHIFT; + + viewfineangle=viewangle<tilex=viewtilex; + process_p->tiley=viewtiley; + process_p->xmin=0; + process_p->xmax=windowWidth-1; + endprocess_p=process_p+1; + table=1; + do { + entry_p=&entries[table][0]; + while (process_p!=endprocess_p) { + if (process_p->tilex==-1) { // the entry was combined away + process_p++; + continue; + } + // + // check for combining two entries + // + /* + for (nextprocess_p=process_p+1; nextprocess_p!=endprocess_p;nextprocess_p++) { + if ((nextprocess_p->tilex!=process_p->tilex)|| + (nextprocess_p->tiley!=process_p->tiley)) continue; + + if (nextprocess_p->xmin==process_p->xmax+1) + process_p->xmax=nextprocess_p->xmax; + else if (nextprocess_p->xmax==process_p->xmin-1) + process_p->xmin=nextprocess_p->xmin; + else { +// 1992-12-02 12:38 REB adding more output info for this error + unsigned char buf[256]; + unsigned char msg[256]; + unsigned char inf[256]; + buf[0]=msg[0]=inf[0]=0; + sprintf(buf,"nextprocess_p=%d,process_p=%d/n",(int)nextprocess_p,(int)process_p); + strcat(inf,buf); + sprintf(buf,"nextprocess_p->xmin=%d,nextprocess_p->xmax=%d\n",nextprocess_p->xmin,nextprocess_p->xmax); + strcat(inf,buf); + sprintf(buf,"process_p->xmin=%d,process_p->xmax=%d\n",process_p->xmin,process_p->xmax); + strcat(inf,buf); + strcat(msg,"Bad tile event combination\n"); + strcat(msg,inf); + MS_Error(msg); +// MS_Error("Bad tile event combination"); + } + nextprocess_p->tilex=-1; // don't use again + break; + } + */ + // + // draw or post everything for process_p + // + RenderTileWalls(process_p,playerx,playery); + RenderTileEnds(); + + process_p++; + } + endprocess_p=entry_p; + process_p=&entries[table][0]; + table^=1; + } while (endprocess_p!=process_p); + +} diff --git a/SOURCE/R_SPANS.C b/SOURCE/R_SPANS.C new file mode 100644 index 0000000..a131765 --- /dev/null +++ b/SOURCE/R_SPANS.C @@ -0,0 +1,418 @@ +// R_spans.c +#include "D_global.h" +#include "R_refdef.h" + +/* */ +/*MAXZ must be 511 or less! (384 now) */ +/* */ +/*(pointz<<7)&0xfff00000 // 9 unit bits, 3 frac bits */ +/*ceiling // 1 bit */ +/*x1<<12 // 8 bits */ +/*span number // 12 bits */ +/* */ +/*a scaled object is just encoded like a span */ +/* */ +/* */ + +unsigned spantags[2][MAXSPANS]; +unsigned *starttaglist_p, *endtaglist_p; // set by SortSpans +span_t spans[MAXSPANS], *spans_p; +int numspans; + +int spanx; +fixed_t pointz; +span_t *span_p; + +//================================================================ + +int size1; +int size2; +unsigned *src1, *src2, *dest; + +#ifdef NeXT + +/* */ +/*========== */ +/*= */ +/*= Merge */ +/*= */ +/*= Merges src1/size1 and src2/size2 to dest */ +/*= */ +/*========== */ +/* */ + +void Merge(void) +{ + // + // merge two parts of the unsorted array to the sorted array + // + if (*src1<*src2) + goto mergefrom2; + +mergefrom1: + *dest++=*src1++; + if (!--size1) + goto finishfrom2; + if (*src1>*src2) + goto mergefrom1; + +mergefrom2: + *dest++=*src2++; + if (!--size2) + goto finishfrom1; + if (*src1>*src2) + goto mergefrom1; + goto mergefrom2; + +finishfrom2: + while (size2--)*dest++=*src2++; + return; + +finishfrom1: + while (size1--)*dest++=*src1++; +} + + +#else +void Merge(void); // in assembly + +#endif + +/* */ +/*================== */ +/*= */ +/*= SortSpans */ +/*= */ +/*= Sorts the unsigned values in spantags[0] */ +/*= Sets starttaglist_p and endtaglist_p to the sorted list, which can b*/ +/*= */ +/*================== */ +/* */ + +void SortSpans(void) +{ + int size, start; + int sort; + unsigned *sorted, *unsorted, *temp; + + if (numspans<2) { + starttaglist_p=&spantags[0][0]; + endtaglist_p=starttaglist_p+numspans; + return; + } + size=1; + sort=0; + + sorted=spantags[sort]; + unsorted=spantags[!sort]; + + do { + start=0; + dest=unsorted; // this will be incremented by the merge + + do { + src1=sorted+start; + size1=size; + src2=src1+size; + start+=size; + size2=numspans-start; + if (size2>size) + size2=size; + start+=size2; // for next iteration + + Merge(); + } while (numspans-start>size); + + // + // copy any remnants (0-size possible) + // + while (start!=numspans) { + *dest++=spantags[sort][start]; + start++; + } + // + // get ready to sort back to the other array + // + sort^=1; + temp=sorted; + sorted=unsorted; + unsorted=temp; + size<<=1; + +#if 0 + { + int i; + for (i=0; ipicture; + sp_colormap=zcolormap[pointz>>FRACBITS]; + sp_fracstep=FIXEDMUL(pointz, ISCALE); + + top=FIXEDDIV(span_p->y, sp_fracstep); + topy=top>>FRACBITS; + fracadjust=top&(FRACUNIT-1); + sp_frac=FIXEDMUL(fracadjust, sp_fracstep); + topy=CENTERY-topy; + if (topy<0) { + sp_frac-=topy *sp_fracstep; + topy=0; + } + bottom=FIXEDDIV(span_p->yh, sp_fracstep)+FRACUNIT; + bottomy=bottom>=(CENTERY<>FRACBITS); + + if ((bottomy<=0)||(topy>=windowHeight)) + return; + + sp_count=bottomy-topy+1; + sp_dest=viewylookup[bottomy]+spanx; + + if (span_p->spantype==sp_maskeddoor) ScaleMaskedPost(); + else ScalePost(); +} + +//========================================================== + +/* */ +/*=================== */ +/*= */ +/*= DrawSprite */ +/*= */ +/*=================== */ +/* */ + +void DrawSprite(void) +{ + int x; + fixed_t leftx; + fixed_t scale; + fixed_t xfrac, fracstep; + fixed_t shapebottom, topheight, bottomheight; + int post; + int topy, bottomy; + scalepic_t *pic; + byte *collumn; + + sp_colormap=zcolormap[pointz>>FRACBITS]; + pic=(scalepic_t *)span_p->picture; + shapebottom=span_p->y; + // + // project the x and height + // + scale=FIXEDDIV(SCALE, pointz); + fracstep=FIXEDMUL(pointz, ISCALE); + sp_fracstep=fracstep; + leftx=span_p->x2; + leftx-=pic->leftoffset<>FRACBITS); + + // + // step through the shape, drawing posts where visible + // + xfrac=0; + if (x<0) { + xfrac-=fracstep *x; + x=0; + } + for (; x>FRACBITS; + xfrac+=fracstep; + + if (post>=pic->width) + return; // entire shape is too far away + if (pointz>wallz[x]) + continue; // this post is obscured by a closer wall + +// Temporary Mod by Ray and Ben to attempt a fix for empty sprite posts +// 1992-12-02 11:58 +// If the offset of the columns is zero then there is no data for the post + if (pic->collumnofs[post]==0) + continue; + collumn=(byte *)pic+pic->collumnofs[post]; + + topheight=shapebottom+(*collumn<>FRACBITS); + if (topy<0) { + sp_frac=-topy *sp_fracstep; + topy=0; + } + else + sp_frac=0; + + bottomy=CENTERY-(FIXEDMUL(bottomheight, scale)>>FRACBITS); + if (bottomy>windowHeight-1) bottomy=windowHeight-1; + + if ((bottomy<0)||(topy>=windowHeight)) continue; + + sp_count=bottomy-topy+1; + sp_dest=viewylookup[bottomy]+x; + sp_source=collumn; + + ScaleMaskedPost(); + } +} + +//========================================================== + +/* */ +/*============== */ +/*= */ +/*= DrawSpans */ +/*= */ +/*= Spans farther than MAXZ away should NOT have been entered into the l*/ +/* */ +/*============== */ +/* */ + +void DrawSpans(void) +{ + unsigned *spantag_p, tag; + int spannum; + int x2; + fixed_t lastz; // the pointz for which xystep is valid + fixed_t length; + fixed_t zerocosine, zerosine; + fixed_t zeroxfrac, zeroyfrac; + fixed_t xf2, yf2; // endpoint texture for sloping spans + int angle; + + // + // set up for drawing + // + SortSpans(); + spantag_p=starttaglist_p; + + angle=viewfineangle+pixelangle[0]; + angle&=TANANGLES *4-1; + zerocosine=cosines[angle]; + zerosine=sines[angle]; + + // + // draw from back to front + // + x2=-1; + lastz=-1; + + // + // draw everything else + // + while (spantag_p!=endtaglist_p) { + tag=*spantag_p++; + + pointz=(tag&ZMASK)>>ZTOFRAC; + spannum=tag&SPANMASK; + span_p=&spans[spannum]; + spanx=tag&XMASK; + spanx=(spanx>>XSHIFT)^0x1ff; // invert back to regular x + + if (span_p->spantype==sp_flat) { // its just a floor/ ceiling + //=============== + // + // floor / ceiling span + // + //=============== + if (pointz!=lastz) { + lastz=pointz; + mr_xstep=FIXEDMUL(pointz, xscale); + mr_ystep=FIXEDMUL(pointz, yscale); + mr_colormap=zcolormap[pointz>>FRACBITS]; + // + // calculate starting texture point + // + length=FIXEDDIV(pointz, pixelcosine[0]); + zeroxfrac=mr_xfrac=viewx+FIXEDMUL(length, zerocosine); + zeroyfrac=mr_yfrac=viewy-FIXEDMUL(length, zerosine); + x2=0; + } + if (spanx!=x2) { + mr_xfrac=zeroxfrac+mr_xstep *spanx; + mr_yfrac=zeroyfrac+mr_ystep *spanx; + } + mr_dest=viewylookup[span_p->y]+spanx; + mr_picture=span_p->picture; + x2=span_p->x2; + mr_count=x2-spanx; + + MapRow(); + continue; + } + if (span_p->spantype==sp_slope) { // its just a floor/ ceiling + //=============== + // + // sloping floor / ceiling span + // + //=============== + lastz=-1; // we are going to get out of order here, so + + mr_colormap=zcolormap[pointz>>FRACBITS]; + x2=span_p->x2; + mr_dest=viewylookup[span_p->y]+spanx; + mr_picture=span_p->picture; + mr_count=x2-spanx; + // + // calculate starting texture point + // + length=FIXEDDIV(pointz, pixelcosine[spanx]); + angle=viewfineangle+pixelangle[spanx]; + angle&=TANANGLES *4-1; + mr_xfrac=viewx+FIXEDMUL(length, cosines[angle]); + mr_yfrac=viewy-FIXEDMUL(length, sines[angle]); + // + // calculate ending texture point + // (yh is pointz2 for ending point) + length=FIXEDDIV(span_p->yh, pixelcosine[x2]); + angle=viewfineangle+pixelangle[x2]; + angle&=TANANGLES *4-1; + xf2=viewx+FIXEDMUL(length, cosines[angle]); + yf2=viewy-FIXEDMUL(length, sines[angle]); + + mr_xstep=(xf2-mr_xfrac)/mr_count; + mr_ystep=(yf2-mr_yfrac)/mr_count; + MapRow(); + continue; + } + //================ + // + // other spans + // + //================ + if (span_p->spantype==sp_shape) { + DrawSprite(); + continue; + } + if (span_p->spantype==sp_door||span_p->spantype==sp_maskeddoor) { + DrawDoorPost(); + continue; + } + } +} diff --git a/SOURCE/R_WALLS.C b/SOURCE/R_WALLS.C new file mode 100644 index 0000000..0d310f3 --- /dev/null +++ b/SOURCE/R_WALLS.C @@ -0,0 +1,275 @@ +// RV_Walls.c +#include +#include +#include "D_global.h" +#include "R_refdef.h" +#include "d_disk.h" +int angleadjust[4]= +{ + 0, TANANGLES, 0, TANANGLES +}; + + + +fixed_t tangents[TANANGLES *2]; +fixed_t sines[TANANGLES *5]; +fixed_t *cosines; // point 1/4 phase into sines + +int pixelangle[MAX_VIEW_WIDTH+1]; +fixed_t pixelcosine[MAX_VIEW_WIDTH+1]; + +// +// the wall_??[x] arrays are used to determine where a mouse click is +// +int wallnumber[MAX_VIEW_WIDTH]; // tilex<<17 + tiley<<2 + side, -1 = no wall +int walltopy[MAX_VIEW_WIDTH]; +int walltexture[MAX_VIEW_WIDTH]; // 0-63 +fixed_t wallz[MAX_VIEW_WIDTH]; // pointx + +/* */ +/*================== */ +/*= */ +/*= InitWalls */ +/*= */ +/*= Builds tangent tables for -90 degrees to +90 degrees */ +/*= and pixel angle table */ +/*= */ +/*================== */ +/* */ + +void InitWalls(void) +{ + int i; + int intval; + double tang, value, ivalue; + + // + // tangent values for wall tracing + // + for (i=0; ipx to p2->px-1 with wall picture wal*/ +/*= p1/p2 are projected and Z clipped, but unclipped to the view window */ +/*= */ +/*==================== */ +/* */ + +void DrawWall(void) +{ + int baseangle, wallnum; + byte **postindex; // start of the 64 entry texture table for t + fixed_t distance; // horizontal / vertical dist to wall segmen + fixed_t pointz; // transformed distance to wall post + fixed_t anglecos; + fixed_t textureadjust; // the amount the texture p1ane is shifted + fixed_t ceilingheight; // top of the wall + fixed_t floorheight; // bottom of the wall + fixed_t top, bottom; // precise y coordinates for post + int topy, bottomy; // pixel y coordinates for post + fixed_t fracadjust; // the amount to prestep for the top pixel + int angle; // the ray angle that strikes the current po + int texture; // 0-63 post number + int x, x1, x2; // collumn and ranges + int p1mapspot, p2mapspot; + short *wall; + + x1=p1->pxpx; + x2=p2->px-1>xcliph?xcliph : p2->px-1; + if (x1>x2) + return; // totally clipped off side + + // + // set up for loop + // + +#ifdef VALIDATE + if (walltype>=numwalls) + MS_Error("DrawWall: Invalid source walltype"); +#endif + walltype=walltranslation[walltype]; // global animation +#ifdef VALIDATE + if (walltype>=numwalls) + MS_Error("DrawWall: Invalid translated walltype"); +#endif + wall=lumpmain[walllump+walltype]; // to get wall height + postindex=wallposts+((walltype-1)<<6); // 64 pointers to texture st + baseangle=viewfineangle; + wallnum=(tilex<<17)+(tiley<<2)+side; // so a mouse click can be l + + switch (side) { + case 0: // south facing wall + distance=viewy-(tiley<<(FRACBITS+TILESHIFT)); + textureadjust=viewx; + baseangle+=TANANGLES *2; + floorheight=northbottom[mapspot]; + break; + case 1: // west facing wall + distance=((tilex+1)<<(FRACBITS+TILESHIFT))-viewx; + textureadjust=viewy; + baseangle+=TANANGLES; + floorheight=westbottom[mapspot+1]; + break; + case 2: // north facing wall + distance=((tiley+1)<<(FRACBITS+TILESHIFT))-viewy; + textureadjust=-viewx; + baseangle+=TANANGLES *2; + floorheight=northbottom[mapspot+MAPSIZE]; + break; + case 3: // east facing wall + distance=viewx-(tilex<<(FRACBITS+TILESHIFT)); + textureadjust=-viewy; + baseangle+=TANANGLES; + floorheight=westbottom[mapspot]; + break; + } + // + // the floor and ceiling height is the max of the points + // + ceilingheight = floorheight + *wall *4; // based on height of wall pic + //ceilingheight = floorheight + (*wall)*4 *4; + + ceilingheight=(ceilingheight<>FRACBITS; + + texture&=63; + if (x==x1 && texture==63) + texture = 0; // this is a hack to ensure two tile wide + else if (x==x2 && !texture) + texture = 63; // pics don't wrap inside their wall segments + + + sp_source=postindex[texture]; + + // + // the z distance of the post hit = walldistance*cos(screenangle + // + anglecos=cosines[(angle-TANANGLES)&(TANANGLES *4-1)]; + pointz=FIXEDDIV(distance, anglecos); + pointz=FIXEDMUL(pointz, pixelcosine[x]); + + if (pointz>MAXZ) + continue; + + // test to adjust shadowing + + //sp_colormap=zcolormap[pointz>>FRACBITS]; + if (pointz > MAXZ) + continue; + sp_colormap=zcolormap[(pointz>>FRACBITS)]; +//if (*wall > 45) +//sp_colormap=zcolormap[0]; + + // + // calculate the size and scale of the post + // the scale is calculated a little smaller than true to guarant + // any adjacent floors / ceilings + // + sp_fracstep=FIXEDMUL(pointz, ISCALEFUDGE); + + top=FIXEDDIV(ceilingheight, sp_fracstep); + topy=top>>FRACBITS; + fracadjust=top&(FRACUNIT-1); + sp_frac=FIXEDMUL(fracadjust, sp_fracstep); + topy=CENTERY-topy; + + walltopy[x]=topy; + + if (topy<0) { + sp_frac-=topy *sp_fracstep; + topy=0; + } + bottom=FIXEDDIV(floorheight, sp_fracstep)+FRACUNIT; + bottomy=bottom>=(CENTERY<>FRACBITS); + + if ((bottomy<0)||(topy>=windowHeight)) + continue; + + sp_count=bottomy-topy+1; + sp_dest=viewylookup[bottomy]+x; + + ScalePost(); + + wallz[x]=pointz; + wallnumber[x]=wallnum; + walltexture[x]=texture; + } +} diff --git a/SOURCE/SOFT3D.MAP b/SOURCE/SOFT3D.MAP new file mode 100644 index 0000000000000000000000000000000000000000..527353ecad657110c5d2a40a44f5baf3872a0c86 GIT binary patch literal 49332 zcmeI$K}y3w7zNKe5hL7?*{XEC=xV}+-G`ajXzrI(F*``?>3G@_bIv;%-_v(C}H|FVi z&GsTN3uMPKM-MNb4DlrOP$ZxH(lTDifu%o3S@^fXU`Y%n(w^1X4QAzJXbSM9a$pKO&~j#IeWNQZszHB z#Wo^P1+rtA_v(C}x0$DoED`7>P%1Y6Prk{~!~7d&(;Tz)x?cMbNP$iJe8WAJGs^@B z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0tA)>-VVp(`^)p=()-ivV+p_4ewN4d{&ajg9$xPrrr-WPUiP}I J%kxfqeE}X(82SJJ literal 0 HcmV?d00001 diff --git a/SOURCE/SV.EXE b/SOURCE/SV.EXE new file mode 100644 index 0000000000000000000000000000000000000000..dd0f1a2e05cc29415e812e17b1fd814f521ab283 GIT binary patch literal 6843 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "d_global.h" +#include "d_disk.h" +#include "d_misc.h" +#include "d_video.h" +#include "d_ints.h" +#include "d_font.h" + +#include "r_refdef.h" + +#define PLAYERMOVESPEED FRACUNIT +#define PLAYERTURNSPEED 1 + +#define MINDIST (FRACUNIT*4) +#define PLAYERSIZE MINDIST// almost a half tile +#define FRACTILESHIFT (FRACBITS+TILESHIFT) + +#define RED_KEY 1 +#define GREEN_KEY 2 +#define YELLOW_KEY 4 +#define BLUE_KEY 8 + + +fixed_t playerx; +fixed_t playery; +fixed_t playerz; +int playerangle; // 360 degree range spread from 0-ANGLES +int player_keys = 0; + +int tics; + +byte suspendRefresh = 0; +byte resizeScreen = 0; +byte biggerScreen = 0; +byte showBlast = 0; +byte warpActive = 0; +boolean menuActive = false; +byte menuValue = 0; +int keyboardDelay = 0; +int weaponFireDelay = 0; + +int viewSizes[] = +{ + 96, 56, + 128, 72, + 160, 88, + 192, 104, + 224, 120, + 256, 136, + 288, 152, + 320, 168, + 320, 200 +}; +/* +int viewSizes[] = +{ + 320, 200, + 320, 200, + 320, 200, + 320, 200, + 320, 200, + 320, 200, + 320, 200, + 320, 200, + 320, 200 +}; + */ + +byte currentViewSize = 8; + + +int myArray[500]; +int myOffset = 0; + +void ChangeViewSize(byte MakeLarger); +void ResetScalePostWidth (int NewWindowWidth); +void FillRectangle (int x, int y, int width, int height, byte color); +extern void *GetMScaleRoutines (void); +extern void *GetScaleRoutines (void); + + +/* +============================================================================= + + +============================================================================= +*/ + +/* +=================== += += TryDoor += Todd Lewis - 9/13/94 += +=================== +*/ + +boolean TryDoor (fixed_t xcenter, fixed_t ycenter, boolean doorCheck) +{ + int xl,yl,xh,yh,x,y; + struct cellStruct *cs; + doorobj_t *door_p, *last_p; + int dx,dy; + +// These values will probably have to be tweaked for doors that are along +// the vertical opposite axis (northwall) + + xl = (int)((xcenter-PLAYERSIZE) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + +// +// check for doors on the north wall +// + for (y=yl+1;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if (door_p->orientation != dr_horizontal) + continue; + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + { + return true; // can move, door is open + } + else if ((!door_p->doorOpen) && + (door_p->doorBumpable)) + { + door_p->doorOpening = true; + return false; + } + else if ((!door_p->doorOpen) || + (door_p->doorClosing)) + return false; + } + } + } + } + +// check for doors on the west wall + + xl = (int)((xcenter-PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE) >> FRACTILESHIFT); + + + for (y=yl;y<=yh;y++) + for (x=xl+1;x<=xh;x++) + { + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if (door_p->orientation != dr_vertical) + continue; + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + { + return true; // can move, door is open + } + else if ((!door_p->doorOpen) && + (door_p->doorBumpable)) + { + door_p->doorOpening = true; + return false; + } + else if ((!door_p->doorOpen) || + (door_p->doorClosing)) + return false; + } + } + } + } + + return true; + +} + +/* +=================== += += TryMove += += returns true if move doesn't go into a solid wall += +=================== +*/ + +boolean TryMove (fixed_t xcenter, fixed_t ycenter) +{ + int xl,yl,xh,yh,x,y; + struct cellStruct *cs; + doorobj_t *doorobj; + int dx,dy; + + xl = (int)((xcenter-PLAYERSIZE) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE) >> FRACTILESHIFT); +// +// check for solid walls +// + for (y=yl+1;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + if (northwall[y*64+x]) // if tile has a wall + return false; + } + + for (y=yl;y<=yh;y++) + for (x=xl+1;x<=xh;x++) + { + if (westwall[y*64+x]) // if tile has a wall + return false; + } + + return true; +} + +//========================================================================== + +/* +=================== += += ClipMove += +=================== +*/ + +byte ClipMove (fixed_t xmove, fixed_t ymove, fixed_t *x, fixed_t *y) +{ + boolean canMove; + + canMove = (TryMove(*x+xmove,*y+ymove) & + TryDoor(*x+xmove,*y+ymove,false)); + + if (canMove) + { + *x += xmove; + *y += ymove; + return 1; + } + +// +// the move goes into a wall, so try and move along one axis +// + canMove = (TryMove(*x+xmove,*y) & + TryDoor(*x+xmove,*y,false)); + + if (canMove) + { + *x += xmove; + return 2; + } + + canMove = (TryMove(*x,*y+ymove) & + TryDoor(*x,*y+ymove,false)); + + if (canMove) + { + *y += ymove; + return 3; + } + + return 0; +} + +//========================================================================== + +/* +=================== += += Thrust += += Angle is an 8 bit value, speed is a global pixel value += Tries to move the player in the given direction, clipping to walls += if blocked += +=================== +*/ + +byte Thrust (int angle, fixed_t speed, fixed_t *x, fixed_t *y) +{ + fixed_t xmove,ymove; + + angle &= (ANGLES-1); + + xmove = FIXEDMUL(speed,costable[angle]); + ymove = -FIXEDMUL(speed,sintable[angle]); + + return ClipMove(xmove,ymove,x,y); +} + +void MoveSprites(void) +{ + scaleobj_t *sprite; + scaleobj_t *holdSprite; + int picnum; + byte counter; + + for (sprite=firstscaleobj.next; sprite!=&lastscaleobj; + sprite=sprite->next) + { + if (sprite->moveSpeed) + { + counter = 0; + while (counter++ < sprite->moveSpeed) + { + if (Thrust(sprite->angle, PLAYERMOVESPEED, + &sprite->x, &sprite->y) != 1) + { + holdSprite = sprite; + sprite = sprite->prev; + RF_RemoveSprite(holdSprite); + counter = sprite->moveSpeed; + } + } // while + } // if + } +} + + +boolean FindWarpDestination(int *x, int *y, byte warpValue) +{ + int searchX, searchY; + + if (!warpActive) + { + for (searchX = 0; searchX < 64; searchX ++) + for (searchY = 0; searchY < 64; searchY ++) + if ((mapsprites[searchY*64+searchX] == warpValue) && + ((searchX != *x) || (searchY != *y))) + { + *x = searchX; + *y = searchY; + warpActive = warpValue; + + return true; + } // if + } // if + + return false; +} // FindDestinationWarp + +void CheckWarps (int centerx, int centery) +{ + int x, y; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + if ((mapsprites[y*64+x] >= 6) && + (mapsprites[y*64+x] <= 8)) + { + if (FindWarpDestination(&x, &y, mapsprites[y*64+x])) + { + playerx = (x*64+32)*FRACUNIT; + playery = (y*64+32)*FRACUNIT; + } // if + } // if + else + warpActive = 0; + +} // CheckWarps + +void CheckHere (int centerx, int centery, boolean openTheDoor) +{ + // check for door at centerx,centery + int x, y; + doorobj_t *door_p, *last_p; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if ((!door_p->doorOpen) && (openTheDoor))// && + //(player_keys & door_p->doorLocks)) + door_p->doorOpening = true; + } + } + } +} + +void CheckSprites(void) +{ +// +// Added 9-24-94 - Todd Lewis +// + scaleobj_t *sprite; + + for (sprite=firstscaleobj.next; sprite!=&lastscaleobj; + sprite=sprite->next) + { + } +} + +void CheckDoors(fixed_t centerx, fixed_t centery) +{ +// +// Added 9-24-94 - Todd Lewis +// + int x,y; + doorobj_t *door_p, *last_p; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + last_p=&doorlist[numdoors]; + + if ((door_p->tilex == x) && (door_p->tiley == y)) + { + if ((door_p->doorOpen) && (!door_p->doorClosing)) + door_p->doorBlocked = true; + } + else + door_p->doorBlocked = false; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + door_p->doorBlocked = true; + } + else + door_p->doorBlocked = false; + + door_p->position = door_p->doorSize * FRACUNIT; + + if (door_p->doorOpening) + { + door_p->doorSize = door_p->doorSize - 4; + if (door_p->doorSize < 0) + { + door_p->doorSize = 0; + door_p->doorOpening = false; + door_p->doorOpen = true; + door_p->doorTimer = timecount + 350; + } + } + else if (door_p->doorClosing) + { + door_p->doorSize = door_p->doorSize + 2; + if (door_p->doorSize > 64) + { + door_p->doorSize = 64; + door_p->doorClosing = false; + door_p->doorOpen = false; + } + } + else if (door_p->doorOpen) + { + if (timecount > door_p->doorTimer) + { + if (!door_p->doorBlocked) + door_p->doorClosing = true; + } + } + } +} // CheckDoors + +void SpawnSprite(byte value, int x, int y) +{ + scaleobj_t *sprite_p; + doorobj_t *door_p; + + + switch (value) + { + case 1: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->moveSpeed = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("chacmool"); + break; + + case 2: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("brazier"); + break; + + case 3: + playerx = (x*64+32)*FRACUNIT; + playery = (y*64+32)*FRACUNIT; + break; + + case 4: // door (temporarily) + door_p = RF_GetDoor (x,y); + door_p->orientation = dr_horizontal; + door_p->doorOpen = false; + door_p->doorOpening = false; + door_p->doorClosing = false; + door_p->doorBlocked = false; + door_p->doorBumpable = false; + door_p->doorSize = 64; + door_p->position = door_p->doorSize*FRACUNIT; + door_p->doorLocks = 0; + door_p->transparent = true; + door_p->pic = CA_GetNamedNum ("wolfdoor") - walllump; + break; + + case 5: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("snake"); + break; + + case 6: + + break; + + case 9: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("urn1"); + break; + + case 10: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("urn2"); + break; + + case 11: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("bowl"); + break; + + case 12: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("cup"); + break; + + case 13: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("jade1"); + break; + + case 14: // door (temporarily) + door_p = RF_GetDoor (x,y); + door_p->orientation = dr_vertical; + door_p->doorOpen = false; + door_p->doorOpening = false; + door_p->doorClosing = false; + door_p->doorBlocked = false; + door_p->doorBumpable = false; + door_p->doorSize = 64; + door_p->position = door_p->doorSize*FRACUNIT; + door_p->doorLocks = 0; + door_p->transparent = true; + door_p->pic = CA_GetNamedNum ("wolfdoor") - walllump; + break; + + case 15: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("ankh"); + break; + + + } // switch + +} // SpawnSprite + +void ActivateSpritesFromMap(void) +{ + int x, y; + + + for (x=0; x<64; x++) + for (y=0; y<64; y++) + { + if (mapsprites[y*64+x]) // sprite or player at this position + SpawnSprite(mapsprites[y*64+x], x, y); + } // for +} // ActivateSpritesFromMap + + +//========================================================================== + +/* +======================= += += ControlMovement += += Takes controlx,controly, and buttonstate[bt_strafe] += += Changes the player's angle and position += +======================= +*/ + +void ControlMovement (void) +{ + fixed_t modifiedSpeed; + int modifiedTurn; + scaleobj_t *sprite_p; + + + if (keyboard[SC_ESCAPE]) + { + MS_Error("Badee, badee, badee ... that's all folks!"); + return; + } + + if ((keyboard[SC_INSERT]) && (!resizeScreen)) + { + if (timecount > keyboardDelay) + { + //ChangeViewSize(true); + resizeScreen = 1; + biggerScreen = true; + keyboardDelay = timecount + 10; + return; + } // if + } + + if ((keyboard[SC_DELETE]) && (!resizeScreen)) + { + if (timecount > keyboardDelay) + { + //ChangeViewSize(false); + resizeScreen = 1; + biggerScreen = false; + keyboardDelay = timecount + 10; + return; + } // if + } + +// adjust movement speed for SLOW OR SPRINT ... TML 9-14-94 + if (keyboard[SC_RSHIFT]) + { + modifiedTurn = 0; + modifiedSpeed = PLAYERMOVESPEED/8; + } + else if (keyboard[SC_LSHIFT]) + { + modifiedSpeed = PLAYERMOVESPEED*4; + modifiedTurn = PLAYERTURNSPEED*4; + } + else + { + modifiedSpeed = PLAYERMOVESPEED*2; + modifiedTurn = PLAYERTURNSPEED*2; + } + +// up / down movement + + if (keyboard[SC_PGUP] && playerz < 252*FRACUNIT) + playerz += FRACUNIT; + if (keyboard[SC_PGDN] && playerz > 4*FRACUNIT) + playerz -= FRACUNIT; + if (keyboard[SC_HOME]) + playerz = 32*FRACUNIT; + +// side to side move + + if (keyboard[SC_ALT]) + { + // + // strafing + // + if (keyboard[SC_LEFTARROW]) + Thrust (playerangle+64,modifiedSpeed,&playerx,&playery); + if (keyboard[SC_RIGHTARROW]) + Thrust (playerangle-64,modifiedSpeed,&playerx,&playery); + } + else + { + // + // not strafing + // + if (keyboard[SC_RIGHTARROW]) + playerangle -= modifiedTurn; + if (keyboard[SC_LEFTARROW]) + playerangle += modifiedTurn; + } + playerangle &= (ANGLES-1); + +// +// forward/backwards move +// + if (keyboard[SC_UPARROW]) + { + Thrust (playerangle,modifiedSpeed,&playerx,&playery); + } + if (keyboard[SC_DOWNARROW]) + { + Thrust (playerangle+128,modifiedSpeed,&playerx,&playery); + } + +// +// try to open a door in front of player +// + if (keyboard[SC_SPACE]) + { + CheckHere(playerx,playery,true); + } + + if (keyboard[SC_CONTROL]) + { + if (timecount > weaponFireDelay) + { + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->animation = 1 + (4 << 5) + (5 << 9); + sprite_p->animationTime = 0; + sprite_p->moveSpeed = 20; + sprite_p->angle = playerangle; + sprite_p->x = playerx; + sprite_p->y = playery; + sprite_p->z = 16*FRACUNIT; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("atk1"); + + weaponFireDelay = timecount + 18; + } + } + +} + +//========================================================================== + +/* +================ += += PlayerCommand += += Called by an interrupt, so if anything time consuming needs to be done, += set actionflag to a non zero value and perform the action in the += ActionHook function += +================ +*/ + +void PlayerCommand (void) +{ + IN_ReadControls (); + ControlMovement (); + tics++; +} + + +/* +================ += += PlayLoop += +================ +*/ + +void PlayLoop (void) +{ + int myTime; // debug purposes + + char test[30]; + + int frametics; + int x; + int i; // get rid off after test + + tics = 0; + INT_TimerHook (PlayerCommand,1); // the players actions are + // sampled by an interrupt + + while (1) + { + MoveSprites(); + CheckDoors(playerx, playery); + CheckWarps(playerx, playery); + + if (resizeScreen) + ChangeViewSize(biggerScreen); + + RF_RenderView (playerx,playery,playerz,playerangle,showBlast); + + if (showBlast) + { + // if (showBlast > 1) + // VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 22, + // windowHeight - 62, + // CA_CacheLump (CA_GetNamedNum ("my_blast") + (3-showBlast))); + showBlast = showBlast - 1; + } + + //myTime = timecount; + + //for (i=0;i<5000;i++) + //VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 64, windowHeight - 32, + // CA_CacheLump (CA_GetNamedNum ("weapons"))); + + if (menuActive) + { + //VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 92, windowHeight - 131, + // CA_CacheLump (CA_GetNamedNum ("menu"))); + //VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 92 + 26, + // windowHeight - 131 + 25 + (menuValue*18), + // CA_CacheLump (CA_GetNamedNum ("binky"))); + } // if + + + //myTime = timecount - myTime; + + RF_BlitView (); + + } +} + + +/* +================ += += ActionHook += += This routine is called by the refresh if actionflag is set, allowing += time consuming functions (like loading something from disk) to be performed += outside an the PlayerCommand function. += +================ +*/ + +void ActionHook (void) +{ + actionflag = 0; +} + + +/* +================ += += LoadNewMap += +================ +*/ + +void LoadNewMap (void) +{ + int lump; + doorobj_t *door_p; + scaleobj_t *sprite_p; + + lump = CA_GetNamedNum("map"); + CA_ReadLump (lump,floorpic); + CA_ReadLump (lump+1,ceilingpic); + CA_ReadLump (lump+2,northwall); + CA_ReadLump (lump+3,westwall); + CA_ReadLump (lump+4,ceilingheight); + CA_ReadLump (lump+5,floorheight); + CA_ReadLump (lump+6,northbottom); + CA_ReadLump (lump+7,westbottom); + CA_ReadLump (lump+8,mapflags); + CA_ReadLump (lump+9,mapsprites); + + // initialize to default in case not placed in mapsprites + playerx = (3*64+32)*FRACUNIT; + playery = (3*64+32)*FRACUNIT; + playerz = 32*FRACUNIT; + playerangle = 64; // face north to start + + ActivateSpritesFromMap(); +} + +/* +================ += += main += +================ +*/ + +void main(int argc, char *argv[]) +{ + int i; +// +// start up the library +// + //player_keys |= RED_KEY | YELLOW_KEY | GREEN_KEY | BLUE_KEY; + CA_InitFile ("TODD3D.TOD"); + + VI_Init(); + VI_FillPalette (0,0,0); + + VI_DrawPic (0,0,CA_CacheLump (CA_GetNamedNum ("playscreen"))); + VI_FadeIn (0,255,CA_CacheLump(CA_GetNamedNum ("palette")),16); + + INT_Setup (); + RF_Startup (); + RF_SetActionHook (ActionHook); + +// +// init the game +// + LoadNewMap (); + + +// +// run the game +// + PlayLoop (); +} + +void ChangeViewSize(byte MakeLarger) +{ + resizeScreen = 0; + + if (MakeLarger) + { + if (currentViewSize < 8) + currentViewSize++; + else + return; + } // if + else + { + if (currentViewSize > 0) + currentViewSize--; + else + return; + } // else + + FillRectangle(0, 0, 320, 200, 0); + + windowWidth = viewSizes[currentViewSize*2]; + windowHeight = viewSizes[currentViewSize*2+1]; + + windowLeft = (320-windowWidth) >> 1; + windowTop = (200-windowHeight) >> 1; + + windowSize = windowHeight*windowWidth; + viewLocation = 0xA0000+windowTop*320+windowLeft; + + ResetScalePostWidth (windowWidth); + InitWalls (); + memset (framevalid, 0, sizeof (framevalid)); + frameon = 0; + + SetViewSize(windowWidth, windowHeight); + RF_SetLights(MAXZ); +} // ChangeViewSize + +void ResetScalePostWidth (int NewWindowWidth) + { + int i; + int *iptr; + byte *bptr; + + bptr = GetScaleRoutines (); + for (i = MAX_VIEW_HEIGHT; i > 1; i--, bptr += 19) + *(int *)(bptr+15) = (i - 1) * -NewWindowWidth; + + iptr = GetMScaleRoutines (); + for (i = MAX_VIEW_HEIGHT; i > 1; i--, iptr += 6) + *(iptr+5) = (i -1) * -NewWindowWidth; + } + +void FillRectangle (int x, int y, int width, int height, byte color) + { + int i; + byte *bptr; + + bptr = (byte *) 0xA0000 + y * 320 + x; + for (i = 0; i < height; i++, bptr += 320) + memset (bptr,color,width); + } diff --git a/SOURCE/TPE.RLL b/SOURCE/TPE.RLL new file mode 100644 index 0000000000000000000000000000000000000000..8d16b7203758c7fa013d24cfc479bacf232494e0 GIT binary patch literal 766 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 literal 0 HcmV?d00001 diff --git a/TEMP/TODD3D.C b/TEMP/TODD3D.C new file mode 100644 index 0000000..62e5aea --- /dev/null +++ b/TEMP/TODD3D.C @@ -0,0 +1,1012 @@ +// todd3d.c + +/**************************************************************************\ +** ** +** Todd Michael Lewis ** +** Raven Engine Updates ** +**------------------------------------------------------------------------** +** ** +** September 19, 1994 ** +** 1) Enabled door checking whereby door is detected at its actual ** +** recessed position ** +** 2) Enabled door opening with key click while in recessed position ** +** 3) Enabled coding doors to be openable only with certain items ** +** 4) Enabled doors to be opened by bumping or pushing ** +** ** +** September 20, 1994 ** +** 1) Learned how to draw planar bitmaps on screen (for status ** +** updates and text, etc.) ** +** 2) Learned how to update view buffer before display (allows the ** +** display of weapons in foreground) ** +** ** +** September 21, 1994 ** +** 1) Jon optimized routine for blasting bitmaps to viewbuffer which ** +** resulted in a 39% increase in efficiency ** +** ** +** September 22, 1994 ** +** 1) Succesfully changed map then deciphered map structure ** +** 2) Added new tiles succesfully to engine ** +** 3) Discovered door closing problem (would only close if in current ** +** frame rendering); fixed to check for door close separately ** +** 4) Successfully placed mulitiple and differing sprites ** +** ** +** September 23, 1994 ** +** 1) Enabled sprite animation ** +** ** +** September 26, 1994 ** +** 1) Added hit and death animations to sprites ** +** ** +** September 27, 1994 ** +** 1) Enabled successful rendering of walls and ceilings in widths ** +** above 256 ** +** ** +** September 28, 1994 ** +** 1) Enable successful rendering of doors in widths above 256 ** +** ** +** November 21-27, 1994 ** +** 1) Incredible progress with new map editor ** +** 2) Enabled placing of player from map ** +** ** +\**************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "d_global.h" +#include "d_disk.h" +#include "d_misc.h" +#include "d_video.h" +#include "d_ints.h" +#include "d_font.h" + +#include "r_refdef.h" + +#define PLAYERMOVESPEED FRACUNIT +#define PLAYERTURNSPEED 1 + +#define MINDIST (FRACUNIT*4) +#define PLAYERSIZE MINDIST// almost a half tile +#define FRACTILESHIFT (FRACBITS+TILESHIFT) + +#define RED_KEY 1 +#define GREEN_KEY 2 +#define YELLOW_KEY 4 +#define BLUE_KEY 8 + + +fixed_t playerx; +fixed_t playery; +fixed_t playerz; +int playerangle; // 360 degree range spread from 0-ANGLES +int player_keys = 0; + +int tics; + +byte showBlast = 0; +byte warpActive = 0; +boolean menuActive = false; +byte menuValue = 0; +int keyboardDelay = 0; +int weaponFireDelay = 0; + + +int myArray[500]; +int myOffset = 0; + +/* +============================================================================= + + +============================================================================= +*/ + +/* +=================== += += TryDoor += Todd Lewis - 9/13/94 += +=================== +*/ + +boolean TryDoor (fixed_t xcenter, fixed_t ycenter, boolean doorCheck) +{ + int xl,yl,xh,yh,x,y; + struct cellStruct *cs; + doorobj_t *door_p, *last_p; + int dx,dy; + +// These values will probably have to be tweaked for doors that are along +// the vertical opposite axis (northwall) + + xl = (int)((xcenter-PLAYERSIZE) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + +// +// check for doors on the north wall +// + for (y=yl+1;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if (door_p->orientation != dr_horizontal) + continue; + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + { + return true; // can move, door is open + } + else if ((!door_p->doorOpen) && + (door_p->doorBumpable)) + { + door_p->doorOpening = true; + return false; + } + else if ((!door_p->doorOpen) || + (door_p->doorClosing)) + return false; + } + } + } + } + +// check for doors on the west wall + + xl = (int)((xcenter-PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE - (TILEUNIT >> 1)) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE) >> FRACTILESHIFT); + + + for (y=yl;y<=yh;y++) + for (x=xl+1;x<=xh;x++) + { + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if (door_p->orientation != dr_vertical) + continue; + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + { + return true; // can move, door is open + } + else if ((!door_p->doorOpen) && + (door_p->doorBumpable)) + { + door_p->doorOpening = true; + return false; + } + else if ((!door_p->doorOpen) || + (door_p->doorClosing)) + return false; + } + } + } + } + + return true; + +} + +/* +=================== += += TryMove += += returns true if move doesn't go into a solid wall += +=================== +*/ + +boolean TryMove (fixed_t xcenter, fixed_t ycenter) +{ + int xl,yl,xh,yh,x,y; + struct cellStruct *cs; + doorobj_t *doorobj; + int dx,dy; + + xl = (int)((xcenter-PLAYERSIZE) >> FRACTILESHIFT); + yl = (int)((ycenter-PLAYERSIZE) >> FRACTILESHIFT); + + xh = (int)((xcenter+PLAYERSIZE) >> FRACTILESHIFT); + yh = (int)((ycenter+PLAYERSIZE) >> FRACTILESHIFT); +// +// check for solid walls +// + for (y=yl+1;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + if (northwall[y*64+x]) // if tile has a wall + return false; + } + + for (y=yl;y<=yh;y++) + for (x=xl+1;x<=xh;x++) + { + if (westwall[y*64+x]) // if tile has a wall + return false; + } + + return true; +} + +//========================================================================== + +/* +=================== += += ClipMove += +=================== +*/ + +byte ClipMove (fixed_t xmove, fixed_t ymove, fixed_t *x, fixed_t *y) +{ + boolean canMove; + + canMove = (TryMove(*x+xmove,*y+ymove) & + TryDoor(*x+xmove,*y+ymove,false)); + + if (canMove) + { + *x += xmove; + *y += ymove; + return 1; + } + +// +// the move goes into a wall, so try and move along one axis +// + canMove = (TryMove(*x+xmove,*y) & + TryDoor(*x+xmove,*y,false)); + + if (canMove) + { + *x += xmove; + return 2; + } + + canMove = (TryMove(*x,*y+ymove) & + TryDoor(*x,*y+ymove,false)); + + if (canMove) + { + *y += ymove; + return 3; + } + + return 0; +} + +//========================================================================== + +/* +=================== += += Thrust += += Angle is an 8 bit value, speed is a global pixel value += Tries to move the player in the given direction, clipping to walls += if blocked += +=================== +*/ + +byte Thrust (int angle, fixed_t speed, fixed_t *x, fixed_t *y) +{ + fixed_t xmove,ymove; + + angle &= (ANGLES-1); + + xmove = FIXEDMUL(speed,costable[angle]); + ymove = -FIXEDMUL(speed,sintable[angle]); + + return ClipMove(xmove,ymove,x,y); +} + +void MoveSprites(void) +{ + scaleobj_t *sprite; + scaleobj_t *holdSprite; + int picnum; + byte counter; + + for (sprite=firstscaleobj.next; sprite!=&lastscaleobj; + sprite=sprite->next) + { + if (sprite->moveSpeed) + { + counter = 0; + while (counter++ < sprite->moveSpeed) + { + if (Thrust(sprite->angle, PLAYERMOVESPEED, + &sprite->x, &sprite->y) != 1) + { + holdSprite = sprite; + sprite = sprite->prev; + RF_RemoveSprite(holdSprite); + counter = sprite->moveSpeed; + } + } // while + } // if + } +} + + +boolean FindWarpDestination(int *x, int *y, byte warpValue) +{ + int searchX, searchY; + + if (!warpActive) + { + for (searchX = 0; searchX < 64; searchX ++) + for (searchY = 0; searchY < 64; searchY ++) + if ((mapsprites[searchY*64+searchX] == warpValue) && + ((searchX != *x) || (searchY != *y))) + { + *x = searchX; + *y = searchY; + warpActive = warpValue; + + return true; + } // if + } // if + + return false; +} // FindDestinationWarp + +void CheckWarps (int centerx, int centery) +{ + int x, y; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + if ((mapsprites[y*64+x] >= 6) && + (mapsprites[y*64+x] <= 8)) + { + if (FindWarpDestination(&x, &y, mapsprites[y*64+x])) + { + playerx = (x*64+32)*FRACUNIT; + playery = (y*64+32)*FRACUNIT; + } // if + } // if + else + warpActive = 0; + +} // CheckWarps + +void CheckHere (int centerx, int centery, boolean openTheDoor) +{ + // check for door at centerx,centery + int x, y; + doorobj_t *door_p, *last_p; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + if (mapflags[y*64+x] & FL_DOOR) // if tile has a door + { + last_p=&doorlist[numdoors]; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if ((!door_p->doorOpen) && (openTheDoor))// && + //(player_keys & door_p->doorLocks)) + door_p->doorOpening = true; + } + } + } +} + +void CheckSprites(void) +{ +// +// Added 9-24-94 - Todd Lewis +// + scaleobj_t *sprite; + + for (sprite=firstscaleobj.next; sprite!=&lastscaleobj; + sprite=sprite->next) + { + } +} + +void CheckDoors(fixed_t centerx, fixed_t centery) +{ +// +// Added 9-24-94 - Todd Lewis +// + int x,y; + doorobj_t *door_p, *last_p; + + x = (int)((centerx) >> FRACTILESHIFT); + y = (int)((centery) >> FRACTILESHIFT); + + last_p=&doorlist[numdoors]; + + if ((door_p->tilex == x) && (door_p->tiley == y)) + { + if ((door_p->doorOpen) && (!door_p->doorClosing)) + door_p->doorBlocked = true; + } + else + door_p->doorBlocked = false; + + for (door_p=doorlist; door_p != last_p; door_p++) + { + if ((door_p->tilex == x) && + (door_p->tiley == y)) + { + if ((door_p->doorOpen) && + (!door_p->doorClosing)) + door_p->doorBlocked = true; + } + else + door_p->doorBlocked = false; + + door_p->position = door_p->doorSize * FRACUNIT; + + if (door_p->doorOpening) + { + door_p->doorSize = door_p->doorSize - 4; + if (door_p->doorSize < 0) + { + door_p->doorSize = 0; + door_p->doorOpening = false; + door_p->doorOpen = true; + door_p->doorTimer = timecount + 350; + } + } + else if (door_p->doorClosing) + { + door_p->doorSize = door_p->doorSize + 2; + if (door_p->doorSize > 64) + { + door_p->doorSize = 64; + door_p->doorClosing = false; + door_p->doorOpen = false; + } + } + else if (door_p->doorOpen) + { + if (timecount > door_p->doorTimer) + { + if (!door_p->doorBlocked) + door_p->doorClosing = true; + } + } + } +} // CheckDoors + +void SpawnSprite(byte value, int x, int y) +{ + scaleobj_t *sprite_p; + doorobj_t *door_p; + + + switch (value) + { + case 1: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->moveSpeed = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("chacmool"); + break; + + case 2: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("brazier"); + break; + + case 3: + playerx = (x*64+32)*FRACUNIT; + playery = (y*64+32)*FRACUNIT; + break; + + case 4: // door (temporarily) + door_p = RF_GetDoor (x,y); + door_p->orientation = dr_horizontal; + door_p->doorOpen = false; + door_p->doorOpening = false; + door_p->doorClosing = false; + door_p->doorBlocked = false; + door_p->doorBumpable = false; + door_p->doorSize = 64; + door_p->position = door_p->doorSize*FRACUNIT; + door_p->doorLocks = 0; + door_p->transparent = true; + door_p->pic = CA_GetNamedNum ("wolfdoor") - walllump; + break; + + case 5: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("snake"); + break; + + case 6: + + break; + + case 9: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("urn1"); + break; + + case 10: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("urn2"); + break; + + case 11: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("bowl"); + break; + + case 12: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("cup"); + break; + + case 13: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("jade1"); + break; + + case 14: // door (temporarily) + door_p = RF_GetDoor (x,y); + door_p->orientation = dr_vertical; + door_p->doorOpen = false; + door_p->doorOpening = false; + door_p->doorClosing = false; + door_p->doorBlocked = false; + door_p->doorBumpable = false; + door_p->doorSize = 64; + door_p->position = door_p->doorSize*FRACUNIT; + door_p->doorLocks = 0; + door_p->transparent = true; + door_p->pic = CA_GetNamedNum ("wolfdoor") - walllump; + break; + + case 15: + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->angle = 0; + sprite_p->x = (x*64+32)*FRACUNIT; + sprite_p->y = (y*64+32)*FRACUNIT; + sprite_p->z = 0; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("ankh"); + break; + + + } // switch + +} // SpawnSprite + +void ActivateSpritesFromMap(void) +{ + int x, y; + + + for (x=0; x<64; x++) + for (y=0; y<64; y++) + { + if (mapsprites[y*64+x]) // sprite or player at this position + SpawnSprite(mapsprites[y*64+x], x, y); + } // for +} // ActivateSpritesFromMap + + +//========================================================================== + +/* +======================= += += ControlMovement += += Takes controlx,controly, and buttonstate[bt_strafe] += += Changes the player's angle and position += +======================= +*/ + +void ControlMovement (void) +{ + fixed_t modifiedSpeed; + int modifiedTurn; + scaleobj_t *sprite_p; + + + if (keyboard[SC_ESCAPE]) + { + if (timecount > keyboardDelay) + { + if (menuActive) + menuActive = false; + else + menuActive = true; + + keyboardDelay = timecount + 20; + } + } + if (menuActive) + { + if (timecount > keyboardDelay) + { + if (keyboard[SC_UPARROW]) + { + if (menuValue) + menuValue--; + else + menuValue = 2; + + keyboardDelay = timecount + 10; + } + else if (keyboard[SC_DOWNARROW]) + { + if (menuValue < 2) + menuValue++; + else + menuValue = 0; + + keyboardDelay = timecount + 10; + } + else if (keyboard[SC_ENTER]) + { + if (menuValue == 2) + MS_Error("Badee, badee, badee ... that's all folks!"); + } + } + + return; + } + +// adjust movement speed for SLOW OR SPRINT ... TML 9-14-94 + if (keyboard[SC_RSHIFT]) + { + modifiedTurn = 0; + modifiedSpeed = PLAYERMOVESPEED/8; + } + else if (keyboard[SC_LSHIFT]) + { + modifiedSpeed = PLAYERMOVESPEED*4; + modifiedTurn = PLAYERTURNSPEED*4; + } + else + { + modifiedSpeed = PLAYERMOVESPEED*2; + modifiedTurn = PLAYERTURNSPEED*2; + } + +// up / down movement + + if (keyboard[SC_PGUP] && playerz < 252*FRACUNIT) + playerz += FRACUNIT; + if (keyboard[SC_PGDN] && playerz > 4*FRACUNIT) + playerz -= FRACUNIT; + if (keyboard[SC_HOME]) + playerz = 32*FRACUNIT; + +// side to side move + + if (keyboard[SC_ALT]) + { + // + // strafing + // + if (keyboard[SC_LEFTARROW]) + Thrust (playerangle+64,modifiedSpeed,&playerx,&playery); + if (keyboard[SC_RIGHTARROW]) + Thrust (playerangle-64,modifiedSpeed,&playerx,&playery); + } + else + { + // + // not strafing + // + if (keyboard[SC_RIGHTARROW]) + playerangle -= modifiedTurn; + if (keyboard[SC_LEFTARROW]) + playerangle += modifiedTurn; + } + playerangle &= (ANGLES-1); + +// +// forward/backwards move +// + if (keyboard[SC_UPARROW]) + { + Thrust (playerangle,modifiedSpeed,&playerx,&playery); + } + if (keyboard[SC_DOWNARROW]) + { + Thrust (playerangle+128,modifiedSpeed,&playerx,&playery); + } + +// +// try to open a door in front of player +// + if (keyboard[SC_SPACE]) + { + CheckHere(playerx,playery,true); + } + + if (keyboard[SC_CONTROL]) + { + if (timecount > weaponFireDelay) + { + sprite_p = RF_GetSprite (); + sprite_p->animation = 0; + sprite_p->animation = 1 + (4 << 5) + (5 << 9); + sprite_p->animationTime = 0; + sprite_p->moveSpeed = 20; + sprite_p->angle = playerangle; + sprite_p->x = playerx; + sprite_p->y = playery; + sprite_p->z = 16*FRACUNIT; + sprite_p->rotate = rt_one; + sprite_p->basepic = CA_GetNamedNum ("atk1"); + + weaponFireDelay = timecount + 18; + } + } + +} + +//========================================================================== + +/* +================ += += PlayerCommand += += Called by an interrupt, so if anything time consuming needs to be done, += set actionflag to a non zero value and perform the action in the += ActionHook function += +================ +*/ + +void PlayerCommand (void) +{ + IN_ReadControls (); + ControlMovement (); + tics++; +} + + +/* +================ += += PlayLoop += +================ +*/ + +void PlayLoop (void) +{ + int myTime; // debug purposes + + char test[30]; + + int frametics; + int x; + int i; // get rid off after test + + tics = 0; + INT_TimerHook (PlayerCommand,1); // the players actions are + // sampled by an interrupt + + while (1) + { + MoveSprites(); + CheckDoors(playerx, playery); + CheckWarps(playerx, playery); + + if (showBlast > 1) + showBlast = 1; + + RF_RenderView (playerx,playery,playerz,playerangle,showBlast); + + if (showBlast) + { + // if (showBlast > 1) + // VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 22, + // windowHeight - 62, + // CA_CacheLump (CA_GetNamedNum ("my_blast") + (3-showBlast))); + showBlast = showBlast - 1; + } + + //myTime = timecount; + + //for (i=0;i<5000;i++) + VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 64, windowHeight - 32, + CA_CacheLump (CA_GetNamedNum ("weapons"))); + + if (menuActive) + { + VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 92, windowHeight - 131, + CA_CacheLump (CA_GetNamedNum ("menu"))); + VI_DrawMaskedPicToBuffer ((windowWidth>>1) - 92 + 26, + windowHeight - 131 + 25 + (menuValue*18), + CA_CacheLump (CA_GetNamedNum ("binky"))); + } // if + + + //myTime = timecount - myTime; + + RF_BlitView (); + + } +} + + +/* +================ += += ActionHook += += This routine is called by the refresh if actionflag is set, allowing += time consuming functions (like loading something from disk) to be performed += outside an the PlayerCommand function. += +================ +*/ + +void ActionHook (void) +{ + actionflag = 0; +} + + +/* +================ += += LoadNewMap += +================ +*/ + +void LoadNewMap (void) +{ + int lump; + doorobj_t *door_p; + scaleobj_t *sprite_p; + + lump = CA_GetNamedNum("map"); + CA_ReadLump (lump,floorpic); + CA_ReadLump (lump+1,ceilingpic); + CA_ReadLump (lump+2,northwall); + CA_ReadLump (lump+3,westwall); + CA_ReadLump (lump+4,ceilingheight); + CA_ReadLump (lump+5,floorheight); + CA_ReadLump (lump+6,northbottom); + CA_ReadLump (lump+7,westbottom); + CA_ReadLump (lump+8,mapflags); + CA_ReadLump (lump+9,mapsprites); + + // initialize to default in case not placed in mapsprites + playerx = (3*64+32)*FRACUNIT; + playery = (3*64+32)*FRACUNIT; + playerz = 32*FRACUNIT; + playerangle = 64; // face north to start + + ActivateSpritesFromMap(); +} + +/* +================ += += main += +================ +*/ + +void main(int argc, char *argv[]) +{ + int i; +// +// start up the library +// + //player_keys |= RED_KEY | YELLOW_KEY | GREEN_KEY | BLUE_KEY; + CA_InitFile ("TODD3D.TOD"); + + VI_Init(); + VI_FillPalette (0,0,0); + + VI_DrawPic (0,0,CA_CacheLump (CA_GetNamedNum ("playscreen"))); + VI_FadeIn (0,255,CA_CacheLump(CA_GetNamedNum ("palette")),16); + + INT_Setup (); + RF_Startup (); + RF_SetActionHook (ActionHook); + +// +// init the game +// + LoadNewMap (); + + +// +// run the game +// + PlayLoop (); +} diff --git a/TODD3D.EXE b/TODD3D.EXE new file mode 100644 index 0000000000000000000000000000000000000000..08f4ac7a9d2ffbe999840b0fb91245319898f904 GIT binary patch literal 275578 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 literal 0 HcmV?d00001 diff --git a/TODD3D.MAP b/TODD3D.MAP new file mode 100644 index 0000000000000000000000000000000000000000..f1e4a3630dd8a4815c1755de2781cad909832ff3 GIT binary patch literal 33008 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 literal 0 HcmV?d00001 diff --git a/TODD3D.TOD b/TODD3D.TOD new file mode 100644 index 0000000000000000000000000000000000000000..d0dc423ceaf3f47c4f082d8590802ace83597cd2 GIT binary patch literal 413183 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 z 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

+j_MJMfn`n^*&J!sceD+l=#6AbX#O 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%0A@S{5j8Zs1 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 + process_p->tiley=viewtiley; + process_p->mapspot=(viewtiley<<6)+viewtilex; + process_p->xmin=0; + process_p->xmax=windowWidth-1; + entry_p=process_p+1; + memset(entrycount,0,MAPCOLS*MAPROWS*4); + entrycounter=1; + while (process_pmapspot==-1) // entry has been merged + { + process_p++; + continue; + } + + /* check for mergeable entries */ + if (entrycount[process_p->mapspot]>process_p->counter) // mergeable tile + for (nextprocess_p=process_p+1;nextprocess_pmapspot==process_p->mapspot) + { + if (nextprocess_p->xmin==process_p->xmax+1) process_p->xmax=nextprocess_p->xmax; + else if (nextprocess_p->xmax==process_p->xmin-1) process_p->xmin=nextprocess_p->xmin; + else // bad merge! + MS_Error("Bad tile event combination:\n" + " nextprocess_p=%d process_p=%d\n" + " nextprocess_p->xmin=%d nextprocess_p->xmax=%d\n" + " process_p->xmin=%d process_p->xmax=%d\n", + (int)nextprocess_p,(int)process_p, + nextprocess_p->xmin,nextprocess_p->xmax, + process_p->xmin,process_p->xmax); + entrycount[nextprocess_p->mapspot]=0; + nextprocess_p->mapspot=-1; + } + + /* check for a dublicate entry */ + if (entrymap[process_p->mapspot]==frameon) goto end; + + entrymap[process_p->mapspot]=frameon; + RenderTileWalls(process_p); + RenderTileEnds(); +end: + process_p++; + } + } \ No newline at end of file