home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 7 Games / 07-Games.zip / spl173.zip / spl.hlp (.txt) < prev    next >
OS/2 Help File  |  1994-07-27  |  20KB  |  582 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction and Copyright ΓòÉΓòÉΓòÉ
  3.  
  4.                                 Spellbook Manager
  5.                                      spl.exe
  6.  
  7.                                   Version 1.73
  8.  
  9.                                      7/26/94
  10.  
  11.                   Copyright (C) 1993, 1994 John-Marc Chandonia
  12.  
  13. For suggested enhancements and bug reports, please mail 
  14. chandoni@husc8.harvard.edu or write: 
  15.  
  16.                                John-Marc Chandonia
  17.                              7 Divinity Avenue, #121
  18.                               Cambridge, Ma. 02138
  19.  
  20. This is spl, a program for handling spells and spellbooks from various fantasy 
  21. role-playing (FRP) games.  It can handle both mage and priest spells for TSR's 
  22. AD&D (a trademark of TSR, Inc) game, and can easily be expanded to handle other 
  23. systems as well. In addition to possibly being useful to FRP players and GM's, 
  24. the source may be useful to OS/2 2.x programmers learning about containers, 
  25. MLE's, and PM programming in general. 
  26.  
  27. This program is free software; you can redistribute it and/or modify it under 
  28. the terms of the GNU General Public License as published by the Free Software 
  29. Foundation; either version 2 of the License, or (at your option) any later 
  30. version. 
  31.  
  32. This program is distributed in the hope that it will be useful, but WITHOUT ANY 
  33. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
  34. PARTICULAR PURPOSE.  See the GNU General Public License for more details. 
  35.  
  36. You should have received a copy of the GNU General Public License along with 
  37. this program; if not, write to the Free Software Foundation, Inc., 675 Mass 
  38. Ave, Cambridge, MA 02139, USA. 
  39.  
  40.  
  41. ΓòÉΓòÉΓòÉ 2. Release Notes ΓòÉΓòÉΓòÉ
  42.  
  43. Version 1.73: 
  44.  
  45. Several ways of sorting books are supported. 
  46.  
  47. You can choose which fields to show in details view. 
  48.  
  49. Spellbooks can be loaded from the command line. 
  50.  
  51. Multiple books can be loaded simultaneously. 
  52.  
  53. Version 1.5: 
  54.  
  55. Spell searching, sorting, loading, and saving are now multithreaded, allowing 
  56. you to work on other books or adjust the window while the program is working. 
  57.  
  58. Multiple views of the spellbook are supported. 
  59.  
  60. Large or small icons are supported. 
  61.  
  62. On-line help is available by pressing F1 or using the help menu/buttons. 
  63.  
  64. Spellbook position, view, icon size, and details bar position are saved in 
  65. EA's/INI files. 
  66.  
  67. Spell descriptions are loaded in as required, using less memory. 
  68.  
  69. Spells in the master list are saved in a "quick reference" file for faster 
  70. loading. 
  71.  
  72. Version 1.0: 
  73.  
  74. This is the first initial release of the program. 
  75.  
  76. Known bugs are listed in the file bugs.txt. If you find any more, please either 
  77. fix them yourself and send me the patch (sure!) or report the bug to the 
  78. address given above. 
  79.  
  80. I will put all future versions of this program on the OS/2 anonymous ftp site, 
  81. currently ftp-os2.cdrom.com. If you distribute any enhanced versions of this 
  82. program, please do the same.  Also, please comment any changes in the source 
  83. code, and describe them in the file changes.txt. 
  84.  
  85.  
  86. ΓòÉΓòÉΓòÉ 3. Using the program ΓòÉΓòÉΓòÉ
  87.  
  88. This section describes how to install and use the program. 
  89.  
  90. Topics include: 
  91.  
  92.   Installation
  93.   Master spell list
  94.   Icon mapping
  95.   Spellbook window
  96.   Spell window
  97.  
  98.  
  99. ΓòÉΓòÉΓòÉ 3.1. Installation ΓòÉΓòÉΓòÉ
  100.  
  101. Unzip the zip file in some directory.  If you want, create a program object for 
  102. the file spl.exe, If you don't plan to look at the source code, you can delete 
  103. the src directory... this is not needed to run the program. 
  104.  
  105. Check out the file splbook.all, which contains pointers to all spellbooks which 
  106. will comprise the master spell list. 
  107.  
  108. Also, look at the file splicon.res which contains a mapping of spell spheres 
  109. and schools to icons. 
  110.  
  111. You already know how to view the docs; to run the program, just run spl.exe. 
  112.  
  113.  
  114. ΓòÉΓòÉΓòÉ 3.2. Master spell list ΓòÉΓòÉΓòÉ
  115.  
  116. The file splbook.all contains a list of spellbooks which make up the master 
  117. spell list. These spellbooks should contain full spell listings.  This is 
  118. important because other spellbooks are by default saved only as lists of 
  119. titles, which are then looked up in the master spell list as the spells are 
  120. loaded in. 
  121.  
  122. The format of this file is just a list of other files.  To place a comment in 
  123. this list, start the line with a semicolon. 
  124.  
  125.  
  126. ΓòÉΓòÉΓòÉ 3.3. Icon mapping ΓòÉΓòÉΓòÉ
  127.  
  128. The file splicon.def contains a mapping of spell schools and spheres to icons. 
  129.  
  130. Spells in a book are shown with an icon which corresponds to their sphere (if 
  131. given) or school (if no sphere is available).  This file contains a list of 
  132. text strings to look for in the schools and spheres, and a list of icons they 
  133. correspond to.  If a spell matches two or more text strings, the first one 
  134. found is used. 
  135.  
  136. The format of the file is a text string (containing no spaces), then a space, 
  137. then the path name of an icon file to use.  Comments are allowed, as long as 
  138. they begin with a semicolon. 
  139.  
  140.  
  141. ΓòÉΓòÉΓòÉ 3.4. Spellbook window ΓòÉΓòÉΓòÉ
  142.  
  143. This is a window which represents a spellbook; it contains icons representing 
  144. spells in the book.  This window has can be viewed several ways, representing 
  145. spells as single icons, or more or less detailed views. 
  146.  
  147. Several menus can be activated from this window: 
  148.  
  149.   File Menu
  150.   Spell Menu
  151.   Book Menu
  152.   Views Menu
  153.   Help Menu
  154.  
  155. Also, pop-up context menus are available, either by clicking on the background 
  156. of the spellbook, or on individual spells.  The default OS/2 method for 
  157. bringing up these menus uses the right mouse button: 
  158.  
  159.   Spell Context Menu
  160.   Spellbook Context Menu
  161.  
  162.  
  163. ΓòÉΓòÉΓòÉ 3.4.1. File menu ΓòÉΓòÉΓòÉ
  164.  
  165. Options on this menu include: 
  166.  
  167.   New Spellbook
  168.   Load Spellbook
  169.   Save Spellbook
  170.   Save Full Spellbook
  171.   Close Spellbook
  172.   Quit Program
  173.  
  174.  
  175. ΓòÉΓòÉΓòÉ 3.4.1.1. New Spellbook ΓòÉΓòÉΓòÉ
  176.  
  177. This will create a new (empty) spellbook window that you can drag and drop 
  178. spells into. 
  179.  
  180.  
  181. ΓòÉΓòÉΓòÉ 3.4.1.2. Load Spellbook ΓòÉΓòÉΓòÉ
  182.  
  183. This will load in a spellbook from a file.  This file can contain a full 
  184. spellbook, including the text of the spells, or it can be a list of spell names 
  185. to be looked up in the master list. Spells listed by name in a spellbook but 
  186. not found in the master list will be ignored (you will be warned if there are 
  187. any). 
  188.  
  189.  
  190. ΓòÉΓòÉΓòÉ 3.4.1.3. Save Spellbook ΓòÉΓòÉΓòÉ
  191.  
  192. This will save the names of spells in the current spellbook to disk. 
  193.  
  194.  
  195. ΓòÉΓòÉΓòÉ 3.4.1.4. Save Full Spellbook ΓòÉΓòÉΓòÉ
  196.  
  197. This will save the complete spellbook (names and descriptions) to disk.  If the 
  198. spells are in the master list, you might want to just save the names instead. 
  199.  
  200.  
  201. ΓòÉΓòÉΓòÉ 3.4.1.5. Close Spellbook ΓòÉΓòÉΓòÉ
  202.  
  203. This will close the current spellbook.  If it has been changed but not saved, 
  204. you will be asked if you want to save it first. This option is equivalent to 
  205. double-clicking on the box in the upper left corner of the book, or selecting 
  206. "Window -> Close" 
  207.  
  208. Closing the last spellbook will end the program.  You can close the master 
  209. spell index if you want (once another window is open), as the spells themselves 
  210. are still in memory. 
  211.  
  212.  
  213. ΓòÉΓòÉΓòÉ 3.4.1.6. Quit Program ΓòÉΓòÉΓòÉ
  214.  
  215. This will close all open spellbooks and exit the program.  If any spellbooks 
  216. have been changed but not saved, a window will pop up asking if you really want 
  217. to do this or not. 
  218.  
  219.  
  220. ΓòÉΓòÉΓòÉ 3.4.2. Spell menu ΓòÉΓòÉΓòÉ
  221.  
  222. These options are only available if the book is writeable (i.e. not the master 
  223. spell list). 
  224.  
  225. This menu includes: 
  226.  
  227.   Add New Spell
  228.   Delete Spell
  229.  
  230.  
  231. ΓòÉΓòÉΓòÉ 3.4.2.1. Add New Spell ΓòÉΓòÉΓòÉ
  232.  
  233. This will add a new spell to the book; it isn't really useful in this version. 
  234.  
  235.  
  236. ΓòÉΓòÉΓòÉ 3.4.2.2. Delete Spell ΓòÉΓòÉΓòÉ
  237.  
  238. This will remove selected spells from the book. 
  239.  
  240.  
  241. ΓòÉΓòÉΓòÉ 3.4.3. Book menu ΓòÉΓòÉΓòÉ
  242.  
  243. This menu includes: 
  244.  
  245.   Master List
  246.   Find Subset
  247.   Sort Spellbook
  248.   Rename Spellbook
  249.  
  250.  
  251. ΓòÉΓòÉΓòÉ 3.4.3.1. Master list ΓòÉΓòÉΓòÉ
  252.  
  253. This will bring up a window with all spells in the master list.  You can drag 
  254. and drop these into spellbooks, or look at them directly. 
  255.  
  256.  
  257. ΓòÉΓòÉΓòÉ 3.4.3.2. Find subset ΓòÉΓòÉΓòÉ
  258.  
  259. This brings up a dialog which allows you to search through the spells in the 
  260. book (window) and bring up a new book (window) which contains the results of 
  261. the search. 
  262.  
  263. Spells can be sorted on several fields, with the results OR'ed or AND'ed 
  264. together depending on the buttons in the lower left corner of the dialog.  Case 
  265. sensitivity is also optional.  Most of the fields just want you to enter text. 
  266.  
  267. The "level" field allows you to enter a number for the spell level, such as "5" 
  268. to select all 5th level spells.  It also allows you to enter things like ">5" 
  269. or "<5" to select all spells higher or lower than a certain level. 
  270.  
  271. The "description" field allows you to enter several lines of text instead of 
  272. only one.  All lines entered are searched for in the spell descriptions, with 
  273. the results OR'ed or AND'ed together according to the button pushed on the 
  274. right. 
  275.  
  276. Searches go faster with case sensitivity enabled.  Also, searches go faster if 
  277. the program doesn't have to search through entire spell descriptions... limit 
  278. using the other fields if possible. 
  279.  
  280. Searching is multithreaded, so you can work on other books while the search is 
  281. in progress. 
  282.  
  283.  
  284. ΓòÉΓòÉΓòÉ 3.4.3.3. Sort spellbook ΓòÉΓòÉΓòÉ
  285.  
  286. This sorts the spellbook by several criteria: 
  287.  
  288.   Caster Type
  289.   Name of Spell
  290.   Spell level
  291.   School/Sphere
  292.   Components
  293.   Save
  294.  
  295. Sorting is multithreaded, although usually quick. 
  296.  
  297.  
  298. ΓòÉΓòÉΓòÉ 3.4.3.4. Rename spellbook ΓòÉΓòÉΓòÉ
  299.  
  300. This renames the spellbook... it does not change the actual name of the file 
  301. the spellbook is saved in, only the name which appears at the top of the 
  302. window. 
  303.  
  304.  
  305. ΓòÉΓòÉΓòÉ 3.4.4. Views Menu ΓòÉΓòÉΓòÉ
  306.  
  307. The Views menu includes: 
  308.  
  309.   Icon View
  310.   Name View
  311.   Text View
  312.   Details View
  313.   Details Fields
  314.   Small Icons
  315.   Large Icons
  316.  
  317. Spellbooks remember which view they are in, whether to use large or small 
  318. icons, and the bar position in details view.  This is stored in extended 
  319. attributes for saved spellbooks, or in the INI file for the master spell window 
  320. and new windows. 
  321.  
  322.  
  323. ΓòÉΓòÉΓòÉ 3.4.4.1. Icon View ΓòÉΓòÉΓòÉ
  324.  
  325. This shows each spell as an icon with the name of the spell underneath. 
  326.  
  327.  
  328. ΓòÉΓòÉΓòÉ 3.4.4.2. Name View ΓòÉΓòÉΓòÉ
  329.  
  330. This shows each spell on a single line with the icon to the left and the name 
  331. to the right. 
  332.  
  333.  
  334. ΓòÉΓòÉΓòÉ 3.4.4.3. Text View ΓòÉΓòÉΓòÉ
  335.  
  336. This just shows the spell names, one per line. 
  337.  
  338.  
  339. ΓòÉΓòÉΓòÉ 3.4.4.4. Details View ΓòÉΓòÉΓòÉ
  340.  
  341. This shows the spell and some other relevant details such as spell level, and 
  342. the school or sphere of the spell. 
  343.  
  344. Which fields actually get shown are controlled by the boxes checked off in the 
  345. Details Fields dialog. 
  346.  
  347.  
  348. ΓòÉΓòÉΓòÉ 3.4.4.5. Details Fields ΓòÉΓòÉΓòÉ
  349.  
  350. This dialog allows you to display which details of the spell get shown. 
  351. Choices include: 
  352.  
  353.   Spell Level
  354.   Casting Time
  355.   Range
  356.   Duration
  357.   Area of Effect
  358.   Sphere or School
  359.   Components
  360.   Saving Throw
  361.  
  362.  
  363. ΓòÉΓòÉΓòÉ 3.4.4.6. Small Icons ΓòÉΓòÉΓòÉ
  364.  
  365. This uses small icons in all views that show icons; the icons lose detail, but 
  366. allow more spells on the screen. 
  367.  
  368.  
  369. ΓòÉΓòÉΓòÉ 3.4.4.7. Large Icons ΓòÉΓòÉΓòÉ
  370.  
  371. This tells the book to use large icons to represent spells; these are as 
  372. detailed as other icons in your system. 
  373.  
  374.  
  375. ΓòÉΓòÉΓòÉ 3.4.5. Help Menu ΓòÉΓòÉΓòÉ
  376.  
  377. This includes: 
  378.  
  379.   Help Index
  380.   General Help
  381.   Using Help
  382.   About
  383.  
  384.  
  385. ΓòÉΓòÉΓòÉ 3.4.5.1. Help Index ΓòÉΓòÉΓòÉ
  386.  
  387. This will display an index of help topics from within the program. 
  388.  
  389.  
  390. ΓòÉΓòÉΓòÉ 3.4.5.2. General Help ΓòÉΓòÉΓòÉ
  391.  
  392. This will bring up general help on using this program, like pushing F1. 
  393.  
  394.  
  395. ΓòÉΓòÉΓòÉ 3.4.5.3. Using Help ΓòÉΓòÉΓòÉ
  396.  
  397. This will bring up help on how OS/2's help system works. 
  398.  
  399.  
  400. ΓòÉΓòÉΓòÉ 3.4.5.4. About ΓòÉΓòÉΓòÉ
  401.  
  402. This will briefly describe the program. 
  403.  
  404.  
  405. ΓòÉΓòÉΓòÉ 3.4.6. Spell Context Menu ΓòÉΓòÉΓòÉ
  406.  
  407. This menu will pop up if you right-click on a spell in the spellbook. 
  408.  
  409. The menu includes: 
  410.  
  411.   Show spell
  412.   Delete spell
  413.  
  414.  
  415. ΓòÉΓòÉΓòÉ 3.4.7. Spellbook Context Menu ΓòÉΓòÉΓòÉ
  416.  
  417. This menu will pop up if you right-click in the spellbook window somewhere in 
  418. the blank (empty) part of the window. 
  419.  
  420. The menu includes the options found in the Views and Book menus. 
  421.  
  422.  
  423. ΓòÉΓòÉΓòÉ 3.4.8. Drag and Drop ΓòÉΓòÉΓòÉ
  424.  
  425. To copy spells between windows (spellbooks), drag them with the right mouse 
  426. button.  You can select several spells with the left button.  Dragging can also 
  427. be used to reposition spells within a window, if the window is not read-only. 
  428.  
  429.  
  430. ΓòÉΓòÉΓòÉ 3.5. Spell Window ΓòÉΓòÉΓòÉ
  431.  
  432. To bring up a spell in detail, double click on it, or select "show spell" from 
  433. the context menu.  This brings up a window which is pretty self-explanatory. 
  434. Use ALT-N or ALT-P as a shortcut to go to the next or previous spell in the 
  435. book. 
  436.  
  437. You can copy text from spells onto the clipboard using the usual methods.  You 
  438. can even edit and change spells, although this doesn't work very well and will 
  439. probably require you to go in and fix the saved text file with an editor. 
  440.  
  441. Any file you change and save is saved in the file splbook.chg. 
  442.  
  443.  
  444. ΓòÉΓòÉΓòÉ 4. Source information ΓòÉΓòÉΓòÉ
  445.  
  446. The source is written in C++ for the IBM C++ compiler; it will probably work 
  447. with other compilers, although I haven't tested this.  You need a C++ compiler 
  448. and a resource compiler to compile the dialogs and menus. 
  449.  
  450. The makefile is compatible with GNU's make. 
  451.  
  452. You need an IPF compiler (IPFC) to compile the documentation. 
  453.  
  454. Click one of the following for more information: 
  455.  
  456.   general.cpp
  457.   splbook.cpp
  458.   spl.cpp
  459.   bookwin.cpp
  460.   splobj.cpp
  461.   splwin.cpp
  462.   spldlgs.cpp
  463.   splhelp.cpp
  464.   ea.cpp
  465.  
  466.  
  467. ΓòÉΓòÉΓòÉ 4.1. general.cpp ΓòÉΓòÉΓòÉ
  468.  
  469. This file contains some generally useful functions which are called from the 
  470. rest of the code.  None are PM specific. 
  471.  
  472. fatal, error, warning - these are 3 error functions indicating various levels 
  473. of severity.  These are pretty useless in a PM program. 
  474.  
  475. chkcalloc - this is a memory allocation function, which is pretty useless for a 
  476. C++ program.  (Just use "new" instead) 
  477.  
  478. upstr, lowstr - these are 2 string functions to capitalize and uncapitalize a 
  479. string... these are rarely found in C libraries, so they're included here. 
  480. These actually get used in the code. 
  481.  
  482. fgets_no_cr - this works just like fgets(), but removes the \n at the end of 
  483. the string. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ 4.2. splbook.cpp ΓòÉΓòÉΓòÉ
  487.  
  488. These files contain the C++ classes for handling spells and spellbooks, and 
  489. contain no OS/2-specific or PM-specific information.  Routines for reading and 
  490. writing spells out of files are given. 
  491.  
  492. Note that the classes are set up to allow later addition of psionic disciplines 
  493. as a subclass of the general spell.  This is why the "magespell" class contains 
  494. things like "school" and so forth that you would normally associate with all 
  495. spells. 
  496.  
  497. If you want to change this program to change the format of how spells are read 
  498. in and out (for example to use this program with another FRP system) this is 
  499. the file to change. It is also the most portable to other systems besides OS/2. 
  500.  
  501.  
  502. ΓòÉΓòÉΓòÉ 4.3. spl.cpp ΓòÉΓòÉΓòÉ
  503.  
  504. This file contains some initialization and general use (PM) functions which get 
  505. called from classes. 
  506.  
  507. Routines to load in the icon file, look up an icon for a given spell, load in 
  508. the INI file, enable/disable or check/uncheck menu items, and printf() to a 
  509. window's title bar are in here. 
  510.  
  511.  
  512. ΓòÉΓòÉΓòÉ 4.4. bookwin.cpp ΓòÉΓòÉΓòÉ
  513.  
  514. bookwindow is a class which refers to the spellbook windows which appear on the 
  515. screen.  The class definition appears in bookwin.hpp. 
  516.  
  517. Bookwindow functions which are handled in the main thread are included in 
  518. bookwin.cpp. 
  519.  
  520.  
  521. ΓòÉΓòÉΓòÉ 4.5. splobj.cpp ΓòÉΓòÉΓòÉ
  522.  
  523. The object thread for bookwindows is handled here.  Both the object window 
  524. function and the main() thread which creates it are defined here. 
  525.  
  526. Bookwindow functions that are handled in the object thread are in this file. 
  527.  
  528.  
  529. ΓòÉΓòÉΓòÉ 4.6. splwin.cpp ΓòÉΓòÉΓòÉ
  530.  
  531. spellwindow is a class which refers to the spell windows which show the 
  532. detailed descriptions of spells.  The class definition appears in splwin.hpp. 
  533.  
  534. Spell windows are not multithreaded; all the code required to handle them is in 
  535. splwin.cpp. 
  536.  
  537.  
  538. ΓòÉΓòÉΓòÉ 4.7. spldlgs.cpp ΓòÉΓòÉΓòÉ
  539.  
  540. These files contain all the code required for processing the dialog boxes used 
  541. in the program. 
  542.  
  543.  
  544. ΓòÉΓòÉΓòÉ 4.8. splhelp.cpp ΓòÉΓòÉΓòÉ
  545.  
  546. These files contain code for on-line help. 
  547.  
  548.  
  549. ΓòÉΓòÉΓòÉ 4.9. ea.cpp ΓòÉΓòÉΓòÉ
  550.  
  551. These files contain OS/2 specific file handling code. 
  552.  
  553. query_last_write is a function for finding out the last time a file has been 
  554. written to. 
  555.  
  556. getEA is a function for reading an given EA out of a file. It may contain bugs; 
  557. I have little coherent information on OS/2's EAs. 
  558.  
  559. putEA is a function for writing data to a named EA of a file.  It works, but 
  560. could stand to be debugged also. 
  561.  
  562.  
  563. ΓòÉΓòÉΓòÉ 5. Planned enhancements ΓòÉΓòÉΓòÉ
  564.  
  565. These are things I plan to add to the program in the future, both in order to 
  566. give it more functionality, and in order to learn more about PM programming 
  567. myself.  If you would like to help me out with any of these, please let me know 
  568. what you're working on. 
  569.  
  570. Spellbooks within spellbooks... should make the master list much easier to 
  571. view. 
  572.  
  573. Allow users to edit/save spells in a way that actually works. 
  574.  
  575. Allow users to change default names of things; save in .ini file. (Also find 
  576. .ini file if not in same directory) 
  577.  
  578. More drag and drop stuff... should allow you to drop a text file into a spell 
  579. window and read it in.  Also, should allow you to drag a spell onto the printer 
  580. and print it.  Drag and drop icon assignment would also be cool. 
  581.  
  582.