replaced joy/mouse sensitivity slider, increased range to 16, and added d2x keys...
authorBradley Bell <btb@icculus.org>
Fri, 14 Mar 2003 05:11:29 +0000 (05:11 +0000)
committerBradley Bell <btb@icculus.org>
Fri, 14 Mar 2003 05:11:29 +0000 (05:11 +0000)
ChangeLog
arch/sdl/joydefs.c
main/kconfig.c
main/kconfig.h
main/menu.c

index a5f14ab..a218565 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2003-03-13  Bradley Bell  <btb@icculus.org>
 
+       * arch/sdl/joydefs.c, main/kconfig.c, main/kconfig.h, main/menu.c:
+       added joy/mouse sensitivity slider, increased range to 16, and
+       added d2x keys menu
+
        * main/Makefile.am, main/joydefs.c, main/old/joydefs.c: moved old
        joydefs to main
 
index 422873a..c9d62fe 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: joydefs.c,v 1.5 2003-01-15 02:40:54 btb Exp $ */
+/* $Id: joydefs.c,v 1.6 2003-03-14 05:11:29 btb Exp $ */
 /*
  *
  * SDL joystick support
@@ -70,15 +70,18 @@ void joydef_menuset_1(int nitems, newmenu_item * items, int *last_key, int citem
 void joydefs_config()
 {
        newmenu_item m[13];
-       int i, i1=5, j, nitems=7;
+       int i, i1 = 5, j, nitems = 10;
 
        m[0].type = NM_TYPE_RADIO; m[0].text = "KEYBOARD"; m[0].value = 0; m[0].group = 0;
        m[1].type = NM_TYPE_RADIO; m[1].text = "JOYSTICK"; m[1].value = 0; m[1].group = 0;
        m[2].type = NM_TYPE_RADIO; m[2].text = "MOUSE"; m[2].value = 0; m[2].group = 0;
        m[3].type = NM_TYPE_TEXT; m[3].text="";
-       m[4].type = NM_TYPE_MENU; m[4].text="CUSTOMIZE ABOVE";
-       m[5].type = NM_TYPE_MENU; m[5].text="CUSTOMIZE KEYBOARD";
-       m[6].type = NM_TYPE_MENU; m[6].text="CUSTOMIZE D1X KEYS";
+       m[4].type = NM_TYPE_MENU;   m[4].text = TXT_CUST_ABOVE;
+       m[5].type = NM_TYPE_TEXT;   m[5].text = "";
+       m[6].type = NM_TYPE_SLIDER;     m[6].text = TXT_JOYS_SENSITIVITY; m[6].value = Config_joystick_sensitivity; m[6].min_value =0; m[6].max_value = 16;
+       m[7].type = NM_TYPE_TEXT;   m[7].text = "";
+       m[8].type = NM_TYPE_MENU;   m[8].text = TXT_CUST_KEYBOARD;
+       m[9].type = NM_TYPE_MENU;   m[9].text = "CUSTOMIZE D2X KEYS";
 
        do {
 
@@ -88,6 +91,8 @@ void joydefs_config()
 
                i1 = newmenu_do1( NULL, TXT_CONTROLS, nitems, m, joydef_menuset_1, i1 );
 
+               Config_joystick_sensitivity = m[6].value;
+
                for (j = 0; j <= 2; j++)
                        if (m[j].value)
                                Config_control_type = j;
@@ -95,18 +100,18 @@ void joydefs_config()
                if (Config_control_type == 2)
                        Config_control_type = CONTROL_MOUSE;
 
-               switch(i1)      {
-               case 4: 
+               switch (i1) {
+               case 4:
                        kconfig (i, m[i].text);
                        break;
-               case 5: 
-                       kconfig(0, "KEYBOARD"); 
+               case 8:
+                       kconfig(0, "KEYBOARD");
                        break;
-               case 6:
-                       kconfig(3, "D1X KEYS");
+               case 9:
+                       kconfig(4, "D2X KEYS");
                        break;
-               } 
+               }
 
-       } while(i1>-1);
+       } while (i1>-1);
 
 }
index f32127a..e670f71 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: kconfig.c,v 1.17 2003-02-27 22:07:21 btb Exp $ */
+/* $Id: kconfig.c,v 1.18 2003-03-14 05:11:29 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -346,7 +346,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  */
 
 #ifdef RCS
