X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Target.m;h=097562e52f3237a5b4788d19132a33476e6c6aef;hp=35af1844ba195cb9a86f195589b0e8a03966a2e1;hb=e2a4d830dd9817f6a515a3b1b6aa152d3bb98c2b;hpb=0a402879ee3beb79bb4d2270f909ad75eead0c96 diff --git a/Target.m b/Target.m index 35af184..097562e 100644 --- a/Target.m +++ b/Target.m @@ -18,8 +18,6 @@ BOOL running; } -@synthesize magnitude; - + (NSString *)serializationCode { [self doesNotRecognizeSelector:_cmd]; return nil; @@ -30,21 +28,30 @@ return nil; } +- (BOOL)isEqual:(id)object { + return [object isKindOfClass:Target.class] + && [[self serialize] isEqual:[object serialize]]; +} + +- (NSUInteger)hash { + return [[self serialize] hash]; +} + + (Target *)targetDeserialize:(NSDictionary *)serialization - withConfigs:(NSArray *)configs { - // Don't crash loading old configs (but don't load them either). - if (![serialization isKindOfClass:[NSDictionary class]]) + withMappings:(NSArray *)mappings { + // Don't crash loading old/bad mappings (but don't load them either). + if (![serialization isKindOfClass:NSDictionary.class]) return nil; NSString *type = serialization[@"type"]; - for (Class cls in @[[TargetKeyboard class], - [TargetConfig class], - [TargetMouseMove class], - [TargetMouseBtn class], - [TargetMouseScroll class], - [TargetToggleMouseScope class] + for (Class cls in @[TargetKeyboard.class, + TargetConfig.class, + TargetMouseMove.class, + TargetMouseBtn.class, + TargetMouseScroll.class, + TargetToggleMouseScope.class ]) { - if ([type isEqualToString:[cls serializationCode]]) - return [cls targetDeserialize:serialization withConfigs:configs]; + if ([type isEqualToString:cls.serializationCode]) + return [cls targetDeserialize:serialization withMappings:mappings]; } return nil; @@ -56,7 +63,7 @@ - (void)untrigger { } -- (BOOL)update:(JoystickController *)jc { +- (BOOL)update:(NJInputController *)jc { return NO; }