Changeset 531
- Timestamp:
- 08/18/07 18:30:19 (1 year ago)
- Files:
-
- trunk/src/defines.h (modified) (6 diffs)
- trunk/src/init1.c (modified) (1 diff)
- trunk/src/load.c (modified) (5 diffs)
- trunk/src/loadsave.c (modified) (4 diffs)
- trunk/src/obj-info.c (modified) (1 diff)
- trunk/src/object1.c (modified) (1 diff)
- trunk/src/object2.c (modified) (23 diffs)
- trunk/src/save.c (modified) (2 diffs)
- trunk/src/spells2.c (modified) (3 diffs)
- trunk/src/store.c (modified) (2 diffs)
- trunk/src/types.h (modified) (5 diffs)
- trunk/src/wizard1.c (modified) (1 diff)
- trunk/src/xtra1.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/defines.h
r523 r531 46 46 #define VERSION_MAJOR 3 47 47 #define VERSION_MINOR 0 48 #define VERSION_PATCH 1 148 #define VERSION_PATCH 12 49 49 #define VERSION_EXTRA 0 50 50 … … 1693 1693 #define IDENT_STORE 0x10 /* Item is in the inventory of a store */ 1694 1694 #define IDENT_MENTAL 0x20 /* Item information is known */ 1695 #define IDENT_CURSED 0x40 /* Item is temporarily cursed*/1695 /* ... */ 1696 1696 #define IDENT_BROKEN 0x80 /* Item is permanently worthless */ 1697 1697 … … 1758 1758 1759 1759 /* 1760 * As of 2.7.8, the "object flags" are valid for all objects, and as 1761 * of 2.7.9, these flags are not actually stored with the object, but 1762 * rather in the object_kind, ego_item, and artifact structures. 1760 * flags1 contains all flags dependant on "pval" (e.g. stat bonuses), 1761 * plus all "extra attack damage" flags (SLAY_XXX and BRAND_XXX). 1763 1762 * 1764 * Note that "flags1" contains all flags dependant on "pval" (including 1765 * stat bonuses, but NOT stat sustainers), plus all "extra attack damage" 1766 * flags (SLAY_XXX and BRAND_XXX). 1763 * flags2 contains all "resistances" (including "sustain" flags, immunity 1764 * flags, and resistance flags). 1767 1765 * 1768 * Note that "flags2" contains all "resistances" (including "sustain" flags, 1769 * immunity flags, and resistance flags). Note that "free action" and "hold 1770 * life" are no longer considered to be "immunities". 1771 * 1772 * Note that "flags3" contains everything else (including eight good flags, 1773 * seven unused flags, four bad flags, four damage ignoring flags, six weird 1774 * flags, and three cursed flags). 1766 * flags3 contains everything else. 1775 1767 */ 1776 1768 … … 1892 1884 TR3_IGNORE_COLD ) 1893 1885 1894 1895 1886 /* 1896 1887 * Hack -- special "xtra" object flag info (type) … … 1899 1890 #define OBJECT_XTRA_TYPE_RESIST 2 1900 1891 #define OBJECT_XTRA_TYPE_POWER 3 1901 1902 /*1903 * Hack -- special "xtra" object flag info (what flag set)1904 */1905 #define OBJECT_XTRA_WHAT_SUSTAIN 21906 #define OBJECT_XTRA_WHAT_RESIST 21907 #define OBJECT_XTRA_WHAT_POWER 31908 1909 /*1910 * Hack -- special "xtra" object flag info (base flag value)1911 */1912 #define OBJECT_XTRA_BASE_SUSTAIN TR2_SUST_STR1913 #define OBJECT_XTRA_BASE_RESIST TR2_RES_POIS1914 #define OBJECT_XTRA_BASE_POWER TR3_SLOW_DIGEST1915 1916 /*1917 * Hack -- special "xtra" object flag info (number of flags)1918 */1919 #define OBJECT_XTRA_SIZE_SUSTAIN 61920 #define OBJECT_XTRA_SIZE_RESIST 121921 #define OBJECT_XTRA_SIZE_POWER 81922 1892 1923 1893 … … 2492 2462 */ 2493 2463 #define cursed_p(T) \ 2494 ((T)-> ident & (IDENT_CURSED))2464 ((T)->flags3 & (TR3_LIGHT_CURSE)) 2495 2465 2496 2466 trunk/src/init1.c
r489 r531 572 572 (v3 != head->v_patch)) 573 573 { 574 #if 0 574 575 return (PARSE_ERROR_OBSOLETE_FILE); 576 #endif 575 577 } 576 578 trunk/src/load.c
r522 r531 47 47 48 48 49 /* XXX Taken from object2.c */ 50 static const u32b ego_sustains[] = 51 { 52 TR2_SUST_STR, 53 TR2_SUST_INT, 54 TR2_SUST_WIS, 55 TR2_SUST_DEX, 56 TR2_SUST_CON, 57 TR2_SUST_CHR, 58 }; 59 60 static const u32b ego_resists[] = 61 { 62 TR2_RES_ACID, 63 TR2_RES_ELEC, 64 TR2_RES_FIRE, 65 TR2_RES_COLD, 66 TR2_RES_POIS, 67 TR2_RES_FEAR, 68 TR2_RES_LITE, 69 TR2_RES_DARK, 70 TR2_RES_BLIND, 71 TR2_RES_CONFU, 72 TR2_RES_SOUND, 73 TR2_RES_SHARD, 74 }; 75 76 static const u32b ego_powers[] = 77 { 78 TR3_SLOW_DIGEST, 79 TR3_FEATHER, 80 TR3_LITE, 81 TR3_REGEN, 82 TR3_TELEPATHY, 83 TR3_SEE_INVIS, 84 TR3_FREE_ACT, 85 TR3_HOLD_LIFE, 86 }; 87 88 49 89 50 90 /* … … 304 344 byte old_dd; 305 345 byte old_ds; 346 byte tmp8u; 306 347 307 348 u32b f1, f2, f3; … … 353 394 354 395 rd_byte(&o_ptr->ident); 396 if (o_ptr->ident & 0x40) 397 o_ptr->flags3 |= TR3_LIGHT_CURSE; 355 398 356 399 rd_byte(&o_ptr->marked); … … 361 404 362 405 /* Old flags */ 363 strip_bytes(8); 406 if (older_than(3, 0, 12)) 407 { 408 strip_bytes(8); 409 } 410 else 411 { 412 rd_u32b(&o_ptr->flags1); 413 rd_u32b(&o_ptr->flags2); 414 rd_u32b(&o_ptr->flags3); 415 } 364 416 365 417 /* Monster holding object */ 366 418 rd_s16b(&o_ptr->held_m_idx); 367 419 368 /* Special powers */ 369 rd_byte(&o_ptr->xtra1); 370 rd_byte(&o_ptr->xtra2); 420 /* (Old) special powers */ 421 if (older_than(3, 0, 12)) 422 { 423 byte xtra1; 424 byte xtra2; 425 ego_item_type *e_ptr = NULL; 426 427 if (o_ptr->name2) e_ptr = &e_info[o_ptr->name2]; 428 429 rd_byte(&xtra1); 430 rd_byte(&xtra2); 431 432 /* Extra powers */ 433 switch (xtra1) 434 { 435 case OBJECT_XTRA_TYPE_SUSTAIN: 436 { 437 o_ptr->flags2 |= ego_sustains[xtra2]; 438 break; 439 } 440 441 case OBJECT_XTRA_TYPE_RESIST: 442 { 443 o_ptr->flags2 |= ego_resists[xtra2]; 444 break; 445 } 446 447 case OBJECT_XTRA_TYPE_POWER: 448 { 449 o_ptr->flags3 |= ego_powers[xtra2]; 450 break; 451 } 452 } 453 } 371 454 372 455 /* Inscription */ … … 622 705 rd_byte(&l_ptr->ignore); 623 706 624 /* Extra stuff */ 625 rd_byte(&l_ptr->xtra1); 626 rd_byte(&l_ptr->xtra2); 707 if (older_than(3, 0, 12)) strip_bytes(2); 627 708 628 709 /* Count drops */ trunk/src/loadsave.c
r522 r531 1269 1269 1270 1270 smap_put_s16b(s, "held_m_idx", o_ptr->held_m_idx); 1271 smap_put_byte(s, "xtra1", o_ptr->xtra1); 1272 smap_put_byte(s, "xtra2", o_ptr->xtra2); 1271 1272 smap_put_u32b(s, "flags1", o_ptr->flags1); 1273 smap_put_u32b(s, "flags2", o_ptr->flags2); 1274 smap_put_u32b(s, "flags3", o_ptr->flags3); 1273 1275 1274 1276 if (o_ptr->note) … … 1313 1315 1314 1316 o_ptr->held_m_idx = smap_get_s16b(s, "held_m_idx"); 1315 o_ptr->xtra1 = smap_get_byte(s, "xtra1"); 1316 o_ptr->xtra2 = smap_get_byte(s, "xtra2"); 1317 o_ptr->flags1 = smap_get_u32b(s, "flags1"); 1318 o_ptr->flags2 = smap_get_u32b(s, "flags2"); 1319 o_ptr->flags3 = smap_get_u32b(s, "flags3"); 1317 1320 1318 1321 inscrip = smap_get_str(s, "note"); … … 1382 1385 smap_put_byte(s, "wake", l_ptr->wake); 1383 1386 smap_put_byte(s, "ignore", l_ptr->ignore); 1384 1385 smap_put_byte(s, "xtra1", l_ptr->xtra1);1386 smap_put_byte(s, "xtra2", l_ptr->xtra2);1387 1387 1388 1388 smap_put_byte(s, "drop_gold", l_ptr->drop_gold); … … 1423 1423 l_ptr->wake = smap_get_byte(s, "wake"); 1424 1424 l_ptr->ignore = smap_get_byte(s, "ignore"); 1425 1426 l_ptr->xtra1 = smap_get_byte(s, "xtra1");1427 l_ptr->xtra2 = smap_get_byte(s, "xtra2");1428 1425 1429 1426 l_ptr->drop_gold = smap_get_byte(s, "drop_gold"); trunk/src/obj-info.c
r512 r531 717 717 /* Unknown extra powers (ego-item with random extras or artifact) */ 718 718 if (object_known_p(o_ptr) && (!(o_ptr->ident & IDENT_MENTAL)) && 719 ( (o_ptr->xtra1)|| artifact_p(o_ptr)))719 (o_ptr->flags2 || o_ptr->flags3 || artifact_p(o_ptr))) 720 720 { 721 721 /* Hack -- Put this in a separate paragraph if screen dump */ trunk/src/object1.c
r522 r531 429 429 } 430 430 431 /* Extra powers */ 432 switch (o_ptr->xtra1) 433 { 434 case OBJECT_XTRA_TYPE_SUSTAIN: 435 { 436 /* OBJECT_XTRA_WHAT_SUSTAIN == 2 */ 437 (*f2) |= (OBJECT_XTRA_BASE_SUSTAIN << o_ptr->xtra2); 438 break; 439 } 440 441 case OBJECT_XTRA_TYPE_RESIST: 442 { 443 /* OBJECT_XTRA_WHAT_RESIST == 2 */ 444 (*f2) |= (OBJECT_XTRA_BASE_RESIST << o_ptr->xtra2); 445 break; 446 } 447 448 case OBJECT_XTRA_TYPE_POWER: 449 { 450 /* OBJECT_XTRA_WHAT_POWER == 3 */ 451 (*f3) |= (OBJECT_XTRA_BASE_POWER << o_ptr->xtra2); 452 break; 453 } 454 } 431 (*f1) |= o_ptr->flags1; 432 (*f2) |= o_ptr->flags2; 433 (*f3) |= o_ptr->flags3; 455 434 } 456 435 trunk/src/object2.c
r523 r531 1212 1212 if (o_ptr->name2 != j_ptr->name2) return (FALSE); 1213 1213 1214 /* Hack -- Never stack "powerful" items */1215 if (o_ptr->xtra1 || j_ptr->xtra1) return (FALSE);1216 1217 1214 /* Hack - Never stack recharging items */ 1218 1215 if ((o_ptr->timeout || j_ptr->timeout) && o_ptr->tval != TV_LITE) … … 1244 1241 1245 1242 1246 /* Hack -- Require identical "cursed" and "broken" status */ 1247 if (((o_ptr->ident & (IDENT_CURSED)) != (j_ptr->ident & (IDENT_CURSED))) || 1248 ((o_ptr->ident & (IDENT_BROKEN)) != (j_ptr->ident & (IDENT_BROKEN)))) 1243 /* Hack -- Require identical "broken" status */ 1244 if ((o_ptr->ident & IDENT_BROKEN) != (j_ptr->ident & IDENT_BROKEN)) 1249 1245 { 1250 1246 return (0); … … 1263 1259 if (o_ptr->pseudo != j_ptr->pseudo) 1264 1260 return (0); 1261 1262 1263 /* Different flags */ 1264 if (o_ptr->flags1 != j_ptr->flags1 || 1265 o_ptr->flags2 != j_ptr->flags2 || 1266 o_ptr->flags3 != j_ptr->flags3) 1267 return FALSE; 1265 1268 1266 1269 … … 1454 1457 1455 1458 /* Hack -- cursed items are always "cursed" */ 1456 if (k_ptr->flags3 & (TR3_LIGHT_CURSE)) o_ptr->ident |= (IDENT_CURSED); 1459 if (k_ptr->flags3 & (TR3_LIGHT_CURSE)) 1460 o_ptr->flags3 |= TR3_LIGHT_CURSE; 1457 1461 } 1458 1462 … … 1869 1873 1870 1874 /* Cursed (if "bad") */ 1871 if (o_ptr->to_h + o_ptr->to_d < 0) o_ptr->ident |= (IDENT_CURSED); 1875 if (o_ptr->to_h + o_ptr->to_d < 0) 1876 o_ptr->flags3 |= TR3_LIGHT_CURSE; 1872 1877 } 1873 1878 … … 1983 1988 1984 1989 /* Cursed (if "bad") */ 1985 if (o_ptr->to_a < 0) o_ptr->ident |= (IDENT_CURSED); 1990 if (o_ptr->to_a < 0) 1991 o_ptr->flags3 |= TR3_LIGHT_CURSE; 1986 1992 } 1987 1993 … … 2039 2045 2040 2046 /* Cursed */ 2041 o_ptr-> ident |= (IDENT_CURSED);2047 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2042 2048 2043 2049 /* Reverse pval */ … … 2064 2070 2065 2071 /* Cursed */ 2066 o_ptr-> ident |= (IDENT_CURSED);2072 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2067 2073 2068 2074 /* Reverse pval */ … … 2096 2102 2097 2103 /* Cursed */ 2098 o_ptr->ident |= (IDENT_CURSED); 2099 2104 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2100 2105 /* Reverse pval */ 2101 2106 o_ptr->pval = 0 - (o_ptr->pval); … … 2124 2129 2125 2130 /* Cursed */ 2126 o_ptr-> ident |= (IDENT_CURSED);2131 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2127 2132 2128 2133 /* Penalize */ … … 2139 2144 2140 2145 /* Cursed */ 2141 o_ptr-> ident |= (IDENT_CURSED);2146 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2142 2147 2143 2148 /* Penalize */ … … 2161 2166 2162 2167 /* Cursed */ 2163 o_ptr-> ident |= (IDENT_CURSED);2168 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2164 2169 2165 2170 /* Reverse bonus */ … … 2183 2188 2184 2189 /* Cursed */ 2185 o_ptr-> ident |= (IDENT_CURSED);2190 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2186 2191 2187 2192 /* Reverse tohit */ … … 2205 2210 2206 2211 /* Cursed */ 2207 o_ptr-> ident |= (IDENT_CURSED);2212 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2208 2213 2209 2214 /* Reverse toac */ … … 2228 2233 2229 2234 /* Cursed */ 2230 o_ptr-> ident |= (IDENT_CURSED);2235 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2231 2236 2232 2237 /* Reverse bonuses */ … … 2261 2266 2262 2267 /* Cursed */ 2263 o_ptr-> ident |= (IDENT_CURSED);2268 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2264 2269 2265 2270 /* Reverse bonuses */ … … 2282 2287 2283 2288 /* Cursed */ 2284 o_ptr-> ident |= (IDENT_CURSED);2289 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2285 2290 2286 2291 /* Reverse bonuses */ … … 2365 2370 2366 2371 /* Cursed */ 2367 o_ptr-> ident |= (IDENT_CURSED);2372 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2368 2373 2369 2374 /* Penalize */ … … 2450 2455 } 2451 2456 } 2457 2458 static const u32b ego_sustains[] = 2459 { 2460 TR2_SUST_STR, 2461 TR2_SUST_INT, 2462 TR2_SUST_WIS, 2463 TR2_SUST_DEX, 2464 TR2_SUST_CON, 2465 TR2_SUST_CHR, 2466 }; 2467 2468 static const u32b ego_resists[] = 2469 { 2470 TR2_RES_ACID, 2471 TR2_RES_ELEC, 2472 TR2_RES_FIRE, 2473 TR2_RES_COLD, 2474 TR2_RES_POIS, 2475 TR2_RES_FEAR, 2476 TR2_RES_LITE, 2477 TR2_RES_DARK, 2478 TR2_RES_BLIND, 2479 TR2_RES_CONFU, 2480 TR2_RES_SOUND, 2481 TR2_RES_SHARD, 2482 }; 2483 2484 static const u32b ego_powers[] = 2485 { 2486 TR3_SLOW_DIGEST, 2487 TR3_FEATHER, 2488 TR3_LITE, 2489 TR3_REGEN, 2490 TR3_TELEPATHY, 2491 TR3_SEE_INVIS, 2492 TR3_FREE_ACT, 2493 TR3_HOLD_LIFE, 2494 }; 2452 2495 2453 2496 … … 2571 2614 2572 2615 /* Hack -- extract the "cursed" flag */ 2573 if (a_ptr->flags3 & (TR3_LIGHT_CURSE)) o_ptr->ident |= (IDENT_CURSED); 2616 if (a_ptr->flags3 & TR3_LIGHT_CURSE) 2617 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2574 2618 2575 2619 /* Mega-Hack -- increase the rating */ … … 2674 2718 2675 2719 /* Extra powers */ 2676 if (e_ptr->xtra) 2677 { 2678 o_ptr->xtra1 = e_ptr->xtra; 2679 switch (o_ptr->xtra1) 2720 switch (e_ptr->xtra) 2721 { 2722 case OBJECT_XTRA_TYPE_SUSTAIN: 2680 2723 { 2681 case OBJECT_XTRA_TYPE_SUSTAIN: 2682 { 2683 o_ptr->xtra2 = (byte)rand_int(OBJECT_XTRA_SIZE_SUSTAIN); 2684 break; 2685 } 2686 2687 case OBJECT_XTRA_TYPE_RESIST: 2688 { 2689 o_ptr->xtra2 = (byte)rand_int(OBJECT_XTRA_SIZE_RESIST); 2690 break; 2691 } 2692 2693 case OBJECT_XTRA_TYPE_POWER: 2694 { 2695 o_ptr->xtra2 = (byte)rand_int(OBJECT_XTRA_SIZE_POWER); 2696 break; 2697 } 2724 o_ptr->flags2 |= ego_sustains[rand_int(N_ELEMENTS(ego_sustains))]; 2725 break; 2726 } 2727 2728 case OBJECT_XTRA_TYPE_RESIST: 2729 { 2730 o_ptr->flags2 |= ego_resists[rand_int(N_ELEMENTS(ego_resists))]; 2731 break; 2732 } 2733 2734 case OBJECT_XTRA_TYPE_POWER: 2735 { 2736 o_ptr->flags3 |= ego_powers[rand_int(N_ELEMENTS(ego_powers))]; 2737 break; 2698 2738 } 2699 2739 } … … 2703 2743 2704 2744 /* Hack -- acquire "cursed" flag */ 2705 if (e_ptr->flags3 & (TR3_LIGHT_CURSE)) o_ptr->ident |= (IDENT_CURSED); 2745 if (e_ptr->flags3 & (TR3_LIGHT_CURSE)) 2746 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2706 2747 2707 2748 /* Hack -- apply extra penalties if needed */ … … 2749 2790 2750 2791 /* Hack -- acquire "cursed" flag */ 2751 if (k_ptr->flags3 & (TR3_LIGHT_CURSE)) o_ptr->ident |= (IDENT_CURSED); 2792 if (k_ptr->flags3 & (TR3_LIGHT_CURSE)) 2793 o_ptr->flags3 |= TR3_LIGHT_CURSE; 2752 2794 } 2753 2795 } trunk/src/save.c
r509 r531 135 135 wr_u16b(o_ptr->origin_xtra); 136 136 137 /* Old flags */138 wr_u32b( 0L);139 wr_u32b( 0L);137 wr_u32b(o_ptr->flags1); 138 wr_u32b(o_ptr->flags2); 139 wr_u32b(o_ptr->flags3); 140 140 141 141 /* Held by monster index */ 142 142 wr_s16b(o_ptr->held_m_idx); 143 144 /* Extra information */145 wr_byte(o_ptr->xtra1);146 wr_byte(o_ptr->xtra2);147 143 148 144 /* Save the inscription (if any) */ … … 198 194 wr_byte(l_ptr->ignore); 199 195 200 /* Extra stuff */201 wr_byte(l_ptr->xtra1);202 wr_byte(l_ptr->xtra2);203 204 196 /* Count drops */ 205 197 wr_byte(l_ptr->drop_gold); trunk/src/spells2.c
r523 r531 302 302 { 303 303 /* Uncurse it */ 304 o_ptr-> ident &= ~(IDENT_CURSED);304 o_ptr->flags3 &= ~(TR3_LIGHT_CURSE); 305 305 306 306 /* Mark as uncursed */ … … 3526 3526 3527 3527 /* Curse it */ 3528 o_ptr-> ident |= (IDENT_CURSED);3528 o_ptr->flags3 |= TR3_LIGHT_CURSE; 3529 3529 3530 3530 /* Break it */ … … 3590 3590 3591 3591 /* Curse it */ 3592 o_ptr-> ident |= (IDENT_CURSED);3592 o_ptr->flags3 |= TR3_LIGHT_CURSE; 3593 3593 3594 3594 /* Break it */ trunk/src/store.c
r522 r531 612 612 if (o_ptr->name2 != j_ptr->name2) return (0); 613 613 614 /* Hack -- Never stack "powerful" items */615 if (o_ptr->xtra1 || j_ptr->xtra1) return (0);616 617 614 /* Hack -- Never stack recharging items */ 618 615 if ((o_ptr->timeout || j_ptr->timeout) && o_ptr->tval != TV_LITE) … … 630 627 /* Hack -- Never stack chests */ 631 628 if (o_ptr->tval == TV_CHEST) return (0); 629 630 /* Different flags */ 631 if (o_ptr->flags1 != j_ptr->flags1 || 632 o_ptr->flags2 != j_ptr->flags2 || 633 o_ptr->flags3 != j_ptr->flags3) return FALSE; 632 634 633 635 /* They match, so they must be similar */ trunk/src/types.h
r522 r531 403 403 byte ignore; /* Number of times ignored (?) */ 404 404 405 byte xtra1; /* Something (unused) */406 byte xtra2; /* Something (unused) */407 408 405 byte drop_gold; /* Max number of gold dropped at once */ 409 406 byte drop_item; /* Max number of item dropped at once */ … … 481 478 s16b pval; /* Item extra-parameter */ 482 479 483 byte pseudo; /* Pseudo-ID marker */484 485 byte number; /* Number of items */486 487 480 s16b weight; /* Item weight */ 488 481 … … 490 483 byte name2; /* Ego-Item type, if any */ 491 484 492 byte xtra1; /* Extra info type */ 493 byte xtra2; /* Extra info index */ 485 u32b flags1; /* Flags, set 1 */ 486 u32b flags2; /* Flags, set 2 */ 487 u32b flags3; /* Flags, set 3 */ 494 488 495 489 s16b ac; /* Normal AC */ … … 502 496 s16b timeout; /* Timeout Counter */ 503 497 498 byte number; /* Number of items */ 499 500 byte pseudo; /* Pseudo-ID marker */ 504 501 byte ident; /* Special flags */ 505 502 byte marked; /* Object is marked */ 506 507 quark_t note; /* Inscription index */508 503 509 504 s16b next_o_idx; /* Next object in stack (if any) */ … … 513 508 byte origin_depth; /* What depth the item was found at */ 514 509 u16b origin_xtra; /* Extra information about origin */ 510 511 quark_t note; /* Inscription index */ 515 512 }; 516 513 trunk/src/wizard1.c
r507 r531 417 417 418 418 /* Hack -- extract the "cursed" flag */ 419 if (a_ptr->flags3 & (TR3_LIGHT_CURSE)) o_ptr->ident |= (IDENT_CURSED); 419 if (a_ptr->flags3 & (TR3_LIGHT_CURSE)) 420 o_ptr->flags3 |= TR3_LIGHT_CURSE; 420 421 421 422 /* Success */ trunk/src/xtra1.c
r523 r531 502 502 503 503 /* Cursed objects emit no light */ 504 if ( o_ptr->ident & IDENT_CURSED)504 if (f3 & TR3_LIGHT_CURSE) 505 505 { 506 506 amt = 0;
