Donate Share

zzt++

File Release Notes and Changelog

Release Name: zzt0-8-47

Notes: ===== ZZT++ ===== By WeP Copyright 1998, 1999, 2000, 2001, 2005 published under GNU General Public License wep@planetzztpp.com http://www.planetzztpp.com June 17 2005 Notes ===== You can read the changes made to this version in the "changelo.txt" file, which is part of the source code as well. Thanks to JacobH, creator of ZIG for supplying the necessary file format information. Where can I get zzt++? ====================== The latest executables, sources and documentation should be available from http://www.planetzztpp.com or http://sourceforge.net. Installing ZZT++ ================ Simply unzip zzt.zip in any directory and place a .zzt file in the same directory. Run zzt++ using the following command line: zzt [-options] [file[.zzt]] The following options are available: r=report on the contents to a file called REPORT.TXT, overwriting the previous file. s=report including screen information. WARNING: report files with screen information can generate very large files! w=write the output to OUTWORLD.ZZT These options can be used in any order, so -rws is equal to -wrs. Supplying a file name is optional. If no filename is given, zzt++ will open the file TOWN.ZZT. You may omit the .zzt extension. zzt++ will add it for you if no extension was given. Running zzt++ as file format analyser ===================================== Use the following command to analyse the file CWARS10.ZZT: zzt -rs CWARS10 You can open REPORT.TXT using an editor like wordpad, notepad+ or vi to read zzt++'s output. Since report files can become very large, notepad will often be unable to open your report file. Remember that each time you create a REPORT.TXT file, the previous version (if any) is overwritten automatically by zzt++. If you want to leave out the screen information use: zzt -r CWARS10 Compiling ZZT++ =============== It has never been my intention to give support for compiling ZZT++. Not on Borland, nor on other compilers. However, I have added support for compiling ZZT++ under MS Visual 1.52. In adapting the source code from Borland to MSVC I found that most of the effort goes into setting up the compiler environment, instead of adapting te source code. So, if you want to compile ZZT++ with your compiler, make sure the source is adapted to your specific compiler first (e.g.: DJGPP does not support the 'far' keyword and uses a Dos Protected Mode Interface for just about everything). Next, make sure your compiler is set up like this: COMPILER SETTINGS -make sure you are using a 16-bit compiler. -create an MS-DOS executable. -use the 8086/8088 instruction set. -set the compiler to generate a LARGE or HUGE memory model. -tell it to use single byte alignment, or no alignment at all. -tell the compiler that the stack segment (SS) should never equal the data segment (DS). -do not enable run-time pointer checking. This causes bogus errors on some compilers. -set the far data threshold to 32767. -tell the linker to use a 8192 byte stack size. -tell the linker to pack the code segment using 8192 as pack size. CODE CHANGES MADE TO COMPLY WITH MSVC -change the call to MK_FP to _MK_FP for making far pointers. -also add underscores to calls to int86(), dosgetvect(), dossetvect(), enable() and disable(). -change the REGS union to _REGS. -add newlines to the end of each header file and change their filenames to .hpp instead of .h KNOWN ISSUES -on MSVC the ISR routine causes a stack overflow if a function is called within it. -conio.h is incomplete for MSVC causing the need for extra clrscr() and gotoxy() functions, unless GRAPH.H is used. -every call to a GRAPH.H function causes ZZT++ to switch automatically to full screen mode. Compiling zzt++ on a PII300 with 96MB will take only a few seconds and generate an executable with debugging information smaller than 200Kb on a DOS/Windows platform. If debugging information is left out, the executable should drop dramatically in size. I will probably be adding some support for other compilers in the future, but please do not ask me to create a version for your specific compiler. Converting a source and setting up a compiler is painstaking work and would take too much time out of the development of zzt++. If you want to be able to compile zzt++ on your compiler, please give it a try yourself. You are free to do so as long as you heed the GNU license agreement. I am always available for help of course and will gladly accept any conversion you may have accomplished. WeP wep@planetzztpp.com http://www.planetzztpp.com


