TwlToolsRED/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/utility.h
nishikawa_takeshi 3479878f53 マスタエディタ:
・SDアクセス権の表示を追加。
・GRBのレーティング表記修正。
・提出確認書にもSDアクセス権の表記場所を追加。ノーマルジャンプの表記場所を隠しシートからメインシートに移動。
・備考欄への自動追記処理を変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@291 7061adef-622a-194b-ae81-725974e89856
2009-06-09 12:49:30 +00:00

211 lines
5.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
// 共用ライブラリ・クラスの宣言
#include <twl/types.h>
#include <cstring>
#include <cstdio>
namespace MasterEditorTWL
{
// -------------------------------------------------------------------
// functions
// -------------------------------------------------------------------
//
// String を char 配列に格納
//
// @arg [out] 格納先
// @arg [in] 格納元
// @arg [in] 文字列長
// @arg [in] 余りを埋める padding
//
void setStringToChars( char *pDst, System::String ^hSrc, const System::Int32 nMax, const System::SByte pad );
//
// ROMヘッダ中のROM容量設定バイトからROM容量を表す文字列を取得
//
// @arg [in] ROM容量設定バイト
//
// @ret 文字列(単位つき)
//
System::String^ transRomSizeToString( System::Byte ^byte );
//
// サイズから単位つきの文字列を取得
//
// @arg [in] バイト数
//
// @ret 文字列(単位つき)
//
System::String^ transSizeToString( const System::UInt32 size );
System::String^ transSizeToStringKB( const System::UInt32 size );
System::String^ transSizeToStringMB( const System::UInt32 size ); // 小数点表示
System::String^ transSizeToStringMB( const System::UInt32 size, const System::UInt32 decimals ); // 第2引数で小数点桁数を指定(それ以下の桁は切り上げ)
//
// 各レーティング団体の設定可能年齢を取得する
//
// @arg [in] 団体
//
cli::array<System::Byte>^ getOgnRatingAges( int ogn );
//
// 各レーティング団体の団体名を取得する
//
// @arg [in] 団体
//
System::String^ getOgnName( int ogn );
//
// リージョンに含まれる団体のリストを返す(不正なリージョンのときはnullptr)
//
// @arg [in] リージョン
//
System::Collections::Generic::List<int>^ getOgnListInRegion( u32 region );
//
// バイト列に特定のパターンが含まれるかどうかマッチングする
//
// @arg [in] テキスト
// [in] テキストの長さ
// [in] パターン
// [in] パターンの長さ
// [in] テキストの終端まで調べた時点でテキストが途中までマッチしていた場合を成功とみなすか
//
// @ret マッチしたテキストのインデックスをリストで返す。
//
System::Collections::Generic::List<u32>^ patternMatch(
const u8 *text, const u32 textLen, const u8 *pattern, const u32 patternLen, const System::Boolean enableLast );
//
// ファイルにバイト列のパターンが含まれるかどうかマッチングする
//
// @arg [in] マッチ対象となるファイルポインタ
// @arg [in] パターン
// @arg [in] パターンの長さ
//
// @ret マッチしたテキストのインデックスをリストで返す。
// 最後までマッチした場合のみ成功したとみなす。
//
System::Collections::Generic::List<u32>^ patternMatch( FILE *fp, const u8 *pattern, const u32 patternLen );
////
//// バイト列に特定のパターンが含まれるかどうかマッチングする (Boyer-Moore法)
////
//// @arg [in] テキスト
//// [in] テキストの長さ
//// [in] パターン
//// [in] パターンの長さ
//// [in] skipマップ(あらかじめ生成しておく)
////
//// @ret マッチしたテキストのインデックスをリストで返す。
////
//System::Collections::Generic::List<u32>^ patternMatchBM(
// const u8 *text, const int textLen, const u8 *pattern, const int patternLen, const int skip[] );
////
//// Boyer-Moore法のskipマップの生成
////
//// @arg [in] パターン
//// [in] パターンの長さ
//// [out] skipマップの格納先
////
//// @ret なし
////
//void makeSkipBM( const u8 *pattern, const int patternLen, int skip[] );
//
// XMLのルートードから指定した名前のタグを検索して返す
//
// @arg [in] XMLのルートード
// @arg [in] タグ名
//
// @ret 検索でマッチしたときノードを返す。ないときは nullptr。
// ただし、最初にマッチしたもののみ返す
//
System::Xml::XmlNode^ searchXmlNode( System::Xml::XmlElement ^root, System::String ^tag );
//
// タグを検索してそのテキストが指定したテキストと一致するか調べる
//
// @arg [in] XMLのルートード
// @arg [in] タグ名
// @arg [in] 値
//
// @ret 一致するときtrue。一致しないとき、タグが存在しないときはfalse。
//
System::Boolean isXmlEqual( System::Xml::XmlElement ^root, System::String ^tag, System::String ^val );
//
// タグを検索してそのテキストを返す
//
// @arg [in] XMLのルートード
// @arg [in] タグのXPath
//
// @ret テキストが存在するときそのテキストを返す。存在しないときnullptr。
//
System::String^ getXPathText( System::Xml::XmlElement ^root, System::String ^xpath );
//
// XMLにタグを追加する
//
// @arg [in] XMLドキュメント
// @arg [in] 親ノード
// @arg [in] タグ名
// @arg [in] テキスト
//
void appendXmlTag( System::Xml::XmlDocument ^doc, System::Xml::XmlElement ^parent,
System::String ^tag, System::String ^text );
//
// ビット数をカウントする
//
// @arg [in] 値
//
// @ret ビット数
//
u32 countBits( const u32 val );
//
// SDKバージョンを解読する(例 10203 -> "PR2 plus3")
//
System::String^ analyzeSDKVersion( System::UInt32 code );
//
// SDKバージョンの大小判定をする
//
// @arg [in] 判定対象のSDKバージョン(SRLに含まれるもの)
// @arg [in] 判定基準のSDKバージョン(設定ファイルに記述されるもの)
// @arg [in] Relstepの判定をPR/RCのときも判定するか(falseのときRelease版のみ)
//
// @ret 判定対象が基準よりも旧バージョンのとき(認められないとき) true
//
System::Boolean IsOldSDKVersion( u32 target, u32 criterion, System::Boolean isRelstepPrRc );
//
// SDKバージョンがPR版かどうか調べる
//
// @arg [in] 判定対象のSDKバージョン(SRLに含まれるもの)
//
// @ret PR版のとき true
//
System::Boolean IsSDKVersionPR( u32 target );
//
// SDKバージョンがRC版かどうか調べる
//
// @arg [in] 判定対象のSDKバージョン(SRLに含まれるもの)
//
// @ret PR版のとき true
//
System::Boolean IsSDKVersionRC( u32 target );
//
// src を base 単位に切り上げる
//
System::UInt32 roundUp( const System::UInt32 src, const System::UInt32 base );
} // end of namespace MasterEditorTWL