-static char rcsid[] = "$Id: kconfig.c,v 1.17 2003-02-27 22:07:21 btb Exp $";
+static char rcsid[] = "$Id: kconfig.c,v 1.18 2003-03-14 05:11:29 btb Exp $";
 #endif
 
 #ifdef WINDOWS
@@ -558,6 +558,10 @@ kc_item *All_items;
 
 ubyte kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS];
 
+//added on 2/4/99 by Victor Rachels to add d1x new keys
+ubyte kconfig_d2x_settings[MAX_D2X_CONTROLS];
+//end this section addition - VR
+
 //----------- WARNING!!!!!!! -------------------------------------------
 // THESE NEXT FOUR BLOCKS OF DATA ARE GENERATED BY PRESSING DEL+F12 WHEN
 // IN THE KEYBOARD CONFIG SCREEN.  BASICALLY, THAT PROCEDURE MODIFIES THE
@@ -746,6 +750,42 @@ kc_item kc_mouse[NUM_OTHER_CONTROLS] = {
        { 27, 25,117, 85, 26, 25, 13, 25, 13,"Afterburner", BT_MOUSE_BUTTON, 255 },
 };
 
+//added on 2/4/99 by Victor Rachels to add d1x new keys
+kc_item kc_d2x[NUM_D2X_CONTROLS] = {
+//        id,x,y,w1,w2,u,d,l,r,text_num1,type,value
+       {  0, 15, 49, 71, 26, 27,  2, 27,  1, "WEAPON 1", BT_KEY, 255},
+       {  1, 15, 49,100, 26, 26,  3,  0,  2, "WEAPON 1", BT_JOY_BUTTON, 255},
+       {  2, 15, 57, 71, 26,  0,  4,  1,  3, "WEAPON 2", BT_KEY, 255},
+       {  3, 15, 57,100, 26,  1,  5,  2,  4, "WEAPON 2", BT_JOY_BUTTON, 255},
+       {  4, 15, 65, 71, 26,  2,  6,  3,  5, "WEAPON 3", BT_KEY, 255},
+       {  5, 15, 65,100, 26,  3,  7,  4,  6, "WEAPON 3", BT_JOY_BUTTON, 255},
+       {  6, 15, 73, 71, 26,  4,  8,  5,  7, "WEAPON 4", BT_KEY, 255},
+       {  7, 15, 73,100, 26,  5,  9,  6,  8, "WEAPON 4", BT_JOY_BUTTON, 255},
+       {  8, 15, 81, 71, 26,  6, 10,  7,  9, "WEAPON 5", BT_KEY, 255},
+       {  9, 15, 81,100, 26,  7, 11,  8, 10, "WEAPON 5", BT_JOY_BUTTON, 255},
+
+       { 10, 15, 89, 71, 26,  8, 12,  9, 11, "WEAPON 6", BT_KEY, 255},
+       { 11, 15, 89,100, 26,  9, 13, 10, 12, "WEAPON 6", BT_JOY_BUTTON, 255},
+       { 12, 15, 97, 71, 26, 10, 14, 11, 13, "WEAPON 7", BT_KEY, 255},
+       { 13, 15, 97,100, 26, 11, 15, 12, 14, "WEAPON 7", BT_JOY_BUTTON, 255},
+       { 14, 15,105, 71, 26, 12, 16, 13, 15, "WEAPON 8", BT_KEY, 255},
+       { 15, 15,105,100, 26, 13, 17, 14, 16, "WEAPON 8", BT_JOY_BUTTON, 255},
+       { 16, 15,113, 71, 26, 14, 18, 15, 17, "WEAPON 9", BT_KEY, 255},
+       { 17, 15,113,100, 26, 15, 19, 16, 18, "WEAPON 9", BT_JOY_BUTTON, 255},
+       { 18, 15,121, 71, 26, 16, 20, 17, 19, "WEAPON 0", BT_KEY, 255},
+       { 19, 15,121,100, 26, 17, 21, 18, 20, "WEAPON 0", BT_JOY_BUTTON, 255},
+
+       //{ 20, 15,131, 71, 26, 18, 22, 19, 21, "CYC PRIMARY", BT_KEY, 255},
+       //{ 21, 15,131,100, 26, 19, 23, 20, 22, "CYC PRIMARY", BT_JOY_BUTTON, 255},
+       //{ 22, 15,139, 71, 26, 20, 24, 21, 23, "CYC SECONDARY", BT_KEY, 255},
+       //{ 23, 15,139,100, 26, 21, 25, 22, 24, "CYC SECONDARY", BT_JOY_BUTTON, 255},
+       //{ 24,  8,147, 78, 26, 22, 26, 23, 25, "TOGGLE_PRIM AUTO", BT_KEY, 255},
+       //{ 25,  8,147,107, 26, 23, 27, 24, 26, "TOGGLE_PRIM_AUTO", BT_JOY_BUTTON, 255},
+       //{ 26,  8,155, 78, 26, 24,  1, 25, 27, "TOGGLE SEC AUTO", BT_KEY, 255},
+       //{ 27,  8,155,107, 26, 25,  0, 26,  0, "TOGGLE SEC AUTO", BT_JOY_BUTTON, 255},
+};
+//end this section addition - VR
+
 #else          // ifndef MACINTOSH (following are macintosh controls)
 
 ubyte default_kconfig_settings[CONTROL_MAX_TYPES][MAX_CONTROLS] = {
@@ -922,6 +962,13 @@ kc_item kc_mouse[NUM_OTHER_CONTROLS] = {
 
 #endif
 
+//added on 2/4/99 by Victor Rachels to add new keys system
+ubyte default_kconfig_d2x_settings[MAX_D2X_CONTROLS] = {
+ 0x2 ,0xff,0x3 ,0xff,0x4 ,0xff,0x5 ,0xff,0x6 ,0xff,0x7 ,0xff,0x8 ,0xff,0x9 ,
+ 0xff,0xa ,0xff,0xb ,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };
+//end this section addition - VR
+
 void kc_drawitem( kc_item *item, int is_current );
 void kc_change_key( kc_item * item );
 void kc_change_joybutton( kc_item * item );
@@ -1169,7 +1216,7 @@ WIN(DDGRLOCK(dd_grd_curcanv));
        gr_rect(close_x, close_y, close_x + close_size, close_y + close_size);
        gr_setcolor( BM_XRGB(21, 21, 21) );
        gr_rect( close_x + 2, close_y + 2, close_x + close_size - 2, close_y + close_size -2 );
-       #endif
+#endif
 
        grd_curcanv->cv_font = GAME_FONT;
        gr_set_fontcolor( BM_XRGB(28,28,28), -1 );
@@ -1229,6 +1276,15 @@ WIN(DDGRLOCK(dd_grd_curcanv));
                gr_string( LHX(169), LHY(129), TXT_AXIS );
                gr_string( LHX(199), LHY(129), TXT_INVERT );
        }
+       else if ( items == kc_d2x )
+       {
+               gr_set_fontcolor( BM_XRGB(31,27,6), -1 );
+               gr_setcolor( BM_XRGB(31,27,6) );
+
+               gr_string(LHX( 94), LHY(40), "KB");
+               gr_string(LHX(121), LHY(40), "JOY");
+       }
+
 WIN(DDGRUNLOCK(dd_grd_curcanv));       
 
        for (i=0; i<nitems; i++ )       {
@@ -1301,6 +1357,12 @@ WIN(DDGRUNLOCK(dd_grd_curcanv));
                                        items[i].value=default_kconfig_settings[0][i];
                                        kc_drawitem( &items[i], 0 );
                                }
+                       } else if ( items==kc_d2x ) {
+                               for(i=0;i<NUM_D2X_CONTROLS;i++)
+                               {
+                                       items[i].value=default_kconfig_d2x_settings[i];
+                                       kc_drawitem( &items[i], 0 );
+                               }
                        } else {
                                #ifdef MACINTOSH
                          // hack for firebire and mousestick default controls since I made
@@ -2076,7 +2138,10 @@ void kconfig(int n, char * title)
        case 1:kconfig_sub( kc_joystick, NUM_OTHER_CONTROLS, title );break;
        case 2:kconfig_sub( kc_mouse, NUM_OTHER_CONTROLS, title ); break;
        case 3:kconfig_sub( kc_superjoy, NUM_OTHER_CONTROLS, title); break;
-       default:
+       //added on 2/4/99 by Victor Rachels for new keys menu
+       case 4:kconfig_sub( kc_d2x, NUM_D2X_CONTROLS, title ); break;
+       //end this section addition - VR
+       default:
                Int3();
                return;
        }
