//------------------------------------------------------------------------------ /// 引数に指定されたステージの記録を一覧形式で画面に表示します。 /// 記録がされていないステージの番号を指定した場合は何も表示されません。 /// /// @param[in] aStageIndex ステージ番号。有効な範囲の番号が指定される必要があります。 void Record::dumpStage(int aStageIndex)const { HPC_RANGE_ASSERT_MIN_UB_I(aStageIndex, 0, Parameter::GameStageCount); HPC_PRINT_LOG("Stage", "%d\n", aStageIndex); mStage[aStageIndex].dump(); }
//------------------------------------------------------------------------------ /// ステージ開始時に一度呼ぶことで、ステージ開始を記録します。 /// /// @param[in] aStageIndex ステージ番号。 /// @param[in] aStage ステージ情報への参照。 /// /// @pre ステージ番号は有効な範囲を示している必要があります。 void Record::writeStartStage(int aStageIndex, const Stage& aStage) { HPC_RANGE_ASSERT_MIN_UB_I(aStageIndex, 0, Parameter::GameStageCount); mCurrentStageIndex = aStageIndex; mStage[mCurrentStageIndex].writeStart(aStage); }
//------------------------------------------------------------------------------ /// 毎ターンの記録を行います。 /// /// @param[in] aResult 現在のターンを表す実行結果。 void RecordStage::writeTurn(const TurnResult& aResult) { #ifdef DEBUG HPC_RANGE_ASSERT_MIN_UB_I(mCurrentTurn, 0, HPC_ARRAY_NUM(mTurns)); mTurns[mCurrentTurn].set(aResult); #endif ++mCurrentTurn; }
//------------------------------------------------------------------------------ /// 指定インデックスの荷物が追加されているかどうかを取得します。 /// /// @param[in] aIndex インデックス。 /// /// @return 指定荷物が追加されているなら true、それ以外なら false。 bool ItemGroup::hasItem(int aIndex) const { HPC_RANGE_ASSERT_MIN_UB_I(aIndex, 0, Parameter::ItemCountMax); return (mBits & (1 << aIndex)) != 0; }
//------------------------------------------------------------------------------ /// 荷物を削除します。 /// /// @param[in] aIndex 削除する荷物のインデックス。 void ItemGroup::removeItem(int aIndex) { HPC_RANGE_ASSERT_MIN_UB_I(aIndex, 0, Parameter::ItemCountMax); mBits &= ~(1 << aIndex); }
//------------------------------------------------------------------------------ /// 荷物を追加します。 /// /// @param[in] aIndex 追加する荷物のインデックス。 void ItemGroup::addItem(int aIndex) { HPC_RANGE_ASSERT_MIN_UB_I(aIndex, 0, Parameter::ItemCountMax); mBits |= 1 << aIndex; }
//------------------------------------------------------------------------------ /// 引数に指定されたステージの記録を JSON 形式で画面に出力します。 /// 画面には指定されたステージの記録に関する部分のみの JSON が、非圧縮形式 /// (空白・改行・インデントなどを含み整形されている状態) で出力されます。 /// /// @param[in] aStageIndex ステージ番号。有効な範囲の番号が指定される必要があります。 void Record::dumpJsonStage(int aStageIndex)const { HPC_RANGE_ASSERT_MIN_UB_I(aStageIndex, 0, Parameter::GameStageCount); mStage[aStageIndex].dumpJson(false); }