(svn r1827) Next iteration of the byte -> char transition: some string drawing functions and buffers

This commit is contained in:
tron 2005-02-06 18:30:45 +00:00
parent eb28e8b322
commit 2fb453a4a5
15 changed files with 34 additions and 32 deletions

View File

@ -151,7 +151,7 @@ static void NewAircraftWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);
@ -506,7 +506,7 @@ change_int:
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

20
gfx.c
View File

@ -291,12 +291,12 @@ void DrawStringCenterUnderline(int x, int y, uint16 str, uint16 color)
GfxFillRect(x-(w>>1), y+10, x-(w>>1)+w, y+10, _string_colorremap[1]); GfxFillRect(x-(w>>1), y+10, x-(w>>1)+w, y+10, _string_colorremap[1]);
} }
static uint32 FormatStringLinebreaks(byte *str, int maxw) static uint32 FormatStringLinebreaks(char *str, int maxw)
{ {
int num = 0; int num = 0;
int base = _stringwidth_base; int base = _stringwidth_base;
int w; int w;
byte *last_space; char *last_space;
byte c; byte c;
for(;;) { for(;;) {
@ -336,7 +336,7 @@ void DrawStringMultiCenter(int x, int y, uint16 str, int maxw)
{ {
uint32 tmp; uint32 tmp;
int num, w, mt, t; int num, w, mt, t;
byte *src; const char *src;
byte c; byte c;
GetString(str_buffr, str); GetString(str_buffr, str);
@ -382,7 +382,7 @@ void DrawStringMultiCenter(int x, int y, uint16 str, int maxw)
void DrawStringMultiLine(int x, int y, uint16 str, int maxw) { void DrawStringMultiLine(int x, int y, uint16 str, int maxw) {
uint32 tmp; uint32 tmp;
int num, w, mt, t; int num, w, mt, t;
byte *src; const char *src;
byte c; byte c;
GetString(str_buffr, str); GetString(str_buffr, str);
@ -422,7 +422,8 @@ void DrawStringMultiLine(int x, int y, uint16 str, int maxw) {
} }
} }
int GetStringWidth(const byte *str) { int GetStringWidth(const char *str)
{
int w = -1; int w = -1;
byte c; byte c;
int base = _stringwidth_base; int base = _stringwidth_base;
@ -475,7 +476,8 @@ void DrawFrameRect(int left, int top, int right, int bottom, int ctab, int flags
} }
} }
int DoDrawString(const byte *string, int x, int y, uint16 real_color) { int DoDrawString(const char *string, int x, int y, uint16 real_color)
{
DrawPixelInfo *dpi = _cur_dpi; DrawPixelInfo *dpi = _cur_dpi;
int base = _stringwidth_base; int base = _stringwidth_base;
byte c; byte c;
@ -539,10 +541,10 @@ skip_cont:;
color = (byte)(c - ASCII_COLORSTART); color = (byte)(c - ASCII_COLORSTART);
goto switch_color; goto switch_color;
} else if (c == ASCII_SETX) { // {SETX} } else if (c == ASCII_SETX) { // {SETX}
x = xo + *string++; x = xo + (byte)*string++;
} else if (c == ASCII_SETXY) {// {SETXY} } else if (c == ASCII_SETXY) {// {SETXY}
x = xo + *string++; x = xo + (byte)*string++;
y = yo + *string++; y = yo + (byte)*string++;
} else if (c == ASCII_TINYFONT) { // {TINYFONT} } else if (c == ASCII_TINYFONT) { // {TINYFONT}
base = 0xE0; base = 0xE0;
} else if (c == ASCII_BIGFONT) { // {BIGFONT} } else if (c == ASCII_BIGFONT) { // {BIGFONT}

4
gfx.h
View File

@ -45,14 +45,14 @@ void GfxScroll(int left, int top, int width, int height, int xo, int yo);
int DrawStringCentered(int x, int y, uint16 str, uint16 color); int DrawStringCentered(int x, int y, uint16 str, uint16 color);
int DrawString(int x, int y, uint16 str, uint16 color); int DrawString(int x, int y, uint16 str, uint16 color);
void DrawStringCenterUnderline(int x, int y, uint16 str, uint16 color); void DrawStringCenterUnderline(int x, int y, uint16 str, uint16 color);
int DoDrawString(const byte *string, int x, int y, uint16 color); int DoDrawString(const char *string, int x, int y, uint16 color);
void DrawStringRightAligned(int x, int y, uint16 str, uint16 color); void DrawStringRightAligned(int x, int y, uint16 str, uint16 color);
void GfxFillRect(int left, int top, int right, int bottom, int color); void GfxFillRect(int left, int top, int right, int bottom, int color);
void GfxDrawLine(int left, int top, int right, int bottom, int color); void GfxDrawLine(int left, int top, int right, int bottom, int color);
void DrawFrameRect(int left, int top, int right, int bottom, int color, int flags); void DrawFrameRect(int left, int top, int right, int bottom, int color, int flags);
uint16 GetDrawStringPlayerColor(byte player); uint16 GetDrawStringPlayerColor(byte player);
int GetStringWidth(const byte *str); int GetStringWidth(const char *str);
void LoadStringWidthTable(void); void LoadStringWidthTable(void);
void DrawStringMultiCenter(int x, int y, uint16 str, int maxw); void DrawStringMultiCenter(int x, int y, uint16 str, int maxw);
void DrawStringMultiLine(int x, int y, uint16 str, int maxw); void DrawStringMultiLine(int x, int y, uint16 str, int maxw);

View File

@ -61,7 +61,7 @@ void HandleOnEditTextCancel(void)
} }
void HandleOnEditText(WindowEvent *e) { void HandleOnEditText(WindowEvent *e) {
byte *b = e->edittext.str; const char *b = e->edittext.str;
int id; int id;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -901,7 +901,7 @@ press_ok:;
!_do_edit_on_text_even_when_no_change_to_edit_box) { !_do_edit_on_text_even_when_no_change_to_edit_box) {
DeleteWindow(w); DeleteWindow(w);
} else { } else {
byte *buf = WP(w,querystr_d).buf; char *buf = WP(w,querystr_d).buf;
WindowClass wnd_class = WP(w,querystr_d).wnd_class; WindowClass wnd_class = WP(w,querystr_d).wnd_class;
WindowNumber wnd_num = WP(w,querystr_d).wnd_num; WindowNumber wnd_num = WP(w,querystr_d).wnd_num;
Window *parent; Window *parent;
@ -978,7 +978,7 @@ static const WindowDesc _query_string_desc = {
QueryStringWndProc QueryStringWndProc
}; };
static byte _edit_str_buf[MAX_QUERYSTR_LEN*2]; static char _edit_str_buf[MAX_QUERYSTR_LEN*2];
void ShowQueryString(StringID str, StringID caption, int maxlen, int maxwidth, byte window_class, uint16 window_number) void ShowQueryString(StringID str, StringID caption, int maxlen, int maxwidth, byte window_class, uint16 window_number)
{ {

View File

@ -24,7 +24,7 @@
#define BGC 5 #define BGC 5
#define BTC 15 #define BTC 15
#define MAX_QUERYSTR_LEN 64 #define MAX_QUERYSTR_LEN 64
static byte _edit_str_buf[MAX_QUERYSTR_LEN*2]; static char _edit_str_buf[MAX_QUERYSTR_LEN*2];
static void ShowNetworkStartServerWindow(void); static void ShowNetworkStartServerWindow(void);
static void ShowNetworkLobbyWindow(void); static void ShowNetworkLobbyWindow(void);
@ -611,7 +611,7 @@ static void NetworkStartServerWindowWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
ttd_strlcpy(_network_server_password, b, sizeof(_network_server_password)); ttd_strlcpy(_network_server_password, b, sizeof(_network_server_password));
if (_network_server_password[0] == '\0') { if (_network_server_password[0] == '\0') {
_network_game_info.use_password = 0; _network_game_info.use_password = 0;
@ -1373,7 +1373,7 @@ press_ok:;
if (strcmp(WP(w,querystr_d).buf, WP(w,querystr_d).buf + MAX_QUERYSTR_LEN) == 0) { if (strcmp(WP(w,querystr_d).buf, WP(w,querystr_d).buf + MAX_QUERYSTR_LEN) == 0) {
DeleteWindow(w); DeleteWindow(w);
} else { } else {
byte *buf = WP(w,querystr_d).buf; char *buf = WP(w,querystr_d).buf;
WindowClass wnd_class = WP(w,querystr_d).wnd_class; WindowClass wnd_class = WP(w,querystr_d).wnd_class;
WindowNumber wnd_num = WP(w,querystr_d).wnd_num; WindowNumber wnd_num = WP(w,querystr_d).wnd_num;
Window *parent; Window *parent;

View File

@ -639,7 +639,7 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
char *b = (char*)e->edittext.str; char *b = e->edittext.str;
if (*b == 0 && WP(w,def_d).byte_1 != 2) // empty string is allowed for password if (*b == 0 && WP(w,def_d).byte_1 != 2) // empty string is allowed for password
return; return;

View File

@ -160,7 +160,7 @@ change_int:
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);
@ -431,7 +431,7 @@ static void NewRoadVehWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -1465,7 +1465,7 @@ static void CustCurrencyWndProc(Window *w, WindowEvent *e)
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
int val; int val;
byte *b = e->edittext.str; const char *b = e->edittext.str;
switch (WP(w,def_d).data_2) { switch (WP(w,def_d).data_2) {
case 0: case 0:
val = atoi(b); val = atoi(b);

View File

@ -280,7 +280,7 @@ change_int:
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);
@ -422,7 +422,7 @@ static void NewShipWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -509,7 +509,7 @@ static void StationViewWndProc(Window *w, WindowEvent *e)
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
Station *st; Station *st;
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -273,7 +273,7 @@ static void TownViewWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -219,7 +219,7 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e)
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
@ -1180,7 +1180,7 @@ do_change_service_int:
break; break;
case WE_ON_EDIT_TEXT: { case WE_ON_EDIT_TEXT: {
byte *b = e->edittext.str; const char *b = e->edittext.str;
if (*b == 0) if (*b == 0)
return; return;
memcpy(_decode_parameters, b, 32); memcpy(_decode_parameters, b, 32);

View File

@ -431,7 +431,7 @@ extern const byte _airport_size_x[5];
extern const byte _airport_size_y[5]; extern const byte _airport_size_y[5];
/* misc */ /* misc */
VARDEF byte str_buffr[512]; VARDEF char str_buffr[512];
VARDEF char _screenshot_name[128]; VARDEF char _screenshot_name[128];
#define USERSTRING_LEN 128 #define USERSTRING_LEN 128
VARDEF char _userstring[USERSTRING_LEN]; VARDEF char _userstring[USERSTRING_LEN];

View File

@ -91,7 +91,7 @@ union WindowEvent {
struct { struct {
byte event; byte event;
byte *str; char *str;
} edittext; } edittext;
struct { struct {
@ -228,7 +228,7 @@ typedef struct {
WindowClass wnd_class; WindowClass wnd_class;
WindowNumber wnd_num; WindowNumber wnd_num;
uint16 maxlen, maxwidth; uint16 maxlen, maxwidth;
byte *buf; char *buf;
} querystr_d; } querystr_d;
#define WP(ptr,str) (*(str*)(ptr)->custom) #define WP(ptr,str) (*(str*)(ptr)->custom)