summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2019-05-17 21:08:21 +0200
committerAdmiral H. Curtiss <pikachu025@gmail.com>2019-05-25 21:49:09 +0200
commit5af05f671446e65f2e10bad09d2ca94bf633fcf3 (patch)
tree4615050b22189c3279ac7e08622444781d4ad291 /Source/Core
parent884af05589ff456258429cf50b1d5d24e11ecee1 (diff)
GCMemcard/GCIFile: Implement LoadHeader().
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCIFile.cpp19
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCIFile.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/Source/Core/Core/HW/GCMemcard/GCIFile.cpp b/Source/Core/Core/HW/GCMemcard/GCIFile.cpp
index 77ddad34d4..b82aa6f52b 100644
--- a/Source/Core/Core/HW/GCMemcard/GCIFile.cpp
+++ b/Source/Core/Core/HW/GCMemcard/GCIFile.cpp
@@ -10,6 +10,25 @@
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
+bool GCIFile::LoadHeader()
+{
+ if (m_filename.empty())
+ return false;
+
+ File::IOFile save_file(m_filename, "rb");
+ if (!save_file)
+ return false;
+
+ INFO_LOG(EXPANSIONINTERFACE, "Reading header from disk for %s", m_filename.c_str());
+ if (!save_file.ReadBytes(&m_gci_header, sizeof(m_gci_header)))
+ {
+ ERROR_LOG(EXPANSIONINTERFACE, "Failed to read header for %s", m_filename.c_str());
+ return false;
+ }
+
+ return true;
+}
+
bool GCIFile::LoadSaveBlocks()
{
if (m_save_data.empty())
diff --git a/Source/Core/Core/HW/GCMemcard/GCIFile.h b/Source/Core/Core/HW/GCMemcard/GCIFile.h
index b118330d34..330c519612 100644
--- a/Source/Core/Core/HW/GCMemcard/GCIFile.h
+++ b/Source/Core/Core/HW/GCMemcard/GCIFile.h
@@ -15,6 +15,7 @@ class PointerWrap;
class GCIFile
{
public:
+ bool LoadHeader();
bool LoadSaveBlocks();
bool HasCopyProtection() const;
void DoState(PointerWrap& p);