[comp.sys.apple] Wizardy Info.

Bruce_Kahn@maytag.ceo.dg.COM.UUCP (11/24/87)

 
  Here is that detailed info for you Wizardry people.  Sorry for the 
delay but our net died. 
 
The source for this info is an article in the August '83 issue of InCider.  The
following information was digested and organized by me.  The information is
derived from examining the supplied program.  The article is worth reading if
you have the time (but dont bother to type in the program, there are plenty of
commercially avaiable Wiz editors out there).  The information is not quite
accurate for Wiz III as different encoding/storage scheme is used (for more
info/items and the like).  I am assuming that you will be working on a BACKUP
of the character disk, not your masters.  There are 2 reasons, I have not
played with the info on a master and neither should you.  Make 2 backups, just
in case.

  Each character takes up 208 bytes of disk space.  Each character is given an
entire sector for their info.  This leaves 48 bytes for future use (probably
for Wiz III and the promised yet never delivered other scenarios).  Not all of
the locations in the sector are addressed as they are Pascal Pointers (2
bytes).  If there are some locations that are not expalined then that is
because they are not described in the article.  If there are any corrections to
this then let me know.  The following is "map" of what information is stored in
the sector and where each player is stored:

Player #      Track     Sector  (Note: All values in Decimal, not Hex)
   1            0         0
   2            0         13
   3            0         11
   4            0         9
   5            0         7
   6            0         5
   7            0         3
   8            0         1
   9            1         0
   10           1         13
   11           1         11
   12           1         9
   13           1         7
   14           1         5
   15           1         3
   16           1         1
   17           2         0
   18           2         13
   19           2         11
   20           2         9


Sector Information, offset from start of sector:

 Offset       Description/Field
--------      -----------------------------------------------------------------
001-015       Character Name
017-031       Password for character
032           0 = in castle, else = ? (relates to 200-205)
034           Race
036           Class of character
038-039       Age in weeks (38 = low byte, 39 = hi byte)
040-041       Pointer to/status of character (0 = alive, else = 
                   dead/transfered)
042           Orientation of character
044-047       Characteristic bytes.  Decoded by:
                   Strength = [44] - int([44]/32)*32
                   IQ       = int([44]/32) + ([45] - int([45]/4)*4)*8
                   Piety    = int([45]/4) - 32 * int([45]/128)
                   Vitality = [46] - int([46]/32)*32
                   Agility  = int([46]/32) + ([47] - int([47]/4)*4)*8
                   Luck     = int([47]/4) - 32 * int([47]/128)
              Maximum values for each is 18;  To achieve maximum values use
                   the following values correspondingly: 82,74,82,74
052-055       Gold (052 = lowest byte, 055 = highest byte)
058           Item count;  number of items a character has.
060-116       Cursed item flag part 1; Indexed in increments of 8;  value
                   of 0 = uncursed; value other than 0 = cursed
062-118       Cursed item flag part 2; Indexed in increments of 8;  value
                   of 0 = uncursed; value other than 0 = cursed
064-120       Identified/equiped item flag (relates to 058); Indexed in
                   increments of 8; value of 1 = identified/item owned; value
                   other than 1 = item not owned/not identified
066           Item number 1
074           Item number 2
082           Item number 3
090           Item number 4
098           Item number 5
106           Item number 6
114           Item number 7
122           Item number 8
124-127       Experience (124 = lowest byte, 127 = highest byte)
130-131       Level of character (double checking 132-133??)
132-133       Level of character (132 = low byte, 133 = hi byte)
134           Present hit points
136           Total hit points
138-140       Used in conjunction with Mage spells.  Usage ??
140-144       Used in conjunction with Priest spells.  Usage ??
146-158       Array of available Mage spells.  Index by increments of 2 (ie:
                   [146] = # level 1 spells, [148] = # level 2...)
160-174       Array of available Priest spells.  Index by increments of 2 also.
176           Armor class
177           If [177] > 0 then armor class = armor class - 256
200-201       Distance of character to the East
202-203       Distance of character to the North
204-205       Level where character is now

Race information:
Value    Description
----     ---------------------
 1       Human
 2       Elf
 3       Dwarf
 4       Gnome
 5       Hobbit

Class information:
Value    Description
-----    -----------------------
 1       Fighter
 2       Mage
 3       Priest
 4       Thief
 5       Bishop
 6       Samurai
 7       Lord
 8       Ninja

Status information:
Value    Description
----     ------------------------
 1       Ok
 2       Afraid
 3       Asleep
 4       Paralyzed
 5       Stoned
 6       Dead
 7       Ashes
 8       Lost Forever

Orientation information:
Value    Description
----     ---------------
 1       Good
 2       Neutral
 3       Evil

Items information:
  As there are over 134 items in all (for all 3 scenarios) I wont type all the
information in now.  If people want it I can arrange to get it to them.  Why
not play around with the values and see what you get.