]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - keys.c
faster static light tracing (by not doing it as often), this also means results of...
[xonotic/darkplaces.git] / keys.c
diff --git a/keys.c b/keys.c
index a3d1f158a82fb1d39ffd6fb4ed18c294c8e5e6e0..f44a4681a5236221b5160ed540615805cc037ac0 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -8,7 +8,7 @@ of the License, or (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 See the GNU General Public License for more details.
 
@@ -68,7 +68,7 @@ keyname_t keynames[] =
        {"ALT", K_ALT},
        {"CTRL", K_CTRL},
        {"SHIFT", K_SHIFT},
-       
+
        {"F1", K_F1},
        {"F2", K_F2},
        {"F3", K_F3},
@@ -161,7 +161,7 @@ void Key_Console (int key)
 {
        if (key == K_ENTER)
        {
-               Cbuf_AddText (key_lines[edit_line]+1);  // skip the >
+               Cbuf_AddText (key_lines[edit_line]+1);  // skip the ]
                Cbuf_AddText ("\n");
                Con_Printf ("%s\n",key_lines[edit_line]);
                edit_line = (edit_line + 1) & 31;
@@ -169,9 +169,12 @@ void Key_Console (int key)
                key_lines[edit_line][0] = ']';
                key_lines[edit_line][1] = 0;    // EvilTypeGuy: null terminate
                key_linepos = 1;
+               // force an update, because the command may take some time
                if (cls.state == ca_disconnected)
-                       SCR_UpdateScreen ();    // force an update, because the command
-                                               // may take some time
+               {
+                       CL_UpdateScreen ();
+                       CL_UpdateScreen ();
+               }
                return;
        }
 
@@ -182,7 +185,7 @@ void Key_Console (int key)
                // Thanks to Fett, Taniwha
                Con_CompleteCommandLine();
        }
-       
+
        // Advanced Console Editing by Radix radix@planetquake.com
        // Added/Modified by EvilTypeGuy eviltypeguy@qeradiant.com
 
@@ -233,7 +236,7 @@ void Key_Console (int key)
        }
 
        if (key == K_INS) // toggle insert mode
-       {       
+       {
                key_insert ^= 1;
                return;
        }
@@ -279,8 +282,8 @@ void Key_Console (int key)
        if (key == K_PGUP || key==K_MWHEELUP)
        {
                con_backscroll += 2;
-               if (con_backscroll > con_totallines - (vid.height>>3) - 1)
-                       con_backscroll = con_totallines - (vid.height>>3) - 1;
+               if (con_backscroll > con_totallines - (vid.conheight>>3) - 1)
+                       con_backscroll = con_totallines - (vid.conheight>>3) - 1;
                return;
        }
 
@@ -294,7 +297,7 @@ void Key_Console (int key)
 
        if (key == K_HOME)
        {
-               con_backscroll = con_totallines - (vid.height>>3) - 1;
+               con_backscroll = con_totallines - (vid.conheight>>3) - 1;
                return;
        }
 
@@ -404,7 +407,7 @@ the K_* names are matched up.
 int Key_StringToKeynum (char *str)
 {
        keyname_t       *kn;
-       
+
        if (!str || !str[0])
                return -1;
        if (!str[1])
@@ -429,9 +432,9 @@ FIXME: handle quote special (general escape sequence?)
 */
 char *Key_KeynumToString (int keynum)
 {
-       keyname_t       *kn;    
+       keyname_t       *kn;
        static  char    tinystr[2];
-       
+
        if (keynum == -1)
                return "<KEY NOT FOUND>";
        if (keynum > 32 && keynum < 127)
@@ -491,7 +494,7 @@ void Key_Unbind_f (void)
                Con_Printf ("unbind <key> : remove commands from a key\n");
                return;
        }
-       
+
        b = Key_StringToKeynum (Cmd_Argv(1));
        if (b==-1)
        {
@@ -505,7 +508,7 @@ void Key_Unbind_f (void)
 void Key_Unbindall_f (void)
 {
        int             i;
-       
+
        for (i=0 ; i<256 ; i++)
                if (keybindings[i])
                        Key_SetBinding (i, "");
@@ -521,7 +524,7 @@ void Key_Bind_f (void)
 {
        int                     i, c, b;
        char            cmd[1024];
-       
+
        c = Cmd_Argc();
 
        if (c != 2 && c != 3)
@@ -544,7 +547,7 @@ void Key_Bind_f (void)
                        Con_Printf ("\"%s\" is not bound\n", Cmd_Argv(1) );
                return;
        }
-       
+
 // copy the rest of the command line
        cmd[0] = 0;             // start out with a null string
        for (i=2 ; i< c ; i++)
@@ -584,13 +587,17 @@ void Key_Init (void)
 {
        int             i;
 
+       // LordHavoc: clear keybindings array so bounds checking won't freak
+       for (i = 0;i < 256;i++)
+               keybindings[i] = NULL;
+
        for (i=0 ; i<32 ; i++)
        {
                key_lines[i][0] = ']';
                key_lines[i][1] = 0;
        }
        key_linepos = 1;
-       
+
 //
 // init ascii characters in console mode
 //
@@ -649,8 +656,6 @@ void Key_Init (void)
        Cmd_AddCommand ("bind",Key_Bind_f);
        Cmd_AddCommand ("unbind",Key_Unbind_f);
        Cmd_AddCommand ("unbindall",Key_Unbindall_f);
-
-
 }
 
 /*