マジックナンバーの除去

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
{
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;

View File

@ -17,14 +17,17 @@
#if defined(__ARMCC_VERSION)
#include <nn.h>
#include <nn/cfg.h>
#else
#include <cstddef>
#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_

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