diff -r 4056310a161a -r f5294509783e project_files/HedgewarsMobile/Classes/ObjcExports.m --- a/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Apr 25 02:25:25 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Apr 25 06:38:59 2011 +0200 @@ -20,8 +20,8 @@ #import "ObjcExports.h" +#import "OverlayViewController.h" #import "AmmoMenuViewController.h" -#import "AudioToolbox/AudioToolbox.h" #pragma mark - #pragma mark internal variables @@ -32,13 +32,14 @@ // cache the grenade time NSInteger grenadeTime; // the reference to the newMenu instance -AmmoMenuViewController *amvc_instance; +OverlayViewController *overlay_instance; // the audiosession must be initialized before using properties BOOL gAudioSessionInited = NO; #pragma mark - #pragma mark functions called like oop -void objcExportsInit() { +void objcExportsInit(OverlayViewController* instance) { + overlay_instance = instance; gameRunning = NO; savedGame = NO; grenadeTime = 2; @@ -60,36 +61,24 @@ grenadeTime = value; } -void inline setAmmoMenuInstance(AmmoMenuViewController *instance) { - amvc_instance = instance; -} - #pragma mark - #pragma mark functions called by pascal code -void startSpinning() { +void startSpinningProgress() { gameRunning = NO; - UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow]; - UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - indicator.tag = ACTIVITYINDICATOR_TAG; - int offset; - if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) - offset = -120; - else - offset = 120; - if (IS_DUALHEAD()) - indicator.center = CGPointMake(theWindow.frame.size.width/2, theWindow.frame.size.height/2 + offset); - else - indicator.center = CGPointMake(theWindow.frame.size.width/2 + offset, theWindow.frame.size.height/2); - indicator.hidesWhenStopped = YES; - [indicator startAnimating]; - [theWindow addSubview:indicator]; - [indicator release]; + overlay_instance.lowerIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; + + CGPoint center = overlay_instance.view.center; + overlay_instance.lowerIndicator.center = (IS_DUALHEAD() ? CGPointMake(center.y, center.x) + : CGPointMake(center.y, center.x * 5/3)); + + [overlay_instance.lowerIndicator startAnimating]; + [overlay_instance.view addSubview:overlay_instance.lowerIndicator]; + [overlay_instance.lowerIndicator release]; } -void stopSpinning() { - UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow]; - UIActivityIndicatorView *indicator = (UIActivityIndicatorView *)[theWindow viewWithTag:ACTIVITYINDICATOR_TAG]; - [indicator stopAnimating]; +void stopSpinningProgress() { + [overlay_instance.lowerIndicator stopAnimating]; + [overlay_instance.lowerIndicator removeFromSuperview]; HW_zoomSet(1.7); if (savedGame == NO) gameRunning = YES; @@ -115,49 +104,45 @@ grenadeTime = 2; } -void replayBegan() { - UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow]; - UIView *blackView = [[UIView alloc] initWithFrame:theWindow.frame]; - blackView.backgroundColor = [UIColor blackColor]; - blackView.alpha = 0.6; - blackView.tag = REPLAYBLACKVIEW_TAG; - blackView.exclusiveTouch = NO; - blackView.multipleTouchEnabled = NO; - blackView.userInteractionEnabled = NO; +void saveBeganSynching() { + overlay_instance.view.backgroundColor = [UIColor blackColor]; + overlay_instance.view.alpha = 0.75; + overlay_instance.view.userInteractionEnabled = NO; + + overlay_instance.savesIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - indicator.center = theWindow.center; - [indicator startAnimating]; - [blackView addSubview:indicator]; - [indicator release]; - [theWindow addSubview:blackView]; - [blackView release]; + CGPoint center = overlay_instance.view.center; + overlay_instance.savesIndicator.center = CGPointMake(center.y, center.x); + overlay_instance.savesIndicator.hidesWhenStopped = YES; + + [overlay_instance.savesIndicator startAnimating]; + [overlay_instance.view addSubview:overlay_instance.savesIndicator]; + [overlay_instance.savesIndicator release]; savedGame = YES; - stopSpinning(); + stopSpinningProgress(); } -void replayFinished() { - UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow]; - UIView *blackView = (UIView *)[theWindow viewWithTag:REPLAYBLACKVIEW_TAG]; +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]; - [UIView beginAnimations:@"removing black" context:NULL]; - [UIView setAnimationDuration:1]; - blackView.alpha = 0; - [UIView commitAnimations]; - [theWindow performSelector:@selector(removeFromSuperview) withObject:blackView afterDelay:1]; + [overlay_instance.savesIndicator stopAnimating]; + [overlay_instance.savesIndicator performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1]; gameRunning = YES; savedGame = NO; } void updateVisualsNewTurn(void) { - [amvc_instance updateAmmoVisuals]; + [overlay_instance.amvc updateAmmoVisuals]; } // dummy function to prevent linkage fail int SDL_main(int argc, char **argv) { return 0; } - -