X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=Variable.h;fp=Variable.h;h=fc3d83b9b73b449b94d44102d95ef3320256bb37;hp=0000000000000000000000000000000000000000;hb=d27548f80fe411fda2ee69c74a24eab4292267e9;hpb=e8d51183acdd2410a38dcf8f0efbf7c30cd6c581 diff --git a/Variable.h b/Variable.h new file mode 100644 index 0000000..fc3d83b --- /dev/null +++ b/Variable.h @@ -0,0 +1,93 @@ + +// ********************************************************************** +// The Cheat - A universal game cheater for Mac OS X +// (C) 2003-2005 Chaz McGarvey (BrokenZipper) +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 1, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#import + +#import "CheaterTypes.h" + +#include + + +#define TC_MAX_VAR_SIZE (256) + + +@interface Variable : NSObject < NSCoding > +{ + TCAddress _address; + BOOL _isValueValid; + BOOL _enabled; + + int _tag; + + @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; + unsigned _size; + void *_value; +} + +// ############################################################################# +#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; + +// ############################################################################# +#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; + +- (unsigned)valueSize; +- (BOOL)isValueValid; + +- (BOOL)isEnabled; +- (void)setEnabled:(BOOL)enabled; + +- (int)tag; +- (void)setTag:(int)tag; + +@end