summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/docs/options_guide.txt7
-rw-r--r--crawl-ref/settings/init.txt1
-rw-r--r--crawl-ref/source/initfile.cc2
-rw-r--r--crawl-ref/source/options.h1
-rw-r--r--crawl-ref/source/viewgeom.cc12
5 files changed, 20 insertions, 3 deletions
diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt
index e9f55dd4ca..0ed1da5dae 100644
--- a/crawl-ref/docs/options_guide.txt
+++ b/crawl-ref/docs/options_guide.txt
@@ -67,7 +67,7 @@ The contents of this text are:
status_caption_colour, delay_message_clear,
show_inventory_weights, show_gold_turns, show_beam,
item_stack_summary_minimum, list_rotten,
- mlist_min_height, msg_max_height,
+ mlist_min_height, msg_max_height, messages_at_top,
mlist_allow_alternate_layout, mlist_targetting, classic_hud,
menu_colour, menu_colour_prefix_class, menu_colour_shops,
message_colour, force_more_message,
@@ -1329,6 +1329,11 @@ msg_max_height = 10
expanded, the message area will expand up to this height.
The monster list will get the rest.
+messages_at_top = false
+ Put the message window at the top of the screen. This moves
+ the last message close to the center of the view in conjunction
+ with delay_message_clear.
+
mlist_allow_alternate_layout = false
Display the monster list wherever Crawl may find space on
your console display, usually to the left of the map, rather
diff --git a/crawl-ref/settings/init.txt b/crawl-ref/settings/init.txt
index 6056ea971b..bcc34aeb43 100644
--- a/crawl-ref/settings/init.txt
+++ b/crawl-ref/settings/init.txt
@@ -247,6 +247,7 @@ sort_menus = inv: true : equipped, freshness, charged
# mlist_min_height = 5
# msg_max_height = 10
# mlist_allow_alternate_layout = true
+# messages_at_top = true
# mlist_targetting = true
# show_gold_turns = true
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index 559239da67..b0e1d91e14 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -608,6 +608,7 @@ void game_options::reset_options()
mlist_min_height = 5;
msg_max_height = 10;
mlist_allow_alternate_layout = false;
+ messages_at_top = false;
mlist_targetting = false;
classic_hud = false;
msg_condense_repeats = true;
@@ -2425,6 +2426,7 @@ void game_options::read_option_line(const std::string &str, bool runscript)
else INT_OPTION(mlist_min_height, 0, INT_MAX);
else INT_OPTION(msg_max_height, 6, INT_MAX);
else BOOL_OPTION(mlist_allow_alternate_layout);
+ else BOOL_OPTION(messages_at_top);
#ifndef USE_TILE
else BOOL_OPTION(mlist_targetting);
#endif
diff --git a/crawl-ref/source/options.h b/crawl-ref/source/options.h
index 8467480cdc..2e64f1f680 100644
--- a/crawl-ref/source/options.h
+++ b/crawl-ref/source/options.h
@@ -60,6 +60,7 @@ public:
int mlist_min_height;
int msg_max_height;
bool mlist_allow_alternate_layout;
+ bool messages_at_top;
bool mlist_targetting;
bool classic_hud;
bool msg_condense_repeats;
diff --git a/crawl-ref/source/viewgeom.cc b/crawl-ref/source/viewgeom.cc
index 7c2c2bd156..784a402bcc 100644
--- a/crawl-ref/source/viewgeom.cc
+++ b/crawl-ref/source/viewgeom.cc
@@ -130,8 +130,16 @@ class _inline_layout : public _layout
}
// Finish off by doing the positions.
- viewp = termp;
- msgp = termp + coord_def(0, std::max(viewsz.y, hudsz.y+mlistsz.y));
+ if (Options.messages_at_top)
+ {
+ msgp = termp;
+ viewp = termp + coord_def(0, msgsz.y);
+ }
+ else
+ {
+ viewp = termp;
+ msgp = termp + coord_def(0, std::max(viewsz.y, hudsz.y+mlistsz.y));
+ }
hudp = viewp + coord_def(viewsz.x+hud_gutter, 0);
mlistp = hudp + coord_def(0, hudsz.y);