-
Notifications
You must be signed in to change notification settings - Fork 13
/
Variable.h
107 lines (81 loc) · 2.62 KB
/
Variable.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
* The Cheat - The legendary universal game trainer for Mac OS X.
* http://www.brokenzipper.com/trac/wiki/TheCheat
*
* Copyright (c) 2003-2011, Charles McGarvey et al.
*
* Distributable under the terms and conditions of the 2-clause BSD
* license; see the file COPYING for the legal text of the license.
*/
#import <Cocoa/Cocoa.h>
#import "CheaterTypes.h"
#import "Process.h"
#include <string.h>
#define TC_MAX_VAR_SIZE (256)
@interface Variable : NSObject < NSCoding >
{
TCAddress _address;
BOOL _isValueValid;
BOOL _enabled;
#if MAC_OS_X_VERSION_10_5 <= MAC_OS_X_VERSION_MAX_ALLOWED
NSInteger _tag;
#else
int _tag;
#endif
Process *process;
@public;
// use the accessor methods unless you need fast access
// do not change these variables directly or things will be screwed.
TCVariableType _type;
TCIntegerSign _integerSign;
#if MAC_OS_X_VERSION_10_5 <= MAC_OS_X_VERSION_MAX_ALLOWED
NSUInteger _size;
#else
unsigned int _size;
#endif
void *_value;
BOOL _isEmulated;
}
// #############################################################################
#pragma mark Initialization
// #############################################################################
// type and sign can't be changed once variable is created.
- (id)init; // default: TCInt32
- (id)initWithType:(TCVariableType)type; // default: TCSigned
- (id)initWithType:(TCVariableType)type integerSign:(TCIntegerSign)sign;
- (void)setProcess:(Process *)process;
- (Process *)process;
- (BOOL)isEmulated;
// #############################################################################
#pragma mark NSCoding
// #############################################################################
- (id)initWithCoder:(NSCoder *)coder;
- (void)encodeWithCoder:(NSCoder *)coder;
// #############################################################################
#pragma mark Accessors
// #############################################################################
- (TCVariableType)type;
- (TCIntegerSign)integerSign;
- (NSString *)typeString;
- (TCAddress)address;
- (void)setAddress:(TCAddress)addr;
- (NSString *)addressString;
- (BOOL)setAddressString:(NSString *)string;
- (void const *)value;
- (void)setValue:(void const *)value;
- (void)setValue:(void const *)value size:(unsigned)size;
- (NSString *)stringValue;
- (BOOL)setStringValue:(NSString *)value;
void bigEndianValue(void *buffer, Variable *variable);
- (unsigned)valueSize;
- (BOOL)isValueValid;
- (BOOL)isEnabled;
- (void)setEnabled:(BOOL)enabled;
#if MAC_OS_X_VERSION_10_5 <= MAC_OS_X_VERSION_MAX_ALLOWED
- (NSInteger)tag;
- (void)setTag:(NSInteger)tag;
#else
- (int)tag;
- (void)setTag:(int)tag;
#endif
@end