From: Charles McGarvey Date: Fri, 19 Mar 2004 19:00:00 +0000 (-0700) Subject: The Cheat 1.1.2 X-Git-Tag: v1.1.2 X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=commitdiff_plain;h=e8d51183acdd2410a38dcf8f0efbf7c30cd6c581 The Cheat 1.1.2 Bug Fixes: - Crash when trying to display more results than there are. Other Changes: - Internal improvements to the status displayer. - Internal modifications to the document system. - Quitting the target is now reported through status, not by sheets. --- diff --git a/AboutBoxController.h b/AboutBoxController.h index 05f4e5d..d932f59 100644 --- a/AboutBoxController.h +++ b/AboutBoxController.h @@ -8,7 +8,8 @@ // Copyright: 2003 Chaz McGarvey. All rights reserved. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#import +#import +#import @interface AboutBoxController : NSWindowController diff --git a/AboutBoxController.m b/AboutBoxController.m index e499ef8..6211a41 100644 --- a/AboutBoxController.m +++ b/AboutBoxController.m @@ -12,8 +12,6 @@ #include "cheat_shared.h" -#import - @implementation AboutBoxController diff --git a/AppController.h b/AppController.h index db42eed..af9c654 100644 --- a/AppController.h +++ b/AppController.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #import "PreferenceControlling.h" #import "NetTrafficControlling.h" @@ -49,6 +50,8 @@ - (void)broadcastWithName:(NSString *)name; - (void)stopBroadcast; +- (IBAction)newSessionWindow:(id)sender; + - (IBAction)showAboutBoxWindow:(id)sender; - (IBAction)showPreferenceWindow:(id)sender; - (IBAction)showNetTrafficWindow:(id)sender; diff --git a/AppController.m b/AppController.m index acd33b8..af247bd 100644 --- a/AppController.m +++ b/AppController.m @@ -12,6 +12,7 @@ #include "cheat_shared.h" +#import "SessionController.h" #import "AboutBoxController.h" #import "PreferenceController.h" #import "NetTrafficController.h" @@ -21,16 +22,25 @@ #import "ServerHolder.h" -#import - @implementation AppController + +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Initialization +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ + + + (void)initialize { NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; char temp[104]; + // set up logging +//#ifndef TC_SHOW_LOGS + CMLogDisable(); +//#endif + // change the socket path to reside in the home directory of the current user strncpy( temp, [NSHomeDirectory() lossyCString], 103 ); strncat( temp, TCDefaultListenPath, 103 - strlen(TCDefaultListenPath) ); @@ -78,14 +88,50 @@ } +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [self stopListener]; + [self stopBroadcast]; + + [servers release]; + + [browser release]; + [serverList release]; + + [super dealloc]; +} + + +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark NSApplication Delegate +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ + + - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { if ( TCGlobalUpdateCheck ) { [CMUpdateCheck checkWithURL:@"http://www.brokenzipper.com/software.plist" verbose:NO]; } + + [self newSessionWindow:self]; } +- (void)applicationDidBecomeActive:(NSNotification *)aNotification +{ + /*if ( TCGlobalSessionCount == 0 ) + { + [self newSessionWindow:self]; + }*/ +} + + +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Server Starting/Stopping +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ + - (void)listenOnPort:(int)port remote:(BOOL)remote { @@ -130,6 +176,16 @@ } +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Interface Activation +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ + + +- (IBAction)newSessionWindow:(id)sender +{ + [[[SessionController alloc] init] showWindow:self]; +} + - (IBAction)showAboutBoxWindow:(id)sender { if ( !aboutBoxController ) @@ -190,25 +246,9 @@ } -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - [self stopListener]; - [self stopBroadcast]; - - [servers release]; - - [browser release]; - [serverList release]; - - [super dealloc]; -} - - -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% PreferenceControlling -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Controlling Preferences +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (void)preferenceSetWindowsOnTop:(BOOL)windowsOnTop @@ -276,9 +316,9 @@ */ -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% NetTrafficControlling -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Controlling NetTraffic +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (int)netTrafficConnectionCount @@ -293,15 +333,15 @@ - (void)netTrafficKillConnection:(int)index { - NSLog( @"kill connection" ); + CMLog( @"kill connection" ); close( [[servers objectAtIndex:index] sockfd] ); } -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% ListenerDelegate -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Controlling Listener +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (void)listenerListeningWithSocket:(int)sock @@ -339,9 +379,9 @@ } -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% ServerDelegate -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark Controlling Server +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (void)server:(CheatServer *)server connectedWithSocket:(int)sock @@ -419,20 +459,20 @@ } -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% NetService Delegate -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark NetService Delegate +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (void)netServiceWillPublish:(NSNetService *)sender { - NSLog( @"service will publish" ); + CMLog( @"service will publish" ); [sender resolve]; } - (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict { - NSLog( @"service did not publish" ); + CMLog( @"service did not publish" ); if ( [[errorDict objectForKey:@"NSNetServicesErrorCode"] intValue] == NSNetServicesCollisionError ) { @@ -446,14 +486,14 @@ - (void)netServiceDidStop:(NSNetService *)sender { - NSLog( @"service stopped" ); + CMLog( @"service stopped" ); [sender release]; } -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% NSNetServiceBrowser Delegate -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +#pragma mark NetServiceBrowser Delegate +/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - (void)netServiceBrowser:(NSNetServiceBrowser *)browser didFindService:(NSNetService *)aService moreComing:(BOOL)more @@ -483,7 +523,7 @@ } [serverList addObject:aService]; - NSLog( @"server added: %i", [serverList count] ); + CMLog( @"server added: %i", [serverList count] ); [[NSNotificationCenter defaultCenter] postNotificationName:@"TCServerFound" object:aService]; } @@ -497,7 +537,7 @@ if ( [[aService name] isEqualToString:[(NSNetService *)[serverList objectAtIndex:i] name]] ) { [serverList removeObjectAtIndex:i]; - NSLog( @"server deleted: %i", [serverList count] ); + CMLog( @"server deleted: %i", [serverList count] ); break; } } diff --git a/CheatClient.h b/CheatClient.h index 553e238..227fcb6 100644 --- a/CheatClient.h +++ b/CheatClient.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #include "cheat_types.h" #include "cheat_globals.h" diff --git a/CheatClient.m b/CheatClient.m index a4ebd97..dac94e2 100644 --- a/CheatClient.m +++ b/CheatClient.m @@ -10,7 +10,7 @@ #import "CheatClient.h" -#import "MyDocument.h" +#import "SessionController.h" @implementation CheatClient @@ -65,7 +65,7 @@ if ( (sockfd = socket( identifier.sa_family, SOCK_STREAM, 0 )) == -1 ) { - NSLog( @"ERROR: socket() failed" ); + CMLog( @"ERROR: socket() failed" ); [rootProxy clientError:@"Network Error" message:@"Attempt to connect to server failed."]; return; } @@ -80,7 +80,7 @@ { close( sockfd ); - NSLog( @"ERROR: connect() failed" ); + CMLog( @"ERROR: connect() failed" ); [rootProxy clientError:@"Network Error" message:@"Attempt to connect to server failed."]; return; } @@ -95,7 +95,7 @@ { close( sockfd ); - NSLog( @"ERROR: connect() failed" ); + CMLog( @"ERROR: connect() failed" ); [rootProxy clientError:@"Network Error" message:@"Attempt to connect to server failed."]; return; } @@ -115,11 +115,11 @@ if ( sockfd == -1 ) { - NSLog( @"ERROR: can't run when not connected" ); + CMLog( @"ERROR: can't run when not connected" ); return; } - NSLog( @"CLIENT start" ); + CMLog( @"CLIENT start" ); for (;;) { @@ -127,7 +127,7 @@ { if ( result != 0 && result != -1 ) { - NSLog( @"ERROR: incomplete header received" ); + CMLog( @"ERROR: incomplete header received" ); close( sockfd ); break; } @@ -137,25 +137,25 @@ if ( !VerifyChecksum( header.checksum ) ) { - NSLog( @"ERROR: checksum verification failed" ); + CMLog( @"ERROR: checksum verification failed" ); close( sockfd ); break; } - //NSLog( @"CLIENT message %i/%i/%i", header.checksum, header.function, header.size ); + //CMLog( @"CLIENT message %i/%i/%i", header.checksum, header.function, header.size ); if ( header.size != 0 ) { if ( (bytes = (char *)malloc( header.size )) == NULL ) { - NSLog( @"ERROR: failed to allocate buffer for reading a network packet" ); + CMLog( @"ERROR: failed to allocate buffer for reading a network packet" ); close( sockfd ); break; } if ( (result = ReadBuffer( sockfd, bytes, header.size )) != header.size ) { - NSLog( @"ERROR: failed to read the data of a network packet; only read %i bytes out of %i", result, header.size ); + CMLog( @"ERROR: failed to read the data of a network packet; only read %i bytes out of %i", result, header.size ); free( bytes ); close( sockfd ); break; @@ -223,7 +223,7 @@ [rootProxy clientDisconnected]; - NSLog( @"CLIENT close" ); + CMLog( @"CLIENT close" ); } diff --git a/CheatListener.h b/CheatListener.h index 78b4bed..e2a3d66 100644 --- a/CheatListener.h +++ b/CheatListener.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #import "ListenerDelegate.h" diff --git a/CheatListener.m b/CheatListener.m index 40c4eb0..1f3869e 100644 --- a/CheatListener.m +++ b/CheatListener.m @@ -68,7 +68,7 @@ if ( (sockfd = socket( family, SOCK_STREAM, 0 )) == -1 ) { - NSLog( @"ERROR: failed to start server because socket() failed" ); + CMLog( @"ERROR: failed to start server because socket() failed" ); [rootProxy listenerError:@"Network Error" message:@"Server couldn't start. Local can't be cheated."]; return; } @@ -83,14 +83,14 @@ if ( setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int) ) == -1 ) { - NSLog( @"ERROR: failed to start server because setsockopt() failed" ); + CMLog( @"ERROR: failed to start server because setsockopt() failed" ); [rootProxy listenerError:@"Network Error" message:@"Server couldn't start. Local can't be cheated."]; return; } if ( bind( sockfd, (struct sockaddr *)(&addr), sizeof(struct sockaddr) ) == -1 ) { - NSLog( @"ERROR: failed to start server because bind() failed" ); + CMLog( @"ERROR: failed to start server because bind() failed" ); [rootProxy listenerError:@"Network Error" message:@"The cheat server could not start, probably because the port is already in use. Local can not be cheated."]; return; } @@ -106,7 +106,7 @@ if ( bind( sockfd, (struct sockaddr *)(&addr), sizeof(addr) ) == -1 ) { - NSLog( @"ERROR: failed to start server because bind() failed" ); + CMLog( @"ERROR: failed to start server because bind() failed" ); [rootProxy listenerError:@"Network Error" message:@"The cheat server could not start, probably because the path is already in use. Local can not be cheated."]; return; } @@ -114,7 +114,7 @@ if ( listen( sockfd, 50 ) == -1 ) { - NSLog( @"ERROR: failed to start server because listen() failed" ); + CMLog( @"ERROR: failed to start server because listen() failed" ); [rootProxy listenerError:@"Network Error" message:@"Server couldn't start. Local can't be cheated."]; return; } @@ -128,7 +128,7 @@ { int result; - NSLog( @"LISTENER start" ); + CMLog( @"LISTENER start" ); if ( listenRemote ) { @@ -165,7 +165,7 @@ } } - NSLog( @"LISTENER close" ); + CMLog( @"LISTENER close" ); [rootProxy listenerDisconnected]; } diff --git a/CheatServer.h b/CheatServer.h index ad0c12a..92e602c 100644 --- a/CheatServer.h +++ b/CheatServer.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #import "ServerDelegate.h" @@ -41,7 +42,7 @@ NSMutableArray *searchResults; NSMutableArray *searchResultsUndone; - int maxSearchResultsAmount; + int searchResultsAmountDisplayed; } + (NSConnection *)serverWithDelegate:(id)delegate socket:(int)sock; diff --git a/CheatServer.m b/CheatServer.m index dd1c868..04cbdd9 100644 --- a/CheatServer.m +++ b/CheatServer.m @@ -93,7 +93,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( getpeername( sockfd, &identifier, &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } if ( identifier.sa_family == AF_INET ) @@ -104,12 +104,12 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( getpeername( sockfd, (struct sockaddr *)(&addr), &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } if ( (addressCString = inet_ntoa( addr.sin_addr )) == NULL ) { - NSLog( @"ERROR: inet_ntoa() failed" ); + CMLog( @"ERROR: inet_ntoa() failed" ); } address = [NSString stringWithCString:addressCString]; @@ -122,10 +122,10 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( getpeername( sockfd, (struct sockaddr *)(&addr), &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } - NSLog( @"client connection: %s", addr.sun_path ); + CMLog( @"client connection: %s", addr.sun_path ); address = [NSString stringWithString:@"127.0.0.1"]; } @@ -156,7 +156,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); numfds = sockfd + 1; - NSLog( @"SERVER start" ); + CMLog( @"SERVER start" ); for (;;) { @@ -173,26 +173,26 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( !VerifyChecksum( header.checksum ) ) { - NSLog( @"checksum failed" ); + CMLog( @"checksum failed" ); } if ( header.size != 0 ) { if ( (data = (char *)malloc( header.size )) == NULL ) { - NSLog( @"failed to allocate buffer for reading a network packet" ); + CMLog( @"failed to allocate buffer for reading a network packet" ); break; } if ( (result = ReadBuffer( sockfd, data, header.size )) != header.size ) { - NSLog( @"failed to read the data of a network packet" ); + CMLog( @"failed to read the data of a network packet" ); free( data ); break; } } - //NSLog( @"SERVER message %i/%i/%i", header.checksum, header.function, header.size ); + //CMLog( @"SERVER message %i/%i/%i", header.checksum, header.function, header.size ); switch ( header.function ) { @@ -239,7 +239,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); close( sockfd ); - NSLog( @"SERVER close" ); + CMLog( @"SERVER close" ); [rootProxy serverDisconnected:self]; } @@ -284,7 +284,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -296,7 +296,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -307,7 +307,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -333,7 +333,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerChar:(int8_t)value @@ -358,7 +358,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -370,7 +370,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -381,7 +381,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + TCAddressSize*dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -403,7 +403,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerShort:(int16_t)value @@ -428,7 +428,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -440,7 +440,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -451,7 +451,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + 2*dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -473,7 +473,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_16_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerLong:(int32_t)value @@ -498,7 +498,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = malloc_get_all_zones( processTask, NULL, &zones, &zone_count )) != KERN_SUCCESS ) { - NSLog( @"malloc_get_all_zones error: %i", result ); + CMLog( @"malloc_get_all_zones error: %i", result ); } else { @@ -508,7 +508,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); for ( i = 0; i < 10; i++ ) { - NSLog( @"malloc_get_all_zones[%i] = %X", i, (vm_address_t)zones[i] ); + CMLog( @"malloc_get_all_zones[%i] = %X", i, (vm_address_t)zones[i] ); } }*/ @@ -518,7 +518,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -528,11 +528,11 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); data = (int32_t *)malloc( size ); dataLength = size; - //NSLog( @"address: %.8X size: %i", address, size ); + //CMLog( @"address: %.8X size: %i", address, size ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -543,7 +543,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -565,7 +565,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchDecimalFloat:(float)value @@ -590,7 +590,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -602,7 +602,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -613,7 +613,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -635,7 +635,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchDecimalDouble:(double)value @@ -654,7 +654,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); TCaddress *results = NULL; int resultsAmount = 0; - NSLog( @"float search" ); + CMLog( @"float search" ); for (;;) { @@ -662,7 +662,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -674,7 +674,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -685,7 +685,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -707,7 +707,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_64_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } @@ -733,7 +733,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (data = (char *)malloc( vsize )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -741,7 +741,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; free( data ); @@ -765,7 +765,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -776,7 +776,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); free( data ); - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerChar:(int8_t)value @@ -801,7 +801,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -824,7 +824,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -833,7 +833,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerShort:(int16_t)value @@ -858,7 +858,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -881,7 +881,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -890,7 +890,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_16_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerLong:(int32_t)value @@ -915,7 +915,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -938,7 +938,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -947,7 +947,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchDecimalFloat:(float)value @@ -972,7 +972,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -995,7 +995,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -1004,7 +1004,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchDecimalDouble:(double)value @@ -1029,7 +1029,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -1052,7 +1052,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -1061,7 +1061,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_64_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } @@ -1218,7 +1218,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendProcessList failed" ); + CMLog( @"sendProcessList failed" ); return; } @@ -1240,7 +1240,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendProcessList failed" ); + CMLog( @"sendProcessList failed" ); } free( buffer ); @@ -1258,7 +1258,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendSearchFinished failed" ); + CMLog( @"sendSearchFinished failed" ); } } @@ -1267,19 +1267,21 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); PacketHeader header; int length; int lengthAfter; + int displayAmount = ( searchResultsAmountDisplayed > amount )? amount : searchResultsAmountDisplayed; + int resultsLength = TCAddressSize * displayAmount; char *buffer, *ptr; header.checksum = RandomChecksum(); header.function = 7; - header.size = sizeof(amount) + sizeof(maxSearchResultsAmount) + TCAddressSize*maxSearchResultsAmount; - // AMOUNT MAX AMOUNT DATA + header.size = sizeof(amount) + sizeof(displayAmount) + resultsLength; + // AMOUNT DISPLAY AMOUNT DATA lengthAfter = length = header.size + sizeof(header); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendVariableList:amount: failed" ); + CMLog( @"sendVariableList:amount: failed" ); return; } @@ -1287,15 +1289,17 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); COPY_TO_BUFFER( ptr, &header, sizeof(header) ); COPY_TO_BUFFER( ptr, &amount, sizeof(amount) ); - COPY_TO_BUFFER( ptr, &maxSearchResultsAmount, sizeof(maxSearchResultsAmount) ); - COPY_TO_BUFFER( ptr, data, TCAddressSize*maxSearchResultsAmount ); + COPY_TO_BUFFER( ptr, &displayAmount, sizeof(displayAmount) ); + COPY_TO_BUFFER( ptr, data, resultsLength ); if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length ) { - NSLog( @"sendVariableList:amount: failed" ); + CMLog( @"sendVariableList:amount: failed" ); } free( buffer ); + + CMLog( @"SERVER sending %i out of %i results", displayAmount, amount ); } - (void)sendChangeFinished @@ -1309,7 +1313,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendChangeFinished failed" ); + CMLog( @"sendChangeFinished failed" ); } } @@ -1332,7 +1336,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendError:fatal: failed" ); + CMLog( @"sendError:fatal: failed" ); return; } @@ -1344,7 +1348,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length ) { - NSLog( @"sendError:fatal: failed" ); + CMLog( @"sendError:fatal: failed" ); } free( buffer ); @@ -1366,7 +1370,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendUndoFinished failed" ); + CMLog( @"sendUndoFinished failed" ); } } @@ -1381,7 +1385,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendRedoFinished failed" ); + CMLog( @"sendRedoFinished failed" ); } } @@ -1404,7 +1408,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendSetTargetPID: failed" ); + CMLog( @"sendSetTargetPID: failed" ); } ptr = buffer; @@ -1415,7 +1419,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendUndoRedoStatus: failed" ); + CMLog( @"sendUndoRedoStatus: failed" ); } free( buffer ); @@ -1445,7 +1449,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendAppLaunched: failed" ); + CMLog( @"sendAppLaunched: failed" ); return; } @@ -1460,7 +1464,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendAppLaunched: failed" ); + CMLog( @"sendAppLaunched: failed" ); } free( buffer ); @@ -1490,7 +1494,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendAppQuit: failed" ); + CMLog( @"sendAppQuit: failed" ); return; } @@ -1504,7 +1508,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendAppQuit: failed" ); + CMLog( @"sendAppQuit: failed" ); } free( buffer ); @@ -1521,7 +1525,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendTargetAppQuit failed" ); + CMLog( @"sendTargetAppQuit failed" ); } } @@ -1544,7 +1548,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendPauseFinished: failed" ); + CMLog( @"sendPauseFinished: failed" ); return; } @@ -1558,7 +1562,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendPauseFinished: failed" ); + CMLog( @"sendPauseFinished: failed" ); } free( buffer ); @@ -1585,7 +1589,8 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); COPY_FROM_BUFFER( &type, ptr, sizeof(type) ); COPY_FROM_BUFFER( &size, ptr, sizeof(size) ); - COPY_FROM_BUFFER( &maxSearchResultsAmount, ptr, sizeof(maxSearchResultsAmount) ); + // receive the amount of results to return + COPY_FROM_BUFFER( &searchResultsAmountDisplayed, ptr, sizeof(searchResultsAmountDisplayed) ); if ( ![searchResults lastObject] ) { @@ -1875,21 +1880,21 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; [self sendError:@"Could not pause target because of an unknown error." fatal:NO]; } } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; [self sendError:@"Could not pause target because of an unknown error." fatal:NO]; } } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; switch ( errno ) @@ -2010,7 +2015,7 @@ int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); if ( (result = task_for_pid( current_task(), processID, &processTask)) != KERN_SUCCESS ) { - NSLog( @"task_for_pid returned error: %i", result ); + CMLog( @"task_for_pid returned error: %i", result ); } } diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings index 2db152c..315ce00 100644 Binary files a/English.lproj/InfoPlist.strings and b/English.lproj/InfoPlist.strings differ diff --git a/English.lproj/MainMenu.nib/classes.nib b/English.lproj/MainMenu.nib/classes.nib index 331fb3a..a30170a 100644 --- a/English.lproj/MainMenu.nib/classes.nib +++ b/English.lproj/MainMenu.nib/classes.nib @@ -6,6 +6,7 @@ launchEmailMenu = id; launchHelpFile = id; launchWebsiteMenu = id; + newSessionWindow = id; showAboutBoxWindow = id; showNetTrafficWindow = id; showPreferenceWindow = id; diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 46a09cb..9ef368d 100644 Binary files a/English.lproj/MainMenu.nib/keyedobjects.nib and b/English.lproj/MainMenu.nib/keyedobjects.nib differ diff --git a/English.lproj/MainMenu.nib/objects.nib b/English.lproj/MainMenu.nib/objects.nib index bb4317d..2d16e82 100644 Binary files a/English.lproj/MainMenu.nib/objects.nib and b/English.lproj/MainMenu.nib/objects.nib differ diff --git a/English.lproj/MainMenu~.nib/classes.nib b/English.lproj/MainMenu~.nib/classes.nib index df3e57d..a30170a 100644 --- a/English.lproj/MainMenu~.nib/classes.nib +++ b/English.lproj/MainMenu~.nib/classes.nib @@ -3,8 +3,10 @@ { ACTIONS = { checkForUpdate = id; + launchEmailMenu = id; launchHelpFile = id; launchWebsiteMenu = id; + newSessionWindow = id; showAboutBoxWindow = id; showNetTrafficWindow = id; showPreferenceWindow = id; diff --git a/English.lproj/MainMenu~.nib/keyedobjects.nib b/English.lproj/MainMenu~.nib/keyedobjects.nib index 76e0352..88943c6 100644 Binary files a/English.lproj/MainMenu~.nib/keyedobjects.nib and b/English.lproj/MainMenu~.nib/keyedobjects.nib differ diff --git a/English.lproj/MainMenu~.nib/objects.nib b/English.lproj/MainMenu~.nib/objects.nib index b3ba7f2..7dc1307 100644 Binary files a/English.lproj/MainMenu~.nib/objects.nib and b/English.lproj/MainMenu~.nib/objects.nib differ diff --git a/English.lproj/Record.nib/classes.nib b/English.lproj/Record.nib/classes.nib new file mode 100644 index 0000000..b9b4b09 --- /dev/null +++ b/English.lproj/Record.nib/classes.nib @@ -0,0 +1,4 @@ +{ + IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); + IBVersion = 1; +} \ No newline at end of file diff --git a/English.lproj/Record.nib/info.nib b/English.lproj/Record.nib/info.nib new file mode 100644 index 0000000..036e61d --- /dev/null +++ b/English.lproj/Record.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 98 99 356 240 0 0 1280 1002 + IBFramework Version + 349.0 + IBOpenObjects + + 6 + + IBSystem Version + 7D24 + + diff --git a/English.lproj/Record.nib/keyedobjects.nib b/English.lproj/Record.nib/keyedobjects.nib new file mode 100644 index 0000000..5c01280 Binary files /dev/null and b/English.lproj/Record.nib/keyedobjects.nib differ diff --git a/English.lproj/Record~.nib/classes.nib b/English.lproj/Record~.nib/classes.nib new file mode 100644 index 0000000..b9b4b09 --- /dev/null +++ b/English.lproj/Record~.nib/classes.nib @@ -0,0 +1,4 @@ +{ + IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); + IBVersion = 1; +} \ No newline at end of file diff --git a/English.lproj/Record~.nib/info.nib b/English.lproj/Record~.nib/info.nib new file mode 100644 index 0000000..036e61d --- /dev/null +++ b/English.lproj/Record~.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 98 99 356 240 0 0 1280 1002 + IBFramework Version + 349.0 + IBOpenObjects + + 6 + + IBSystem Version + 7D24 + + diff --git a/English.lproj/Record~.nib/keyedobjects.nib b/English.lproj/Record~.nib/keyedobjects.nib new file mode 100644 index 0000000..5c50428 Binary files /dev/null and b/English.lproj/Record~.nib/keyedobjects.nib differ diff --git a/English.lproj/Session.nib/classes.nib b/English.lproj/Session.nib/classes.nib new file mode 100644 index 0000000..72ac787 --- /dev/null +++ b/English.lproj/Session.nib/classes.nib @@ -0,0 +1,58 @@ +{ + IBClasses = ( + {CLASS = CMStatusView; LANGUAGE = ObjC; SUPERCLASS = NSTextField; }, + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = { + cancelButton = id; + changeButton = id; + clearSearchButton = id; + okButton = id; + pauseButton = id; + processMenuItem = id; + recurringChangeButton = id; + redoMenu = id; + searchButton = id; + serverMenuDisconnect = id; + serverMenuItem = id; + serverMenuLocal = id; + sizePopup = id; + typePopup = id; + undoMenu = id; + }; + CLASS = MyDocument; + LANGUAGE = ObjC; + OUTLETS = { + addressTable = NSTableView; + cancelButton = NSButton; + changeButton = NSButton; + changeSecondsCombo = NSComboBox; + changeSheet = NSWindow; + changeTextField = NSTextField; + cheatWindow = NSWindow; + clearSearchButton = NSButton; + decimalSizeMenu = NSMenu; + descriptionText = NSTextField; + integerSizeMenu = NSMenu; + okButton = NSButton; + pauseButton = NSButton; + processMenu = NSMenu; + processPopup = NSPopUpButton; + recurringChangeButton = NSButton; + searchButton = NSButton; + searchRadioMatrix = NSMatrix; + searchTextField = NSTextField; + serverMenu = NSMenu; + serverPopup = NSPopUpButton; + sizePopup = NSPopUpButton; + statusBar = NSProgressIndicator; + statusText = NSTextField; + stringSizeMenu = NSMenu; + typeMenu = NSMenu; + typePopup = NSPopUpButton; + }; + SUPERCLASS = NSDocument; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/English.lproj/Session.nib/info.nib b/English.lproj/Session.nib/info.nib new file mode 100644 index 0000000..5268009 --- /dev/null +++ b/English.lproj/Session.nib/info.nib @@ -0,0 +1,39 @@ + + + + + IBDocumentLocation + 294 88 356 407 0 0 1280 1002 + IBEditorPositions + + 143 + 402 411 86 87 0 0 1280 1002 + 192 + 272 343 101 49 0 0 1280 1002 + 207 + 376 382 134 49 0 0 1280 1002 + 400 + 202 287 69 87 0 0 1280 1002 + 405 + 264 308 79 68 0 0 1280 1002 + 410 + 509 326 69 49 0 0 1280 1002 + 735 + 499 516 296 322 0 0 1280 1002 + + IBFramework Version + 349.0 + IBLockedObjects + + 285 + + IBOldestOS + 2 + IBOpenObjects + + 285 + + IBSystem Version + 7F44 + + diff --git a/English.lproj/Session.nib/keyedobjects.nib b/English.lproj/Session.nib/keyedobjects.nib new file mode 100644 index 0000000..4426d8a Binary files /dev/null and b/English.lproj/Session.nib/keyedobjects.nib differ diff --git a/English.lproj/Session.nib/objects.nib b/English.lproj/Session.nib/objects.nib new file mode 100644 index 0000000..3e639c8 Binary files /dev/null and b/English.lproj/Session.nib/objects.nib differ diff --git a/English.lproj/MyDocument.nib/classes.nib b/English.lproj/Session~.nib/classes.nib similarity index 100% rename from English.lproj/MyDocument.nib/classes.nib rename to English.lproj/Session~.nib/classes.nib diff --git a/English.lproj/MyDocument.nib/info.nib b/English.lproj/Session~.nib/info.nib similarity index 100% rename from English.lproj/MyDocument.nib/info.nib rename to English.lproj/Session~.nib/info.nib diff --git a/English.lproj/MyDocument.nib/keyedobjects.nib b/English.lproj/Session~.nib/keyedobjects.nib similarity index 100% rename from English.lproj/MyDocument.nib/keyedobjects.nib rename to English.lproj/Session~.nib/keyedobjects.nib diff --git a/English.lproj/MyDocument.nib/objects.nib b/English.lproj/Session~.nib/objects.nib similarity index 100% rename from English.lproj/MyDocument.nib/objects.nib rename to English.lproj/Session~.nib/objects.nib diff --git a/Info-The_Cheat.plist b/Info-The_Cheat.plist index 60bd6dc..4f0df19 100644 --- a/Info-The_Cheat.plist +++ b/Info-The_Cheat.plist @@ -7,18 +7,26 @@ CFBundleDocumentTypes + CFBundleTypeExtensions + + cheat + + CFBundleTypeIconFile + icondoc.icns CFBundleTypeName - The Cheat + Cheat Document + CFBundleTypeOSTypes + + ThCh + CFBundleTypeRole Editor - NSDocumentClass - MyDocument CFBundleExecutable The Cheat CFBundleGetInfoString - The Cheat 1.1.1 + The Cheat 1.1.2 CFBundleIconFile icon.icns CFBundleIdentifier @@ -30,7 +38,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.1.1 + 1.1.2 CFBundleSignature ThCh NSMainNibFile diff --git a/NetTrafficController.h b/NetTrafficController.h index fb7a116..d356904 100644 --- a/NetTrafficController.h +++ b/NetTrafficController.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #import "NetTrafficControlling.h" diff --git a/PreferenceController.h b/PreferenceController.h index d7dada7..6b42051 100644 --- a/PreferenceController.h +++ b/PreferenceController.h @@ -9,6 +9,7 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #import "PreferenceControlling.h" diff --git a/Read Me.rtf b/Read Me.rtf index e15a74e..9377d54 100644 --- a/Read Me.rtf +++ b/Read Me.rtf @@ -6,12 +6,12 @@ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc \f0\b\fs42 \cf0 The Cheat -\fs24 v1.1.1 +\fs24 v1.1.2 \fs42 \ \fs24 Chaz McGarvey\ -\f1\b0\fs32 March 8, 2004 +\f1\b0\fs32 March 19, 2004 \f0\b\fs24 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qj @@ -54,7 +54,7 @@ That said, The Cheat does support a feature called remote cheating. This allows \f0\b So who writes this software? \f1\b0 \ \ -I do. If you need to contact me, my hours are 12 a.m. to 11:59:59 p.m. (yes, I need at least a second off) Monday through Saturday. Get ahold of me if you have questions about the software or if you have bugs to report. There are also resources on my web site (including discussion forums and source code for developers).\ +I do. If you need to contact me, my hours are 12 a.m. to 11:59:59 p.m. (yes, I need at least a second off) Monday through Saturday (and a day). Get ahold of me if you have questions about the software or if you have bugs to report. There are also resources on my web site (including discussion forums and source code for developers).\ \ Web: http://www.brokenzipper.com\ Email: chaz@brokenzipper.com\ @@ -69,7 +69,15 @@ Against my better judgment, yes. Here it is:\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qj -\f4\fs24 \cf0 1.1.1 (03/08/04, public)\ +\f4\fs24 \cf0 1.1.2 (03/19/04, public)\ +Bug Fixes:\ +- Crash when trying to display more results than there are.\ +Other Changes:\ +- Internal improvements to the status displayer.\ +- Internal modifications to the document system.\ +- Quitting the target is now reported through status, not by sheets.\ +\ +1.1.1 (03/08/04, public)\ Bug Fixes:\ - String searches can now be narrowed down (sorry about that).\ \ diff --git a/MyDocument.h b/SessionController.h similarity index 91% rename from MyDocument.h rename to SessionController.h index 352874e..178ecfe 100644 --- a/MyDocument.h +++ b/SessionController.h @@ -2,13 +2,14 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Project: The Cheat // -// File: MyDocument.h +// File: SessionController.h // Created: Sun Sep 07 2003 // // Copyright: 2003 Chaz McGarvey. All rights reserved. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #import +#import #include @@ -21,7 +22,7 @@ #include "cheat_net.h" -@interface MyDocument : NSDocument < ClientDelegate > +@interface SessionController : NSWindowController < ClientDelegate > { // allows for easy interface updating TCstatus status, lastStatus; @@ -43,7 +44,7 @@ TCaddress *searchResults; int searchResultsAmount; - int maxSearchResultsAmount; + int searchResultsAmountDisplayed; // to allow for connecting on new document BOOL everConnected; @@ -74,7 +75,7 @@ IBOutlet NSButton *clearSearchButton; IBOutlet NSButton *changeButton; IBOutlet NSTableView *addressTable; - IBOutlet NSTextField *statusText; + IBOutlet CMStatusView *statusText; IBOutlet NSProgressIndicator *statusBar; IBOutlet NSTextField *descriptionText; @@ -112,11 +113,11 @@ - (void)setStatusChangingContinuously; - (void)setStatusUndoing; - (void)setStatusRedoing; -- (void)setStatusToLast; +//- (void)setStatusToLast; -- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds; -- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds color:(NSColor *)color; -- (void)statusTextTimer:(NSTimer *)timer; +//- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds; +//- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds color:(NSColor *)color; +//- (void)statusTextTimer:(NSTimer *)timer; // UPDATE CHANGE SHEET diff --git a/MyDocument.m b/SessionController.m similarity index 91% rename from MyDocument.m rename to SessionController.m index cd8d768..35763fe 100644 --- a/MyDocument.m +++ b/SessionController.m @@ -2,13 +2,13 @@ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Project: The Cheat // -// File: MyDocument.m +// File: SessionController.m // Created: Sun Sep 07 2003 // // Copyright: 2003 Chaz McGarvey. All rights reserved. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#import "MyDocument.h" +#import "SessionController.h" #import "AppController.h" @@ -19,11 +19,11 @@ void TCPlaySound( NSString *name ); -@implementation MyDocument +@implementation SessionController - (id)init { - if ( self = [super init] ) + if ( self = [super initWithWindowNibName:@"Session"] ) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; @@ -48,7 +48,7 @@ void TCPlaySound( NSString *name ); return self; } -- (NSString *)windowNibName +/*- (NSString *)windowNibName { return @"MyDocument"; } @@ -63,10 +63,16 @@ void TCPlaySound( NSString *name ); [super windowControllerDidLoadNib:controller]; [self initialInterfaceSetup]; -} +}*/ +- (void)windowDidLoad +{ + [cheatWindow setTitle:[NSString stringWithFormat:@"The Cheat %i", ++TCGlobalSessionCount]]; + + [self initialInterfaceSetup]; +} -- (void)close +- (void)windowWillClose:(NSNotification *)aNotification { // closing the window will automatically disconnect the client from the server, // but if the application is quitting, the client may not get a chance to exit. @@ -81,7 +87,8 @@ void TCPlaySound( NSString *name ); [statusTextTimer invalidate]; [statusTextTimer release], statusTextTimer = nil; - [super close]; + // we keep track of ourselves so we have to release ourself. + [self release]; } @@ -245,6 +252,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusDisconnected { + if ( status == STATUS_DISCONNECTED ) return; lastStatus = status; status = STATUS_DISCONNECTED; @@ -258,7 +266,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Not Connected" duration:0]; + [statusText addStatus:@"Not Connected" duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar stopAnimation:self]; [addressTable setEnabled:NO]; @@ -270,6 +278,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusConnected { + if ( status == STATUS_CONNECTED ) return; lastStatus = status; status = STATUS_CONNECTED; @@ -282,7 +291,7 @@ void TCPlaySound( NSString *name ); [self updateSearchBoxes]; [self updateSearchButton]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Connected" duration:0]; + [statusText addStatus:@"Connected" duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar stopAnimation:self]; [addressTable setEnabled:NO]; @@ -294,6 +303,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusCheating { + if ( status == STATUS_CHEATING ) return; lastStatus = status; status = STATUS_CHEATING; @@ -306,25 +316,25 @@ void TCPlaySound( NSString *name ); [self updateSearchBoxes]; [self updateSearchButton]; [clearSearchButton setEnabled:YES]; - if ( searchResultsAmount < maxSearchResultsAmount ) + if ( searchResultsAmount <= searchResultsAmountDisplayed ) { if ( searchResultsAmount == 1 ) { - [self setStatusText:[NSString stringWithFormat:@"Results: %i", searchResultsAmount] duration:0 color:[NSColor colorWithCalibratedRed:0.0f green:0.5f blue:0.0f alpha:1.0f]]; + [statusText addStatus:@"One Result" color:[NSColor colorWithCalibratedRed:0.0f green:0.5f blue:0.0f alpha:1.0f] duration:CM_STATUS_FOREVER]; } else if ( searchResultsAmount == 0 ) { - [self setStatusText:[NSString stringWithFormat:@"Results: %i", searchResultsAmount] duration:0 color:[NSColor colorWithCalibratedRed:0.5f green:0.0f blue:0.0f alpha:1.0f]]; + [statusText addStatus:@"No Results" color:[NSColor colorWithCalibratedRed:0.5f green:0.0f blue:0.0f alpha:1.0f] duration:CM_STATUS_FOREVER]; } else { - [self setStatusText:[NSString stringWithFormat:@"Results: %i", searchResultsAmount] duration:0]; + [statusText addStatus:[NSString stringWithFormat:@"Results: %i", searchResultsAmount] duration:CM_STATUS_FOREVER]; } [statusText setToolTip:@""]; } else { - [self setStatusText:[NSString stringWithFormat:@"Results: >%i", maxSearchResultsAmount] duration:0]; + [statusText addStatus:[NSString stringWithFormat:@"Results: >%i", searchResultsAmountDisplayed] duration:CM_STATUS_FOREVER]; [statusText setToolTip:[NSString stringWithFormat:@"Results: %i", searchResultsAmount]]; } [statusBar stopAnimation:self]; @@ -337,6 +347,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusSearching { + if ( status == STATUS_SEARCHING ) return; lastStatus = status; status = STATUS_SEARCHING; @@ -350,7 +361,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Searching..." duration:0]; + [statusText addStatus:@"Searching..." duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar startAnimation:self]; [addressTable setEnabled:NO]; @@ -362,6 +373,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusChanging { + if ( status == STATUS_CHANGING ) return; lastStatus = status; status = STATUS_CHANGING; @@ -387,6 +399,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusChangingLater { + if ( status == STATUS_CHANGING_LATER ) return; lastStatus = status; status = STATUS_CHANGING_LATER; @@ -400,7 +413,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Changing Later..." duration:0]; + [statusText addStatus:@"Changing Later..." duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar startAnimation:self]; [addressTable setEnabled:NO]; @@ -412,6 +425,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusChangingContinuously { + if ( status == STATUS_CHANGING_CONTINUOUSLY ) return; lastStatus = status; status = STATUS_CHANGING_CONTINUOUSLY; @@ -425,7 +439,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Repeating Change..." duration:0]; + [statusText addStatus:@"Repeating Change..." duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar startAnimation:self]; [addressTable setEnabled:NO]; @@ -437,6 +451,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusUndoing { + if ( status == STATUS_UNDOING ) return; lastStatus = status; status = STATUS_UNDOING; @@ -450,7 +465,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Undoing..." duration:0]; + [statusText addStatus:@"Undoing..." duration:CM_STATUS_FOREVER]; [statusBar startAnimation:self]; [addressTable setEnabled:NO]; [changeButton setTitle:@"Change..."]; @@ -461,6 +476,7 @@ void TCPlaySound( NSString *name ); - (void)setStatusRedoing { + if ( status == STATUS_REDOING ) return; lastStatus = status; status = STATUS_REDOING; @@ -474,7 +490,7 @@ void TCPlaySound( NSString *name ); [searchRadioMatrix setEnabled:NO]; [searchButton setEnabled:NO]; [clearSearchButton setEnabled:NO]; - [self setStatusText:@"Redoing..." duration:0]; + [statusText addStatus:@"Redoing..." duration:CM_STATUS_FOREVER]; [statusText setToolTip:@""]; [statusBar startAnimation:self]; [addressTable setEnabled:NO]; @@ -484,7 +500,7 @@ void TCPlaySound( NSString *name ); [[serverMenu itemAtIndex:0] setTitle:@"Disconnect"]; } -- (void)setStatusToLast +/*- (void)setStatusToLast { switch ( lastStatus ) { @@ -524,8 +540,9 @@ void TCPlaySound( NSString *name ); [self setStatusRedoing]; break; } -} +}*/ +/* - (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds { [self setStatusText:msg duration:seconds color:[NSColor blackColor]]; @@ -564,7 +581,7 @@ void TCPlaySound( NSString *name ); [savedStatusText release], savedStatusText = nil; [statusTextTimer invalidate]; [statusTextTimer release], statusTextTimer = nil; -} +}*/ - (void)connectToLocal @@ -649,7 +666,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendProcessListRequest failed on socket %i", sockfd ); + CMLog( @"sendProcessListRequest failed on socket %i", sockfd ); } } @@ -664,7 +681,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendClearSearch failed on socket %i", sockfd ); + CMLog( @"sendClearSearch failed on socket %i", sockfd ); } } @@ -682,7 +699,7 @@ void TCPlaySound( NSString *name ); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendSearch:size: failed" ); + CMLog( @"sendSearch:size: failed" ); } ptr = buffer; @@ -692,7 +709,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendSearch:size: failed" ); + CMLog( @"sendSearch:size: failed" ); } free( buffer ); @@ -712,7 +729,7 @@ void TCPlaySound( NSString *name ); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendChange:size: failed" ); + CMLog( @"sendChange:size: failed" ); } ptr = buffer; @@ -722,7 +739,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendChange:size: failed" ); + CMLog( @"sendChange:size: failed" ); } free( buffer ); @@ -739,7 +756,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendPauseTarget failed" ); + CMLog( @"sendPauseTarget failed" ); } } @@ -759,7 +776,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendUndoRequest failed" ); + CMLog( @"sendUndoRequest failed" ); } } @@ -774,7 +791,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendRedoRequest failed" ); + CMLog( @"sendRedoRequest failed" ); } } @@ -794,7 +811,7 @@ void TCPlaySound( NSString *name ); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendSetTargetPID: failed" ); + CMLog( @"sendSetTargetPID: failed" ); } ptr = buffer; @@ -804,7 +821,7 @@ void TCPlaySound( NSString *name ); if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendSetTargetPID: failed" ); + CMLog( @"sendSetTargetPID: failed" ); } free( buffer ); @@ -849,7 +866,7 @@ void TCPlaySound( NSString *name ); TCPlaySound( @"Basso" ); } - [self setStatusToLast]; + [self setStatusCheating]; //[self setStatusText:@"Search Finished" duration:1.5]; [cheatWindow makeFirstResponder:searchTextField]; } @@ -861,18 +878,21 @@ void TCPlaySound( NSString *name ); [self destroyResults]; COPY_FROM_BUFFER( &searchResultsAmount, ptr, sizeof(searchResultsAmount) ); - COPY_FROM_BUFFER( &maxSearchResultsAmount, ptr, sizeof(maxSearchResultsAmount) ); + COPY_FROM_BUFFER( &searchResultsAmountDisplayed, ptr, sizeof(searchResultsAmountDisplayed) ); - if ( searchResultsAmount > 0 ) + if ( searchResultsAmountDisplayed > 0 ) { - int memSize = TCAddressSize*maxSearchResultsAmount; + int memSize = TCAddressSize * searchResultsAmountDisplayed; + // TCAddressSize*maxSearchResultsAmount; if ( (searchResults = (TCaddress *)malloc( memSize )) == NULL ) { - NSLog( @"receivedVariableList failed: malloc failed" ); + CMLog( @"receivedVariableList failed: malloc failed" ); searchResultsAmount = 0; + searchResultsAmountDisplayed = 0; return; } + CMLog( @"CLIENT setting display amount to %i", searchResultsAmountDisplayed ); COPY_FROM_BUFFER( searchResults, ptr, memSize ); } @@ -882,15 +902,10 @@ void TCPlaySound( NSString *name ); - (void)receivedChangeFinished { - [self setStatusToLast]; - - if ( status == STATUS_CHANGING_CONTINUOUSLY ) - { - [self setStatusText:@"Change Occured" duration:1.5]; - } - else + if ( status != STATUS_CHANGING_CONTINUOUSLY ) { TCPlaySound( @"Tink" ); + [self setStatusCheating]; } } @@ -911,12 +926,12 @@ void TCPlaySound( NSString *name ); - (void)receivedUndoFinished { - [self setStatusToLast]; + [self setStatusCheating]; } - (void)receivedRedoFinished { - [self setStatusToLast]; + [self setStatusCheating]; } - (void)receivedUndoRedoStatus:(NSData *)data @@ -926,7 +941,7 @@ void TCPlaySound( NSString *name ); COPY_FROM_BUFFER( &undoCount, ptr, sizeof(undoCount) ); COPY_FROM_BUFFER( &redoCount, ptr, sizeof(redoCount) ); - NSLog( @"UNDO: %i, REDO: %i", undoCount, redoCount ); + CMLog( @"UNDO: %i, REDO: %i", undoCount, redoCount ); } - (void)receivedAppLaunched:(NSData *)data @@ -968,8 +983,10 @@ void TCPlaySound( NSString *name ); [self sendSetTargetPID:targetPID]; // alert the user. - [self handleErrorMessage:@"The application that was being cheated has quit." fatal:NO]; + TCPlaySound( @"Frog" ); + //[self handleErrorMessage:@"The application that was being cheated has quit." fatal:NO]; + [statusText addStatus:@"Target Quit"]; [self setStatusConnected]; } @@ -1006,7 +1023,7 @@ void TCPlaySound( NSString *name ); // copy the number of results to return. COPY_TO_BUFFER( ptr, &TCGlobalHitsDisplayed, sizeof(TCGlobalHitsDisplayed) ); - NSLog( @"type: %i, size: %i", type, size ); + CMLog( @"type: %i, size: %i", type, size ); // switch to cheating mode if this is the first search. if ( status == STATUS_CONNECTED ) @@ -1266,8 +1283,6 @@ void TCPlaySound( NSString *name ); [self sendChange:data size:dataSize]; free( data ); - - [self setStatusChanging]; } @@ -1352,8 +1367,8 @@ void TCPlaySound( NSString *name ); { [self clearSearch]; + [statusText addStatus:@"Search Cleared" duration:1.5]; [self setStatusConnected]; - [self setStatusText:@"Search Cleared" duration:1.5]; [self sendClearSearch]; } @@ -1405,8 +1420,8 @@ void TCPlaySound( NSString *name ); targetPID = [sender tag]; [self sendSetTargetPID:targetPID]; - - [self setStatusText:[NSString stringWithFormat:@"PID: %i", targetPID] duration:0]; + + [statusText addStatus:[NSString stringWithFormat:@"PID: %i", targetPID] duration:CM_STATUS_FOREVER]; } @@ -1483,6 +1498,14 @@ void TCPlaySound( NSString *name ); { [changeSheet orderOut:sender]; [NSApp endSheet:changeSheet returnCode:1]; + if ( [recurringChangeButton state] == NSOnState ) + { + [self setStatusChangingContinuously]; + } + else + { + [self setStatusChanging]; + } //[NSApp stopModal]; } @@ -1521,11 +1544,12 @@ void TCPlaySound( NSString *name ); - (void)destroyResults { - if ( searchResultsAmount > 0 ) + if ( searchResultsAmountDisplayed > 0 ) { free( searchResults ); searchResultsAmount = 0; + searchResultsAmountDisplayed = 0; } } @@ -1600,7 +1624,7 @@ void TCPlaySound( NSString *name ); - (void)handleErrorMessage:(NSString *)msg fatal:(BOOL)fatal { - NSLog( @"error received" ); + CMLog( @"error received" ); // close the change sheet if it's open. if ( [cheatWindow attachedSheet] ) { @@ -1743,7 +1767,7 @@ void TCPlaySound( NSString *name ); - (int)numberOfRowsInTableView:(NSTableView *)table { - return (searchResultsAmount <= maxSearchResultsAmount) ? searchResultsAmount : maxSearchResultsAmount; + return searchResultsAmountDisplayed; } - (id)tableView:(NSTableView *)table objectValueForTableColumn:(NSTableColumn *)column row:(int)row @@ -1784,7 +1808,7 @@ void TCPlaySound( NSString *name ); int tag = [serverList count] - 1; NSMenuItem *item; - NSLog( @"server found" ); + CMLog( @"server found" ); if ( [serverMenu itemWithTitle:name] == nil ) { diff --git a/The Cheat.pbproj/chaz.pbxuser b/The Cheat.pbproj/chaz.pbxuser index b91f836..d912312 100644 --- a/The Cheat.pbproj/chaz.pbxuser +++ b/The Cheat.pbproj/chaz.pbxuser @@ -2,9 +2,9 @@ { 089C1660FE840EACC02AAC07 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 834}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 584}}"; sepNavSelRange = "{110, 0}"; - sepNavVisRect = "{{0, 0}, {1002, 834}}"; + sepNavVisRect = "{{0, 0}, {1002, 584}}"; }; }; 2A37F4A9FDCFA73011CA2CEA = { @@ -99,9 +99,9 @@ PBXFileTableDataSourceColumnSortingKey = PBXSymbolsDataSource_SymbolNameID; PBXFileTableDataSourceColumnWidthsKey = ( 16, - 330.8008, - 359.0356, - 336.2085, + 322.8008, + 350.0356, + 327.2085, ); PBXFileTableDataSourceColumnsKey = ( PBXSymbolsDataSource_SymbolTypeIconID, @@ -132,7 +132,7 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 100588994; + PBXPerProjectTemplateStateSaveDate = 101460657; PBXPrepackagedSmartGroups_v2 = ( { PBXTransientLocationAtTop = bottom; @@ -307,57 +307,65 @@ _percentageOfCollapsedView = 0; isCollapsed = yes; sizes = ( - "{{0, 0}, {1047, 213}}", - "{{0, 213}, {1047, 653}}", + "{{0, 0}, {1047, 125}}", + "{{0, 125}, {1047, 744}}", ); }; PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { - BoundsStr = "{{0, 0}, {1032, 196}}"; + BoundsStr = "{{0, 0}, {1032, 108}}"; Rows = ( 0, ); - VisibleRectStr = "{{0, 0}, {1032, 196}}"; + VisibleRectStr = "{{0, 0}, {1032, 108}}"; }; PBXProjectWorkspaceModule_EditorOpen = true; PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { PBXSplitModuleInNavigatorKey = { Split0 = { - bookmark = 6E6A7FDC05FEED08004D2DF3; + bookmark = 6EF4D0BF060C2CF300F4728B; history = ( - 6E48626F059421D8006D09F8, 6E90C09D05FA7EAA00857F22, 6E90C0DC05FA979F00857F22, 6E90C16605FAA5FB00857F22, 6E90C39A05FC0B3600857F22, 6E8DD55E05FC512600D2C0EA, 6E8DD56405FC5BD100D2C0EA, - 6E8DD5D705FC5F3500D2C0EA, - 6E8DD5E305FC605F00D2C0EA, 6E8DD5EA05FC607A00D2C0EA, 6E8DD64605FC674200D2C0EA, 6E8DD66605FC696100D2C0EA, - 6E8DD66A05FC696500D2C0EA, 6E8DD68105FC6AF400D2C0EA, - 6E8DD6CB05FC701300D2C0EA, - 6E8DD6CF05FC709E00D2C0EA, 6E8DD6EA05FC748B00D2C0EA, 6E8DD70C05FC762900D2C0EA, 6E8DD71105FC762C00D2C0EA, 6E8DD71605FC763300D2C0EA, 6E8DD71B05FC763C00D2C0EA, - 6E8DD74405FC776700D2C0EA, 6E8DD75305FC778700D2C0EA, - 6E8DD76205FC783B00D2C0EA, 6E55007005FD2C9D00EE693C, - 6E55007205FD2C9D00EE693C, - 6E55008505FD2CD800EE693C, - 6E6A7F7C05FEDDCB004D2DF3, 6E6A7F8005FEDDD3004D2DF3, 6E6A7FAB05FEDEE9004D2DF3, - 6E6A7FB505FEDF13004D2DF3, - 6E6A7FCC05FEE038004D2DF3, 6E6A7FD805FEE064004D2DF3, - 6E6A7FD405FEE053004D2DF3, + 6EE811830602584A00F1CD3F, + 6EE811C40602592500F1CD3F, + 6EE811EE060259D600F1CD3F, + 6EE811FD06025A4300F1CD3F, + 6EE8120F06025ABA00F1CD3F, + 6EE8122306025C6300F1CD3F, + 6E8DD76205FC783B00D2C0EA, + 6EE815E40602A97C00F1CD3F, + 6E1B2CDA060AB14300B6B2F9, + 6E1B2CDB060AB14300B6B2F9, + 6E1B2CDC060AB14300B6B2F9, + 6E1B2CDD060AB14300B6B2F9, + 6E1B2CDE060AB14300B6B2F9, + 6E1B2CDF060AB14300B6B2F9, + 6E1B2CE0060AB14300B6B2F9, + 6E1B2CE2060AB14300B6B2F9, + 6E1B2D45060AC5AC00B6B2F9, + 6E976BD3060BC2AB00FDABB0, + 6E976BD4060BC2AB00FDABB0, + 6EF4D0B9060C2CF300F4728B, + 6EF4D0BA060C2CF300F4728B, + 6EF4D0BB060C2CF300F4728B, ); prevStack = ( 6E486275059421D8006D09F8, @@ -385,22 +393,20 @@ 6E8DD71305FC762C00D2C0EA, 6E8DD71805FC763300D2C0EA, 6E8DD71C05FC763C00D2C0EA, - 6E55006805FD21B800EE693C, - 6E6A7F7D05FEDDCB004D2DF3, - 6E6A7F8105FEDDD3004D2DF3, - 6E6A7F8505FEDDEC004D2DF3, - 6E6A7F8905FEDE21004D2DF3, - 6E6A7F8D05FEDE27004D2DF3, - 6E6A7F9105FEDE33004D2DF3, - 6E6A7F9505FEDE35004D2DF3, - 6E6A7F9905FEDE6A004D2DF3, - 6E6A7FA105FEDEB7004D2DF3, - 6E6A7FA505FEDEDD004D2DF3, - 6E6A7FB605FEDF13004D2DF3, - 6E6A7FCD05FEE038004D2DF3, - 6E6A7FD105FEE047004D2DF3, - 6E6A7FD505FEE053004D2DF3, - 6E6A7FD905FEE064004D2DF3, + 6EE811D50602595D00F1CD3F, + 6EE811FF06025A4300F1CD3F, + 6EE8121006025ABA00F1CD3F, + 6EE8122406025C6300F1CD3F, + 6EE81236060274E900F1CD3F, + 6E1B2CE9060AB14300B6B2F9, + 6E1B2CEC060AB14300B6B2F9, + 6E1B2CED060AB14300B6B2F9, + 6E1B2CFD060AB14300B6B2F9, + 6E1B2D07060AB14300B6B2F9, + 6E1B2D08060AB14300B6B2F9, + 6EF4D0BC060C2CF300F4728B, + 6EF4D0BD060C2CF300F4728B, + 6EF4D0BE060C2CF300F4728B, ); }; SplitCount = 1; @@ -412,14 +418,14 @@ _indexOfCollapsedView = 0; _percentageOfCollapsedView = 0; sizes = ( - "{{0, 0}, {233, 866}}", - "{{233, 0}, {1047, 866}}", + "{{0, 0}, {233, 869}}", + "{{233, 0}, {1047, 869}}", ); }; }; - PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {1047, 213}}"; - PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 213}, {1047, 653}}"; - PBXProjectWorkspaceModule_OldSuperviewFrame = "{{233, 0}, {1047, 866}}"; + PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {1047, 125}}"; + PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 125}, {1047, 744}}"; + PBXProjectWorkspaceModule_OldSuperviewFrame = "{{233, 0}, {1047, 869}}"; PBXProjectWorkspaceModule_SGTM = { PBXBottomSmartGroupGIDs = ( 1C37FBAC04509CD000000102, @@ -449,16 +455,18 @@ 2A37F4AFFDCFA73011CA2CEA, 2A37F4B8FDCFA73011CA2CEA, 6E8EE12505F7EA8100ED3F4F, + 1058C7A6FEA54F5311CA2CBB, + 6E90BC2805F7FB9000857F22, 1C37FBAC04509CD000000102, ); PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( ( - 42, - 37, + 11, + 1, 0, ), ); - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {216, 848}}"; + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {216, 851}}"; }; PBXTopSmartGroupGIDs = ( ); @@ -485,8 +493,8 @@ _percentageOfCollapsedView = 0; isCollapsed = yes; sizes = ( - "{{0, 0}, {327, 353}}", - "{{327, 0}, {534, 353}}", + "{{0, 0}, {327, 349}}", + "{{327, 0}, {534, 349}}", ); }; VerticalSplitView = { @@ -495,8 +503,8 @@ _percentageOfCollapsedView = 0; isCollapsed = yes; sizes = ( - "{{0, 0}, {861, 353}}", - "{{0, 353}, {861, 362}}", + "{{0, 0}, {861, 349}}", + "{{0, 349}, {861, 366}}", ); }; }; @@ -514,510 +522,119 @@ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectFindModule" = { }; "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { - PBXProjectWorkspaceModule_StateKey_Rev36 = { + PBXProjectWorkspaceModule_StateKey_Rev39 = { + PBXProjectWorkspaceModule_DEGV_Geometry = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {1047, 233}}", + "{{0, 233}, {1047, 636}}", + ); + }; + PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { + BoundsStr = "{{0, 0}, {1032, 216}}"; + Rows = ( + 0, + ); + VisibleRectStr = "{{0, 0}, {1032, 216}}"; + }; PBXProjectWorkspaceModule_EditorOpen = true; PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { - Split0 = { - bookmark = 6E51A96D0573258900506538; - history = ( - 6E84B8F20558B3480001B5EB, - 6E84B8F30558B3480001B5EB, - 6E84B8F40558B3480001B5EB, - 6E84B8F80558B3480001B5EB, - 6EF8EC22055A1C39008BBE46, - 6EF8EC23055A1C39008BBE46, - 6EF8EC26055A1C39008BBE46, - 6EF8EC27055A1C39008BBE46, - 6EF8EC28055A1C39008BBE46, - 6EF8EC29055A1C39008BBE46, - 6EE004830560B42800F8A5B1, - 6EE0048A0560B42800F8A5B1, - 6EE0048C0560B42800F8A5B1, - 6EE0048D0560B42800F8A5B1, - 6EE004900560B42800F8A5B1, - 6E5EC36505633214001E3A3E, - 6E5EC36605633214001E3A3E, - 6E5EC36705633214001E3A3E, - 6E5EC36905633214001E3A3E, - 6E5EC36C05633214001E3A3E, - 6E5EC36D05633214001E3A3E, - 6E5EC36E05633214001E3A3E, - 6E5EC37005633214001E3A3E, - 6E00EF260566EE06001AB46F, - 6E00EF290566EE06001AB46F, - 6E6126C7056B3091006177EC, - 6E6126C8056B3091006177EC, - 6E6126C9056B3091006177EC, - 6E6126CB056B3091006177EC, - 6E6126CC056B3091006177EC, - 6E6126CD056B3091006177EC, - 6E6126CE056B3091006177EC, - 6E6126CF056B3091006177EC, - 6E6126D0056B3091006177EC, - 6E6126D1056B3091006177EC, - 6E6126D2056B3091006177EC, - 6E6126D3056B3091006177EC, - 6E6126D4056B3091006177EC, - 6E6126D5056B3091006177EC, - 6E6126D6056B3091006177EC, - 6E6126D7056B3091006177EC, - 6E6126D8056B3091006177EC, - 6E6126DA056B3091006177EC, - 6E6126DB056B3091006177EC, - 6E6126DC056B3091006177EC, - 6E6126DD056B3091006177EC, - 6E6126DE056B3091006177EC, - 6E6126DF056B3091006177EC, - 6E6126E0056B3091006177EC, - 6E6126E1056B3091006177EC, - 6E6126E2056B3091006177EC, - 6E6126E3056B3091006177EC, - 6E6126E4056B3091006177EC, - 6E51A9060573258100506538, - 6E51A9070573258100506538, - 6E51A9080573258100506538, - 6E51A9090573258100506538, - 6E51A90A0573258100506538, - 6E51A90B0573258100506538, - 6E51A90C0573258100506538, - 6E51A90D0573258100506538, - 6E51A90E0573258100506538, - 6E51A90F0573258100506538, - 6E51A9100573258100506538, - 6E51A9110573258100506538, - 6E8166290559E79E00377CF7, - ); - prevStack = ( - 6E84B8FE0558B3480001B5EB, - 6E84B8FF0558B3480001B5EB, - 6E84B9000558B3480001B5EB, - 6E84B9010558B3480001B5EB, - 6E84B9020558B3480001B5EB, - 6E84B9030558B3480001B5EB, - 6E84B9040558B3480001B5EB, - 6E84B9050558B3480001B5EB, - 6E84B9060558B3480001B5EB, - 6E84B9070558B3480001B5EB, - 6E84B9080558B3480001B5EB, - 6E84B9090558B3480001B5EB, - 6E84B90A0558B3480001B5EB, - 6E84B90B0558B3480001B5EB, - 6E84B90C0558B3480001B5EB, - 6E84B90D0558B3480001B5EB, - 6E84B90E0558B3480001B5EB, - 6E84B90F0558B3480001B5EB, - 6E84B9100558B3480001B5EB, - 6E84B9110558B3480001B5EB, - 6E84B9120558B3480001B5EB, - 6E84B9130558B3480001B5EB, - 6E84B9140558B3480001B5EB, - 6E84B9160558B3480001B5EB, - 6E84B9180558B3480001B5EB, - 6E84B91A0558B3480001B5EB, - 6E84B91C0558B3480001B5EB, - 6E84B91D0558B3480001B5EB, - 6E84B91E0558B3480001B5EB, - 6E84B91F0558B3480001B5EB, - 6E84B9210558B3480001B5EB, - 6E84B9230558B3480001B5EB, - 6E84B9240558B3480001B5EB, - 6E81662F0559E79E00377CF7, - 6E8166300559E79E00377CF7, - 6E8166310559E79E00377CF7, - 6E8166320559E79E00377CF7, - 6E8166330559E79E00377CF7, - 6E8166340559E79E00377CF7, - 6E8166350559E79E00377CF7, - 6E8166370559E79E00377CF7, - 6E8166380559E79E00377CF7, - 6E8166390559E79E00377CF7, - 6E81663A0559E79E00377CF7, - 6E81663C0559E79E00377CF7, - 6E81663E0559E79E00377CF7, - 6E81663F0559E79E00377CF7, - 6E8166410559E79E00377CF7, - 6E8166430559E79E00377CF7, - 6E8166450559E79E00377CF7, - 6E8166460559E79E00377CF7, - 6E8166480559E79E00377CF7, - 6E8166890559F3BD00377CF7, - 6E81668B0559F3BD00377CF7, - 6E81668C0559F3BD00377CF7, - 6E81668E0559F3BD00377CF7, - 6E8166900559F3BD00377CF7, - 6E8166920559F3BD00377CF7, - 6E8166940559F3BD00377CF7, - 6E8166960559F3BD00377CF7, - 6E8166980559F3BD00377CF7, - 6E81669A0559F3BD00377CF7, - 6E81669C0559F3BD00377CF7, - 6E81669E0559F3BD00377CF7, - 6E8166A00559F3BD00377CF7, - 6E8166A20559F3BD00377CF7, - 6E8166A30559F3BD00377CF7, - 6E8166A50559F3BD00377CF7, - 6EF8EB660559F823008BBE46, - 6EF8EB680559F823008BBE46, - 6EF8EB6A0559F823008BBE46, - 6EF8EB6C0559F823008BBE46, - 6EF8EB6E0559F823008BBE46, - 6EF8EB700559F823008BBE46, - 6EF8EC2D055A1C39008BBE46, - 6EF8EC2F055A1C39008BBE46, - 6EF8EC31055A1C39008BBE46, - 6EF8EC33055A1C39008BBE46, - 6EF8EC35055A1C39008BBE46, - 6EF8EC37055A1C39008BBE46, - 6EF8EC39055A1C39008BBE46, - 6EF8EC3B055A1C39008BBE46, - 6EF8EC3D055A1C39008BBE46, - 6EF8EC3F055A1C39008BBE46, - 6EF8EC40055A1C39008BBE46, - 6EF8EC42055A1C39008BBE46, - 6EF8EC44055A1C39008BBE46, - 6EF8EC45055A1C39008BBE46, - 6EF8EC47055A1C39008BBE46, - 6EF8EC49055A1C39008BBE46, - 6EF8EC4B055A1C39008BBE46, - 6EF8EC4D055A1C39008BBE46, - 6EF8EC4F055A1C39008BBE46, - 6EF8EC51055A1C39008BBE46, - 6EF8EC53055A1C39008BBE46, - 6EF8EC55055A1C39008BBE46, - 6EF8EC56055A1C39008BBE46, - 6EF8EC58055A1C39008BBE46, - 6EF8EC59055A1C39008BBE46, - 6EF8EC5A055A1C39008BBE46, - 6EF8EC5B055A1C39008BBE46, - 6EF8EC5C055A1C39008BBE46, - 6EF8EC5D055A1C39008BBE46, - 6EF8EC5E055A1C39008BBE46, - 6EF8EC60055A1C39008BBE46, - 6EF8EC62055A1C39008BBE46, - 6EF8EC64055A1C39008BBE46, - 6EF8EC65055A1C39008BBE46, - 6EF8EC67055A1C39008BBE46, - 6EF8EC69055A1C39008BBE46, - 6EF8EC6A055A1C39008BBE46, - 6EF8EC6B055A1C39008BBE46, - 6EF8EC6D055A1C39008BBE46, - 6EF8EC6E055A1C39008BBE46, - 6EF8EC6F055A1C39008BBE46, - 6EF8EC70055A1C39008BBE46, - 6EF8EC72055A1C39008BBE46, - 6EF8EC73055A1C39008BBE46, - 6EF8EC74055A1C39008BBE46, - 6EF8EC75055A1C39008BBE46, - 6EF8EC76055A1C39008BBE46, - 6EF8EC77055A1C39008BBE46, - 6EF8EC78055A1C39008BBE46, - 6EE070E0055CA8E200598538, - 6EE070E2055CA8E200598538, - 6EE070E4055CA8E200598538, - 6EE070E6055CA8E200598538, - 6EE070E8055CA8E200598538, - 6EE070EA055CA8E200598538, - 6EE070EC055CA8E200598538, - 6EE004950560B42800F8A5B1, - 6EE004960560B42800F8A5B1, - 6EE004970560B42800F8A5B1, - 6EE004980560B42800F8A5B1, - 6EE004990560B42800F8A5B1, - 6EE0049A0560B42800F8A5B1, - 6EE0049B0560B42800F8A5B1, - 6EE0049C0560B42800F8A5B1, - 6EE0049D0560B42800F8A5B1, - 6EE0049E0560B42800F8A5B1, - 6EE0049F0560B42800F8A5B1, - 6EE004A00560B42800F8A5B1, - 6EE004A10560B42800F8A5B1, - 6EE004A20560B42800F8A5B1, - 6EE004A30560B42800F8A5B1, - 6EE004A40560B42800F8A5B1, - 6EE004A50560B42800F8A5B1, - 6EE004A60560B42800F8A5B1, - 6EE004A70560B42800F8A5B1, - 6EE004A80560B42800F8A5B1, - 6EE004A90560B42800F8A5B1, - 6EE004AA0560B42800F8A5B1, - 6EE004AB0560B42800F8A5B1, - 6EE004AC0560B42800F8A5B1, - 6EE004AD0560B42800F8A5B1, - 6EE004AE0560B42800F8A5B1, - 6EE004AF0560B42800F8A5B1, - 6EE004B00560B42800F8A5B1, - 6EE004B10560B42800F8A5B1, - 6EE004B20560B42800F8A5B1, - 6EE004B30560B42800F8A5B1, - 6EE004B40560B42800F8A5B1, - 6EE004B50560B42800F8A5B1, - 6EE004B60560B42800F8A5B1, - 6EE004B70560B42800F8A5B1, - 6EE004B80560B42800F8A5B1, - 6EE004B90560B42800F8A5B1, - 6EE004BA0560B42800F8A5B1, - 6EE004BB0560B42800F8A5B1, - 6EE004BC0560B42800F8A5B1, - 6EE004BD0560B42800F8A5B1, - 6EE004BE0560B42800F8A5B1, - 6EE004BF0560B42800F8A5B1, - 6EE004C00560B42800F8A5B1, - 6EE004C10560B42800F8A5B1, - 6EE004C20560B42800F8A5B1, - 6EE004C30560B42800F8A5B1, - 6EE004C40560B42800F8A5B1, - 6EE004C50560B42800F8A5B1, - 6EE004C60560B42800F8A5B1, - 6EE004C70560B42800F8A5B1, - 6EE004C80560B42800F8A5B1, - 6EE004C90560B42800F8A5B1, - 6EE004CA0560B42800F8A5B1, - 6EE004CB0560B42800F8A5B1, - 6EE004CC0560B42800F8A5B1, - 6EE004CD0560B42800F8A5B1, - 6EE004CE0560B42800F8A5B1, - 6EE004CF0560B42800F8A5B1, - 6EE004D00560B42800F8A5B1, - 6EE004D10560B42800F8A5B1, - 6EE004D20560B42800F8A5B1, - 6EE004D30560B42800F8A5B1, - 6EE004D40560B42800F8A5B1, - 6EE004D50560B42800F8A5B1, - 6EE004D60560B42800F8A5B1, - 6EE004D70560B42800F8A5B1, - 6EE004D80560B42800F8A5B1, - 6EE004D90560B42800F8A5B1, - 6EE004DA0560B42800F8A5B1, - 6EE004DB0560B42800F8A5B1, - 6E2E17AE056201170070BE48, - 6E2E17AF056201170070BE48, - 6E2E17B0056201170070BE48, - 6E2E17B1056201170070BE48, - 6E5EC37105633214001E3A3E, - 6E5EC37205633214001E3A3E, - 6E5EC37305633214001E3A3E, - 6E5EC37405633214001E3A3E, - 6E5EC37505633214001E3A3E, - 6E5EC37605633214001E3A3E, - 6E5EC37705633214001E3A3E, - 6E5EC37805633214001E3A3E, - 6E5EC37905633214001E3A3E, - 6E5EC37A05633214001E3A3E, - 6E5EC37B05633214001E3A3E, - 6E5EC37C05633214001E3A3E, - 6E5EC37D05633214001E3A3E, - 6E5EC37E05633214001E3A3E, - 6E5EC37F05633214001E3A3E, - 6E5EC38005633214001E3A3E, - 6E5EC38105633214001E3A3E, - 6E5EC38205633214001E3A3E, - 6E5EC38305633214001E3A3E, - 6E5EC38405633214001E3A3E, - 6E5EC38505633214001E3A3E, - 6E5EC38605633214001E3A3E, - 6E5EC38705633214001E3A3E, - 6E5EC38805633214001E3A3E, - 6E5EC38905633214001E3A3E, - 6E5EC38A05633214001E3A3E, - 6E5EC38B05633214001E3A3E, - 6E5EC38C05633214001E3A3E, - 6E5EC38D05633214001E3A3E, - 6E5EC38E05633214001E3A3E, - 6E5EC38F05633214001E3A3E, - 6E5EC39005633214001E3A3E, - 6E5EC39105633214001E3A3E, - 6E5EC39205633214001E3A3E, - 6E5EC39305633214001E3A3E, - 6E5EC39405633214001E3A3E, - 6E5EC39505633214001E3A3E, - 6E5EC39605633214001E3A3E, - 6E5EC39705633214001E3A3E, - 6E5EC39805633214001E3A3E, - 6E5EC39905633214001E3A3E, - 6E5EC39A05633214001E3A3E, - 6E5EC39B05633214001E3A3E, - 6E5EC39C05633214001E3A3E, - 6E5EC39D05633214001E3A3E, - 6E5EC39E05633214001E3A3E, - 6E5EC39F05633214001E3A3E, - 6E5EC3A005633214001E3A3E, - 6E5EC3A105633214001E3A3E, - 6E5EC3A205633214001E3A3E, - 6E5EC3A305633214001E3A3E, - 6E5EC3A405633214001E3A3E, - 6E5EC3A505633214001E3A3E, - 6E5EC3A605633214001E3A3E, - 6E5EC3A705633214001E3A3E, - 6E5EC3A805633214001E3A3E, - 6E5EC3A905633214001E3A3E, - 6E5EC3AA05633214001E3A3E, - 6E5EC3AB05633214001E3A3E, - 6E5EC3AC05633214001E3A3E, - 6E5EC3AD05633214001E3A3E, - 6E5EC3AE05633214001E3A3E, - 6E5EC3AF05633214001E3A3E, - 6E5EC3B005633214001E3A3E, - 6E5EC3B105633214001E3A3E, - 6E5EC3B205633214001E3A3E, - 6E5EC3B305633214001E3A3E, - 6E5EC3B405633214001E3A3E, - 6E5EC3B505633214001E3A3E, - 6E5EC3B605633214001E3A3E, - 6E5EC3B705633214001E3A3E, - 6E5EC3B805633214001E3A3E, - 6E5EC3B905633214001E3A3E, - 6E5EC3BA05633214001E3A3E, - 6E5EC3BB05633214001E3A3E, - 6E5EC3BC05633214001E3A3E, - 6E00EF2B0566EE06001AB46F, - 6E00EF2C0566EE06001AB46F, - 6E00EF2D0566EE06001AB46F, - 6E00EF2E0566EE06001AB46F, - 6E00EF2F0566EE06001AB46F, - 6E00EF300566EE06001AB46F, - 6E00EF310566EE06001AB46F, - 6E9F392A0569DB90007C1A1C, - 6E9F392B0569DB90007C1A1C, - 6E6126E7056B3091006177EC, - 6E6126E8056B3091006177EC, - 6E6126E9056B3091006177EC, - 6E6126EA056B3091006177EC, - 6E6126EB056B3091006177EC, - 6E6126EC056B3091006177EC, - 6E6126ED056B3091006177EC, - 6E6126EE056B3091006177EC, - 6E6126EF056B3091006177EC, - 6E6126F0056B3091006177EC, - 6E6126F1056B3091006177EC, - 6E6126F2056B3091006177EC, - 6E6126F3056B3091006177EC, - 6E6126F4056B3091006177EC, - 6E6126F5056B3091006177EC, - 6E6126F6056B3091006177EC, - 6E6126F7056B3091006177EC, - 6E6126F8056B3091006177EC, - 6E6126F9056B3091006177EC, - 6E6126FA056B3091006177EC, - 6E6126FB056B3091006177EC, - 6E6126FC056B3091006177EC, - 6E6126FD056B3091006177EC, - 6E6126FE056B3091006177EC, - 6E6126FF056B3091006177EC, - 6E612700056B3091006177EC, - 6E612701056B3091006177EC, - 6E612702056B3091006177EC, - 6E612703056B3091006177EC, - 6E612704056B3091006177EC, - 6E612705056B3091006177EC, - 6E612706056B3091006177EC, - 6E612707056B3091006177EC, - 6E612708056B3091006177EC, - 6E612709056B3091006177EC, - 6E61270A056B3091006177EC, - 6E61270B056B3091006177EC, - 6E61270C056B3091006177EC, - 6E61270D056B3091006177EC, - 6E61270E056B3091006177EC, - 6E61270F056B3091006177EC, - 6E612710056B3091006177EC, - 6E612711056B3091006177EC, - 6E612712056B3091006177EC, - 6E612713056B3091006177EC, - 6E612714056B3091006177EC, - 6E51A9120573258100506538, - 6E51A9130573258100506538, - 6E51A9140573258100506538, - 6E51A9150573258100506538, - 6E51A9160573258100506538, - 6E51A9170573258100506538, - 6E51A9180573258100506538, - 6E51A9190573258100506538, - 6E51A91A0573258100506538, - 6E51A91B0573258100506538, - 6E51A91C0573258100506538, - 6E51A91D0573258100506538, - 6E51A91E0573258100506538, - 6E51A91F0573258100506538, - 6E51A9200573258100506538, - 6E51A9210573258100506538, - 6E51A9220573258100506538, - 6E51A9230573258100506538, - 6E51A9240573258100506538, - 6E51A9250573258100506538, - 6E51A9260573258100506538, - 6E51A9270573258100506538, - 6E51A9280573258100506538, - 6E51A9290573258100506538, - 6E51A92A0573258100506538, - 6E51A92B0573258100506538, - 6E51A92C0573258100506538, - 6E51A92D0573258100506538, - 6E51A92E0573258100506538, - 6E51A92F0573258100506538, - 6E51A9300573258100506538, - 6E51A9310573258100506538, - 6E51A9320573258100506538, - 6E51A9330573258100506538, - 6E51A9340573258100506538, - 6E51A9350573258100506538, - 6E51A9360573258100506538, - 6E51A9370573258100506538, - 6E51A9380573258100506538, - 6E51A9390573258100506538, - 6E51A93A0573258100506538, - 6E51A93B0573258100506538, - 6E51A93C0573258100506538, - 6E51A93D0573258100506538, - 6E51A93E0573258100506538, - 6E51A93F0573258100506538, - 6E51A9400573258100506538, - 6E51A9410573258100506538, - 6E51A9420573258100506538, - 6E51A9430573258100506538, - 6E51A9440573258100506538, - 6E51A9450573258100506538, - 6E51A9460573258100506538, - 6E51A9470573258100506538, - 6E51A9480573258100506538, - 6E51A9490573258100506538, - 6E51A94A0573258100506538, - 6E51A94B0573258100506538, - 6E51A94C0573258100506538, - 6E51A94D0573258100506538, - 6E51A94E0573258100506538, - 6E51A94F0573258100506538, - 6E51A9500573258100506538, - 6E51A9510573258100506538, - 6E51A9520573258100506538, - 6E51A9530573258100506538, - 6E51A9540573258100506538, - 6E51A9550573258100506538, - 6E51A9560573258100506538, - 6E51A9570573258100506538, - 6E51A9580573258100506538, - 6E51A9590573258100506538, - 6E51A95A0573258100506538, - 6E51A95B0573258100506538, - 6E51A95C0573258100506538, - 6E51A95D0573258100506538, - 6E51A95E0573258100506538, - 6E51A95F0573258100506538, - 6E51A9600573258100506538, - 6E51A9610573258100506538, - 6E51A9620573258100506538, - 6E51A9630573258100506538, - 6E51A9640573258100506538, - 6E51A9650573258100506538, - 6E51A9660573258100506538, - 6E51A9670573258100506538, + PBXSplitModuleInNavigatorKey = { + Split0 = { + bookmark = 6E1900E8060570B5001883C1; + history = ( + 6E90C09D05FA7EAA00857F22, + 6E90C0DC05FA979F00857F22, + 6E90C16605FAA5FB00857F22, + 6E90C39A05FC0B3600857F22, + 6E8DD55E05FC512600D2C0EA, + 6E8DD56405FC5BD100D2C0EA, + 6E8DD5D705FC5F3500D2C0EA, + 6E8DD5EA05FC607A00D2C0EA, + 6E8DD64605FC674200D2C0EA, + 6E8DD66605FC696100D2C0EA, + 6E8DD68105FC6AF400D2C0EA, + 6E8DD6EA05FC748B00D2C0EA, + 6E8DD70C05FC762900D2C0EA, + 6E8DD71105FC762C00D2C0EA, + 6E8DD71605FC763300D2C0EA, + 6E8DD71B05FC763C00D2C0EA, + 6E8DD74405FC776700D2C0EA, + 6E8DD75305FC778700D2C0EA, + 6E55007005FD2C9D00EE693C, + 6E55007205FD2C9D00EE693C, + 6E55008505FD2CD800EE693C, + 6E6A7F7C05FEDDCB004D2DF3, + 6E6A7F8005FEDDD3004D2DF3, + 6E6A7FAB05FEDEE9004D2DF3, + 6E6A7FD805FEE064004D2DF3, + 6EE811830602584A00F1CD3F, + 6EE811C40602592500F1CD3F, + 6EE811E20602598600F1CD3F, + 6EE811EE060259D600F1CD3F, + 6EE811FD06025A4300F1CD3F, + 6EE8120F06025ABA00F1CD3F, + 6EE8122306025C6300F1CD3F, + 6E8DD76205FC783B00D2C0EA, + 6EE815E40602A97C00F1CD3F, + 6EE815E80602A98100F1CD3F, + 6EE8168C0602B00100F1CD3F, + 6E78A01A06043FA3008F8B51, + ); + prevStack = ( + 6E486275059421D8006D09F8, + 6E486276059421D8006D09F8, + 6E486277059421D8006D09F8, + 6E48627C059421D8006D09F8, + 6E9D6CED059429D400D9A2D7, + 6E8EDFDA05F7DBEE00ED3F4F, + 6E90BB0805F7EC7600857F22, + 6E90BE2A05F86C7800857F22, + 6E90BE4F05F86D1000857F22, + 6E90BE5405F86D3200857F22, + 6E90C09A05FA7EA900857F22, + 6E90C09E05FA7EAA00857F22, + 6E90C16705FAA5FB00857F22, + 6E90C28705FAADF700857F22, + 6E90C35F05FB0DAD00857F22, + 6E90C36C05FC07B100857F22, + 6E8DD58F05FC5D1E00D2C0EA, + 6E8DD65F05FC692500D2C0EA, + 6E8DD68A05FC6B5C00D2C0EA, + 6E8DD6F305FC74F400D2C0EA, + 6E8DD70505FC761C00D2C0EA, + 6E8DD70905FC762000D2C0EA, + 6E8DD71305FC762C00D2C0EA, + 6E8DD71805FC763300D2C0EA, + 6E8DD71C05FC763C00D2C0EA, + 6E55006805FD21B800EE693C, + 6EE811D50602595D00F1CD3F, + 6EE811FF06025A4300F1CD3F, + 6EE8121006025ABA00F1CD3F, + 6EE8122406025C6300F1CD3F, + 6EE81236060274E900F1CD3F, + ); + }; + SplitCount = 1; + }; + }; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + PBXProjectWorkspaceModule_SGTM_Geometry = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + sizes = ( + "{{0, 0}, {233, 869}}", + "{{233, 0}, {1047, 869}}", ); }; - SplitCount = 1; }; - PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {1073, 124}}"; - PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 124}, {1073, 742}}"; - PBXProjectWorkspaceModule_OldSuperviewFrame = "{{207, 0}, {1073, 866}}"; - PBXProjectWorkspaceModule_RunWindowVisible = true; + PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {1047, 233}}"; + PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 233}, {1047, 636}}"; + PBXProjectWorkspaceModule_OldSuperviewFrame = "{{233, 0}, {1047, 869}}"; PBXProjectWorkspaceModule_SGTM = { PBXBottomSmartGroupGIDs = ( 1C37FBAC04509CD000000102, @@ -1027,8 +644,37 @@ 1CC0EA4004350EF90041110B, 1C37FABC05509CD000000102, 1C37FABC05539CD112110102, + E2644B35053B69B200211256, 1C37FABC04509CD000100104, ); + PBXSmartGroupTreeModuleColumnData = { + PBXSmartGroupTreeModuleColumnWidthsKey = ( + 216, + ); + PBXSmartGroupTreeModuleColumnsKey_v4 = ( + MainColumn, + ); + }; + PBXSmartGroupTreeModuleOutlineStateKey_v7 = { + PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( + 2A37F4AAFDCFA73011CA2CEA, + 6E0D40B3052243B800A80003, + 2A37F4ABFDCFA73011CA2CEA, + 6E0D40BF05224F4B00A80003, + 2A37F4AFFDCFA73011CA2CEA, + 2A37F4B8FDCFA73011CA2CEA, + 6E8EE12505F7EA8100ED3F4F, + 1C37FBAC04509CD000000102, + ); + PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( + ( + 42, + 37, + 0, + ), + ); + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {216, 851}}"; + }; PBXTopSmartGroupGIDs = ( ); }; @@ -1043,8 +689,8 @@ _percentageOfCollapsedView = 0; isCollapsed = yes; sizes = ( - "{{0, 0}, {491, 167}}", - "{{0, 176}, {491, 267}}", + "{{0, 0}, {365, 167}}", + "{{0, 176}, {365, 267}}", ); }; VerticalSplitView = { @@ -1061,10 +707,12 @@ }; PBXWorkspaceGeometries = ( { - Frame = "{{0, 0}, {1280, 866}}"; + Frame = "{{0, 0}, {1280, 869}}"; PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + PBXProjectWorkspaceModule_DebuggerWindowVisible = true; + PBXProjectWorkspaceModule_RunWindowVisible = true; }; - RubberWindowFrame = "0 94 1280 908 0 0 1280 1002 "; + RubberWindowFrame = "0 91 1280 911 0 0 1280 1002 "; }, ); "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBatchFindModule" = { @@ -1119,7 +767,7 @@ DebugConsoleWindowFrame = "{{200, 200}, {500, 300}}"; DebugSTDIOWindowFrame = "{{200, 200}, {500, 300}}"; Frame = "{{0, 0}, {861, 715}}"; - RubberWindowFrame = "385 232 861 757 0 0 1280 1002 "; + RubberWindowFrame = "381 245 861 757 0 0 1280 1002 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { Frame = "{{0, 0}, {750, 480}}"; @@ -1127,77 +775,54 @@ }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectFindModule" = { Frame = "{{0, 0}, {634, 488}}"; - RubberWindowFrame = "333 371 634 530 0 0 1280 1002 "; + RubberWindowFrame = "373 471 634 530 0 0 1280 1002 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { - Frame = "{{0, 0}, {1280, 886}}"; - PBXProjectWorkspaceModule_GeometryKey_Rev11 = { - PBXProjectWorkspaceModule_SGTM_Geometry = { - _collapsingFrameDimension = 0; - _indexOfCollapsedView = 0; - _percentageOfCollapsedView = 0; - sizes = ( - "{{0, 0}, {207, 866}}", - "{{207, 0}, {1073, 866}}", - ); - }; + Frame = "{{0, 0}, {1280, 869}}"; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { }; - WindowFrame = "{{0, 54}, {1280, 948}}"; + RubberWindowFrame = "0 91 1280 911 0 0 1280 1002 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = { Frame = "{{0, 0}, {767, 743}}"; PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "502 124 767 764 0 0 1280 1002 "; + RubberWindowFrame = "398 146 767 764 0 0 1280 1002 "; }; - PBXWorkspaceStateSaveDate = 100588994; + PBXWorkspaceStateSaveDate = 101460657; }; perUserProjectItems = { - 6E48626F059421D8006D09F8 = 6E48626F059421D8006D09F8; + 6E1B2CDA060AB14300B6B2F9 = 6E1B2CDA060AB14300B6B2F9; + 6E1B2CDB060AB14300B6B2F9 = 6E1B2CDB060AB14300B6B2F9; + 6E1B2CDC060AB14300B6B2F9 = 6E1B2CDC060AB14300B6B2F9; + 6E1B2CDD060AB14300B6B2F9 = 6E1B2CDD060AB14300B6B2F9; + 6E1B2CDE060AB14300B6B2F9 = 6E1B2CDE060AB14300B6B2F9; + 6E1B2CDF060AB14300B6B2F9 = 6E1B2CDF060AB14300B6B2F9; + 6E1B2CE0060AB14300B6B2F9 = 6E1B2CE0060AB14300B6B2F9; + 6E1B2CE2060AB14300B6B2F9 = 6E1B2CE2060AB14300B6B2F9; + 6E1B2CE9060AB14300B6B2F9 = 6E1B2CE9060AB14300B6B2F9; + 6E1B2CEC060AB14300B6B2F9 = 6E1B2CEC060AB14300B6B2F9; + 6E1B2CED060AB14300B6B2F9 = 6E1B2CED060AB14300B6B2F9; + 6E1B2CFD060AB14300B6B2F9 = 6E1B2CFD060AB14300B6B2F9; + 6E1B2D07060AB14300B6B2F9 = 6E1B2D07060AB14300B6B2F9; + 6E1B2D08060AB14300B6B2F9 = 6E1B2D08060AB14300B6B2F9; + 6E1B2D45060AC5AC00B6B2F9 = 6E1B2D45060AC5AC00B6B2F9; 6E486275059421D8006D09F8 = 6E486275059421D8006D09F8; 6E486276059421D8006D09F8 = 6E486276059421D8006D09F8; 6E486277059421D8006D09F8 = 6E486277059421D8006D09F8; 6E48627C059421D8006D09F8 = 6E48627C059421D8006D09F8; - 6E55006805FD21B800EE693C = 6E55006805FD21B800EE693C; 6E55007005FD2C9D00EE693C = 6E55007005FD2C9D00EE693C; - 6E55007205FD2C9D00EE693C = 6E55007205FD2C9D00EE693C; - 6E55008505FD2CD800EE693C = 6E55008505FD2CD800EE693C; - 6E6A7F7C05FEDDCB004D2DF3 = 6E6A7F7C05FEDDCB004D2DF3; - 6E6A7F7D05FEDDCB004D2DF3 = 6E6A7F7D05FEDDCB004D2DF3; 6E6A7F8005FEDDD3004D2DF3 = 6E6A7F8005FEDDD3004D2DF3; - 6E6A7F8105FEDDD3004D2DF3 = 6E6A7F8105FEDDD3004D2DF3; - 6E6A7F8505FEDDEC004D2DF3 = 6E6A7F8505FEDDEC004D2DF3; - 6E6A7F8905FEDE21004D2DF3 = 6E6A7F8905FEDE21004D2DF3; - 6E6A7F8D05FEDE27004D2DF3 = 6E6A7F8D05FEDE27004D2DF3; - 6E6A7F9105FEDE33004D2DF3 = 6E6A7F9105FEDE33004D2DF3; - 6E6A7F9505FEDE35004D2DF3 = 6E6A7F9505FEDE35004D2DF3; - 6E6A7F9905FEDE6A004D2DF3 = 6E6A7F9905FEDE6A004D2DF3; - 6E6A7FA105FEDEB7004D2DF3 = 6E6A7FA105FEDEB7004D2DF3; - 6E6A7FA505FEDEDD004D2DF3 = 6E6A7FA505FEDEDD004D2DF3; 6E6A7FAB05FEDEE9004D2DF3 = 6E6A7FAB05FEDEE9004D2DF3; - 6E6A7FB505FEDF13004D2DF3 = 6E6A7FB505FEDF13004D2DF3; - 6E6A7FB605FEDF13004D2DF3 = 6E6A7FB605FEDF13004D2DF3; - 6E6A7FCC05FEE038004D2DF3 = 6E6A7FCC05FEE038004D2DF3; - 6E6A7FCD05FEE038004D2DF3 = 6E6A7FCD05FEE038004D2DF3; - 6E6A7FD105FEE047004D2DF3 = 6E6A7FD105FEE047004D2DF3; - 6E6A7FD405FEE053004D2DF3 = 6E6A7FD405FEE053004D2DF3; - 6E6A7FD505FEE053004D2DF3 = 6E6A7FD505FEE053004D2DF3; 6E6A7FD805FEE064004D2DF3 = 6E6A7FD805FEE064004D2DF3; - 6E6A7FD905FEE064004D2DF3 = 6E6A7FD905FEE064004D2DF3; - 6E6A7FDC05FEED08004D2DF3 = 6E6A7FDC05FEED08004D2DF3; 6E8DD55E05FC512600D2C0EA = 6E8DD55E05FC512600D2C0EA; 6E8DD56405FC5BD100D2C0EA = 6E8DD56405FC5BD100D2C0EA; 6E8DD58F05FC5D1E00D2C0EA = 6E8DD58F05FC5D1E00D2C0EA; - 6E8DD5D705FC5F3500D2C0EA = 6E8DD5D705FC5F3500D2C0EA; - 6E8DD5E305FC605F00D2C0EA = 6E8DD5E305FC605F00D2C0EA; 6E8DD5EA05FC607A00D2C0EA = 6E8DD5EA05FC607A00D2C0EA; 6E8DD64605FC674200D2C0EA = 6E8DD64605FC674200D2C0EA; 6E8DD65F05FC692500D2C0EA = 6E8DD65F05FC692500D2C0EA; 6E8DD66605FC696100D2C0EA = 6E8DD66605FC696100D2C0EA; - 6E8DD66A05FC696500D2C0EA = 6E8DD66A05FC696500D2C0EA; 6E8DD68105FC6AF400D2C0EA = 6E8DD68105FC6AF400D2C0EA; 6E8DD68A05FC6B5C00D2C0EA = 6E8DD68A05FC6B5C00D2C0EA; - 6E8DD6CB05FC701300D2C0EA = 6E8DD6CB05FC701300D2C0EA; - 6E8DD6CF05FC709E00D2C0EA = 6E8DD6CF05FC709E00D2C0EA; 6E8DD6EA05FC748B00D2C0EA = 6E8DD6EA05FC748B00D2C0EA; 6E8DD6F305FC74F400D2C0EA = 6E8DD6F305FC74F400D2C0EA; 6E8DD70505FC761C00D2C0EA = 6E8DD70505FC761C00D2C0EA; @@ -1209,7 +834,6 @@ 6E8DD71805FC763300D2C0EA = 6E8DD71805FC763300D2C0EA; 6E8DD71B05FC763C00D2C0EA = 6E8DD71B05FC763C00D2C0EA; 6E8DD71C05FC763C00D2C0EA = 6E8DD71C05FC763C00D2C0EA; - 6E8DD74405FC776700D2C0EA = 6E8DD74405FC776700D2C0EA; 6E8DD75305FC778700D2C0EA = 6E8DD75305FC778700D2C0EA; 6E8DD76205FC783B00D2C0EA = 6E8DD76205FC783B00D2C0EA; 6E8EDFDA05F7DBEE00ED3F4F = 6E8EDFDA05F7DBEE00ED3F4F; @@ -1227,7 +851,28 @@ 6E90C35F05FB0DAD00857F22 = 6E90C35F05FB0DAD00857F22; 6E90C36C05FC07B100857F22 = 6E90C36C05FC07B100857F22; 6E90C39A05FC0B3600857F22 = 6E90C39A05FC0B3600857F22; + 6E976BD3060BC2AB00FDABB0 = 6E976BD3060BC2AB00FDABB0; + 6E976BD4060BC2AB00FDABB0 = 6E976BD4060BC2AB00FDABB0; 6E9D6CED059429D400D9A2D7 = 6E9D6CED059429D400D9A2D7; + 6EE811830602584A00F1CD3F = 6EE811830602584A00F1CD3F; + 6EE811C40602592500F1CD3F = 6EE811C40602592500F1CD3F; + 6EE811D50602595D00F1CD3F = 6EE811D50602595D00F1CD3F; + 6EE811EE060259D600F1CD3F = 6EE811EE060259D600F1CD3F; + 6EE811FD06025A4300F1CD3F = 6EE811FD06025A4300F1CD3F; + 6EE811FF06025A4300F1CD3F = 6EE811FF06025A4300F1CD3F; + 6EE8120F06025ABA00F1CD3F = 6EE8120F06025ABA00F1CD3F; + 6EE8121006025ABA00F1CD3F = 6EE8121006025ABA00F1CD3F; + 6EE8122306025C6300F1CD3F = 6EE8122306025C6300F1CD3F; + 6EE8122406025C6300F1CD3F = 6EE8122406025C6300F1CD3F; + 6EE81236060274E900F1CD3F = 6EE81236060274E900F1CD3F; + 6EE815E40602A97C00F1CD3F = 6EE815E40602A97C00F1CD3F; + 6EF4D0B9060C2CF300F4728B = 6EF4D0B9060C2CF300F4728B; + 6EF4D0BA060C2CF300F4728B = 6EF4D0BA060C2CF300F4728B; + 6EF4D0BB060C2CF300F4728B = 6EF4D0BB060C2CF300F4728B; + 6EF4D0BC060C2CF300F4728B = 6EF4D0BC060C2CF300F4728B; + 6EF4D0BD060C2CF300F4728B = 6EF4D0BD060C2CF300F4728B; + 6EF4D0BE060C2CF300F4728B = 6EF4D0BE060C2CF300F4728B; + 6EF4D0BF060C2CF300F4728B = 6EF4D0BF060C2CF300F4728B; }; sourceControlManager = 6EAD5EEA054C3932005761EE; userBuildSettings = { @@ -1235,24 +880,24 @@ }; 2A37F4ACFDCFA73011CA2CEA = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {2309, 29535}}"; - sepNavSelRange = "{37074, 0}"; - sepNavVisRect = "{{0, 25042}, {1002, 621}}"; + sepNavIntBoundsRect = "{{0, 0}, {2309, 29919}}"; + sepNavSelRange = "{23043, 0}"; + sepNavVisRect = "{{0, 14084}, {1002, 712}}"; sepNavWindowFrame = "{{15, 439}, {750, 558}}"; }; }; 2A37F4AEFDCFA73011CA2CEA = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 3216}}"; - sepNavSelRange = "{1020, 0}"; - sepNavVisRect = "{{0, 842}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 3232}}"; + sepNavSelRange = "{3017, 0}"; + sepNavVisRect = "{{0, 663}, {1002, 712}}"; }; }; 2A37F4B0FDCFA73011CA2CEA = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1034, 408}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {1034, 408}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 594}}"; + sepNavSelRange = "{363, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 594}}"; }; }; 2A37F4B7FDCFA73011CA2CEA = { @@ -1262,9 +907,9 @@ }; 32DBCF750370BD2300C91783 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1034, 408}}"; - sepNavSelRange = "{238, 0}"; - sepNavVisRect = "{{0, 0}, {1034, 408}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 616}}"; + sepNavSelRange = "{162, 8}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; 6E0BDF7D0511568D00A80003 = { @@ -1276,37 +921,37 @@ }; 6E0D40AC05223CCE00A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 784}}"; - sepNavSelRange = "{778, 9}"; - sepNavVisRect = "{{0, 133}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 800}}"; + sepNavSelRange = "{256, 0}"; + sepNavVisRect = "{{0, 92}, {1002, 616}}"; }; }; 6E0D40AD05223CCE00A80003 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1002, 2960}}"; sepNavSelRange = "{1743, 0}"; - sepNavVisRect = "{{0, 963}, {1002, 587}}"; + sepNavVisRect = "{{0, 959}, {1002, 594}}"; }; }; 6E0D40B4052243D500A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 720}}"; - sepNavSelRange = "{914, 28}"; - sepNavVisRect = "{{0, 99}, {1002, 621}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 736}}"; + sepNavSelRange = "{362, 0}"; + sepNavVisRect = "{{0, 104}, {1002, 616}}"; }; }; 6E0D40B5052243D500A80003 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1133, 1872}}"; sepNavSelRange = "{1682, 0}"; - sepNavVisRect = "{{0, 1022}, {1002, 621}}"; + sepNavVisRect = "{{0, 1002}, {1002, 616}}"; }; }; 6E0D40B80522449500A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1034, 710}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {1034, 710}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 656}}"; + sepNavSelRange = "{355, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; 6E0D40B90522449500A80003 = { @@ -1346,48 +991,220 @@ }; 6E146B11051FA42C00A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1034, 641}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {1034, 641}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 616}}"; + sepNavSelRange = "{353, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; 6E146B12051FA42C00A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1053, 3680}}"; - sepNavSelRange = "{3384, 0}"; - sepNavVisRect = "{{0, 2089}, {1053, 631}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 3680}}"; + sepNavSelRange = "{424, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; + 6E1B2CDA060AB14300B6B2F9 = { + fRef = 6E71F41B051BCCC600A80003; + isa = PBXTextBookmark; + name = "cheat_globals.h: 23"; + rLen = 0; + rLoc = 688; + rType = 0; + vrLen = 1265; + vrLoc = 106; + }; + 6E1B2CDB060AB14300B6B2F9 = { + fRef = 6E3F0D01050D4ACC00A80003; + isa = PBXTextBookmark; + name = "cheat_net.h: 29"; + rLen = 0; + rLoc = 725; + rType = 0; + vrLen = 832; + vrLoc = 0; + }; + 6E1B2CDC060AB14300B6B2F9 = { + fRef = 6E3F0D02050D4ACC00A80003; + isa = PBXTextBookmark; + name = "int SendBuffer( int sockfd, char const *buffer, int *length )\n"; + rLen = 62; + rLoc = 1498; + rType = 0; + vrLen = 520; + vrLoc = 1378; + }; + 6E1B2CDD060AB14300B6B2F9 = { + fRef = 6E4E098F050BB21400A80003; + isa = PBXTextBookmark; + name = "CheatServer.h: maxSearchResultsAmount"; + rLen = 0; + rLoc = 884; + rType = 0; + vrLen = 681; + vrLoc = 438; + }; + 6E1B2CDE060AB14300B6B2F9 = { + fRef = 2A37F4B0FDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "main.m: 14"; + rLen = 0; + rLoc = 363; + rType = 0; + vrLen = 477; + vrLoc = 0; + }; + 6E1B2CDF060AB14300B6B2F9 = { + fRef = 6E1B2D18060AB14400B6B2F9; + isa = PBXTextBookmark; + name = "(null): 26"; + rLen = 0; + rLoc = 530; + rType = 0; + vrLen = 1163; + vrLoc = 0; + }; + 6E1B2CE0060AB14300B6B2F9 = { + fRef = 6E1B2D17060AB14400B6B2F9; + isa = PBXTextBookmark; + name = "(null): 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 390; + vrLoc = 0; + }; + 6E1B2CE2060AB14300B6B2F9 = { + fRef = 6E0D40AD05223CCE00A80003; + isa = PBXTextBookmark; + name = "NetTrafficController.m: 79"; + rLen = 0; + rLoc = 1743; + rType = 0; + vrLen = 885; + vrLoc = 1326; + }; + 6E1B2CE9060AB14300B6B2F9 = { + fRef = 6E3F0D01050D4ACC00A80003; + isa = PBXTextBookmark; + name = "cheat_net.h: 14"; + rLen = 0; + rLoc = 370; + rType = 0; + vrLen = 816; + vrLoc = 0; + }; + 6E1B2CEC060AB14300B6B2F9 = { + fRef = 6E4E098E050BB21400A80003; + isa = PBXTextBookmark; + name = SendBuffer; + rLen = 10; + rLoc = 31880; + rType = 0; + vrLen = 1001; + vrLoc = 30972; + }; + 6E1B2CED060AB14300B6B2F9 = { + fRef = 6E3F0D02050D4ACC00A80003; + isa = PBXTextBookmark; + name = "int SendBuffer( int sockfd, char const *buffer, int *length )\n"; + rLen = 62; + rLoc = 1498; + rType = 0; + vrLen = 520; + vrLoc = 1378; + }; + 6E1B2CFD060AB14300B6B2F9 = { + fRef = 2A37F4B0FDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "main.m: 14"; + rLen = 0; + rLoc = 363; + rType = 0; + vrLen = 477; + vrLoc = 0; + }; + 6E1B2D07060AB14300B6B2F9 = { + fRef = 6E1B2D16060AB14400B6B2F9; + isa = PBXTextBookmark; + name = "(null): 26"; + rLen = 0; + rLoc = 530; + rType = 0; + vrLen = 1163; + vrLoc = 0; + }; + 6E1B2D08060AB14300B6B2F9 = { + fRef = 6E1B2D1A060AB14400B6B2F9; + isa = PBXTextBookmark; + name = "(null): 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 390; + vrLoc = 0; + }; + 6E1B2D16060AB14400B6B2F9 = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CMUpdateCheck.h; + path = /Users/chaz/Projects/Chaz/build/Chaz.framework/Versions/A/Headers/CMUpdateCheck.h; + refType = 0; + sourceTree = ""; + }; + 6E1B2D17060AB14400B6B2F9 = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CMStatusView.h; + path = /Users/chaz/Projects/Chaz/build/Chaz.framework/Versions/A/Headers/CMStatusView.h; + refType = 0; + sourceTree = ""; + }; + 6E1B2D18060AB14400B6B2F9 = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CMUpdateCheck.h; + path = /Users/chaz/Projects/Chaz/build/Chaz.framework/Versions/A/Headers/CMUpdateCheck.h; + refType = 0; + sourceTree = ""; + }; + 6E1B2D1A060AB14400B6B2F9 = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = CMStatusView.h; + path = /Users/chaz/Projects/Chaz/build/Chaz.framework/Versions/A/Headers/CMStatusView.h; + refType = 0; + sourceTree = ""; + }; + 6E1B2D45060AC5AC00B6B2F9 = { + fRef = 6E4E098E050BB21400A80003; + isa = PBXTextBookmark; + name = "CheatServer.m: 1564"; + rLen = 0; + rLoc = 37370; + rType = 0; + vrLen = 635; + vrLoc = 37133; + }; 6E3F0D01050D4ACC00A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1034, 799}}"; - sepNavSelRange = "{327, 21}"; - sepNavVisRect = "{{0, 0}, {1034, 302}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 831}}"; + sepNavSelRange = "{725, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 594}}"; }; }; 6E3F0D02050D4ACC00A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1059, 1808}}"; - sepNavSelRange = "{1627, 0}"; - sepNavVisRect = "{{0, 952}, {1059, 536}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 1808}}"; + sepNavSelRange = "{1498, 62}"; + sepNavVisRect = "{{0, 939}, {1002, 594}}"; }; }; - 6E48626F059421D8006D09F8 = { - fRef = 6E146B12051FA42C00A80003; - isa = PBXTextBookmark; - name = "CheatClient.m: 149"; - rLen = 0; - rLoc = 3384; - rType = 0; - vrLen = 894; - vrLoc = 3020; - }; 6E486275059421D8006D09F8 = { fRef = 6E4E098C050BB21400A80003; isa = PBXTextBookmark; name = "AppController.h: launchWebsiteMenu:"; rLen = 0; - rLoc = 1550; + rLoc = 1572; rType = 0; vrLen = 986; vrLoc = 516; @@ -1417,52 +1234,52 @@ isa = PBXTextBookmark; name = "CheatClient.m: 149"; rLen = 0; - rLoc = 3384; + rLoc = 3391; rType = 0; vrLen = 894; vrLoc = 3020; }; 6E4E098C050BB21400A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 1024}}"; - sepNavSelRange = "{1429, 39}"; - sepNavVisRect = "{{0, 437}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 1072}}"; + sepNavSelRange = "{1308, 0}"; + sepNavVisRect = "{{0, 440}, {1002, 611}}"; }; }; 6E4E098D050BB21400A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1063, 8144}}"; - sepNavSelRange = "{5742, 0}"; - sepNavVisRect = "{{0, 3138}, {1002, 621}}"; + sepNavIntBoundsRect = "{{0, 0}, {1063, 8784}}"; + sepNavSelRange = "{1035, 0}"; + sepNavVisRect = "{{0, 447}, {1002, 594}}"; }; }; 6E4E098E050BB21400A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1287, 33680}}"; - sepNavSelRange = "{18387, 0}"; - sepNavVisRect = "{{0, 11684}, {1002, 834}}"; + sepNavIntBoundsRect = "{{0, 0}, {1287, 33760}}"; + sepNavSelRange = "{37370, 0}"; + sepNavVisRect = "{{0, 24832}, {1002, 589}}"; sepNavWindowFrame = "{{0, 51}, {1280, 951}}"; }; }; 6E4E098F050BB21400A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 1695}}"; - sepNavSelRange = "{834, 22}"; - sepNavVisRect = "{{0, 309}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 1711}}"; + sepNavSelRange = "{884, 0}"; + sepNavVisRect = "{{0, 288}, {1002, 594}}"; }; }; 6E51A97C0573304C00506538 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 587}}"; - sepNavSelRange = "{459, 0}"; - sepNavVisRect = "{{0, 0}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 616}}"; + sepNavSelRange = "{335, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; 6E51A97D0573304C00506538 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 703}}"; - sepNavSelRange = "{655, 0}"; - sepNavVisRect = "{{0, 101}, {1002, 592}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 671}}"; + sepNavSelRange = "{372, 0}"; + sepNavVisRect = "{{0, 55}, {1002, 616}}"; }; }; 6E51A986057330B900506538 = { @@ -1479,16 +1296,6 @@ sepNavVisRect = "{{0, 0}, {1002, 587}}"; }; }; - 6E55006805FD21B800EE693C = { - fRef = 6E4E098E050BB21400A80003; - isa = PBXTextBookmark; - name = vm_read_overwrite; - rLen = 17; - rLoc = 18241; - rType = 0; - vrLen = 1417; - vrLoc = 17209; - }; 6E55007005FD2C9D00EE693C = { fRef = 6E55007605FD2CAE00EE693C; isa = PBXTextBookmark; @@ -1499,16 +1306,6 @@ vrLen = 843; vrLoc = 2681; }; - 6E55007205FD2C9D00EE693C = { - fRef = 6E4E098E050BB21400A80003; - isa = PBXTextBookmark; - name = "CheatServer.m: 759"; - rLen = 0; - rLoc = 18387; - rType = 0; - vrLen = 1273; - vrLoc = 17613; - }; 6E55007605FD2CAE00EE693C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; @@ -1517,36 +1314,6 @@ refType = 0; sourceTree = ""; }; - 6E55008505FD2CD800EE693C = { - fRef = 089C1660FE840EACC02AAC07; - isa = PBXTextBookmark; - name = "English: 4"; - rLen = 0; - rLoc = 110; - rType = 0; - vrLen = 207; - vrLoc = 0; - }; - 6E6A7F7C05FEDDCB004D2DF3 = { - fRef = 6EF8EC08055A1730008BBE46; - isa = PBXTextBookmark; - name = "Info-The_Cheat.plist: 21"; - rLen = 0; - rLoc = 613; - rType = 0; - vrLen = 1174; - vrLoc = 0; - }; - 6E6A7F7D05FEDDCB004D2DF3 = { - fRef = 6EF8EC08055A1730008BBE46; - isa = PBXTextBookmark; - name = "Info-The_Cheat.plist: 21"; - rLen = 0; - rLoc = 613; - rType = 0; - vrLen = 1174; - vrLoc = 0; - }; 6E6A7F8005FEDDD3004D2DF3 = { fRef = 6E0D40C405225DA100A80003; isa = PBXTextBookmark; @@ -1557,96 +1324,6 @@ vrLen = 695; vrLoc = 0; }; - 6E6A7F8105FEDDD3004D2DF3 = { - fRef = 6E0D40C405225DA100A80003; - isa = PBXTextBookmark; - name = "- (void)preferenceSetWindowsOnTop:(BOOL)windowsOnTop;"; - rLen = 53; - rLoc = 377; - rType = 0; - vrLen = 695; - vrLoc = 0; - }; - 6E6A7F8505FEDDEC004D2DF3 = { - fRef = 6E4E098D050BB21400A80003; - isa = PBXTextBookmark; - name = "- (void)preferenceSetWindowsOnTop:(BOOL)windowsOnTop\n"; - rLen = 53; - rLoc = 5508; - rType = 0; - vrLen = 1359; - vrLoc = 5209; - }; - 6E6A7F8905FEDE21004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 61"; - rLen = 0; - rLoc = 1499; - rType = 0; - vrLen = 1401; - vrLoc = 0; - }; - 6E6A7F8D05FEDE27004D2DF3 = { - fRef = 6E0D40B4052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.h: interfaceUpdate"; - rLen = 0; - rLoc = 849; - rType = 0; - vrLen = 979; - vrLoc = 0; - }; - 6E6A7F9105FEDE33004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 61"; - rLen = 0; - rLoc = 1499; - rType = 0; - vrLen = 1740; - vrLoc = 1497; - }; - 6E6A7F9505FEDE35004D2DF3 = { - fRef = 6E0D40B4052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.h: interfaceUpdate"; - rLen = 0; - rLoc = 849; - rType = 0; - vrLen = 979; - vrLoc = 0; - }; - 6E6A7F9905FEDE6A004D2DF3 = { - fRef = 6E4E098D050BB21400A80003; - isa = PBXTextBookmark; - name = "AppController.m: 219"; - rLen = 0; - rLoc = 5613; - rType = 0; - vrLen = 1406; - vrLoc = 5191; - }; - 6E6A7FA105FEDEB7004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 61"; - rLen = 0; - rLoc = 1499; - rType = 0; - vrLen = 1740; - vrLoc = 1497; - }; - 6E6A7FA505FEDEDD004D2DF3 = { - fRef = 6E4E098D050BB21400A80003; - isa = PBXTextBookmark; - name = "AppController.m: 216"; - rLen = 0; - rLoc = 5564; - rType = 0; - vrLen = 1413; - vrLoc = 5191; - }; 6E6A7FAB05FEDEE9004D2DF3 = { fRef = 6E6A7FB105FEDEF5004D2DF3; isa = PBXTextBookmark; @@ -1659,123 +1336,34 @@ }; 6E6A7FB105FEDEF5004D2DF3 = { isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = NSNotification.h; path = /Developer/SDKs/MacOSX10.2.7.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSNotification.h; refType = 0; sourceTree = ""; }; - 6E6A7FB505FEDF13004D2DF3 = { - fRef = 2A37F4ACFDCFA73011CA2CEA; - isa = PBXTextBookmark; - name = "MyDocument.m: 1585"; - rLen = 0; - rLoc = 37074; - rType = 0; - vrLen = 1532; - vrLoc = 36221; - }; - 6E6A7FB605FEDF13004D2DF3 = { - fRef = 2A37F4ACFDCFA73011CA2CEA; - isa = PBXTextBookmark; - name = "MyDocument.m: 1585"; - rLen = 0; - rLoc = 37074; - rType = 0; - vrLen = 1532; - vrLoc = 36221; - }; - 6E6A7FCC05FEE038004D2DF3 = { - fRef = 6E4E098D050BB21400A80003; - isa = PBXTextBookmark; - name = "AppController.m: 218"; - rLen = 0; - rLoc = 5742; - rType = 0; - vrLen = 1032; - vrLoc = 5079; - }; - 6E6A7FCD05FEE038004D2DF3 = { - fRef = 6E4E098D050BB21400A80003; - isa = PBXTextBookmark; - name = "AppController.m: 218"; - rLen = 0; - rLoc = 5742; - rType = 0; - vrLen = 1032; - vrLoc = 5079; - }; - 6E6A7FD105FEE047004D2DF3 = { - fRef = 6E0D40B4052243D500A80003; - isa = PBXTextBookmark; - name = "- (IBAction)apply:(id)sender"; - rLen = 28; - rLoc = 914; - rType = 0; - vrLen = 896; - vrLoc = 109; - }; - 6E6A7FD405FEE053004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 76"; - rLen = 0; - rLoc = 1660; - rType = 0; - vrLen = 810; - vrLoc = 1413; - }; - 6E6A7FD505FEE053004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 76"; - rLen = 0; - rLoc = 1660; - rType = 0; - vrLen = 810; - vrLoc = 1413; - }; 6E6A7FD805FEE064004D2DF3 = { fRef = 6E0D40B4052243D500A80003; isa = PBXTextBookmark; name = "- (IBAction)apply:(id)sender"; rLen = 28; - rLoc = 914; + rLoc = 936; rType = 0; vrLen = 834; vrLoc = 176; }; - 6E6A7FD905FEE064004D2DF3 = { - fRef = 6E0D40B4052243D500A80003; - isa = PBXTextBookmark; - name = "- (IBAction)apply:(id)sender"; - rLen = 28; - rLoc = 914; - rType = 0; - vrLen = 834; - vrLoc = 176; - }; - 6E6A7FDC05FEED08004D2DF3 = { - fRef = 6E0D40B5052243D500A80003; - isa = PBXTextBookmark; - name = "PreferenceController.m: 76"; - rLen = 0; - rLoc = 1682; - rType = 0; - vrLen = 1605; - vrLoc = 1531; - }; 6E71F41B051BCCC600A80003 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1002, 719}}"; - sepNavSelRange = "{424, 0}"; - sepNavVisRect = "{{0, 96}, {1002, 587}}"; + sepNavSelRange = "{688, 0}"; + sepNavVisRect = "{{0, 63}, {1002, 594}}"; }; }; 6E71F41C051BCCC600A80003 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 587}}"; - sepNavSelRange = "{1093, 19}"; - sepNavVisRect = "{{0, 0}, {1002, 587}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 616}}"; + sepNavSelRange = "{405, 20}"; + sepNavVisRect = "{{0, 0}, {1002, 616}}"; }; }; 6E8DD55E05FC512600D2C0EA = { @@ -1803,31 +1391,11 @@ isa = PBXTextBookmark; name = "MyDocument.h: maxSearchResultsAmount"; rLen = 0; - rLoc = 1020; + rLoc = 1041; rType = 0; vrLen = 850; vrLoc = 576; }; - 6E8DD5D705FC5F3500D2C0EA = { - fRef = 6E4E098F050BB21400A80003; - isa = PBXTextBookmark; - name = maxSearchResultsAmount; - rLen = 22; - rLoc = 834; - rType = 0; - vrLen = 685; - vrLoc = 444; - }; - 6E8DD5E305FC605F00D2C0EA = { - fRef = 2A37F4AEFDCFA73011CA2CEA; - isa = PBXTextBookmark; - name = "MyDocument.h: maxSearchResultsAmount"; - rLen = 0; - rLoc = 1020; - rType = 0; - vrLen = 1195; - vrLoc = 1147; - }; 6E8DD5EA05FC607A00D2C0EA = { fRef = 6E8DD5EF05FC609800D2C0EA; isa = PBXTextBookmark; @@ -1879,21 +1447,11 @@ isa = PBXTextBookmark; name = "AboutBoxController.h: nameVersionText"; rLen = 0; - rLoc = 459; + rLoc = 476; rType = 0; vrLen = 573; vrLoc = 0; }; - 6E8DD66A05FC696500D2C0EA = { - fRef = 6E4E098C050BB21400A80003; - isa = PBXTextBookmark; - name = "- (IBAction)launchEmailMenu:(id)sender;"; - rLen = 39; - rLoc = 1429; - rType = 0; - vrLen = 880; - vrLoc = 702; - }; 6E8DD68105FC6AF400D2C0EA = { fRef = 6E8DD68505FC6B1200D2C0EA; isa = PBXTextBookmark; @@ -1919,28 +1477,8 @@ rLen = 0; rLoc = 3248; rType = 0; - vrLen = 1597; - vrLoc = 3780; - }; - 6E8DD6CB05FC701300D2C0EA = { - fRef = 6E71F41C051BCCC600A80003; - isa = PBXTextBookmark; - name = TCHitsDisplayedPref; - rLen = 19; - rLoc = 1093; - rType = 0; - vrLen = 1138; - vrLoc = 0; - }; - 6E8DD6CF05FC709E00D2C0EA = { - fRef = 6E71F41B051BCCC600A80003; - isa = PBXTextBookmark; - name = "cheat_globals.h: TCDefaultListenPort"; - rLen = 0; - rLoc = 424; - rType = 0; - vrLen = 1210; - vrLoc = 169; + vrLen = 0; + vrLoc = 3290; }; 6E8DD6EA05FC748B00D2C0EA = { fRef = 6E8DD6ED05FC74A900D2C0EA; @@ -1965,7 +1503,7 @@ isa = PBXTextBookmark; name = broadcastWithName; rLen = 17; - rLoc = 2520; + rLoc = 2917; rType = 0; vrLen = 1300; vrLoc = 1648; @@ -2060,22 +1598,12 @@ vrLen = 530; vrLoc = 0; }; - 6E8DD74405FC776700D2C0EA = { - fRef = 6E0D40AD05223CCE00A80003; - isa = PBXTextBookmark; - name = "NetTrafficController.m: 79"; - rLen = 0; - rLoc = 1743; - rType = 0; - vrLen = 876; - vrLoc = 1329; - }; 6E8DD75305FC778700D2C0EA = { fRef = 6E0D40AC05223CCE00A80003; isa = PBXTextBookmark; name = serverSet; rLen = 9; - rLoc = 778; + rLoc = 800; rType = 0; vrLen = 832; vrLoc = 235; @@ -2101,7 +1629,7 @@ name = " "; rLen = 1; - rLoc = 1090; + rLoc = 1118; rType = 0; vrLen = 727; vrLoc = 0; @@ -2111,7 +1639,7 @@ isa = PBXTextBookmark; name = "cheat_globals.m: TCGlobalUpdateAutomatically"; rLen = 0; - rLoc = 620; + rLoc = 619; rType = 0; vrLen = 994; vrLoc = 0; @@ -2131,9 +1659,9 @@ isa = PBXTextBookmark; name = "PreferenceController.h: updateAutomaticallyButton"; rLen = 0; - rLoc = 613; + rLoc = 635; rType = 0; - vrLen = 974; + vrLen = 904; vrLoc = 106; }; 6E90C09A05FA7EA900857F22 = { @@ -2215,7 +1743,7 @@ isa = PBXTextBookmark; name = "AboutBoxController.m: 20"; rLen = 0; - rLoc = 456; + rLoc = 424; rType = 0; vrLen = 656; vrLoc = 0; @@ -2225,7 +1753,7 @@ isa = PBXTextBookmark; name = "AboutBoxController.h: aboutWindow"; rLen = 0; - rLoc = 414; + rLoc = 431; rType = 0; vrLen = 533; vrLoc = 0; @@ -2235,11 +1763,31 @@ isa = PBXTextBookmark; name = "AboutBoxController.m: 28"; rLen = 0; - rLoc = 655; + rLoc = 623; rType = 0; vrLen = 646; vrLoc = 174; }; + 6E976BD3060BC2AB00FDABB0 = { + fRef = 6E4E098D050BB21400A80003; + isa = PBXTextBookmark; + name = "AppController.m: 41"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 1865; + vrLoc = 569; + }; + 6E976BD4060BC2AB00FDABB0 = { + fRef = 089C1660FE840EACC02AAC07; + isa = PBXTextBookmark; + name = "English: 4"; + rLen = 0; + rLoc = 110; + rType = 0; + vrLen = 207; + vrLoc = 0; + }; 6E9D6CED059429D400D9A2D7 = { fRef = 089C1660FE840EACC02AAC07; isa = PBXTextBookmark; @@ -2291,12 +1839,250 @@ sepNavVisRect = "{{0, 0}, {1034, 710}}"; }; }; + 6EE811830602584A00F1CD3F = { + fRef = 6E0D40B5052243D500A80003; + isa = PBXTextBookmark; + name = "PreferenceController.m: 76"; + rLen = 0; + rLoc = 1682; + rType = 0; + vrLen = 1634; + vrLoc = 1501; + }; + 6EE811C40602592500F1CD3F = { + fRef = 6E71F41C051BCCC600A80003; + isa = PBXTextBookmark; + name = TCGlobalSessionCount; + rLen = 20; + rLoc = 405; + rType = 0; + vrLen = 1137; + vrLoc = 0; + }; + 6EE811D50602595D00F1CD3F = { + fRef = 2A37F4ACFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "SessionController.m: 53"; + rLen = 0; + rLoc = 1477; + rType = 0; + vrLen = 882; + vrLoc = 1117; + }; + 6EE811EE060259D600F1CD3F = { + fRef = 6E146B12051FA42C00A80003; + isa = PBXTextBookmark; + name = "CheatClient.m: clientWithDelegate:server:name:"; + rLen = 0; + rLoc = 424; + rType = 0; + vrLen = 1237; + vrLoc = 0; + }; + 6EE811FD06025A4300F1CD3F = { + fRef = 6EE8120606025A6E00F1CD3F; + isa = PBXTextBookmark; + name = "(null): 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 658; + vrLoc = 0; + }; + 6EE811FF06025A4300F1CD3F = { + fRef = 6EE8120806025A6E00F1CD3F; + isa = PBXTextBookmark; + name = "(null): 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 658; + vrLoc = 0; + }; + 6EE8120606025A6E00F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = AboutBoxController.m; + path = "/Users/chaz/Projects/The Cheat/AboutBoxController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE8120806025A6E00F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = AboutBoxController.m; + path = "/Users/chaz/Projects/The Cheat/AboutBoxController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE8120F06025ABA00F1CD3F = { + fRef = 6EE8121206025AD800F1CD3F; + isa = PBXTextBookmark; + name = "\n/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\n#pragma mark Accessors\n/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/"; + rLen = 269; + rLoc = 13432; + rType = 0; + vrLen = 1093; + vrLoc = 12661; + }; + 6EE8121006025ABA00F1CD3F = { + fRef = 6EE8121406025AD800F1CD3F; + isa = PBXTextBookmark; + name = "\n/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\n#pragma mark Accessors\n/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/"; + rLen = 269; + rLoc = 13432; + rType = 0; + vrLen = 1093; + vrLoc = 12661; + }; + 6EE8121206025AD800F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = AppController.m; + path = "/Users/chaz/Projects/The Cheat/AppController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE8121406025AD800F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = AppController.m; + path = "/Users/chaz/Projects/The Cheat/AppController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE8122306025C6300F1CD3F = { + fRef = 6EE8122606025C8100F1CD3F; + isa = PBXTextBookmark; + name = "- (void)windowWillClose:(NSNotification *)aNotification\n{\n\t// closing the window will automatically disconnect the client from the server,\n\t// but if the application is quitting, the client may not get a chance to exit.\n\t// this _should_ be OK.\n\t[self disconnect];\n\t\n\t// clean up status timer stuff.\n\t// we do this here because we don't want the timer to fire after the window is gone\n\t// since we need to use the window in that method.\n\t[savedStatusColor release], savedStatusColor = nil;\n\t[savedStatusText release], savedStatusText = nil;\n\t[statusTextTimer invalidate];\n\t[statusTextTimer release], statusTextTimer = nil;\n\t\n\t[self release];\n\t\n\t//[super close];\n}"; + rLen = 663; + rLoc = 2013; + rType = 0; + vrLen = 1125; + vrLoc = 1716; + }; + 6EE8122406025C6300F1CD3F = { + fRef = 6EE8122706025C8100F1CD3F; + isa = PBXTextBookmark; + name = "- (void)windowWillClose:(NSNotification *)aNotification\n{\n\t// closing the window will automatically disconnect the client from the server,\n\t// but if the application is quitting, the client may not get a chance to exit.\n\t// this _should_ be OK.\n\t[self disconnect];\n\t\n\t// clean up status timer stuff.\n\t// we do this here because we don't want the timer to fire after the window is gone\n\t// since we need to use the window in that method.\n\t[savedStatusColor release], savedStatusColor = nil;\n\t[savedStatusText release], savedStatusText = nil;\n\t[statusTextTimer invalidate];\n\t[statusTextTimer release], statusTextTimer = nil;\n\t\n\t[self release];\n\t\n\t//[super close];\n}"; + rLen = 663; + rLoc = 2013; + rType = 0; + vrLen = 1125; + vrLoc = 1716; + }; + 6EE8122606025C8100F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = ClientController.m; + path = "/Users/chaz/Projects/The Cheat/ClientController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE8122706025C8100F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.objc; + name = ClientController.m; + path = "/Users/chaz/Projects/The Cheat/ClientController.m"; + refType = 0; + sourceTree = ""; + }; + 6EE81236060274E900F1CD3F = { + fRef = 6EE81239060274E900F1CD3F; + isa = PBXBookmark; + }; + 6EE81239060274E900F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = folder; + refType = 4; + sourceTree = ""; + }; + 6EE815E40602A97C00F1CD3F = { + fRef = 6E4E098C050BB21400A80003; + isa = PBXTextBookmark; + name = "AppController.h: newSessionWindow:"; + rLen = 0; + rLoc = 1308; + rType = 0; + vrLen = 920; + vrLoc = 722; + }; 6EF0870C0575382B00B81D60 = { fileReference = 6E4E098E050BB21400A80003; isa = PBXFileBreakpoint; lineNumber = 355; state = 1; }; + 6EF4D0B9060C2CF300F4728B = { + fRef = 6EF8EC08055A1730008BBE46; + isa = PBXTextBookmark; + name = "Info-The_Cheat.plist: 16"; + rLen = 0; + rLoc = 467; + rType = 0; + vrLen = 1278; + vrLoc = 0; + }; + 6EF4D0BA060C2CF300F4728B = { + fRef = 2A37F4AEFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "SessionController.h: 116"; + rLen = 0; + rLoc = 3017; + rType = 0; + vrLen = 1333; + vrLoc = 916; + }; + 6EF4D0BB060C2CF300F4728B = { + fRef = 2A37F4ACFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "if ( [recurringChangeButton state] == NSOnState )\n\t{\n\t\t[changeSecondsCombo setEnabled:YES];\n\t}\n\telse\n\t{\n\t\t[changeSecondsCombo setEnabled:NO];\n\t}"; + rLen = 144; + rLoc = 36184; + rType = 0; + vrLen = 898; + vrLoc = 35395; + }; + 6EF4D0BC060C2CF300F4728B = { + fRef = 6EF8EC08055A1730008BBE46; + isa = PBXTextBookmark; + name = "Info-The_Cheat.plist: 16"; + rLen = 0; + rLoc = 467; + rType = 0; + vrLen = 1278; + vrLoc = 0; + }; + 6EF4D0BD060C2CF300F4728B = { + fRef = 2A37F4ACFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "if ( [recurringChangeButton state] == NSOnState )\n\t{\n\t\t[changeSecondsCombo setEnabled:YES];\n\t}\n\telse\n\t{\n\t\t[changeSecondsCombo setEnabled:NO];\n\t}"; + rLen = 144; + rLoc = 36184; + rType = 0; + vrLen = 898; + vrLoc = 35395; + }; + 6EF4D0BE060C2CF300F4728B = { + fRef = 2A37F4AEFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "SessionController.h: 116"; + rLen = 0; + rLoc = 3017; + rType = 0; + vrLen = 1333; + vrLoc = 916; + }; + 6EF4D0BF060C2CF300F4728B = { + fRef = 2A37F4ACFDCFA73011CA2CEA; + isa = PBXTextBookmark; + name = "SessionController.m: 905"; + rLen = 0; + rLoc = 23043; + rType = 0; + vrLen = 1044; + vrLoc = 22364; + }; 6EF8EBD9055A1730008BBE46 = { activeExec = 0; executables = ( @@ -2305,9 +2091,9 @@ }; 6EF8EC08055A1730008BBE46 = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1002, 834}}"; - sepNavSelRange = "{613, 0}"; - sepNavVisRect = "{{0, 0}, {1002, 834}}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 799}}"; + sepNavSelRange = "{1162, 0}"; + sepNavVisRect = "{{0, 0}, {1002, 714}}"; }; }; 6EF8EC0A055A1730008BBE46 = { diff --git a/The Cheat.pbproj/project.pbxproj b/The Cheat.pbproj/project.pbxproj index 70235de..c02181c 100644 --- a/The Cheat.pbproj/project.pbxproj +++ b/The Cheat.pbproj/project.pbxproj @@ -147,7 +147,7 @@ fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; - path = MyDocument.m; + path = SessionController.m; refType = 4; sourceTree = ""; }; @@ -155,13 +155,12 @@ fileEncoding = 30; isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; - path = MyDocument.h; + path = SessionController.h; refType = 4; sourceTree = ""; }; 2A37F4AFFDCFA73011CA2CEA = { children = ( - 32DBCF750370BD2300C91783, 2A37F4B0FDCFA73011CA2CEA, 6E51A986057330B900506538, 6E51A987057330B900506538, @@ -170,6 +169,7 @@ 6E71F41B051BCCC600A80003, 6E71F41C051BCCC600A80003, 6E0BDF7D0511568D00A80003, + 32DBCF750370BD2300C91783, ); isa = PBXGroup; name = "Other Sources"; @@ -190,7 +190,7 @@ 2A37F4B5FDCFA73011CA2CEA, ); isa = PBXVariantGroup; - name = MyDocument.nib; + name = Session.nib; path = ""; refType = 4; sourceTree = ""; @@ -199,7 +199,7 @@ isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; - path = English.lproj/MyDocument.nib; + path = English.lproj/Session.nib; refType = 4; sourceTree = ""; }; @@ -225,11 +225,13 @@ children = ( 6E8DD52805FC4EB600D2C0EA, 6E1E43700588275100526509, + 6E789E4A0603A52B008F8B51, 2A37F4B6FDCFA73011CA2CEA, + 2A37F4B4FDCFA73011CA2CEA, + 6EE8122A0602610900F1CD3F, 6E51A97605732B9000506538, 6E0D40BC052245E700A80003, 6E0D40B005223D4E00A80003, - 2A37F4B4FDCFA73011CA2CEA, 089C165FFE840EACC02AAC07, 6EF8EC08055A1730008BBE46, ); @@ -650,6 +652,19 @@ refType = 4; sourceTree = ""; }; + 6E789E4A0603A52B008F8B51 = { + isa = PBXFileReference; + lastKnownFileType = image.icns; + path = icondoc.icns; + refType = 4; + sourceTree = ""; + }; + 6E789E4B0603A52B008F8B51 = { + fileRef = 6E789E4A0603A52B008F8B51; + isa = PBXBuildFile; + settings = { + }; + }; 6E8DD52305FC4EA100D2C0EA = { buildActionMask = 2147483647; dstPath = ""; @@ -781,6 +796,30 @@ refType = 4; sourceTree = ""; }; + 6EE8122A0602610900F1CD3F = { + children = ( + 6EE8122B0602610900F1CD3F, + ); + isa = PBXVariantGroup; + name = Record.nib; + path = ""; + refType = 4; + sourceTree = ""; + }; + 6EE8122B0602610900F1CD3F = { + isa = PBXFileReference; + lastKnownFileType = wrapper.nib; + name = English; + path = English.lproj/Record.nib; + refType = 4; + sourceTree = ""; + }; + 6EE8122C0602610900F1CD3F = { + fileRef = 6EE8122A0602610900F1CD3F; + isa = PBXBuildFile; + settings = { + }; + }; 6EF8EBD9055A1730008BBE46 = { buildPhases = ( 6EF8EBDA055A1730008BBE46, @@ -793,6 +832,7 @@ buildRules = ( ); buildSettings = { + DEPLOYMENT_LOCATION = NO; FRAMEWORK_SEARCH_PATHS = /Users/chaz/Projects/Chaz/build; GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_ENABLE_ASM_KEYWORD = YES; @@ -977,6 +1017,8 @@ 6E51A97905732B9000506538, 6E1E43710588275100526509, 6E8DD52905FC4EB600D2C0EA, + 6EE8122C0602610900F1CD3F, + 6E789E4B0603A52B008F8B51, ); isa = PBXResourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; diff --git a/cheat_globals.h b/cheat_globals.h index f50a0e9..22d748b 100644 --- a/cheat_globals.h +++ b/cheat_globals.h @@ -20,7 +20,7 @@ char extern TCDefaultListenPath[104]; //#define TCMaxSearchResults (100) -int extern TCGlobalDocumentCount; +int extern TCGlobalSessionCount; int extern TCGlobalAlternateBroadcastNameCount; char extern TCGlobalListening; diff --git a/cheat_globals.m b/cheat_globals.m index dab3acb..019c725 100644 --- a/cheat_globals.m +++ b/cheat_globals.m @@ -12,7 +12,7 @@ char TCDefaultListenPath[104] = "/.thecheat_socket"; -int TCGlobalDocumentCount = 1; +int TCGlobalSessionCount = 0; int TCGlobalAlternateBroadcastNameCount = 2; char TCGlobalListening = NO; diff --git a/cheat_net.h b/cheat_net.h index 1f82d2e..38718de 100644 --- a/cheat_net.h +++ b/cheat_net.h @@ -11,6 +11,8 @@ #ifndef _cheat_net_H #define _cheat_net_H +#import + #include #include #include @@ -23,8 +25,8 @@ // macros -#define COPY_TO_BUFFER( to, from, size ) memcpy( to, from, size ), to += size; -#define COPY_FROM_BUFFER( to, from, size ) memcpy( to, from, size ), from += size; +#define COPY_TO_BUFFER( to, from, size ) memcpy( to, from, size ), (char *)to += size; +#define COPY_FROM_BUFFER( to, from, size ) memcpy( to, from, size ), (char *)from += size; struct tagPacketHeader diff --git a/cheat_net.m b/cheat_net.m index be27b7c..f668f1a 100644 --- a/cheat_net.m +++ b/cheat_net.m @@ -49,7 +49,7 @@ char VerifyChecksum( u_int32_t checksum ) return 1; } - NSLog( @"checksum failed" ); + CMLog( @"checksum failed" ); return 0; } diff --git a/icondoc.icns b/icondoc.icns new file mode 100644 index 0000000..a0f68ef Binary files /dev/null and b/icondoc.icns differ