Completed bindings-submenu, now all basic-bindings from old quake

are there.
This commit is contained in:
Robin Redeker 2002-02-02 10:20:37 +00:00
parent 2ac4ab161a
commit 03e0b2eae0
2 changed files with 103 additions and 36 deletions

View file

@ -1,16 +1,27 @@
#define NUM_BINDED_KEYS 3
#define NUM_BINDED_KEYS 19
string [NUM_BINDED_KEYS] key_bindings =
{
"+attack",
"impulse 10",
"+jump"
};
string [NUM_BINDED_KEYS] key_bindings_desc =
{
"none",
"none",
"none"
"+jump",
"+forward",
"+back",
"+left",
"+right",
"+speed",
"+moveleft",
"+moveright",
"+strafe",
"+loookup",
"+lookdown",
"centerview",
"+mlook",
"+klook",
"+moveup",
"+movedown",
"toggle in_grab"
};
string [NUM_BINDED_KEYS] key_bindings_desc;
integer set_key_flag;
@ -21,7 +32,7 @@ string (integer key, integer bindnum) make_key_desc =
keynum = Key_LookupBinding(IMT_0, bindnum, key_bindings[key]);
if(keynum == -1) {
keyname = "none";
keyname = "";
} else {
keyname = Key_KeynumToString(keynum);
// cut away the "K_"
@ -32,10 +43,15 @@ string (integer key, integer bindnum) make_key_desc =
void () load_keybindings =
{
local integer i, keynum;
local integer i;
local string nddesc = "";
for(i = 0;i < NUM_BINDED_KEYS; i++) {
key_bindings_desc[i] = make_key_desc(i, 1) + "," + make_key_desc(i, 2);
key_bindings_desc[i] = make_key_desc(i, 1);
nddesc = make_key_desc(i, 2);
if(nddesc != "") {
key_bindings_desc[i] += ", " + nddesc;
}
}
};
@ -44,17 +60,7 @@ integer (string text, integer key) control_bind_f =
local string binding;
local integer retval = 0, bindcnt = 0;
switch (text) {
case "set_attack_key":
binding = key_bindings[0];
break;
case "set_next_weap_key":
binding = key_bindings[1];
break;
case "set_jump_key":
binding = key_bindings[2];
break;
}
binding = key_bindings[stoi(text)];
if(set_key_flag) {
bindcnt = Key_CountBinding(IMT_0, binding);
@ -81,33 +87,92 @@ integer (string text, integer key) control_bind_f =
return retval;
};
integer () control_bind_draw =
integer () basic_control_bind_draw =
{
local integer cursor_pad = 50, bind_desc_pad;
local integer cursor_pad = 40, bind_desc_pad;
bind_desc_pad = 120;
Draw_String (20, 20, "Backspace/Delete: Del binding");
Draw_String (20, 30, "Enter: New binding");
Draw_String (20, 10, "Backspace/Delete: Del binding");
Draw_String (20, 20, "Enter: New binding");
draw_val_item (20, 50, bind_desc_pad, "Attack", key_bindings_desc[0]);
draw_val_item (20, 60, bind_desc_pad, "Next weapon", key_bindings_desc[1]);
draw_val_item (20, 70, bind_desc_pad, "Jump/Swin up", key_bindings_desc[2]);
draw_val_item (20, 40, bind_desc_pad, "Attack", key_bindings_desc[0]);
draw_val_item (20, 50, bind_desc_pad, "Next weapon", key_bindings_desc[1]);
draw_val_item (20, 60, bind_desc_pad, "Jump/Swin up", key_bindings_desc[2]);
draw_val_item (20, 70, bind_desc_pad, "Walf forward", key_bindings_desc[3]);
draw_val_item (20, 80, bind_desc_pad, "Backpedal", key_bindings_desc[4]);
draw_val_item (20, 90, bind_desc_pad, "Turn left", key_bindings_desc[5]);
draw_val_item (20, 100, bind_desc_pad, "Turn right", key_bindings_desc[6]);
draw_val_item (20, 110, bind_desc_pad, "Run", key_bindings_desc[7]);
draw_val_item (20, 120, bind_desc_pad, "Step left", key_bindings_desc[8]);
draw_val_item (20, 130, bind_desc_pad, "Step right", key_bindings_desc[9]);
draw_val_item (20, 140, bind_desc_pad, "Sidestep", key_bindings_desc[10]);
draw_val_item (20, 150, bind_desc_pad, "Look up", key_bindings_desc[11]);
draw_val_item (20, 160, bind_desc_pad, "Look down", key_bindings_desc[12]);
draw_val_item (20, 170, bind_desc_pad, "Center view", key_bindings_desc[13]);
draw_val_item (20, 180, bind_desc_pad, "Mouse look", key_bindings_desc[14]);
draw_val_item (20, 190, bind_desc_pad, "Keyboard look", key_bindings_desc[15]);
draw_val_item (20, 200, bind_desc_pad, "Swim up", key_bindings_desc[16]);
draw_val_item (20, 210, bind_desc_pad, "Swim down", key_bindings_desc[17]);
opt_cursor (12, (Menu_GetIndex() * 10) + cursor_pad);
return 1;
};
void () control_bind_menu =
integer () misc_control_bind_draw =
{
Menu_Begin (54, 90, "Bindings");
Menu_FadeScreen (1);
Menu_Draw (control_bind_draw);
local integer cursor_pad = 40, bind_desc_pad;
Menu_Item (20, 50, "set_attack_key", control_bind_f, 1);
Menu_Item (20, 60, "set_next_weap_key", control_bind_f, 1);
Menu_Item (20, 70, "set_jump_key", control_bind_f, 1);
bind_desc_pad = 120;
Draw_String (20, 10, "Backspace/Delete: Del binding");
Draw_String (20, 20, "Enter: New binding");
draw_val_item (20, 40, bind_desc_pad, "Tog. m.-grab", key_bindings_desc[18]);
opt_cursor (12, (Menu_GetIndex() * 10) + cursor_pad);
return 1;
};
void () basic_control_bind_menu =
{
local integer i;
Menu_Begin (54, 40, "Basic bindings");
Menu_FadeScreen (1);
Menu_Draw (basic_control_bind_draw);
for (i = 0; i < 18; i++) {
Menu_Item (20, 40 + i*10, itos(i), control_bind_f, 1);
}
Menu_End ();
};
void () misc_control_bind_menu =
{
local integer i;
Menu_Begin (54, 50, "Misc bindings");
Menu_FadeScreen (1);
Menu_Draw (misc_control_bind_draw);
for (i = 18; i < 19; i++) {
Menu_Item (20, 40 + i*10, itos(i), control_bind_f, 1);
}
Menu_End ();
};
void () control_bind_menu =
{
Menu_Begin (54, 90, "Bindings");
Menu_Pic (16, 4, "gfx/qplaque.lmp");
Menu_CenterPic (160, 4, "gfx/p_option.lmp");
Menu_FadeScreen (1);
basic_control_bind_menu ();
misc_control_bind_menu ();
Menu_End ();
};

View file

@ -3,4 +3,6 @@ void(string var, string val) cvar_set = #72; // sets cvar.value
string(float f) ftos = #26; // converts float to string
integer(float f) ftoi = #110; // converts float to integer
string(integer i) itos = #112; // converts interger to string
integer(string str) stoi = #113; // converts string to integer
float(string str) stof = #81; // converts string to float
void(string s) dprint = #25;