Spaces to tabs and layout adjustments on .mm files

This commit is contained in:
BastiaanOlij 2017-04-08 09:47:13 +10:00
parent 63ddee793e
commit 33ea9fc4a7
12 changed files with 1172 additions and 1300 deletions

1
.gitattributes vendored
View file

@ -5,5 +5,6 @@ drivers/* linguist-vendored
*.cpp eol=lf
*.h eol=lf
*.mm eol=lf
*.py eol=lf
*.hpp eol=lf

View file

@ -84,8 +84,7 @@ CMMotionManager *motionManager;
bool motionInitialised;
static ViewController* mainViewController = nil;
+ (ViewController*) getViewController
{
+ (ViewController*) getViewController {
return mainViewController;
}
@ -93,14 +92,12 @@ static int frame_count = 0;
- (void)drawView:(GLView*)view; {
switch (frame_count) {
case 0: {
int backingWidth;
int backingHeight;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
OS::VideoMode vm;
vm.fullscreen = true;
vm.width = backingWidth;
@ -124,7 +121,7 @@ static int frame_count = 0;
NSString* uuid;
if ([[UIDevice currentDevice]respondsToSelector:@selector(identifierForVendor)]) {
uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
}else{
} else {
// before iOS 6, so just generate an identifier and store it
uuid = [[NSUserDefaults standardUserDefaults] objectForKey:@"identiferForVendor"];
@ -142,7 +139,7 @@ static int frame_count = 0;
/*
case 1: {
++frame_count;
} break;
}; break;
*/
case 1: {
@ -173,7 +170,7 @@ static int frame_count = 0;
// do stuff
}
} break;
}; break;
/*
case 3: {
++frame_count;
@ -187,7 +184,6 @@ static int frame_count = 0;
}; break; // no fallthrough
default: {
if (OSIPhone::get_singleton()) {
if (motionInitialised) {
// Just using polling approach for now, we can set this up so it sends data to us in intervals, might be better.
@ -241,9 +237,7 @@ static int frame_count = 0;
bool quit_request = OSIPhone::get_singleton()->iterate();
};
};
};
};
@ -311,12 +305,10 @@ static int frame_count = 0;
#ifdef MODULE_GAME_ANALYTICS_ENABLED
printf("********************* didFinishLaunchingWithOptions\n");
if(!Globals::get_singleton()->has("mobileapptracker/advertiser_id"))
{
if (!Globals::get_singleton()->has("mobileapptracker/advertiser_id")) {
return;
}
if(!Globals::get_singleton()->has("mobileapptracker/conversion_key"))
{
if (!Globals::get_singleton()->has("mobileapptracker/conversion_key")) {
return;
}
@ -327,8 +319,7 @@ static int frame_count = 0;
NSString * conversion_key = [NSString stringWithUTF8String:convkey.utf8().get_data()];
// Account Configuration info - must be set
[MobileAppTracker initializeWithMATAdvertiserId:advertiser_id
MATConversionKey:conversion_key];
[MobileAppTracker initializeWithMATAdvertiserId:advertiser_id MATConversionKey:conversion_key];
// Used to pass us the IFA, enables highly accurate 1-to-1 attribution.
// Required for many advertising networks.
@ -336,7 +327,6 @@ static int frame_count = 0;
advertisingTrackingEnabled:[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]];
#endif
};
- (void)applicationWillTerminate:(UIApplication*)application {
@ -354,35 +344,33 @@ static int frame_count = 0;
iphone_finish();
};
- (void)applicationDidEnterBackground:(UIApplication *)application
{
- (void)applicationDidEnterBackground:(UIApplication *)application {
printf("********************* did enter background\n");
///@TODO maybe add pause motionManager? and where would we unpause it?
if (OS::get_singleton()->get_main_loop())
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
[view_controller.view stopAnimation];
if (OS::get_singleton()->native_video_is_playing()) {
OSIPhone::get_singleton()->native_video_focus_out();
};
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
- (void)applicationWillEnterForeground:(UIApplication *)application {
printf("********************* did enter foreground\n");
//OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
[view_controller.view startAnimation];
}
- (void) applicationWillResignActive:(UIApplication *)application
{
- (void) applicationWillResignActive:(UIApplication *)application {
printf("********************* will resign active\n");
//OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
[view_controller.view stopAnimation]; // FIXME: pause seems to be recommended elsewhere
}
- (void) applicationDidBecomeActive:(UIApplication *)application
{
- (void) applicationDidBecomeActive:(UIApplication *)application {
printf("********************* did become active\n");
#ifdef MODULE_GAME_ANALYTICS_ENABLED
printf("********************* mobile app tracker found\n");
@ -390,7 +378,9 @@ static int frame_count = 0;
#endif
if (OS::get_singleton()->get_main_loop())
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
[view_controller.view startAnimation]; // FIXME: resume seems to be recommended elsewhere
if (OSIPhone::get_singleton()->native_video_is_playing()) {
OSIPhone::get_singleton()->native_video_unpause();
};
@ -448,8 +438,7 @@ static int frame_count = 0;
#endif
}
- (void)dealloc
{
- (void)dealloc {
[window release];
[super dealloc];
}

View file

@ -51,15 +51,15 @@ void GameCenter::_bind_methods() {
ObjectTypeDB::bind_method(_MD("connect"),&GameCenter::connect);
ObjectTypeDB::bind_method(_MD("is_connected"),&GameCenter::is_connected);
ObjectTypeDB::bind_method(_MD("post_score"),&GameCenter::post_score);
ObjectTypeDB::bind_method(_MD("award_achievement"),&GameCenter::award_achievement);
ObjectTypeDB::bind_method(_MD("reset_achievements"),&GameCenter::reset_achievements);
ObjectTypeDB::bind_method(_MD("request_achievements"),&GameCenter::request_achievements);
ObjectTypeDB::bind_method(_MD("request_achievement_descriptions"),&GameCenter::request_achievement_descriptions);
ObjectTypeDB::bind_method(_MD("show_game_center"),&GameCenter::show_game_center);
ObjectTypeDB::bind_method(_MD("post_score"), &GameCenter::post_score);
ObjectTypeDB::bind_method(_MD("award_achievement"), &GameCenter::award_achievement);
ObjectTypeDB::bind_method(_MD("reset_achievements"), &GameCenter::reset_achievements);
ObjectTypeDB::bind_method(_MD("request_achievements"), &GameCenter::request_achievements);
ObjectTypeDB::bind_method(_MD("request_achievement_descriptions"), &GameCenter::request_achievement_descriptions);
ObjectTypeDB::bind_method(_MD("show_game_center"), &GameCenter::show_game_center);
ObjectTypeDB::bind_method(_MD("get_pending_event_count"),&GameCenter::get_pending_event_count);
ObjectTypeDB::bind_method(_MD("pop_pending_event"),&GameCenter::pop_pending_event);
ObjectTypeDB::bind_method(_MD("get_pending_event_count"), &GameCenter::get_pending_event_count);
ObjectTypeDB::bind_method(_MD("pop_pending_event"), &GameCenter::pop_pending_event);
};
@ -81,8 +81,7 @@ Error GameCenter::connect() {
player.authenticateHandler = (^(UIViewController *controller, NSError *error) {
if (controller) {
[root_controller presentViewController:controller animated:YES completion:nil];
}
else {
} else {
Dictionary ret;
ret["type"] = "authentication";
if (player.isAuthenticated) {
@ -97,7 +96,6 @@ Error GameCenter::connect() {
pending_events.push_back(ret);
};
});
return OK;
@ -121,7 +119,6 @@ Error GameCenter::post_score(Variant p_score) {
ERR_FAIL_COND_V([GKScore respondsToSelector:@selector(reportScores)], ERR_UNAVAILABLE);
[GKScore reportScores:@[reporter] withCompletionHandler:^(NSError* error) {
Dictionary ret;
ret["type"] = "post_score";
if (error == nil) {
@ -331,6 +328,7 @@ Error GameCenter::show_game_center(Variant p_params) {
void GameCenter::game_center_closed() {
Dictionary ret;
ret["type"] = "show_game_center";
ret["result"] = "ok";
pending_events.push_back(ret);

View file

@ -103,13 +103,11 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s
AVMediaSelectionGroup *audioGroup = [_instance.avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicAudible];
NSMutableArray *allAudioParams = [NSMutableArray array];
for (id track in audioGroup.options)
{
for (id track in audioGroup.options) {
NSString* language = [[track locale] localeIdentifier];
NSLog(@"subtitle lang: %@", language);
if ([language isEqualToString:[NSString stringWithUTF8String:p_audio_track.utf8()]])
{
if ([language isEqualToString:[NSString stringWithUTF8String:p_audio_track.utf8()]]) {
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:p_volume atTime:kCMTimeZero];
[audioInputParams setTrackID:[track trackID]];
@ -128,13 +126,11 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s
AVMediaSelectionGroup *subtitlesGroup = [_instance.avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicLegible];
NSArray *useableTracks = [AVMediaSelectionGroup mediaSelectionOptionsFromArray:subtitlesGroup.options withoutMediaCharacteristics:[NSArray arrayWithObject:AVMediaCharacteristicContainsOnlyForcedSubtitles]];
for (id track in useableTracks)
{
for (id track in useableTracks) {
NSString* language = [[track locale] localeIdentifier];
NSLog(@"subtitle lang: %@", language);
if ([language isEqualToString:[NSString stringWithUTF8String:p_subtitle_track.utf8()]])
{
if ([language isEqualToString:[NSString stringWithUTF8String:p_subtitle_track.utf8()]]) {
[_instance.avPlayer.currentItem selectMediaOption:track inMediaSelectionGroup: subtitlesGroup];
break;
}
@ -237,7 +233,7 @@ static int get_first_id(UITouch* p_touch) {
static void clear_touches() {
for (int i=0; i<max_touches; i++) {
for (int i = 0; i < max_touches; i++) {
touches[i] = NULL;
};
@ -245,24 +241,20 @@ static void clear_touches() {
// Implement this to override the default layer class (which is [CALayer class]).
// We do this so that our view will be backed by a layer that is capable of OpenGL ES rendering.
+ (Class) layerClass
{
+ (Class) layerClass {
return [CAEAGLLayer class];
}
//The GL view is stored in the nib file. When it's unarchived it's sent -initWithCoder:
- (id)initWithCoder:(NSCoder*)coder
{
- (id)initWithCoder:(NSCoder*)coder {
active = FALSE;
if((self = [super initWithCoder:coder]))
{
if((self = [super initWithCoder:coder])) {
self = [self initGLES];
}
return self;
}
-(id)initGLES
{
-(id)initGLES {
// Get our backing layer
CAEAGLLayer *eaglLayer = (CAEAGLLayer*) self.layer;
@ -276,8 +268,7 @@ static void clear_touches() {
// Create our EAGLContext, and if successful make it current and create our framebuffer.
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer])
{
if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
[self release];
return nil;
}
@ -287,14 +278,12 @@ static void clear_touches() {
return self;
}
-(id<GLViewDelegate>)delegate
{
-(id<GLViewDelegate>)delegate {
return delegate;
}
// Update the delegate, and if it needs a -setupView: call, set our internal flag so that it will be called.
-(void)setDelegate:(id<GLViewDelegate>)d
{
-(void)setDelegate:(id<GLViewDelegate>)d {
delegate = d;
delegateSetup = ![delegate respondsToSelector:@selector(setupView:)];
}
@ -305,8 +294,7 @@ static void clear_touches() {
// This is the perfect opportunity to also update the framebuffer so that it is
// the same size as our display area.
-(void)layoutSubviews
{
-(void)layoutSubviews {
//printf("HERE\n");
[EAGLContext setCurrentContext:context];
[self destroyFramebuffer];
@ -316,8 +304,7 @@ static void clear_touches() {
}
- (BOOL)createFramebuffer
{
- (BOOL)createFramebuffer {
// Generate IDs for a framebuffer object and a color renderbuffer
UIScreen* mainscr = [UIScreen mainScreen];
printf("******** screen size %i, %i\n", (int)mainscr.currentMode.size.width, (int)mainscr.currentMode.size.height);
@ -344,8 +331,7 @@ static void clear_touches() {
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES)
{
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) {
NSLog(@"failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES));
return NO;
}
@ -365,24 +351,22 @@ static void clear_touches() {
}
// Clean up any buffers we have allocated.
- (void)destroyFramebuffer
{
- (void)destroyFramebuffer {
glDeleteFramebuffersOES(1, &viewFramebuffer);
viewFramebuffer = 0;
glDeleteRenderbuffersOES(1, &viewRenderbuffer);
viewRenderbuffer = 0;
if(depthRenderbuffer)
{
if(depthRenderbuffer) {
glDeleteRenderbuffersOES(1, &depthRenderbuffer);
depthRenderbuffer = 0;
}
}
- (void)startAnimation
{
- (void)startAnimation {
if (active)
return;
active = TRUE;
printf("start animation!\n");
if (useCADisplayLink) {
@ -396,59 +380,53 @@ static void clear_touches() {
// Setup DisplayLink in main thread
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
}
else {
} else {
animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval target:self selector:@selector(drawView) userInfo:nil repeats:YES];
}
if (video_playing)
{
if (video_playing) {
_unpause_video();
}
}
- (void)stopAnimation
{
- (void)stopAnimation {
if (!active)
return;
active = FALSE;
printf("******** stop animation!\n");
if (useCADisplayLink) {
[displayLink invalidate];
displayLink = nil;
}
else {
} else {
[animationTimer invalidate];
animationTimer = nil;
}
clear_touches();
if (video_playing)
{
if (video_playing) {
// save position
}
}
- (void)setAnimationInterval:(NSTimeInterval)interval
{
- (void)setAnimationInterval:(NSTimeInterval)interval {
animationInterval = interval;
if ( (useCADisplayLink && displayLink) || ( !useCADisplayLink && animationTimer ) ) {
if ((useCADisplayLink && displayLink) || (!useCADisplayLink && animationTimer)) {
[self stopAnimation];
[self startAnimation];
}
}
// Updates the OpenGL view when the timer fires
- (void)drawView
{
- (void)drawView {
if (useCADisplayLink) {
// Pause the CADisplayLink to avoid recursion
[displayLink setPaused: YES];
// Process all input events
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, TRUE) == kCFRunLoopRunHandledSource);
while (CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, TRUE) == kCFRunLoopRunHandledSource);
// We are good to go, resume the CADisplayLink
[displayLink setPaused: NO];
@ -463,8 +441,7 @@ static void clear_touches() {
[EAGLContext setCurrentContext:context];
// If our drawing delegate needs to have the view setup, then call -setupView: and flag that it won't need to be called again.
if(!delegateSetup)
{
if(!delegateSetup) {
[delegate setupView:self];
delegateSetup = YES;
}
@ -483,8 +460,7 @@ static void clear_touches() {
#endif
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -501,8 +477,7 @@ static void clear_touches() {
};
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -512,6 +487,7 @@ static void clear_touches() {
UITouch* touch = [tlist objectAtIndex:i];
if (touch.phase != UITouchPhaseMoved)
continue;
int tid = get_touch_id(touch);
ERR_FAIL_COND(tid == -1);
int first = get_first_id(touch);
@ -523,8 +499,7 @@ static void clear_touches() {
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -533,6 +508,7 @@ static void clear_touches() {
UITouch* touch = [tlist objectAtIndex:i];
if (touch.phase != UITouchPhaseEnded)
continue;
int tid = get_touch_id(touch);
ERR_FAIL_COND(tid == -1);
int rem = remove_touch(touch);
@ -566,6 +542,7 @@ static void clear_touches() {
- (void)deleteBackward {
if (keyboard_text.length())
keyboard_text.erase(keyboard_text.length() - 1, 1);
OSIPhone::get_singleton()->key(KEY_BACKSPACE, true);
};
@ -590,12 +567,12 @@ static void clear_touches() {
switch (routeChangeReason) {
case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
case AVAudioSessionRouteChangeReasonNewDeviceAvailable: {
NSLog(@"AVAudioSessionRouteChangeReasonNewDeviceAvailable");
NSLog(@"Headphone/Line plugged in");
break;
}; break;
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable: {
NSLog(@"AVAudioSessionRouteChangeReasonOldDeviceUnavailable");
NSLog(@"Headphone/Line was pulled. Resuming video play....");
if (_is_video_playing()) {
@ -605,24 +582,22 @@ static void clear_touches() {
NSLog(@"resumed play");
});
};
break;
}; break;
case AVAudioSessionRouteChangeReasonCategoryChange:
case AVAudioSessionRouteChangeReasonCategoryChange: {
// called at start - also when other audio wants to play
NSLog(@"AVAudioSessionRouteChangeReasonCategoryChange");
break;
}; break;
}
}
// When created via code however, we get initWithFrame
-(id)initWithFrame:(CGRect)frame
{
-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
_instance = self;
printf("after init super %p\n", self);
if(self != nil)
{
if(self != nil) {
self = [self initGLES];
printf("after init gles %p\n", self);
}
@ -649,12 +624,10 @@ static void clear_touches() {
// }
// Stop animating and release resources when they are no longer needed.
- (void)dealloc
{
- (void)dealloc {
[self stopAnimation];
if([EAGLContext currentContext] == context)
{
if([EAGLContext currentContext] == context) {
[EAGLContext setCurrentContext:nil];
}

View file

@ -44,14 +44,14 @@ extern "C" {
ICloud* ICloud::instance = NULL;
void ICloud::_bind_methods() {
ObjectTypeDB::bind_method(_MD("remove_key"),&ICloud::remove_key);
ObjectTypeDB::bind_method(_MD("set_key_values"),&ICloud::set_key_values);
ObjectTypeDB::bind_method(_MD("get_key_value"),&ICloud::get_key_value);
ObjectTypeDB::bind_method(_MD("synchronize_key_values"),&ICloud::synchronize_key_values);
ObjectTypeDB::bind_method(_MD("get_all_key_values"),&ICloud::get_all_key_values);
ObjectTypeDB::bind_method(_MD("remove_key"), &ICloud::remove_key);
ObjectTypeDB::bind_method(_MD("set_key_values"), &ICloud::set_key_values);
ObjectTypeDB::bind_method(_MD("get_key_value"), &ICloud::get_key_value);
ObjectTypeDB::bind_method(_MD("synchronize_key_values"), &ICloud::synchronize_key_values);
ObjectTypeDB::bind_method(_MD("get_all_key_values"), &ICloud::get_all_key_values);
ObjectTypeDB::bind_method(_MD("get_pending_event_count"),&ICloud::get_pending_event_count);
ObjectTypeDB::bind_method(_MD("pop_pending_event"),&ICloud::pop_pending_event);
ObjectTypeDB::bind_method(_MD("get_pending_event_count"), &ICloud::get_pending_event_count);
ObjectTypeDB::bind_method(_MD("pop_pending_event"), &ICloud::pop_pending_event);
};
int ICloud::get_pending_event_count() {
@ -76,8 +76,7 @@ Variant nsobject_to_variant(NSObject* object) {
if ([object isKindOfClass:[NSString class]]) {
const char* str = [(NSString*)object UTF8String];
return String::utf8(str != NULL ? str : "");
}
else if ([object isKindOfClass:[NSData class]]) {
} else if ([object isKindOfClass:[NSData class]]) {
ByteArray ret;
NSData* data = (NSData*)object;
if ([data length] > 0) {
@ -88,8 +87,7 @@ Variant nsobject_to_variant(NSObject* object) {
}
}
return ret;
}
else if ([object isKindOfClass:[NSArray class]]) {
} else if ([object isKindOfClass:[NSArray class]]) {
Array result;
NSArray* array = (NSArray*)object;
for (unsigned int i = 0; i < [array count]; ++i) {
@ -97,8 +95,7 @@ Variant nsobject_to_variant(NSObject* object) {
result.push_back(nsobject_to_variant(value));
}
return result;
}
else if ([object isKindOfClass:[NSDictionary class]]) {
} else if ([object isKindOfClass:[NSDictionary class]]) {
Dictionary result;
NSDictionary* dic = (NSDictionary*)object;
@ -112,8 +109,7 @@ Variant nsobject_to_variant(NSObject* object) {
result[nsobject_to_variant(k)] = nsobject_to_variant(v);
}
return result;
}
else if ([object isKindOfClass:[NSNumber class]]) {
} else if ([object isKindOfClass:[NSNumber class]]) {
//Every type except numbers can reliably identify its type. The following is comparing to the *internal* representation, which isn't guaranteed to match the type that was used to create it, and is not advised, particularly when dealing with potential platform differences (ie, 32/64 bit)
//To avoid errors, we'll cast as broadly as possible, and only return int or float.
//bool, char, int, uint, longlong -> int
@ -121,37 +117,28 @@ Variant nsobject_to_variant(NSObject* object) {
NSNumber* num = (NSNumber*)object;
if(strcmp([num objCType], @encode(BOOL)) == 0) {
return Variant((int)[num boolValue]);
}
else if(strcmp([num objCType], @encode(char)) == 0) {
} else if(strcmp([num objCType], @encode(char)) == 0) {
return Variant((int)[num charValue]);
}
else if(strcmp([num objCType], @encode(int)) == 0) {
} else if(strcmp([num objCType], @encode(int)) == 0) {
return Variant([num intValue]);
}
else if(strcmp([num objCType], @encode(unsigned int)) == 0) {
} else if(strcmp([num objCType], @encode(unsigned int)) == 0) {
return Variant((int)[num unsignedIntValue]);
}
else if(strcmp([num objCType], @encode(long long)) == 0) {
} else if(strcmp([num objCType], @encode(long long)) == 0) {
return Variant((int)[num longValue]);
}
else if(strcmp([num objCType], @encode(float)) == 0) {
} else if(strcmp([num objCType], @encode(float)) == 0) {
return Variant([num floatValue]);
}
else if(strcmp([num objCType], @encode(double)) == 0) {
} else if(strcmp([num objCType], @encode(double)) == 0) {
return Variant((float)[num doubleValue]);
}
}
else if ([object isKindOfClass:[NSDate class]]) {
} else if ([object isKindOfClass:[NSDate class]]) {
//this is a type that icloud supports...but how did you submit it in the first place?
//I guess this is a type that *might* show up, if you were, say, trying to make your game
//compatible with existing cloud data written by another engine's version of your game
WARN_PRINT("NSDate unsupported, returning null Variant")
return Variant();
}
else if ([object isKindOfClass:[NSNull class]] or object == nil) {
} else if ([object isKindOfClass:[NSNull class]] or object == nil) {
return Variant();
}
else {
} else {
WARN_PRINT("Trying to convert unknown NSObject type to Variant");
return Variant();
}
@ -160,17 +147,13 @@ Variant nsobject_to_variant(NSObject* object) {
NSObject* variant_to_nsobject(Variant v) {
if (v.get_type() == Variant::STRING) {
return [[[NSString alloc] initWithUTF8String:((String)v).utf8().get_data()] autorelease];
}
else if (v.get_type() == Variant::REAL) {
} else if (v.get_type() == Variant::REAL) {
return [NSNumber numberWithDouble:(double)v];
}
else if (v.get_type() == Variant::INT) {
} else if (v.get_type() == Variant::INT) {
return [NSNumber numberWithLongLong:(long)(int)v];
}
else if (v.get_type() == Variant::BOOL) {
} else if (v.get_type() == Variant::BOOL) {
return [NSNumber numberWithBool:BOOL((bool)v)];
}
else if (v.get_type() == Variant::DICTIONARY) {
} else if (v.get_type() == Variant::DICTIONARY) {
NSMutableDictionary* result = [[[NSMutableDictionary alloc] init] autorelease];
Dictionary dic = v;
Array keys = dic.keys();
@ -185,8 +168,7 @@ NSObject* variant_to_nsobject(Variant v) {
[result setObject:value forKey:key];
}
return result;
}
else if (v.get_type() == Variant::ARRAY) {
} else if (v.get_type() == Variant::ARRAY) {
NSMutableArray* result = [[[NSMutableArray alloc] init] autorelease];
Array arr = v;
for (unsigned int i = 0; i < arr.size(); ++i) {
@ -198,8 +180,7 @@ NSObject* variant_to_nsobject(Variant v) {
[result addObject:value];
}
return result;
}
else if (v.get_type() == Variant::RAW_ARRAY) {
} else if (v.get_type() == Variant::RAW_ARRAY) {
ByteArray arr = v;
ByteArray::Read r = arr.read();
NSData* result = [NSData dataWithBytes:r.ptr() length:arr.size()];
@ -296,8 +277,7 @@ Error ICloud::synchronize_key_values() {
BOOL result = [store synchronize];
if (result == YES) {
return OK;
}
else {
} else {
return FAILED;
}
}
@ -340,14 +320,11 @@ ICloud::ICloud() {
if (change == NSUbiquitousKeyValueStoreServerChange) {
reason = "server";
}
else if (change == NSUbiquitousKeyValueStoreInitialSyncChange) {
} else if (change == NSUbiquitousKeyValueStoreInitialSyncChange) {
reason = "initial_sync";
}
else if (change == NSUbiquitousKeyValueStoreQuotaViolationChange) {
} else if (change == NSUbiquitousKeyValueStoreQuotaViolationChange) {
reason = "quota_violation";
}
else if (change == NSUbiquitousKeyValueStoreAccountChange) {
} else if (change == NSUbiquitousKeyValueStoreAccountChange) {
reason = "account";
}

View file

@ -35,8 +35,8 @@
#include "in_app_store.h"
extern "C" {
#import <StoreKit/StoreKit.h>
#import <Foundation/Foundation.h>
#import <StoreKit/StoreKit.h>
#import <Foundation/Foundation.h>
};
bool auto_finish_transactions = true;
@ -50,8 +50,7 @@ NSMutableDictionary* pending_transactions = [NSMutableDictionary dictionary];
// SKProduct extension
//----------------------------------//
@implementation SKProduct (LocalizedPrice)
- (NSString *)localizedPrice
{
- (NSString *)localizedPrice {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
@ -168,7 +167,6 @@ Error InAppStore::request_product_info(Variant p_params) {
for (SKPaymentTransaction* transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased: {
printf("status purchased!\n");
String pid = String::utf8([transaction.payment.productIdentifier UTF8String]);
@ -204,13 +202,12 @@ Error InAppStore::request_product_info(Variant p_params) {
receipt = transaction.transactionReceipt;
}
}else{
} else {
receipt = transaction.transactionReceipt;
}
NSString* receipt_to_send = nil;
if (receipt != nil)
{
if (receipt != nil) {
receipt_to_send = [receipt description];
}
Dictionary receipt_ret;
@ -222,8 +219,7 @@ Error InAppStore::request_product_info(Variant p_params) {
if (auto_finish_transactions){
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
else{
} else {
[pending_transactions setObject:transaction forKey:transaction.payment.productIdentifier];
}
@ -231,7 +227,7 @@ Error InAppStore::request_product_info(Variant p_params) {
printf("Registering transaction on Fuseboxx!\n");
[FuseSDK registerInAppPurchase: transaction];
#endif
} break;
}; break;
case SKPaymentTransactionStateFailed: {
printf("status transaction failed!\n");
String pid = String::utf8([transaction.payment.productIdentifier UTF8String]);
@ -241,18 +237,17 @@ Error InAppStore::request_product_info(Variant p_params) {
ret["product_id"] = pid;
InAppStore::get_singleton()->_post_event(ret);
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
} break;
}; break;
case SKPaymentTransactionStateRestored: {
printf("status transaction restored!\n");
String pid = String::utf8([transaction.originalTransaction.payment.productIdentifier UTF8String]);
InAppStore::get_singleton()->_record_purchase(pid);
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
} break;
default:
}; break;
default: {
printf("status default %i!\n", (int)transaction.transactionState);
break;
}; break;
};
};
};
@ -323,7 +318,7 @@ InAppStore::InAppStore() {
void InAppStore::finish_transaction(String product_id){
NSString* prod_id = [NSString stringWithCString:product_id.utf8().get_data() encoding:NSUTF8StringEncoding];
if ([pending_transactions objectForKey:prod_id]){
if ([pending_transactions objectForKey:prod_id]) {
[[SKPaymentQueue defaultQueue] finishTransaction:[pending_transactions objectForKey:prod_id]];
[pending_transactions removeObjectForKey:prod_id];
}

View file

@ -43,14 +43,11 @@ String iOS::get_rate_url(int p_app_id) const {
//ios7 before
String ret = templ;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1) {
// iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1)
{
ret = templ_iOS7;
}
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
// iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
ret = templ_iOS8;
}

View file

@ -33,8 +33,7 @@
int gargc;
char** gargv;
int main(int argc, char *argv[])
{
int main(int argc, char *argv[]) {
printf("*********** main.m\n");
gargc = argc;
gargv = argv;

View file

@ -32,10 +32,10 @@
extern "C" {
int add_path(int, char**);
int add_cmdline(int, char**);
int add_path(int, char**);
int add_cmdline(int, char**);
int add_path(int p_argc, char** p_args) {
int add_path(int p_argc, char** p_args) {
NSString* str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_path"];
if (!str)
@ -47,9 +47,9 @@ int add_path(int p_argc, char** p_args) {
p_args[p_argc] = NULL;
return p_argc;
};
};
int add_cmdline(int p_argc, char** p_args) {
int add_cmdline(int p_argc, char** p_args) {
NSArray* arr = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_cmdline"];
if (!arr)
@ -67,7 +67,7 @@ int add_cmdline(int p_argc, char** p_args) {
p_args[p_argc] = NULL;
return p_argc;
};
};
};
@ -127,8 +127,7 @@ int add_cmdline(int p_argc, char** p_args) {
}
};
- (BOOL)prefersStatusBarHidden
{
- (BOOL)prefersStatusBarHidden {
return YES;
}

View file

@ -39,30 +39,30 @@ int main(int argc, char** argv) {
int first_arg = 1;
const char* dbg_arg = "-NSDocumentRevisionsDebugMode";
printf("arguments\n");
for (int i=0; i<argc; i++) {
for (int i = 0; i < argc; i++) {
if (strcmp(dbg_arg, argv[i]) == 0)
first_arg = i+2;
printf("%i: %s\n", i, argv[i]);
};
if (argc>=1 && argv[0][0]=='/') {
if (argc >= 1 && argv[0][0] == '/') {
//potentially launched from finder
int len = strlen(argv[0]);
while (len--) {
if (argv[0][len] == '/') break;
}
if (len>=0) {
if (len >= 0) {
char *path = (char *)malloc(len+1);
memcpy(path, argv[0], len);
path[len]=0;
path[len] = 0;
char *pathinfo = (char*)malloc(strlen(path)+strlen("/../Info.plist")+1);
char *pathinfo = (char*)malloc(strlen(path) + strlen("/../Info.plist")+1);
//in real code you would check for errors in malloc here
strcpy(pathinfo, path);
strcat(pathinfo, "/../Info.plist");
FILE*f=fopen(pathinfo,"rb");
FILE*f=fopen(pathinfo, "rb");
if (f) {
//running from app bundle, as Info.plist was found
fclose(f);
@ -74,15 +74,12 @@ int main(int argc, char** argv) {
free(path);
free(pathinfo);
}
}
OS_OSX os;
Error err = Main::setup(argv[0],argc-first_arg,&argv[first_arg]);
Error err = Main::setup(argv[0], argc-first_arg, &argv[first_arg]);
if (err!=OK)
return 255;

View file

@ -172,10 +172,9 @@ extern int godot_main(int argc, char** argv);
@end
#ifdef main
# undef main
#undef main
#endif
int main (int argc, char **argv)
{
/* Copy the arguments into a global variable */

File diff suppressed because it is too large Load diff