summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2018-12-09 23:41:17 +0100
committerAdmiral H. Curtiss <pikachu025@gmail.com>2018-12-10 20:24:20 +0100
commitca2c7679df4f8a1db0b2a1baf578ae605306afc2 (patch)
treebc4c45009131fe1a55022e9644ec9a3cc2fc8b2c /Source
parent2351a6056749ffcd24779767c452ecfbff88c8d8 (diff)
GCMemcard: Rewrite DEntry_IconFmt() and DEntry_AnimSpeed() to make more sense.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCMemcard.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp
index e64a3d98a6..5c7bc62774 100644
--- a/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp
+++ b/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp
@@ -9,6 +9,7 @@
#include <cstring>
#include <vector>
+#include "Common/BitUtils.h"
#include "Common/ColorUtil.h"
#include "Common/CommonFuncs.h"
#include "Common/CommonPaths.h"
@@ -480,16 +481,11 @@ std::string GCMemcard::DEntry_IconFmt(u8 index) const
if (!m_valid || index >= DIRLEN)
return "";
- std::array<u8, 2> tmp;
- memcpy(tmp.data(), &GetActiveDirectory().m_dir_entries[index].m_icon_format, 2);
- int x = tmp[0];
+ u16 x = GetActiveDirectory().m_dir_entries[index].m_icon_format;
std::string format;
- for (int i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; ++i)
{
- if (i == 8)
- x = tmp[1];
- format.push_back((x & 0x80) ? '1' : '0');
- x = x << 1;
+ format.push_back(Common::ExtractBit(x, 15 - i) ? '1' : '0');
}
return format;
}
@@ -499,16 +495,11 @@ std::string GCMemcard::DEntry_AnimSpeed(u8 index) const
if (!m_valid || index >= DIRLEN)
return "";
- std::array<u8, 2> tmp;
- memcpy(tmp.data(), &GetActiveDirectory().m_dir_entries[index].m_animation_speed, 2);
- int x = tmp[0];
+ u16 x = GetActiveDirectory().m_dir_entries[index].m_animation_speed;
std::string speed;
- for (int i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; ++i)
{
- if (i == 8)
- x = tmp[1];
- speed.push_back((x & 0x80) ? '1' : '0');
- x = x << 1;
+ speed.push_back(Common::ExtractBit(x, 15 - i) ? '1' : '0');
}
return speed;
}