X-Git-Url: https://git.yukkurigames.com/?a=blobdiff_plain;f=TargetMouseMove.m;h=aa503069441645295ebe4bf9551a485eaa646735;hb=25dd74a4a34f4ba7ec797360bd8f92cbd7bc758e;hp=8cf09d2c508a3fb418f3705911b3eac31859dd12;hpb=61f8cdec21ab083b29c22aa11fda54d6005666ca;p=enjoyable.git diff --git a/TargetMouseMove.m b/TargetMouseMove.m index 8cf09d2..aa50306 100644 --- a/TargetMouseMove.m +++ b/TargetMouseMove.m @@ -23,41 +23,34 @@ +(TargetMouseMove*) unstringifyImpl: (NSArray*) comps { NSParameterAssert([comps count] == 2); TargetMouseMove* target = [[TargetMouseMove alloc] init]; - [target setDir: [[comps objectAtIndex:1] integerValue]]; + [target setDir: [comps[1] integerValue]]; return target; } --(void) trigger: (JoystickController *)jc { - return; -} - --(void) untrigger: (JoystickController *)jc { - return; -} - --(void) update: (JoystickController *)jc { +- (BOOL)update:(JoystickController *)jc { //printf("Dir %d inputValue %f\n", [self dir], [self inputValue]); - if (fabs([self inputValue]) < 0.01) - return; // dead zone + if (fabs(self.magnitude) < 0.01) + return NO; // dead zone NSRect screenRect = [[NSScreen mainScreen] frame]; NSInteger height = screenRect.size.height; // TODO - double speed = 4.0; + float speed = 4.0; if ([jc frontWindowOnly]) speed = 12.0; - double dx = 0.0, dy = 0.0; + float dx = 0.0, dy = 0.0; if ([self dir] == 0) - dx = [self inputValue] * speed; + dx = self.magnitude * speed; else - dy = [self inputValue] * speed; - NSPoint *mouseLoc = &jc->mouseLoc; - mouseLoc->x += dx; - mouseLoc->y -= dy; + dy = self.magnitude * speed; + NSPoint mouseLoc = jc.mouseLoc; + mouseLoc.x += dx; + mouseLoc.y -= dy; + jc.mouseLoc = mouseLoc; CGEventRef move = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, - CGPointMake(mouseLoc->x, height - mouseLoc->y), + CGPointMake(mouseLoc.x, height - mouseLoc.y), 0); CGEventSetType(move, kCGEventMouseMoved); CGEventSetIntegerValueField(move, kCGMouseEventDeltaX, dx); @@ -73,6 +66,7 @@ } CFRelease(move); + return dx || dy; } @end