filename | src/maple/controller.c |
changeset | 148:3f31c2d9b783 |
prev | 144:7f0714e89aaa |
next | 411:5ae249d63c44 |
author | nkeynes |
date | Tue Sep 26 11:05:38 2006 +0000 (17 years ago) |
permissions | -rw-r--r-- |
last change | Add BT, BT/S, CMP/EQ, CMP/GE, CMP/GT, CMP/HI, CMP/HS tests Add general slot-illegal exception test |
file | annotate | diff | log | raw |
1.1 --- a/src/maple/controller.c Mon May 15 08:28:52 2006 +00001.2 +++ b/src/maple/controller.c Tue Sep 26 11:05:38 2006 +00001.3 @@ -1,5 +1,5 @@1.4 /**1.5 - * $Id: controller.c,v 1.3 2006-05-15 08:28:52 nkeynes Exp $1.6 + * $Id: controller.c,v 1.4 2006-05-20 02:40:51 nkeynes Exp $1.7 *1.8 * Implements the standard dreamcast controller1.9 *1.10 @@ -44,7 +44,7 @@1.11 { MAPLE_DEVICE_TAG, &controller_class, CONTROLLER_IDENT, CONTROLLER_VERSION,1.12 controller_get_config, controller_attach, controller_detach, controller_destroy,1.13 NULL, NULL, controller_get_cond, NULL, NULL, NULL },1.14 - {0x0000FFFF, 0},1.15 + {0x0000FFFF, 0x80808080},1.16 {{ "dpad left", CONFIG_TYPE_KEY },1.17 { "dpad right", CONFIG_TYPE_KEY },1.18 { "dpad up", CONFIG_TYPE_KEY },1.19 @@ -68,8 +68,6 @@1.20 {1.21 controller_device_t dev = malloc( sizeof(struct controller_device) );1.22 memcpy( dev, &base_controller, sizeof(base_controller) );1.23 - memset( dev->condition, 0, 8 );1.24 - dev->condition[0] = 0x0000FFFF;1.25 return MAPLE_DEVICE(dev);1.26 }1.28 @@ -80,11 +78,35 @@1.29 {1.30 controller_device_t dev = (controller_device_t)mdev;1.31 if( isKeyDown ) {1.32 - dev->condition[0] |= value;1.33 - fprintf( stderr, "Key %08X DOWN\n", value );1.34 + switch( value ) {1.35 + case JOY_LEFT:1.36 + dev->condition[1] &= ~JOY_X_AXIS;1.37 + break;1.38 + case JOY_RIGHT:1.39 + dev->condition[1] |= JOY_X_AXIS;1.40 + break;1.41 + case JOY_UP:1.42 + dev->condition[1] &= ~JOY_Y_AXIS;1.43 + break;1.44 + case JOY_DOWN:1.45 + dev->condition[1] |= JOY_Y_AXIS;1.46 + break;1.47 + default:1.48 + dev->condition[0] &= ~value;1.49 + }1.50 } else {1.51 - dev->condition[0] &= ~value;1.52 - fprintf( stderr, "Key %08X UP\n", value );1.53 + switch(value ) {1.54 + case JOY_LEFT:1.55 + case JOY_RIGHT:1.56 + dev->condition[1] = (dev->condition[1] & ~JOY_X_AXIS)| JOY_X_AXIS_CENTER;1.57 + break;1.58 + case JOY_UP:1.59 + case JOY_DOWN:1.60 + dev->condition[1] = (dev->condition[1] & ~JOY_Y_AXIS)| JOY_Y_AXIS_CENTER;1.61 + break;1.62 + default:1.63 + dev->condition[0] |= value;1.64 + }1.65 }1.66 }1.68 @@ -110,10 +132,10 @@1.69 input_register_key( dev->config[1].value, controller_key_callback, dev, BUTTON_DPAD_RIGHT );1.70 input_register_key( dev->config[2].value, controller_key_callback, dev, BUTTON_DPAD_UP );1.71 input_register_key( dev->config[3].value, controller_key_callback, dev, BUTTON_DPAD_DOWN );1.72 - input_register_key( dev->config[4].value, controller_key_callback, dev, 0 );1.73 - input_register_key( dev->config[5].value, controller_key_callback, dev, 0 );1.74 - input_register_key( dev->config[6].value, controller_key_callback, dev, 0 );1.75 - input_register_key( dev->config[7].value, controller_key_callback, dev, 0 );1.76 + input_register_key( dev->config[4].value, controller_key_callback, dev, JOY_LEFT );1.77 + input_register_key( dev->config[5].value, controller_key_callback, dev, JOY_RIGHT );1.78 + input_register_key( dev->config[6].value, controller_key_callback, dev, JOY_UP );1.79 + input_register_key( dev->config[7].value, controller_key_callback, dev, JOY_DOWN );1.80 input_register_key( dev->config[8].value, controller_key_callback, dev, BUTTON_X );1.81 input_register_key( dev->config[9].value, controller_key_callback, dev, BUTTON_Y );1.82 input_register_key( dev->config[10].value, controller_key_callback, dev, BUTTON_A );
.