Cisqua API 仕様


Cisqua 公開関数

cisqua.dll は、Cisqua 構成要素となる DLL の機能をプログラムから実行時に呼び出す関数を提供しています。 Cisqua の公開している API は、必ず cq が接頭辞となります。 cisqua.dll の関数を呼び出すには cisqua.h ヘッダファイルをインクルードしてください。

Cisqua API は、主に初期化情報を取得するためのプロパティ関数、エラー処理用関数、イベント関数に大別できます。

プロパティ関数
関数解説
PCTSTR cqGetTitle(VOID);このゲームのタイトル名を取得します。
LONG cqGetMaxFPS(VOID);このゲームの描画処理に要求される最大 FPS を取得します。
DWORD cqGetWidth(VOID);ゲーム画面の幅を取得します。
DWORD cqGetHeight(VOID);ゲーム画面の高さを取得します。
BOOL cqGetFullScr(VOID);フルスクリーンで起動するかどうかを取得します。
PCTSTR cqGetLayerDLL(VOID);デフォルトのレイヤ用DLLのパスを取得します。
LOGFONT * cqGetDefaultFont(VOID);デフォルトのフォントを取得します。
DWORD cqGetSaveCount(VOID);セーブファイルとして保存可能な最大数を取得します。
PCTSTR cqGetSavePath(VOID);セーブファイルを保存するフォルダ、またはパスを取得します。
PCTSTR cqGetSaveName(VOID);セーブファイルの名前を取得します。
PCTSTR cqGetScripterPath(VOID);ゲーム制御を担当するスクリプトDLLのパスを取得します。
PCTSTR cqGetScriptCmd(VOID);スクリプトの初期化時に渡すコマンド文字列を取得します。

エラー関数
関数解説
VOID cqSetErrorChacher(CQ_CHACHER);エラーを受けるコールバック関数を設定します。
CQ_CHACHER cqGetErrorChacher(VOID);エラーを受けるコールバック関数を取得します。
BOOL cqThrowErrorMessage(PCTSTR, PCTSTR);例外が発生したことを通知します。

イベント関数
関数解説
HINSTANCE cqGetScripter(VOID);スクリプト用 DLL のインスタンスハンドルを返します。
BOOL cqInitScripter(PCTSTR, cqILayer);スクリプト用 DLL を初期化します。
BOOL cqDrawNext(VOID);ゲームスクリプト DLL に次の場面に移行することを要求します。
BOOL cqMouseDown(DWORD, LONG , LONG);マウスボタンがゲーム画面上で押されたことをゲームスクリプト DLL に通知します。
BOOL cqMouseUp(DWORD , LONG, LONG);マウスボタンがゲーム画面上で離されたことをゲームスクリプト DLL に通知します。
BOOL cqMouseMove(LONG , LONG);マウスカーソルがゲーム画面上で移動したことをゲームスクリプト DLL に通知します。
BOOL cqKeyDown(int);キーボードのキーが押されたことをゲームスクリプト DLL に通知します。
BOOL cqKeyUp(int vkey);キーボードのキーが離されたことをゲームスクリプト DLL に通知します。
BOOL cqSave(PCTSTR);指定したファイルに現在のゲームデータを保存します。
BOOL cqLoad(PCTSTR);指定したファイルからゲームデータを読み込みます。
BOOL cqCanSave(VOID);ゲームスクリプト DLL がデータの保存に対応しているかどうかを取得します。
BOOL cqCanLoad(VOID);ゲームスクリプト DLL がデータの読み込みに対応しているかどうかを取得します。

レイヤ関数
関数解説
DWORD cqGetTemplateLayerSize(VOID);テンプレートレイヤのインスタンスのバッファに必要なバイトサイズを返します。
VOID cqGetTemplateLayer(PVOID);指定したバッファにテンプレートレイヤのインスタンスを転送します。
cqILayer cqCreateLayer(PCTSTR , LONG, LONG, LONG, LONG);設定されているレイヤ用 DLL にレイヤオブジェクトの生成を要求します。
VOID cqDrawLayer(HDC, cqILayer);レイヤの内容をデバイスコンテキストに転送します。

