Changeset 48

Show
Ignore:
Timestamp:
04/19/07 12:56:23 (2 years ago)
Author:
takkaria
Message:
  • Fix logic in my_fexists()
  • Ammo in stores is now treated in groups of 5/10/20
  • Implement the big options clearout (requires bumping version number to 3.0.8) (#27)
  • Update compile instructions (incomplete)
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/compile.txt

    r18 r48  
    33 
    44Last updated on 23rd March 2007 by Andrew Sidwell 
     5 
     6You only want to read this file if you want to compile the game.  It is 
     7probably unnecessary todo so, since most platforms have pre-compiled versions 
     8available. 
    59 
    610If you are able to construct "main-xxx.c" and/or "Makefile.xxx" files for 
     
    1418 
    1519---------------------------------------------------------------------- 
    16 Quick and dirty compilation instructions 
    17 ---------------------------------------------------------------------- 
    18  
    19 For many platforms (including Windows and DOS), a "pre-compiled" archive 
    20 is available, which contains everything you need to install and play 
    21 Angband.  For other platforms, including most UNIX systems, you must 
    22 compile the source code yourself.  Try the following non-trivial steps: 
    23  
    24 Step 1: Acquire.   Ftp to "ftp.thangorodrim.net/pub/angband/Source" 
    25                    Try "bin" and "mget angband*.tar.gz" and "y" 
    26 Step 2: Extract.   Try "gunzip *.gz" then "tar -xvf *.tar" 
    27 Step 3: Prepare.   Try "cd angband*/". 
    28 Step 4: Configure. Try "./configure". Edit "src/config.h" if you wish. 
    29 Step 5: Compile.   Try "make". 
    30 Step 6: Install.   Try "make install". 
    31 Step 7: Play...    Try "./angband". 
    32                    Read the "online help" via the "?" command. 
    33  
    34 Of course, if you have a compiler, you can compile a (possibly customized) 
    35 executable on almost any system.  You will need the "source archive" (as 
    36 above), which contains the standard "src" and "lib" directories, and for 
    37 some platforms (including Macintosh and Windows), you will also need an 
     20Quick and dirty compilation instructions for Unix 
     21---------------------------------------------------------------------- 
     22 
     23I assume you already have the source.  Open a commandline terminal. 
     24 
     25If you have never compiled anything at all, you will want to get the relevant 
     26development packages for your system.  If you run a debian-like Linux  
     27system, then "sudo apt-get install gcc libncurses-dev libx11-dev" should 
     28do the trick. 
     29 
     30Now: 
     31 1. extract:   `tar zxvf angband*.tar.gz` 
     32 2. prepare:   `cd angband*` 
     33 3. configure: `./configure --prefix=$HOME` 
     34 4. compile:   `make install` 
     35 5. play:      `./angband` 
     36 
     37For some platforms (including Macintosh and Windows), you will also need an 
    3838appropriate "extra archive", which contains some extra platform specific 
    3939files, and instructions about how to use them.  Some "extra archives" may 
     
    5050Configure may modify all but CC. 
    5151 
    52 An alternative to configure is to edit src/h-config.h and a makefile
    53 probably src/Makefile.std, and run "cd src; make -f Makefile.std". 
     52An alternative to configure is to edit src/h-config.h and src/Makefile.std
     53then run "cd src; make -f Makefile.std". 
    5454 
    5555 
  • trunk/lib/edit/artifact.txt

    r24 r48  
    6565# Version stamp (required) 
    6666 
    67 V:3.0.7 
     67V:3.0.8 
    6868 
    6969 
  • trunk/lib/edit/cost_adj.txt

    r24 r48  
    1717# Version stamp (required) 
    1818 
    19 V:3.0.7 
     19V:3.0.8 
    2020 
    2121 
  • trunk/lib/edit/ego_item.txt

    r24 r48  
    5252# Version stamp (required) 
    5353 
    54 V:3.0.7 
     54V:3.0.8 
    5555 
    5656# 1 (unused) 
  • trunk/lib/edit/flavor.txt

    r24 r48  
    1515# Version stamp (required) 
    1616 
    17 V:3.0.7 
     17V:3.0.8 
    1818 
    1919 
  • trunk/lib/edit/limits.txt

    r24 r48  
    1212# Version stamp (required) 
    1313 
    14 V:3.0.7 
     14V:3.0.8 
    1515 
    1616 
  • trunk/lib/edit/monster.txt

    r24 r48  
    9797# Version stamp (required) 
    9898 
    99 V:3.0.7 
     99V:3.0.8 
    100100 
    101101 
  • trunk/lib/edit/object.txt

    r24 r48  
    8080# Version stamp (required) 
    8181 
    82 V:3.0.7 
     82V:3.0.8 
    8383 
    8484 
  • trunk/lib/edit/p_class.txt

    r24 r48  
    6363# Version stamp (required) 
    6464 
    65 V:3.0.7 
     65V:3.0.8 
    6666 
    6767 
  • trunk/lib/edit/p_hist.txt

    r24 r48  
    3030# Version stamp (required) 
    3131 
    32 V:3.0.7 
     32V:3.0.8 
    3333 
    3434 
  • trunk/lib/edit/p_race.txt

    r24 r48  
    5151# Version stamp (required) 
    5252 
    53 V:3.0.7 
     53V:3.0.8 
    5454 
    5555 
  • trunk/lib/edit/shop_own.txt

    r24 r48  
    1717# Version stamp (required) 
    1818 
    19 V:3.0.7 
     19V:3.0.8 
    2020 
    2121# General Store 
  • trunk/lib/edit/spell.txt

    r24 r48  
    3838# Version stamp (required) 
    3939 
    40 V:3.0.7 
     40V:3.0.8 
    4141 
    4242 
  • trunk/lib/edit/terrain.txt

    r24 r48  
    3636# Version stamp (required) 
    3737 
    38 V:3.0.7 
     38V:3.0.8 
    3939 
    4040 
  • trunk/lib/edit/vault.txt

    r24 r48  
    4747# Version stamp (required) 
    4848 
    49 V:3.0.7 
     49V:3.0.8 
    5050 
    5151 
  • trunk/scripts/pkg_win

    r37 r48  
    5353cp ../lib/xtra/sound/*.wav lib/xtra/sound 
    5454 
    55 upx -9 angband.exe 
     55#upx -9 angband.exe 
    5656 
    5757cd .. 
  • trunk/src/birth.c

    r36 r48  
    11021102 * This function handles "auto-rolling" and "random-rolling". 
    11031103 */ 
    1104 static bool player_birth_aux_3(void
     1104static bool player_birth_aux_3(bool autoroll
    11051105{ 
    11061106        int i, j, m, v; 
     
    11311131 
    11321132        /* Initialize */ 
    1133         if (adult_auto_roller
     1133        if (autoroll
    11341134        { 
    11351135                int mval[A_MAX]; 
     
    12421242 
    12431243                /* Feedback */ 
    1244                 if (adult_auto_roller
     1244                if (autoroll
    12451245                { 
    12461246                        Term_clear(); 
     
    14671467        cptr prompt = "['Q' to suicide, 'S' to start over, or any other key to continue]"; 
    14681468 
     1469        bool point_based = FALSE, autoroll = FALSE; 
     1470        bool done = FALSE; 
     1471 
    14691472        /* Ask questions */ 
    14701473        if (!player_birth_aux_1()) return (FALSE); 
    14711474 
     1475        /* XXX Ask for autoroll preference */ 
     1476        /* Turn into a real menu later */ 
     1477        Term_clear(); 
     1478        while (!done) 
     1479        { 
     1480                prt("To create a character, would you like to:", 1, 1); 
     1481                prt(" a) Use the point-based system", 2, 1); 
     1482                prt(" b) Use the autoroller", 3, 1); 
     1483                prt(" a) Use the basic roller", 4, 1); 
     1484 
     1485                prt("", 6, 1); 
     1486                ch = inkey(); 
     1487 
     1488                switch (ch) 
     1489                { 
     1490                        case 'a': 
     1491                        case 'A': 
     1492                                done = point_based = TRUE; 
     1493                                break; 
     1494 
     1495                        case 'b': 
     1496                        case 'B': 
     1497                                done = autoroll = TRUE; 
     1498                                break; 
     1499 
     1500                        case 'c': 
     1501                        case 'C': 
     1502                                done = TRUE; 
     1503                                break; 
     1504                } 
     1505        } 
     1506 
    14721507        /* Point-based */ 
    1473         if (adult_point_based) 
     1508        if (point_based) 
    14741509        { 
    14751510                /* Point based */ 
     
    14811516        { 
    14821517                /* Auto-roll */ 
    1483                 if (!player_birth_aux_3()) return (FALSE); 
     1518                if (!player_birth_aux_3(autoroll)) return (FALSE); 
    14841519        } 
    14851520 
  • trunk/src/cave.c

    r30 r48  
    719719 * they take the symbol of whatever is under them.  Technically, the flag 
    720720 * "CHAR_MULTI" is supposed to indicate that a monster looks strange when 
    721  * examined, but this flag is currently ignored.  All of these flags are 
    722  * ignored if the "avoid_other" option is set, since checking for these 
    723  * conditions is expensive (and annoying) on some systems. 
     721 * examined, but this flag is currently ignored. 
    724722 * 
    725723 * Normally, players could be handled just like monsters, except that the 
     
    728726 * "player" symbol always "pre-empts" any other facts about the grid. 
    729727 * 
    730  * The "hidden_player" efficiency option, which only makes sense with a 
    731  * single player, allows the player symbol to be hidden while running. 
    732  * 
    733728 * ToDo: The transformations for tile colors, or brightness for the 16x16 
    734729 * tiles should be handled differently.  One possibility would be to 
     
    918913                        } 
    919914 
    920                         /* Ignore weird codes */ 
    921                         else if (avoid_other
     915                        /* Special attr/char codes */ 
     916                        else if ((da & 0x80) && (dc & 0x80)
    922917                        { 
    923918                                /* Use attr */ 
     
    928923                        } 
    929924 
    930                         /* Special attr/char codes */ 
    931                         else if ((da & 0x80) && (dc & 0x80)) 
     925                        /* Multi-hued monster */ 
     926                        else if (r_ptr->flags1 & (RF1_ATTR_MULTI)) 
     927                        { 
     928                                /* Multi-hued attr */ 
     929                                a = randint(15); 
     930 
     931                                /* Normal char */ 
     932                                c = dc; 
     933                        } 
     934 
     935                        /* Normal monster (not "clear" in any way) */ 
     936                        else if (!(r_ptr->flags1 & (RF1_ATTR_CLEAR | RF1_CHAR_CLEAR))) 
    932937                        { 
    933938                                /* Use attr */ 
     
    938943                        } 
    939944 
    940                         /* Multi-hued monster */ 
    941                         else if (r_ptr->flags1 & (RF1_ATTR_MULTI)) 
    942                         { 
    943                                 /* Multi-hued attr */ 
    944                                 a = randint(15); 
    945  
     945                        /* Hack -- Bizarre grid under monster */ 
     946                        else if ((a & 0x80) || (c & 0x80)) 
     947                        { 
     948                                /* Use attr */ 
     949                                a = da; 
     950 
     951                                /* Use char */ 
     952                                c = dc; 
     953                        } 
     954 
     955                        /* Normal char, Clear attr, monster */ 
     956                        else if (!(r_ptr->flags1 & (RF1_CHAR_CLEAR))) 
     957                        { 
    946958                                /* Normal char */ 
    947959                                c = dc; 
    948960                        } 
    949961 
    950                         /* Normal monster (not "clear" in any way) */ 
    951                         else if (!(r_ptr->flags1 & (RF1_ATTR_CLEAR | RF1_CHAR_CLEAR))) 
    952                         { 
    953                                 /* Use attr */ 
    954                                 a = da; 
    955  
    956                                 /* Use char */ 
    957                                 c = dc; 
    958                         } 
    959  
    960                         /* Hack -- Bizarre grid under monster */ 
    961                         else if ((a & 0x80) || (c & 0x80)) 
    962                         { 
    963                                 /* Use attr */ 
    964                                 a = da; 
    965  
    966                                 /* Use char */ 
    967                                 c = dc; 
    968                         } 
    969  
    970                         /* Normal char, Clear attr, monster */ 
    971                         else if (!(r_ptr->flags1 & (RF1_CHAR_CLEAR))) 
    972                         { 
    973                                 /* Normal char */ 
    974                                 c = dc; 
    975                         } 
    976  
    977962                        /* Normal attr, Clear char, monster */ 
    978963                        else if (!(r_ptr->flags1 & (RF1_ATTR_CLEAR))) 
     
    985970 
    986971        /* Handle "player" */ 
    987         else if ((m_idx < 0) && !(p_ptr->running && hidden_player)
     972        else if (m_idx < 0
    988973        { 
    989974                monster_race *r_ptr = &r_info[0]; 
     
    1014999        } 
    10151000 
    1016 #ifdef MAP_INFO_MULTIPLE_PLAYERS 
    10171001        /* Players */ 
    10181002        else if (m_idx < 0) 
    1019 #else /* MAP_INFO_MULTIPLE_PLAYERS */ 
    1020         /* Handle "player" */ 
    1021         else if ((m_idx < 0) && !(p_ptr->running && hidden_player)) 
    1022 #endif /* MAP_INFO_MULTIPLE_PLAYERS */ 
    10231003        { 
    10241004                monster_race *r_ptr = &r_info[0]; 
     
    32863266 
    32873267        /* Hack -- disabled */ 
    3288         if (!flow_by_sound) return; 
     3268        if (!adult_ai_sound) return; 
    32893269 
    32903270 
     
    41464126                /* Calculate torch radius */ 
    41474127                p_ptr->update |= (PU_TORCH); 
    4148  
    4149                 /* Redraw the player */ 
    4150                 if (hidden_player) 
    4151                 { 
    4152                         int py = p_ptr->py; 
    4153                         int px = p_ptr->px; 
    4154  
    4155                         /* Redraw player */ 
    4156                         lite_spot(py, px); 
    4157                 } 
    41584128        } 
    41594129 
  • trunk/src/cmd1.c

    r24 r48  
    18741874                                        break; 
    18751875                                } 
    1876  
    1877                                 /* Stairs */ 
    1878                                 case FEAT_LESS: 
    1879                                 case FEAT_MORE: 
    1880                                 { 
    1881                                         /* Option -- ignore */ 
    1882                                         if (run_ignore_stairs) notice = FALSE; 
    1883  
    1884                                         /* Done */ 
    1885                                         break; 
    1886                                 } 
    18871876                        } 
    18881877 
  • trunk/src/cmd3.c

    r1 r48  
    15901590                { 
    15911591                        if (++i == n) 
    1592                         { 
    15931592                                i = 0; 
    1594                                 if (!expand_list) break; 
    1595                         } 
    15961593                } 
    15971594 
     
    16001597                { 
    16011598                        if (i-- == 0) 
    1602                         { 
    16031599                                i = n - 1; 
    1604                                 if (!expand_list) break; 
    1605                         } 
    16061600                } 
    16071601        } 
  • trunk/src/cmd4.c

    r47 r48  
    39933993static menu_item option_actions [] = 
    39943994{ 
    3995         {{0, "User Interface Options", do_cmd_options_aux, (void*)0}, '1'}, 
    3996         {{0, "Disturbance Options", do_cmd_options_aux, (void*)1}, '2'}, 
    3997         {{0, "Game-Play Options", do_cmd_options_aux, (void*)2}, '3'}, 
    3998         {{0, "Efficiency Options", do_cmd_options_aux, (void*)3}, '4'}, 
    3999         {{0, "Display Options", do_cmd_options_aux, (void*)4}, '5'}, 
    4000         {{0, "Birth Options", do_cmd_options_aux, (void*)5}, '6'}, 
    4001         {{0, "Cheat Options", do_cmd_options_aux, (void*)6}, '7'}, 
     3995        {{0, "User Interface options", do_cmd_options_aux, (void*)0}, '1'}, 
     3996        {{0, "Pickup and Item options", do_cmd_options_aux, (void*)1}, '2'}, 
     3997        {{0, "Disturbance and Warning options", do_cmd_options_aux, (void*)2}, '3'}, 
     3998        {{0, "Efficiency options", do_cmd_options_aux, (void*)3}, '4'}, 
     3999        {{0, "Birth (Difficulty) options", do_cmd_options_aux, (void*)4}, '5'}, 
     4000        {{0, "Cheat options", do_cmd_options_aux, (void*)5}, '6'}, 
    40024001        {{0, 0, 0, 0}}, /* Load and append */ 
    4003         {{0, "Window Flags", (action_f) do_cmd_options_win, 0}, 'W'}, 
    4004         {{0, "Item Squelch and Autoinscribe Menus", (action_f) do_cmd_squelch_autoinsc, 0}, 'S'}, 
     4002        {{0, "Window flags", (action_f) do_cmd_options_win, 0}, 'W'}, 
     4003        {{0, "Item squelch and Autoinscribe settings", (action_f) do_cmd_squelch_autoinsc, 0}, 'S'}, 
    40054004        {{0, "Load a user pref file", (action_f) do_cmd_pref_file_hack, (void*)20}, 'L'}, 
    4006         {{0, "Dump Options", (action_f) dump_pref_file, option_dump}, 'A'}, 
     4005        {{0, "Dump options", (action_f) dump_pref_file, option_dump}, 'A'}, 
    40074006        {{0, 0, 0,}, 0}, /* Special choices */ 
    4008         {{0, "Base Delay Factor", (action_f) do_cmd_delay, 0}, 'D'}, 
    4009         {{0, "Hitpoint Warning", (action_f) do_cmd_hp_warn, 0}, 'H'} 
     4007        {{0, "Set base delay factor", (action_f) do_cmd_delay, 0}, 'D'}, 
     4008        {{0, "Set hitpoint warning", (action_f) do_cmd_hp_warn, 0}, 'H'} 
    40104009}; 
    40114010 
  • trunk/src/config.h

    r41 r48  
    145145 
    146146/* 
    147  * OPTION: Allow use of the "flow_by_smell" and "flow_by_sound" 
     147 * OPTION: Allow use of the "adult_ai_smell" and "adult_ai_sound" 
    148148 * software options, which enable "monster flowing". 
    149149 */ 
     
    158158 
    159159/* 
    160  * OPTION: Allow use of the "smart_monsters" and "smart_packs" 
     160 * OPTION: Allow use of the "adult_ai_smart" and "adult_ai_packs" 
    161161 * software options, which attempt to make monsters smarter. 
    162162 * 
     
    168168 
    169169/* 
    170  * OPTION: Support multiple "player" grids in "map_info()" 
    171  */ 
    172 /* #define MAP_INFO_MULTIPLE_PLAYERS */ 
    173  
    174  
    175 /* 
    176170 * OPTION: Use the "complex" wall illumination code 
    177171 */ 
     
    192186 
    193187/* 
    194  * OPTION: Enable the "smart_learn" and "smart_cheat" options. 
    195  * They let monsters make more "intelligent" choices about attacks 
    196  * (including spell attacks) based on their observations of the 
    197  * player's reactions to previous attacks.  The "smart_cheat" option 
    198  * lets the monster know how the player would react to an attack 
    199  * without actually needing to make the attack.  The "smart_learn" 
    200  * option requires that a monster make a "failed" attack before 
     188 * OPTION: Enable the "adult_ai_learn" and "adult_ai_cheat" options. 
     189 * 
     190 * They let monsters make more "intelligent" choices about attacks (including 
     191 * spell attacks) based on their observations of the player's reactions to 
     192 * previous attacks.  The "cheat" option lets the monster know how the player 
     193 * would react to an attack without actually needing to make the attack.  The 
     194 * "learn" option requires that a monster make a "failed" attack before 
    201195 * learning that the player is not harmed by that attack. 
    202  * 
    203  * This adds about 3K to the memory and about 5K to the executable. 
    204196 */ 
    205197#define DRS_SMART_OPTIONS 
  • trunk/src/defines.h

    r46 r48  
    5050#define VERSION_MAJOR   3 
    5151#define VERSION_MINOR   0 
    52 #define VERSION_PATCH   7 
     52#define VERSION_PATCH   8 
    5353#define VERSION_EXTRA   0 
    5454 
     
    24332433#define OPT_stack_force_costs           9 
    24342434#define OPT_show_labels                         10 
    2435 #define OPT_show_weights                        11 
    2436 #define OPT_show_choices                        12 
    2437 #define OPT_show_details                        13 
     2435 
    24382436#define OPT_ring_bell                           14 
    24392437#define OPT_show_flavors                        15 
    2440 #define OPT_run_ignore_stairs           16 
    24412438#define OPT_run_ignore_doors            17 
    24422439#define OPT_run_cut_corners                     18 
     
    24472444#define OPT_disturb_state                       23 
    24482445#define OPT_disturb_minor                       24 
    2449 /* xxx OPT_next_xp 25 */ 
    2450 /* xxx OPT_alert_hitpoint 26 */ 
    2451 /* xxx OPT_alert_failure 27 */ 
     2446 
    24522447#define OPT_verify_destroy                      28 
    24532448#define OPT_verify_special                      29 
    2454 #define OPT_allow_quantity                      30 
    2455 /* xxx 31 */ 
    2456 /* xxx OPT_auto_haggle 32 */ 
    2457 #define OPT_auto_scum                           33 
    2458 /* xxx testing_stack 33 */ 
    2459 /* xxx testing_carry 34 */ 
    2460 #define OPT_expand_look                         36 
    2461 #define OPT_expand_list                         37 
     2449 
    24622450#define OPT_view_perma_grids            38 
    24632451#define OPT_view_torch_grids            39 
    2464 #define OPT_dungeon_align                       40 
    2465 #define OPT_dungeon_stair                       41 
    2466 #define OPT_flow_by_sound                       42 
    2467 #define OPT_flow_by_smell                       43 
    2468 /* xxx track_follow */ 
    2469 /* xxx track_target */ 
    2470 #define OPT_smart_learn                         46 
    2471 #define OPT_smart_cheat                         47 
    2472 #define OPT_view_reduce_lite            48 
    2473 #define OPT_hidden_player                       49 
    2474 #define OPT_avoid_abort                         50 
    2475 #define OPT_avoid_other                         51 
     2452 
    24762453#define OPT_flush_failure                       52 
    24772454#define OPT_flush_disturb                       53 
    2478 /* xxx */ 
     2455 
    24792456#define OPT_fresh_before                        55 
    24802457#define OPT_fresh_after                         56 
    2481 /* xxx */ 
    2482 #define OPT_compress_savefile           58 
     2458 
    24832459#define OPT_hilite_player                       59 
    24842460#define OPT_view_yellow_lite            60 
     
    24922468#define OPT_center_player                       68 
    24932469#define OPT_run_avoid_center            69 
    2494 /* xxx */ 
     2470 
    24952471#define OPT_auto_more                           71 
    2496 #define OPT_smart_monsters                      72 
    2497 #define OPT_smart_packs                         73 
    24982472#define OPT_hp_changes_color            74 
    2499 /* xxx */ 
    2500 /* xxx */ 
    2501 /* xxx */ 
    2502 /* xxx */ 
    2503 /* xxx */ 
    2504 /* xxx xxx */ 
    2505 #define OPT_birth_point_based       (OPT_BIRTH+0) 
    2506 #define OPT_birth_auto_roller       (OPT_BIRTH+1) 
    2507 #define OPT_birth_maximize          (OPT_BIRTH+2) 
    2508 #define OPT_birth_preserve          (OPT_BIRTH+3) 
    2509 #define OPT_birth_ironman           (OPT_BIRTH+4) 
    2510 #define OPT_birth_no_stores         (OPT_BIRTH+5) 
    2511 #define OPT_birth_no_artifacts      (OPT_BIRTH+6) 
    2512 #define OPT_birth_rand_artifacts    (OPT_BIRTH+7) 
    2513 #define OPT_birth_no_stacking       (OPT_BIRTH+8) 
    2514 /* xxx xxx */ 
     2473 
     2474 
     2475#define OPT_birth_maximize          (OPT_BIRTH+0) 
     2476#define OPT_birth_randarts          (OPT_BIRTH+1) 
     2477#define OPT_birth_autoscum          (OPT_BIRTH+2) 
     2478#define OPT_birth_ironman           (OPT_BIRTH+3) 
     2479#define OPT_birth_no_stores         (OPT_BIRTH+4) 
     2480#define OPT_birth_no_artifacts      (OPT_BIRTH+5) 
     2481#define OPT_birth_no_stacking       (OPT_BIRTH+6) 
     2482#define OPT_birth_no_preserve       (OPT_BIRTH+7) 
     2483#define OPT_birth_no_stairs                     (OPT_BIRTH+8) 
     2484/* leave four spaces for future */ 
     2485#define OPT_birth_ai_sound                      (OPT_BIRTH+13) 
     2486#define OPT_birth_ai_smell                      (OPT_BIRTH+14) 
     2487#define OPT_birth_ai_packs                      (OPT_BIRTH+15) 
     2488#define OPT_birth_ai_learn                      (OPT_BIRTH+16) 
     2489#define OPT_birth_ai_cheat                      (OPT_BIRTH+17) 
     2490#define OPT_birth_ai_smart                      (OPT_BIRTH+18) 
     2491 
    25152492#define OPT_cheat_peek                          (OPT_CHEAT+0) 
    25162493#define OPT_cheat_hear                          (OPT_CHEAT+1) 
     
    25192496#define OPT_cheat_know                          (OPT_CHEAT+4) 
    25202497#define OPT_cheat_live                          (OPT_CHEAT+5) 
    2521 /* xxx xxx */ 
    2522 #define OPT_adult_point_based           (OPT_ADULT+0) 
    2523 #define OPT_adult_auto_roller           (OPT_ADULT+1) 
    2524 #define OPT_adult_maximize                      (OPT_ADULT+2) 
    2525 #define OPT_adult_preserve                      (OPT_ADULT+3) 
    2526 #define OPT_adult_ironman                       (OPT_ADULT+4) 
    2527 #define OPT_adult_no_stores                     (OPT_ADULT+5) 
    2528 #define OPT_adult_no_artifacts          (OPT_ADULT+6) 
    2529 #define OPT_adult_rand_artifacts        (OPT_ADULT+7) 
    2530 #define OPT_adult_no_stacking           (OPT_ADULT+8) 
    2531 /* xxx xxx */ 
     2498 
     2499#define OPT_adult_maximize          (OPT_ADULT+0) 
     2500#define OPT_adult_randarts          (OPT_ADULT+1) 
     2501#define OPT_adult_autoscum          (OPT_ADULT+2) 
     2502#define OPT_adult_ironman           (OPT_ADULT+3) 
     2503#define OPT_adult_no_stores         (OPT_ADULT+4) 
     2504#define OPT_adult_no_artifacts      (OPT_ADULT+5) 
     2505#define OPT_adult_no_stacking       (OPT_ADULT+6) 
     2506#define OPT_adult_no_preserve       (OPT_ADULT+7) 
     2507#define OPT_adult_no_stairs                     (OPT_ADULT+8) 
     2508/* leave four spaces for future */ 
     2509#define OPT_adult_ai_sound                      (OPT_ADULT+13) 
     2510#define OPT_adult_ai_smell                      (OPT_ADULT+14) 
     2511#define OPT_adult_ai_packs                      (OPT_ADULT+15) 
     2512#define OPT_adult_ai_learn                      (OPT_ADULT+16) 
     2513#define OPT_adult_ai_cheat                      (OPT_ADULT+17) 
     2514#define OPT_adult_ai_smart                      (OPT_ADULT+18) 
     2515 
    25322516#define OPT_score_peek                          (OPT_SCORE+0) 
    25332517#define OPT_score_hear                          (OPT_SCORE+1) 
     
    25362520#define OPT_score_know                          (OPT_SCORE+4) 
    25372521#define OPT_score_live                          (OPT_SCORE+5) 
    2538 /* xxx xxx */ 
    25392522 
    25402523 
     
    25532536#define stack_force_costs               op_ptr->opt[OPT_stack_force_costs] 
    25542537#define show_labels                             op_ptr->opt[OPT_show_labels] 
    2555 #define show_weights                    op_ptr->opt[OPT_show_weights] 
    2556 #define show_choices                    op_ptr->opt[OPT_show_choices] 
    2557 #define show_details                    op_ptr->opt[OPT_show_details] 
    25582538#define ring_bell                               op_ptr->opt[OPT_ring_bell] 
    25592539#define show_flavors                    op_ptr->opt[OPT_show_flavors] 
    2560 #define run_ignore_stairs               op_ptr->opt[OPT_run_ignore_stairs] 
    25612540#define run_ignore_doors                op_ptr->opt[OPT_run_ignore_doors] 
    25622541#define run_cut_corners                 op_ptr->opt[OPT_run_cut_corners] 
     
    25672546#define disturb_state                   op_ptr->opt[OPT_disturb_state] 
    25682547#define disturb_minor                   op_ptr->opt[OPT_disturb_minor] 
    2569 /* xxx next_xp */ 
    2570 /* xxx */ 
    2571 /* xxx alert_failure */ 
    25722548#define verify_destroy                  op_ptr->opt[OPT_verify_destroy] 
    25732549#define verify_special                  op_ptr->opt[OPT_verify_special] 
    2574 #define allow_quantity                  op_ptr->opt[OPT_allow_quantity] 
    2575 /* xxx */ 
    2576 /* auto_haggle */ 
    2577 #define auto_scum                               op_ptr->opt[OPT_auto_scum] 
    2578 /* xxx testing_stack */ 
    2579 /* xxx testing_carry */ 
    2580 #define expand_look                             op_ptr->opt[OPT_expand_look] 
    2581 #define expand_list                             op_ptr->opt[OPT_expand_list] 
    25822550#define view_perma_grids                op_ptr->opt[OPT_view_perma_grids] 
    25832551#define view_torch_grids                op_ptr->opt[OPT_view_torch_grids] 
    2584 #define dungeon_align                   op_ptr->opt[OPT_dungeon_align] 
    2585 #define dungeon_stair                   op_ptr->opt[OPT_dungeon_stair] 
    2586 #define flow_by_sound                   op_ptr->opt[OPT_flow_by_sound] 
    2587 #define flow_by_smell                   op_ptr->opt[OPT_flow_by_smell] 
    2588 /* xxx track_follow */ 
    2589 /* xxx track_target */ 
    2590 #define smart_learn                             op_ptr->opt[OPT_smart_learn] 
    2591 #define smart_cheat                             op_ptr->opt[OPT_smart_cheat] 
    2592 #define view_reduce_lite                op_ptr->opt[OPT_view_reduce_lite] 
    2593 #define hidden_player                   op_ptr->opt[OPT_hidden_player] 
    2594 #define avoid_abort                             op_ptr->opt[OPT_avoid_abort] 
    2595 #define avoid_other                             op_ptr->opt[OPT_avoid_other] 
    25962552#define flush_failure                   op_ptr->opt[OPT_flush_failure] 
    25972553#define flush_disturb                   op_ptr->opt[OPT_flush_disturb] 
    2598 /* xxx */ 
    25992554#define fresh_before                    op_ptr->opt[OPT_fresh_before] 
    26002555#define fresh_after                             op_ptr->opt[OPT_fresh_after] 
    2601 /* xxx */ 
    2602 #define compress_savefile               op_ptr->opt[OPT_compress_savefile] 
    26032556#define hilite_player                   op_ptr->opt[OPT_hilite_player] 
    26042557#define view_yellow_lite                op_ptr->opt[OPT_view_yellow_lite] 
     
    26122565#define center_player                   op_ptr->opt[OPT_center_player] 
    26132566#define run_avoid_center                op_ptr->opt[OPT_run_avoid_center] 
    2614 /* xxx */ 
    26152567#define auto_more                               op_ptr->opt[OPT_auto_more] 
    2616 #define smart_monsters                  op_ptr->opt[OPT_smart_monsters] 
    2617 #define smart_packs                             op_ptr->opt[OPT_smart_packs] 
    26182568#define hp_changes_color                op_ptr->opt[OPT_hp_changes_color] 
    2619 /* xxx */ 
    2620 /* xxx */ 
    2621 /* xxx */ 
    2622 /* xxx */ 
    2623 /* xxx */ 
    2624 /* xxx xxx */ 
    2625 #define birth_point_based               op_ptr->opt[OPT_birth_point_based] 
    2626 #define birth_auto_roller               op_ptr->opt[OPT_birth_auto_roller] 
     2569 
    26272570#define birth_maximize                  op_ptr->opt[OPT_birth_maximize] 
    2628 #define birth_preserve                  op_ptr->opt[OPT_birth_preserve] 
     2571#define birth_randarts                  op_ptr->opt[OPT_birth_randarts] 
     2572#define birth_autoscum                  op_ptr->opt[OPT_birth_autoscum] 
    26292573#define birth_ironman                   op_ptr->opt[OPT_birth_ironman] 
    26302574#define birth_no_stores                 op_ptr->opt[OPT_birth_no_stores] 
    26312575#define birth_no_artifacts              op_ptr->opt[OPT_birth_no_artifacts] 
    2632 #define birth_rand_artifacts    op_ptr->opt[OPT_birth_rand_artifacts] 
    26332576#define birth_no_stacking       op_ptr->opt[OPT_birth_no_stacking] 
    2634 /* xxx xxx */ 
     2577#define birth_no_preserve       op_ptr->opt[OPT_birth_no_preserve] 
     2578#define birth_no_stairs                 op_ptr->opt[OPT_birth_no_stairs] 
     2579#define birth_ai_sound                  op_ptr->opt[OPT_birth_ai_sound] 
     2580#define birth_ai_smell                  op_ptr->opt[OPT_birth_ai_smell] 
     2581#define birth_ai_packs                  op_ptr->opt[OPT_birth_ai_packs] 
     2582#define birth_ai_learn                  op_ptr->opt[OPT_birth_ai_learn] 
     2583#define birth_ai_cheat                  op_ptr->opt[OPT_birth_ai_cheat] 
     2584#define birth_