AM Daemon ライブラリリファレンス
公開メンバ関数 | 全メンバ一覧

ゲームシーケンスを管理するMonostateクラス。 [詳解]

#include <Sequence.h>

公開メンバ関数

bool clearBackup ()
 ブックキーピングのクリア処理を要求する。 [詳解]
 
const SequenceBookkeepinggetBookkeeping () const
 プレイ回数やプレイ時間等のブックキーピングを取得する。 [詳解]
 
std::size_t getPlayerCount () const
 有効プレイヤー数を取得する。 [詳解]
 
PlayAccountingTiming getPlayAccountingTiming () const
 プレイ状態変更と連動するALL.Net課金の処理タイミングを取得する。 [詳解]
 
bool beginPlay (std::size_t playerIndex, const PlayBeginParam &param=PlayBeginParam())
 プレイヤーのプレイ開始処理を行う。 [詳解]
 
bool beginPlay (std::size_t playerIndex, const PlayBeginParam &param, PlayErrorId &errorId)
 プレイヤーのプレイ開始処理を行う。 [詳解]
 
bool continuePlay (std::size_t playerIndex, const PlayContinueParam &param=PlayContinueParam())
 プレイヤーのコンティニュー処理を行う。 [詳解]
 
bool continuePlay (std::size_t playerIndex, const PlayContinueParam &param, PlayErrorId &errorId)
 プレイヤーのコンティニュー処理を行う。 [詳解]
 
bool endPlay (std::size_t playerIndex, const PlayEndParam &param=PlayEndParam())
 プレイヤーのプレイ終了処理を行う。 [詳解]
 
bool endPlay (std::size_t playerIndex, const PlayEndParam &param, PlayErrorId &errorId)
 プレイヤーのプレイ終了処理を行う。 [詳解]
 
bool isPlaying (std::size_t playerIndex) const
 プレイヤーがプレイ中であるか否かを取得する。 [詳解]
 
bool isPlayingAny () const
 いずれかのプレイヤーがプレイ中であるか否かを取得する。 [詳解]
 
bool isAccountingPlaying (std::size_t playerIndex) const
 プレイヤーがALL.Net課金プレイ中であるか否かを取得する。 [詳解]
 
AimeId getPlayingAimeId (std::size_t playerIndex) const
 プレイ中のプレイヤーに紐付いているAimeのUID値を取得する。 [詳解]
 
bool beginTest ()
 ゲームテストモードを開始したことを通知する。 [詳解]
 
bool endTest ()
 ゲームテストモードを終了したことを通知する。 [詳解]
 
bool isTest () const
 ゲームテストモード中であるか否かを取得する。 [詳解]
 

詳解

ゲームシーケンスを管理するMonostateクラス。

Core クラスのメンバ関数 Core::execute 呼び出しによって内容が更新される。 一部の関数は処理完了まで呼び出し元スレッドをブロックする。

ライブラリ利用アプリで実装すべきこと
  • メンバ関数 getBookkeeping で取得できるブックキーピング情報を利用している場合、 ゲームテストモードにバックアップクリア画面を用意し、 オペレータがクリアを指示した場合にメンバ関数 clearBackup を呼び出すこと。
  • ゲームプレイ状態変更をメンバ関数 beginPlay, continuePlay, endPlay で通知すること。
    • ただし電断再起動時もゲームプレイ状態を継続させたい場合(メダルタイトル等)、 これらのメンバ関数を用いずゲームアプリ側でゲームプレイ状態を管理すること。 その場合、メンバ関数 getBookkeeping が返すブックキーピング情報は利用できない。
  • ゲームテストモード開始時にメンバ関数 beginTest を、 終了時にメンバ関数 endTest をそれぞれ呼び出すこと。
プレイ状態変更
各プレイヤーのプレイ開始/コンティニュー/終了処理を一括で行う。
  • メンバ関数 beginPlay でプレイを開始する。
  • メンバ関数 continuePlay でコンティニューする。
  • メンバ関数 endPlay でプレイを終了する。
いずれもゲームテストモード中に呼び出すことはできない。
引数に渡すパラメータによって下記の処理を一括して行わせることができる。
  • ブックキーピング更新
  • ゲームコスト(クレジット)支払い
  • ALL.Net課金プレイ開始/終了
  • AimeのUID値紐付けとプレイログ送信
上記のうち、ゲームプレイ状態変更と同時に行わせたくない処理については、 allnet::Accounting クラスや Aime クラス等を用いて個別に処理することもできる。
ゲームテストモード通知
Daemonプロセス側でのゲームテストモード対応のために行う通知。
  • メンバ関数 beginTest でゲームテストモード開始を通知する。
    • 通知に成功すると、全プレイヤーのプレイ状態は解除される。
    • その時点でのプレイは無かったことになり、ブックキーピングに記録されない。
  • メンバ関数 endTest でゲームテストモード終了を通知する。

関数詳解

bool amdaemon::Sequence::clearBackup ( )

ブックキーピングのクリア処理を要求する。

