summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/guic.cc68
-rw-r--r--crawl-ref/source/libgui.cc4
2 files changed, 22 insertions, 50 deletions
diff --git a/crawl-ref/source/guic.cc b/crawl-ref/source/guic.cc
index f5f0cdc862..1d6df5a660 100644
--- a/crawl-ref/source/guic.cc
+++ b/crawl-ref/source/guic.cc
@@ -3,7 +3,8 @@
* see guic-*.cc for system dependent implementations
*/
-// Class defines
+#include "AppHdr.h"
+#include "debug.h"
#include "guic.h"
#ifdef WIN32TILES
@@ -76,9 +77,7 @@ const int term_colors[MAX_TERM_COL][3]=
{255, 255, 82}, // YELLOW
{255, 255, 255} // WHITE
};
-/*------------------------------------------*/
-// ������
WinClass::WinClass()
{
// Minimum;
@@ -90,7 +89,6 @@ WinClass::WinClass()
SysInit();
}
-// �I��
WinClass::~WinClass()
{
SysDeinit();
@@ -115,7 +113,7 @@ void WinClass::placeRegion(RegionClass *r, int layer0,
r->sx = x;
r->sy = y;
-
+
r->ox = r->sx + margin_left;
r->oy = r->sy + margin_top;
r->wx = r->dx * r->mx + margin_left + margin_right;
@@ -195,21 +193,6 @@ void WinClass::resize(int wx0, int wy0)
resize(); // system dependent
}
-/*------------------------------------------*/
-
-/* �������̏���
- * 0 (�e�N���X�̏����A����)
- * 1 �@�틤�ʏ���
- * 2 �@���ˑ�����
- *
- * �I�������̏���
- * 1 �@���ˑ�����
- * 2 �@�틤�ʏ���
- * (3) (�e�N���X�̏����A����)
- */
-
-
-//������
RegionClass::RegionClass()
{
flag = false;
@@ -222,12 +205,11 @@ RegionClass::RegionClass()
id = 0;
}
-//�I������
RegionClass::~RegionClass()
{
SysDeinit();
- // �o�b�N�o�b�t�@����
- if (backbuf != NULL) ImgDestroy(backbuf);
+ if (backbuf != NULL)
+ ImgDestroy(backbuf);
}
void TextRegionClass::resize(int x, int y)
@@ -246,7 +228,6 @@ void TextRegionClass::resize(int x, int y)
my = y;
}
-// ������
TextRegionClass::TextRegionClass(int x, int y, int cx, int cy)
{
cbuf = NULL;
@@ -257,11 +238,9 @@ TextRegionClass::TextRegionClass(int x, int y, int cx, int cy)
cx_ofs = cx;
cy_ofs = cy;
- //�@���ˑ�����
SysInit(x, y, cx, cy);
}
-//�I������
TextRegionClass::~TextRegionClass()
{
SysDeinit();
@@ -269,7 +248,6 @@ TextRegionClass::~TextRegionClass()
free(abuf);
}
-//������
TileRegionClass::TileRegionClass(int mx0, int my0, int dx0, int dy0)
{
// Unit size
@@ -280,11 +258,9 @@ TileRegionClass::TileRegionClass(int mx0, int my0, int dx0, int dy0)
my = my0;
force_redraw = false;
- //�@���ˑ�����
SysInit(mx0, my0, dx0, dy0);
}
-//�I������
TileRegionClass::~TileRegionClass()
{
SysDeinit();
@@ -298,7 +274,6 @@ void TileRegionClass::resize(int mx0, int my0, int dx0, int dy0)
if (dy0 != 0) dy = dy0;
}
-// ������
MapRegionClass::MapRegionClass(int x, int y, int o_x, int o_y, bool iso)
{
int i;
@@ -318,11 +293,9 @@ MapRegionClass::MapRegionClass(int x, int y, int o_x, int o_y, bool iso)
y_margin = o_y;
force_redraw = false;
- //�@���ˑ�����
SysInit(x, y, o_x, o_y);
}
-//�I������
MapRegionClass::~MapRegionClass()
{
SysDeinit();
@@ -514,6 +487,11 @@ void TextRegionClass::scroll()
abuf[idx] = 0;
}
redraw(0, 0, mx-1, my-1);
+
+ if (print_y > 0)
+ print_y -= 1;
+ if (cursor_y > 0)
+ cursor_y -= 1;
}
void TextRegionClass::adjust_region(int *x1, int *x2, int y)
@@ -555,10 +533,7 @@ void TextRegionClass::addstr(char *buffer)
j=0;
if(print_y - cy_ofs == my)
- {
- scroll();
- print_y--;
- }
+ scroll();
}
}
}
@@ -574,7 +549,8 @@ void TextRegionClass::addstr_aux(char *buffer, int len)
int head = x;
int tail = x + len - 1;
- if(!flag)return;
+ if(!flag)
+ return;
adjust_region(&head, &tail, y);
@@ -590,7 +566,8 @@ void TextRegionClass::addstr_aux(char *buffer, int len)
void TextRegionClass::redraw(int x1, int y1, int x2, int y2)
{
int x, y;
- if(!flag)return;
+ if(!flag)
+ return;
for(y=y1;y<=y2;y++)
{
@@ -633,11 +610,13 @@ void TextRegionClass::clear_to_end_of_line()
int col = text_col;
int adrs = cy * mx;
- if(!flag)return;
+ if(!flag)
+ return;
+ ASSERT(adrs + mx - 1 < mx * my);
for(i=cx; i<mx; i++){
- cbuf[adrs+i]=' ';
- abuf[adrs+i]=col;
+ cbuf[adrs+i] = ' ';
+ abuf[adrs+i] = col;
}
redraw(cx, cy, mx-1, cy);
}
@@ -722,10 +701,3 @@ void TextRegionClass::_setcursortype(int curstype)
cursor_region = text_mode;
}
}
-
-#if 0
-int TextRegionClass::get_number_of_lines()
-{
- return (text_mode->cx_ofs + text_mode->my);
-}
-#endif
diff --git a/crawl-ref/source/libgui.cc b/crawl-ref/source/libgui.cc
index 08e00b2a5d..ce4a57f984 100644
--- a/crawl-ref/source/libgui.cc
+++ b/crawl-ref/source/libgui.cc
@@ -578,9 +578,9 @@ void libgui_init()
#if DEBUG_DIAGNOSTICS
// one more line for debug GPS
- region_stat = new TextRegionClass(40, 17, 0, 0);
+ region_stat = new TextRegionClass(crawl_view.hudsz.x, crawl_view.hudsz.y + 1, 0, 0);
#else
- region_stat = new TextRegionClass(40, 16, 0, 0);
+ region_stat = new TextRegionClass(crawl_view.hudsz.x, crawl_view.hudsz.y, 0, 0);
#endif
region_stat->id = REGION_STAT;
region_msg = new TextRegionClass(msg_x, msg_y, 0, 0);