From a5045a5376ff35e44568ef2a8630781cfdfab54f Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 18 Jan 2012 04:25:33 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B8=E3=83=83=E3=82=AF=E3=83=8A?= =?UTF-8?q?=E3=83=B3=E3=83=90=E3=83=BC=E3=81=AE=E9=99=A4=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@563 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../sources/ConsoleRestore/RegionIdModifier.cpp | 15 ++++++++------- .../sources/ConsoleRestore/RegionIdModifier.h | 13 ++++++++----- .../tests/googletest/RegionIdModifier/stub.h | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 trunk/ConsoleDataMigration/sources/tests/googletest/RegionIdModifier/stub.h diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.cpp index 30febae..f886498 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.cpp @@ -19,8 +19,8 @@ struct CountryData { u32 id; // 上記定数にあるように、国IDと地域IDを組み合わせたID - u16 regionName[16][64]; // NULL終端込み - u8 order[16]; // 言語ごとの地域名並び順(「未設定」が0になるので、最初の地域は1) + u16 regionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; // NULL終端込み + u8 order[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES]; // 言語ごとの地域名並び順(「未設定」が0になるので、最初の地域は1) u16 latitude; // リストの値を 65536/360 倍して格納して下さい u16 longitude; // リストの値を 65536/360 倍して格納して下さい }; @@ -68,14 +68,15 @@ bool RegionIdModifier::IsValid() const PathList* RegionIdModifier::GetDirectoryPath() { // 範囲外のリージョン - if (2 < m_RegionCode) + if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode) { return NULL; } - for (u8 i = 0; i < 3; i++) + for (u8 i = 0; i < nn::cfg::CTR::CFG_REGION_EUROPE + 1; i++) { - std::wcsncpy(m_DirectoryPathBuf[i].path, DIR_PATH[m_RegionCode + i * 3], 32); + std::wcsncpy(m_DirectoryPathBuf[i].path, DIR_PATH[m_RegionCode + i * (nn::cfg::CTR::CFG_REGION_EUROPE + 1)], + PATHLIST_LENGTH); } return m_DirectoryPathBuf; @@ -84,7 +85,7 @@ const PathList* RegionIdModifier::GetDirectoryPath() size_t RegionIdModifier::GetDirectoryPathNum() { // 範囲外のリージョン - if (2 < m_RegionCode) + if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode) { return 0; } @@ -114,7 +115,7 @@ const PathList* RegionIdModifier::GetFilePath() { size_t writeSize = std::wcslen(m_DirectoryPathBuf[i].path); std::wcsncpy(m_FilePathBuf[i].path, m_DirectoryPathBuf[i].path, writeSize); - std::wcsncat(m_FilePathBuf[i].path, GetFileName(), 32 - writeSize); + std::wcsncat(m_FilePathBuf[i].path, GetFileName(), PATHLIST_LENGTH - writeSize); } return m_FilePathBuf; diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.h index 833ce6f..ca4522f 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/RegionIdModifier.h @@ -17,14 +17,17 @@ #if defined(__ARMCC_VERSION) #include +#include #else #include #include "types.h" +#include "stub.h" #endif +const size_t PATHLIST_LENGTH = 32; struct PathList { - wchar_t path[32]; + wchar_t path[PATHLIST_LENGTH]; }; //! @brief データ移行ツールで破壊した地域idを修正するためのクラスです @@ -75,14 +78,14 @@ class RegionIdModifier //! @brief リージョンコード u8 m_RegionCode; //! @brief 地域名 - wchar_t m_RegionName[64]; + wchar_t m_RegionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; //! @brief ファイル名を保存するバッファ - wchar_t m_FileNameBuf[32]; + wchar_t m_FileNameBuf[PATHLIST_LENGTH]; //! @brief ディレクトリパスを保存するバッファ - PathList m_DirectoryPathBuf[3]; + PathList m_DirectoryPathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1]; //! @brief ファイルパスを保存するバッファ - PathList m_FilePathBuf[3]; + PathList m_FilePathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1]; }; #endif // _REGION_ID_MODIFIER_H_ diff --git a/trunk/ConsoleDataMigration/sources/tests/googletest/RegionIdModifier/stub.h b/trunk/ConsoleDataMigration/sources/tests/googletest/RegionIdModifier/stub.h new file mode 100644 index 0000000..8cef76a --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tests/googletest/RegionIdModifier/stub.h @@ -0,0 +1,15 @@ +#ifndef STUB_H_ +#define STUB_H_ + +namespace nn { namespace cfg { namespace CTR { +enum CfgRegionCode +{ + CFG_REGION_EUROPE = 2 +}; + +const u8 CFG_SIMPLE_ADDRESS_NUM_LANGUAGES = 16; +const u8 CFG_SIMPLE_ADDRESS_NAME_LENGTH = 64; + +}}} + +#endif /* STUB_H_ */