diff -r 6b2d19ed521a -r 6dfad55fd71c project_files/HedgewarsMobile/Classes/ObjcExports.m --- a/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Oct 31 01:44:32 2011 +0100 +++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Oct 31 03:08:16 2011 +0100 @@ -24,10 +24,6 @@ #import "AmmoMenuViewController.h" -// actual game started (controls should be enabled) -static BOOL gameRunning; -// black screen present -static BOOL savedGame; // cache the grenade time static NSInteger grenadeTime; // the reference to the newMenu instance @@ -35,32 +31,16 @@ @implementation ObjcExports -+(void) initialize { - overlay_instance = [OverlayViewController mainOverlay]; - gameRunning = NO; - savedGame = NO; - grenadeTime = 2; ++(void) setGrenadeTime:(NSInteger) value { + grenadeTime = value; +} + ++(NSInteger) grenadeTime { + return grenadeTime; } @end -#pragma mark - -#pragma mark functions called by objc code -BOOL inline isGameRunning() { - return gameRunning; -} - -void inline setGameRunning(BOOL value) { - gameRunning = value; -} - -NSInteger cachedGrenadeTime() { - return grenadeTime; -} - -void inline setGrenadeTime(NSInteger value) { - grenadeTime = value; -} #pragma mark - #pragma mark functions called by pascal code @@ -68,24 +48,51 @@ return (IS_IPAD() == NO); } -void startSpinningProgress() { - gameRunning = NO; - overlay_instance.lowerIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; +void startLoadingIndicator() { + // this is the first ojbc function called by engine, so we have to initialize some variables here + overlay_instance = [OverlayViewController mainOverlay]; + grenadeTime = 2; + if ([HWUtils gameType] == gtSave) { + [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; + + overlay_instance.view.backgroundColor = [UIColor blackColor]; + overlay_instance.view.alpha = 0.75; + overlay_instance.view.userInteractionEnabled = NO; + } CGPoint center = overlay_instance.view.center; - overlay_instance.lowerIndicator.center = (IS_DUALHEAD() ? center : CGPointMake(center.x, center.y * 5/3)); + CGPoint loaderCenter = ((IS_DUALHEAD() || [HWUtils gameType] == gtSave) ? center : CGPointMake(center.x, center.y * 5/3)); - [overlay_instance.lowerIndicator startAnimating]; - [overlay_instance.view addSubview:overlay_instance.lowerIndicator]; - [overlay_instance.lowerIndicator release]; + overlay_instance.loadingIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; + overlay_instance.loadingIndicator.hidesWhenStopped = YES; + overlay_instance.loadingIndicator.center = loaderCenter; + [overlay_instance.loadingIndicator startAnimating]; + [overlay_instance.view addSubview:overlay_instance.loadingIndicator]; + [overlay_instance.loadingIndicator release]; } -void stopSpinningProgress() { - [overlay_instance.lowerIndicator stopAnimating]; - [overlay_instance.lowerIndicator removeFromSuperview]; +void stopLoadingIndicator() { HW_zoomSet(1.7); - if (savedGame == NO) - gameRunning = YES; + if ([HWUtils gameType] != gtSave) { + [overlay_instance.loadingIndicator stopAnimating]; + [overlay_instance.loadingIndicator removeFromSuperview]; + [HWUtils setGameStatus:gsInGame]; + } +} + +void saveFinishedSynching() { + [UIView beginAnimations:@"fading from save synch" context:NULL]; + [UIView setAnimationDuration:1]; + overlay_instance.view.backgroundColor = [UIColor clearColor]; + overlay_instance.view.alpha = 1; + overlay_instance.view.userInteractionEnabled = YES; + [UIView commitAnimations]; + + [overlay_instance.loadingIndicator stopAnimating]; + [overlay_instance.loadingIndicator performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1]; + + [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; + [HWUtils setGameStatus:gsInGame]; } void clearView() { @@ -105,40 +112,6 @@ grenadeTime = 2; } -void saveBeganSynching() { - savedGame = YES; - stopSpinningProgress(); - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - - overlay_instance.view.backgroundColor = [UIColor blackColor]; - overlay_instance.view.alpha = 0.75; - overlay_instance.view.userInteractionEnabled = NO; - - overlay_instance.savesIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - - overlay_instance.savesIndicator.center = overlay_instance.view.center; - overlay_instance.savesIndicator.hidesWhenStopped = YES; - - [overlay_instance.savesIndicator startAnimating]; - [overlay_instance.view addSubview:overlay_instance.savesIndicator]; - [overlay_instance.savesIndicator release]; -} - -void saveFinishedSynching() { - [UIView beginAnimations:@"fading from save synch" context:NULL]; - [UIView setAnimationDuration:1]; - overlay_instance.view.backgroundColor = [UIColor clearColor]; - overlay_instance.view.alpha = 1; - overlay_instance.view.userInteractionEnabled = YES; - [UIView commitAnimations]; - - [overlay_instance.savesIndicator stopAnimating]; - [overlay_instance.savesIndicator performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1]; - - [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; - gameRunning = YES; -} - void updateVisualsNewTurn(void) { [overlay_instance.amvc updateAmmoVisuals]; }