変数辞書関数
関数解説
VOID cqAddVariable(PCTSTR, const VOID *, DWORD);新しい変数をシステムに登録します。
BOOL cqRemoveVariable(PCTSTR);変数をメモリから解放します。
VOID cqRemoveAllVariable(VOID);全ての変数をメモリから解放します。
DWORD cqGetVariableCount(VOID);システムに登録されている変数の数を取得します。
PCTSTR cqGetVariableName(DWORD);インデックスから変数名を取得します。
VOID * cqGetVariable(PCTSTR);変数名に対応しているデータを取得します。
DWORD cqGetVariableSize(PCTSTR);変数名に対応するデータのバッファサイズを取得します。
LONG cqFindVariable(PCTSTR);変数が存在するかどうかを調べます


cqGetTitle

このゲームのタイトル名を取得します。 通常は、ゲーム画面のコンテナのタイトルバーなどに描画されるべきです。

PCTSTR cqGetTitle(VOID);
戻り値
ゲームタイトルを表すヌルで終わる文字列へのポインタ。

cqGetMaxFPS

このゲームの描画処理に要求される最大 FPS を取得します。 通常は 60 程度が推奨されますが、滑らかな描画が要求されない場合は 30 程度に下げた方が CPU の使用率に余裕ができます。

LONG cqGetMaxFPS(VOID);
戻り値
要求される最大 FPS。

cqGetWidth

ゲーム画面の幅を取得します。 コンテナの枠はこれに含まれません。

DWORD cqGetWidth(VOID);
戻り値
ピクセル単位の幅

cqGetHeight

ゲーム画面の高さを取得します。 コンテナの枠はこれに含まれません。

DWORD cqGetHeight(VOID);
戻り値
ピクセル単位の高さ。

cqGetFullScr

フルスクリーンで起動するかどうかを取得します。

BOOL cqGetFullScr(VOID);
戻り値
TRUE ならばフルスクリーンモードによる起動を要求している。

cqGetLayerDLL

デフォルトのレイヤ用DLLのパスを取得します。

PCTSTR cqGetLayerDLL(VOID);
戻り値
レイヤ用DLLのパスを表すヌルで終わる文字列へのポインタ。

cqGetDefaultFont

デフォルトのフォントを取得します。

LOGFONT * cqGetDefaultFont(VOID);
戻り値
デフォルトフォントとして推奨される LOFFONT へのポインタ。

cqGetSaveCount

セーブファイルとして保存可能な最大数を取得します。

DWORD cqGetSaveCount(VOID);
戻り値
セーブファイルの最大数。

cqGetSavePath

セーブファイルを保存するフォルダ、またはパスを取得します。

PCTSTR cqGetSavePath(VOID);
戻り値
セーブファイルを保存しているパスを表すヌルで終わる文字列へのポインタ。

cqGetSaveName

セーブファイルの名前を取得します。

PCTSTR cqGetSaveName(VOID);
戻り値
セーブファイル名を表すヌルで終わる文字列へのポインタ。

cqGetScripterPath

ゲーム制御を担当するスクリプトDLLのパスを取得します。

PCTSTR cqGetScripterPath(VOID);
戻り値
スクリプトDLLのパスを表すヌルで終わる文字列へのポインタ。

cqGetScriptCmd

スクリプトの初期化時に渡すコマンド文字列を取得します。

PCTSTR cqGetScriptCmd(VOID);
戻り値
ヌルで終わるコマンド文字列。

cqSetErrorChacher

Cisqua またはそれに関連するシステム内で発生したエラーを受けるコールバック関数を設定します。

VOID cqSetErrorChacher(CQ_CHACHER chacher);
chacher
設定するコールバック関数へのポインタ。

