CGE: Rename constants (WIP)

This commit is contained in:
Strangerke 2011-07-19 07:50:07 +02:00
parent 5190bbb7be
commit a073e78ba1
7 changed files with 60 additions and 78 deletions

View file

@ -42,8 +42,8 @@ void CGEEngine::snSelect() {
debugC(1, kDebugEngine, "CGEEngine::snSelect()");
inf(_text->getText(_hlp));
_talk->gotoxy(_talk->_x, FONT_HIG / 2);
(new Vmenu(this, _cho, SCR_WID / 2, _talk->_y + _talk->_h + TEXT_VM + FONT_HIG))->setName(_text->getText(MENU_TEXT));
_talk->gotoxy(_talk->_x, kFontHigh / 2);
(new Vmenu(this, _cho, SCR_WID / 2, _talk->_y + _talk->_h + kTextVMargin + kFontHigh))->setName(_text->getText(MENU_TEXT));
}
} // End of namespace CGE

View file

@ -37,12 +37,12 @@ GetText *GetText::_ptr = NULL;
GetText::GetText(CGEEngine *vm, const char *info, char *text, int size)
: Talk(vm), _text(text), _size(min<int>(size, GTMAX)), _len(min<int>(_size, strlen(text))),
_cntr(GTBLINK), _oldKeybClient(_keyboard->setClient(this)), _vm(vm) {
int i = 2 * TEXT_HM + _font->width(info);
int i = 2 * kTextHMargin + _font->width(info);
_ptr = this;
_mode = RECT;
_ts = new BMP_PTR[2];
_ts[0] = box((i + 3) & ~3, 2 * TEXT_VM + 2 * FONT_HIG + TEXT_LS);
_ts[0] = box((i + 3) & ~3, 2 * kTextVMargin + 2 * kFontHigh + kTextLineSpace);
_ts[1] = NULL;
setShapeList(_ts);
@ -108,7 +108,7 @@ void GetText::touch(uint16 mask, int x, int y) {
if (p)
x = ogon[p - bezo];
}
if (_len < _size && 2 * TEXT_HM + _font->width(_buff) + _font->_wid[x] <= _w) {
if (_len < _size && 2 * kTextHMargin + _font->width(_buff) + _font->_wid[x] <= _w) {
_buff[_len + 2] = _buff[_len + 1];
_buff[_len + 1] = _buff[_len];
_buff[_len++] = x;

View file

@ -32,23 +32,13 @@
#include "cge/events.h"
namespace CGE {
#define WID_SIZ 256
#define POS_SIZ 256
#define MAP_SIZ (256*8)
//uint8 FONT::Wid[WID_SIZ];
//uint16 FONT::Pos[POS_SIZ];
//uint8 FONT::Map[MAP_SIZ];
Font::Font(const char *name) {
_map = farnew(uint8, MAP_SIZ);
_pos = farnew(uint16, POS_SIZ);
_wid = farnew(uint8, WID_SIZ);
_map = farnew(uint8, kMapSize);
_pos = farnew(uint16, kPosSize);
_wid = farnew(uint8, kWidSize);
if ((_map == NULL) || (_pos == NULL) || (_wid == NULL))
error("No core");
mergeExt(_path, name, FONT_EXT);
mergeExt(_path, name, kFontExt);
load();
}
@ -63,10 +53,10 @@ Font::~Font() {
void Font::load() {
INI_FILE f(_path);
if (!f._error) {
f.read(_wid, WID_SIZ);
f.read(_wid, kWidSize);
if (!f._error) {
uint16 i, p = 0;
for (i = 0; i < POS_SIZ; i++) {
for (i = 0; i < kPosSize; i++) {
_pos[i] = p;
p += _wid[i];
}
@ -136,18 +126,18 @@ void Talk::deinit() {
void Talk::update(const char *tx) {
uint16 vmarg = (_mode) ? TEXT_VM : 0;
uint16 hmarg = (_mode) ? TEXT_HM : 0;
uint16 vmarg = (_mode) ? kTextVMargin : 0;
uint16 hmarg = (_mode) ? kTextHMargin : 0;
uint16 mw = 0, mh, ln = vmarg;
const char *p;
uint8 *m;
if (!_ts) {
uint16 k = 2 * hmarg;
mh = 2 * vmarg + FONT_HIG;
mh = 2 * vmarg + kFontHigh;
for (p = tx; *p; p++) {
if (*p == '|' || *p == '\n') {
mh += FONT_HIG + TEXT_LS;
mh += kFontHigh + kTextLineSpace;
if (k > mw)
mw = k;
k = 2 * hmarg;
@ -166,7 +156,7 @@ void Talk::update(const char *tx) {
while (* tx) {
if (*tx == '|' || *tx == '\n')
m = _ts[0]->_m + (ln += FONT_HIG + TEXT_LS) * mw + hmarg;
m = _ts[0]->_m + (ln += kFontHigh + kTextLineSpace) * mw + hmarg;
else {
int cw = _font->_wid[(unsigned char)*tx], i;
uint8 *f = _font->_map + _font->_pos[(unsigned char)*tx];
@ -174,9 +164,9 @@ void Talk::update(const char *tx) {
uint8 *pp = m;
uint16 n;
register uint16 b = *(f++);
for (n = 0; n < FONT_HIG; n++) {
for (n = 0; n < kFontHigh; n++) {
if (b & 1)
*pp = TEXT_FG;
*pp = kTextColFG;
b >>= 1;
pp += mw;
}
@ -194,7 +184,7 @@ void Talk::update(const char *tx) {
Bitmap *Talk::box(uint16 w, uint16 h) {
uint8 *b, * p, * q;
uint16 n, r = (_mode == ROUND) ? TEXT_RD : 0;
uint16 n, r = (_mode == ROUND) ? kTextRoundCorner : 0;
if (w < 8)
w = 8;
@ -203,7 +193,7 @@ Bitmap *Talk::box(uint16 w, uint16 h) {
b = farnew(uint8, n = w * h);
if (! b)
error("No core");
memset(b, TEXT_BG, n);
memset(b, kTextColBG, n);
if (_mode) {
p = b;
@ -245,10 +235,10 @@ void Talk::putLine(int line, const char *text) {
uint16 lsiz = 2 + dsiz + 2; // uint16 for line header, uint16 for gap
uint16 psiz = h * lsiz; // - last gap, but + plane trailer
uint16 size = 4 * psiz; // whole map size
uint16 rsiz = FONT_HIG * lsiz; // length of whole text row map
uint16 rsiz = kFontHigh * lsiz; // length of whole text row map
// set desired line pointer
v += (TEXT_VM + (FONT_HIG + TEXT_LS) * line) * lsiz;
v += (kTextVMargin + (kFontHigh + kTextLineSpace) * line) * lsiz;
p = v; // assume blanked line above text
// clear whole rectangle
@ -261,7 +251,7 @@ void Talk::putLine(int line, const char *text) {
// paint text line
if (text) {
uint8 *q;
p = v + 2 + TEXT_HM / 4 + (TEXT_HM % 4) * psiz;
p = v + 2 + kTextHMargin / 4 + (kTextHMargin % 4) * psiz;
q = v + size;
while (* text) {
@ -271,9 +261,9 @@ void Talk::putLine(int line, const char *text) {
for (i = 0; i < cw; i++) {
register uint16 b = fp[i];
uint16 n;
for (n = 0; n < FONT_HIG; n++) {
for (n = 0; n < kFontHigh; n++) {
if (b & 1)
*p = TEXT_FG;
*p = kTextColFG;
b >>= 1;
p += lsiz;
}
@ -293,7 +283,7 @@ InfoLine::InfoLine(CGEEngine *vm, uint16 w) : Talk(vm), _oldTxt(NULL), _vm(vm) {
_ts[1] = NULL;
}
_ts[0] = new Bitmap(w, FONT_HIG, TEXT_BG);
_ts[0] = new Bitmap(w, kFontHigh, kTextColBG);
setShapeList(_ts);
}
@ -310,7 +300,7 @@ void InfoLine::update(const char *tx) {
// clear whole rectangle
byte *pDest;
memset(v + 2, TEXT_BG, dsiz); // data bytes
memset(v + 2, kTextColBG, dsiz); // data bytes
for (pDest = v + lsiz; pDest < (v + psiz); pDest += lsiz) {
Common::copy(v, v + lsiz, pDest);
}
@ -329,9 +319,9 @@ void InfoLine::update(const char *tx) {
for (uint16 i = 0; i < cw; i++) {
register uint16 b = fp[i];
for (uint16 n = 0; n < FONT_HIG; n++) {
for (uint16 n = 0; n < kFontHigh; n++) {
if (b & 1)
*p = TEXT_FG;
*p = kTextColFG;
b >>= 1;
p += lsiz;
}

View file

@ -34,15 +34,18 @@
namespace CGE {
#define TEXT_FG DARK // foreground color
#define TEXT_BG GRAY // background color
#define TEXT_HM (6&~1) // EVEN horizontal margins!
#define TEXT_VM 5 // vertical margins
#define TEXT_LS 2 // line spacing
#define TEXT_RD 3 // rounded corners
#define kTextColFG DARK // foreground color
#define kTextColBG GRAY // background color
#define kTextHMargin (6&~1) // EVEN horizontal margins!
#define kTextVMargin 5 // vertical margins
#define kTextLineSpace 2 // line spacing
#define kTextRoundCorner 3 // rounded corners
#define kWidSize 256
#define kPosSize 256
#define kMapSize (256*8)
#define FONT_HIG 8
#define FONT_EXT ".CFT"
#define kFontHigh 8
#define kFontExt ".CFT"

View file

@ -187,10 +187,10 @@ void Text::say(const char *txt, Sprite *spr) {
uint16 sw = spike->_w;
if (east) {
if (x + sw + TEXT_RD + 5 >= SCR_WID)
if (x + sw + kTextRoundCorner + 5 >= SCR_WID)
east = false;
} else {
if (x <= 5 + TEXT_RD + sw)
if (x <= 5 + kTextRoundCorner + sw)
east = true;
}
x = (east) ? (spr->_x + spr->_w - 2) : (spr->_x + 2 - sw);

View file

@ -31,31 +31,18 @@
namespace CGE {
#define RELIEF 1
#if RELIEF
#define MB_LT LGRAY
#define MB_RB DGRAY
#else
#define MB_LT DGRAY
#define MB_RB LGRAY
#endif
MenuBar::MenuBar(CGEEngine *vm, uint16 w) : Talk(vm), _vm(vm) {
int h = FONT_HIG + 2 * MB_VM, i = (w += 2 * MB_HM) * h;
int h = kFontHigh + 2 * kMenuBarVM, i = (w += 2 * kMenuBarHM) * h;
uint8 *p = farnew(uint8, i), * p1, * p2;
memset(p + w, TRANS, i - 2 * w);
memset(p, MB_LT, w);
memset(p + i - w, MB_RB, w);
memset(p, kMenuBarLT, w);
memset(p + i - w, kMenuBarRB, w);
p1 = p;
p2 = p + i - 1;
for (i = 0; i < h; i++) {
*p1 = MB_LT;
*p2 = MB_RB;
*p1 = kMenuBarLT;
*p2 = kMenuBarRB;
p1 += w;
p2 -= w;
}
@ -115,10 +102,10 @@ Vmenu::Vmenu(CGEEngine *vm, Choice *list, int x, int y)
if (x < 0 || y < 0)
center();
else
gotoxy(x - _w / 2, y - (TEXT_VM + FONT_HIG / 2));
gotoxy(x - _w / 2, y - (kTextVMargin + kFontHigh / 2));
_vga->_showQ->insert(this, _vga->_showQ->last());
_bar = new MenuBar(_vm, _w - 2 * TEXT_HM);
_bar->gotoxy(_x + TEXT_HM - MB_HM, _y + TEXT_VM - MB_VM);
_bar = new MenuBar(_vm, _w - 2 * kTextHMargin);
_bar->gotoxy(_x + kTextHMargin - kMenuBarHM, _y + kTextVMargin - kMenuBarVM);
_vga->_showQ->insert(_bar, _vga->_showQ->last());
}
@ -130,23 +117,23 @@ Vmenu::~Vmenu() {
#define CALL_MEMBER_FN(object,ptrToMember) ((object).*(ptrToMember))
void Vmenu::touch(uint16 mask, int x, int y) {
uint16 h = FONT_HIG + TEXT_LS;
bool ok = false;
if (_items) {
Sprite::touch(mask, x, y);
y -= TEXT_VM - 1;
y -= kTextVMargin - 1;
int n = 0;
bool ok = false;
uint16 h = kFontHigh + kTextLineSpace;
if (y >= 0) {
n = y / h;
if (n < _items)
ok = (x >= TEXT_HM && x < _w - TEXT_HM/* && y % h < FONT_HIG*/);
ok = (x >= kTextHMargin && x < _w - kTextHMargin/* && y % h < FONT_HIG*/);
else
n = _items - 1;
}
_bar->gotoxy(_x + TEXT_HM - MB_HM, _y + TEXT_VM + n * h - MB_VM);
_bar->gotoxy(_x + kTextHMargin - kMenuBarHM, _y + kTextVMargin + n * h - kMenuBarVM);
if (ok && (mask & L_UP)) {
_items = 0;

View file

@ -32,8 +32,10 @@
namespace CGE {
#define MB_VM 1
#define MB_HM 3
#define kMenuBarVM 1
#define kMenuBarHM 3
#define kMenuBarLT LGRAY
#define kMenuBarRB DGRAY
struct Choice {