X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetMouseMove.m;h=2806827588daaa6c330888722dbf0aacdac7d1ad;hp=d2bc94307d1a2e9aa62960ad92865348f02eed3e;hb=f864d363128de19fc6591b77ae9226b34166d715;hpb=ada313d7e31dd509c8c7be01f364c9a2ad9860d4 diff --git a/TargetMouseMove.m b/TargetMouseMove.m index d2bc943..2806827 100644 --- a/TargetMouseMove.m +++ b/TargetMouseMove.m @@ -3,45 +3,42 @@ // Enjoy // // Created by Yifeng Huang on 7/26/12. -// Copyright (c) 2012 __MyCompanyName__. All rights reserved. // #import "TargetMouseMove.h" -#import "JoystickController.h" +#import "NJInputController.h" @implementation TargetMouseMove { int sign; } -(BOOL) isContinuous { - return true; + return YES; } -@synthesize dir; - + (NSString *)serializationCode { return @"mmove"; } - (NSDictionary *)serialize { - return @{ @"type": @"mmove", @"dir": @(self.dir) }; + return @{ @"type": @"mmove", @"axis": @(_axis) }; } + (Target *)targetDeserialize:(NSDictionary *)serialization withConfigs:(NSArray *)configs { TargetMouseMove *target = [[TargetMouseMove alloc] init]; - target.dir = [serialization[@"dir"] intValue]; + target.axis = [serialization[@"axis"] intValue]; return target; } -- (BOOL)update:(JoystickController *)jc { +- (BOOL)update:(NJInputController *)jc { if (fabsf(self.magnitude) < 0.01) { sign = 0; return NO; // dead zone } - // If the action crossed over High/Low, this target is done. + // If the input crossed over High/Low, this target is done. if (!sign) sign = self.magnitude < 0 ? -1 : 1; else if (sign / self.magnitude < 0) { @@ -49,15 +46,14 @@ return NO; } - NSRect screenRect = [[NSScreen mainScreen] frame]; - NSInteger height = screenRect.size.height; + CGFloat height = NSScreen.mainScreen.frame.size.height; // TODO float speed = 4.f; - if ([jc frontWindowOnly]) + if (jc.frontWindowOnly) speed = 12.f; float dx = 0.f, dy = 0.f; - if (self.dir == 0) + if (_axis == 0) dx = self.magnitude * speed; else dy = self.magnitude * speed; @@ -70,10 +66,10 @@ CGPointMake(mouseLoc.x, height - mouseLoc.y), 0); CGEventSetType(move, kCGEventMouseMoved); - CGEventSetIntegerValueField(move, kCGMouseEventDeltaX, dx); - CGEventSetIntegerValueField(move, kCGMouseEventDeltaY, dy); + CGEventSetIntegerValueField(move, kCGMouseEventDeltaX, (int)dx); + CGEventSetIntegerValueField(move, kCGMouseEventDeltaY, (int)dy); - if ([jc frontWindowOnly]) { + if (jc.frontWindowOnly) { ProcessSerialNumber psn; GetFrontProcess(&psn); CGEventPostToPSN(&psn, move);