cqGetErrorChacher

エラーを受けるコールバック関数を取得します。

CQ_CHACHER cqGetErrorChacher(VOID);
戻り値
例外を受け取るコールバック関数へのポインタ。

cqThrowErrorMessage

Cisqua に対して、仕様想定外の例外が発生したことを通知します。 このメッセージは cqSetErrorChacher で最後に設定されたエラー受信用関数にコールバックされます。

BOOL cqThrowErrorMessage(PCTSTR errorType , PCTSTR message);
errorType
エラーの種類を表すヌルで終わる文字列へのポインタ
message
例外の詳細情報を伝えるヌルで終わる文字列へのポインタ
戻り値
TRUE ならば例外が処理された

cqGetScripter

スクリプト用 DLL のインスタンスハンドルを返します。

HINSTANCE cqGetScripter(VOID);
戻り値
スクリプト用 DLL のインスタンスハンドル。

cqInitScripter

スクリプト用 DLL を初期化します。 ゲームを再起動する場合にもこの関数を利用することができます。

BOOL cqInitScripter(PCTSTR, cqILayer);
cqILayer
このゲームスクリプトのルートレイヤ
戻り値
TURE ならば成功。

cqDrawNext

ゲームスクリプト DLL に次の場面に移行することを要求します。 この関数は、通常コンテナから1秒間に 1 〜 最大 FPS までの範囲で呼び出します。

BOOL cqDrawNext(VOID);
戻り値
TURE ならば視覚情報に変更が加えられた。FALSE ならば変更はない(画面を更新しない)

cqMouseDown

マウスボタンがゲーム画面上で押されたことをゲームスクリプト DLL に通知します。 この関数の座標 x と y は、ゲーム画面上の相対座標でなければなりません。

BOOL cqMouseDown(DWORD button , LONG x , LONG y);
button
押されたマウスボタンを表す定数。
x
X 座標
y
Y 座標
戻り値
TURE ならば成功。

cqMouseUp

マウスボタンがゲーム画面上で離されたことをゲームスクリプト DLL に通知します。

BOOL cqMouseUp(DWORD button , LONG x , LONG y);
button
離されたマウスボタンを表す定数。
x
X 座標。
y
Y 座標。
戻り値
TURE ならば成功。

cqMouseMove

マウスカーソルがゲーム画面上で移動したことをゲームスクリプト DLL に通知します。

BOOL cqMouseMove(LONG x , LONG y);
x
X 座標。
y
Y 座標。
戻り値
TURE ならば成功。

cqKeyDown

キーボードのキーが押されたことをゲームスクリプト DLL に通知します。

BOOL cqKeyDown(int vkey);
vkey
仮想キーコード。
戻り値
TURE ならば成功。

cqKeyUp

キーボードのキーが離されたことをゲームスクリプト DLL に通知します。

BOOL cqKeyUp(int vkey);
vkey
仮想キーコード。
戻り値
TURE ならば成功。

cqSave

指定したファイルに現在のゲームデータを保存します。

BOOL cqSave(PCTSTR filePath);
filePath
ゲームデータを保存するファイルパスを表すヌルで終わる文字列へのポインタ。
戻り値
TURE ならば成功。

cqLoad

指定したファイルからゲームデータを読み込みます。

BOOL cqLoad(PCTSTR filePath);
filePath
ファイルパスを表すヌルで終わる文字列へのポインタ。
戻り値
TURE ならば成功。

cqCanSave

ゲームスクリプト DLL がデータの保存に対応しているかどうかを取得します。 この関数が TRUE を返す場合 cqSave() 関数を安全に呼び出すことができます。

BOOL cqCanSave();
戻り値
TURE ならばゲームの現在の状態を保存することができる。

cqCanLoad

ゲームスクリプト DLL がデータの読み込みに対応しているかどうかを取得します。 この関数が TRUE を返す場合 cqLoad() 関数を安全に呼び出すことができます。