戻り値
true成功した場合。
false失敗した場合。

プレイ回数やプレイ時間等のブックキーピングのみがクリアされる。 クレジット関連のブックキーピングは Credit クラスのメンバ関数 Credit::clearBackup でクリアできる。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

const SequenceBookkeeping& amdaemon::Sequence::getBookkeeping ( ) const

プレイ回数やプレイ時間等のブックキーピングを取得する。

戻り値
プレイ回数やプレイ時間等のブックキーピング。

クレジット関連のブックキーピングは Credit クラスのメンバ関数 Credit::getBookkeeping で取得できる。

std::size_t amdaemon::Sequence::getPlayerCount ( ) const

有効プレイヤー数を取得する。

戻り値
有効プレイヤー数。
参照
Core::getPlayerCount

Core::getPlayerCount と同じ値を返す。

PlayAccountingTiming amdaemon::Sequence::getPlayAccountingTiming ( ) const

プレイ状態変更と連動するALL.Net課金の処理タイミングを取得する。

戻り値
ALL.Net課金の処理タイミング。

Daemonプロセスの設定ファイルで指定したALL.Net課金の処理タイミングを表す 列挙値を返す。

bool amdaemon::Sequence::beginPlay ( std::size_t  playerIndex,
const PlayBeginParam param = PlayBeginParam() 
)
inline

プレイヤーのプレイ開始処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramプレイ開始処理パラメータ。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーが既にプレイ中である場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayBeginParam クラスの各メンバ関数の説明を参照すること。

引数 param に各種パラメータを設定しておくことで下記の処理を順番に一括で行う。 パラメータを設定しなかった項目については処理しない。

  1. ゲームコスト(クレジット)の支払い可否チェック。
  2. ALL.Net課金プレイの開始。
  3. ALL.Net課金プレイの終了。
    • 1プレイの開始時にALL.Net課金プレイの開始と終了を一括で行うタイトル用。
  4. ゲームコスト(クレジット)の支払い。
  5. プレイ状態の変更。
  6. ブックキーピングの更新。
    • 引数 param の内容に依らず必ず行う。
  7. Aime UID値の紐付けとAimeプレイログの送信開始。
    • 処理の成否は無視される。

処理に失敗した場合、プレイ中状態には移行しない。下記の場合は必ず失敗する。

  • いずれかの引数が不正値である場合。
  • 対象プレイヤーが既にプレイ中である場合。
  • ゲームテストモード中である場合。
  • 進行停止エラー発生中である場合。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::Sequence::beginPlay ( std::size_t  playerIndex,
const PlayBeginParam param,
PlayErrorId errorId 
)

プレイヤーのプレイ開始処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramプレイ開始処理パラメータ。
[out]errorId処理失敗時のエラーID設定先。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーが既にプレイ中である場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayBeginParam クラスの各メンバ関数の説明を参照すること。

処理失敗時、引数 errorId に渡した変数に失敗原因を示すエラーID値が設定される。

上記以外の処理内容は beginPlay(std::size_t, const PlayBeginParam&) オーバロードと同等である。

bool amdaemon::Sequence::continuePlay ( std::size_t  playerIndex,
const PlayContinueParam param = PlayContinueParam() 
)
inline

プレイヤーのコンティニュー処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramコンティニュー処理パラメータ。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーがプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayContinueParam クラスの各メンバ関数の説明を参照すること。

引数 param に各種パラメータを設定しておくことで下記の処理を順番に一括で行う。 パラメータを設定しなかった項目については処理しない。

  1. ゲームコスト(クレジット)の支払い可否チェック。
  2. コンティニュー前プレイ分のALL.Net課金プレイの開始。
    • 1プレイの終了時にALL.Net課金プレイの開始と終了を一括で行うタイトル用。
  3. コンティニュー前プレイ分のALL.Net課金プレイの終了。
  4. コンティニュー後プレイ分のALL.Net課金プレイの開始。
  5. コンティニュー後プレイ分のALL.Net課金プレイの終了。
    • 1プレイの開始時にALL.Net課金プレイの開始と終了を一括で行うタイトル用。
  6. ゲームコスト(クレジット)の支払い。
  7. ブックキーピングの更新。
    • 引数 param の内容に依らず必ず行う。
  8. Aimeプレイログの送信開始。
    • プレイ開始時にUID値を紐付けした場合のみ行う。
    • 処理の成否は無視される。

処理に失敗した場合、コンティニューは行われない。下記の場合は必ず失敗する。

  • いずれかの引数が不正値である場合。
  • 対象プレイヤーがプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 進行停止エラー発生中である場合。

処理の失敗箇所によって呼び出し後の状態は変化する。 例えばALL.Net課金プレイの終了には成功したが開始には失敗した場合、 メンバ関数 isAccountingPlaying が false を返す状態となる。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::Sequence::continuePlay ( std::size_t  playerIndex,
const PlayContinueParam param,
PlayErrorId errorId 
)

