マジックナンバーの除去

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
This commit is contained in:
N2614 2012-01-18 04:25:33 +00:00
parent 4a966ec4fd
commit a5045a5376
3 changed files with 31 additions and 12 deletions

View File

@ -19,8 +19,8 @@
struct CountryData struct CountryData
{ {
u32 id; // 上記定数にあるように、国IDと地域IDを組み合わせたID u32 id; // 上記定数にあるように、国IDと地域IDを組み合わせたID
u16 regionName[16][64]; // NULL終端込み u16 regionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; // NULL終端込み
u8 order[16]; // 言語ごとの地域名並び順「未設定」が0になるので、最初の地域は1 u8 order[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES]; // 言語ごとの地域名並び順「未設定」が0になるので、最初の地域は1
u16 latitude; // リストの値を 65536/360 倍して格納して下さい u16 latitude; // リストの値を 65536/360 倍して格納して下さい
u16 longitude; // リストの値を 65536/360 倍して格納して下さい u16 longitude; // リストの値を 65536/360 倍して格納して下さい
}; };
@ -68,14 +68,15 @@ bool RegionIdModifier::IsValid()
const PathList* RegionIdModifier::GetDirectoryPath() const PathList* RegionIdModifier::GetDirectoryPath()
{ {
// 範囲外のリージョン // 範囲外のリージョン
if (2 < m_RegionCode) if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode)
{ {
return NULL; 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; return m_DirectoryPathBuf;
@ -84,7 +85,7 @@ const PathList* RegionIdModifier::GetDirectoryPath()
size_t RegionIdModifier::GetDirectoryPathNum() size_t RegionIdModifier::GetDirectoryPathNum()
{ {
// 範囲外のリージョン // 範囲外のリージョン
if (2 < m_RegionCode) if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode)
{ {
return 0; return 0;
} }
@ -114,7 +115,7 @@ const PathList* RegionIdModifier::GetFilePath()
{ {
size_t writeSize = std::wcslen(m_DirectoryPathBuf[i].path); size_t writeSize = std::wcslen(m_DirectoryPathBuf[i].path);
std::wcsncpy(m_FilePathBuf[i].path, m_DirectoryPathBuf[i].path, writeSize); 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; return m_FilePathBuf;

View File

@ -17,14 +17,17 @@
#if defined(__ARMCC_VERSION) #if defined(__ARMCC_VERSION)
#include <nn.h> #include <nn.h>
#include <nn/cfg.h>
#else #else
#include <cstddef> #include <cstddef>
#include "types.h" #include "types.h"
#include "stub.h"
#endif #endif
const size_t PATHLIST_LENGTH = 32;
struct PathList struct PathList
{ {
wchar_t path[32]; wchar_t path[PATHLIST_LENGTH];
}; };
//! @brief データ移行ツールで破壊した地域idを修正するためのクラスです //! @brief データ移行ツールで破壊した地域idを修正するためのクラスです
@ -75,14 +78,14 @@ class RegionIdModifier
//! @brief リージョンコード //! @brief リージョンコード
u8 m_RegionCode; u8 m_RegionCode;
//! @brief 地域名 //! @brief 地域名
wchar_t m_RegionName[64]; wchar_t m_RegionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH];
//! @brief ファイル名を保存するバッファ //! @brief ファイル名を保存するバッファ
wchar_t m_FileNameBuf[32]; wchar_t m_FileNameBuf[PATHLIST_LENGTH];
//! @brief ディレクトリパスを保存するバッファ //! @brief ディレクトリパスを保存するバッファ
PathList m_DirectoryPathBuf[3]; PathList m_DirectoryPathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1];
//! @brief ファイルパスを保存するバッファ //! @brief ファイルパスを保存するバッファ
PathList m_FilePathBuf[3]; PathList m_FilePathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1];
}; };
#endif // _REGION_ID_MODIFIER_H_ #endif // _REGION_ID_MODIFIER_H_

View File

@ -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_ */