BOOL cqCanLoad();
戻り値
TURE ならばファイルからゲームを再開することができる。

cqGetTemplateLayerSize

テンプレートレイヤのインスタンスのバッファに必要なバイトサイズを返します cqGetTemplateLayer() 関数に渡すバッファへのポインタは、少なくともこの関数が返すサイズの領域を保障しなければなりません。

DWORD cqGetTemplateLayerSize();
戻り値
テンプレートレイヤのインスタンスを保存するために必要なバイトサイズ。

cqGetTemplateLayer

バッファにテンプレートレイヤのインスタンスを転送します。 この関数によって layer はテンプレートレイヤで初期化されます。 layer を cqILayer 型にキャストして安全に利用することができます。

VOID cqGetTemplateLayer(PVOID layer);
layer
テンプレートレイヤのインスタンスとして初期化するバッファへのポインタ。

cqCreateLayer

指定したパスの DLL モジュールから、レイヤオブジェクトを生成するコンストラクタ関数を検索して実行します。 成功した場合は、モジュール独自の cqILayer オブジェクトを返します。

cqILayer cqCreateLayer(PCTSTR moduleName , LONG x LONG y LONG width LONG height);
moduleName
レイヤを生成するモジュールのパスを表すヌルで終わる文字列へのポインタ。
x
ピクセル単位の初期 X 座標。
y
ピクセル単位の初期 Y 座標。
width
ピクセル単位の幅。
height
ピクセル単位の高さ。
戻り値
成功すれば cqILayer オブジェクトへのポインタ。失敗すれば NULL。

cqDrawLayer

レイヤの内容をデバイスコンテキストに転送します。

VOID cqDrawLayer(HDC hdc , cqILayer layer);
hdc
レイヤの内容を転送するデバイスコンテキストのハンドル。
layer
デバイスに描画するレイヤ。

cqAddVariable

Cisqua 起動中にシステムやゲームスクリプト DLL など各種プラグインが共有する変数を登録します。 変数は、指定した文字列とデータを関連付ける辞書として機能します。 バッファはそのままシステムにコピーされるため、元のデータは解放しても問題はありません。

既存の変数と同じ名前だった場合は、既存の変数が削除されて新しいデータで上書きされます。

VOID cqAddVariable(PCTSTR name, const PVOID buffer, DWORD size);
name
変数名。
buffer
変数名に関連付けるデータへのポインタ。
size
buffer のバイトサイズ

cqRemoveVariable

登録されている変数をメモリから削除します。

BOOL cqRemoveVariable(PCTSTR name);
name
変数名。
戻り値
TURE ならば関数が成功した。

cqRemoveAllVariable

全ての変数をメモリから解放します。

VOID cqRemoveAllVariable();

cqGetVariableCount

システムに登録されている変数の数を取得します。

DWORD cqGetVariableCount();
戻り値
現在の変数の数。

cqGetVariableName

インデックスから変数名を取得します。 インデックスは登録された順番で、ソートされていません。 この関数は登録されている変数を列挙するなどのデバッグ用です。

PCTSTR cqGetVariableName(DWORD index);
index
辞書インデックス。
戻り値
指定したインデックスの変数の名前。

cqGetVariable

指定した変数名に関連付けられているバッファ領域へのポインタを取得します。 この関数が返したバッファは Cisqua によって管理されています。 解放しないでください。

PVOID cqGetVariable(PCTSTR name);
name
変数名。
戻り値
name に関連付けられているバッファへのポインタ。

cqGetVariableSize

変数名に対応するデータのバッファサイズを取得します。

DWORD cqGetVariableSize(PCTSTR name);
name
変数名。
戻り値
name に関連付けられているバッファのバイトサイズ。

cqFindVariable

指定した名前の変数が存在するかどうか、検索します。

LONG cqFindVariable(PCTSTR name);
name
変数名。
戻り値
-1 であれば指定した変数は存在しない。そうでなければ変数は存在する。