@@ -2107,6 +2172,9 @@ void kconfig(int n, char * title)
                for (i=0; i<NUM_OTHER_CONTROLS; i++ )   
                        kconfig_settings[Config_control_type][i] = kc_superjoy[i].value;
        }
+
+       for (i=0; i<NUM_D2X_CONTROLS; i++)
+               kconfig_d2x_settings[i] = kc_d2x[i].value;
 }
 
 
@@ -3012,6 +3080,10 @@ int allowed_to_toggle(int i)
 }
 
 
+//added on 2/7/99 by Victor Rachels for jostick state setting
+int d2x_joystick_ostate[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+//end this section adition - VR
+
 
 void controls_read_all()
 {
@@ -3162,6 +3234,87 @@ void controls_read_all()
                use_mouse=0;
        }
 
+       //added on 2/4/99 by Victor Rachels for d1x keys
+       //--------- Read primary weapon select -------------
+       //the following "if" added by WraithX to stop deadies from switchin weapons, 4/14/00
+       if (!Player_is_dead)
+       {
+               {
+                       int d2x_joystick_state[10];
+
+                       for(i=0;i<10;i++)
+                               d2x_joystick_state[i] = joy_get_button_state(kc_d2x[i*2+1].value);
+
+
+                       //----------------Weapon 1----------------
+                       if(key_down_count(kc_d2x[0].value) ||
+                          (joy_get_button_state(kc_d2x[1].value) &&
+                               (d2x_joystick_state[0]!=d2x_joystick_ostate[0]) ) )
+                       {
+                               //int i, valu=0;
+                               do_weapon_select(0,0);
+                               /*
+                               for(i=MAX_PRIMARY_WEAPONS;i<MAX_PRIMARY_WEAPONS+NEWPRIMS;i++)
+                                       if(primary_order[i]>primary_order[valu]&&player_has_weapon(i,0))
+                                               valu = i;
+                               LaserPowSelected = valu;
+                               */
+                       }
+                       //----------------Weapon 2----------------
+                       if(key_down_count(kc_d2x[2].value) ||
+                          (joy_get_button_state(kc_d2x[3].value) &&
+                               (d2x_joystick_state[1]!=d2x_joystick_ostate[1]) ) )
+                               do_weapon_select(1,0);
+                       //----------------Weapon 3----------------
+                       if(key_down_count(kc_d2x[4].value) ||
+                          (joy_get_button_state(kc_d2x[5].value) &&
+                               (d2x_joystick_state[2]!=d2x_joystick_ostate[2]) ) )
+                               do_weapon_select(2,0);
+                       //----------------Weapon 4----------------
+                       if(key_down_count(kc_d2x[6].value) ||
+                          (joy_get_button_state(kc_d2x[7].value) &&
+                               (d2x_joystick_state[3]!=d2x_joystick_ostate[3]) ) )
+                               do_weapon_select(3,0);
+                       //----------------Weapon 5----------------
+                       if(key_down_count(kc_d2x[8].value) ||
+                          (joy_get_button_state(kc_d2x[9].value) &&
+                               (d2x_joystick_state[4]!=d2x_joystick_ostate[4]) ) )
+                               do_weapon_select(4,0);
+                       //--------- Read secondary weapon select ----------
+                       //----------------Weapon 6----------------
+                       if(key_down_count(kc_d2x[10].value) ||
+                          (joy_get_button_state(kc_d2x[11].value) &&
+                               (d2x_joystick_state[5]!=d2x_joystick_ostate[5]) ) )
+                               do_weapon_select(0,1);
+                       //----------------Weapon 7----------------
+                       if(key_down_count(kc_d2x[12].value) ||
+                          (joy_get_button_state(kc_d2x[13].value) &&
+                               (d2x_joystick_state[6]!=d2x_joystick_ostate[6]) ) )
+                               do_weapon_select(1,1);
+                       //----------------Weapon 8----------------
+                       if(key_down_count(kc_d2x[14].value) ||
+                          (joy_get_button_state(kc_d2x[15].value) &&
+                               (d2x_joystick_state[7]!=d2x_joystick_ostate[7]) ) )
+                               do_weapon_select(2,1);
+                       //----------------Weapon 9----------------
+                       if(key_down_count(kc_d2x[16].value) ||
+                          (joy_get_button_state(kc_d2x[17].value) &&
+                               (d2x_joystick_state[8]!=d2x_joystick_ostate[8]) ) )
+                               do_weapon_select(3,1);
+                       //----------------Weapon 0----------------
+                       if(key_down_count(kc_d2x[18].value) ||
+                          (joy_get_button_state(kc_d2x[19].value) &&
+                               (d2x_joystick_state[9]!=d2x_joystick_ostate[9]) ) )
+                               do_weapon_select(4,1);
+                       memcpy(d2x_joystick_ostate,d2x_joystick_state,10*sizeof(int));
+               }
+               //end this section addition - VR
+
+
+       }//end "if (!Player_is_dead)" - WraithX
+
+
 //------------- Read slide_on -------------
        
        // From keyboard...
@@ -3755,6 +3908,9 @@ void kc_set_controls()
                        }
                }
        }
