ControlsMenuView.m 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. /*
  2. =======================================================================================
  3. Copyright (C) 2009-2011 id Software LLC, a ZeniMax Media company. All Right Reserved.
  4. This file is part of the DOOM Classic iOS v2.1 GPL Source Code.
  5. =======================================================================================
  6. */
  7. #import "ControlsMenuView.h"
  8. #import "doomAppDelegate.h"
  9. #include "doomiphone.h"
  10. @implementation ControlsMenuView
  11. - (void) SetOptions {
  12. movestickSize.value = stickMove->value / 255;
  13. turnstickSize.value = stickTurn->value / 255;
  14. tiltMoveSpeed.value = tiltMove->value;
  15. tiltTurnSpeed.value = tiltTurn->value;
  16. if( controlScheme->value == 0 ) {
  17. singleThumbButton.enabled = NO;
  18. dualThumbButton.enabled = YES;
  19. dirWheelButton.enabled = YES;
  20. } else if( controlScheme->value == 1 ) {
  21. singleThumbButton.enabled = YES;
  22. dualThumbButton.enabled = NO;
  23. dirWheelButton.enabled = YES;
  24. } else if( controlScheme->value == 2 ) {
  25. singleThumbButton.enabled = YES;
  26. dualThumbButton.enabled = YES;
  27. dirWheelButton.enabled = NO;
  28. }
  29. }
  30. - (void) SetupSlider:(UISlider*)slider minimumTrack:(UIImage*)minImage
  31. maximumTrack:(UIImage*)maxImage
  32. thumb:(UIImage*)thumbImage {
  33. [slider setMinimumTrackImage:minImage forState:UIControlStateNormal];
  34. [slider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
  35. [slider setThumbImage:thumbImage forState:UIControlStateNormal];
  36. [slider setThumbImage:thumbImage forState:UIControlStateHighlighted];
  37. }
  38. - (void) initialize{
  39. // Minimum track image setup.
  40. UIImage* minimumTrackImage = [UIImage imageNamed:@"SliderBar.png"];
  41. CGFloat minimumTrackImageCap = minimumTrackImage.size.width * 0.5f;
  42. UIImage* minimumTrackImageCapped = [minimumTrackImage stretchableImageWithLeftCapWidth:minimumTrackImageCap topCapHeight: 0.0f];
  43. // Maximum track image setup.
  44. UIImage* maximumTrackImage = [UIImage imageNamed:@"SliderBackground.png"];
  45. CGFloat maximumTrackImageCap = maximumTrackImage.size.width * 0.5f;
  46. UIImage* maximumTrackImageCapped = [maximumTrackImage stretchableImageWithLeftCapWidth:maximumTrackImageCap topCapHeight: 0.0f];
  47. // Thumb image.
  48. UIImage* thumbImage = [UIImage imageNamed:@"SliderSkull.png"];
  49. // Set up slider instances.
  50. [self SetupSlider:movestickSize minimumTrack:minimumTrackImageCapped
  51. maximumTrack:maximumTrackImageCapped
  52. thumb:thumbImage];
  53. [self SetupSlider:turnstickSize minimumTrack:minimumTrackImageCapped
  54. maximumTrack:maximumTrackImageCapped
  55. thumb:thumbImage];
  56. [self SetupSlider:tiltMoveSpeed minimumTrack:minimumTrackImageCapped
  57. maximumTrack:maximumTrackImageCapped
  58. thumb:thumbImage];
  59. [self SetupSlider:tiltTurnSpeed minimumTrack:minimumTrackImageCapped
  60. maximumTrack:maximumTrackImageCapped
  61. thumb:thumbImage];
  62. }
  63. - (void)awakeFromNib {
  64. [self initialize];
  65. }
  66. - (id) initWithCoder:(NSCoder *)aCoder{
  67. if(self = [super initWithCoder:aCoder] ) {
  68. [self initialize];
  69. }
  70. return self;
  71. }
  72. - (id) initWithFrame:(CGRect)rect{
  73. if(self = [super initWithFrame:rect] ) {
  74. [self initialize];
  75. }
  76. return self;
  77. }
  78. - (IBAction) BackToMain {
  79. [gAppDelegate MainMenu];
  80. Sound_StartLocalSound( "iphone/controller_down_01_SILENCE.wav" );
  81. }
  82. - (IBAction) HudLayoutPressed {
  83. [ gAppDelegate HUDLayout ];
  84. }
  85. - (IBAction) SingleThumbpadPressed {
  86. Cvar_SetValue( controlScheme->name, 0 );
  87. HudSetForScheme( 0 );
  88. if( controlScheme->value == 0 ) {
  89. singleThumbButton.enabled = NO;
  90. dualThumbButton.enabled = YES;
  91. dirWheelButton.enabled = YES;
  92. } else if( controlScheme->value == 1 ) {
  93. singleThumbButton.enabled = YES;
  94. dualThumbButton.enabled = NO;
  95. dirWheelButton.enabled = YES;
  96. } else if( controlScheme->value == 2 ) {
  97. singleThumbButton.enabled = YES;
  98. dualThumbButton.enabled = YES;
  99. dirWheelButton.enabled = NO;
  100. }
  101. }
  102. - (IBAction) DualThumbpadPressed {
  103. Cvar_SetValue( controlScheme->name, 1 );
  104. HudSetForScheme( 1 );
  105. if( controlScheme->value == 0 ) {
  106. singleThumbButton.enabled = NO;
  107. dualThumbButton.enabled = YES;
  108. dirWheelButton.enabled = YES;
  109. } else if( controlScheme->value == 1 ) {
  110. singleThumbButton.enabled = YES;
  111. dualThumbButton.enabled = NO;
  112. dirWheelButton.enabled = YES;
  113. } else if( controlScheme->value == 2 ) {
  114. singleThumbButton.enabled = YES;
  115. dualThumbButton.enabled = YES;
  116. dirWheelButton.enabled = NO;
  117. }
  118. }
  119. - (IBAction) DirWheelPressed {
  120. Cvar_SetValue( controlScheme->name, 2 );
  121. HudSetForScheme( 2 );
  122. if( controlScheme->value == 0 ) {
  123. singleThumbButton.enabled = NO;
  124. dualThumbButton.enabled = YES;
  125. dirWheelButton.enabled = YES;
  126. } else if( controlScheme->value == 1 ) {
  127. singleThumbButton.enabled = YES;
  128. dualThumbButton.enabled = NO;
  129. dirWheelButton.enabled = YES;
  130. } else if( controlScheme->value == 2 ) {
  131. singleThumbButton.enabled = YES;
  132. dualThumbButton.enabled = YES;
  133. dirWheelButton.enabled = NO;
  134. }
  135. }
  136. - (IBAction) MoveStickValChanged {
  137. Cvar_SetValue( stickMove->name, movestickSize.value * 256.0f );
  138. }
  139. - (IBAction) TurnStickValChanged {
  140. Cvar_SetValue( stickTurn->name, turnstickSize.value * 256.0f );
  141. }
  142. - (IBAction) TiltMoveValChanged {
  143. Cvar_SetValue( tiltMove->name, tiltMoveSpeed.value );
  144. if ( tiltMove->value == 100 ) {
  145. Cvar_SetValue( tiltMove->name, 0 );
  146. tiltMoveSpeed.value = tiltMove->value;
  147. }
  148. if ( tiltMove->value ) {
  149. Cvar_SetValue( tiltTurn->name, 0 );
  150. tiltTurnSpeed.value = tiltTurn->value;
  151. }
  152. }
  153. - (IBAction) TiltTurnValChanged {
  154. Cvar_SetValue( tiltTurn->name, tiltTurnSpeed.value );
  155. if ( tiltTurn->value == 1500 ) {
  156. Cvar_SetValue( tiltTurn->name, 0 );
  157. tiltTurnSpeed.value = tiltTurn->value;
  158. }
  159. if ( tiltTurn->value ) {
  160. Cvar_SetValue( tiltMove->name, 0 );
  161. tiltMoveSpeed.value = tiltMove->value;
  162. }
  163. }
  164. @end