Add "classic_hud" option. Defaults to false. Removes hp bar, monster list. Added some macros to reduce copy/paste in initfile.cc. Renamed mlist_allow_inline to mlist_allow_alternate_layout so the sense is more accurate.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4092 c06c8d41-db1a-0410-9941-cceddc491573
IXW2IM5ITYDCXDB3ORDDVAR5XUSPVQ3BWLP3Q6TRXNTIKGMZTHXAC ZKN272TWRE5GNCJHO6VE7KARVLEIPE6P27TELZKLVIILMCW54MUQC CWPA3Q5BG7KTTY6GX7CCS26PWC4UHJ47PUCMJX5BOJIP3FSTP2BQC NY5JJY33IHF5EKTLPDFVYTN3PFNKV4A3MAH5MRQ3AWH53L2HFIQQC HC2I3WK2Y2CHHLDCM4Q4OQQUH634FX42ULNJ2OXKRYKISKXRRFJAC Q263OF72GJOH2VQHGCF5IYZ5UHKV5DNX3J3WTCEONPN3WGGNZOUQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC PUZ35HA537R2HZPB7SZ5KLHDOR2DXNQG7CM2UQ7LIHF55GR7LN5QC QJR4HINDRTZC7FMV6V27HBPBSLCAKBGPSMH34WPVNPRPKWXVVEOAC 3VWSZUGYL36SO5AOZRASGK3VHFCFZUGGCGRT3R7BZB36IZPN7OSQC 4UQBOVCMAMNCCF6PPX222H6JJO7MPYOKKC2NBKMVYIT5R5FOACNAC EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC SIKFXNXSAMU6IYRGDG6SWP3LOX6SEE7PDFA7RVQAGG2SLWQ72D2QC 43BZJ22AMZ4562BBF325ABM5W7GLUT3MDUOHAQ5QJPPQFGTBISKAC LCCFD6BLLDJO3PVPKKJ7YJ4PQUHLUKQBWRCYRH26UVMOTYZPJQRQC O2GH2BHUL4XXIIJSMKNV2NIC4KQACE6HLMUL4KEUDFNFEAGMZSZAC BFYHDL4EHSPKKC6EPKDRPESHYAA2WFKC6RXQIRRTSSTF3Z2QPVCAC K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC AMBBZGB4EP4MA2ILKQSAY4O2XQAIH673JHCDQ6N4MBGL2MAZGXNAC AXQJOPTECRU3ECV3ICDUR6SGBIOIZT5HIOSJ77MRLF5ECGOITMDQC 72CQFK27NR37P2WQ32U4PEXXKMRIO7JEMJN2ZCPNVPZMT7UPFJJAC WYMN37VYSETF56RTTJ45VMB2YS4OUUKRL2JNWJSUKNLBFGGGECNQC GSPHLNMEIUY5KSOV2LPKQLGJVBPGHXZENIXSJELA6ZBT74F5ZGRQC WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC 4GFCF6N3MZSCHUB77Z3SQYJ3FYR5N3VBW2CGWANLJ74O5FEQH3CQC GSQ72ULBSL6WBJZUB3GJKAPQDXZIQV7B2TDBA5OP2WVGHVJMCQFQC 6OPWKN5LKYBZQLD25BGC4T3P5KXCJM6KNLOEQCPMLKYPY3UATKEQC ASFH3NFXSJ6AWVLIBJNTIC35HCOSHY42YQG2ELGPEYAULZUIRRRQC 6BO27PEAAOYJEOL5F5RWDMSLU7WUYSKC4LCANVIDMRZRMZWCEYUAC 45QV77UI6QFW4234P365LD3FGJYRVWTT5455DPB324NG2NFQMKTQC 74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC CAHE52HL2ZGRJPBYZ3DS4BVKUD2XC7N3SG25TGG7JGHGJDST4P3QC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC TR4NPGNO5QNNRJNVMNSUEO5QLT37HCXXDOBKXCB5XWXRQNAJ5SHAC IIN7AVA6JYRBXH6ZYRR7BY7TV6PW7ANAQ2A3PD55FKBKKQFEEF2AC 3D6NWJ44UYHLZMD3BOQIWXJUEGITAVCHK6Z2WWDQONVQC4HSBRXQC UPJVSMMMHGRDUIJG4MZX6IBLQ4ODBF5Z3PF3RHDYTSAEOCVDZM5AC D77K7ISUWRLGNSQGYH5P2KEJZCNYQHDZC5AMLSKTXVBIRNG6F5KQC VNIAJEGE3PYE6F6EAMCQDWMAS52EQTKJUPAFXK7ARCITZ326WTTQC TJISAZK5RWKXIIC5UTQNY4KT3UX3ASGBUQQNWZ7ZDULPRYFRZXQQC 547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC 3YK4G4IQBXW63HPGU5WRTV6L2FCMKAK4DOTCHFK2FNSB5B3Y3PVQC F2ZJ55CL3T66DFM34BQWCJNHIT4XJFCGTWTA5KESV6NHWFLTGUYAC SKV6JBDAWUWTFECFSQARSNA3DDPUFCR7N3T7D5J35NYTEDMXLP3QC 5RK245FAGZFCDDYG4AZAXSC7JPVIJG4DSAVAKHWWVBUNGICHYNJQC JM6GKZ6VMX6FNVOZIDXIV22HGX7YESMIFZFE6EEQVCMFJIEA3FNAC EAQJ2VSSFA3MKDR7ELP7M5VHTHGN2DCBPPZHXRAXDRKKAX2R6SHQC STQDS62PD6PCLYBAB7LPYTG47WMBJP3FIJL55UHC3XFDPGERC3UQC DGB7DKTR6OEQEMOOF3MAHDT4PAPKZ54Y33MWYVD7XIOESPFAXHQQC V6REAY6RCAG2QQ4BO54GHYOVTNCYHTLERJCIZJPSANXFBINZOTXAC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC if (mlistsz.y < Options.mlist_min_height)_increment(mlistsz.y, leftover_rightcol_y(), Options.mlist_min_height);_increment(msgsz.y, leftover_y(), MSG_MAX_HEIGHT);_increment(mlistsz.y, leftover_rightcol_y(), INT_MAX);
if (Options.classic_hud){mlistsz.y = 0;_increment(msgsz.y, leftover_y(), MSG_MAX_HEIGHT);}else{if (mlistsz.y < Options.mlist_min_height)_increment(mlistsz.y, leftover_rightcol_y(), Options.mlist_min_height);_increment(msgsz.y, leftover_y(), MSG_MAX_HEIGHT);_increment(mlistsz.y, leftover_rightcol_y(), INT_MAX);}
#define BOOL_OPTION_NAMED(_opt_str, _opt_var) \if (key == _opt_str) do { \this->_opt_var = _read_bool(field, this->_opt_var); \} while (false)#define BOOL_OPTION(_opt) BOOL_OPTION_NAMED(#_opt, _opt)#define COLOUR_OPTION_NAMED(_opt_str, _opt_var) \if (key == _opt_str) do { \const int col = str_to_colour( field ); \if (col != -1) { \this->_opt_var = col; \} else { \/*fprintf( stderr, "Bad %s -- %s\n", key, field.c_str() );*/ \crawl_state.add_startup_error( \make_stringf("Bad %s -- %s\n", \key.c_str(), field.c_str())); \} \} while (false)#define COLOUR_OPTION(_opt) COLOUR_OPTION_NAMED(#_opt, _opt)#define CURSES_OPTION_NAMED(_opt_str, _opt_var) \if (key == _opt_str) do { \this->_opt_var = curses_attribute(field); \} while (false)#define CURSES_OPTION(_opt) CURSES_OPTION_NAMED(#_opt, _opt)
else if (key == "use_old_selection_order"){// use old order of species/classes on selection screen?use_old_selection_order = _read_bool( field, use_old_selection_order );}else if (key == "default_autopickup"){// should autopickup default to on or off?autopickup_on = _read_bool( field, autopickup_on );}else if (key == "default_autoprayer"){// should autoprayer default to on or off?autoprayer_on = _read_bool( field, autoprayer_on );}else if (key == "show_inventory_weights"){// should weights be shown on inventory items?show_inventory_weights = _read_bool( field, show_inventory_weights );}else if (key == "suppress_startup_errors"){suppress_startup_errors = _read_bool( field, suppress_startup_errors );}else if (key == "clean_map"){// removes monsters/clouds from mapclean_map = _read_bool( field, clean_map );}else if (key == "colour_map" || key == "color_map"){// colour-codes play-screen mapcolour_map = _read_bool( field, colour_map );}
else BOOL_OPTION(use_old_selection_order);else BOOL_OPTION_NAMED("default_autopickup", autopickup_on);else BOOL_OPTION_NAMED("default_autoprayer", autoprayer_on);else BOOL_OPTION(show_inventory_weights);else BOOL_OPTION(suppress_startup_errors);else BOOL_OPTION(clean_map);else BOOL_OPTION(colour_map);else BOOL_OPTION_NAMED("color_map", colour_map); // common misspelling :)
}else if (key == "easy_quit_item_lists"|| key == "easy_quit_item_prompts"){// allow aborting of item lists with spaceeasy_quit_item_prompts = _read_bool( field,easy_quit_item_prompts );}else if (key == "easy_open"){// automatic door opening with movementeasy_open = _read_bool( field, easy_open );}else if (key == "easy_armor"|| key == "easy_armour"|| key == "easy_unequip"){// automatic removal of armour when droppingeasy_unequip = _read_bool( field, easy_unequip );}else if (key == "easy_butcher"){// automatic knife switchingeasy_butcher = _read_bool( field, easy_butcher );}else if (key == "always_confirm_butcher"){always_confirm_butcher = _read_bool( field, always_confirm_butcher );
else if (key == "list_rotten"){list_rotten = _read_bool( field, list_rotten );}
else BOOL_OPTION(easy_quit_item_prompts);else BOOL_OPTION_NAMED("easy_quit_item_lists", easy_quit_item_prompts);else BOOL_OPTION(easy_open);else BOOL_OPTION(easy_unequip);else BOOL_OPTION_NAMED("easy_armour", easy_unequip);else BOOL_OPTION_NAMED("easy_armor", easy_unequip);else BOOL_OPTION(easy_butcher);else BOOL_OPTION(always_confirm_butcher);else BOOL_OPTION(list_rotten);
}else if (key == "background"){// change background colour// Experimental! This may look really bad!const int col = str_to_colour( field );if (col != -1)background = col;elsefprintf( stderr, "Bad colour -- %s\n", field.c_str() );
else if (key == "detected_item_colour"){const int col = str_to_colour( field );if (col != -1)detected_item_colour = col;elsefprintf( stderr, "Bad detected_item_colour -- %s\n",field.c_str());}else if (key == "detected_monster_colour"){const int col = str_to_colour( field );if (col != -1)detected_monster_colour = col;elsefprintf( stderr, "Bad detected_monster_colour -- %s\n",field.c_str());}
else COLOUR_OPTION(background);else COLOUR_OPTION(detected_item_colour);else COLOUR_OPTION(detected_monster_colour);
else if (key == "friend_brand"){// Use curses attributes to mark friend// Some may look bad on some terminals.// As a suggestion, try "rxvt -rv -fn 10x20" under Un*xesfriend_brand = curses_attribute(field);}else if (key == "neutral_brand"){neutral_brand = curses_attribute(field);}else if (key == "stab_brand"){stab_brand = curses_attribute(field);}else if (key == "may_stab_brand"){may_stab_brand = curses_attribute(field);}else if (key == "stair_item_brand"){feature_item_brand = curses_attribute(field);}else if (key == "trap_item_brand"){trap_item_brand = curses_attribute(field);}else if (key == "no_dark_brand"){// This is useful for terms where dark grey does// not have standout modes (since it's black on black).// This option will use light-grey instead in these cases.no_dark_brand = _read_bool( field, no_dark_brand );}else if (key == "heap_brand"){// See friend_brand option upstairs. no_dark_brand applies// here as well.heap_brand = curses_attribute(field);}else if (key == "status_caption_colour"){const int col = str_to_colour( field );if (col != -1)status_caption_colour = col;elsecrawl_state.add_startup_error(make_stringf("Bad status_caption_colour -- %s\n", field.c_str()));}
else CURSES_OPTION(friend_brand);else CURSES_OPTION(neutral_brand);else CURSES_OPTION(stab_brand);else CURSES_OPTION(may_stab_brand);else CURSES_OPTION_NAMED("stair_item_brand", feature_item_brand);else CURSES_OPTION(trap_item_brand);// This is useful for terms where dark grey does// not have standout modes (since it's black on black).// This option will use light-grey instead in these cases.else BOOL_OPTION(no_dark_brand);// no_dark_brand applies here as well.else CURSES_OPTION(heap_brand);else COLOUR_OPTION(status_caption_colour);
}else if (key == "random_pick"){// randomly generate characterrandom_pick = _read_bool( field, random_pick );}else if (key == "remember_name"){remember_name = _read_bool( field, remember_name );
else if (key == "show_turns"){show_turns = _read_bool( field, show_turns );}else if (key == "show_beam"){show_beam = _read_bool( field, show_beam );}
else BOOL_OPTION(show_turns);else BOOL_OPTION(show_beam);
else if (key == "auto_list"){auto_list = _read_bool( field, auto_list );}
else BOOL_OPTION(auto_list);
else if (key == "mlist_force_inline"){mlist_force_inline = _read_bool(field, mlist_force_inline);}else if (key == "view_lock_x"){view_lock_x = _read_bool(field, view_lock_x);}else if (key == "view_lock_y"){view_lock_y = _read_bool(field, view_lock_y);}
else BOOL_OPTION(mlist_allow_alternate_layout);else BOOL_OPTION(classic_hud);else BOOL_OPTION(view_lock_x);else BOOL_OPTION(view_lock_y);
else if (key == "center_on_scroll"){center_on_scroll = _read_bool(field, center_on_scroll);}else if (key == "symmetric_scroll"){symmetric_scroll = _read_bool(field, symmetric_scroll);}
else BOOL_OPTION(center_on_scroll);else BOOL_OPTION(symmetric_scroll);
}else if (key == "note_skill_max"){note_skill_max = _read_bool( field, note_skill_max );}else if (key == "note_all_spells"){note_all_spells = _read_bool( field, note_all_spells );}else if (key == "delay_message_clear"){delay_message_clear = _read_bool( field, delay_message_clear );
else if (key == "pickup_thrown"){pickup_thrown = _read_bool(field, pickup_thrown);}else if (key == "pickup_dropped"){pickup_dropped = _read_bool(field, pickup_dropped);}
else BOOL_OPTION(pickup_thrown);else BOOL_OPTION(pickup_dropped);
else if (key == "use_fake_cursor"){use_fake_cursor = _read_bool(field, use_fake_cursor);}else if (key == "macro_meta_entry"){macro_meta_entry = _read_bool(field, macro_meta_entry);}
else BOOL_OPTION(use_fake_cursor);else BOOL_OPTION(macro_meta_entry);
else if (key == "classic_item_colours"){classic_item_colours = _read_bool(field, classic_item_colours);}else if (key == "item_colour" || key == "item_color"){item_colour = _read_bool(field, item_colour);}else if (key == "easy_exit_menu"){easy_exit_menu = _read_bool(field, easy_exit_menu);}else if (key == "dos_use_background_intensity"){dos_use_background_intensity =_read_bool(field, dos_use_background_intensity);}
else BOOL_OPTION(classic_item_colours);else BOOL_OPTION(item_colour);else BOOL_OPTION_NAMED("item_color", item_colour);else BOOL_OPTION(easy_exit_menu);else BOOL_OPTION(dos_use_background_intensity);
}else if (key == "explore_greedy"){explore_greedy = _read_bool(field, explore_greedy);}else if (key == "explore_improved"){explore_improved = _read_bool(field, explore_improved);}else if (key == "trap_prompt"){trap_prompt = _read_bool(field, trap_prompt);
else if (key == "menu_colour_prefix_class" ||key == "menu_color_prefix_class"){menu_colour_prefix_class = _read_bool(field, menu_colour_prefix_class);}else if (key == "menu_colour_prefix_id" ||key == "menu_color_prefix_id"){menu_colour_prefix_id = _read_bool(field, menu_colour_prefix_id);}
else BOOL_OPTION(menu_colour_prefix_class);else BOOL_OPTION_NAMED("menu_color_prefix_class", menu_colour_prefix_class);else BOOL_OPTION(menu_colour_prefix_id);else BOOL_OPTION_NAMED("menu_color_prefix_id", menu_colour_prefix_id);
else if (key == "level_map_title"){level_map_title = _read_bool(field, level_map_title);}else if (key == "target_zero_exp"){target_zero_exp = _read_bool(field, target_zero_exp);}else if (key == "target_oos"){target_oos = _read_bool(field, target_oos);}else if (key == "target_los_first"){target_los_first = _read_bool(field, target_los_first);}
else BOOL_OPTION(level_map_title);else BOOL_OPTION(target_zero_exp);else BOOL_OPTION(target_oos);else BOOL_OPTION(target_los_first);
}else if (key == "tile_title_screen"){tile_title_screen = _read_bool(field, tile_title_screen);
else if (key == "use_dos_char"){use_dos_char = _read_bool( field, use_dos_char );}
else BOOL_OPTION(use_dos_char);
mlist_force_inline = falseBy default, if the terminal size is large enough, the monsterlist will be placed to the left of the view. If this option isset to true, the monster list will only appear between thestatus hud and the message pane.
mlist_allow_alternate_layout = falseIf the terminal size is large enough, allow the monster listto be placed to the left of the view. By default, the monsterlist will only appear beween the HUD and the message pane.classic_hud = falseRemove the Health and Magic bars and the monster list, for amore 0.3-like HUD display.