basic replayable replays
[carveJwlIkooP6JGAAIwe30JlM.git] / input.h
diff --git a/input.h b/input.h
index dffcb28235221648b4250c63eb60359801b088ce..b4262bc0f0ef9a08e460e7338d8266a330c8a30e 100644 (file)
--- a/input.h
+++ b/input.h
@@ -7,7 +7,6 @@
 #include "vg/vg_console.h"
 #include "vg/vg_input.h"
 #include "vg/vg_m.h"
-#include "conf.h"
 #include "font.h"
 
 enum sr_bind{
@@ -114,7 +113,7 @@ static const char *button_display_string( enum sr_bind button )
    };
 
    const char *keyboard_table[ k_srbind_max ] = {
-    [k_srbind_jump]   = KEYBOARD_GLYPH( "A" ),
+    [k_srbind_jump]   = "\xa1",
     [k_srbind_push]   = KEYBOARD_GLYPH( "W" ),
     [k_srbind_trick0] = "\x99",
     [k_srbind_trick1] = "\x9a",
@@ -157,33 +156,34 @@ static const char *axis_display_string( enum sr_axis axis )
       return keyboard_table[ axis ];
 }
 
-static const char *joystick_display_string( enum sr_joystick joystick )
+static const char *joystick_display_string( enum sr_joystick joystick, 
+                                            u32 axis )
 {
-   const char *controller_table[ k_srjoystick_max ] = {
-    [k_srjoystick_steer] = "\x88",
-    [k_srjoystick_grab]  = "\x8e",
-    [k_srjoystick_look]  = "\x8e"
+   const char *controller_table[ k_srjoystick_max ][3] = {
+    [k_srjoystick_steer] = {"\x88","\x89","\x8a"},
+    [k_srjoystick_grab]  = {"\x8c","\x8d","\x8e"},
+    [k_srjoystick_look]  = {"\x8c","\x8d","\x8e"}
    };
 
-   const char *keyboard_table[ k_srjoystick_max ] = {
-    [k_srjoystick_steer] = KEYBOARD_GLYPH( "\x93" )KEYBOARD_GLYPH( "\x95" ),
-    [k_srjoystick_grab]  = "\xa4",
-    [k_srjoystick_look]  = "\xa4"
+   const char *keyboard_table[ k_srjoystick_max ][3] = {
+    [k_srjoystick_steer] = {KEYBOARD_GLYPH("A")KEYBOARD_GLYPH("D"), /*h*/
+                            KEYBOARD_GLYPH("W")KEYBOARD_GLYPH("S"), /*v*/
+                              
+                            KEYBOARD_GLYPH("A")KEYBOARD_GLYPH("D") /*hv*/
+                            KEYBOARD_GLYPH("W")KEYBOARD_GLYPH("S"), },
+    [k_srjoystick_grab]  = {"\xa4","\xa4","\xa4"},
+    [k_srjoystick_look]  = {"\xa4","\xa4","\xa4"}
    };
 
    if( vg_input.display_input_method == k_input_method_controller )
-      return controller_table[ joystick ];
-   else
-      return keyboard_table[ joystick ];
+      return controller_table[ joystick ][axis];
+   else  return keyboard_table[ joystick ][axis];
 }
 
 static int buttons_filter_fixed(void)
 {
-   if( srinput.ignore_input_frames )
-      return 1;
-
-   if( vg_console.enabled )
-      return 1;
+   if( srinput.ignore_input_frames ) return 1;
+   if( vg_ui.wants_mouse ) return 1;
 
    if( vg.engine_stage == k_engine_stage_update_fixed )
       if( vg.fixed_iterations > 0 )
@@ -195,8 +195,7 @@ static int buttons_filter_fixed(void)
 /* Rising edge of button */
 static int button_down( enum sr_bind button )
 {
-   if( buttons_filter_fixed() )
-      return 0;
+   if( buttons_filter_fixed() ) return 0;
    
    if(  srinput.button_states[ button ][0] && 
        !srinput.button_states[ button ][1] )
@@ -208,8 +207,7 @@ static int button_down( enum sr_bind button )
 /* Falling edge of button */
 static int button_up( enum sr_bind button )
 {
-   if( buttons_filter_fixed() )
-      return 0;
+   if( buttons_filter_fixed() ) return 0;
    
    if( !srinput.button_states[ button ][0] && 
         srinput.button_states[ button ][1] )
@@ -221,15 +219,13 @@ static int button_up( enum sr_bind button )
 /* State of button */
 static int button_press( enum sr_bind button )
 {
-   if( vg_console.enabled )
-      return 0;
-
+   if( vg_ui.wants_mouse ) return 0;
    return srinput.button_states[ button ][0];
 }
 
 static void joystick_state( enum sr_joystick joystick, v2f state )
 {
-   if( vg_console.enabled )
+   if( vg_ui.wants_mouse )
       v2_zero( state );
    else
       v2_copy( srinput.joystick_states[ joystick ][0], state );
@@ -237,7 +233,7 @@ static void joystick_state( enum sr_joystick joystick, v2f state )
 
 static float axis_state( enum sr_axis axis )
 {
-   if( vg_console.enabled ) return 0.0f;
+   if( vg_ui.wants_mouse ) return 0.0f;
    else return srinput.axis_states[axis][0];
 }
 
@@ -312,7 +308,7 @@ static void skaterift_preupdate_inputs(void)
    if( vg_getkey( SDLK_RIGHT ) )
       srinput.axis_states[ k_sraxis_mbrowse_h ][0] += 1.0f;
 
-   if( vg_input.active_controller_index != -1 ){
+   if( vg_input.active_controller_index >= 0 ){
       struct vg_controller *controller = 
          &vg_input.controllers[vg_input.active_controller_index];
 
@@ -331,7 +327,8 @@ static void skaterift_preupdate_inputs(void)
       setbtn( k_srbind_mdown,  buttons[ SDL_CONTROLLER_BUTTON_DPAD_DOWN ] );
       setbtn( k_srbind_mback,  buttons[ SDL_CONTROLLER_BUTTON_B ] );
       setbtn( k_srbind_maccept,buttons[ SDL_CONTROLLER_BUTTON_A ] );
-      setbtn( k_srbind_mopen,  buttons[ SDL_CONTROLLER_BUTTON_GUIDE ] );
+      setbtn( k_srbind_mopen,  buttons[ SDL_CONTROLLER_BUTTON_START ] );
+      setbtn( k_srbind_mback,  buttons[ SDL_CONTROLLER_BUTTON_START ] );
 
       float *axis = controller->axises;
 
@@ -358,8 +355,8 @@ static void skaterift_preupdate_inputs(void)
 
       if( lh >  sensitivity ) setbtn( k_srbind_mright, 1 );
       if( lh < -sensitivity ) setbtn( k_srbind_mleft, 1 );
-      if( lv >  sensitivity ) setbtn( k_srbind_mup, 1 );
-      if( lv < -sensitivity ) setbtn( k_srbind_mdown, 1 );
+      if( lv >  sensitivity ) setbtn( k_srbind_mdown, 1 );
+      if( lv < -sensitivity ) setbtn( k_srbind_mup, 1 );
    }
 
    srinput.axis_states[ k_sraxis_grab ][0] =