エンジニア的仕様 覚書 - nunu-e64/TENYU_RPG_CodeOnly GitHub Wiki

■仕様覚書
・話しかけた相手ではない、イベントで登場するNPCのキョロキョロが止まらない
・仮想継承×多重継承のコピーコンストラクタについて、親クラスのコピーコンストラクタで明示的に*this=objと記述しないと適切にコピーしてくれないみたい。
・@Flag_Setの次に@FLAG_BEGINを使用したときに@FLAG_BEGINが先に処理される悪仕様の修正
・@COUNT_BEGINと@Count_Set, @DIR_BEGINと@DIr_Setの場合も同様と思われる
・9月20日現在はトークコマンドが先に処理される仕様
→@Flag_Setの直後に@NextPageを入れれば解決する。

■機能覚書(Tips)
・#pragma warning(disable:4786)
・メンバ変数で直接包含していたクラスを、ポインタで宣言し、コンストラクタとデストラクタでnewとdeleteを使って生成する(BTextBoxとか)

(済)Border(Display* display) : mDisplay(display){} これで包含対象のコピーコンストラクタや親クラスのコンストラクタにに情報を渡して代入させることができるのみたい(Decoratorパターン)(Cbattle*あるいはCTextBox*)

★無理に包含を作って所属を明確にしようとせずに、、ポインタをメンバ変数で持ち合う形にして、本クラスはMainなどおおもとで所持させておく
・メンバ変数にはコンストラクタや初期化で代入処理を行う
・配列宣言→一つ一つ初期化ではなく、一つ宣言して初期化した後、コピーした方がきれいになるかも?
・typeidでCActor*がCEnemy*かCPlayer*か特定できる

◇イチオシパターン
・Decorator・・・元のクラスの中身をいじることなく飾りつけができるぜ
・memento・・・教師が自分の中身を入れた生徒をnewで生んでそのポインタを更に上位に返すことで、教師から独立できる

・ポインタをint型につっこんで管理すべきではない。intptr_t型など検索して利用すべし。http://ota42y.com/blog/2014/11/07/cpp-64bit-cast/

⚠️ **GitHub.com Fallback** ⚠️