DWC_GetFriendStatusDataSC

構文

#include <dwc.h>
u8 DWC_GetFriendStatusDataSC(const DWCFriendData *friendData,
                             u8 *maxEntry,
                             u8 *numEntry,
                             char *statusData,
                             int *size);

引数

friendData DWCFriendData型の友達情報へのポインタ
maxEntry 相手がサーバクライアントマッチメイクのサーバホストの場合に、最大接続可能台数を取得して格納するためのポインタ。それ以外の場合は、0
numEntry 相手がサーバクライアントマッチメイクのサーバホストの場合に、現在の接続台数を取得して格納するためのポインタ。それ以外の場合は、0
statusData 友達のstatusデータ格納先ポインタ。NULLを渡せばデータのコピーは行わない。
size 友達のstatusデータ長の格納先ポインタ。無効なデータの場合は-1が格納される。

返り値

DWC_STATUS_OFFLINE オフライン
自分がオフラインの時、または相手と友達関係が成立していないとき
DWC_STATUS_ONLINE オンライン(Wi-Fiコネクションサーバにログイン済み)
DWC_STATUS_PLAYING ・クライアントとしてゲームプレイ中(マッチメイクタイプの種類によらない)
・友達指定マッチメイク又はサーバクライアントマッチメイクで、一度でもサーバ交代が起こった後のサーバとしてゲームプレイ中
上記2状態は共通して、この相手に対して接続に行くことは出来ない事を示している。(PLAYING状態は受付可能な状態では無い)
DWC_STATUS_MATCH_ANYBODY ・友達無指定ピアマッチメイク中で接続相手を検索中
・友達無指定ピアマッチメイク中でサーバとしてゲームプレイ中
DWC_STATUS_MATCH_FRIEND ・友達指定ピアマッチメイク中で接続相手を検索中
・友達指定ピアマッチメイク中でサーバとしてゲームプレイ中
DWC_STATUS_MATCH_SC_CL ・サーバクライアントマッチメイク中のクライアントホストとして、サーバと接続処理中
・グループID接続のクライアントホストとして、サーバと接続処理中
DWC_STATUS_MATCH_SC_SV ・サーバクライアントマッチメイク中のサーバホストとしてゲームプレイ中

説明

friendDataで指定された友達の通信状態を取得します。友達の通信状態は変化がある度にGameSpyサーバから通知され、DWCライブラリ内のキャッシュに保存されるので、本関数ではそれを参照し、通信は行いません。

プレイヤーの通信状態は、本関数の返り値で表されるstatusフラグと、status文字列というものから成っており、GameSpyサーバ上で管理されています。本関数では、status文字列をBase64でエンコードされた文字列と見なし、デコードしてstatusデータ(引数statusData)を取得します。サーバクライアントマッチメイク時は、これらに加えてサーバホスト特有の情報も含まれています。statusフラグとサーバホスト特有の情報はDWCライブラリが自動的にセットしますが、statusデータはDWC_SetOwnStatusData関数を用いてアプリケーションが設定することができます。この関数で指定されたデータがBase64エンコードされ、status文字列としてGameSpyサーバに送信されます。

サーバクライアントマッチメイクに特有の情報が必要ない場合は、DWC_GetFriendStatusData関数を使用してください。また、statusDataのようなバイナリデータではなく、文字列をDWC_SetOwnStatusString関数でセットしているアプリケーションの場合は、DWC_GetFriendStatus/DWC_GetFriendStatusSC関数を使用して文字列データを取得してください。

履歴

5.1pr2より前の変更履歴はこちら