Changes: zzt++ changelog changes in version 0.8.47 + Moved main game loop from MM to GE. + Caught Ctrl-Break to do nothing. + Changed keyboard code to bios calls to prevent ^C from being shown when ctrl-brk keys are hit. + Added object movement. Also add code base for handling all creature movement. + Added basic decision making code based on creature's intelligence. + Added pause game and game over code. + Zzt++ now shows the title screen and starts playing after "P" in main menu. Starts game in paused mode. + Created BM.Screen2Board(), which writes the current board to memory using run length encoding. + Changed BM.MovePlayer() to include a direction. MovePlayer now also does a BM.Try(). changes to version 0.8.45 + ope.cpp: ScootRight():have to move characters in entire canvas one position to the right. should we reserve all characters on a line anyway? we could also let walk go to p_used in stead of the end of line. + ope.cpp: Removed dynamic memory allocation. Using fixed array of maximum text length possible: Canvas[MAXTEXTLEN]. This has no effect on the previous problem of course. Stupid to think that.... + ope.cpp: Changed ScootLeft() and ScootRight() to affect entire text. Can't insert lines when on EOL characters. + ope.hpp: changed the dotted line. it shown char 250 instead of 7 for the dots. DottedLine[] was removed as class member and made into a global constant. + ope.cpp: "enter" is required twice at the end of a line. doesn't reach code the first time. Special key anyway?? + ope.cpp: Fixed handling of setting and resetting special key indicator. special wan't being reset for some key presses. + ope.cpp: Fixed ScootLeft() to clear the last character in the text. For every call a new copy of the last character would be left, usually eol. It kept introducing ghost lines the cursor couldn't reach. + ope.cpp: Fixed ScootRight() to work at RO_TEXT_X as well. + ope.cpp: Going RIGHT at EOL now moves to the next line, unless at the end of text. Going RIGHT at the end of text now goes to the beginning of the last line in every conceivable case. + ope.hpp: Added ABS2REL macro in order to translate from absolute to relative coordinates based on LB_TEXT_X. Also added REL2ABS to perform the opposite function. Created Horizontal and Vertical versions of both. + ope.cpp: Applied translation macros where needed. + ope.cpp: Fixed LEFT and RIGHT functions to work as they should: go to previous or or next line and rotate on first and left lines. + ope.cpp: Added insert toggle. Doesn't show on the screen yet. Should be a message to MM. + zconst.hpp: Added constants INSERT, DELETE and CTRL_Y (line delete) for ope. + ope.cpp: Wrote code for character delete. + ope.cpp: Fixed DrawCanvas() and ClearToEndOfLine() to make edit window moveable and relative to LB_TEXT_X and LB_TEXT_Y. + ope.cpp: Fixed DrawCanvas() to draw the top DottedLine correctly. + ope.cpp: Wrote separate PerformBackspace() function because BACKSPACE and CTRL_Y perform the same function. Now they share some code. Fixed a lingering bug too: BACKSPACE forgot to decrease p_used after deleting the character. RIGHT stumbled over it because it checks p_edpos<p_used to check if we're at the end of the text. + ope.cpp: Wrote CTRL_Y code. Needs screen cursor placement code. + ope.hpp: Added comments + ope.cpp: Added cursor positioning code and prepared code for regular use. + zzt.cpp: Added comments. + mm.cpp: Called OPE in MM.mainloop(), edit function. + bm.cpp: Changes EnableCursor() in order to adjust cursor type. Needs work. + bm.cpp: EnableCursor and DisableCursor work correctly. Disabling the cursor using INT0x10, function 0x01 only works in full screen ms-dos mode. + bm.cpp: Added EnableCursorBig() and ..Small(), removed EnableCursor() + ope.cpp: Calling EnableCursorBig() now. + zzt.cpp: Calling EnableCursorSmall() now. + ope.hpp Added several constants for drawing the border + zzt.cpp Moved music calls in main() to "demomus.txt" and #included it + ope.hpp Moved the absolute position of the drawing area 2 positions to the right! Can't believe I missed that. + ope.cpp Changed ClearToEndOfLine() to compensate for the move to the right. + ope.hpp/ope.cpp Added rudimentary code for adding a title to the edit window.