diff --git a/src/c_bind.cpp b/src/c_bind.cpp index aae07ca0d..c6ce8bd06 100644 --- a/src/c_bind.cpp +++ b/src/c_bind.cpp @@ -746,6 +746,36 @@ CCMD (rebind) // //============================================================================= +void C_BindLump(int lump) +{ + FScanner sc(lump); + + while (sc.GetString()) + { + FKeyBindings *dest = &Bindings; + int key; + + // bind destination is optional and is the same as the console command + if (sc.Compare("bind")) + { + sc.MustGetString(); + } + else if (sc.Compare("doublebind")) + { + dest = &DoubleBindings; + sc.MustGetString(); + } + else if (sc.Compare("mapbind")) + { + dest = &AutomapBindings; + sc.MustGetString(); + } + key = GetConfigKeyFromName(sc.String); + sc.MustGetString(); + dest->SetBind(key, sc.String); + } +} + void C_BindDefaults () { int lump, lastlump = 0; @@ -753,6 +783,9 @@ void C_BindDefaults () switch (k_modern) { + case 0: + defbinds = "DEFBIND0"; + break; case 1: defbinds = "DEFBIND1"; break; @@ -762,40 +795,14 @@ void C_BindDefaults () case 3: defbinds = "DEFBIND3"; break; - default: - defbinds = "DEFBINDS"; - break; } + while ((lump = Wads.FindLump("DEFBINDS", &lastlump)) != -1) + C_BindLump(lump); + lump = 0; + lastlump = 0; while ((lump = Wads.FindLump(defbinds, &lastlump)) != -1) - { - FScanner sc(lump); - - while (sc.GetString()) - { - FKeyBindings *dest = &Bindings; - int key; - - // bind destination is optional and is the same as the console command - if (sc.Compare("bind")) - { - sc.MustGetString(); - } - else if (sc.Compare("doublebind")) - { - dest = &DoubleBindings; - sc.MustGetString(); - } - else if (sc.Compare("mapbind")) - { - dest = &AutomapBindings; - sc.MustGetString(); - } - key = GetConfigKeyFromName(sc.String); - sc.MustGetString(); - dest->SetBind(key, sc.String); - } - } + C_BindLump(lump); } CCMD(binddefaults) diff --git a/wadsrc/static/defbind0.txt b/wadsrc/static/defbind0.txt new file mode 100644 index 000000000..be6ac9dbe --- /dev/null +++ b/wadsrc/static/defbind0.txt @@ -0,0 +1,19 @@ +/* Default keybindings for all games */ + +ctrl +attack +alt +strafe +rightarrow +right +leftarrow +left +uparrow +forward +downarrow +back +, +moveleft +. +moveright +mouse2 +strafe +mouse3 +forward +mouse4 +speed + +// Generic joystick buttons +joy1 +attack +joy2 +strafe +joy3 +speed +joy4 +use diff --git a/wadsrc/static/defbind1.txt b/wadsrc/static/defbind1.txt index cec8bce3f..0d318becc 100644 --- a/wadsrc/static/defbind1.txt +++ b/wadsrc/static/defbind1.txt @@ -1,96 +1,10 @@ /* Default keybindings for all games */ -` toggleconsole -1 "slot 1" -2 "slot 2" -3 "slot 3" -4 "slot 4" -5 "slot 5" -6 "slot 6" -7 "slot 7" -8 "slot 8" -9 "slot 9" -0 "slot 0" -[ invprev -] invnext -mwheelleft invprev -mwheelright invnext -enter invuse -- sizedown -= sizeup -shift +speed -space +use w +forward s +back a +moveleft d +moveright e +jump x crouch -mouse1 +attack mouse2 +altattack mouse3 +speed -capslock "toggle cl_run" -f1 menu_help -f2 menu_save -f3 menu_load -f4 menu_options -f5 menu_display -f6 quicksave -f7 menu_endgame -f8 togglemessages -f9 quickload -f11 bumpgamma -f10 menu_quit -tab togglemap -pause pause -sysrq screenshot -t messagemode -\ +showscores -f12 spynext -mwheeldown weapnext -mwheelup weapprev - -// Originally just for Heretic, Hexen, and Strife. -// I can't see why they shouldn't be for Doom or Chex either. -pgup +moveup -ins +movedown -home land -pgdn +lookup -del +lookdown -end centerview - -// Generic joystick buttons - -// Xbox 360 / PS2 controllers -pad_a +use -pad_y +jump -rtrigger +attack -ltrigger +altattack -lshoulder weapprev -rshoulder weapnext -dpadleft invprev -dpadright invnext -dpaddown invuse -dpadup togglemap -pad_start pause -pad_back menu_main -lthumb crouch - - -/* Default automap bindings */ -mapbind f am_togglefollow -mapbind g am_togglegrid -mapbind p am_toggletexture -mapbind m am_setmark -mapbind c am_clearmarks -mapbind 0 am_gobig -mapbind rightarrow +am_panright -mapbind leftarrow +am_panleft -mapbind uparrow +am_panup -mapbind downarrow +am_pandown -mapbind - +am_zoomout -mapbind = +am_zoomin -mapbind kp- +am_zoomout -mapbind kp+ +am_zoomin -mapbind mwheelup "am_zoom 1.2" -mapbind mwheeldown "am_zoom -1.2" diff --git a/wadsrc/static/defbind2.txt b/wadsrc/static/defbind2.txt index 31e88f332..bca5d7983 100644 --- a/wadsrc/static/defbind2.txt +++ b/wadsrc/static/defbind2.txt @@ -1,96 +1,10 @@ /* Default keybindings for all games */ -` toggleconsole -1 "slot 1" -2 "slot 2" -3 "slot 3" -4 "slot 4" -5 "slot 5" -6 "slot 6" -7 "slot 7" -8 "slot 8" -9 "slot 9" -0 "slot 0" -[ invprev -] invnext -mwheelleft invprev -mwheelright invnext -enter invuse -- sizedown -= sizeup -shift +speed -space +use e +forward d +back s +moveleft f +moveright w +jump c crouch -mouse1 +attack mouse2 +altattack mouse3 +speed -capslock "toggle cl_run" -f1 menu_help -f2 menu_save -f3 menu_load -f4 menu_options -f5 menu_display -f6 quicksave -f7 menu_endgame -f8 togglemessages -f9 quickload -f11 bumpgamma -f10 menu_quit -tab togglemap -pause pause -sysrq screenshot -t messagemode -\ +showscores -f12 spynext -mwheeldown weapnext -mwheelup weapprev - -// Originally just for Heretic, Hexen, and Strife. -// I can't see why they shouldn't be for Doom or Chex either. -pgup +moveup -ins +movedown -home land -pgdn +lookup -del +lookdown -end centerview - -// Generic joystick buttons - -// Xbox 360 / PS2 controllers -pad_a +use -pad_y +jump -rtrigger +attack -ltrigger +altattack -lshoulder weapprev -rshoulder weapnext -dpadleft invprev -dpadright invnext -dpaddown invuse -dpadup togglemap -pad_start pause -pad_back menu_main -lthumb crouch - - -/* Default automap bindings */ -mapbind f am_togglefollow -mapbind g am_togglegrid -mapbind p am_toggletexture -mapbind m am_setmark -mapbind c am_clearmarks -mapbind 0 am_gobig -mapbind rightarrow +am_panright -mapbind leftarrow +am_panleft -mapbind uparrow +am_panup -mapbind downarrow +am_pandown -mapbind - +am_zoomout -mapbind = +am_zoomin -mapbind kp- +am_zoomout -mapbind kp+ +am_zoomin -mapbind mwheelup "am_zoom 1.2" -mapbind mwheeldown "am_zoom -1.2" diff --git a/wadsrc/static/defbind3.txt b/wadsrc/static/defbind3.txt index 044843253..16ce61b78 100644 --- a/wadsrc/static/defbind3.txt +++ b/wadsrc/static/defbind3.txt @@ -1,96 +1,10 @@ /* Default keybindings for all games */ -` toggleconsole -1 "slot 1" -2 "slot 2" -3 "slot 3" -4 "slot 4" -5 "slot 5" -6 "slot 6" -7 "slot 7" -8 "slot 8" -9 "slot 9" -0 "slot 0" -[ invprev -] invnext -mwheelleft invprev -mwheelright invnext -enter invuse -- sizedown -= sizeup -shift +speed -space +use i +forward k +back j +moveleft l +moveright o +jump m crouch -mouse1 +attack mouse2 +altattack mouse3 +speed -capslock "toggle cl_run" -f1 menu_help -f2 menu_save -f3 menu_load -f4 menu_options -f5 menu_display -f6 quicksave -f7 menu_endgame -f8 togglemessages -f9 quickload -f11 bumpgamma -f10 menu_quit -tab togglemap -pause pause -sysrq screenshot -t messagemode -\ +showscores -f12 spynext -mwheeldown weapnext -mwheelup weapprev - -// Originally just for Heretic, Hexen, and Strife. -// I can't see why they shouldn't be for Doom or Chex either. -pgup +moveup -ins +movedown -home land -pgdn +lookup -del +lookdown -end centerview - -// Generic joystick buttons - -// Xbox 360 / PS2 controllers -pad_a +use -pad_y +jump -rtrigger +attack -ltrigger +altattack -lshoulder weapprev -rshoulder weapnext -dpadleft invprev -dpadright invnext -dpaddown invuse -dpadup togglemap -pad_start pause -pad_back menu_main -lthumb crouch - - -/* Default automap bindings */ -mapbind f am_togglefollow -mapbind g am_togglegrid -mapbind p am_toggletexture -mapbind m am_setmark -mapbind c am_clearmarks -mapbind 0 am_gobig -mapbind rightarrow +am_panright -mapbind leftarrow +am_panleft -mapbind uparrow +am_panup -mapbind downarrow +am_pandown -mapbind - +am_zoomout -mapbind = +am_zoomin -mapbind kp- +am_zoomout -mapbind kp+ +am_zoomin -mapbind mwheelup "am_zoom 1.2" -mapbind mwheeldown "am_zoom -1.2" diff --git a/wadsrc/static/defbinds.txt b/wadsrc/static/defbinds.txt index 420d22432..95ca55c28 100644 --- a/wadsrc/static/defbinds.txt +++ b/wadsrc/static/defbinds.txt @@ -18,20 +18,9 @@ mwheelright invnext enter invuse - sizedown = sizeup -ctrl +attack -alt +strafe shift +speed space +use -rightarrow +right -leftarrow +left -uparrow +forward -downarrow +back -, +moveleft -. +moveright mouse1 +attack -mouse2 +strafe -mouse3 +forward -mouse4 +speed capslock "toggle cl_run" f1 menu_help f2 menu_save @@ -62,12 +51,6 @@ pgdn +lookup del +lookdown end centerview -// Generic joystick buttons -joy1 +attack -joy2 +strafe -joy3 +speed -joy4 +use - // Xbox 360 / PS2 controllers pad_a +use pad_y +jump diff --git a/wadsrc/static/filter/game-heretic/defbind1.txt b/wadsrc/static/filter/game-heretic/defbind1.txt deleted file mode 100644 index ed820a378..000000000 --- a/wadsrc/static/filter/game-heretic/defbind1.txt +++ /dev/null @@ -1,3 +0,0 @@ -/* Default keybindings for Heretic */ - -backspace "use ArtiTomeOfPower" \ No newline at end of file diff --git a/wadsrc/static/filter/game-heretic/defbind2.txt b/wadsrc/static/filter/game-heretic/defbind2.txt deleted file mode 100644 index ed820a378..000000000 --- a/wadsrc/static/filter/game-heretic/defbind2.txt +++ /dev/null @@ -1,3 +0,0 @@ -/* Default keybindings for Heretic */ - -backspace "use ArtiTomeOfPower" \ No newline at end of file diff --git a/wadsrc/static/filter/game-heretic/defbind3.txt b/wadsrc/static/filter/game-heretic/defbind3.txt deleted file mode 100644 index ed820a378..000000000 --- a/wadsrc/static/filter/game-heretic/defbind3.txt +++ /dev/null @@ -1,3 +0,0 @@ -/* Default keybindings for Heretic */ - -backspace "use ArtiTomeOfPower" \ No newline at end of file diff --git a/wadsrc/static/filter/game-hexen/defbind1.txt b/wadsrc/static/filter/game-hexen/defbind1.txt deleted file mode 100644 index d951bc981..000000000 --- a/wadsrc/static/filter/game-hexen/defbind1.txt +++ /dev/null @@ -1,11 +0,0 @@ -/* Default keybindings for Hexen */ - -backspace invuseall -\ "use ArtiHealth" -0 useflechette -9 "use ArtiBlastRadius" -8 "use ArtiTeleport" -7 "use ArtiTeleportOther" -6 "use ArtiPork" -5 "use ArtiInvulnerability2" -scroll +showscores \ No newline at end of file diff --git a/wadsrc/static/filter/game-hexen/defbind2.txt b/wadsrc/static/filter/game-hexen/defbind2.txt deleted file mode 100644 index d951bc981..000000000 --- a/wadsrc/static/filter/game-hexen/defbind2.txt +++ /dev/null @@ -1,11 +0,0 @@ -/* Default keybindings for Hexen */ - -backspace invuseall -\ "use ArtiHealth" -0 useflechette -9 "use ArtiBlastRadius" -8 "use ArtiTeleport" -7 "use ArtiTeleportOther" -6 "use ArtiPork" -5 "use ArtiInvulnerability2" -scroll +showscores \ No newline at end of file diff --git a/wadsrc/static/filter/game-hexen/defbind3.txt b/wadsrc/static/filter/game-hexen/defbind3.txt deleted file mode 100644 index d951bc981..000000000 --- a/wadsrc/static/filter/game-hexen/defbind3.txt +++ /dev/null @@ -1,11 +0,0 @@ -/* Default keybindings for Hexen */ - -backspace invuseall -\ "use ArtiHealth" -0 useflechette -9 "use ArtiBlastRadius" -8 "use ArtiTeleport" -7 "use ArtiTeleportOther" -6 "use ArtiPork" -5 "use ArtiInvulnerability2" -scroll +showscores \ No newline at end of file diff --git a/wadsrc/static/filter/game-strife/defbind0.txt b/wadsrc/static/filter/game-strife/defbind0.txt new file mode 100644 index 000000000..7848579da --- /dev/null +++ b/wadsrc/static/filter/game-strife/defbind0.txt @@ -0,0 +1,6 @@ +/* Default keybindings for Strife */ + +a +jump +w "showpop 1" +k "showpop 2" + diff --git a/wadsrc/static/filter/game-strife/defbind1.txt b/wadsrc/static/filter/game-strife/defbind1.txt index f0f1c29c7..9b9d84c47 100644 --- a/wadsrc/static/filter/game-strife/defbind1.txt +++ b/wadsrc/static/filter/game-strife/defbind1.txt @@ -1,10 +1,5 @@ /* Default keybindings for Strife */ c "showpop 1" -backspace invdrop -z "showpop 3" k "showpop 2" -q invquery -; not done -; h - use health diff --git a/wadsrc/static/filter/game-strife/defbind2.txt b/wadsrc/static/filter/game-strife/defbind2.txt index 5e838aa18..849655a69 100644 --- a/wadsrc/static/filter/game-strife/defbind2.txt +++ b/wadsrc/static/filter/game-strife/defbind2.txt @@ -1,10 +1,5 @@ /* Default keybindings for Strife */ x "showpop 1" -backspace invdrop -z "showpop 3" k "showpop 2" -q invquery -; not done -; h - use health diff --git a/wadsrc/static/filter/game-strife/defbind3.txt b/wadsrc/static/filter/game-strife/defbind3.txt index e1dfaa439..316c53e17 100644 --- a/wadsrc/static/filter/game-strife/defbind3.txt +++ b/wadsrc/static/filter/game-strife/defbind3.txt @@ -1,10 +1,5 @@ /* Default keybindings for Strife */ w "showpop 1" -backspace invdrop -z "showpop 3" u "showpop 2" -q invquery -; not done -; h - use health diff --git a/wadsrc/static/filter/game-strife/defbinds.txt b/wadsrc/static/filter/game-strife/defbinds.txt index 9370896a0..98a7bf85b 100644 --- a/wadsrc/static/filter/game-strife/defbinds.txt +++ b/wadsrc/static/filter/game-strife/defbinds.txt @@ -1,10 +1,7 @@ /* Default keybindings for Strife */ -a +jump -w "showpop 1" backspace invdrop z "showpop 3" -k "showpop 2" q invquery ; not done