# WMGameInfo

## 定義

  `#include <nitro/wm.h>`

      typedef struct WMGameInfo
      {
        u16 magicNumber;
        u8 ver;
        u8 reserved[1];
        u32 ggid;
        u16 tgid;
        u8 userGameInfoLength;
        u8 attribute;
        u16 parentMaxSize;
        u16 childMaxSize;
        union {
          u16 userGameInfo[WM_SIZE_USER_GAMEINFO/sizeof(u16)];
          struct {
            u16 userName[WM_SIZE_USERNAME/sizeof(u16)];
            u16 gameName[WM_SIZE_GAMENAME/sizeof(u16)];
            u16 padd1[44];
          } old_type;
        };
      } WMGameInfo;

## 要素

magicNumber | この構造体のマジックナンバーです。 WM_GAMEINFO_MAGIC_NUMBER (== 0x0001) で固定です。
ver | この構造体のバージョン番号です。 ライブラリの内部で管理され、ユーザが意識する必要はありません。
ggid | ゲームグループIDです。 これは通信互換性のあるゲームアプリケーションを識別するための一意な値です。
tgid | テンポラリグループIDです。 これは同一機体で同一ゲームアプリケーションが複数回通信を確立する場合に 一意性を持たせるため親機側で設定する動的な値です。
userGameInfoLength | userGameInfoに格納された有効なデータの、バイト単位でのサイズです。最大で 112 バイトとなります。
userGameInfo | アプリケーション固有の任意情報が格納された配列です。
attribute | エントリー受付中、ダウンロードプレイ可などの親機属性を示す値です。
parentMaxSize | MP通信における親機送信データの最大サイズです。
childMaxSize | MP通信における子機送信データの最大サイズです。
reserved | 予約域です。 ユーザはこのメンバを使用する必要はありません。
old_type | 旧形式との互換のために用意されています。 ユーザはこのメンバを使用する必要はありません。

## 説明

WM_StartScan( )による探索の結果発見された親機の情報が格納される構造体です。

attribute フィールドは、以下の論理和で構成されます。

WM_ATTR_FLAG_ENTRY | エントリー受付中
WM_ATTR_FLAG_MB | ダウンロードプレイ可
WM_ATTR_FLAG_KS | キーシェアリング中現在は使用されていません
WM_ATTR_FLAG_CS | 連続通信モード現在は使用されていません

WMGameInfo 構造体の各フィールドにアクセスする前に、必ずmagicNumberフィールドがWM_GAMEINFO_MAGIC_NUMBER (== 0x0001) であることを確認する必要があります。 magicNumberフィールドの確認はWM_IsValidGameInfo( )またはWM_IsValidGameBeacon( )で行えます。 また、WMGameInfo構造体は、magicNumberが等しい限り下位互換を保つように拡張されますので、 verフィールドが未知の値であった場合は現在のバージョンと同等の機能を持つものとして扱うようにしてください。

## 履歴

2006/02/20 version を削除し、magicNumber と ver を追加。説明の追記。
2005/12/08 キーシェアリング関連の記述を削除
2005/03/02 userGameInfoLengthメンバについて範囲を追記
2004/12/20 gameNameCount_attribute についての説明を追記
2004/11/12 userGameInfoLength の単位を修正
2004/10/06 初版