CONTROL.BAK 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // Choose which type of controller to use
  3. //
  4. enum {CON_MOUSE,CON_JOY,CON_KEY,CON_MAX};
  5. item_t controlitems[]=
  6. {
  7. {CON_MOUSE, 26,11,28, -1,-1},
  8. {CON_JOY, 26,12,28, -1,-1},
  9. {CON_KEY, 26,13,28, -1,-1}
  10. };
  11. menu_t controlmenu=
  12. {
  13. &controlitems[0],
  14. CON_MOUSE,
  15. CON_MAX,
  16. 0x7f
  17. };
  18. int ChooseController (void)
  19. {
  20. short key;
  21. short field;
  22. int rval = 0;
  23. SaveScreen();
  24. DrawPup(&control);
  25. // DEFAULT FIELD ========================================
  26. if (newc.control == C_MOUSE)
  27. field = CON_MOUSE;
  28. else
  29. if (newc.control == C_JOYSTICK)
  30. field = CON_JOY;
  31. else
  32. field = CON_KEY;
  33. controlmenu.startitem = field;
  34. while(1)
  35. {
  36. SetupMenu(&controlmenu);
  37. field = GetMenuInput();
  38. key = menukey;
  39. switch ( key )
  40. {
  41. case KEY_ESC:
  42. rval = -1;
  43. goto func_exit;
  44. case KEY_ENTER:
  45. case KEY_F10:
  46. switch ( field )
  47. {
  48. case CON_KEY:
  49. newc.control = C_KEY;
  50. usemouse = 0;
  51. usejoystick = 0;
  52. goto func_exit;
  53. case CON_MOUSE:
  54. newc.control = C_MOUSE;
  55. usemouse = 1;
  56. usejoystick = 0;
  57. goto func_exit;
  58. case CON_JOY:
  59. newc.control = C_JOYSTICK;
  60. usemouse = 0;
  61. usejoystick = 1;
  62. goto func_exit;
  63. default:
  64. break;
  65. }
  66. break;
  67. }
  68. }
  69. func_exit:
  70. RestoreScreen();
  71. DrawCurrentConfig();
  72. return ( rval );
  73. }