2 // **********************************************************************
3 // The Cheat - A universal game cheater for Mac OS X
4 // (C) 2003-2005 Chaz McGarvey (BrokenZipper)
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 1, or (at your option)
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 #import "CheaterTypes.h"
25 TCArray
TCMakeArray( unsigned count
, unsigned size
)
27 TCArray array
= (TCArray
)malloc( sizeof(struct _TCArray
) );
30 array
->_bytes
= malloc( count
* size
);
32 if ( array
->_bytes
) {
33 array
->_count
= count
;
35 array
->_ownsBytes
= YES
;
45 TCArray
TCMakeArrayWithBytes( unsigned count
, unsigned size
, void *bytes
)
47 TCArray array
= TCMakeArray( count
, size
);
49 if ( array
&& bytes
) {
50 memcpy( array
->_bytes
, bytes
, count
* size
);
55 void TCReleaseArray( TCArray array
)
57 if ( array
&& array
->_ownsBytes
) {
58 free( array
->_bytes
);
64 void TCArrayAppendArray( TCArray array
, TCArray other
)
66 unsigned oldCount
= array
->_count
;
67 unsigned count
= oldCount
+ other
->_count
;
69 if ( array
->_size
!= other
->_size
) {
73 TCArrayResize( array
, count
);
74 if ( array
->_count
== count
) {
75 memcpy( array
->_bytes
+ oldCount
* array
->_size
, other
->_bytes
, other
->_count
* other
->_size
);
80 NSString
*TCStringFromArray( TCArray array
)
82 return [NSString stringWithFormat
:@
"{%p,%u,%u}", array
->_bytes
, array
->_count
, array
->_size
];