+
+       for (i=0; i<NUM_D2X_CONTROLS; i++ )
+               kc_d2x[i].value = kconfig_d2x_settings[i];
 }
 
 #if 0 //ndef MACINTOSH // no mac support for vr headset
index 786f67b..bb05ab1 100644 (file)
@@ -182,6 +182,14 @@ extern control_info Controls;
 extern void controls_read_all();
 extern void kconfig(int n, char * title );
 
+//added on 2/4/99 by Victor Rachels to add new keys menu
+#define NUM_D2X_CONTROLS 20
+#define MAX_D2X_CONTROLS 40
+
+extern ubyte kconfig_d2x_settings[MAX_D2X_CONTROLS];
+extern ubyte default_kconfig_d2x_settings[MAX_D2X_CONTROLS];
+//end this section addition - VR
+
 #define NUM_KEY_CONTROLS 57
 #define NUM_OTHER_CONTROLS 31
 #define MAX_CONTROLS 60         //there are actually 48, so this leaves room for more   
index 26add9a..bac35a7 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: menu.c,v 1.20 2003-03-13 22:34:58 btb Exp $ */
+/* $Id: menu.c,v 1.21 2003-03-14 05:11:29 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -1157,9 +1157,9 @@ void d2x_options_menu()
        newmenu_item m[14];
        int i=0;
        int opt = 0;
-       int inputs;
+       int inputs, commands;
 #if 0
-       int checks, commands;
+       int checks;
 #endif
 
        char smaxfps[4];
@@ -1176,11 +1176,13 @@ void d2x_options_menu()
 
        m[opt].type = NM_TYPE_MENU;  m[opt].text = "Primary autoselect ordering...";   opt++;
        m[opt].type = NM_TYPE_MENU;  m[opt].text = "Secondary autoselect ordering..."; opt++;
+#endif
 
        //added on 2/4/99 by Victor Rachels for new key menu
-       m[opt].type = NM_TYPE_MENU;  m[opt].text = "D1X Keys"; opt++;
+       m[opt].type = NM_TYPE_MENU;  m[opt].text = "D2X Keys"; opt++;
        //end this section addition - VR
 
+#if 0
        //enabled 3/24/99 - Owen Evans
        m[opt].type = NM_TYPE_MENU;  m[opt].text = "Change Screen Resolution";         opt++;
        //end enabled stuff - OE
@@ -1219,22 +1221,26 @@ void d2x_options_menu()
 
                if(i>-1)
                {
-#if 0
             if(i<commands)
                        {
                                switch(i)
                                {
+#if 0
                 case 0: reorder_primary(); break;
                 case 1: reorder_secondary(); break;
+#endif
                                        //added on 2/4/99 by Victor Rachels for new key menu
-                case 2: kconfig(3,"D1X Keys"); break;
+                case 0: kconfig(4,"D2X Keys"); break;
                                        //end this section addition - VR
+#if 0
                                        //enabled 3/24/99 - Owen Evans
                 case 3: change_res(); break;
                                        //end enabled stuff - OE
+#endif
                                }
                        }
 
+#if 0
             //added on 2/4/99 by Victor Rachels for bans
 #ifdef NETWORK
             if(i==commands+0)
@@ -1256,7 +1262,6 @@ void d2x_options_menu()
                                        maxfps = 80;
                                        i = (inputs+0);
                                }
-                               else break;  // FIXME: temporary hack to exit menu right away
                        }
 #if 0
             else if(i==inputs+2)