#include <dwc.h>
void DWC_InitFriendsMatch(DWCUserData *userdata,
int productID,
const char *secretKey,
int sendBufSize,
int recvBufSize,
DWCFriendData friendList[],
int friendListLen);| userdata | DWCUserData型のユーザデータオブジェクトへのポインタ。 |
| productID | GameSpyから与えられたプロダクトID |
| secretKey | GameSpyから与えられたシークレットキー(C言語文字列) |
| sendBufSize | ピア同士の通信で使う送信バッファサイズ。0ならデフォルト8KByteを使用する。 |
| recvBufSize | ピア同士の通信で使う受信バッファサイズ。0ならデフォルト8KByteを使用する。 |
| friendList | 最大要素数分の配列が確保された友達リストへのポインタ(使用しない場合はNULL) |
| friendListLen | 友達リストの最大要素数。最大値は64。 |
なし
マッチメイクや友達管理のための機能群であるFriendsMatchライブラリを初期化します。
DWC_LoginAsync関数を呼び出す前にこの関数を呼び出してください。
userdataは、DWC_CreateUserDataで作成された、DWCUserData構造体へのポインタを指定してください。このバッファは、DWC_ShutdownFriendsMatchを呼び出すまで、保持してください。
本関数で指定するproductID,secretKeyに加えDWC_InitForDevelopment/DWC_InitForProduction関数で指定するgameNameは、ゲームタイトル毎に割り当てられます。この単位でGameSpyサーバの割り当てが行われ、マッチメイクの範囲が設定されます。仕向地違いのタイトルは基本的に同じproductID,gameName,secretKeyが割り当てられます。もし、異なったゲームタイトル同士でマッチメイクをしたい場合はこのパラメータをいずれかのタイトルに合わせてください。異なった仕向地間で友達無指定ピアマッチメイクさせたくない場合は、マッチメイクフィルターを使う必要があります。(マッチメイクフィルターに関してはDWC_AddMatchKeyString関数を参照してください)友達関係を結べるかどうかはDWC_CreateUserData関数に与えるgameCodeで設定します。例えば友達無指定ピアマッチメイクでは世界中の人と遊べるが、友達登録は仕向地ごとに制限したいという場合(つまり友達指定のマッチメイクである友達指定ピアマッチメイクやサーバクライアントマッチメイクの範囲も仕向地ごとに分けたい場合)は、DWC_InitForDevelopment/DWC_InitForProduction関数に与えるgameCodeを仕向地ごとに別々に設定してください。
sendBufSize,recvBufSizeは、マッチメイク完了後にDWCライブラリが確保する、ピア同士のReliable送受信用のバッファサイズを指定します(Reliable送信についてはDWC_SendReliable関数を参照してください)。DWC_InitForDevelopment/DWC_InitForProduction関数で渡されたメモリ確保関数により、接続先のピア毎にこのサイズのバッファが確保されます。0を指定した場合はデフォルトの8KByteが確保されます。
ここでサイズ指定したバッファは、DWC_SetRecvBuffer関数で指定するバッファとは異なり、ライブラリが内部で使用するものです。
このバッファサイズを調整する場合は、アプリケーション内でのピア同士のデータ送受信のサイズや頻度を踏まえた上で、バッファ溢れが発生しないように調整してください。また、アプリケーションでReliable通信を使用しない場合でも、ライブラリがピア・ツー・ピアの接続を確立する際にReliable通信を行なうため、最低限の領域は必要になります。詳しくは、「NintendoWi-FiConnectionTWL-DWCプログラミングマニュアル」を参照してください。
送受信バッファサイズを小さくした場合は、DWC_SetSendSplitMax関数を用いて送信データの最大送信サイズを小さくすることによって、バッファが溢れないように調整することもできます。
friendList,friendListLenは、アプリケーションで管理する友達リストを指定してください。友達リストは、アプリケーションでセーブデータと一緒に保存するようにしてください。友達リストは、ライブラリ内部で自動的に更新されます。友達リストへの処理については、友達リストに格納する友達情報を作成するDWC_CreateFriendKeyToken関数の説明を参照してください。また、友達リストはライブラリ中にコピーされず、渡されたバッファをそのまま使用しますので、DWC_ShutdownFriendsMatch関数を呼び出すまで、アプリケーションで保持してください。
5.1pr2より前の変更履歴はこちら