Cocoa Port: Continue refactoring the cheat system code, Part IV.
- Add the following C++ classes: ClientCheatSearcher, ClientCheatDatabase - Remove the following Obj-C classes: CocoaDSCheatSearch, CocoaDSCheatSearchParams - Remove duplicate GUI code from EmuControllerDelegate.mm and preferencesWindowDelegate.mm - All basic functionality for managing game session cheat items, the cheat database list, and cheat search are now managed through CocoaDSCheatManager.
This commit is contained in:
parent
d00e6355da
commit
12347c7cd9
|
@ -28,18 +28,32 @@ class ClientCheatManager;
|
|||
|
||||
enum CheatType
|
||||
{
|
||||
CheatType_Internal = 0,
|
||||
CheatType_Internal = 0,
|
||||
CheatType_ActionReplay = 1,
|
||||
CheatType_CodeBreaker = 2
|
||||
CheatType_CodeBreaker = 2
|
||||
};
|
||||
|
||||
enum CheatFreezeType
|
||||
{
|
||||
CheatFreezeType_Normal = 0,
|
||||
CheatFreezeType_Normal = 0,
|
||||
CheatFreezeType_CanDecrease = 1,
|
||||
CheatFreezeType_CanIncrease = 2
|
||||
};
|
||||
|
||||
enum CheatSearchStyle
|
||||
{
|
||||
CheatSearchStyle_ExactValue = 0,
|
||||
CheatSearchStyle_Comparative = 1
|
||||
};
|
||||
|
||||
enum CheatSearchCompareStyle
|
||||
{
|
||||
CheatSearchCompareStyle_GreaterThan = 0,
|
||||
CheatSearchCompareStyle_LesserThan = 1,
|
||||
CheatSearchCompareStyle_Equals = 2,
|
||||
CheatSearchCompareStyle_NotEquals = 3
|
||||
};
|
||||
|
||||
enum CheatSystemError
|
||||
{
|
||||
CheatSystemError_NoError = 0,
|
||||
|
@ -50,6 +64,20 @@ enum CheatSystemError
|
|||
CheatSystemError_FileSaveFailed = 5
|
||||
};
|
||||
|
||||
union DesmumeCheatSearchItem
|
||||
{
|
||||
uint64_t data;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32_t address;
|
||||
uint32_t value;
|
||||
};
|
||||
};
|
||||
typedef union DesmumeCheatSearchItem DesmumeCheatSearchItem;
|
||||
|
||||
typedef std::vector<DesmumeCheatSearchItem> DesmumeCheatSearchResultsList;
|
||||
|
||||
class ClientCheatItem
|
||||
{
|
||||
protected:
|
||||
|
@ -161,18 +189,58 @@ public:
|
|||
void CopyListToEngine(const bool willApplyOnlyEnabledItems, CHEATS *engineCheatList);
|
||||
};
|
||||
|
||||
class ClientCheatSearcher
|
||||
{
|
||||
protected:
|
||||
CHEATSEARCH *_desmumeSearcher;
|
||||
uint8_t _searchValueLength;
|
||||
size_t _resultsCount;
|
||||
bool _didSearchStart;
|
||||
DesmumeCheatSearchResultsList _resultsList;
|
||||
|
||||
public:
|
||||
ClientCheatSearcher();
|
||||
~ClientCheatSearcher();
|
||||
|
||||
bool DidStart() const;
|
||||
void Reset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& RefreshResults();
|
||||
const DesmumeCheatSearchResultsList& GetResults();
|
||||
size_t GetResultCount() const;
|
||||
};
|
||||
|
||||
class ClientCheatDatabase
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_list;
|
||||
std::string _title;
|
||||
std::string _date;
|
||||
std::string _lastFilePath;
|
||||
|
||||
public:
|
||||
ClientCheatDatabase();
|
||||
~ClientCheatDatabase();
|
||||
|
||||
ClientCheatList* GetList() const;
|
||||
ClientCheatList* LoadFromFile(const char *dbFilePath);
|
||||
|
||||
const char* GetTitle() const;
|
||||
const char* GetDate() const;
|
||||
};
|
||||
|
||||
class ClientCheatManager
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_workingList;
|
||||
ClientCheatList *_databaseList;
|
||||
ClientCheatList *_currentSessionList;
|
||||
ClientCheatDatabase *_currentDatabase;
|
||||
ClientCheatSearcher *_currentSearcher;
|
||||
|
||||
ClientCheatItem *_selectedItem;
|
||||
size_t _selectedItemIndex;
|
||||
uint32_t _untitledCount;
|
||||
|
||||
std::string _databaseTitle;
|
||||
std::string _databaseDate;
|
||||
std::string _lastFilePath;
|
||||
std::string _currentSessionLastFilePath;
|
||||
|
||||
bool _masterNeedsUpdate;
|
||||
|
||||
|
@ -183,19 +251,11 @@ public:
|
|||
static CHEATS* GetMaster();
|
||||
static void SetMaster(const CHEATS *masterCheats);
|
||||
|
||||
ClientCheatList* GetWorkingList() const;
|
||||
ClientCheatList* GetDatabaseList() const;
|
||||
ClientCheatList* GetSessionList() const;
|
||||
const char* GetSessionListLastFilePath() const;
|
||||
|
||||
const char* GetDatabaseTitle() const;
|
||||
void SetDatabaseTitle(const char *dbTitle);
|
||||
|
||||
const char* GetDatabaseDate() const;
|
||||
void SetDatabaseDate(const char *dbDate);
|
||||
|
||||
const char* GetLastFilePath() const;
|
||||
|
||||
virtual CheatSystemError LoadFromFile(const char *filePath);
|
||||
virtual CheatSystemError SaveToFile(const char *filePath);
|
||||
virtual CheatSystemError SessionListLoadFromFile(const char *filePath);
|
||||
virtual CheatSystemError SessionListSaveToFile(const char *filePath);
|
||||
|
||||
ClientCheatItem* SetSelectedItemByIndex(size_t index);
|
||||
|
||||
|
@ -212,12 +272,23 @@ public:
|
|||
size_t GetTotalCheatCount() const;
|
||||
size_t GetActiveCheatCount() const;
|
||||
|
||||
ClientCheatList* LoadFromDatabase(const char *dbFilePath);
|
||||
|
||||
void LoadFromMaster();
|
||||
void ApplyToMaster();
|
||||
void MasterNeedsUpdate();
|
||||
|
||||
ClientCheatList* GetDatabaseList() const;
|
||||
ClientCheatList* DatabaseListLoadFromFile(const char *dbFilePath);
|
||||
const char* GetDatabaseTitle() const;
|
||||
const char* GetDatabaseDate() const;
|
||||
|
||||
bool SearchDidStart() const;
|
||||
void SearchReset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& SearchResultsRefresh();
|
||||
const DesmumeCheatSearchResultsList& GetSearchResults();
|
||||
size_t GetSearchResultCount() const;
|
||||
|
||||
void ApplyInternalCheatAtIndex(size_t index);
|
||||
static void ApplyInternalCheatWithItem(const ClientCheatItem *cheatItem);
|
||||
static void ApplyInternalCheatWithParams(uint32_t targetAddress, uint32_t newValue, size_t newValueLength);
|
||||
|
@ -275,68 +346,43 @@ public:
|
|||
@interface CocoaDSCheatManager : NSObject
|
||||
{
|
||||
ClientCheatManager *_internalCheatManager;
|
||||
NSMutableArray *list;
|
||||
NSMutableArray *sessionList;
|
||||
NSMutableArray *databaseList;
|
||||
NSMutableArray *searchResultsList;
|
||||
|
||||
pthread_rwlock_t *rwlockCoreExecute;
|
||||
}
|
||||
|
||||
@property (readonly, nonatomic, getter=internalManager) ClientCheatManager *_internalCheatManager;
|
||||
@property (readonly) NSMutableArray *list;
|
||||
@property (assign, nonatomic) NSString *dbTitle;
|
||||
@property (assign, nonatomic) NSString *dbDate;
|
||||
@property (readonly) NSMutableArray *sessionList;
|
||||
@property (readonly, nonatomic) NSUInteger itemTotalCount;
|
||||
@property (readonly, nonatomic) NSUInteger itemActiveCount;
|
||||
@property (readonly) NSMutableArray *databaseList;
|
||||
@property (readonly, nonatomic) NSString *databaseTitle;
|
||||
@property (readonly, nonatomic) NSString *databaseDate;
|
||||
@property (readonly) NSMutableArray *searchResultsList;
|
||||
@property (readonly, nonatomic) BOOL searchDidStart;
|
||||
@property (readonly, nonatomic) NSUInteger searchCount;
|
||||
@property (assign, nonatomic) pthread_rwlock_t *rwlockCoreExecute;
|
||||
|
||||
- (id) initWithFileURL:(NSURL *)fileURL;
|
||||
|
||||
- (CocoaDSCheatItem *) newItem;
|
||||
- (BOOL) addExistingItem:(CocoaDSCheatItem *)cheatItem;
|
||||
- (void) remove:(CocoaDSCheatItem *)cheatItem;
|
||||
- (BOOL) update:(CocoaDSCheatItem *)cheatItem;
|
||||
- (CocoaDSCheatItem *) addExistingItem:(ClientCheatItem *)cheatItem;
|
||||
- (CocoaDSCheatItem *) addExistingCocoaItem:(CocoaDSCheatItem *)cocoaCheatItem;
|
||||
- (void) remove:(CocoaDSCheatItem *)cocoaCheatItem;
|
||||
- (void) removeAtIndex:(NSUInteger)itemIndex;
|
||||
- (BOOL) update:(CocoaDSCheatItem *)cocoaCheatItem;
|
||||
- (BOOL) save;
|
||||
- (NSUInteger) activeCount;
|
||||
- (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error;
|
||||
- (void) applyInternalCheat:(CocoaDSCheatItem *)cheatItem;
|
||||
- (void) applyInternalCheat:(CocoaDSCheatItem *)cocoaCheatItem;
|
||||
- (void) loadFromMaster;
|
||||
- (void) applyToMaster;
|
||||
|
||||
+ (NSMutableArray *) cheatListWithClientListObject:(ClientCheatList *)cheatList;
|
||||
|
||||
@end
|
||||
|
||||
@interface CocoaDSCheatSearch : NSObject
|
||||
{
|
||||
CHEATSEARCH *listData;
|
||||
NSMutableArray *addressList;
|
||||
|
||||
pthread_rwlock_t *rwlockCoreExecute;
|
||||
BOOL isUsingDummyRWlock;
|
||||
|
||||
NSUInteger searchCount;
|
||||
}
|
||||
|
||||
@property (readonly) CHEATSEARCH *listData;
|
||||
@property (readonly) NSMutableArray *addressList;
|
||||
@property (assign) pthread_rwlock_t *rwlockCoreExecute;
|
||||
@property (readonly) NSUInteger searchCount;
|
||||
- (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error;
|
||||
- (NSUInteger) databaseAddSelected;
|
||||
|
||||
- (NSUInteger) runExactValueSearch:(NSInteger)value byteSize:(UInt8)byteSize signType:(NSInteger)signType;
|
||||
- (void) runExactValueSearchOnThread:(id)object;
|
||||
- (NSUInteger) runComparativeSearch:(NSInteger)typeID byteSize:(UInt8)byteSize signType:(NSInteger)signType;
|
||||
- (void) runComparativeSearchOnThread:(id)object;
|
||||
- (void) reset;
|
||||
|
||||
+ (NSMutableArray *) addressListWithListObject:(CHEATSEARCH *)addressList maxItems:(NSUInteger)maxItemCount;
|
||||
|
||||
@end
|
||||
|
||||
@interface CocoaDSCheatSearchParams : NSObject
|
||||
{
|
||||
NSInteger comparativeSearchType;
|
||||
NSInteger value;
|
||||
UInt8 byteSize;
|
||||
NSInteger signType;
|
||||
}
|
||||
|
||||
@property (assign) NSInteger comparativeSearchType;
|
||||
@property (assign) NSInteger value;
|
||||
@property (assign) UInt8 byteSize;
|
||||
@property (assign) NSInteger signType;
|
||||
- (void) searchReset;
|
||||
|
||||
@end
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -167,6 +167,7 @@ volatile bool execute = true;
|
|||
pthread_attr_destroy(&threadAttr);
|
||||
|
||||
[cdsGPU setOutputList:cdsOutputList rwlock:&threadParam.rwlockOutputList];
|
||||
[cdsCheatManager setRwlockCoreExecute:&threadParam.rwlockCoreExecute];
|
||||
|
||||
macOS_driver *newDriver = new macOS_driver;
|
||||
newDriver->SetCoreThreadMutexLock(&threadParam.mutexThreadExecute);
|
||||
|
|
|
@ -1191,34 +1191,31 @@ void UpdateDisplayPropertiesFromStates(uint64_t displayModeStates, ClientDisplay
|
|||
// state on an existing cheat, so be sure to account for both cases.
|
||||
|
||||
// First check if the cheat exists.
|
||||
CocoaDSCheatItem *cheatItem = (CocoaDSCheatItem *)[addedCheatsDict objectForKey:code];
|
||||
CocoaDSCheatItem *cocoaCheatItem = (CocoaDSCheatItem *)[addedCheatsDict objectForKey:code];
|
||||
|
||||
if (cheatItem == nil)
|
||||
if (cocoaCheatItem == nil)
|
||||
{
|
||||
// If the cheat doesn't already exist, then create a new one and add it.
|
||||
cheatItem = [[[CocoaDSCheatItem alloc] init] autorelease];
|
||||
[cheatItem setCheatType:CHEAT_TYPE_ACTION_REPLAY]; // Default to Action Replay for now
|
||||
[cheatItem setFreezeType:0];
|
||||
[cheatItem setDescription:@""]; // OpenEmu takes care of this
|
||||
[cheatItem setCode:code];
|
||||
[cheatItem setMemAddress:0x00000000]; // UNUSED
|
||||
[cheatItem setBytes:1]; // UNUSED
|
||||
[cheatItem setValue:0]; // UNUSED
|
||||
ClientCheatItem *newCheatItem = new ClientCheatItem;
|
||||
newCheatItem->SetType(CheatType_ActionReplay); // Default to Action Replay for now
|
||||
newCheatItem->SetFreezeType(CheatFreezeType_Normal);
|
||||
newCheatItem->SetDescription(NULL); // OpenEmu takes care of this
|
||||
newCheatItem->SetRawCodeString([code cStringUsingEncoding:NSUTF8StringEncoding], true);
|
||||
newCheatItem->SetEnabled((enabled) ? true : false);
|
||||
|
||||
[cheatItem setEnabled:enabled];
|
||||
[[self cdsCheats] addExistingItem:cheatItem];
|
||||
cocoaCheatItem = [[self cdsCheats] addExistingItem:newCheatItem];
|
||||
|
||||
// OpenEmu doesn't currently save cheats per game, so assume that the
|
||||
// cheat list is short and that code strings are unique. This allows
|
||||
// us to get away with simply saving the cheat code string and hashing
|
||||
// for it later.
|
||||
[addedCheatsDict setObject:cheatItem forKey:code];
|
||||
[addedCheatsDict setObject:cocoaCheatItem forKey:code];
|
||||
}
|
||||
else
|
||||
{
|
||||
// If the cheat does exist, then just set its enable state.
|
||||
[cheatItem setEnabled:enabled];
|
||||
[[self cdsCheats] update:cheatItem];
|
||||
[cocoaCheatItem setEnabled:enabled];
|
||||
[[self cdsCheats] update:cocoaCheatItem];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18129,10 +18129,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="NSWindowClass">NSWindow</string>
|
||||
<nil key="NSViewClass"/>
|
||||
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||
<string key="NSWindowContentMaxSize">{10000, 10000}</string>
|
||||
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
<string key="NSWindowContentMinSize">{640, 480}</string>
|
||||
<object class="NSView" key="NSWindowView" id="667010674">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSScrollView" id="1011480808">
|
||||
|
@ -18148,7 +18148,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{270, 335}</string>
|
||||
<reference key="NSSuperview" ref="1055577013"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
|
||||
|
@ -18157,7 +18156,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{270, 17}</string>
|
||||
<reference key="NSSuperview" ref="584243960"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSTableView" ref="894702591"/>
|
||||
</object>
|
||||
<object class="_NSCornerView" key="NSCornerView">
|
||||
|
@ -18275,7 +18273,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 17}, {270, 335}}</string>
|
||||
<reference key="NSSuperview" ref="1011480808"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="894702591"/>
|
||||
<reference key="NSDocView" ref="894702591"/>
|
||||
<reference key="NSBGColor" ref="856317944"/>
|
||||
|
@ -18289,7 +18286,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 0}, {270, 17}}</string>
|
||||
<reference key="NSSuperview" ref="1011480808"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="716353213"/>
|
||||
<reference key="NSDocView" ref="716353213"/>
|
||||
</object>
|
||||
|
@ -18298,7 +18294,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{256, 17}, {15, 306}}</string>
|
||||
<reference key="NSSuperview" ref="1011480808"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<reference key="NSTarget" ref="1011480808"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
|
@ -18309,7 +18304,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{1, 323}, {270, 15}}</string>
|
||||
<reference key="NSSuperview" ref="1011480808"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="1011480808"/>
|
||||
|
@ -18319,7 +18313,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{20, 49}, {272, 353}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1055577013"/>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="744012231"/>
|
||||
|
@ -18336,7 +18329,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{113, 12}, {185, 32}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="193441988">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18358,7 +18350,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{47, 19}, {28, 23}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="694582833">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
|
@ -18384,7 +18375,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 19}, {28, 23}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="349665005">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
|
@ -18418,7 +18408,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{100, 372}, {209, 26}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="252559910">
|
||||
<int key="NSCellFlags">-2076180416</int>
|
||||
|
@ -18483,7 +18472,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">272</int>
|
||||
<string key="NSFrame">{{2, 32}, {320, 274}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSButton" id="1044249996">
|
||||
|
@ -18491,7 +18479,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{16, 402}, {130, 18}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="471706675">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18515,7 +18502,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{15, 378}, {83, 17}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="5206494">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18534,7 +18520,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">12</int>
|
||||
<string key="NSFrame">{{14, 303}, {292, 5}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18554,7 +18539,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{103, 313}, {203, 57}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="559465196">
|
||||
<int key="NSCellFlags">-1805647871</int>
|
||||
|
@ -18574,7 +18558,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{15, 353}, {83, 17}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="895191486">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18593,7 +18576,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{114, 3}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="880513976"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="27100057">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18613,12 +18595,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {324, 428}}</string>
|
||||
<reference key="NSSuperview" ref="253817892"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{297, 16}, {326, 444}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18639,7 +18619,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{76, 408}, {190, 18}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="702020116">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
|
@ -18674,7 +18653,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</set>
|
||||
<string key="NSFrame">{{20, 410}, {50, 50}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSImageCell" key="NSCell" id="40753569">
|
||||
<int key="NSCellFlags">134217728</int>
|
||||
|
@ -18693,7 +18671,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{75, 432}, {168, 28}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="586903524">
|
||||
<int key="NSCellFlags">69206017</int>
|
||||
|
@ -18712,18 +18689,15 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{29, 419}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="667010674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<int key="NSpiFlags">28682</int>
|
||||
<double key="NSMaxValue">100</double>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{640, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
|
||||
<string key="NSMinSize">{640, 502}</string>
|
||||
<string key="NSMaxSize">{10000, 10022}</string>
|
||||
<string key="NSMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
<string key="NSFrameAutosaveName">CheatManagerWindow</string>
|
||||
<bool key="NSWindowIsRestorable">YES</bool>
|
||||
</object>
|
||||
|
@ -18731,7 +18705,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="NSClassName">CheatWindowDelegate</string>
|
||||
</object>
|
||||
<object class="NSCustomView" id="653859410">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSTextField" id="399602544">
|
||||
|
@ -18739,7 +18713,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{17, 4}, {294, 14}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="985033608">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18762,7 +18735,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">1292</int>
|
||||
<string key="NSFrame">{{214, 220}, {16, 16}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<int key="NSpiFlags">28938</int>
|
||||
<double key="NSMaxValue">100</double>
|
||||
</object>
|
||||
|
@ -18771,7 +18743,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{133, 369}, {136, 22}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="825069250">
|
||||
<int key="NSCellFlags">-2076180416</int>
|
||||
|
@ -18827,7 +18798,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{45, 374}, {86, 14}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="260875644">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18846,7 +18816,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{45, 398}, {86, 14}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="242082681">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18865,7 +18834,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{133, 393}, {136, 22}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="23677458">
|
||||
<int key="NSCellFlags">-2076180416</int>
|
||||
|
@ -18922,7 +18890,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{0, 237}, {328, 134}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSButton" id="493042311">
|
||||
|
@ -18930,7 +18897,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{233, 213}, {80, 28}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="570153276">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -18952,7 +18918,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{59, 222}, {150, 14}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="38661384">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18972,7 +18937,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 222}, {45, 14}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="717962612">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -18999,7 +18963,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{286, 176}</string>
|
||||
<reference key="NSSuperview" ref="381081269"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
|
||||
|
@ -19008,7 +18971,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{286, 17}</string>
|
||||
<reference key="NSSuperview" ref="872327306"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSTableView" ref="1001428622"/>
|
||||
</object>
|
||||
<object class="_NSCornerView" key="NSCornerView">
|
||||
|
@ -19090,7 +19052,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 17}, {286, 176}}</string>
|
||||
<reference key="NSSuperview" ref="502150128"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1001428622"/>
|
||||
<reference key="NSDocView" ref="1001428622"/>
|
||||
<reference key="NSBGColor" ref="856317944"/>
|
||||
|
@ -19104,7 +19065,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 0}, {286, 17}}</string>
|
||||
<reference key="NSSuperview" ref="502150128"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="833610819"/>
|
||||
<reference key="NSDocView" ref="833610819"/>
|
||||
</object>
|
||||
|
@ -19113,7 +19073,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
|
||||
<reference key="NSSuperview" ref="502150128"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<reference key="NSTarget" ref="502150128"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
|
@ -19124,7 +19083,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{1, 294}, {338, 15}}</string>
|
||||
<reference key="NSSuperview" ref="502150128"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="502150128"/>
|
||||
|
@ -19134,7 +19092,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{20, 20}, {288, 194}}</string>
|
||||
<reference key="NSSuperview" ref="653859410"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="381081269"/>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="116802186"/>
|
||||
|
@ -19148,8 +19105,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{328, 434}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSDrawer" id="22830540">
|
||||
|
@ -19175,7 +19130,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
<string key="NSWindowContentMinSize">{500, 272}</string>
|
||||
<object class="NSView" key="NSWindowView" id="353538986">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSScrollView" id="740354183">
|
||||
|
@ -19191,7 +19146,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{500, 287}</string>
|
||||
<reference key="NSSuperview" ref="979497021"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
|
||||
|
@ -19200,7 +19154,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrameSize">{500, 17}</string>
|
||||
<reference key="NSSuperview" ref="621690129"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSTableView" ref="471622593"/>
|
||||
</object>
|
||||
<object class="_NSCornerView" key="NSCornerView">
|
||||
|
@ -19288,7 +19241,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 17}, {500, 287}}</string>
|
||||
<reference key="NSSuperview" ref="740354183"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="471622593"/>
|
||||
<reference key="NSDocView" ref="471622593"/>
|
||||
<reference key="NSBGColor" ref="856317944"/>
|
||||
|
@ -19299,7 +19251,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
|
||||
<reference key="NSSuperview" ref="740354183"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<reference key="NSTarget" ref="740354183"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
|
@ -19310,7 +19261,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{1, 249}, {568, 15}}</string>
|
||||
<reference key="NSSuperview" ref="740354183"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="740354183"/>
|
||||
|
@ -19325,14 +19275,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 0}, {500, 17}}</string>
|
||||
<reference key="NSSuperview" ref="740354183"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="882670721"/>
|
||||
<reference key="NSDocView" ref="882670721"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{-1, 57}, {502, 305}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="979497021"/>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="537392378"/>
|
||||
|
@ -19349,7 +19297,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 370}, {125, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="130101551">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -19368,7 +19315,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 392}, {68, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="598451249">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -19387,7 +19333,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{14, 12}, {114, 32}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="753942431">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19409,7 +19354,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{128, 12}, {114, 32}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="505105353">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19431,7 +19375,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{390, 12}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<int key="NSTag">1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="916129418">
|
||||
|
@ -19454,7 +19397,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{294, 12}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="1008167590">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19476,7 +19418,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{372, 370}, {48, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="423886330">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -19495,7 +19436,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{144, 370}, {232, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="168969464">
|
||||
<int key="NSCellFlags">70254657</int>
|
||||
|
@ -19515,7 +19455,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{422, 370}, {61, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="299520343">
|
||||
<int key="NSCellFlags">70254657</int>
|
||||
|
@ -19535,7 +19474,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{87, 392}, {396, 14}}</string>
|
||||
<reference key="NSSuperview" ref="353538986"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="1055682485">
|
||||
<int key="NSCellFlags">70254657</int>
|
||||
|
@ -19552,8 +19490,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{500, 416}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
|
||||
<string key="NSMinSize">{500, 294}</string>
|
||||
|
@ -19561,7 +19497,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<bool key="NSWindowIsRestorable">YES</bool>
|
||||
</object>
|
||||
<object class="NSCustomView" id="531093625">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="752124485">
|
||||
|
@ -19569,7 +19505,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{233, 54}, {80, 28}}</string>
|
||||
<reference key="NSSuperview" ref="531093625"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="19450435">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19591,7 +19526,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{20, 59}, {210, 19}}</string>
|
||||
<reference key="NSSuperview" ref="531093625"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSViewIsLayerTreeHost">YES</bool>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSSearchFieldCell" key="NSCell" id="910542123">
|
||||
|
@ -19646,7 +19580,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 86}, {294, 14}}</string>
|
||||
<reference key="NSSuperview" ref="531093625"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="457648173">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19665,7 +19598,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 100}, {294, 14}}</string>
|
||||
<reference key="NSSuperview" ref="531093625"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="125683977">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19681,8 +19613,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{328, 134}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSCustomView" id="285216239">
|
||||
|
@ -19882,7 +19812,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSCustomView" id="306344915">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">272</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="857718893">
|
||||
|
@ -19890,7 +19820,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{197, 175}, {109, 32}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="135944944">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19912,7 +19841,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{17, 7}, {286, 42}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="129743229">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -19931,7 +19859,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 246}, {128, 17}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="956303325">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -19950,7 +19877,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{149, 241}, {27, 27}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="107511138">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
|
@ -19973,7 +19899,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{79, 214}, {38, 17}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="245978693">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -19996,7 +19921,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{67, 182}, {128, 22}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="528979890">
|
||||
<int key="NSCellFlags">-1804599231</int>
|
||||
|
@ -20054,7 +19978,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 185}, {45, 17}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="64587549">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -20073,7 +19996,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{118, 212}, {77, 22}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="219872989">
|
||||
<int key="NSCellFlags">-1804599231</int>
|
||||
|
@ -20093,7 +20015,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 215}, {60, 17}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="771067014">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -20120,7 +20041,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{18, 14}, {190, 78}}</string>
|
||||
<reference key="NSSuperview" ref="690888117"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSNumRows">4</int>
|
||||
|
@ -20388,12 +20308,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {226, 102}}</string>
|
||||
<reference key="NSSuperview" ref="224000982"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{46, 56}, {228, 118}}</string>
|
||||
<reference key="NSSuperview" ref="306344915"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -20411,12 +20329,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 274}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSCustomView" id="439595996">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">272</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSScrollView" id="332554094">
|
||||
|
@ -20451,7 +20367,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</set>
|
||||
<string key="NSFrameSize">{278, 226}</string>
|
||||
<reference key="NSSuperview" ref="612858975"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSTextContainer" key="NSTextContainer" id="848187789">
|
||||
<object class="NSLayoutManager" key="NSLayoutManager">
|
||||
<object class="NSTextStorage" key="NSTextStorage">
|
||||
|
@ -20503,7 +20418,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {278, 226}}</string>
|
||||
<reference key="NSSuperview" ref="332554094"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="612136785"/>
|
||||
<reference key="NSDocView" ref="612136785"/>
|
||||
<reference key="NSBGColor" ref="991462592"/>
|
||||
|
@ -20515,7 +20429,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{263, 1}, {16, 225.890625}}</string>
|
||||
<reference key="NSSuperview" ref="332554094"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<reference key="NSTarget" ref="332554094"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
|
@ -20526,7 +20439,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{-100, -100}, {87, 18}}</string>
|
||||
<reference key="NSSuperview" ref="332554094"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="332554094"/>
|
||||
|
@ -20537,7 +20449,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{20, 15}, {280, 228}}</string>
|
||||
<reference key="NSSuperview" ref="439595996"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="612858975"/>
|
||||
<int key="NSsFlags">133650</int>
|
||||
<reference key="NSVScroller" ref="662113178"/>
|
||||
|
@ -20552,7 +20463,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 249}, {138, 17}}</string>
|
||||
<reference key="NSSuperview" ref="439595996"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="924249429">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -20568,12 +20478,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 274}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSCustomView" id="970420241">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSImageView" id="928113865">
|
||||
|
@ -20592,7 +20500,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</set>
|
||||
<string key="NSFrame">{{101, 117}, {128, 128}}</string>
|
||||
<reference key="NSSuperview" ref="970420241"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSImageCell" key="NSCell" id="871279379">
|
||||
<int key="NSCellFlags">134217728</int>
|
||||
|
@ -20614,7 +20521,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 19}, {286, 72}}</string>
|
||||
<reference key="NSSuperview" ref="970420241"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="167903530">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -20634,8 +20540,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 274}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
<object class="NSWindowTemplate" id="818104650">
|
||||
|
@ -42604,7 +42508,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<array class="NSMutableArray" key="NSDeclaredKeys">
|
||||
<string>hasSelection</string>
|
||||
<string>hasItems</string>
|
||||
<string>cheatList</string>
|
||||
<string>cheatWindowDelegateKey</string>
|
||||
<string>cheatSearchStyle</string>
|
||||
<string>cheatSearchSignType</string>
|
||||
<string>cheatSearchSearchValue</string>
|
||||
|
@ -84366,7 +84270,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="3488.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="3488.IBWindowTemplateEditedContentRect">{{493, 199}, {640, 480}}</string>
|
||||
<boolean value="NO" key="3488.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<boolean value="YES" key="3488.windowTemplate.hasMaxSize"/>
|
||||
<boolean value="NO" key="3488.windowTemplate.hasMaxSize"/>
|
||||
<boolean value="YES" key="3488.windowTemplate.hasMinSize"/>
|
||||
<string key="3488.windowTemplate.maxSize">{10000, 10000}</string>
|
||||
<string key="3488.windowTemplate.minSize">{640, 480}</string>
|
||||
|
@ -87361,7 +87265,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="actionReplayCodeEditorView">NSTextView</string>
|
||||
<string key="cheatConfigBox">NSBox</string>
|
||||
<string key="cheatDatabaseController">NSArrayController</string>
|
||||
<string key="cheatDatabaseSheet">NSWindow</string>
|
||||
|
@ -87384,10 +87287,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="window">NSWindow</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="actionReplayCodeEditorView">
|
||||
<string key="name">actionReplayCodeEditorView</string>
|
||||
<string key="candidateClassName">NSTextView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="cheatConfigBox">
|
||||
<string key="name">cheatConfigBox</string>
|
||||
<string key="candidateClassName">NSBox</string>
|
||||
|
|
|
@ -1933,73 +1933,7 @@
|
|||
|
||||
// If the ROM has an associated cheat file, load it now.
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
CocoaDSCheatManager *newCheatList = [cdsCore cdsCheatManager];
|
||||
if (newCheatList != nil)
|
||||
{
|
||||
[newCheatList loadFromMaster];
|
||||
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
|
||||
[cheatListController setContent:[newCheatList list]];
|
||||
[cheatWindowBindings setValue:newCheatList forKey:@"cheatList"];
|
||||
|
||||
NSString *filePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"R4Cheat_DatabasePath"];
|
||||
if (filePath != nil)
|
||||
{
|
||||
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
|
||||
NSInteger error = 0;
|
||||
NSMutableArray *dbList = [newCheatList cheatListFromDatabase:fileURL errorCode:&error];
|
||||
if (dbList != nil)
|
||||
{
|
||||
[cheatDatabaseController setContent:dbList];
|
||||
|
||||
NSString *titleString = [newCheatList dbTitle];
|
||||
NSString *dateString = [newCheatList dbDate];
|
||||
|
||||
[cheatWindowBindings setValue:titleString forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:dateString forKey:@"cheatDBDate"];
|
||||
[cheatWindowBindings setValue:[NSString stringWithFormat:@"%ld", (unsigned long)[dbList count]] forKey:@"cheatDBItemCount"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"];
|
||||
|
||||
switch (error)
|
||||
{
|
||||
case CHEATEXPORT_ERROR_FILE_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not load the database file!");
|
||||
[cheatWindowBindings setValue:@"Database not loaded." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_WRONG_FILE_FORMAT:
|
||||
NSLog(@"R4 Cheat Database read failed! Wrong file format!");
|
||||
[cheatWindowBindings setValue:@"Database load error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"FAILED TO LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_SERIAL_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not find the serial number for this game in the database!");
|
||||
[cheatWindowBindings setValue:@"ROM not found in database." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"ROM not found." forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_EXPORT_FAILED:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not read the database file!");
|
||||
[cheatWindowBindings setValue:@"Database read error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT READ FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[cheatWindowDelegate setCdsCheats:newCheatList];
|
||||
[[cheatWindowDelegate cdsCheatSearch] setRwlockCoreExecute:[cdsCore rwlockCoreExecute]];
|
||||
[cheatWindowDelegate setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE];
|
||||
}
|
||||
[cheatWindowDelegate cheatSystemStart:[cdsCore cdsCheatManager]];
|
||||
|
||||
// Add the last loaded ROM to the Recent ROMs list.
|
||||
[[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[theRom fileURL]];
|
||||
|
@ -2053,22 +1987,11 @@
|
|||
[[windowController window] displayIfNeeded];
|
||||
}
|
||||
|
||||
// Save the ROM's cheat list before unloading.
|
||||
[[cdsCore cdsCheatManager] save];
|
||||
[cheatWindowDelegate cheatSystemEnd];
|
||||
|
||||
// Update the UI to indicate that the ROM has started the process of unloading.
|
||||
[self setStatusText:NSSTRING_STATUS_ROM_UNLOADING];
|
||||
[romInfoPanelController setContent:[CocoaDSRom romNotLoadedBindings]];
|
||||
[cheatListController setContent:nil];
|
||||
[cheatWindowDelegate resetSearch:nil];
|
||||
[cheatWindowDelegate setCdsCheats:nil];
|
||||
[cheatDatabaseController setContent:nil];
|
||||
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
[cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBDate"];
|
||||
[cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"];
|
||||
[cheatWindowBindings setValue:nil forKey:@"cheatList"];
|
||||
|
||||
// Unload the ROM.
|
||||
if (![cdsCore emuFlagUseExternalBios] || ![cdsCore emuFlagUseExternalFirmware])
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
@class CocoaDSCheatItem;
|
||||
@class CocoaDSCheatManager;
|
||||
@class CocoaDSCheatSearch;
|
||||
@class CocoaDSCheatSearchParams;
|
||||
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5
|
||||
|
@ -62,7 +61,6 @@
|
|||
NSMutableDictionary *bindings;
|
||||
CocoaDSCheatItem *workingCheat;
|
||||
CocoaDSCheatManager *cdsCheats;
|
||||
CocoaDSCheatSearch *cdsCheatSearch;
|
||||
}
|
||||
|
||||
@property (assign) IBOutlet NSObject *dummyObject;
|
||||
|
@ -95,7 +93,9 @@
|
|||
@property (readonly) NSMutableDictionary *bindings;
|
||||
@property (retain) CocoaDSCheatItem *workingCheat;
|
||||
@property (retain) CocoaDSCheatManager *cdsCheats;
|
||||
@property (readonly) CocoaDSCheatSearch *cdsCheatSearch;
|
||||
|
||||
- (BOOL) cheatSystemStart:(CocoaDSCheatManager *)theManager;
|
||||
- (void) cheatSystemEnd;
|
||||
|
||||
- (IBAction) addToList:(id)sender;
|
||||
- (IBAction) removeFromList:(id)sender;
|
||||
|
@ -107,15 +107,15 @@
|
|||
- (IBAction) selectCheatSearchStyle:(id)sender;
|
||||
- (IBAction) runExactValueSearch:(id)sender;
|
||||
- (IBAction) runComparativeSearch:(id)sender;
|
||||
- (void) searchDidFinish:(NSNotification *)aNotification;
|
||||
- (IBAction) resetSearch:(id)sender;
|
||||
|
||||
- (void) setCheatConfigViewByType:(NSInteger)cheatTypeID;
|
||||
- (void) setCheatSearchViewByStyle:(NSInteger)searchStyleID;
|
||||
|
||||
- (void) databaseLoadFromFile:(NSURL *)fileURL;
|
||||
- (void) addSelectedFromCheatDatabase;
|
||||
- (IBAction) selectAllCheatsInDatabase:(id)sender;
|
||||
- (IBAction) selectNoneCheatsInDatabase:(id)sender;
|
||||
- (void) addSelectedFromCheatDatabase;
|
||||
- (IBAction) closeCheatDatabaseSheet:(id)sender;
|
||||
- (void) didEndCheatDatabaseSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo;
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@
|
|||
@synthesize codeEditorFont;
|
||||
@synthesize bindings;
|
||||
@synthesize cdsCheats;
|
||||
@synthesize cdsCheatSearch;
|
||||
@synthesize workingCheat;
|
||||
|
||||
- (id)init
|
||||
|
@ -72,15 +71,6 @@
|
|||
return self;
|
||||
}
|
||||
|
||||
cdsCheatSearch = [[CocoaDSCheatSearch alloc] init];
|
||||
if (cdsCheatSearch == nil)
|
||||
{
|
||||
[bindings release];
|
||||
[self release];
|
||||
self = nil;
|
||||
return self;
|
||||
}
|
||||
|
||||
workingCheat = nil;
|
||||
currentView = nil;
|
||||
currentSearchStyleView = nil;
|
||||
|
@ -108,12 +98,59 @@
|
|||
{
|
||||
[self setWorkingCheat:nil];
|
||||
[self setCdsCheats:nil];
|
||||
[cdsCheatSearch release];
|
||||
[bindings release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (BOOL) cheatSystemStart:(CocoaDSCheatManager *)cheatManager
|
||||
{
|
||||
BOOL didStartSuccessfully = NO;
|
||||
|
||||
if (cheatManager == nil)
|
||||
{
|
||||
return didStartSuccessfully;
|
||||
}
|
||||
|
||||
[self setCdsCheats:cheatManager];
|
||||
[cheatManager loadFromMaster];
|
||||
[cheatListController setContent:[cheatManager sessionList]];
|
||||
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
[cheatWindowBindings setValue:self forKey:@"cheatWindowDelegateKey"];
|
||||
|
||||
NSString *dbFilePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"R4Cheat_DatabasePath"];
|
||||
if (dbFilePath != nil)
|
||||
{
|
||||
[self databaseLoadFromFile:[NSURL fileURLWithPath:dbFilePath]];
|
||||
}
|
||||
|
||||
[self setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE];
|
||||
|
||||
didStartSuccessfully = YES;
|
||||
return didStartSuccessfully;
|
||||
}
|
||||
|
||||
- (void) cheatSystemEnd
|
||||
{
|
||||
CocoaDSCheatManager *cheatManager = [self cdsCheats];
|
||||
if (cheatManager != nil)
|
||||
{
|
||||
[cheatManager save];
|
||||
}
|
||||
|
||||
[cheatDatabaseController setContent:nil];
|
||||
[cheatListController setContent:nil];
|
||||
[self resetSearch:nil];
|
||||
[self setCdsCheats:nil];
|
||||
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
[cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBDate"];
|
||||
[cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"];
|
||||
[cheatWindowBindings setValue:nil forKey:@"cheatWindowDelegateKey"];
|
||||
}
|
||||
|
||||
- (IBAction) addToList:(id)sender
|
||||
{
|
||||
if ([self cdsCheats] == nil)
|
||||
|
@ -121,10 +158,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
CocoaDSCheatItem *newCheatItem = [[[self cdsCheats] newItem] autorelease];
|
||||
CocoaDSCheatItem *newCheatItem = [[self cdsCheats] newItem];
|
||||
if (newCheatItem != nil)
|
||||
{
|
||||
[cheatListController addObject:newCheatItem];
|
||||
[cheatListController setContent:[[self cdsCheats] sessionList]];
|
||||
[bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasItems"];
|
||||
[[self cdsCheats] save];
|
||||
}
|
||||
|
@ -132,8 +169,8 @@
|
|||
|
||||
- (IBAction) removeFromList:(id)sender
|
||||
{
|
||||
NSMutableArray *cheatList = (NSMutableArray *)[cheatListController content];
|
||||
if ( ([self cdsCheats] == nil) || (cheatList == nil) )
|
||||
CocoaDSCheatManager *cheatManager = [self cdsCheats];
|
||||
if (cheatManager == nil)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -144,19 +181,19 @@
|
|||
return;
|
||||
}
|
||||
|
||||
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:selectionIndex];
|
||||
|
||||
NSArray *selectedObjects = [cheatListController selectedObjects];
|
||||
CocoaDSCheatItem *selectedCheat = (CocoaDSCheatItem *)[selectedObjects objectAtIndex:0];
|
||||
[[self cdsCheats] remove:selectedCheat];
|
||||
[cheatListController removeObject:selectedCheat];
|
||||
[cheatManager remove:selectedCheat];
|
||||
|
||||
[[self cdsCheats] save];
|
||||
[cheatListController setContent:[cheatManager sessionList]];
|
||||
[cheatManager save];
|
||||
[cheatListTable deselectAll:sender];
|
||||
|
||||
NSUInteger cheatCount = [cheatList count];
|
||||
NSUInteger cheatCount = [cheatManager itemTotalCount];
|
||||
if (cheatCount > 0)
|
||||
{
|
||||
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:selectionIndex];
|
||||
|
||||
if (selectionIndex >= cheatCount)
|
||||
{
|
||||
selectionIndex--;
|
||||
|
@ -245,9 +282,11 @@
|
|||
NSInteger value = [searchField integerValue];
|
||||
UInt8 byteSize = [[self workingCheat] bytes];
|
||||
NSInteger signType = [(NSNumber *)[bindings valueForKey:@"cheatSearchSignType"] integerValue];
|
||||
NSUInteger addressCount = [cdsCheatSearch runExactValueSearch:value byteSize:byteSize signType:signType];
|
||||
[bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"];
|
||||
[cheatSearchListController setContent:[cdsCheatSearch addressList]];
|
||||
|
||||
NSUInteger resultsCount = [cdsCheats runExactValueSearch:value byteSize:byteSize signType:signType];
|
||||
|
||||
[bindings setValue:[NSNumber numberWithUnsignedInteger:resultsCount] forKey:@"cheatSearchAddressCount"];
|
||||
[cheatSearchListController setContent:[[self cdsCheats] searchResultsList]];
|
||||
|
||||
[bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"];
|
||||
}
|
||||
|
@ -262,7 +301,8 @@
|
|||
[bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isSearchStarted"];
|
||||
[bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isRunningSearch"];
|
||||
|
||||
if ([cdsCheatSearch searchCount] == 0)
|
||||
const BOOL wasSearchAlreadyStarted = [cdsCheats searchDidStart];
|
||||
if (!wasSearchAlreadyStarted)
|
||||
{
|
||||
[bindings setValue:@"Running initial search..." forKey:@"cheatSearchAddressCount"];
|
||||
[window displayIfNeeded];
|
||||
|
@ -271,37 +311,23 @@
|
|||
NSInteger compSearchTypeID = [CocoaDSUtil getIBActionSenderTag:sender];
|
||||
UInt8 byteSize = [[self workingCheat] bytes];
|
||||
NSInteger signType = [(NSNumber *)[bindings valueForKey:@"cheatSearchSignType"] integerValue];
|
||||
NSUInteger addressCount = [cdsCheatSearch runComparativeSearch:compSearchTypeID byteSize:byteSize signType:signType];
|
||||
[bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"];
|
||||
[cheatSearchListController setContent:[cdsCheatSearch addressList]];
|
||||
|
||||
NSUInteger newResultsCount = [cdsCheats runComparativeSearch:compSearchTypeID byteSize:byteSize signType:signType];
|
||||
[cheatSearchListController setContent:[[self cdsCheats] searchResultsList]];
|
||||
|
||||
NSInteger searchStyle = [(NSNumber *)[bindings valueForKey:@"cheatSearchStyle"] integerValue];
|
||||
if (searchStyle == CHEATSEARCH_SEARCHSTYLE_COMPARATIVE && [cdsCheatSearch searchCount] == 1)
|
||||
if (searchStyle == CHEATSEARCH_SEARCHSTYLE_COMPARATIVE)
|
||||
{
|
||||
[self setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_COMPARATIVE];
|
||||
[bindings setValue:@"Search started!" forKey:@"cheatSearchAddressCount"];
|
||||
}
|
||||
|
||||
[bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"];
|
||||
}
|
||||
|
||||
- (void) searchDidFinish:(NSNotification *)aNotification
|
||||
{
|
||||
CocoaDSCheatSearch *searcher = [aNotification object];
|
||||
NSInteger addressCount = 0;
|
||||
|
||||
if (searcher != nil)
|
||||
if (!wasSearchAlreadyStarted)
|
||||
{
|
||||
addressCount = [[searcher addressList] count];
|
||||
[bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"];
|
||||
[cheatSearchListController setContent:[searcher addressList]];
|
||||
|
||||
NSInteger searchStyle = [(NSNumber *)[bindings valueForKey:@"cheatSearchStyle"] integerValue];
|
||||
if (searchStyle == CHEATSEARCH_SEARCHSTYLE_COMPARATIVE && [searcher searchCount] == 1)
|
||||
{
|
||||
[self setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_COMPARATIVE];
|
||||
[bindings setValue:@"Search started!" forKey:@"cheatSearchAddressCount"];
|
||||
}
|
||||
[bindings setValue:@"Search started!" forKey:@"cheatSearchAddressCount"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[bindings setValue:[NSNumber numberWithUnsignedInteger:newResultsCount] forKey:@"cheatSearchAddressCount"];
|
||||
}
|
||||
|
||||
[bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"];
|
||||
|
@ -309,8 +335,8 @@
|
|||
|
||||
- (IBAction) resetSearch:(id)sender
|
||||
{
|
||||
[cheatSearchListController setContent:nil];
|
||||
[cdsCheatSearch reset];
|
||||
[[self cdsCheats] searchReset];
|
||||
[cheatSearchListController setContent:[[self cdsCheats] searchResultsList]];
|
||||
[bindings setValue:nil forKey:@"cheatSearchSearchValue"];
|
||||
[bindings setValue:@"Search not started." forKey:@"cheatSearchAddressCount"];
|
||||
[self setCheatSearchViewByStyle:[(NSNumber *)[bindings valueForKey:@"cheatSearchStyle"] integerValue]];
|
||||
|
@ -370,7 +396,7 @@
|
|||
break;
|
||||
|
||||
case CHEATSEARCH_SEARCHSTYLE_COMPARATIVE:
|
||||
if ([cdsCheatSearch searchCount] == 0)
|
||||
if ([cdsCheats searchDidStart] == 0)
|
||||
{
|
||||
newView = viewSearchComparativeStart;
|
||||
}
|
||||
|
@ -394,6 +420,82 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) databaseLoadFromFile:(NSURL *)fileURL
|
||||
{
|
||||
CocoaDSCheatManager *cheatManager = [self cdsCheats];
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
|
||||
if ( (fileURL == nil) || (cheatManager == nil) || (cheatWindowBindings == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
NSInteger error = 0;
|
||||
NSMutableArray *dbList = [cheatManager cheatListFromDatabase:fileURL errorCode:&error];
|
||||
if (dbList != nil)
|
||||
{
|
||||
[cheatDatabaseController setContent:dbList];
|
||||
|
||||
NSString *titleString = [cheatManager databaseTitle];
|
||||
NSString *dateString = [cheatManager databaseDate];
|
||||
|
||||
[cheatWindowBindings setValue:titleString forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:dateString forKey:@"cheatDBDate"];
|
||||
[cheatWindowBindings setValue:[NSString stringWithFormat:@"%ld", (unsigned long)[dbList count]] forKey:@"cheatDBItemCount"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"];
|
||||
|
||||
switch (error)
|
||||
{
|
||||
case CHEATEXPORT_ERROR_FILE_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not load the database file!");
|
||||
[cheatWindowBindings setValue:@"Database not loaded." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_WRONG_FILE_FORMAT:
|
||||
NSLog(@"R4 Cheat Database read failed! Wrong file format!");
|
||||
[cheatWindowBindings setValue:@"Database load error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"FAILED TO LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_SERIAL_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not find the serial number for this game in the database!");
|
||||
[cheatWindowBindings setValue:@"ROM not found in database." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"ROM not found." forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_EXPORT_FAILED:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not read the database file!");
|
||||
[cheatWindowBindings setValue:@"Database read error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT READ FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) addSelectedFromCheatDatabase
|
||||
{
|
||||
CocoaDSCheatManager *cheatManager = [self cdsCheats];
|
||||
if (cheatManager == nil)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const NSInteger addedItemCount = [cheatManager databaseAddSelected];
|
||||
if (addedItemCount > 0)
|
||||
{
|
||||
[cheatListController setContent:[[self cdsCheats] sessionList]];
|
||||
[[self cdsCheats] save];
|
||||
[bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasItems"];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction) selectAllCheatsInDatabase:(id)sender
|
||||
{
|
||||
NSMutableArray *dbList = [cheatDatabaseController content];
|
||||
|
@ -422,41 +524,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) addSelectedFromCheatDatabase
|
||||
{
|
||||
NSMutableArray *dbList = [cheatDatabaseController content];
|
||||
if (dbList == nil)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
size_t addedItemCount = 0;
|
||||
BOOL didAddItem = NO;
|
||||
|
||||
for (CocoaDSCheatItem *dbItem in dbList)
|
||||
{
|
||||
if ([dbItem willAdd])
|
||||
{
|
||||
CocoaDSCheatItem *newCocoaCheatItem = [[[CocoaDSCheatItem alloc] init] autorelease];
|
||||
ClientCheatItem *newCheatItem = [newCocoaCheatItem clientData];
|
||||
newCheatItem->Init(*[dbItem clientData]);
|
||||
|
||||
didAddItem = [[self cdsCheats] addExistingItem:newCocoaCheatItem];
|
||||
if (didAddItem)
|
||||
{
|
||||
[cheatListController addObject:newCocoaCheatItem];
|
||||
addedItemCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (addedItemCount > 0)
|
||||
{
|
||||
[[self cdsCheats] save];
|
||||
[bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasItems"];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction) closeCheatDatabaseSheet:(id)sender
|
||||
{
|
||||
NSWindow *sheet = [(NSControl *)sender window];
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#import "preferencesWindowDelegate.h"
|
||||
#import "EmuControllerDelegate.h"
|
||||
#import "cheatWindowDelegate.h"
|
||||
|
||||
#import "cocoa_core.h"
|
||||
#import "cocoa_GPU.h"
|
||||
|
@ -580,58 +581,11 @@
|
|||
|
||||
const BOOL isRomLoaded = [(EmuControllerDelegate *)[emuController content] currentRom] != nil;
|
||||
NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content];
|
||||
CocoaDSCheatManager *cdsCheats = (CocoaDSCheatManager *)[cheatWindowBindings valueForKey:@"cheatList"];
|
||||
CheatWindowDelegate *cheatWindowDelegate = (CheatWindowDelegate *)[cheatWindowBindings valueForKey:@"cheatWindowDelegateKey"];
|
||||
|
||||
if (isRomLoaded == YES && cdsCheats != nil)
|
||||
if ( (isRomLoaded == YES) && (cheatWindowDelegate != nil) )
|
||||
{
|
||||
NSInteger error = 0;
|
||||
NSMutableArray *dbList = [cdsCheats cheatListFromDatabase:selectedFileURL errorCode:&error];
|
||||
if (dbList != nil)
|
||||
{
|
||||
[cheatDatabaseController setContent:dbList];
|
||||
|
||||
NSString *titleString = [cdsCheats dbTitle];
|
||||
NSString *dateString = [cdsCheats dbDate];
|
||||
|
||||
[cheatWindowBindings setValue:titleString forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:dateString forKey:@"cheatDBDate"];
|
||||
[cheatWindowBindings setValue:[NSString stringWithFormat:@"%ld", (unsigned long)[dbList count]] forKey:@"cheatDBItemCount"];
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Display an error message here.
|
||||
[cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"];
|
||||
|
||||
switch (error)
|
||||
{
|
||||
case CHEATEXPORT_ERROR_FILE_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not load the database file!");
|
||||
[cheatWindowBindings setValue:@"Database not loaded." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_WRONG_FILE_FORMAT:
|
||||
NSLog(@"R4 Cheat Database read failed! Wrong file format!");
|
||||
[cheatWindowBindings setValue:@"Database load error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"FAILED TO LOAD FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_SERIAL_NOT_FOUND:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not find the serial number for this game in the database!");
|
||||
[cheatWindowBindings setValue:@"ROM not found in database." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"ROM not found." forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
case CHEATEXPORT_ERROR_EXPORT_FAILED:
|
||||
NSLog(@"R4 Cheat Database read failed! Could not read the database file!");
|
||||
[cheatWindowBindings setValue:@"Database read error." forKey:@"cheatDBTitle"];
|
||||
[cheatWindowBindings setValue:@"CANNOT READ FILE" forKey:@"cheatDBDate"];
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
[cheatWindowDelegate databaseLoadFromFile:selectedFileURL];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Sound Interpolation Method: "] stringByAppendingString:[[emuControl cdsSpeaker] spuInterpolationModeString]];
|
||||
finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nAudio - Sound Synchronization Method: "] stringByAppendingString:[[emuControl cdsSpeaker] spuSyncMethodString]];
|
||||
finalFormTextStr = [finalFormTextStr stringByAppendingString:@"\n"];
|
||||
finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nCheats: "] stringByAppendingString:(([cdsCore isCheatingEnabled] && ([[cdsCore cdsCheatManager] activeCount] > 0)) ? [NSString stringWithFormat:@"YES (ActiveCheatCount=%ld)", (unsigned long)[[cdsCore cdsCheatManager] activeCount]] : @"NO")];
|
||||
finalFormTextStr = [[finalFormTextStr stringByAppendingString:@"\nCheats: "] stringByAppendingString:(([cdsCore isCheatingEnabled] && ([[cdsCore cdsCheatManager] itemActiveCount] > 0)) ? [NSString stringWithFormat:@"YES (ActiveCheatCount=%ld)", (unsigned long)[[cdsCore cdsCheatManager] itemActiveCount]] : @"NO")];
|
||||
finalFormTextStr = [finalFormTextStr stringByAppendingString:@"\n"];
|
||||
|
||||
if ([window contentView] == viewSupportRequest)
|
||||
|
|
Loading…
Reference in New Issue