Big rename part 2: 'config' etc. to 'mapping.
[enjoyable.git] / Target.m
index 36da021..097562e 100644 (file)
--- a/Target.m
+++ b/Target.m
     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;
@@ -54,7 +63,7 @@
 - (void)untrigger {
 }
 
-- (BOOL)update:(JoystickController *)jc {
+- (BOOL)update:(NJInputController *)jc {
     return NO;
 }