6 // Copyright 2010 __MyCompanyName__. All rights reserved. |
6 // Copyright 2010 __MyCompanyName__. All rights reserved. |
7 // |
7 // |
8 |
8 |
9 #import "OverlayViewController.h" |
9 #import "OverlayViewController.h" |
10 #import "SDL_uikitappdelegate.h" |
10 #import "SDL_uikitappdelegate.h" |
|
11 #import "InGameMenuViewController.h" |
|
12 #import "HelpPageLobbyViewController.h" |
11 #import "PascalImports.h" |
13 #import "PascalImports.h" |
|
14 #import "CommodityFunctions.h" |
12 #import "CGPointUtils.h" |
15 #import "CGPointUtils.h" |
|
16 #import "SDL_config_iphoneos.h" |
13 #import "SDL_mouse.h" |
17 #import "SDL_mouse.h" |
14 #import "InGameMenuViewController.h" |
|
15 #import "CommodityFunctions.h" |
|
16 #import "SDL_config_iphoneos.h" |
|
17 |
18 |
18 #define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7] |
19 #define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7] |
19 #define HIDING_TIME_NEVER [NSDate dateWithTimeIntervalSinceNow:10000] |
20 #define HIDING_TIME_NEVER [NSDate dateWithTimeIntervalSinceNow:10000] |
20 #define doDim() [dimTimer setFireDate:HIDING_TIME_DEFAULT] |
21 #define doDim() [dimTimer setFireDate:HIDING_TIME_DEFAULT] |
21 #define doNotDim() [dimTimer setFireDate:HIDING_TIME_NEVER] |
22 #define doNotDim() [dimTimer setFireDate:HIDING_TIME_NEVER] |
24 #define GRENADE_TAG 9595 |
25 #define GRENADE_TAG 9595 |
25 #define ANIMATION_DURATION 0.25 |
26 #define ANIMATION_DURATION 0.25 |
26 #define removeConfirmationInput() [[self.view viewWithTag:CONFIRMATION_TAG] removeFromSuperview]; |
27 #define removeConfirmationInput() [[self.view viewWithTag:CONFIRMATION_TAG] removeFromSuperview]; |
27 |
28 |
28 @implementation OverlayViewController |
29 @implementation OverlayViewController |
29 @synthesize popoverController, popupMenu; |
30 @synthesize popoverController, popupMenu, helpPage; |
30 |
31 |
31 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { |
32 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { |
32 return rotationManager(interfaceOrientation); |
33 return rotationManager(interfaceOrientation); |
33 } |
34 } |
34 |
35 |
122 [[NSNotificationCenter defaultCenter] addObserver:self |
125 [[NSNotificationCenter defaultCenter] addObserver:self |
123 selector:@selector(didRotate:) |
126 selector:@selector(didRotate:) |
124 name:UIDeviceOrientationDidChangeNotification |
127 name:UIDeviceOrientationDidChangeNotification |
125 object:nil]; |
128 object:nil]; |
126 |
129 |
|
130 [[NSNotificationCenter defaultCenter] addObserver:self |
|
131 selector:@selector(showHelp:) |
|
132 name:@"show help ingame" |
|
133 object:nil]; |
|
134 |
127 [UIView beginAnimations:@"showing overlay" context:NULL]; |
135 [UIView beginAnimations:@"showing overlay" context:NULL]; |
128 [UIView setAnimationDuration:1]; |
136 [UIView setAnimationDuration:1]; |
129 self.view.alpha = 1; |
137 self.view.alpha = 1; |
130 [UIView commitAnimations]; |
138 [UIView commitAnimations]; |
131 |
139 |
133 SDL_VideoDevice *_this = SDL_GetVideoDevice(); |
141 SDL_VideoDevice *_this = SDL_GetVideoDevice(); |
134 SDL_VideoDisplay *display = &_this->displays[0]; |
142 SDL_VideoDisplay *display = &_this->displays[0]; |
135 sdlwindow = display->windows; |
143 sdlwindow = display->windows; |
136 } |
144 } |
137 |
145 |
|
146 -(void) showHelp:(id) sender { |
|
147 if (self.helpPage == nil) |
|
148 self.helpPage = [[HelpPageLobbyViewController alloc] initWithNibName:@"HelpPageLobbyViewController" bundle:nil]; |
|
149 self.helpPage.view.alpha = 0; |
|
150 [self.view addSubview:helpPage.view]; |
|
151 [UIView beginAnimations:@"helpingame" context:NULL]; |
|
152 self.helpPage.view.alpha = 1; |
|
153 [UIView commitAnimations]; |
|
154 doNotDim(); |
|
155 } |
|
156 |
138 -(void) didReceiveMemoryWarning { |
157 -(void) didReceiveMemoryWarning { |
139 [super didReceiveMemoryWarning]; |
158 [super didReceiveMemoryWarning]; |
140 if (self.popupMenu.view.superview == nil) |
159 if (self.popupMenu.view.superview == nil) |
141 self.popupMenu = nil; |
160 self.popupMenu = nil; |
|
161 if (self.helpPage.view.superview == nil) |
|
162 self.helpPage = nil; |
142 MSG_MEMCLEAN(); |
163 MSG_MEMCLEAN(); |
143 } |
164 } |
144 |
165 |
145 -(void) viewDidUnload { |
166 -(void) viewDidUnload { |
146 // only objects initialized in viewDidLoad should be here |
167 // only objects initialized in viewDidLoad should be here |
417 UISegmentedControl *grenadeTime = [[UISegmentedControl alloc] initWithItems:items]; |
441 UISegmentedControl *grenadeTime = [[UISegmentedControl alloc] initWithItems:items]; |
418 [items release]; |
442 [items release]; |
419 |
443 |
420 [grenadeTime addTarget:self action:@selector(setGrenadeTime:) forControlEvents:UIControlEventValueChanged]; |
444 [grenadeTime addTarget:self action:@selector(setGrenadeTime:) forControlEvents:UIControlEventValueChanged]; |
421 grenadeTime.frame = CGRectMake(screen.size.height / 2 - 125, screen.size.width, 250, 50); |
445 grenadeTime.frame = CGRectMake(screen.size.height / 2 - 125, screen.size.width, 250, 50); |
422 grenadeTime.selectedSegmentIndex = 2; |
446 grenadeTime.selectedSegmentIndex = cachedGrenadeTime; |
423 grenadeTime.tag = GRENADE_TAG; |
447 grenadeTime.tag = GRENADE_TAG; |
424 [self.view addSubview:grenadeTime]; |
448 [self.view addSubview:grenadeTime]; |
425 [grenadeTime release]; |
449 [grenadeTime release]; |
426 |
450 |
427 [UIView beginAnimations:@"inserting segmented control" context:NULL]; |
451 [UIView beginAnimations:@"inserting segmented control" context:NULL]; |
454 doDim(); |
478 doDim(); |
455 } |
479 } |
456 |
480 |
457 -(void) setGrenadeTime:(id) sender { |
481 -(void) setGrenadeTime:(id) sender { |
458 UISegmentedControl *theSegment = (UISegmentedControl *)sender; |
482 UISegmentedControl *theSegment = (UISegmentedControl *)sender; |
459 HW_setGrenadeTime(theSegment.selectedSegmentIndex + 1); |
483 if (cachedGrenadeTime != theSegment.selectedSegmentIndex) { |
|
484 HW_setGrenadeTime(theSegment.selectedSegmentIndex + 1); |
|
485 cachedGrenadeTime = theSegment.selectedSegmentIndex; |
|
486 } |
460 } |
487 } |
461 |
488 |
462 -(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { |
489 -(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { |
463 [self touchesEnded:touches withEvent:event]; |
490 [self touchesEnded:touches withEvent:event]; |
464 } |
491 } |
553 theSegment.alpha = 0; |
580 theSegment.alpha = 0; |
554 [UIView commitAnimations]; |
581 [UIView commitAnimations]; |
555 |
582 |
556 [theWindow performSelector:@selector(removeFromSuperview) withObject:theButton afterDelay:0.3]; |
583 [theWindow performSelector:@selector(removeFromSuperview) withObject:theButton afterDelay:0.3]; |
557 [theWindow performSelector:@selector(removeFromSuperview) withObject:theSegment afterDelay:0.3]; |
584 [theWindow performSelector:@selector(removeFromSuperview) withObject:theSegment afterDelay:0.3]; |
|
585 |
|
586 cachedGrenadeTime = 2; |
558 } |
587 } |
559 |
588 |
560 @end |
589 @end |