mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
Playermenu working now fine.
Added some api-functions to complete playermenu. (Playermenu isn't still finished)
This commit is contained in:
parent
504ee0014f
commit
489bc7291a
8 changed files with 69 additions and 27 deletions
|
@ -409,9 +409,7 @@ void ()
|
||||||
MENU_control_binding =
|
MENU_control_binding =
|
||||||
{
|
{
|
||||||
init_binding_hash (); // init the keybinding hashes
|
init_binding_hash (); // init the keybinding hashes
|
||||||
load_keybindings (); // load the keybindings into hashes
|
load_keybindings (); // load the keybindings into hashes // FIXME
|
||||||
|
|
||||||
set_key_flag = 0;
|
|
||||||
|
|
||||||
Menu_Begin (54, 60, "Bindings");
|
Menu_Begin (54, 60, "Bindings");
|
||||||
Menu_Pic (16, 4, "gfx/qplaque.lmp");
|
Menu_Pic (16, 4, "gfx/qplaque.lmp");
|
||||||
|
|
|
@ -6,3 +6,5 @@ void (inputline_t il) InputLine_Destroy = #0;
|
||||||
void (inputline_t il) InputLine_Clear = #0;
|
void (inputline_t il) InputLine_Clear = #0;
|
||||||
void (inputline_t il, integer ch) InputLine_Process = #0;
|
void (inputline_t il, integer ch) InputLine_Process = #0;
|
||||||
void (inputline_t il, integer x, integer y, integer cursor) InputLine_Draw = #0;
|
void (inputline_t il, integer x, integer y, integer cursor) InputLine_Draw = #0;
|
||||||
|
void (inputline_t il, string str) InputLine_SetText = #0;
|
||||||
|
string (inputline_t il) InputLine_GetText = #0;
|
||||||
|
|
|
@ -24,21 +24,4 @@
|
||||||
Boston, MA 02111-1307, USA
|
Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* EMPTY YET - REMOVE FILE? */
|
||||||
/*
|
|
||||||
InputLine_SetText
|
|
||||||
|
|
||||||
Inserts characters of a string into
|
|
||||||
a inputline.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void (inputline_t il, string str)
|
|
||||||
InputLine_SetText =
|
|
||||||
{
|
|
||||||
local integer i, charint;
|
|
||||||
charint = String_GetChar(str,0);
|
|
||||||
for(i = 0; charint != 0; i++) {
|
|
||||||
InputLine_Process(il, String_GetChar(str,i));
|
|
||||||
charint = String_GetChar(str,i);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
float () random = #0;
|
|
||||||
float () traceon = #0;
|
|
||||||
float () traceoff = #0;
|
|
||||||
string () gametype = #0;
|
|
||||||
string (...) sprintf = #0;
|
|
||||||
|
|
||||||
entity self;
|
entity self;
|
||||||
.float nextthink;
|
.float nextthink;
|
||||||
.float frame;
|
.float frame;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
menu.dat
|
menu.dat
|
||||||
|
|
||||||
|
@srcdir@/cvar_def.qc
|
||||||
@srcdir@/cbuf_def.qc
|
@srcdir@/cbuf_def.qc
|
||||||
@srcdir@/draw_def.qc
|
@srcdir@/draw_def.qc
|
||||||
@srcdir@/file_def.qc
|
@srcdir@/file_def.qc
|
||||||
|
|
|
@ -14,3 +14,9 @@ void (string name) Menu_SelectMenu = #0;
|
||||||
void (integer () func) Menu_SetQuit = #0;
|
void (integer () func) Menu_SetQuit = #0;
|
||||||
void () Menu_Quit = #0;
|
void () Menu_Quit = #0;
|
||||||
integer () Menu_GetIndex = #0;
|
integer () Menu_GetIndex = #0;
|
||||||
|
|
||||||
|
float () random = #0;
|
||||||
|
float () traceon = #0;
|
||||||
|
float () traceoff = #0;
|
||||||
|
string () gametype = #0;
|
||||||
|
string (...) sprintf = #0;
|
||||||
|
|
|
@ -437,6 +437,8 @@ MENU_feature_options =
|
||||||
* Player settings, generally name, team, and color
|
* Player settings, generally name, team, and color
|
||||||
***************************************************/
|
***************************************************/
|
||||||
|
|
||||||
|
string playername_cvar; // name of the cvar holding playername (gametype dependend)
|
||||||
|
|
||||||
// input for playername
|
// input for playername
|
||||||
string player_config_playername;
|
string player_config_playername;
|
||||||
inputline_t player_config_plname_il;
|
inputline_t player_config_plname_il;
|
||||||
|
@ -479,6 +481,9 @@ KEYEV_player_options =
|
||||||
break;
|
break;
|
||||||
case QFK_RETURN:
|
case QFK_RETURN:
|
||||||
if (player_config_iactive) {
|
if (player_config_iactive) {
|
||||||
|
if(player_config_iactive == player_config_plname_il) {
|
||||||
|
cvar_set(playername_cvar,InputLine_GetText(player_config_plname_il));
|
||||||
|
}
|
||||||
player_config_iactive = NIL;
|
player_config_iactive = NIL;
|
||||||
} else {
|
} else {
|
||||||
if (player_config_cursor == 0) {
|
if (player_config_cursor == 0) {
|
||||||
|
@ -555,6 +560,23 @@ DRAW_player_options =
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
CB_ME_player_options
|
||||||
|
|
||||||
|
Entercallback for the playermenu.
|
||||||
|
For initalising the playername and teamname.
|
||||||
|
*/
|
||||||
|
integer ()
|
||||||
|
CB_ME_player_options =
|
||||||
|
{
|
||||||
|
if(gametype() == "quakeworld") {
|
||||||
|
playername_cvar = "name";
|
||||||
|
} else {
|
||||||
|
playername_cvar = "_cl_name";
|
||||||
|
}
|
||||||
|
dprint("DOO\n");
|
||||||
|
InputLine_SetText (player_config_plname_il, Cvar_GetCvarString(playername_cvar));
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
MENU_player_options
|
MENU_player_options
|
||||||
|
@ -571,6 +593,7 @@ MENU_player_options =
|
||||||
Menu_Begin (54, 80, "Player");
|
Menu_Begin (54, 80, "Player");
|
||||||
Menu_FadeScreen (1);
|
Menu_FadeScreen (1);
|
||||||
Menu_KeyEvent (KEYEV_player_options);
|
Menu_KeyEvent (KEYEV_player_options);
|
||||||
|
Menu_EnterHook (CB_ME_player_options);
|
||||||
Menu_Draw (DRAW_player_options);
|
Menu_Draw (DRAW_player_options);
|
||||||
Menu_End ();
|
Menu_End ();
|
||||||
};
|
};
|
||||||
|
|
|
@ -127,6 +127,39 @@ bi_InputLine_Process (progs_t *pr)
|
||||||
Con_ProcessInputLine (line, ch);
|
Con_ProcessInputLine (line, ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bi_InputLine_SetText
|
||||||
|
|
||||||
|
Sets the inputline to a specified text
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
bi_InputLine_SetText (progs_t *pr)
|
||||||
|
{
|
||||||
|
pr_type_t *handle = pr->pr_globals + G_INT (pr, OFS_PARM0);
|
||||||
|
inputline_t *il = *(inputline_t **)handle;
|
||||||
|
const char *str = G_STRING (pr, OFS_PARM1);
|
||||||
|
|
||||||
|
/* this was segfault trap:
|
||||||
|
il->lines[il->edit_line][0] is promt character
|
||||||
|
*/
|
||||||
|
strncpy(il->lines[il->edit_line] + 1,str,il->line_size - 1);
|
||||||
|
il->lines[il->edit_line][il->line_size-1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bi_InputLine_GetText
|
||||||
|
|
||||||
|
Gets the text from a inputline
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
bi_InputLine_GetText (progs_t *pr)
|
||||||
|
{
|
||||||
|
pr_type_t *handle = pr->pr_globals + G_INT (pr, OFS_PARM0);
|
||||||
|
inputline_t *il = *(inputline_t **)handle;
|
||||||
|
|
||||||
|
RETURN_STRING(pr, il->lines[il->edit_line]+1);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bi_InputLine_Draw (progs_t *pr)
|
bi_InputLine_Draw (progs_t *pr)
|
||||||
{
|
{
|
||||||
|
@ -173,6 +206,8 @@ InputLine_Progs_Init (progs_t *pr)
|
||||||
PR_Resources_Register (pr, "InputLine", res, bi_il_clear);
|
PR_Resources_Register (pr, "InputLine", res, bi_il_clear);
|
||||||
PR_AddBuiltin (pr, "InputLine_Create", bi_InputLine_Create, -1);
|
PR_AddBuiltin (pr, "InputLine_Create", bi_InputLine_Create, -1);
|
||||||
PR_AddBuiltin (pr, "InputLine_SetWidth", bi_InputLine_SetWidth, -1);
|
PR_AddBuiltin (pr, "InputLine_SetWidth", bi_InputLine_SetWidth, -1);
|
||||||
|
PR_AddBuiltin (pr, "InputLine_SetText", bi_InputLine_SetText, -1);
|
||||||
|
PR_AddBuiltin (pr, "InputLine_GetText", bi_InputLine_GetText, -1);
|
||||||
PR_AddBuiltin (pr, "InputLine_Destroy", bi_InputLine_Destroy, -1);
|
PR_AddBuiltin (pr, "InputLine_Destroy", bi_InputLine_Destroy, -1);
|
||||||
PR_AddBuiltin (pr, "InputLine_Clear", bi_InputLine_Clear, -1);
|
PR_AddBuiltin (pr, "InputLine_Clear", bi_InputLine_Clear, -1);
|
||||||
PR_AddBuiltin (pr, "InputLine_Process", bi_InputLine_Process, -1);
|
PR_AddBuiltin (pr, "InputLine_Process", bi_InputLine_Process, -1);
|
||||||
|
|
Loading…
Reference in a new issue