プレイヤーのコンティニュー処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramコンティニュー処理パラメータ。
[out]errorId処理失敗時のエラーID設定先。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーがプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayContinueParam クラスの各メンバ関数の説明を参照すること。

処理失敗時、引数 errorId に渡した変数に失敗原因を示すエラーID値が設定される。

上記以外の処理内容は continuePlay(std::size_t, const PlayContinueParam&) オーバロードと同等である。

bool amdaemon::Sequence::endPlay ( std::size_t  playerIndex,
const PlayEndParam param = PlayEndParam() 
)
inline

プレイヤーのプレイ終了処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramプレイ終了処理パラメータ。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーが既にプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayEndParam クラスの各メンバ関数の説明を参照すること。

引数 param に各種パラメータを設定しておくことで下記の処理を順番に一括で行う。 パラメータを設定しなかった項目については処理しない。

  1. ALL.Net課金プレイの開始。
    • 1プレイの終了時にALL.Net課金プレイの開始と終了を一括で行うタイトル用。
  2. ALL.Net課金プレイの終了。
  3. プレイ状態の変更。
  4. ブックキーピングの更新。
    • 引数 param の内容に依らず必ず行う。
  5. Aimeプレイログの送信開始。
    • プレイ開始時にUID値を紐付けした場合のみ行う。
    • 処理の成否は無視される。

処理に失敗した場合、プレイ中状態は解除されない。下記の場合は必ず失敗する。

  • いずれかの引数が不正値である場合。
  • 対象プレイヤーがプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 進行停止エラー発生中である場合。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::Sequence::endPlay ( std::size_t  playerIndex,
const PlayEndParam param,
PlayErrorId errorId 
)

プレイヤーのプレイ終了処理を行う。

引数
[in]playerIndexプレイヤーインデックス。
[in]paramプレイ終了処理パラメータ。
[out]errorId処理失敗時のエラーID設定先。
戻り値
true成功した場合。
false失敗した場合。
参照
Player
例外
Exception
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • プレイヤーが既にプレイ中ではない場合。
  • ゲームテストモード中である場合。
  • 引数 param に不正な値を指定した場合。 詳しくは PlayEndParam クラスの各メンバ関数の説明を参照すること。

処理失敗時、引数 errorId に渡した変数に失敗原因を示すエラーID値が設定される。

上記以外の処理内容は endPlay(std::size_t, const PlayEndParam&) オーバロードと同等である。

bool amdaemon::Sequence::isPlaying ( std::size_t  playerIndex) const

プレイヤーがプレイ中であるか否かを取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
trueプレイ中である場合。
falseプレイ中ではない場合。
参照
Player
例外
Exception引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
bool amdaemon::Sequence::isPlayingAny ( ) const

いずれかのプレイヤーがプレイ中であるか否かを取得する。

戻り値
true1人以上のプレイヤーがプレイ中である場合。
falseどのプレイヤーもプレイ中ではない場合。
bool amdaemon::Sequence::isAccountingPlaying ( std::size_t  playerIndex) const

プレイヤーがALL.Net課金プレイ中であるか否かを取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
trueALL.Net課金プレイ中である場合。
falseALL.Net課金プレイ中ではない場合。
参照
Player
例外
Exception引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。

メンバ関数 getPlayAccountingTiming の戻り値が PlayAccountingTiming::Normal であり、なおかつメンバ関数 beginPlaycontinuePlay でALL.Net課金プレイを開始済みである場合に true を返すようになる。

上記メンバ関数の戻り値が PlayAccountingTiming::Normal 以外である場合や、 allnet::AccountingUnit クラスのメンバ関数 allnet::AccountingUnit::beginPlay を 直接呼び出して課金プレイを開始した場合、この関数が true を返すことはない。

AimeId amdaemon::Sequence::getPlayingAimeId ( std::size_t  playerIndex) const

プレイ中のプレイヤーに紐付いているAimeのUID値を取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
AimeのUID値。紐付いていないかプレイ中でない場合は無効値。
参照
Player
例外
Exception引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。

メンバ関数 beginPlay で紐付けしたAimeのUID値を返す。 紐付けしなかった場合は無効値のままとなる。

メンバ関数 endPlay を呼び出すと無効値に戻る。

bool amdaemon::Sequence::beginTest ( )

ゲームテストモードを開始したことを通知する。

戻り値
true成功した場合。
false失敗した場合。
例外
Exception既にゲームテストモード中である場合。

通知に成功すると、全プレイヤーのプレイ中状態は解除される。 その時点でのプレイは無かったことになり、ブックキーピングに記録されない。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::Sequence::endTest ( )

ゲームテストモードを終了したことを通知する。

戻り値
true成功した場合。
false失敗した場合。
例外
Exception既にゲームテストモード中ではない場合。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::Sequence::isTest ( ) const

ゲームテストモード中であるか否かを取得する。

戻り値
trueゲームテストモード中である場合。
falseゲームテストモード中ではない場合。

このクラス詳解は次のファイルから抽出されました: