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

ビデオゲームのクレジット処理を提供するMonostateクラス。 [詳解]

#include <Credit.h>

公開メンバ関数

bool isAvailable () const
 クレジット機能を利用可能であるか否かを取得する。 [詳解]
 
bool isCoinInIgnored () const
 コイン追加を無視する処理が有効であるか否かを取得する。 [詳解]
 
bool setCoinInIgnored (bool ignored)
 コイン追加を無視する処理を有効にするか否かを設定する。 [詳解]
 
bool clearBackup ()
 現在のクレジット値とブックキーピングのクリア処理を要求する。 [詳解]
 
const CreditBookkeepinggetBookkeeping () const
 現在のクレジット関連ブックキーピングを取得する。 [詳解]
 
const CreditConfiggetConfig () const
 現在のクレジット設定を取得する。 [詳解]
 
void setCoinInHook (std::function< bool(CreditSound)> hook)
 コイン投入時に呼び出されるフック関数を設定する。 [詳解]
 
void setCoinInHook (std::function< bool(CreditSound, const std::vector< std::size_t > &)> hook)
 コイン投入時に呼び出されるフック関数を設定する。(VC++2015以降限定) [詳解]
 
void setCoinInHookWithPlayer (std::function< bool(CreditSound, const std::vector< std::size_t > &)> hook)
 コイン投入時に呼び出されるフック関数を設定する。 [詳解]
 
void resetCoinInHook ()
 コイン投入時に呼び出されるフック関数を解除し、未設定状態に戻す。 [詳解]
 
std::size_t getPlayerCount () const
 有効プレイヤー数を取得する。 [詳解]
 
CreditUnitgetPlayer (std::size_t playerIndex)
 プレイヤーのクレジット情報インスタンスを取得する。 [詳解]
 
const CreditUnitgetPlayer (std::size_t playerIndex) const
 プレイヤーのクレジット情報インスタンスを取得する。 [詳解]
 
CreditSpecialDevicegetSpecialDevice ()
 特殊デバイス操作インスタンスを取得する。 [詳解]
 

詳解

ビデオゲームのクレジット処理を提供するMonostateクラス。

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

ライブラリ利用アプリで実装すべきこと(ビデオタイトルのみ)
  • メンバ関数 setCoinInHook または setCoinInHookWithPlayer でフック関数を設定し、 フック関数呼び出し時にコイン/クレジット投入音再生処理を行うこと。
  • ゲームテストモードにバックアップクリア画面を用意し、 オペレータがクリアを指示した場合にメンバ関数 clearBackup を呼び出すこと。
INSERT COIN(S) 表示について
CreditUnit クラスの説明を参照すること。

関数詳解

bool amdaemon::Credit::isAvailable ( ) const

クレジット機能を利用可能であるか否かを取得する。

戻り値
true利用可能である場合。
false機能が無効である場合。
bool amdaemon::Credit::isCoinInIgnored ( ) const

コイン追加を無視する処理が有効であるか否かを取得する。

戻り値
true処理が有効である場合。
false処理が無効であるか、クレジット機能が無効である場合。
参照
setCoinInIgnored

メンバ関数 setCoinInIgnored で設定した値を返す。 ただし、 Sequence クラスによるゲームテストモードの開始時および終了時には 初期値 false にリセットされる。

処理の詳細はメンバ関数 setCoinInIgnored の説明を参照すること。

bool amdaemon::Credit::setCoinInIgnored ( bool  ignored)

コイン追加を無視する処理を有効にするか否かを設定する。

引数
[in]ignored有効にするならば true 。無効にするならば false 。
戻り値
true成功した場合。
false失敗したか、クレジット機能が無効である場合。
参照
isCoinInIgnored

この関数によってコイン追加を無視する処理を有効にした場合、 コイン投入、サービスクレジット、電子マネーのコイン購入操作について、 ゲームテストモード中と同等の動作を行うようになる。

即ち、コイン投入およびサービスボタン押下によるコイン追加は無視され、 電子マネーによるコイン購入操作は失敗扱いとなる。

なお、ゲームテストモード中および進行停止エラー発生中は、 この関数での設定状態とは関係なくコイン追加が無視される。

この関数による処理有効設定は、 Sequence クラスによるゲームテストモードの 開始時および終了時にリセットされて処理無効状態に戻る。 この関数自体はゲームテストモード中に呼び出すことも可能だが、 ゲームテストモードの終了時に設定がリセットされるため、実質無意味となる。

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

bool amdaemon::Credit::clearBackup ( )

現在のクレジット値とブックキーピングのクリア処理を要求する。

戻り値
true成功した場合。
false失敗したか、クレジット機能が無効である場合。

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

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

const CreditBookkeeping& amdaemon::Credit::getBookkeeping ( ) const

現在のクレジット関連ブックキーピングを取得する。

戻り値
クレジット関連ブックキーピング。

プレイ回数やプレイ時間等のブックキーピングは Sequence クラスのメンバ関数 Sequence::getBookkeeping で取得できる。

const CreditConfig& amdaemon::Credit::getConfig ( ) const

現在のクレジット設定を取得する。

戻り値
現在のクレジット設定。
void amdaemon::Credit::setCoinInHook ( std::function< bool(CreditSound)>  hook)

コイン投入時に呼び出されるフック関数を設定する。

引数
[in]hookフック関数。
参照
setCoinInHookWithPlayer

この関数でフック関数(コールバック)を設定すると、 以降のコイン投入時にフック関数が呼び出される。

