X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=Variable.m;h=4630ad02c614ceb44d34336e499a212a2c78d78e;hb=refs%2Fheads%2Fyishen;hp=7aa371cf6e54b720da8e30320a69535a348a467b;hpb=179538478d0db2e5f8f2b50ccb3ff889b474aa01;p=chaz%2Fthecheat diff --git a/Variable.m b/Variable.m index 7aa371c..4630ad0 100644 --- a/Variable.m +++ b/Variable.m @@ -1,22 +1,13 @@ -// ********************************************************************** -// 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. -// +/* + * 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 "Variable.h" @@ -274,7 +265,8 @@ - (NSString *)addressString { - return [NSString stringWithFormat:@"%0.8X", _address]; +// return [NSString stringWithFormat:@"%0.8X", _address]; + return [NSString stringWithFormat:(_address & 0xffffffff00000000ULL) ? @"%0.16qX": @"%0.8X", _address]; } - (BOOL)setAddressString:(NSString *)string @@ -282,7 +274,7 @@ NSScanner *scanner = [NSScanner scannerWithString:string]; TCAddress address; - if ( [scanner scanHexInt:(unsigned *)(&address)] ) { + if ( [scanner scanHexLongLong:(unsigned long long *)(&address)] ) { [self setAddress:address]; return YES; } @@ -328,7 +320,7 @@ switch ( _type ) { case TCDouble: return [NSString stringWithFormat:@"%.1lf", *(double *)[self value]]; case TCFloat: return [NSString stringWithFormat:@"%.1f", *(float *)[self value]]; - case TCString: return [NSString stringWithCString:[self value] length:[self valueSize]]; + case TCString: return [[[NSString alloc] initWithBytes:[self value] length:[self valueSize] encoding:NSUTF8StringEncoding] autorelease]; } if ( _integerSign == TCUnsigned ) { switch ( _type ) { @@ -368,7 +360,10 @@ case TCInt32: { SInt32 value; - if ( [scanner scanInt:(int *)(&value)] ) { +// if ( [scanner scanInt:(int *)(&value)] ) { + int integer; + if ( [scanner scanInt:&integer] ) { + value = integer; [self setValue:&value]; } break; @@ -395,7 +390,7 @@ } case TCString: { - char *str = (char *)[string lossyCString]; + char *str = (char *)[string cStringUsingEncoding:NSUTF8StringEncoding]; unsigned len = strlen( str ); [self setValue:str size:len]; break; @@ -475,13 +470,13 @@ void bigEndianValue(void *buffer, Variable *variable) _enabled = enabled; } - -- (int)tag +- (NSInteger)tag { return _tag; } -- (void)setTag:(int)tag + +- (void)setTag:(NSInteger)tag { _tag = tag; }