X-Git-Url: https://git.yukkurigames.com/?a=blobdiff_plain;f=Target.m;h=9666c8a80f27280f02d1d3219e45dd3180ccfd5b;hb=3a40cba25b9bb38887fe4809277d4c0f73462d12;hp=ec2d6a16462c5b5f1701f97143e45ff017d5ee9b;hpb=61f8cdec21ab083b29c22aa11fda54d6005666ca;p=enjoyable.git diff --git a/Target.m b/Target.m index ec2d6a1..9666c8a 100644 --- a/Target.m +++ b/Target.m @@ -5,16 +5,21 @@ // Created by Sam McCall on 5/05/09. // -@implementation Target +@implementation Target { + BOOL running; +} + +@synthesize magnitude; +// TODO: Should just be NSCoding? Or like a dictionary? +(Target*) unstringify: (NSString*) str withConfigList: (NSArray*) configs { - NSArray* components = [str componentsSeparatedByString:@"~"]; - NSParameterAssert([components count]); - NSString* typeTag = [components objectAtIndex:0]; - if([typeTag isEqualToString:@"key"]) - return [TargetKeyboard unstringifyImpl:components]; - if([typeTag isEqualToString:@"cfg"]) - return [TargetConfig unstringifyImpl:components withConfigList:configs]; + NSArray* components = [str componentsSeparatedByString:@"~"]; + NSParameterAssert([components count]); + NSString* typeTag = components[0]; + if([typeTag isEqualToString:@"key"]) + return [TargetKeyboard unstringifyImpl:components]; + if([typeTag isEqualToString:@"cfg"]) + return [TargetConfig unstringifyImpl:components withConfigList:configs]; if([typeTag isEqualToString:@"mmove"]) return [TargetMouseMove unstringifyImpl:components]; if([typeTag isEqualToString:@"mbtn"]) @@ -23,32 +28,43 @@ return [TargetMouseScroll unstringifyImpl:components]; if([typeTag isEqualToString:@"mtoggle"]) return [TargetToggleMouseScope unstringifyImpl:components]; - - NSParameterAssert(NO); - return NULL; + + NSParameterAssert(NO); + return NULL; } --(NSString*) stringify { - [self doesNotRecognizeSelector:_cmd]; - return NULL; +- (NSString *)stringify { + [self doesNotRecognizeSelector:_cmd]; + return NULL; } --(void) trigger: (JoystickController *)jc { - [self doesNotRecognizeSelector:_cmd]; +- (void)trigger { } --(void) untrigger: (JoystickController *)jc { - // no-op by default +- (void)untrigger { } --(void) update: (JoystickController *) jc { - [self doesNotRecognizeSelector:_cmd]; +- (BOOL)update:(JoystickController *)jc { + return NO; +} + +- (BOOL)isContinuous { + return NO; +} + +- (BOOL)running { + return running; } --(BOOL) isContinuous { - return false; +- (void)setRunning:(BOOL)newRunning { + if (running != newRunning) { + running = newRunning; + if (running) + [self trigger]; + else + [self untrigger]; + } } -@synthesize inputValue, running; @end