Clean up a bunch of properties; remove unused ones, use automatic ones where possible...
[enjoyable.git] / Target.m
1 //
2 // Target.m
3 // Enjoy
4 //
5 // Created by Sam McCall on 5/05/09.
6 //
7
8 #import "Target.h"
9
10 #import "TargetKeyboard.h"
11 #import "TargetConfig.h"
12 #import "TargetMouseMove.h"
13 #import "TargetMouseBtn.h"
14 #import "TargetMouseScroll.h"
15 #import "TargetToggleMouseScope.h"
16
17 @implementation Target {
18 BOOL running;
19 }
20
21 + (NSString *)serializationCode {
22 [self doesNotRecognizeSelector:_cmd];
23 return nil;
24 }
25
26 - (NSDictionary *)serialize {
27 [self doesNotRecognizeSelector:_cmd];
28 return nil;
29 }
30
31 + (Target *)targetDeserialize:(NSDictionary *)serialization
32 withConfigs:(NSArray *)configs {
33 // Don't crash loading old configs (but don't load them either).
34 if (![serialization isKindOfClass:[NSDictionary class]])
35 return nil;
36 NSString *type = serialization[@"type"];
37 for (Class cls in @[[TargetKeyboard class],
38 [TargetConfig class],
39 [TargetMouseMove class],
40 [TargetMouseBtn class],
41 [TargetMouseScroll class],
42 [TargetToggleMouseScope class]
43 ]) {
44 if ([type isEqualToString:[cls serializationCode]])
45 return [cls targetDeserialize:serialization withConfigs:configs];
46 }
47
48 return nil;
49 }
50
51 - (void)trigger {
52 }
53
54 - (void)untrigger {
55 }
56
57 - (BOOL)update:(JoystickController *)jc {
58 return NO;
59 }
60
61 - (BOOL)isContinuous {
62 return NO;
63 }
64
65 - (BOOL)running {
66 return running;
67 }
68
69 - (void)setRunning:(BOOL)newRunning {
70 if (running != newRunning) {
71 running = newRunning;
72 if (running)
73 [self trigger];
74 else
75 [self untrigger];
76 }
77 }
78
79
80 @end