-+-+-+-+-+-+-+-+ START OF PART 51 -+-+-+-+-+-+-+-+ XCommand summary: (@ is optional count, `7E is direction, `5ER redraws, ESC a Vborts) X a Aim and fire a wand `7C @ B `7E Bash item or monster X b Browse a book `7C C Character description X c `7E Close a door `7C @ D `7E Disarm a trap/ches Vt X d Drop an item `7C E Eat some food X e Equipment list `7C F Fill lamp with oil X f Fire/Throw an item `7C G Gain new magic spells X i Inventory list `7C L Locate with map X@ j `7E Jam a door with spike `7C M Map shown reduced si Vze X l `7E Look given direction `7C @ R Rest (Count or *=res Vtore) X m Magic spell casting `7C S Search Mode X@ o `7E Open a door/chest `7C @ T `7E Tunnel in a direct Vion X p Pray `7C V View scoreboard X q Quaff a potion `7C = Set options X r Read a scroll `7C ? Type this page X@ s Search for traps or doors `7C `7B Inscribe an object X t Take off an item `7C @ - Move without pickup X u Use a staff `7C . `7E Run in direction X v Version info and credits `7C / Identify a character X w Wear/Wield an item `7C CTRL-K Quit the game X x Exchange weapon `7C @ CTRL-P Repeat the last messag Ve X < Go up an up-staircase `7C CTRL-X Save character and qui Vt X > Go down a down-staircase `7C @ `7E for movement XDirections: 7 8 9 X 4 5 6 `5B5 is stay`5D X 1 2 3 X XTo give a count to a command, type a '#', followed by the digits. A count Xof 0 defaults to a count of 99. Counts only work with some commands, and Xwill be terminated by the same things that end a rest or a run. In Xparticular, typing any character during the execution of a counted command Xwill terminate the command. To count a movement command, hit space after Xthe number, and you will be prompted for the command, which may be a digit. XCounted searches or tunnels will terminate on success, or if you are Xattacked. A count with control-P will specify the number of previous message Vs Xto display. X XControl-R will redraw the screen whenever it is input, not only at command Xlevel. Control commands may be entered with a single key stroke, or with two Xkey strokes by typing `5E and then a letter. X XType ESCAPE to abort the look command at any point. X XSome commands will prompt for a spell, or an inventory item. Selection is Xby an alphabetic character - entering a capital causes a desription to be Xprinted, and the selection may be aborted. X XTyping `60R*' will make you rest until both your mana and your hp reach thei Vr Xmaximum values. $ CALL UNPACK ORIGCMDS.HLP;1 121704707 $ create 'f' X: - Map area. X`5EA - Remove Curse and Cure all maladies. X`5EB - Print random objects sample. X`5ED - Down/Up n levels. X`5EE - Change character. X`5EF - Delete monsters. X`5EG - Allocate treasures. X`5EH - Wizard Help. X`5EI - Identify. X`5EJ - Gain experience. X`5EL - Wizard light. X`5ET - Teleport player. X`5EU - Summon monster. X`5EW - Wizard password on/off. X@ - Create any object *CAN CAUSE FATAL ERROR* $ CALL UNPACK OWIZCMDS.HLP;1 1444027523 $ create 'f' X/* source/player.c: player specific variable definitions X X Copyright (c) 1989-92 James E. Wilson, Robert A. Koeneke X X This software may be copied and distributed for educational, research, an Vd X not for profit purposes provided that this copyright and statement are X included in all such copies. */ X X#include "config.h" X#include "constant.h" X#include "types.h" X X/* Player record for most player related info */ Xplayer_type py; X/* player location in dungeon */ Xint16 char_row; Xint16 char_col; X/* calculated base hp values for player at each level, store them so that X drain life + restore life does not affect hit points */ Xint16u player_hp`5BMAX_PLAYER_LEVEL`5D; X X/* Class titles for different levels`09`09`09`09*/ X#ifdef MACGAME Xchar *(*player_title)`5BMAX_PLAYER_LEVEL`5D; X#else Xchar *player_title`5BMAX_CLASS`5D`5BMAX_PLAYER_LEVEL`5D = `7B X`09/* Warrior`09 */ X`7B"Rookie","Private","Soldier","Mercenary","Veteran(1st)","Veteran(2nd)", X"Veteran(3rd)","Warrior(1st)","Warrior(2nd)","Warrior(3rd)","Warrior(4th)", X"Swordsman-1","Swordsman-2","Swordsman-3","Hero","Swashbuckler","Myrmidon", X"Champion-1","Champion-2","Champion-3","Superhero","Knight","Superior Knt", X"Gallant Knt","Knt Errant","Guardian Knt","Baron","Duke","Lord (1st)", X"Lord (2nd)","Lord (3rd)","Lord (4th)","Lord (5th)","Lord (6th)","Lord (7th) V", X"Lord (8th)","Lord (9th)","Lord Gallant","Lord Keeper","Lord Noble"`7D, X`09/* Mage`09`09 */ X`7B"Novice","Apprentice","Trickster-1","Trickster-2","Trickster-3","Cabalist V-1", X"Cabalist-2","Cabalist-3","Visionist","Phantasmist","Shadowist","Spellbinder V", X"Illusionist","Evoker (1st)","Evoker (2nd)","Evoker (3rd)","Evoker (4th)", X"Conjurer","Theurgist","Thaumaturge","Magician","Enchanter","Warlock", X"Sorcerer","Necromancer","Mage (1st)","Mage (2nd)","Mage (3rd)","Mage (4th)" V, X"Mage (5th)","Wizard (1st)","Wizard (2nd)","Wizard (3rd)","Wizard (4th)", X"Wizard (5th)","Wizard (6th)","Wizard (7th)","Wizard (8th)","Wizard (9th)", X"Wizard Lord"`7D, X`09/* Priests`09 */ X`7B"Believer","Acolyte(1st)","Acolyte(2nd)","Acolyte(3rd)","Adept (1st)", X"Adept (2nd)","Adept (3rd)","Priest (1st)","Priest (2nd)","Priest (3rd)", X"Priest (4th)","Priest (5th)","Priest (6th)","Priest (7th)","Priest (8th)", X"Priest (9th)","Curate (1st)","Curate (2nd)","Curate (3rd)","Curate (4th)", X"Curate (5th)","Curate (6th)","Curate (7th)","Curate (8th)","Curate (9th)", X"Canon (1st)","Canon (2nd)","Canon (3rd)","Canon (4th)","Canon (5th)", X"Low Lama","Lama-1","Lama-2","Lama-3","High Lama","Great Lama","Patriarch", X"High Priest","Great Priest","Noble Priest"`7D, X`09/* Rogues`09 */ X`7B"Vagabond","Footpad","Cutpurse","Robber","Burglar","Filcher","Sharper", X"Magsman","Common Rogue","Rogue (1st)","Rogue (2nd)","Rogue (3rd)", X"Rogue (4th)","Rogue (5th)","Rogue (6th)","Rogue (7th)","Rogue (8th)", X"Rogue (9th)","Master Rogue","Expert Rogue","Senior Rogue","Chief Rogue", X"Prime Rogue","Low Thief","Thief (1st)","Thief (2nd)","Thief (3rd)", X"Thief (4th)","Thief (5th)","Thief (6th)","Thief (7th)","Thief (8th)", X"Thief (9th)","High Thief","Master Thief","Executioner","Low Assassin", X"Assassin","High Assassin","Guildsmaster"`7D, X`09/* Rangers`09 */ X`7B"Runner (1st)","Runner (2nd)","Runner (3rd)","Strider (1st)","Strider (2n Vd)", X"Strider (3rd)","Scout (1st)","Scout (2nd)","Scout (3rd)","Scout (4th)", X"Scout (5th)","Courser (1st)","Courser (2nd)","Courser (3rd)","Courser (4th) V", X"Courser (5th)","Tracker (1st)","Tracker (2nd)","Tracker (3rd)", X"Tracker (4th)","Tracker (5th)","Tracker (6th)","Tracker (7th)", X"Tracker (8th)","Tracker (9th)","Guide (1st)","Guide (2nd)","Guide (3rd)", X"Guide (4th)","Guide (5th)","Guide (6th)","Guide (7th)","Guide (8th)", X"Guide (9th)","Pathfinder-1","Pathfinder-2","Pathfinder-3","Ranger", X"High Ranger","Ranger Lord"`7D, X`09/* Paladins`09 */ X`7B"Gallant","Keeper (1st)","Keeper (2nd)","Keeper (3rd)","Keeper (4th)", X"Keeper (5th)","Keeper (6th)","Keeper (7th)","Keeper (8th)","Keeper (9th)", X"Protector-1","Protector-2","Protector-3","Protector-4","Protector-5", X"Protector-6","Protector-7","Protector-8","Defender-1","Defender-2", X"Defender-3","Defender-4","Defender-5","Defender-6","Defender-7","Defender-8 V", X"Warder (1st)","Warder (2nd)","Warder (3rd)","Warder (4th)","Warder (5th)", X"Warder (6th)","Warder (7th)","Warder (8th)","Warder (9th)","Guardian", X"Chevalier","Justiciar","Paladin","High Lord"`7D X`7D; X#endif X X/* Base experience levels, may be adjusted up for race and/or class*/ Xint32u player_exp`5BMAX_PLAYER_LEVEL`5D = `7B X 10, 25,`0945,`09 70,`09 100,`09 140, 200,`09280, X 380, 500, 650,`09850,`09 1100,`09 1400, 1800, 2300, X 2900, 3600, 4400, 5400,`09 6800,`09 8400, 10200, 12500, X 17500, 25000, 35000L, 50000L, 75000L,`09100000L, 150000L, 200000L V, X 300000L, 400000L, 500000L, 750000L, 1500000L, 2500000L, 5000000L, 10000000L X`7D; X X/*Race`09STR,INT,WIS,DEX,CON,CHR, X`09Ages, heights, and weights (male then female) X`09Racial Bases for: dis,srh,stl,fos,bth,bthb,bsav,hitdie, X`09infra, exp base, choice-classes */ X#ifdef MACGAME Xrace_type *race; X#else Xrace_type race`5BMAX_RACES`5D = `7B X `7B"Human",`09 0, 0,`09 0, 0,`09 0, 0, X 14, 6, 72, 6,180, 25, 66, 4,150, 20, X 0, 0, 0, 0, 0, 0, 0, 10, 0, 100, 0x3F, X `7D, X `7B"Half-Elf", -1, 1,`09 0, 1, -1, 1, X 24, 16, 66, 6,130, 15, 62, 6,100, 10, X 2, 6, 1, -1, -1, 5, 3, 9, 2, 110, 0x3F, X `7D, X `7B"Elf",`09-1, 2,`09 1, 1, -2, 1, X 75, 75, 60, 4,100, 6, 54, 4, 80, 6, X 5, 8, 1, -2, -5, 15, 6, 8, 3, 120, 0x1F, X `7D, X `7B"Halfling", -2, 2,`09 1, 3,`09 1, 1, X 21, 12, 36, 3, 60, 3, 33, 3, 50, 3, X 15, 12, 4, -5,-10, 20, 18, 6, 4, 110, 0x0B, X `7D, X `7B"Gnome",`09-1, 2,`09 0, 2,`09 1, -2, X 50, 40, 42, 3, 90, 6, 39, 3, 75, 3, X 10, 6, 3, -3, -8, 12, 12, 7, 4, 125, 0x0F, X `7D, X `7B"Dwarf",`09 2, -3,`09 1, -2,`09 2, -3, X 35, 15, 48, 3,150, 10, 46, 3,120, 10, X 2, 7, -1, 0, 15, 0, 9, 9, 5, 120, 0x05, X `7D, X `7B"Half-Orc",`09 2, -1,`09 0, 0,`09 1, -4, X 11, 4, 66, 1,150, 5, 62, 1,120, 5, X -3, 0, -1, 3, 12, -5, -3, 10, 3, 110, 0x0D, X `7D, X `7B"Half-Troll",4, -4, -2, -4,`09 3, -6, X 20, 10, 96, 10,255, 50, 84, 8,225, 40, X -5, -1, -2, 5, 20,-10, -8, 12, 3, 120, 0x05, X `7D X `7D; X#endif X X/* Background information`09`09`09`09`09*/ X#ifdef MACGAME Xbackground_type *background; X#else Xbackground_type background`5BMAX_BACKGROUND`5D = `7B X`7B"You are the illegitimate and unacknowledged child ",`09`09 10, 1, 2, 25` V7D, X`7B"You are the illegitimate but acknowledged child ",`09`09 20, 1, 2, 35`7D V, X`7B"You are one of several children ",`09`09`09`09 95, 1, 2, 45`7D, X`7B"You are the first child ",`09`09`09`09`09100, 1, 2, 50`7D, X`7B"of a Serf. ",`09`09`09`09`09`09 40, 2, 3, 65`7D, X`7B"of a Yeoman. ",`09`09`09`09`09`09 65, 2, 3, 80`7D, X`7B"of a Townsman. ",`09`09`09`09`09`09 80, 2, 3, 90`7D, X`7B"of a Guildsman. ",`09`09`09`09`09`09 90, 2, 3,105`7D, X`7B"of a Landed Knight. ",`09`09`09`09`09 96, 2, 3,120`7D, X`7B"of a Titled Noble. ",`09`09`09`09`09 99, 2, 3,130`7D, X`7B"of a Royal Blood Line. ",`09`09`09`09`09100, 2, 3,140`7D, X`7B"You are the black sheep of the family. ",`09`09`09 20, 3,50, 20`7D, X`7B"You are a credit to the family. ",`09`09`09`09 80, 3,50, 55`7D, X`7B"You are a well liked child. ",`09`09`09`09100, 3,50, 60`7D, X`7B"Your mother was a Green-Elf. ",`09`09`09`09 40, 4, 1, 50`7D, X`7B"Your father was a Green-Elf. ",`09`09`09`09 75, 4, 1, 55`7D, X`7B"Your mother was a Grey-Elf. ",`09`09`09`09 90, 4, 1, 55`7D, X`7B"Your father was a Grey-Elf. ",`09`09`09`09 95, 4, 1, 60`7D, X`7B"Your mother was a High-Elf. ",`09`09`09`09 98, 4, 1, 65`7D, X`7B"Your father was a High-Elf. ",`09`09`09`09100, 4, 1, 70`7D, X`7B"You are one of several children ",`09`09`09`09 60, 7, 8, 50`7D, X`7B"You are the only child ",`09`09`09`09`09100, 7, 8, 55`7D, X`7B"of a Green-Elf ",`09`09`09`09`09`09 75, 8, 9, 50`7D, X`7B"of a Grey-Elf ",`09`09`09`09`09`09 95, 8, 9, 55`7D, X`7B"of a High-Elf ",`09`09`09`09`09`09100, 8, 9, 60`7D, X`7B"Ranger. ",`09`09`09`09`09`09`09 40, 9,54, 80`7D, X`7B"Archer. ",`09`09`09`09`09`09`09 70, 9,54, 90`7D, X`7B"Warrior. ",`09`09`09`09`09`09`09 87, 9,54,110`7D, X`7B"Mage. ",`09`09`09`09`09`09`09 95, 9,54,125`7D, X`7B"Prince. ",`09`09`09`09`09`09`09 99, 9,54,140`7D, X`7B"King. ",`09`09`09`09`09`09`09100, 9,54,145`7D, X`7B"You are one of several children of a Halfling ",`09`09 85,10,11, 45`7D, X`7B"You are the only child of a Halfling ",`09`09`09100,10,11, 55`7D, X`7B"Bum. ",`09`09`09`09`09`09`09 20,11, 3, 55`7D, X`7B"Tavern Owner. ",`09`09`09`09`09`09 30,11, 3, 80`7D, X`7B"Miller. ",`09`09`09`09`09`09`09 40,11, 3, 90`7D, X`7B"Home Owner. ",`09`09`09`09`09`09 50,11, 3,100`7D, X`7B"Burglar. ",`09`09`09`09`09`09`09 80,11, 3,110`7D, X`7B"Warrior. ",`09`09`09`09`09`09`09 95,11, 3,115`7D, X`7B"Mage. ",`09`09`09`09`09`09`09 99,11, 3,125`7D, X`7B"Clan Elder. ",`09`09`09`09`09`09100,11, 3,140`7D, X`7B"You are one of several children of a Gnome ",`09`09`09 85,13,14, 45`7D, X`7B"You are the only child of a Gnome ",`09`09`09`09100,13,14, 55`7D, X`7B"Beggar. ",`09`09`09`09`09`09`09 20,14, 3, 55`7D, X`7B"Braggart. ",`09`09`09`09`09`09`09 50,14, 3, 70`7D, X`7B"Prankster. ",`09`09`09`09`09`09 75,14, 3, 85`7D, X`7B"Warrior. ",`09`09`09`09`09`09`09 95,14, 3,100`7D, X`7B"Mage. ",`09`09`09`09`09`09`09100,14, 3,125`7D, X`7B"You are one of two children of a Dwarven ",`09`09`09 25,16,17, 40`7D, X`7B"You are the only child of a Dwarven ",`09`09`09100,16,17, 50`7D, X`7B"Thief. ",`09`09`09`09`09`09`09 10,17,18, 60`7D, X`7B"Prison Guard. ",`09`09`09`09`09`09 25,17,18, 75`7D, X`7B"Miner. ",`09`09`09`09`09`09`09 75,17,18, 90`7D, X`7B"Warrior. ",`09`09`09`09`09`09`09 90,17,18,110`7D, X`7B"Priest. ",`09`09`09`09`09`09`09 99,17,18,130`7D, X`7B"King. ",`09`09`09`09`09`09`09100,17,18,150`7D, X`7B"You are the black sheep of the family. ",`09`09`09 15,18,57, 10`7D, X`7B"You are a credit to the family. ",`09`09`09`09 85,18,57, 50`7D, X`7B"You are a well liked child. ",`09`09`09`09100,18,57, 55`7D, X`7B"Your mother was an Orc, but it is unacknowledged. ",`09`09 25,19,20, 25 V`7D, X`7B"Your father was an Orc, but it is unacknowledged. ",`09`09100,19,20, 25 V`7D, X`7B"You are the adopted child ",`09`09`09`09`09100,20, 2, 50`7D, X`7B"Your mother was a Cave-Troll ",`09`09`09`09 30,22,23, 20`7D, X`7B"Your father was a Cave-Troll ",`09`09`09`09 60,22,23, 25`7D, X`7B"Your mother was a Hill-Troll ",`09`09`09`09 75,22,23, 30`7D, X`7B"Your father was a Hill-Troll ",`09`09`09`09 90,22,23, 35`7D, X`7B"Your mother was a Water-Troll ",`09`09`09`09 95,22,23, 40`7D, X`7B"Your father was a Water-Troll ",`09`09`09`09100,22,23, 45`7D, X`7B"Cook. ",`09`09`09`09`09`09`09 5,23,62, 60`7D, X`7B"Warrior. ",`09`09`09`09`09`09`09 95,23,62, 55`7D, +-+-+-+-+-+-+-+- END OF PART 51 +-+-+-+-+-+-+-+-