diff -u -b ../tmp/zangband-2.7.2/src/cmd4.c zangband-2.7.2_patched/src/cmd4.c --- ../tmp/zangband-2.7.2/src/cmd4.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/cmd4.c 2003-01-15 02:05:29.000000000 -0500 @@ -790,7 +790,7 @@ "Birth Options", "Artificial Intelligence Options", "Testing Options", - "EXTRA Options V1.10" + "EXTRA Options 1.10/Branding 1.8" }; /* @@ -1182,7 +1182,7 @@ {"Birth Options", NULL, do_cmd_options_aux, MN_ACTIVE | MN_SELECT | MN_CLEAR}, {"Artificial Intelligence Options", NULL, do_cmd_options_aux, MN_ACTIVE | MN_SELECT | MN_CLEAR}, {"Testing Options", NULL, do_cmd_options_aux, MN_ACTIVE | MN_SELECT | MN_CLEAR}, - {"EXTRA Options V1.10", NULL, do_cmd_options_aux, MN_ACTIVE | MN_SELECT | MN_CLEAR}, + {"EXTRA Options 1.10/Branding 1.8", NULL, do_cmd_options_aux, MN_ACTIVE | MN_SELECT | MN_CLEAR}, MENU_SEPERATOR, {"Cheating Options", NULL, do_cmd_options_cheat, MN_ACTIVE | MN_SELECT | MN_CLEAR}, {"Base Delay Factor", NULL, do_cmd_options_delay, MN_ACTIVE | MN_SELECT}, diff -u -b ../tmp/zangband-2.7.2/src/cmd6.c zangband-2.7.2_patched/src/cmd6.c --- ../tmp/zangband-2.7.2/src/cmd6.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/cmd6.c 2003-01-15 02:49:33.000000000 -0500 @@ -14,6 +14,249 @@ #include "script.h" +/* hack for extra scrolls (avoids script kiddy stuff) */ +static int read_extra_scrolls(object_type *o_ptr) +{ + int ident; + + ident = FALSE; + + /* Analyze the scroll */ + switch (o_ptr->sval) + { + case SV_SCROLL_BRAND_ACID: + { + brand_weapon(5); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_ELEC: + { + brand_weapon(6); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_FIRE: + { + brand_weapon(7); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_COLD: + { + brand_weapon(8); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_POIS: + { + brand_weapon(9); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_CHAOTIC: + { + brand_weapon(10); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_ATTACKS: + { + brand_weapon(11); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_BLESSED: + { + brand_weapon(12); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_ANIMAL: + { + brand_weapon(13); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_EVIL: + { + brand_weapon(14); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_UNDEAD: + { + brand_weapon(15); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_DEMON: + { + brand_weapon(16); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_ORC: + { + brand_weapon(17); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_TROLL: + { + brand_weapon(18); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_GIANT: + { + brand_weapon(19); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_STAR_DRAGON: + { + brand_weapon(20); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_VAMPIRIC: + { + brand_weapon(21); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_SLAYING: + { + brand_weapon(22); + ident = TRUE; + break; + } + case SV_SCROLL_BRAND_ANIMAL: + { + brand_weapon(23); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_EVIL: + { + brand_weapon(24); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_UNDEAD: + { + brand_weapon(25); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_DEMON: + { + brand_weapon(26); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_ORC: + { + brand_weapon(27); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_TROLL: + { + brand_weapon(28); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_GIANT: + { + brand_weapon(29); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_DRAGON: + { + brand_weapon(30); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_SHARPNESS: + { + brand_weapon(31); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_EARTHQUAKES: + { + brand_weapon(32); + ident = TRUE; + break; + } + + case SV_SCROLL_BRAND_DIGGING: + { + brand_weapon(33); + ident = TRUE; + break; + } + + case SV_SCROLL_IDENTIFY_PACK: + { + identify_pack(); + msgf("Your posessions have been identified."); + ident = TRUE; + break; + } + + case SV_SCROLL_DIMENSION_DOOR: + { + msgf("You open a dimensional gate. Choose a destination."); + dimension_door(); + ident = TRUE; + break; + } + + case SV_SCROLL_STONE_SKIN: + { + (void)set_shield(p_ptr->shield + rand_range(30, 50)); + ident = TRUE; + break; + } + + default: + { + ident = FALSE; + } + } + return ident; +} + /* * This file includes code for eating food, drinking potions, * reading scrolls, aiming wands, using staffs, zapping rods, @@ -288,8 +531,21 @@ /* Not identified yet */ ident = FALSE; + /* used up */ + used_up = FALSE; + + /* hack to avoid script kiddy stuff */ + ident = read_extra_scrolls(o_ptr); + + if (!ident) + { /* Read the scroll */ used_up = use_object(o_ptr, &ident); + } + else + { + used_up = TRUE; + } /* Hack - the scroll may already be destroyed by its effect */ if (o_ptr->k_idx) @@ -947,7 +1203,6 @@ } } - /* Combine / Reorder the pack (later) */ p_ptr->notice |= (PN_COMBINE | PN_REORDER); diff -u -b ../tmp/zangband-2.7.2/src/defines.h zangband-2.7.2_patched/src/defines.h --- ../tmp/zangband-2.7.2/src/defines.h 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/defines.h 2003-01-15 02:02:20.000000000 -0500 @@ -2244,6 +2244,41 @@ #define SV_SCROLL_CHAOS 50 #define SV_SCROLL_RUMOR 51 #define SV_SCROLL_ARTIFACT 52 +/* extra branding scrolls */ +#define SV_SCROLL_BRAND_ACID 53 +#define SV_SCROLL_BRAND_ELEC 54 +#define SV_SCROLL_BRAND_FIRE 55 +#define SV_SCROLL_BRAND_COLD 56 +#define SV_SCROLL_BRAND_POIS 57 +#define SV_SCROLL_BRAND_CHAOTIC 58 +#define SV_SCROLL_BRAND_ATTACKS 59 +#define SV_SCROLL_BRAND_BLESSED 60 +#define SV_SCROLL_BRAND_STAR_ANIMAL 61 +#define SV_SCROLL_BRAND_STAR_EVIL 62 +#define SV_SCROLL_BRAND_STAR_UNDEAD 63 +#define SV_SCROLL_BRAND_STAR_DEMON 64 +#define SV_SCROLL_BRAND_STAR_ORC 65 +#define SV_SCROLL_BRAND_STAR_TROLL 66 +#define SV_SCROLL_BRAND_STAR_GIANT 67 +#define SV_SCROLL_BRAND_STAR_DRAGON 68 +#define SV_SCROLL_BRAND_VAMPIRIC 69 +#define SV_SCROLL_BRAND_SLAYING 70 +#define SV_SCROLL_BRAND_ANIMAL 71 +#define SV_SCROLL_BRAND_EVIL 72 +#define SV_SCROLL_BRAND_UNDEAD 73 +#define SV_SCROLL_BRAND_DEMON 74 +#define SV_SCROLL_BRAND_ORC 75 +#define SV_SCROLL_BRAND_TROLL 76 +#define SV_SCROLL_BRAND_GIANT 77 +#define SV_SCROLL_BRAND_DRAGON 78 +#define SV_SCROLL_BRAND_SHARPNESS 79 +#define SV_SCROLL_BRAND_EARTHQUAKES 80 +#define SV_SCROLL_BRAND_DIGGING 81 +/* extra non-branding scrolls */ +#define SV_SCROLL_IDENTIFY_PACK 82 +#define SV_SCROLL_DIMENSION_DOOR 83 +#define SV_SCROLL_STONE_SKIN 84 +/* unused */ /* The "sval" codes for TV_POTION */ #define SV_POTION_WATER 0 @@ -3812,8 +3847,8 @@ #define silly_monsters p_ptr->birth[17] #define ironman_nightmare p_ptr->birth[18] #define ironman_deep_quests p_ptr->birth[19] -/* {TRUE, 0, NULL, "Number 212" }, p_ptr->birth[20] */ - /* {TRUE, 0, NULL, "Number 213" }, p_ptr->birth[21] */ +#define upto_ego_branding p_ptr->birth[20] +#define upto_crafted_branding p_ptr->birth[21] #define speed_monk p_ptr->birth[22] #define confu_resis_chaos_war p_ptr->birth[23] #define never_confu_chaos_war p_ptr->birth[24] diff -u -b ../tmp/zangband-2.7.2/src/externs.h zangband-2.7.2_patched/src/externs.h --- ../tmp/zangband-2.7.2/src/externs.h 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/externs.h 2003-01-15 02:02:20.000000000 -0500 @@ -190,6 +190,7 @@ extern cptr *macro__act; extern bool *macro__cmd; extern char *macro__buf; +extern cptr *quark__str; extern option_type option_info[OPT_MAX]; extern u32b window_flag[ANGBAND_TERM_MAX]; extern u32b window_mask[ANGBAND_TERM_MAX]; diff -u -b ../tmp/zangband-2.7.2/src/files.c zangband-2.7.2_patched/src/files.c --- ../tmp/zangband-2.7.2/src/files.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/files.c 2003-01-15 02:39:58.000000000 -0500 @@ -2817,7 +2817,7 @@ fprintf(fff, "\n You possess munchkinish power over death."); - fprintf(fff, "\n\n [EXTRA Options Patch 1.10]\n"); + fprintf(fff, "\n\n [EXTRA Options 1.10/Branding 1.8]\n"); if (birth_mutation) fprintf(fff, "\n Birth Mutation: ON"); @@ -2843,6 +2843,12 @@ if (free_artifact) fprintf(fff, "\n Free Artifact: ON"); + if(upto_ego_branding) + fprintf(fff, "\n Limit branding to Ego level only: ON"); + + if(upto_crafted_branding) + fprintf(fff, "\n Limit branding to (Crafted) level: ON"); + /* Show (known) flags grid */ if (full) { diff -u -b ../tmp/zangband-2.7.2/src/flavor.c zangband-2.7.2_patched/src/flavor.c --- ../tmp/zangband-2.7.2/src/flavor.c 2002-11-24 08:24:30.000000000 -0500 +++ zangband-2.7.2_patched/src/flavor.c 2003-01-15 02:02:20.000000000 -0500 @@ -22,7 +22,7 @@ #define MAX_METALS 39 /* Used with wands/rods (min 30/29) */ #define MAX_COLORS 66 /* Used with potions (min 64) */ #define MAX_SHROOM 20 /* Used with mushrooms (min 20) */ -#define MAX_TITLES 54 /* Used with scrolls (min 48) */ +#define MAX_TITLES 86 /* Used with scrolls (min 48) */ #define MAX_SYLLABLES 164 /* Used with scrolls (see below) */ Common subdirectories: ../tmp/zangband-2.7.2/src/lua and zangband-2.7.2_patched/src/lua diff -u -b ../tmp/zangband-2.7.2/src/object2.c zangband-2.7.2_patched/src/object2.c --- ../tmp/zangband-2.7.2/src/object2.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/object2.c 2003-01-15 02:02:20.000000000 -0500 @@ -2232,9 +2232,9 @@ o_ptr->flags3 |= e_ptr->flags3; /* Save all the known ego flags */ - o_ptr->kn_flags1 = e_ptr->flags1; - o_ptr->kn_flags2 = e_ptr->flags2; - o_ptr->kn_flags3 = e_ptr->flags3; + o_ptr->kn_flags1 |= e_ptr->flags1; + o_ptr->kn_flags2 |= e_ptr->flags2; + o_ptr->kn_flags3 |= e_ptr->flags3; /* Save the inscription */ o_ptr->xtra_name = quark_add(e_name + e_ptr->name); diff -u -b ../tmp/zangband-2.7.2/src/spells3.c zangband-2.7.2_patched/src/spells3.c --- ../tmp/zangband-2.7.2/src/spells3.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/spells3.c 2003-01-15 03:37:02.000000000 -0500 @@ -1029,11 +1029,22 @@ object_type *o_ptr = &p_ptr->equipment[EQUIP_WIELD]; byte ego = 0; + bool raise_pval = FALSE; + bool scroll_brand = TRUE; + bool fail_brand = FALSE; + bool add_brand_name = FALSE; + + /* it is a mistake if this initial value is not changed for brand_name*/ + char *brand_name = "Mistake"; + char *crafted = "(Crafted)"; + char *customized = "(Customized)"; + char *slaying = "of *SLAYING*"; - /* you can never modify artifacts / ego-items */ + /* you can never modify artifacts */ /* you can never modify cursed items */ /* TY: You _can_ modify broken items (if you're silly enough) */ - if (o_ptr->k_idx && !o_ptr->xtra_name && !cursed_p(o_ptr)) + if (o_ptr->k_idx && !(o_ptr->flags3 & TR3_INSTA_ART) && + !cursed_p(o_ptr)) { cptr act; @@ -1041,54 +1052,288 @@ char o_name[256]; object_desc(o_name, o_ptr, FALSE, 0, 256); + /* is ego, crafted, or customized */ + if (o_ptr->xtra_name) + { + if(streq(quark__str[o_ptr->xtra_name], crafted)) + { + if(upto_crafted_branding) + { + fail_brand = TRUE; + } + else + { + /* crafted --> customized */ + brand_name = customized; + add_brand_name = TRUE; + } + } + else if(streq(quark__str[o_ptr->xtra_name], customized)) + { + /* can not increase branding beyond customized */ + fail_brand = TRUE; + } + else + { + if(upto_ego_branding) + { + fail_brand = TRUE; + } + else + { + /* ego --> crafted */ + brand_name = crafted; + add_brand_name = TRUE; + } + } + } + switch (brand_type) { - case 1: + case 33: + act = "can Dig"; + ego = EGO_DIGGING; + raise_pval = TRUE; + break; + case 32: + act = "becomes an earth shaker"; + if (o_ptr->tval != TV_SWORD) { - act = "is engulfed in raw Logrus!"; - ego = EGO_CHAOTIC; + ego = EGO_EARTHQUAKES; + } + else + { + act = "strangely becomes Sharper"; + ego = EGO_SHARPNESS; + } break; + case 31: + act = "becomes Sharper"; + if (o_ptr->tval != TV_SWORD) + { + act = "strangely becomes an earth shaker"; + ego = EGO_EARTHQUAKES; } - case 2: + else { - act = "is coated with poison."; - ego = EGO_BRAND_POIS; + ego = EGO_SHARPNESS; + } + break; + case 30: + act = "can Slay Dragon"; + ego = EGO_SLAY_DRAGON; break; + case 29: + act = "can Slay Giant"; + ego = EGO_SLAY_GIANT; + break; + case 28: + act = "can Slay Troll"; + ego = EGO_SLAY_TROLL; + break; + case 27: + act = "can Slay Orc"; + ego = EGO_SLAY_ORC; + break; + case 26: + act = "can Slay DEMON"; + ego = EGO_SLAY_DEMON; + break; + case 25: + act = "can Slay Undead"; + ego = EGO_SLAY_UNDEAD; + break; + case 24: + act = "can Slay Evil"; + ego = EGO_SLAY_EVIL; + break; + case 23: + act = "can Slay Animals"; + ego = EGO_SLAY_ANIMAL; + break; + case 22: + if (!fail_brand) + { + act = "becomes a *SLAYING* weapon"; + /* supercharge the weapon */ + o_ptr->ds += (o_ptr->ds * randint1(2 + + o_ptr->dd)) / (2 + o_ptr->dd); + /* try to increase the number of hit die */ + if(randint1((o_ptr->ds + o_ptr->dd) / 2) == 1) + { + o_ptr->dd += 1; } - case 3: + msgf("Your %s %s", o_name, act); + /* give the weapon a good extra augmentation */ + o_ptr->to_h += randint1(6); + o_ptr->to_d += randint1(6); + (void)enchant(o_ptr, rand_range(4, 6), ENCH_TOHIT | ENCH_TODAM); + if (add_brand_name) { + o_ptr->xtra_name =quark_add(brand_name); + } + else + { + /* pseudo-ego type *SLAYING* */ + brand_name = slaying; + o_ptr->xtra_name =quark_add(brand_name); + } + return; + } + break; + case 21: act = "thirsts for blood!"; ego = EGO_VAMPIRIC; break; + case 20: + act = "can *SLAY* Dragon"; + ego = EGO_KILL_DRAGON; + raise_pval = TRUE; + break; + case 19: + act = "can *SLAY* Giant"; + ego = EGO_KILL_GIANT; + raise_pval = TRUE; + break; + case 18: + act = "can *SLAY* Troll"; + ego = EGO_KILL_TROLL; + raise_pval = TRUE; + break; + case 17: + act = "can *SLAY* Orc"; + ego = EGO_KILL_ORC; + raise_pval = TRUE; + break; + case 16: + act = "can *SLAY* DEMON"; + ego = EGO_KILL_DEMON; + raise_pval = TRUE; + break; + case 15: + act = "can *SLAY* Undead"; + ego = EGO_KILL_UNDEAD; + raise_pval = TRUE; + break; + case 14: + act = "can *SLAY* Evil"; + ego = EGO_KILL_EVIL; + raise_pval = TRUE; + break; + case 13: + act = "can *SLAY* Animals"; + ego = EGO_KILL_ANIMAL; + raise_pval = TRUE; + break; + case 12: + act = "is blessed by the gods"; + ego = EGO_BLESS_BLADE; + raise_pval = TRUE; + break; + case 11: + act = "moves faster"; + if (!(o_ptr->flags1 & TR1_BLOWS) && (!fail_brand)) + { + if(streq(brand_name, customized)) + { + o_ptr->pval = 2; } - case 4: + else if(streq(brand_name, crafted)) { + o_ptr->pval = 1; + } + else + { + o_ptr->pval = 0; + } + } + ego = EGO_ATTACKS; + raise_pval = TRUE; + break; + case 10: + act = "is engulfed in raw Logrus!"; + ego = EGO_CHAOTIC; + break; + case 9: + act = "is coated with poison"; + ego = EGO_BRAND_POIS; + break; + case 8: + act = "glows deep, icy blue!"; + ego = EGO_BRAND_COLD; + break; + case 7: + act = "is covered in a fiery shield!"; + ego = EGO_BRAND_FIRE; + break; + case 6: + act = "Vibrates!"; + ego = EGO_BRAND_ELEC; + break; + case 5: + act = "becomes acidic"; + ego = EGO_BRAND_ACID; + break; + case 4: act = "seems very unstable now."; ego = EGO_TRUMP; o_ptr->pval = randint1(2); o_ptr->activate = ACT_TELEPORT_1; + scroll_brand = FALSE; + break; + case 3: + act = "thirsts for blood!"; + ego = EGO_VAMPIRIC; + scroll_brand = FALSE; + break; + case 2: + act = "is coated with poison."; + ego = EGO_BRAND_POIS; + scroll_brand = FALSE; + break; + case 1: + act = "is engulfed in raw Logrus!"; + ego = EGO_CHAOTIC; + scroll_brand = FALSE; break; - } - default: { if (randint0(100) < 25) { act = "is covered in a fiery shield!"; ego = EGO_BRAND_FIRE; + scroll_brand = FALSE; } else { act = "glows deep, icy blue!"; ego = EGO_BRAND_COLD; + scroll_brand = FALSE; } } } + if (fail_brand) + { + if (flush_failure) flush(); + + msgf("The Branding failed."); + + chg_virtue(V_ENCHANT, -2); + + return; + } + else + { msgf("Your %s %s", o_name, act); + /* force an increase to to_hit and to_damage */ + o_ptr->to_h += randint1(3); + o_ptr->to_d += randint1(3); + (void)enchant(o_ptr, rand_range(4, 6), ENCH_TOHIT | ENCH_TODAM); } + } else { if (flush_failure) flush(); @@ -1096,6 +1341,26 @@ msgf("The Branding failed."); chg_virtue(V_ENCHANT, -2); + + return; + } + + /* pvals CAN be raised, but it gets harder and it is capped */ + if (raise_pval) + { + if (o_ptr->pval < 3) + { + o_ptr->pval += 1; + } + else + { + if ((randint1(o_ptr->pval * o_ptr->pval) == 1) && + (o_ptr->pval < 6)) + { + o_ptr->pval += 1; + } + + } } if (ego) @@ -1104,9 +1369,22 @@ s32b cost = o_ptr->cost; add_ego_flags(o_ptr, ego); - + if (scroll_brand) + { + /* scroll branded weapons gain value when branded */ + cost *= 1.5; + o_ptr->cost += cost; + } + else + { o_ptr->cost = cost; } + + if (add_brand_name) + { + o_ptr->xtra_name = quark_add(brand_name); + } + } } diff -u -b ../tmp/zangband-2.7.2/src/tables.c zangband-2.7.2_patched/src/tables.c --- ../tmp/zangband-2.7.2/src/tables.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/tables.c 2003-01-15 02:02:21.000000000 -0500 @@ -6766,8 +6766,8 @@ {TRUE, 6, "silly_monsters", "Allow silly monsters" }, {FALSE, 6, "ironman_nightmare", "Nightmare mode (this isn't even remotely fair!)" }, {FALSE, 6, "ironman_deep_quests", "Random quests are very difficult" }, - {TRUE, 0, NULL, "Number 212" }, - {TRUE, 0, NULL, "Number 213" }, + {FALSE, 9, "upto_ego_branding", "BIRTH - LIMIT branding to Ego level only" }, + {FALSE, 9, "upto_crafted_branding", "BIRTH - LIMIT branding to (Crafted) level only" }, {FALSE, 9, "speed_monk", "BIRTH - Monks get racial AND class speed bonuses" }, {FALSE, 9, "confu_resis_chaos_war", "BIRTH - Chaos Warriors gain confusion resistance" }, {FALSE, 9, "never_confu_chaos_war", "BIRTH - Chaos Warriors are never confused" }, Common subdirectories: ../tmp/zangband-2.7.2/src/tk and zangband-2.7.2_patched/src/tk diff -u -b ../tmp/zangband-2.7.2/src/util.c zangband-2.7.2_patched/src/util.c --- ../tmp/zangband-2.7.2/src/util.c 2002-09-12 16:22:44.000000000 -0400 +++ zangband-2.7.2_patched/src/util.c 2003-01-15 02:02:21.000000000 -0500 @@ -1739,11 +1739,6 @@ static s16b quark__num; /* - * The pointers to the quarks [QUARK_MAX] - */ -static cptr *quark__str; - -/* * Refcount for Quarks */ static u16b *quark__ref; diff -u -b ../tmp/zangband-2.7.2/src/variable.c zangband-2.7.2_patched/src/variable.c --- ../tmp/zangband-2.7.2/src/variable.c 2003-01-15 01:39:53.000000000 -0500 +++ zangband-2.7.2_patched/src/variable.c 2003-01-15 02:02:21.000000000 -0500 @@ -252,6 +252,12 @@ /* + * The pointers to the quarks [QUARK_MAX] + */ +cptr *quark__str; + + +/* * The array of window options */ u32b window_flag[ANGBAND_TERM_MAX];