pcsx2: Remove GameDB write related code

There's no use for it now that the database editor has been removed.

Also remove the Game_Data POD comment because I don't think it makes
sense and remove an unused variable.
This commit is contained in:
Jonathan Li 2018-08-26 01:17:20 +01:00
parent 846f31851e
commit 76a75efef1
4 changed files with 0 additions and 117 deletions

View File

@ -80,20 +80,6 @@ Game_Data* BaseGameDatabaseImpl::createNewGame( const wxString& id )
return retval; return retval;
} }
void BaseGameDatabaseImpl::updateGame(const Game_Data& game)
{
GameDataHash::const_iterator iter( gHash.find(game.id) );
if( iter == gHash.end() ) {
*(createNewGame( game.id )) = game;
}
else
{
// Re-assign existing vector/array entry!
*gHash[game.id] = game;
}
}
// Searches the current game's data to see if the given key exists // Searches the current game's data to see if the given key exists
bool Game_Data::keyExists(const wxChar* key) const { bool Game_Data::keyExists(const wxChar* key) const {
for (auto it = kList.begin(); it != kList.end(); ++it) { for (auto it = kList.begin(); it != kList.end(); ++it) {
@ -104,16 +90,6 @@ bool Game_Data::keyExists(const wxChar* key) const {
return false; return false;
} }
// Totally Deletes the specified key/pair value from the current game's data
void Game_Data::deleteKey(const wxChar* key) {
for (auto it = kList.begin(); it != kList.end(); ++it) {
if (it->CompareKey(key)) {
kList.erase(it);
return;
}
}
}
// Gets a string representation of the 'value' for the given key // Gets a string representation of the 'value' for the given key
wxString Game_Data::getString(const wxChar* key) const { wxString Game_Data::getString(const wxChar* key) const {
for (auto it = kList.begin(); it != kList.end(); ++it) { for (auto it = kList.begin(); it != kList.end(); ++it) {
@ -138,8 +114,3 @@ void Game_Data::writeString(const wxString& key, const wxString& value) {
kList.push_back(key_pair(key, value)); kList.push_back(key_pair(key, value));
} }
} }
// Write a bool value to the specified key
void Game_Data::writeBool(const wxString& key, bool value) {
writeString(key, value ? L"1" : L"0");
}

View File

@ -60,35 +60,11 @@ struct key_pair {
bool IsOk() const { bool IsOk() const {
return !key.IsEmpty(); return !key.IsEmpty();
} }
wxString toString() const {
if (key[0] == '[') {
pxAssertDev( key.EndsWith(L"]"), "Malformed multiline key detected: missing end bracket!" );
// Terminating tag must be written without the "rvalue" -- in the form of:
// [/patches]
// Use Mid() to strip off the left and right side brackets.
wxString midLine(key.Mid(1, key.Length()-2));
wxString keyLvalue(midLine.BeforeFirst(L'=').Trim(true).Trim(false));
return wxsFormat( L"%s\n%s[/%s]\n",
key.c_str(), value.c_str(), keyLvalue.c_str()
);
}
else {
// Note: 6 char padding on the l-value makes things look nicer.
return wxsFormat(L"%-6s = %s\n", key.c_str(), value.c_str() );
}
}
}; };
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
// Game_Data // Game_Data
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
// This container is more or less required to be a simple struct (POD classification) --
// no virtuals and no inheritance. This is because it is used in a std::vector, so POD
// makes things... smoother.
struct Game_Data struct Game_Data
{ {
wxString id; // Serial Identification Code wxString id; // Serial Identification Code
@ -109,10 +85,8 @@ struct Game_Data
} }
bool keyExists(const wxChar* key) const; bool keyExists(const wxChar* key) const;
void deleteKey(const wxChar* key);
wxString getString(const wxChar* key) const; wxString getString(const wxChar* key) const;
void writeString(const wxString& key, const wxString& value); void writeString(const wxString& key, const wxString& value);
void writeBool(const wxString& key, bool value);
bool IsOk() const { bool IsOk() const {
return !id.IsEmpty(); return !id.IsEmpty();
@ -183,7 +157,6 @@ public:
virtual wxString getBaseKey() const=0; virtual wxString getBaseKey() const=0;
virtual bool findGame(Game_Data& dest, const wxString& id)=0; virtual bool findGame(Game_Data& dest, const wxString& id)=0;
virtual Game_Data* createNewGame( const wxString& id )=0; virtual Game_Data* createNewGame( const wxString& id )=0;
virtual void updateGame(const Game_Data& game)=0;
}; };
typedef std::unordered_map<wxString, Game_Data*, StringHashNoCase> GameDataHash; typedef std::unordered_map<wxString, Game_Data*, StringHashNoCase> GameDataHash;
@ -213,7 +186,6 @@ public:
bool findGame(Game_Data& dest, const wxString& id); bool findGame(Game_Data& dest, const wxString& id);
Game_Data* createNewGame( const wxString& id ); Game_Data* createNewGame( const wxString& id );
void updateGame(const Game_Data& game);
}; };
extern IGameDatabase* AppHost_GetGameDatabase(); extern IGameDatabase* AppHost_GetGameDatabase();

View File

@ -42,7 +42,6 @@ public:
{ {
} }
wxString ReadHeader();
void ReadGames(); void ReadGames();
protected: protected:
@ -97,38 +96,10 @@ void DBLoaderHelper::extract() {
if( m_keyPair.value.IsEmpty() ) doError(true); if( m_keyPair.value.IsEmpty() ) doError(true);
} }
wxString DBLoaderHelper::ReadHeader()
{
wxString header;
header.reserve(2048);
while(!m_reader.Eof()) {
pxReadLine(m_reader, m_dest, m_intermediate);
m_dest.Trim(false).Trim(true);
if( !(m_dest.IsEmpty() || m_dest.StartsWith(L"--") || m_dest.StartsWith( L"//" ) || m_dest.StartsWith( L";" )) ) break;
header += m_dest + L'\n';
}
if( !m_dest.IsEmpty() )
{
m_keyPair.Clear();
if( !extractMultiLine() ) extract();
}
return header;
}
void DBLoaderHelper::ReadGames() void DBLoaderHelper::ReadGames()
{ {
Game_Data* game = NULL; Game_Data* game = NULL;
if (m_keyPair.IsOk())
{
game = m_gamedb.createNewGame(m_keyPair.value);
game->writeString(m_keyPair.key, m_keyPair.value);
//if( m_keyPair.CompareKey(m_gamedb.getBaseKey()) )
// game.id = m_keyPair.value;
}
while(!m_reader.Eof()) { // Fill game data, find new game, repeat... while(!m_reader.Eof()) { // Fill game data, find new game, repeat...
pthread_testcancel(); pthread_testcancel();
pxReadLine(m_reader, m_dest, m_intermediate); pxReadLine(m_reader, m_dest, m_intermediate);
@ -187,7 +158,6 @@ AppGameDatabase& AppGameDatabase::LoadFromFile(const wxString& _file, const wxSt
DBLoaderHelper loader( reader, *this ); DBLoaderHelper loader( reader, *this );
u64 qpc_Start = GetCPUTicks(); u64 qpc_Start = GetCPUTicks();
header = loader.ReadHeader();
loader.ReadGames(); loader.ReadGames();
u64 qpc_end = GetCPUTicks(); u64 qpc_end = GetCPUTicks();
@ -197,31 +167,6 @@ AppGameDatabase& AppGameDatabase::LoadFromFile(const wxString& _file, const wxSt
return *this; return *this;
} }
// Saves changes to the database
void AppGameDatabase::SaveToFile(const wxString& file) {
wxFFileOutputStream writer( file );
pxWriteMultiline(writer, header);
for(uint blockidx=0; blockidx<=m_BlockTableWritePos; ++blockidx)
{
if( !m_BlockTable[blockidx] ) continue;
const uint endidx = (blockidx == m_BlockTableWritePos) ? m_CurBlockWritePos : m_GamesPerBlock;
for( uint gameidx=0; gameidx<endidx; ++gameidx )
{
const Game_Data& game( m_BlockTable[blockidx][gameidx] );
for (auto i = game.kList.begin(); i != game.kList.end(); ++i) {
pxWriteMultiline(writer, i->toString() );
}
pxWriteLine(writer, L"---------------------------------------------");
}
}
}
AppGameDatabase* Pcsx2App::GetGameDatabase() AppGameDatabase* Pcsx2App::GetGameDatabase()
{ {
pxAppResources& res( GetResourceCache() ); pxAppResources& res( GetResourceCache() );

View File

@ -41,10 +41,6 @@
class AppGameDatabase : public BaseGameDatabaseImpl class AppGameDatabase : public BaseGameDatabaseImpl
{ {
protected:
wxString header; // Header of the database
wxString baseKey; // Key to separate games by ("Serial")
public: public:
AppGameDatabase() {} AppGameDatabase() {}
virtual ~AppGameDatabase() { virtual ~AppGameDatabase() {
@ -55,7 +51,6 @@ public:
} }
AppGameDatabase& LoadFromFile(const wxString& file = Path::Combine( PathDefs::GetProgramDataDir(), wxFileName(L"GameIndex.dbf") ), const wxString& key = L"Serial" ); AppGameDatabase& LoadFromFile(const wxString& file = Path::Combine( PathDefs::GetProgramDataDir(), wxFileName(L"GameIndex.dbf") ), const wxString& key = L"Serial" );
void SaveToFile(const wxString& file = Path::Combine( PathDefs::GetProgramDataDir(), wxFileName(L"GameIndex.dbf")) );
}; };
static wxString compatToStringWX(int compat) { static wxString compatToStringWX(int compat) {