author | koda |
Sat, 24 Sep 2011 04:53:53 +0200 | |
changeset 6008 | 215f0c9719e3 |
parent 5994 | 3c578f531cc1 |
child 6018 | 3b86826f6665 |
permissions | -rw-r--r-- |
4028 | 1 |
/* |
2 |
* Hedgewars-iOS, a Hedgewars port for iOS devices |
|
4976 | 3 |
* Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com> |
4028 | 4 |
* |
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
17 |
* |
|
18 |
* File created on 30/10/2010. |
|
19 |
*/ |
|
20 |
||
21 |
||
22 |
#import "ObjcExports.h" |
|
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
23 |
#import "OverlayViewController.h" |
4362
8dae325dc625
added missing graphics and fixed some glitches/crashes/bugs
koda
parents:
4034
diff
changeset
|
24 |
#import "AmmoMenuViewController.h" |
4028 | 25 |
|
26 |
#pragma mark - |
|
27 |
#pragma mark internal variables |
|
28 |
// actual game started (controls should be enabled) |
|
29 |
BOOL gameRunning; |
|
30 |
// black screen present |
|
31 |
BOOL savedGame; |
|
32 |
// cache the grenade time |
|
33 |
NSInteger grenadeTime; |
|
4362
8dae325dc625
added missing graphics and fixed some glitches/crashes/bugs
koda
parents:
4034
diff
changeset
|
34 |
// the reference to the newMenu instance |
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
35 |
OverlayViewController *overlay_instance; |
5175
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
36 |
|
4028 | 37 |
|
38 |
#pragma mark - |
|
39 |
#pragma mark functions called like oop |
|
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
40 |
void objcExportsInit(OverlayViewController* instance) { |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
41 |
overlay_instance = instance; |
4034
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
42 |
gameRunning = NO; |
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
43 |
savedGame = NO; |
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
44 |
grenadeTime = 2; |
4028 | 45 |
} |
46 |
||
47 |
BOOL inline isGameRunning() { |
|
48 |
return gameRunning; |
|
49 |
} |
|
50 |
||
51 |
void inline setGameRunning(BOOL value) { |
|
52 |
gameRunning = value; |
|
53 |
} |
|
54 |
||
55 |
NSInteger cachedGrenadeTime() { |
|
56 |
return grenadeTime; |
|
57 |
} |
|
58 |
||
59 |
void inline setGrenadeTime(NSInteger value) { |
|
60 |
grenadeTime = value; |
|
61 |
} |
|
62 |
||
63 |
#pragma mark - |
|
64 |
#pragma mark functions called by pascal code |
|
5994 | 65 |
BOOL inline isApplePhone() { |
66 |
return (IS_IPAD() == NO); |
|
67 |
} |
|
68 |
||
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
69 |
void startSpinningProgress() { |
4028 | 70 |
gameRunning = NO; |
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
71 |
overlay_instance.lowerIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
72 |
|
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
73 |
CGPoint center = overlay_instance.view.center; |
5662
99083392cd4f
FREE AT LAST!!! SDL came around a (mostly) sane way for implementing rotation events, so we can scrap all the workaround code that has been added to workaround it!! Also this allows us to use proper (internal) multitasking handling and can simplify optional settings and other yet unexplored features. Yay!
koda
parents:
5194
diff
changeset
|
74 |
overlay_instance.lowerIndicator.center = (IS_DUALHEAD() ? center : CGPointMake(center.x, center.y * 5/3)); |
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
75 |
|
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
76 |
[overlay_instance.lowerIndicator startAnimating]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
77 |
[overlay_instance.view addSubview:overlay_instance.lowerIndicator]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
78 |
[overlay_instance.lowerIndicator release]; |
4028 | 79 |
} |
80 |
||
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
81 |
void stopSpinningProgress() { |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
82 |
[overlay_instance.lowerIndicator stopAnimating]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
83 |
[overlay_instance.lowerIndicator removeFromSuperview]; |
4028 | 84 |
HW_zoomSet(1.7); |
85 |
if (savedGame == NO) |
|
86 |
gameRunning = YES; |
|
87 |
} |
|
88 |
||
89 |
void clearView() { |
|
4504
8906b2409d97
add the appirater class for getting more positive reviews
koda
parents:
4488
diff
changeset
|
90 |
// don't use any engine calls here as this function is called every time the ammomenu is opened |
4028 | 91 |
[UIView beginAnimations:@"remove button" context:NULL]; |
92 |
[UIView setAnimationDuration:ANIMATION_DURATION]; |
|
5175
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
93 |
overlay_instance.confirmButton.alpha = 0; |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
94 |
overlay_instance.grenadeTimeSegment.alpha = 0; |
4028 | 95 |
[UIView commitAnimations]; |
96 |
||
5175
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
97 |
if (overlay_instance.confirmButton) |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
98 |
[overlay_instance.confirmButton performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:ANIMATION_DURATION]; |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
99 |
if (overlay_instance.grenadeTimeSegment) { |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
100 |
[overlay_instance.grenadeTimeSegment performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:ANIMATION_DURATION]; |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
101 |
overlay_instance.grenadeTimeSegment.tag = 0; |
a3da220dbb3f
finish overlay refactoring and some leak annihilation
koda
parents:
5174
diff
changeset
|
102 |
} |
4028 | 103 |
grenadeTime = 2; |
104 |
} |
|
105 |
||
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
106 |
void saveBeganSynching() { |
5194 | 107 |
savedGame = YES; |
108 |
stopSpinningProgress(); |
|
5992
a311b8461ec9
prevent screen locking while synching saves (can take some time)
koda
parents:
5662
diff
changeset
|
109 |
[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; |
5194 | 110 |
|
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
111 |
overlay_instance.view.backgroundColor = [UIColor blackColor]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
112 |
overlay_instance.view.alpha = 0.75; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
113 |
overlay_instance.view.userInteractionEnabled = NO; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
114 |
|
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
115 |
overlay_instance.savesIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; |
4028 | 116 |
|
5662
99083392cd4f
FREE AT LAST!!! SDL came around a (mostly) sane way for implementing rotation events, so we can scrap all the workaround code that has been added to workaround it!! Also this allows us to use proper (internal) multitasking handling and can simplify optional settings and other yet unexplored features. Yay!
koda
parents:
5194
diff
changeset
|
117 |
overlay_instance.savesIndicator.center = overlay_instance.view.center; |
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
118 |
overlay_instance.savesIndicator.hidesWhenStopped = YES; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
119 |
|
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
120 |
[overlay_instance.savesIndicator startAnimating]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
121 |
[overlay_instance.view addSubview:overlay_instance.savesIndicator]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
122 |
[overlay_instance.savesIndicator release]; |
4028 | 123 |
} |
124 |
||
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
125 |
void saveFinishedSynching() { |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
126 |
[UIView beginAnimations:@"fading from save synch" context:NULL]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
127 |
[UIView setAnimationDuration:1]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
128 |
overlay_instance.view.backgroundColor = [UIColor clearColor]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
129 |
overlay_instance.view.alpha = 1; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
130 |
overlay_instance.view.userInteractionEnabled = YES; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
131 |
[UIView commitAnimations]; |
4028 | 132 |
|
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
133 |
[overlay_instance.savesIndicator stopAnimating]; |
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
134 |
[overlay_instance.savesIndicator performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1]; |
4028 | 135 |
|
5992
a311b8461ec9
prevent screen locking while synching saves (can take some time)
koda
parents:
5662
diff
changeset
|
136 |
[[UIApplication sharedApplication] setIdleTimerDisabled:NO]; |
4028 | 137 |
gameRunning = YES; |
138 |
} |
|
4034
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
139 |
|
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
140 |
void updateVisualsNewTurn(void) { |
5174
f5294509783e
initial refactoring of ObjcExports and OverlayViewController
koda
parents:
5106
diff
changeset
|
141 |
[overlay_instance.amvc updateAmmoVisuals]; |
4034
634a8c8682de
add some phone rumbling to big explosions, airbomb and sinegun
koda
parents:
4028
diff
changeset
|
142 |
} |
5106
517bdd3865f1
wow we're getting famous http://hg.libsdl.org/SDL/rev/8a04b596b472
koda
parents:
5002
diff
changeset
|
143 |
|
517bdd3865f1
wow we're getting famous http://hg.libsdl.org/SDL/rev/8a04b596b472
koda
parents:
5002
diff
changeset
|
144 |
// dummy function to prevent linkage fail |
517bdd3865f1
wow we're getting famous http://hg.libsdl.org/SDL/rev/8a04b596b472
koda
parents:
5002
diff
changeset
|
145 |
int SDL_main(int argc, char **argv) { |
517bdd3865f1
wow we're getting famous http://hg.libsdl.org/SDL/rev/8a04b596b472
koda
parents:
5002
diff
changeset
|
146 |
return 0; |
517bdd3865f1
wow we're getting famous http://hg.libsdl.org/SDL/rev/8a04b596b472
koda
parents:
5002
diff
changeset
|
147 |
} |