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;
- (void)untrigger {
}
-- (BOOL)update:(JoystickController *)jc {
+- (BOOL)update:(NJInputController *)jc {
return NO;
}