より正確には、コイン投入音を鳴らすべきタイミングで呼び出される。 ゲームテストモード中など、コイン投入音を鳴らすべきでないタイミングでは、 たとえコイン投入を行ったとしても呼び出されない。

コイン投入時には投入音を鳴らすことが作成基準で定められているため、 必ずこの関数、またはメンバ関数 setCoinInHookWithPlayer でフック関数を登録し、 投入音再生処理を実施すること。

フック関数の第1引数には、投入音種別を表す CreditSound 列挙値が渡される。 渡される値が CreditSound::None になることはない。

フック関数は、処理が完了したならば true 、未完了ならば false を返すこと。 false を返した場合は次のフレームで再度フック関数呼び出しが発生する。 false を返す状況としては、前回の投入音が再生完了していない場合等が考えられる。

フック関数には、第1引数に CreditSound 列挙値を受け取り、 bool 値を返す関数もしくは関数オブジェクトを指定できる。 任意のクラスのメンバ関数を指定したい場合はラムダ式を用いるとよい。

コイン投入によってコイン数が増加したプレイヤーを判別したい場合、 この関数の代わりにメンバ関数 setCoinInHookWithPlayer を用いることができる。 この関数とメンバ関数 setCoinInHookWithPlayer は内部で共通のフック関数設定先を用いるため、 両方にフック関数を設定しようとした場合は最後に設定したもののみ有効となる。

いずれのフック関数も未設定の場合、設定されるまでフック処理が保留される。 そのため、Daemonプロセス起動からフック関数設定までの間にコイン投入を N 回行うと、 フック関数設定直後に N 回連続でフック関数が呼び出される。 ただし、 1 フレームに呼び出される回数は 1 回までとなる。

// MyClass クラスのメンバ関数 doHook を指定する例
void setHook(MyClass& c)
{
credit.setCoinInHook([&c](amdaemon::CreditSound s) { return c.doHook(s); });
}
// MyClass クラスのメンバ関数内から指定する例
void MyClass::setHook()
{
credit.setCoinInHook([this](amdaemon::CreditSound s) { return this->doHook(s); });
}
void amdaemon::Credit::setCoinInHook ( std::function< bool(CreditSound, const std::vector< std::size_t > &)>  hook)
inline

コイン投入時に呼び出されるフック関数を設定する。(VC++2015以降限定)

引数
[in]hookフック関数。
参照
setCoinInHookWithPlayer

メンバ関数 setCoinInHook(std::function<bool (CreditSound)> hook) のオーバロード。

引数のフック関数をそのままメンバ関数 setCoinInHookWithPlayer に渡すだけである。 よって詳細はメンバ関数 setCoinInHookWithPlayer の説明を参照すること。

VC++2013以前の環境では、 std::function クラステンプレートの関数型によるオーバロードが正しく機能しない。 そのためこのメンバ関数はVC++2015以降の環境でのみ定義される。

void amdaemon::Credit::setCoinInHookWithPlayer ( std::function< bool(CreditSound, const std::vector< std::size_t > &)>  hook)

コイン投入時に呼び出されるフック関数を設定する。

引数
[in]hookフック関数。
参照
setCoinInHook(std::function<bool (CreditSound)>)

基本的にはメンバ関数 setCoinInHook(std::function<bool (CreditSound)>) に準ずるため、そちらの説明も参照すること。

この関数は、設定するフック関数に第2引数が追加されている点が異なる。

フック関数の第2引数には、コイン投入によってコイン数が増加したプレイヤーの プレイヤーインデックスが配列で渡される。 配列である理由は、クレジット設定の COIN CHUTE TYPE 設定値が COMMON の場合、 1回のコイン投入に対して複数のプレイヤーが該当する場合があるためである。

第2引数の参照先配列自体は常に有効だが、 フック関数が true を返した直後に配列要素はクリアされ、要素数 0 になる。 フック関数呼び出し時点での配列内容をそれ以降でも利用したい場合、 参照の保持ではなく値のコピーを行うこと。

この関数とメンバ関数 setCoinInHook は内部で共通のフック関数設定先を用いるため、 両方にフック関数を設定しようとした場合は最後に設定したもののみ有効となる。

void amdaemon::Credit::resetCoinInHook ( )

コイン投入時に呼び出されるフック関数を解除し、未設定状態に戻す。

参照
setCoinInHook, setCoinInHookWithPlayer

フック関数未設定である場合、設定されるまでフック関数呼び出しが保留される。

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

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

戻り値
有効プレイヤー数。クレジット機能が無効ならば 0 。
参照
Core::getPlayerCount

機能が有効ならば、 Core::getPlayerCount と同じ値を返す。

CreditUnit& amdaemon::Credit::getPlayer ( std::size_t  playerIndex)

プレイヤーのクレジット情報インスタンスを取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
プレイヤーのクレジット情報インスタンス。
参照
Player
例外
Exception
  • クレジット機能が無効である場合。
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
const CreditUnit& amdaemon::Credit::getPlayer ( std::size_t  playerIndex) const

プレイヤーのクレジット情報インスタンスを取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
プレイヤーのクレジット情報インスタンス。
参照
Player
例外
Exception
  • クレジット機能が無効である場合。
  • 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。 有効プレイヤー数はメンバ関数 getPlayerCount で取得できる。
CreditSpecialDevice& amdaemon::Credit::getSpecialDevice ( )

特殊デバイス操作インスタンスを取得する。

戻り値
特殊デバイス操作インスタンス。

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