cocoaTouch/MainMenuViewController.m
author koda
Sat, 20 Mar 2010 15:16:59 +0000
changeset 3025 01682ec58eb0
parent 3006 da6023c2745b
child 3026 1a44c0f2b83b
permissions -rw-r--r--
update project for ipad target relocate objects (windbar, fps, timer) so that window size doesn't matter move touch input in its custom controller rather than hack sdl one
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     1
//
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     2
//  MainMenuViewController.m
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     3
//  hwengine
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     4
//
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     5
//  Created by Vittorio on 08/01/10.
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     7
//
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     8
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
     9
#import "MainMenuViewController.h"
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    10
#import "SDL_uikitappdelegate.h"
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2743
diff changeset
    11
#import "PascalImports.h"
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    12
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    13
// in case we don't want SDL_mixer...
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    14
//#import "SoundEffect.h"	
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    15
//SoundEffect *erasingSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Erase" ofType:@"caf"]];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    16
//SoundEffect *selectSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Select" ofType:@"caf"]];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    17
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    18
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    19
@implementation MainMenuViewController
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    20
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    21
@synthesize versionLabel, settingsViewController, mainView;
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    22
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    23
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    24
	return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    25
}
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    26
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    27
- (void)didReceiveMemoryWarning {
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    28
	// Releases the view if it doesn't have a superview.
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    29
	[super didReceiveMemoryWarning];
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    30
	
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    31
	// Release any cached data, images, etc that aren't in use.
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    32
	if (nil == self.settingsViewController.view.superview) {
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    33
		self.settingsViewController = nil;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2743
diff changeset
    34
		[settingsViewController release];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    35
	}
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    36
}
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    37
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
    38
-(void) viewDidLoad {
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    39
	[NSThread detachNewThreadSelector:@selector(checkFirstRun) toTarget:self withObject:nil];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    40
	
3006
da6023c2745b restore compilation on simulator and device
koda
parents: 2805
diff changeset
    41
	char *ver="test";
da6023c2745b restore compilation on simulator and device
koda
parents: 2805
diff changeset
    42
	//HW_versionInfo(NULL, &ver);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2743
diff changeset
    43
	self.versionLabel.text = [[NSString stringWithUTF8String:ver] autorelease];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    44
	[super viewDidLoad];
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    45
}
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2694
diff changeset
    46
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    47
- (void)viewDidUnload {
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    48
	// Release any retained subviews of the main view.
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    49
	self.versionLabel = nil;
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    50
}
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    51
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    52
- (void)dealloc {
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    53
	[versionLabel release];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    54
	[settingsViewController release];
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
    55
	[super dealloc];
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    56
}
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
    57
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    58
// disable the buttons when to prevent launching twice the game
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    59
-(void) viewWillDisappear:(BOOL)animated {
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    60
	self.mainView.userInteractionEnabled = NO;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    61
	[super viewWillDisappear:animated];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    62
}
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    63
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    64
-(void) viewDidAppear:(BOOL)animated {
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    65
	self.mainView.userInteractionEnabled = YES;
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    66
	[super viewDidAppear:animated];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    67
}
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    68
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    69
-(void) checkFirstRun {
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    70
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    71
	
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    72
	NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    73
	if (!([[NSFileManager defaultManager] fileExistsAtPath:filePath])) {
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    74
		// file not present, means that also other files are absent
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    75
		NSLog(@"First time run, creating settings files");
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    76
		
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    77
		// show a popup with an indicator to make the user wait
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    78
		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"One-time Preferences Configuration",@"")
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    79
								message:nil
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    80
							       delegate:nil
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    81
						      cancelButtonTitle:nil
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    82
						      otherButtonTitles:nil];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    83
		[alert show];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    84
		
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    85
		UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] 
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    86
						      initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    87
		indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    88
		[indicator startAnimating];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    89
		[alert addSubview:indicator];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    90
		[indicator release];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    91
		
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    92
		// create settings.plist
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    93
		NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    94
	
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    95
		[saveDict setObject:@"" forKey:@"username"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    96
		[saveDict setObject:@"" forKey:@"password"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    97
		[saveDict setObject:@"1" forKey:@"music"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    98
		[saveDict setObject:@"1" forKey:@"sounds"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
    99
		[saveDict setObject:@"0" forKey:@"alternate"];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   100
	
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   101
		[saveDict writeToFile:filePath atomically:YES];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   102
		[saveDict release];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   103
		
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   104
		// create other files
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   105
		
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   106
		// memory cleanup
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   107
		[alert dismissWithClickedButtonIndex:0 animated:YES];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   108
		[alert release];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   109
	}
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   110
	[pool release];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   111
	[NSThread exit];
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   112
}
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   113
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   114
#pragma mark -
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   115
#pragma mark Action buttons
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
   116
-(IBAction) startPlaying {
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
   117
	[[SDLUIKitDelegate sharedAppDelegate] startSDLgame];
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
   118
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   119
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   120
-(IBAction) notYetImplemented {
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   121
	UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented"
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   122
							message:@"Sorry, this feature is not yet implemented"
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   123
						       delegate:nil
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   124
					      cancelButtonTitle:@"Well, don't worry"
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   125
					      otherButtonTitles:nil];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   126
	[alert show];
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   127
	[alert release];
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   128
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents: 2685
diff changeset
   129
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   130
-(IBAction) switchViews:(id)sender {
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   131
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   132
	// view not displayed or not created
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   133
	if (nil == self.settingsViewController.view.superview) {
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   134
		// view not created
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   135
		if (nil == self.settingsViewController) {
3025
01682ec58eb0 update project for ipad target
koda
parents: 3006
diff changeset
   136
			SettingsViewController *controller = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController-iPad"
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   137
												      bundle:nil];
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   138
			self.settingsViewController = controller;
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   139
			[controller release];
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   140
		}
2805
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2803
diff changeset
   141
		self.settingsViewController.view.frame = CGRectMake(0, -257, 480, 278);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2743
diff changeset
   142
		self.settingsViewController.parentView = self.mainView;
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   143
2805
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2803
diff changeset
   144
		[UIView beginAnimations:@"Settings SwitchView" context:NULL];
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2743
diff changeset
   145
		[UIView setAnimationDuration:1];
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   146
2805
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2803
diff changeset
   147
		self.settingsViewController.view.frame = CGRectMake(0, 21, 480, 278);
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2803
diff changeset
   148
		self.mainView.frame = CGRectMake(0, 299, 480, 278);
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2799
diff changeset
   149
		[UIView commitAnimations];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   150
		
2805
36a8cebb91e8 new menupage ingame for common actions
koda
parents: 2803
diff changeset
   151
		[self.view insertSubview:settingsViewController.view atIndex:0];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   152
	}
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   153
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   154
}
03df0573a9fd programmatically load main controller
koda
parents: 2738
diff changeset
   155
2685
0ba746be5d59 frontend images by Tiy, first setup of frontend
koda
parents:
diff changeset
   156
@end