mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-29 20:20:43 +00:00
new view stuff mostly working. just a few visual bugs to iron out
This commit is contained in:
parent
1bdcd879be
commit
508fb4fb5c
14 changed files with 476 additions and 349 deletions
|
@ -132,9 +132,10 @@ void Con_Demolist_DEM_f (void);
|
||||||
// in general :P)
|
// in general :P)
|
||||||
void C_DrawInputLine (inputline_t *il);
|
void C_DrawInputLine (inputline_t *il);
|
||||||
|
|
||||||
|
struct view_s;
|
||||||
void Menu_Init (void);
|
void Menu_Init (void);
|
||||||
void Menu_Load (void);
|
void Menu_Load (void);
|
||||||
void Menu_Draw (void);
|
void Menu_Draw (struct view_s *view);
|
||||||
void Menu_KeyEvent (knum_t key, short unicode, qboolean down);
|
void Menu_KeyEvent (knum_t key, short unicode, qboolean down);
|
||||||
void Menu_Enter (void);
|
void Menu_Enter (void);
|
||||||
void Menu_Leave (void);
|
void Menu_Leave (void);
|
||||||
|
|
|
@ -59,6 +59,7 @@ typedef struct console_data_s {
|
||||||
int ormask;
|
int ormask;
|
||||||
void (*quit)(void);
|
void (*quit)(void);
|
||||||
struct cbuf_s *cbuf;
|
struct cbuf_s *cbuf;
|
||||||
|
struct view_s *view;
|
||||||
} console_data_t;
|
} console_data_t;
|
||||||
|
|
||||||
#endif // __QF_plugin_console_h_
|
#endif // __QF_plugin_console_h_
|
||||||
|
|
|
@ -57,6 +57,8 @@ struct view_s {
|
||||||
int max_children;
|
int max_children;
|
||||||
void (*draw)(view_t *view);
|
void (*draw)(view_t *view);
|
||||||
unsigned enabled:1;
|
unsigned enabled:1;
|
||||||
|
unsigned resize_x:1;
|
||||||
|
unsigned resize_y:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,5 +67,7 @@ void view_add (view_t *par, view_t *view);
|
||||||
void view_remove (view_t *par, view_t *view);
|
void view_remove (view_t *par, view_t *view);
|
||||||
void view_delete (view_t *view);
|
void view_delete (view_t *view);
|
||||||
void view_draw (view_t *view);
|
void view_draw (view_t *view);
|
||||||
|
void view_resize (view_t *view, int xl, int yl);
|
||||||
|
void view_move (view_t *view, int xp, int yp);
|
||||||
|
|
||||||
#endif//__qf_view_h
|
#endif//__qf_view_h
|
||||||
|
|
|
@ -47,6 +47,7 @@ static __attribute__ ((unused)) const char rcsid[] =
|
||||||
#include "QF/cvar.h"
|
#include "QF/cvar.h"
|
||||||
#include "QF/draw.h"
|
#include "QF/draw.h"
|
||||||
#include "QF/dstring.h"
|
#include "QF/dstring.h"
|
||||||
|
#include "QF/gib.h"
|
||||||
#include "QF/input.h"
|
#include "QF/input.h"
|
||||||
#include "QF/keys.h"
|
#include "QF/keys.h"
|
||||||
#include "QF/plugin.h"
|
#include "QF/plugin.h"
|
||||||
|
@ -56,13 +57,14 @@ static __attribute__ ((unused)) const char rcsid[] =
|
||||||
#include "QF/sys.h"
|
#include "QF/sys.h"
|
||||||
#include "QF/va.h"
|
#include "QF/va.h"
|
||||||
#include "QF/vid.h"
|
#include "QF/vid.h"
|
||||||
#include "QF/gib.h"
|
#include "QF/view.h"
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
// XXX check InputLine.h in ruamoko/include
|
// XXX check InputLine.h in ruamoko/include
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int x, y;
|
int x, y;
|
||||||
|
int xbase, ybase;
|
||||||
int cursor;
|
int cursor;
|
||||||
} il_data_t;
|
} il_data_t;
|
||||||
|
|
||||||
|
@ -83,8 +85,6 @@ static float con_times[NUM_CON_TIMES]; // realtime time the line was generated
|
||||||
// for transparent notify lines
|
// for transparent notify lines
|
||||||
|
|
||||||
static int con_totallines; // total lines in console scrollback
|
static int con_totallines; // total lines in console scrollback
|
||||||
static int con_vislines;
|
|
||||||
static int con_notifylines; // scan lines to clear for notify lines
|
|
||||||
|
|
||||||
static qboolean con_debuglog;
|
static qboolean con_debuglog;
|
||||||
static qboolean chat_team;
|
static qboolean chat_team;
|
||||||
|
@ -94,6 +94,11 @@ static inputline_t *input_line;
|
||||||
static inputline_t *say_line;
|
static inputline_t *say_line;
|
||||||
static inputline_t *say_team_line;
|
static inputline_t *say_team_line;
|
||||||
|
|
||||||
|
static view_t *console_view;
|
||||||
|
static view_t *say_view;
|
||||||
|
static view_t *notify_view;
|
||||||
|
static view_t *menu_view;
|
||||||
|
|
||||||
static qboolean con_initialized;
|
static qboolean con_initialized;
|
||||||
|
|
||||||
|
|
||||||
|
@ -219,6 +224,8 @@ Resize (old_console_t *con)
|
||||||
|
|
||||||
con->current = con_totallines - 1;
|
con->current = con_totallines - 1;
|
||||||
con->display = con->current;
|
con->display = con->current;
|
||||||
|
|
||||||
|
view_resize (con_data.view, vid.width, vid.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -351,73 +358,6 @@ C_GIB_Print_Center_f (void)
|
||||||
SCR_CenterPrint (GIB_Argv(1));
|
SCR_CenterPrint (GIB_Argv(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
C_Init (void)
|
|
||||||
{
|
|
||||||
Menu_Init ();
|
|
||||||
|
|
||||||
con_notifytime = Cvar_Get ("con_notifytime", "3", CVAR_NONE, NULL,
|
|
||||||
"How long in seconds messages are displayed "
|
|
||||||
"on screen");
|
|
||||||
cl_chatmode = Cvar_Get ("cl_chatmode", "2", CVAR_NONE, NULL,
|
|
||||||
"Controls when console text will be treated as a "
|
|
||||||
"chat message: 0 - never, 1 - always, 2 - smart");
|
|
||||||
|
|
||||||
con_debuglog = COM_CheckParm ("-condebug");
|
|
||||||
|
|
||||||
con = &con_main;
|
|
||||||
con_linewidth = -1;
|
|
||||||
|
|
||||||
input_line = Con_CreateInputLine (32, MAXCMDLINE, ']');
|
|
||||||
input_line->complete = Con_BasicCompleteCommandLine;
|
|
||||||
input_line->enter = C_ExecLine;
|
|
||||||
input_line->width = con_linewidth;
|
|
||||||
input_line->user_data = 0;
|
|
||||||
input_line->draw = 0;
|
|
||||||
|
|
||||||
say_line = Con_CreateInputLine (32, MAXCMDLINE, ' ');
|
|
||||||
say_line->complete = 0;
|
|
||||||
say_line->enter = C_Say;
|
|
||||||
say_line->width = con_linewidth - 5;
|
|
||||||
say_line->user_data = 0;
|
|
||||||
say_line->draw = 0;
|
|
||||||
|
|
||||||
say_team_line = Con_CreateInputLine (32, MAXCMDLINE, ' ');
|
|
||||||
say_team_line->complete = 0;
|
|
||||||
say_team_line->enter = C_SayTeam;
|
|
||||||
say_team_line->width = con_linewidth - 10;
|
|
||||||
say_team_line->user_data = 0;
|
|
||||||
say_team_line->draw = 0;
|
|
||||||
|
|
||||||
C_CheckResize ();
|
|
||||||
|
|
||||||
Con_Printf ("Console initialized.\n");
|
|
||||||
|
|
||||||
// register our commands
|
|
||||||
Cmd_AddCommand ("toggleconsole", ToggleConsole_f,
|
|
||||||
"Toggle the console up and down");
|
|
||||||
Cmd_AddCommand ("togglechat", ToggleChat_f,
|
|
||||||
"Toggle the console up and down");
|
|
||||||
Cmd_AddCommand ("messagemode", MessageMode_f,
|
|
||||||
"Prompt to send a message to everyone");
|
|
||||||
Cmd_AddCommand ("messagemode2", MessageMode2_f,
|
|
||||||
"Prompt to send a message to only people on your team");
|
|
||||||
Cmd_AddCommand ("clear", Clear_f, "Clear the console");
|
|
||||||
Cmd_AddCommand ("condump", Condump_f, "dump the console text to a "
|
|
||||||
"file");
|
|
||||||
|
|
||||||
// register GIB builtins
|
|
||||||
GIB_Builtin_Add ("print::center", C_GIB_Print_Center_f);
|
|
||||||
|
|
||||||
con_initialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
C_Shutdown (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Linefeed (void)
|
Linefeed (void)
|
||||||
{
|
{
|
||||||
|
@ -627,120 +567,21 @@ void
|
||||||
C_DrawInputLine (inputline_t *il)
|
C_DrawInputLine (inputline_t *il)
|
||||||
{
|
{
|
||||||
il_data_t *data = il->user_data;
|
il_data_t *data = il->user_data;
|
||||||
DrawInputLine (data->x, data->y, data->cursor, il);
|
DrawInputLine (data->xbase + data->x, data->xbase + data->y, data->cursor,
|
||||||
|
il);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DrawInput (void)
|
draw_input (view_t *view)
|
||||||
{
|
{
|
||||||
if (key_dest != key_console)// && !con_data.force_commandline)
|
if (key_dest != key_console)// && !con_data.force_commandline)
|
||||||
return; // don't draw anything (always draw if not active)
|
return; // don't draw anything (always draw if not active)
|
||||||
|
|
||||||
DrawInputLine (8, con_vislines - 22, 1, input_line);
|
DrawInputLine (view->xabs + 8, view->yabs, 1, input_line);
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
DrawNotify
|
|
||||||
|
|
||||||
Draws the last few lines of output transparently over the game top
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
DrawNotify (void)
|
|
||||||
{
|
|
||||||
int i, v;
|
|
||||||
char *text;
|
|
||||||
float time;
|
|
||||||
|
|
||||||
v = 0;
|
|
||||||
for (i = con->current - NUM_CON_TIMES + 1; i <= con->current; i++) {
|
|
||||||
if (i < 0)
|
|
||||||
continue;
|
|
||||||
time = con_times[i % NUM_CON_TIMES];
|
|
||||||
if (time == 0)
|
|
||||||
continue;
|
|
||||||
time = *con_data.realtime - time;
|
|
||||||
if (time > con_notifytime->value)
|
|
||||||
continue;
|
|
||||||
text = con->text + (i % con_totallines) * con_linewidth;
|
|
||||||
|
|
||||||
clearnotify = 0;
|
|
||||||
scr_copytop = 1;
|
|
||||||
|
|
||||||
Draw_nString (8, v, text, con_linewidth);
|
|
||||||
v += 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (key_dest == key_message) {
|
|
||||||
clearnotify = 0;
|
|
||||||
scr_copytop = 1;
|
|
||||||
|
|
||||||
if (chat_team) {
|
|
||||||
Draw_String (8, v, "say_team:");
|
|
||||||
DrawInputLine (80, v, 1, say_team_line);
|
|
||||||
} else {
|
|
||||||
Draw_String (8, v, "say:");
|
|
||||||
DrawInputLine (40, v, 1, say_line);
|
|
||||||
}
|
|
||||||
v += 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (v > con_notifylines)
|
|
||||||
con_notifylines = v;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
DrawConsole
|
|
||||||
|
|
||||||
Draws the console with the solid background
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
DrawConsole (int lines)
|
|
||||||
{
|
|
||||||
char *text;
|
|
||||||
int row, rows, i, x, y;
|
|
||||||
|
|
||||||
if (lines <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// draw the background
|
|
||||||
Draw_ConsoleBackground (lines);
|
|
||||||
|
|
||||||
// draw the text
|
|
||||||
con_vislines = lines;
|
|
||||||
|
|
||||||
// changed to line things up better
|
|
||||||
rows = (lines - 22) >> 3; // rows of text to draw
|
|
||||||
|
|
||||||
y = lines - 30;
|
|
||||||
|
|
||||||
// draw from the bottom up
|
|
||||||
if (con->display != con->current) {
|
|
||||||
// draw arrows to show the buffer is backscrolled
|
|
||||||
for (x = 0; x < con_linewidth; x += 4)
|
|
||||||
Draw_Character ((x + 1) << 3, y, '^');
|
|
||||||
|
|
||||||
y -= 8;
|
|
||||||
rows--;
|
|
||||||
}
|
|
||||||
|
|
||||||
row = con->display;
|
|
||||||
for (i = 0; i < rows; i++, y -= 8, row--) {
|
|
||||||
if (row < 0)
|
|
||||||
break;
|
|
||||||
if (con->current - row >= con_totallines)
|
|
||||||
break; // past scrollback wrap point
|
|
||||||
|
|
||||||
text = con->text + (row % con_totallines) * con_linewidth;
|
|
||||||
|
|
||||||
Draw_nString(8, y, text, con_linewidth);
|
|
||||||
}
|
|
||||||
|
|
||||||
// draw the input prompt, user text, and cursor if desired
|
|
||||||
DrawInput ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DrawDownload (int lines)
|
draw_download (view_t *view)
|
||||||
{
|
{
|
||||||
char dlbar[1024];
|
char dlbar[1024];
|
||||||
const char *text;
|
const char *text;
|
||||||
|
@ -781,23 +622,107 @@ DrawDownload (int lines)
|
||||||
" %02d%%", *con_data.dl_percent);
|
" %02d%%", *con_data.dl_percent);
|
||||||
|
|
||||||
// draw it
|
// draw it
|
||||||
y = lines - 22 + 8;
|
Draw_String (view->xabs, view->yabs, dlbar);
|
||||||
for (i = 0; i < strlen (dlbar); i++)
|
}
|
||||||
Draw_Character ((i + 1) << 3, y, dlbar[i]);
|
|
||||||
|
static void
|
||||||
|
draw_console_text (view_t *view)
|
||||||
|
{
|
||||||
|
char *text;
|
||||||
|
int row, rows, i, x, y;
|
||||||
|
|
||||||
|
rows = view->ylen >> 3; // rows of text to draw
|
||||||
|
|
||||||
|
x = view->xabs + 8;
|
||||||
|
y = view->yabs + view->ylen - 8;
|
||||||
|
|
||||||
|
// draw from the bottom up
|
||||||
|
if (con->display != con->current) {
|
||||||
|
// draw arrows to show the buffer is backscrolled
|
||||||
|
for (i = 0; i < con_linewidth; i += 4)
|
||||||
|
Draw_Character (x + (i << 3), y, '^');
|
||||||
|
|
||||||
|
y -= 8;
|
||||||
|
rows--;
|
||||||
|
}
|
||||||
|
|
||||||
|
row = con->display;
|
||||||
|
for (i = 0; i < rows; i++, y -= 8, row--) {
|
||||||
|
if (row < 0)
|
||||||
|
break;
|
||||||
|
if (con->current - row >= con_totallines)
|
||||||
|
break; // past scrollback wrap point
|
||||||
|
|
||||||
|
text = con->text + (row % con_totallines) * con_linewidth;
|
||||||
|
|
||||||
|
Draw_nString(x, y, text, con_linewidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
draw_console (view_t *view)
|
||||||
|
{
|
||||||
|
// draw the background
|
||||||
|
Draw_ConsoleBackground (view->ylen);
|
||||||
|
|
||||||
|
// draw everything else
|
||||||
|
view_draw (view);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
draw_say (view_t *view)
|
||||||
|
{
|
||||||
|
if (key_dest == key_message) {
|
||||||
|
clearnotify = 0;
|
||||||
|
scr_copytop = 1;
|
||||||
|
|
||||||
|
if (chat_team) {
|
||||||
|
Draw_String (view->xabs + 8, view->yabs, "say_team:");
|
||||||
|
DrawInputLine (view->xabs + 80, view->yabs, 1, say_team_line);
|
||||||
|
} else {
|
||||||
|
Draw_String (view->xabs + 8, view->yabs, "say:");
|
||||||
|
DrawInputLine (view->xabs + 40, view->yabs, 1, say_line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
draw_notify (view_t *view)
|
||||||
|
{
|
||||||
|
int i, x, y;
|
||||||
|
char *text;
|
||||||
|
float time;
|
||||||
|
|
||||||
|
x = view->xabs + 8;
|
||||||
|
y = view->yabs;
|
||||||
|
for (i = con->current - NUM_CON_TIMES + 1; i <= con->current; i++) {
|
||||||
|
if (i < 0)
|
||||||
|
continue;
|
||||||
|
time = con_times[i % NUM_CON_TIMES];
|
||||||
|
if (time == 0)
|
||||||
|
continue;
|
||||||
|
time = *con_data.realtime - time;
|
||||||
|
if (time > con_notifytime->value)
|
||||||
|
continue;
|
||||||
|
text = con->text + (i % con_totallines) * con_linewidth;
|
||||||
|
|
||||||
|
clearnotify = 0;
|
||||||
|
scr_copytop = 1;
|
||||||
|
|
||||||
|
Draw_nString (x, y, text, con_linewidth);
|
||||||
|
y += 8;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
C_DrawConsole (int lines)
|
C_DrawConsole (int lines)
|
||||||
{
|
{
|
||||||
if (lines) {
|
if (console_view->ylen != lines)
|
||||||
DrawConsole (lines);
|
view_resize (console_view, console_view->xlen, lines);
|
||||||
DrawDownload (lines);
|
console_view->enabled = lines != 0;
|
||||||
} else {
|
menu_view->enabled = key_dest == key_menu;
|
||||||
if (key_dest == key_game || key_dest == key_message)
|
|
||||||
DrawNotify (); // only draw notify in game
|
view_draw (con_data.view);
|
||||||
}
|
|
||||||
if (key_dest == key_menu)
|
|
||||||
Menu_Draw ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -818,6 +743,116 @@ C_NewMap (void)
|
||||||
strcpy (old_gamedir, qfs_gamedir->gamedir);
|
strcpy (old_gamedir, qfs_gamedir->gamedir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
C_Init (void)
|
||||||
|
{
|
||||||
|
view_t *view;
|
||||||
|
|
||||||
|
Menu_Init ();
|
||||||
|
|
||||||
|
con_notifytime = Cvar_Get ("con_notifytime", "3", CVAR_NONE, NULL,
|
||||||
|
"How long in seconds messages are displayed "
|
||||||
|
"on screen");
|
||||||
|
cl_chatmode = Cvar_Get ("cl_chatmode", "2", CVAR_NONE, NULL,
|
||||||
|
"Controls when console text will be treated as a "
|
||||||
|
"chat message: 0 - never, 1 - always, 2 - smart");
|
||||||
|
|
||||||
|
con_debuglog = COM_CheckParm ("-condebug");
|
||||||
|
|
||||||
|
con_data.view = view_new (0, 0, 320, 200, grav_northeast);
|
||||||
|
con_data.view->draw = view_draw;
|
||||||
|
|
||||||
|
console_view = view_new (0, 0, 320, 200, grav_northwest);
|
||||||
|
say_view = view_new (0, 0, 320, 32, grav_northwest);
|
||||||
|
notify_view = view_new (0, 8, 320, 32, grav_northwest);
|
||||||
|
menu_view = view_new (0, 0, 320, 200, grav_center);
|
||||||
|
|
||||||
|
view_add (con_data.view, say_view);
|
||||||
|
view_add (con_data.view, notify_view);
|
||||||
|
view_add (con_data.view, console_view);
|
||||||
|
view_add (con_data.view, menu_view);
|
||||||
|
|
||||||
|
console_view->draw = draw_console;
|
||||||
|
console_view->enabled = 0;
|
||||||
|
console_view->resize_x = console_view->resize_y = 1;
|
||||||
|
|
||||||
|
say_view->draw = draw_say;
|
||||||
|
say_view->enabled = 0;
|
||||||
|
say_view->resize_x = 1;
|
||||||
|
|
||||||
|
notify_view->draw = draw_notify;
|
||||||
|
notify_view->resize_x = 1;
|
||||||
|
|
||||||
|
menu_view->draw = Menu_Draw;
|
||||||
|
menu_view->enabled = 0;
|
||||||
|
|
||||||
|
view = view_new (0, 0, 320, 170, grav_northwest);
|
||||||
|
view->draw = draw_console_text;
|
||||||
|
view->resize_x = view->resize_y = 1;
|
||||||
|
view_add (console_view, view);
|
||||||
|
|
||||||
|
view = view_new (0, 12, 320, 10, grav_southwest);
|
||||||
|
view->draw = draw_input;
|
||||||
|
view->resize_x = 1;
|
||||||
|
view_add (console_view, view);
|
||||||
|
|
||||||
|
view = view_new (0, 2, 320, 11, grav_southwest);
|
||||||
|
view->draw = draw_download;
|
||||||
|
view->resize_x = 1;
|
||||||
|
view_add (console_view, view);
|
||||||
|
|
||||||
|
con = &con_main;
|
||||||
|
con_linewidth = -1;
|
||||||
|
|
||||||
|
input_line = Con_CreateInputLine (32, MAXCMDLINE, ']');
|
||||||
|
input_line->complete = Con_BasicCompleteCommandLine;
|
||||||
|
input_line->enter = C_ExecLine;
|
||||||
|
input_line->width = con_linewidth;
|
||||||
|
input_line->user_data = 0;
|
||||||
|
input_line->draw = 0;
|
||||||
|
|
||||||
|
say_line = Con_CreateInputLine (32, MAXCMDLINE, ' ');
|
||||||
|
say_line->complete = 0;
|
||||||
|
say_line->enter = C_Say;
|
||||||
|
say_line->width = con_linewidth - 5;
|
||||||
|
say_line->user_data = 0;
|
||||||
|
say_line->draw = 0;
|
||||||
|
|
||||||
|
say_team_line = Con_CreateInputLine (32, MAXCMDLINE, ' ');
|
||||||
|
say_team_line->complete = 0;
|
||||||
|
say_team_line->enter = C_SayTeam;
|
||||||
|
say_team_line->width = con_linewidth - 10;
|
||||||
|
say_team_line->user_data = 0;
|
||||||
|
say_team_line->draw = 0;
|
||||||
|
|
||||||
|
C_CheckResize ();
|
||||||
|
|
||||||
|
Con_Printf ("Console initialized.\n");
|
||||||
|
|
||||||
|
// register our commands
|
||||||
|
Cmd_AddCommand ("toggleconsole", ToggleConsole_f,
|
||||||
|
"Toggle the console up and down");
|
||||||
|
Cmd_AddCommand ("togglechat", ToggleChat_f,
|
||||||
|
"Toggle the console up and down");
|
||||||
|
Cmd_AddCommand ("messagemode", MessageMode_f,
|
||||||
|
"Prompt to send a message to everyone");
|
||||||
|
Cmd_AddCommand ("messagemode2", MessageMode2_f,
|
||||||
|
"Prompt to send a message to only people on your team");
|
||||||
|
Cmd_AddCommand ("clear", Clear_f, "Clear the console");
|
||||||
|
Cmd_AddCommand ("condump", Condump_f, "dump the console text to a "
|
||||||
|
"file");
|
||||||
|
|
||||||
|
// register GIB builtins
|
||||||
|
GIB_Builtin_Add ("print::center", C_GIB_Print_Center_f);
|
||||||
|
|
||||||
|
con_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
C_Shutdown (void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static general_funcs_t plugin_info_general_funcs = {
|
static general_funcs_t plugin_info_general_funcs = {
|
||||||
C_Init,
|
C_Init,
|
||||||
C_Shutdown,
|
C_Shutdown,
|
||||||
|
|
|
@ -48,6 +48,7 @@ static __attribute__ ((unused)) const char rcsid[] =
|
||||||
#include "QF/quakefs.h"
|
#include "QF/quakefs.h"
|
||||||
#include "QF/render.h"
|
#include "QF/render.h"
|
||||||
#include "QF/sys.h"
|
#include "QF/sys.h"
|
||||||
|
#include "QF/view.h"
|
||||||
|
|
||||||
typedef struct menu_pic_s {
|
typedef struct menu_pic_s {
|
||||||
struct menu_pic_s *next;
|
struct menu_pic_s *next;
|
||||||
|
@ -504,21 +505,26 @@ Menu_Load (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Menu_Draw (void)
|
Menu_Draw (view_t *view)
|
||||||
{
|
{
|
||||||
menu_pic_t *m_pic;
|
menu_pic_t *m_pic;
|
||||||
int i;
|
int i, x, y;
|
||||||
menu_item_t *item;
|
menu_item_t *item;
|
||||||
|
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
x = view->xabs;
|
||||||
|
y = view->yabs;
|
||||||
|
|
||||||
if (menu->fadescreen)
|
if (menu->fadescreen)
|
||||||
Draw_FadeScreen ();
|
Draw_FadeScreen ();
|
||||||
|
|
||||||
*menu_pr_state.globals.time = *menu_pr_state.time;
|
*menu_pr_state.globals.time = *menu_pr_state.time;
|
||||||
|
|
||||||
if (menu->draw) {
|
if (menu->draw) {
|
||||||
|
P_INT (&menu_pr_state, 0) = x;
|
||||||
|
P_INT (&menu_pr_state, 1) = y;
|
||||||
PR_ExecuteProgram (&menu_pr_state, menu->draw);
|
PR_ExecuteProgram (&menu_pr_state, menu->draw);
|
||||||
if (R_INT (&menu_pr_state))
|
if (R_INT (&menu_pr_state))
|
||||||
return;
|
return;
|
||||||
|
@ -530,14 +536,15 @@ Menu_Draw (void)
|
||||||
if (!pic)
|
if (!pic)
|
||||||
continue;
|
continue;
|
||||||
if (m_pic->width > 0 && m_pic->height > 0)
|
if (m_pic->width > 0 && m_pic->height > 0)
|
||||||
Draw_SubPic (m_pic->x, m_pic->y, pic, m_pic->srcx, m_pic->srcy,
|
Draw_SubPic (x + m_pic->x, y + m_pic->y, pic,
|
||||||
|
m_pic->srcx, m_pic->srcy,
|
||||||
m_pic->width, m_pic->height);
|
m_pic->width, m_pic->height);
|
||||||
else
|
else
|
||||||
Draw_Pic (m_pic->x, m_pic->y, pic);
|
Draw_Pic (x + m_pic->x, y + m_pic->y, pic);
|
||||||
}
|
}
|
||||||
for (i = 0; i < menu->num_items; i++) {
|
for (i = 0; i < menu->num_items; i++) {
|
||||||
if (menu->items[i]->text) {
|
if (menu->items[i]->text) {
|
||||||
Draw_String (menu->items[i]->x + 8, menu->items[i]->y,
|
Draw_String (x + menu->items[i]->x + 8, y + menu->items[i]->y,
|
||||||
menu->items[i]->text);
|
menu->items[i]->text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -545,11 +552,11 @@ Menu_Draw (void)
|
||||||
return;
|
return;
|
||||||
item = menu->items[menu->cur_item];
|
item = menu->items[menu->cur_item];
|
||||||
if (menu->cursor) {
|
if (menu->cursor) {
|
||||||
P_INT (&menu_pr_state, 0) = item->x;
|
P_INT (&menu_pr_state, 0) = x + item->x;
|
||||||
P_INT (&menu_pr_state, 1) = item->y;
|
P_INT (&menu_pr_state, 1) = y + item->y;
|
||||||
PR_ExecuteProgram (&menu_pr_state, menu->cursor);
|
PR_ExecuteProgram (&menu_pr_state, menu->cursor);
|
||||||
} else {
|
} else {
|
||||||
Draw_Character (item->x, item->y,
|
Draw_Character (x + item->x, y + item->y,
|
||||||
12 + ((int) (*con_data.realtime * 4) & 1));
|
12 + ((int) (*con_data.realtime * 4) & 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,12 +53,24 @@ view_new (int xp, int yp, int xl, int yl, grav_t grav)
|
||||||
view->xlen = xl;
|
view->xlen = xl;
|
||||||
view->ylen = yl;
|
view->ylen = yl;
|
||||||
view->gravity = grav;
|
view->gravity = grav;
|
||||||
|
view->enabled = 1;
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
view_add (view_t *par, view_t *view)
|
setgeometry (view_t *view)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
view_t *par = view->parent;
|
||||||
|
|
||||||
|
if (!par) {
|
||||||
|
view->xabs = view->xrel = view->xpos;
|
||||||
|
view->yabs = view->yrel = view->ypos;
|
||||||
|
for (i = 0; i < view->num_children; i++)
|
||||||
|
setgeometry (view->children[i]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (view->gravity) {
|
switch (view->gravity) {
|
||||||
case grav_center:
|
case grav_center:
|
||||||
view->xrel = view->xpos + (par->xlen - view->xlen) / 2;
|
view->xrel = view->xpos + (par->xlen - view->xlen) / 2;
|
||||||
|
@ -99,6 +111,13 @@ view_add (view_t *par, view_t *view)
|
||||||
}
|
}
|
||||||
view->xabs = par->xabs + view->xrel;
|
view->xabs = par->xabs + view->xrel;
|
||||||
view->yabs = par->yabs + view->yrel;
|
view->yabs = par->yabs + view->yrel;
|
||||||
|
for (i = 0; i < view->num_children; i++)
|
||||||
|
setgeometry (view->children[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
view_add (view_t *par, view_t *view)
|
||||||
|
{
|
||||||
view->parent = par;
|
view->parent = par;
|
||||||
if (par->num_children == par->max_children) {
|
if (par->num_children == par->max_children) {
|
||||||
par->max_children += 8;
|
par->max_children += 8;
|
||||||
|
@ -107,7 +126,8 @@ view_add (view_t *par, view_t *view)
|
||||||
memset (par->children + par->num_children, 0,
|
memset (par->children + par->num_children, 0,
|
||||||
(par->max_children - par->num_children) * sizeof (view_t *));
|
(par->max_children - par->num_children) * sizeof (view_t *));
|
||||||
}
|
}
|
||||||
par->children[par->max_children++] = view;
|
par->children[par->num_children++] = view;
|
||||||
|
setgeometry (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -146,3 +166,40 @@ view_draw (view_t *view)
|
||||||
v->draw (v);
|
v->draw (v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
view_resize (view_t *view, int xl, int yl)
|
||||||
|
{
|
||||||
|
int i, xd, yd;
|
||||||
|
|
||||||
|
xd = xl - view->xlen;
|
||||||
|
yd = yl - view->ylen;
|
||||||
|
view->xlen = xl;
|
||||||
|
view->ylen = yl;
|
||||||
|
setgeometry (view);
|
||||||
|
for (i = 0; i < view->num_children; i++) {
|
||||||
|
view_t *v = view->children[i];
|
||||||
|
|
||||||
|
if (v->resize_x && v->resize_y) {
|
||||||
|
view_resize (v, v->xlen + xd, v->ylen + yd);
|
||||||
|
} else if (v->resize_x) {
|
||||||
|
view_resize (v, v->xlen + xd, v->ylen);
|
||||||
|
} else if (v->resize_y) {
|
||||||
|
view_resize (v, v->xlen, v->ylen + yd);
|
||||||
|
} else {
|
||||||
|
setgeometry (v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
view_move (view_t *view, int xp, int yp)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
view->xpos = xp;
|
||||||
|
view->ypos = yp;
|
||||||
|
setgeometry (view);
|
||||||
|
for (i = 0; i < view->num_children; i++)
|
||||||
|
setgeometry (view->children[i]);
|
||||||
|
}
|
||||||
|
|
|
@ -132,25 +132,27 @@ void () load_save_f =
|
||||||
Menu_SelectMenu ("save");
|
Menu_SelectMenu ("save");
|
||||||
};
|
};
|
||||||
|
|
||||||
integer () load_draw =
|
integer (integer x, integer y) load_draw =
|
||||||
{
|
{
|
||||||
local integer i;
|
local integer i;
|
||||||
|
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_load.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_load.lmp", 1));
|
||||||
for (i=0 ; i< MAX_SAVEGAMES; i++)
|
for (i=0 ; i< MAX_SAVEGAMES; i++)
|
||||||
Draw_String (16, 32 + 8 * i, filenames[i]);
|
Draw_String (x + 16, y + 32 + 8 * i, filenames[i]);
|
||||||
Draw_Character (8, 32 + load_cursor * 8, 12 + (integer) (time * 4) & 1);
|
Draw_Character (x + 8, y + 32 + load_cursor * 8,
|
||||||
|
12 + (integer) (time * 4) & 1);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
integer () save_draw =
|
integer (integer x, integer y) save_draw =
|
||||||
{
|
{
|
||||||
local integer i;
|
local integer i;
|
||||||
|
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_save.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_save.lmp", 1));
|
||||||
for (i=0 ; i< MAX_SAVEGAMES; i++)
|
for (i=0 ; i< MAX_SAVEGAMES; i++)
|
||||||
Draw_String (16, 32 + 8 * i, filenames[i]);
|
Draw_String (x + 16, y + 32 + 8 * i, filenames[i]);
|
||||||
Draw_Character (8, 32 + save_cursor * 8, 12 + (integer) (time * 4) & 1);
|
Draw_Character (x + 8, y + 32 + save_cursor * 8,
|
||||||
|
12 + (integer) (time * 4) & 1);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -249,13 +251,13 @@ integer (integer key, integer unicode, integer down) quit_keyevent =
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
integer () quit_draw =
|
integer (integer x, integer y) quit_draw =
|
||||||
{
|
{
|
||||||
text_box (56, 76, 24, 4);
|
text_box (x + 56, y + 76, 24, 4);
|
||||||
Draw_String (64, 84, quitMessage[quit_index * 4 + 0]);
|
Draw_String (x + 64, y + 84, quitMessage[quit_index * 4 + 0]);
|
||||||
Draw_String (64, 92, quitMessage[quit_index * 4 + 1]);
|
Draw_String (x + 64, y + 92, quitMessage[quit_index * 4 + 1]);
|
||||||
Draw_String (64, 100, quitMessage[quit_index * 4 + 2]);
|
Draw_String (x + 64, y + 100, quitMessage[quit_index * 4 + 2]);
|
||||||
Draw_String (64, 108, quitMessage[quit_index * 4 + 3]);
|
Draw_String (x + 64, y + 108, quitMessage[quit_index * 4 + 3]);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -310,37 +312,40 @@ InputLine lanConfig_port_il;
|
||||||
InputLine lanConfig_join_il;
|
InputLine lanConfig_join_il;
|
||||||
InputLine input_active;
|
InputLine input_active;
|
||||||
|
|
||||||
integer () join_draw =
|
integer (integer x, integer y) join_draw =
|
||||||
{
|
{
|
||||||
local integer f = (320 - 26 * 8) / 2;
|
local integer f = x + (320 - 26 * 8) / 2;
|
||||||
text_box (f, 134, 24, 4);
|
text_box (f, y + 134, 24, 4);
|
||||||
Draw_String (f, 142, " Commonly used to play ");
|
Draw_String (f, y + 142, " Commonly used to play ");
|
||||||
Draw_String (f, 150, " over the Internet, but ");
|
Draw_String (f, y + 150, " over the Internet, but ");
|
||||||
Draw_String (f, 158, " also used on a Local ");
|
Draw_String (f, y + 158, " also used on a Local ");
|
||||||
Draw_String (f, 166, " Area Network. ");
|
Draw_String (f, y + 166, " Area Network. ");
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
integer () lanconfig_draw =
|
integer (integer x, integer y) lanconfig_draw =
|
||||||
{
|
{
|
||||||
local integer basex = 54;
|
local integer basex = 54 + x;
|
||||||
local string startJoin = JoiningGame ? "Join Game" : "New Game";
|
local string startJoin = JoiningGame ? "Join Game" : "New Game";
|
||||||
local string protocol = "UDP";
|
local string protocol = "UDP";
|
||||||
|
|
||||||
Draw_String (basex, 32, sprintf ("%s - %s", startJoin, protocol));
|
Draw_String (basex, y + 32, sprintf ("%s - %s", startJoin, protocol));
|
||||||
basex += 8;
|
basex += 8;
|
||||||
Draw_String (basex, 52, "Address:");
|
Draw_String (basex, y + 52, "Address:");
|
||||||
Draw_String (basex + 9 * 8, 52, "127.0.0.1");
|
Draw_String (basex + 9 * 8, y + 52, "127.0.0.1");
|
||||||
Draw_String (basex, lanConfig_cursor_table[0], "Port");
|
Draw_String (basex, y + lanConfig_cursor_table[0], "Port");
|
||||||
text_box (basex + 8 * 8, lanConfig_cursor_table[0] - 8, 6, 1);
|
text_box (basex + 8 * 8, y + lanConfig_cursor_table[0] - 8, 6, 1);
|
||||||
|
[lanConfig_port_il setBasePos:x y:y];
|
||||||
[lanConfig_port_il draw:lanConfig_cursor == 0 && input_active];
|
[lanConfig_port_il draw:lanConfig_cursor == 0 && input_active];
|
||||||
Draw_String (basex + 9 * 8, lanConfig_cursor_table[0], lanConfig_portname);
|
Draw_String (basex + 9 * 8, y + lanConfig_cursor_table[0],
|
||||||
|
lanConfig_portname);
|
||||||
|
|
||||||
if (JoiningGame) {
|
if (JoiningGame) {
|
||||||
Draw_String (basex, lanConfig_cursor_table[1], "Search for local "
|
Draw_String (basex, lanConfig_cursor_table[1], "Search for local "
|
||||||
"games...");
|
"games...");
|
||||||
Draw_String (basex, 108, "Join game at:");
|
Draw_String (basex, 108, "Join game at:");
|
||||||
text_box (basex + 8, lanConfig_cursor_table[2] - 8, 22, 1);
|
text_box (basex + 8, lanConfig_cursor_table[2] - 8, 22, 1);
|
||||||
|
[lanConfig_join_il setBasePos:x y:y];
|
||||||
[lanConfig_join_il draw:lanConfig_cursor == 2 && input_active];
|
[lanConfig_join_il draw:lanConfig_cursor == 2 && input_active];
|
||||||
Draw_String (basex + 16, lanConfig_cursor_table[2],
|
Draw_String (basex + 16, lanConfig_cursor_table[2],
|
||||||
lanConfig_joinname);
|
lanConfig_joinname);
|
||||||
|
|
|
@ -267,25 +267,25 @@ CB_ME_basic_control_binding =
|
||||||
|
|
||||||
Draws the menu for the basic control bindins
|
Draws the menu for the basic control bindins
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_basic_control_binding =
|
DRAW_basic_control_binding =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 40, bind_desc_pad, hl, i;
|
local integer cursor_pad = 40, bind_desc_pad, hl, i;
|
||||||
|
|
||||||
bind_desc_pad = 120;
|
bind_desc_pad = 120;
|
||||||
|
|
||||||
Draw_String (20, 10, "Backspace/Delete: Del binding");
|
Draw_String (x + 20, y + 10, "Backspace/Delete: Del binding");
|
||||||
Draw_String (20, 20, "Enter: New binding");
|
Draw_String (x + 20, y + 20, "Enter: New binding");
|
||||||
|
|
||||||
|
|
||||||
hl = [movement_bindings count];
|
hl = [movement_bindings count];
|
||||||
for(i = 0; i < hl; i++) {
|
for(i = 0; i < hl; i++) {
|
||||||
local binding_t [] binding = [movement_bindings getItemAt: i];
|
local binding_t [] binding = [movement_bindings getItemAt: i];
|
||||||
draw_val_item (20, 40 + ( i * 10), bind_desc_pad,
|
draw_val_item (x + 20, y + 40 + ( i * 10), bind_desc_pad,
|
||||||
binding.text, binding.keys);
|
binding.text, binding.keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_cursor (12, (Menu_GetIndex () * 10) + cursor_pad);
|
opt_cursor (x + 12, y + (Menu_GetIndex () * 10) + cursor_pad);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
@ -344,7 +344,7 @@ CB_ME_misc_control_binding =
|
||||||
|
|
||||||
Draw the bindings for the misc controls
|
Draw the bindings for the misc controls
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_misc_control_binding =
|
DRAW_misc_control_binding =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 40, bind_desc_pad;
|
local integer cursor_pad = 40, bind_desc_pad;
|
||||||
|
@ -352,17 +352,17 @@ DRAW_misc_control_binding =
|
||||||
|
|
||||||
bind_desc_pad = 120;
|
bind_desc_pad = 120;
|
||||||
|
|
||||||
Draw_String (20, 10, "Backspace/Delete: Del binding");
|
Draw_String (x + 20, y + 10, "Backspace/Delete: Del binding");
|
||||||
Draw_String (20, 20, "Enter: New binding");
|
Draw_String (x + 20, y + 20, "Enter: New binding");
|
||||||
|
|
||||||
hl = [misc_bindings count];
|
hl = [misc_bindings count];
|
||||||
for(i=0;i < hl; i++) {
|
for(i=0;i < hl; i++) {
|
||||||
local binding_t [] binding = [misc_bindings getItemAt: i];
|
local binding_t [] binding = [misc_bindings getItemAt: i];
|
||||||
draw_val_item (20, 40+(i*10), bind_desc_pad,
|
draw_val_item (x + 20, y + 40+(i*10), bind_desc_pad,
|
||||||
binding.text, binding.keys);
|
binding.text, binding.keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_cursor (12, (Menu_GetIndex() * 10) + cursor_pad);
|
opt_cursor (x + 12, y + (Menu_GetIndex() * 10) + cursor_pad);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -421,24 +421,24 @@ CB_ME_weapon_control_binding =
|
||||||
|
|
||||||
Draw the weapon binding menu
|
Draw the weapon binding menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_weapon_control_binding =
|
DRAW_weapon_control_binding =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 40, bind_desc_pad, hl, i;
|
local integer cursor_pad = 40, bind_desc_pad, hl, i;
|
||||||
|
|
||||||
bind_desc_pad = 120;
|
bind_desc_pad = 120;
|
||||||
|
|
||||||
Draw_String (20, 10, "Backspace/Delete: Del binding");
|
Draw_String (x + 20, y + 10, "Backspace/Delete: Del binding");
|
||||||
Draw_String (20, 20, "Enter: New binding");
|
Draw_String (x + 20, y + 20, "Enter: New binding");
|
||||||
|
|
||||||
hl = [weapon_bindings count];
|
hl = [weapon_bindings count];
|
||||||
for(i = 0; i < hl; i++) {
|
for(i = 0; i < hl; i++) {
|
||||||
local binding_t [] binding = [weapon_bindings getItemAt: i];
|
local binding_t [] binding = [weapon_bindings getItemAt: i];
|
||||||
draw_val_item (20, 40 + (i * 10), bind_desc_pad,
|
draw_val_item (x + 20, y + 40 + (i * 10), bind_desc_pad,
|
||||||
binding.text, binding.keys);
|
binding.text, binding.keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_cursor (12, (Menu_GetIndex () * 10) + cursor_pad);
|
opt_cursor (x + 12, y + (Menu_GetIndex () * 10) + cursor_pad);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
@extern void (integer x, integer y, string text) Menu_Begin;
|
@extern void (integer x, integer y, string text) Menu_Begin;
|
||||||
@extern void (integer val) Menu_FadeScreen;
|
@extern void (integer val) Menu_FadeScreen;
|
||||||
@extern void (integer () func) Menu_Draw;
|
@extern void (integer (integer x, integer y) func) Menu_Draw;
|
||||||
@extern void (integer () func) Menu_EnterHook;
|
@extern void (integer () func) Menu_EnterHook;
|
||||||
@extern void (integer () func) Menu_LeaveHook;
|
@extern void (integer () func) Menu_LeaveHook;
|
||||||
@extern void (integer x, integer y, string name) Menu_Pic;
|
@extern void (integer x, integer y, string name) Menu_Pic;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
void (integer x, integer y, string text) Menu_Begin = #0;
|
void (integer x, integer y, string text) Menu_Begin = #0;
|
||||||
void (integer val) Menu_FadeScreen = #0;
|
void (integer val) Menu_FadeScreen = #0;
|
||||||
void (integer () func) Menu_Draw = #0;
|
void (integer (integer x, integer y) func) Menu_Draw = #0;
|
||||||
void (integer () func) Menu_EnterHook = #0;
|
void (integer () func) Menu_EnterHook = #0;
|
||||||
void (integer () func) Menu_LeaveHook = #0;
|
void (integer () func) Menu_LeaveHook = #0;
|
||||||
void (integer x, integer y, string name) Menu_Pic = #0;
|
void (integer x, integer y, string name) Menu_Pic = #0;
|
||||||
|
|
|
@ -122,36 +122,40 @@ CB_video_options =
|
||||||
|
|
||||||
Drawing function for the video options menu
|
Drawing function for the video options menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_video_options =
|
DRAW_video_options =
|
||||||
{
|
{
|
||||||
local integer bar_pad, spacing = 120;
|
local integer bar_pad, spacing = 120;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Video");
|
Draw_String (x + 54, y + 40, "Video");
|
||||||
Draw_String (54, 50, "-----");
|
Draw_String (x + 54, y + 50, "-----");
|
||||||
draw_val_item (70, 60, spacing, "Fullscreen",
|
draw_val_item (x + 70, y + 60, spacing, "Fullscreen",
|
||||||
cvar ("vid_fullscreen") ? "On" : "Off");
|
cvar ("vid_fullscreen") ? "On" : "Off");
|
||||||
draw_val_item (70, 70, spacing, "Crosshair", ftos (cvar ("crosshair")));
|
draw_val_item (x + 70, y + 70, spacing, "Crosshair",
|
||||||
draw_val_item (70, 80, spacing, "Show fps",
|
ftos (cvar ("crosshair")));
|
||||||
|
draw_val_item (x + 70, y + 80, spacing, "Show fps",
|
||||||
cvar ("show_fps") ? "On" : "Off");
|
cvar ("show_fps") ? "On" : "Off");
|
||||||
draw_val_item (70, 90, spacing, "Show time",
|
draw_val_item (x + 70, y + 90, spacing, "Show time",
|
||||||
cvar ("show_time") ? "On" : "Off");
|
cvar ("show_time") ? "On" : "Off");
|
||||||
bar_pad = 90;
|
bar_pad = y + 90;
|
||||||
|
|
||||||
Draw_String (70, bar_pad + 10, "Gamma:");
|
Draw_String (x + 70, bar_pad + 10, "Gamma:");
|
||||||
draw_perc_bar (118, bar_pad + 10, 15,
|
draw_perc_bar (x + 118, bar_pad + 10, 15,
|
||||||
to_percentage (MIN_GAMMA, MAX_GAMMA, cvar ("vid_gamma")));
|
to_percentage (MIN_GAMMA, MAX_GAMMA,
|
||||||
Draw_String (118 + (15 + 4)*8 , bar_pad + 10, ftos (cvar ("vid_gamma")));
|
cvar ("vid_gamma")));
|
||||||
|
Draw_String (x + 118 + (15 + 4)*8 , bar_pad + 10,
|
||||||
|
ftos (cvar ("vid_gamma")));
|
||||||
|
|
||||||
Draw_String (70, bar_pad + 20, "Viewsize:");
|
Draw_String (x + 70, bar_pad + 20, "Viewsize:");
|
||||||
draw_perc_bar (142, bar_pad + 20, 12,
|
draw_perc_bar (x + 142, bar_pad + 20, 12,
|
||||||
to_percentage (MIN_VIEWSIZE, MAX_VIEWSIZE,
|
to_percentage (MIN_VIEWSIZE, MAX_VIEWSIZE,
|
||||||
cvar ("viewsize")));
|
cvar ("viewsize")));
|
||||||
Draw_String (142 + (12 + 4) * 8 , bar_pad + 20, ftos (cvar ("viewsize")));
|
Draw_String (x + 142 + (12 + 4) * 8 , bar_pad + 20,
|
||||||
|
ftos (cvar ("viewsize")));
|
||||||
|
|
||||||
opt_cursor (62, (Menu_GetIndex () * 10) + 60);
|
opt_cursor (x + 62, y + (Menu_GetIndex () * 10) + 60);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -211,24 +215,24 @@ CB_audio_options =
|
||||||
|
|
||||||
Draws the audio options menu
|
Draws the audio options menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_audio_options =
|
DRAW_audio_options =
|
||||||
{
|
{
|
||||||
local string tmp = ftos (cvar ("crosshair"));
|
local string tmp = ftos (cvar ("crosshair"));
|
||||||
local integer bar_pad, spacing = 120;
|
local integer bar_pad, spacing = 120;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Audio");
|
Draw_String (x + 54, y + 40, "Audio");
|
||||||
Draw_String (54, 50, "-----");
|
Draw_String (x + 54, y + 50, "-----");
|
||||||
bar_pad = 50;
|
bar_pad = y + 50;
|
||||||
|
|
||||||
Draw_String (70, bar_pad + 10, "Volume:");
|
Draw_String (x + 70, bar_pad + 10, "Volume:");
|
||||||
draw_perc_bar (126, bar_pad + 10, 15,
|
draw_perc_bar (x + 126, bar_pad + 10, 15,
|
||||||
to_percentage (MIN_VOLUME, MAX_VOLUME, cvar("volume")) );
|
to_percentage (MIN_VOLUME, MAX_VOLUME, cvar("volume")) );
|
||||||
Draw_String (126 + (15 + 4)*8 , bar_pad + 10, ftos(cvar("volume")));
|
Draw_String (x + 126 + (15 + 4)*8 , bar_pad + 10, ftos(cvar("volume")));
|
||||||
|
|
||||||
opt_cursor (62, (Menu_GetIndex() * 10) + 60);
|
opt_cursor (x + 62, y + (Menu_GetIndex() * 10) + 60);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -321,40 +325,40 @@ CB_control_options =
|
||||||
|
|
||||||
Draws the control option menu
|
Draws the control option menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_control_options =
|
DRAW_control_options =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 0, spacing = 120, bar_pad;
|
local integer cursor_pad = 0, spacing = 120, bar_pad;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Controls");
|
Draw_String (x + 54, y + 40, "Controls");
|
||||||
Draw_String (54, 50, "--------");
|
Draw_String (x + 54, y + 50, "--------");
|
||||||
Draw_String (70, 60, "Bindings");
|
Draw_String (x + 70, y + 60, "Bindings");
|
||||||
|
|
||||||
draw_val_item (70, 70, spacing, "Grab mouse", cvar ("in_grab") ? "On" :
|
draw_val_item (x + 70, y + 70, spacing, "Grab mouse",
|
||||||
"Off");
|
cvar ("in_grab") ? "On" : "Off");
|
||||||
draw_val_item (70, 80, spacing, "Auto run", cvar ("cl_forwardspeed")
|
draw_val_item (x + 70, y + 80, spacing, "Auto run",
|
||||||
< 400 ? "Off" : "On");
|
cvar ("cl_forwardspeed") < 400 ? "Off" : "On");
|
||||||
draw_val_item (70, 90, spacing, "Mouse Invert", cvar ("m_pitch") < 0 ?
|
draw_val_item (x + 70, y + 90, spacing, "Mouse Invert",
|
||||||
"On" : "Off");
|
cvar ("m_pitch") < 0 ? "On" : "Off");
|
||||||
bar_pad = 90;
|
bar_pad = y + 90;
|
||||||
|
|
||||||
Draw_String (70, bar_pad + 10, "Mouse amp:");
|
Draw_String (x + 70, bar_pad + 10, "Mouse amp:");
|
||||||
draw_perc_bar (150, bar_pad + 10, 12,
|
draw_perc_bar (x + 150, bar_pad + 10, 12,
|
||||||
to_percentage (MIN_MOUSE_AMP, MAX_MOUSE_AMP,
|
to_percentage (MIN_MOUSE_AMP, MAX_MOUSE_AMP,
|
||||||
cvar("in_mouse_amp")));
|
cvar("in_mouse_amp")));
|
||||||
Draw_String (150 + (12 + 4) * 8 , bar_pad + 10,
|
Draw_String (x + 150 + (12 + 4) * 8 , bar_pad + 10,
|
||||||
ftos (cvar ("in_mouse_amp")));
|
ftos (cvar ("in_mouse_amp")));
|
||||||
|
|
||||||
draw_val_item (70, 110, spacing, "Freelook", cvar("freelook") ? "On" :
|
draw_val_item (x + 70, y + 110, spacing, "Freelook",
|
||||||
"Off");
|
cvar("freelook") ? "On" : "Off");
|
||||||
draw_val_item (70, 120, spacing, "Lookspring", cvar ("lookspring") ? "On" :
|
draw_val_item (x + 70, y + 120, spacing, "Lookspring",
|
||||||
"Off");
|
cvar ("lookspring") ? "On" : "Off");
|
||||||
draw_val_item (70, 130, spacing, "Lookstrafe", cvar ("lookstrafe") ? "On"
|
draw_val_item (x + 70, y + 130, spacing, "Lookstrafe",
|
||||||
: "Off");
|
cvar ("lookstrafe") ? "On" : "Off");
|
||||||
|
|
||||||
opt_cursor (62, (Menu_GetIndex () * 10) + 60 + cursor_pad);
|
opt_cursor (x + 62, y + (Menu_GetIndex () * 10) + 60 + cursor_pad);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
@ -415,22 +419,22 @@ CB_feature_options =
|
||||||
|
|
||||||
Draws the feature option menu
|
Draws the feature option menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_feature_options =
|
DRAW_feature_options =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 0, spacing = 120;
|
local integer cursor_pad = 0, spacing = 120;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160,4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Features");
|
Draw_String (x + 54, y + 40, "Features");
|
||||||
Draw_String (54, 50, "--------");
|
Draw_String (x + 54, y + 50, "--------");
|
||||||
|
|
||||||
draw_val_item (70, 60, spacing, "Auto Record",
|
draw_val_item (x + 70, y + 60, spacing, "Auto Record",
|
||||||
cvar ("cl_autorecord") != 0 ? "On" : "Off");
|
cvar ("cl_autorecord") != 0 ? "On" : "Off");
|
||||||
draw_val_item (70, 70, spacing, "Fraglogging",
|
draw_val_item (x + 70, y + 70, spacing, "Fraglogging",
|
||||||
cvar ("cl_fraglog") != 0 ? "On" : "Off");
|
cvar ("cl_fraglog") != 0 ? "On" : "Off");
|
||||||
|
|
||||||
opt_cursor (62, (Menu_GetIndex () * 10) + 60 + cursor_pad);
|
opt_cursor (x + 62, y + (Menu_GetIndex () * 10) + 60 + cursor_pad);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -558,41 +562,43 @@ KEYEV_player_options =
|
||||||
|
|
||||||
Draws the player option menu
|
Draws the player option menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_player_options =
|
DRAW_player_options =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 0, spacing = 120;
|
local integer cursor_pad = 0, spacing = 120;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160,4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Player");
|
Draw_String (x + 54, y + 40, "Player");
|
||||||
Draw_String (54, 50, "--------");
|
Draw_String (x + 54, y + 50, "--------");
|
||||||
|
|
||||||
|
|
||||||
Draw_String (70, PLAYER_CONF_Y_PAD + 8, "Name..:");
|
Draw_String (x + 70, y + PLAYER_CONF_Y_PAD + 8, "Name..:");
|
||||||
text_box (120, PLAYER_CONF_Y_PAD, 17, 1);
|
text_box (x + 120, y + PLAYER_CONF_Y_PAD, 17, 1);
|
||||||
|
[player_config_plname_il setBasePos:x y:y];
|
||||||
[player_config_plname_il draw: player_config_iactive == player_config_plname_il];
|
[player_config_plname_il draw: player_config_iactive == player_config_plname_il];
|
||||||
|
|
||||||
Draw_String (70, PLAYER_CONF_Y_PAD + 20 + 8, "Team..:");
|
Draw_String (x + 70, y + PLAYER_CONF_Y_PAD + 20 + 8, "Team..:");
|
||||||
text_box (120, PLAYER_CONF_Y_PAD + 20, 5, 1);
|
text_box (x + 120, y + PLAYER_CONF_Y_PAD + 20, 5, 1);
|
||||||
|
[player_config_tname_il setBasePos:x y:y];
|
||||||
[player_config_tname_il draw:player_config_iactive == player_config_tname_il];
|
[player_config_tname_il draw:player_config_iactive == player_config_tname_il];
|
||||||
|
|
||||||
|
|
||||||
draw_val_item (70, PLAYER_CONF_Y_PAD + 45, spacing, "Top color",
|
draw_val_item (x + 70, y + PLAYER_CONF_Y_PAD + 45, spacing, "Top color",
|
||||||
" " + ftos (cvar ("topcolor")));
|
" " + ftos (cvar ("topcolor")));
|
||||||
draw_val_item (70, PLAYER_CONF_Y_PAD + 60, spacing, "Bottom color",
|
draw_val_item (x + 70, y + PLAYER_CONF_Y_PAD + 60, spacing,
|
||||||
" " + ftos (cvar ("bottomcolor")));
|
"Bottom color", " " + ftos (cvar ("bottomcolor")));
|
||||||
|
|
||||||
// Draw nice color boxes
|
// Draw nice color boxes
|
||||||
text_box (192, PLAYER_CONF_Y_PAD + 45 - 8, 1, 1);
|
text_box (x + 192, y + PLAYER_CONF_Y_PAD + 45 - 8, 1, 1);
|
||||||
Draw_Fill (200, PLAYER_CONF_Y_PAD + 45, 16, 8,
|
Draw_Fill (x + 200, y + PLAYER_CONF_Y_PAD + 45, 16, 8,
|
||||||
ftoi (cvar ("topcolor")) * 16 + 8);
|
ftoi (cvar ("topcolor")) * 16 + 8);
|
||||||
|
|
||||||
text_box (192, PLAYER_CONF_Y_PAD + 60 - 8, 1, 1);
|
text_box (x + 192, y + PLAYER_CONF_Y_PAD + 60 - 8, 1, 1);
|
||||||
Draw_Fill (200, PLAYER_CONF_Y_PAD + 60, 16, 8,
|
Draw_Fill (x + 200, y + PLAYER_CONF_Y_PAD + 60, 16, 8,
|
||||||
ftoi (cvar ("bottomcolor")) * 16 + 8);
|
ftoi (cvar ("bottomcolor")) * 16 + 8);
|
||||||
|
|
||||||
opt_cursor (62, player_config_cursor_tbl[player_config_cursor]);
|
opt_cursor (x + 62, y + player_config_cursor_tbl[player_config_cursor]);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -718,22 +724,23 @@ KEYEV_network_options =
|
||||||
|
|
||||||
Draws the network option menu
|
Draws the network option menu
|
||||||
*/
|
*/
|
||||||
integer ()
|
integer (integer x, integer y)
|
||||||
DRAW_network_options =
|
DRAW_network_options =
|
||||||
{
|
{
|
||||||
local integer cursor_pad = 0, spacing = 120;
|
local integer cursor_pad = 0, spacing = 120;
|
||||||
|
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_option.lmp", 1));
|
||||||
Draw_String (54, 40, "Network");
|
Draw_String (x + 54, y + 40, "Network");
|
||||||
Draw_String (54, 50, "--------");
|
Draw_String (x + 54, y + 50, "--------");
|
||||||
|
|
||||||
|
|
||||||
Draw_String (70, NETWORK_CONF_Y_PAD + 8, "Rate..:");
|
Draw_String (x + 70, y + NETWORK_CONF_Y_PAD + 8, "Rate..:");
|
||||||
text_box (120, NETWORK_CONF_Y_PAD, 9, 1);
|
text_box (x + 120, y + NETWORK_CONF_Y_PAD, 9, 1);
|
||||||
|
[network_config_rate_il setBasePos:x y:y];
|
||||||
[network_config_rate_il draw: network_config_iactive == network_config_rate_il];
|
[network_config_rate_il draw: network_config_iactive == network_config_rate_il];
|
||||||
|
|
||||||
opt_cursor (62, player_config_cursor_tbl[player_config_cursor]);
|
opt_cursor (x + 62, y + player_config_cursor_tbl[player_config_cursor]);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6,19 +6,19 @@
|
||||||
#include "controls_o.h"
|
#include "controls_o.h"
|
||||||
#include "client_menu.h"
|
#include "client_menu.h"
|
||||||
|
|
||||||
integer () servlist_favorates_draw =
|
integer (integer x, integer y) servlist_favorates_draw =
|
||||||
{
|
{
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
||||||
Draw_String (54, 40, "Under Construction");
|
Draw_String (x + 54, y + 40, "Under Construction");
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
integer () servlist_all_draw =
|
integer (integer x, integer y) servlist_all_draw =
|
||||||
{
|
{
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
||||||
Draw_String (54, 40, "Under Construction");
|
Draw_String (x + 54, y + 40, "Under Construction");
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -27,21 +27,22 @@ integer serv_nempty;
|
||||||
InputLine serv_maxping;
|
InputLine serv_maxping;
|
||||||
InputLine serv_game;
|
InputLine serv_game;
|
||||||
|
|
||||||
integer () servlist_filter_draw =
|
integer (integer x, integer y) servlist_filter_draw =
|
||||||
{
|
{
|
||||||
Draw_Pic (16, 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
Draw_Pic (x + 16, y + 4, Draw_CachePic ("gfx/qplaque.lmp", 1));
|
||||||
Draw_CenterPic (160, 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
Draw_CenterPic (x + 160, y + 4, Draw_CachePic ("gfx/p_multi.lmp", 1));
|
||||||
Draw_String (62, 40, "Max Ping........:");
|
Draw_String (x + 62, y + 40, "Max Ping........:");
|
||||||
text_box (206, 32, 4, 1);
|
text_box (x + 206, y + 32, 4, 1);
|
||||||
|
[serv_maxping setBasePos:x y:y];
|
||||||
[serv_maxping draw:1];
|
[serv_maxping draw:1];
|
||||||
Draw_String (62, 56, "Game Contains...:");
|
Draw_String (x + 62, y + 56, "Game Contains...:");
|
||||||
text_box (206, 48, 8, 1);
|
text_box (x + 206, y + 48, 8, 1);
|
||||||
Draw_String (62, 72, "Server Not Full.:");
|
Draw_String (x + 62, y + 72, "Server Not Full.:");
|
||||||
Draw_String (206, 72, ((serv_nfull == 0) ? "No" : "Yes"));
|
Draw_String (x + 206, y + 72, ((serv_nfull == 0) ? "No" : "Yes"));
|
||||||
Draw_String (62, 88, "Server Not Empty:");
|
Draw_String (x + 62, y + 88, "Server Not Empty:");
|
||||||
Draw_String (206, 88, ((serv_nempty == 0) ? "No" : "Yes"));
|
Draw_String (x + 206, y + 88, ((serv_nempty == 0) ? "No" : "Yes"));
|
||||||
Draw_String (62, 96, "Under Construction");
|
Draw_String (x + 62, y + 96, "Under Construction");
|
||||||
opt_cursor (54, (Menu_GetIndex () * 16) + 40);
|
opt_cursor (x + 54, y + (Menu_GetIndex () * 16) + 40);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ typedef _inputline_t [] inputline_t;
|
||||||
|
|
||||||
struct il_data_t = {
|
struct il_data_t = {
|
||||||
integer x, y;
|
integer x, y;
|
||||||
|
integer xbase, ybase;
|
||||||
BOOL cursor;
|
BOOL cursor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,6 +34,7 @@ struct il_data_t = {
|
||||||
//-initAt:(Point)p HistoryLines:(integer)l LineSize:(integer)s PromptChar:(integer)prompt;
|
//-initAt:(Point)p HistoryLines:(integer)l LineSize:(integer)s PromptChar:(integer)prompt;
|
||||||
- (void) free;
|
- (void) free;
|
||||||
|
|
||||||
|
- (void) setBasePos: (integer) x y: (integer) y;
|
||||||
- (void) setWidth: (integer)width;
|
- (void) setWidth: (integer)width;
|
||||||
- (void) draw: (BOOL)cursor;
|
- (void) draw: (BOOL)cursor;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ string (inputline_t il) InputLine_GetText = #0;
|
||||||
self = [super init];
|
self = [super init];
|
||||||
control.x = aRect.origin.x;
|
control.x = aRect.origin.x;
|
||||||
control.y = aRect.origin.y;
|
control.y = aRect.origin.y;
|
||||||
|
control.xbase = control.ybase = 0;
|
||||||
control.cursor = NO;
|
control.cursor = NO;
|
||||||
|
|
||||||
il = InputLine_Create (aRect.size.height, aRect.size.width, char);
|
il = InputLine_Create (aRect.size.height, aRect.size.width, char);
|
||||||
|
@ -33,6 +34,12 @@ string (inputline_t il) InputLine_GetText = #0;
|
||||||
[super free];
|
[super free];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setBasePos: (integer) x y: (integer) y
|
||||||
|
{
|
||||||
|
control.xbase = x;
|
||||||
|
control.ybase = y;
|
||||||
|
}
|
||||||
|
|
||||||
- (void) setWidth: (integer)visibleWidth
|
- (void) setWidth: (integer)visibleWidth
|
||||||
{
|
{
|
||||||
InputLine_SetWidth (il, width);
|
InputLine_SetWidth (il, width);
|
||||||
|
|
Loading…
Reference in a new issue