Systems Documentation

6/29/98- Kangband has changed so much that Systems Docs no longer really apply. I will leave this information for anyone else curious about how to start developing a variant and where they may have to look to change items. In the future, this page will deal with specific additions such as how I implemented plots or how pets work.

 

This file has not been completely updated for Kangband 282c or 282d

 

System's Documentation for Kangband

All changes will be marked in the source code with "-KMW-" inside a comment.

Source code changes:

- Removed load1.c from makefiles, externs.h, and references from save.c Renamed load2.c to load.c. Changed all appropriate references. Load1.c was deleted. This was done to save space on the executable and since kangband is not backwards compatible.

- Changed Makefile. Thise file should be changed per hardware configuration. It has nothing to do with this angband variation with the exception that bldg.c/bldg.o has to be included. I have included this file in all the makefile.xxx files in this package. The file h-config.h would also be changed based on hardware configuration.

- config.h: Currently, wizard commands and spoiler generation are enabled. Also, this variant will NOT parse old savefiles and as such, that option is disabled.

- defines.h: Added constants for the town, kobold race, illusionist class, increased f_idx size (for building doors), and poison & venom attributes. Added in terrain flags and adjusted routines for line of sight, plain floor, etc. to take terrains into account. Also added various quest flags.

- externs.h: Added illusionist info to spell flags and names, added arena monster list definition, monster type in critical (for rogue hits), brand ammo function, high class/race functions, monster saves, fear spells, quest initialization function, building command, AND COMMENTED OUT USLEEP as it would not compile with it.

- h-config.h: Uncommented the DOS line for compilation.

- types.h: Added illusionist info, and town variables for player. Also added definitions for vaults and quests.

- birth.c: Added kobold race, town information, illusionist info, initialize rewards and quests.

- bldg.c: A NEW file which contains code to handle all building commands.

- cave.c: Modified the is_quest function to work with the new structure of quests.

- cmd1.c: Added monster sleep status to critical hit so rogues can always get critical when its asleep, added poison brand, building door code. Added code for terrains and quests.

- cmd2.c: enter building code. Also some code for terrains and quests.

- cmd4.c: replaced "angband" with "kangband". Added a function to check status of quests (Cntl-Q).

- cmd5.c: Added all the code for illusionist spells. I used the same area as the mage and only used if statements where the spell did differ. Also added brand ammo spell, brand weapon spell, to include poison/venom brand per GW-Angband.

- cmd6.c: brand bolts function merged with mage spell.

- dungeon.c: added illusionist info, reset rewards once/day, don't generate monsters in arena, enter building entry point, alter 'G' to visit tower or temple for spells. Disallow magic commands if in arena. Inserted command to check quest.

- files.c: added "kangband", new player fields, high scores to show if died in the arena, new show_highclass and race_legend functions for use in the town.

- generate.c: code to build the town and stores added, code to build arena. Also added in wilderness generation and quest placement.

- init1.c: code for poison brand, vault initialization, and quest initialization.

- init2.c: code to add illusion books to store. Also some code for vault and quest initialization.

- load2.c: code to load player town variables & handle old files. (kang282b)

- melee2.c: monster code to make them non-helpless when stunned. Handled monster movement/attack over the various terrains.

- monster1.c: added confusion and sleep flags to correct spot.

- monster2.c: added monster saving throw function.

- object1.c: added illusion books, poison brand info.

- object2.c: poison brand info, *minor* variable change, venom weapon info, arrows/bolts good unless damaged, rod sorting code, illusion spell damage information. Handle objects dropping into shallow terrain.

- save.c: new player variables saved.

- spells1.c: added illusionist book code, chaos spell change, monster saving throws included.

- spells2.c: enchant_table_dam added, poison brand info, illusion book info, limit enchant to natural weapon damage, new fear spells,

- store.c: added kobold code, illusion book code, rod sorting routines, can't enter house until awarded it by the Lord of Castle.

- tables.c: altered dexterity table slightly, strength/weight table, blows table, added arena monster number list, kobold shop keeper, class tables to include illusionist (only human), illusionist class itself, illusion books and spells and titles.

- variable.c: arena_monster list definition, quest list.

- wizard1.c: illusion book code, poison brand, "kangband".

- wizard2.c: minor flag change, illusion book code, wiz command to mark all squares for debugging, and to complete quests.

- xtra1.c: sleep/fear added to monster health bar, illusion book code, kobold poison resistance, high level warriors fear resistance.

- xtra2.c: arena exiting code, building door code, quest completion.

=========================================================

The following files were NOT altered from Angband 2.8.2:

angband.h a-mac-h.pch main-emx.c main.c

h-basic.h a-win-h.pch main-gcu.c melee1.c

h-define.h main-ibm.c util.c

h-system.h a-mac-h.c main-mac.c z-form.c

h-type.h main-sla.c z-rand.c

z-form.h cmd3.c main-vme.c z-term.c

z-rand.h load1.c main-win.c z-util.c

z-term.h main-acn.c main-x11.c z-virt.c

z-util.h main-ami.c main-xaw.c

z-virt.h main-cap.c main-xxx.c

=========================================================

 

Changes in LIB:

 

In the EDIT folder:

a_info.txt: Rilia now has poison brand, Arunruth has cold brand, Ulmo now has correct weight (7->10lbs)

e_info.txt: "of Venom" weapon added

f_info.txt: building doors added, terrains added, quest features added

k_info.txt: illusionist books added

r_info.txt: the elemental spirits (with the exception of "named" ones) are not evil, not as many monsters can resist sleep and confusion.

v_info.txt: added quest levels. Also added many vaults from Zangband 2.0.6.

q_info.txt: NEW file. Contains quest details.

 

Main Page | To-Do List | Documentation | Download Area | Links