# WMGameInfo

## Definition

  `#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;

## Elements

`magicNumber` | Magic number of this structure. Fixed at `WM_GAMEINFO_MAGIC_NUMBER` (`0x0001`).
`ver` | Version number of this structure. It is managed in the library, and the user does not need to be concerned with it.
`ggid` | Game group ID. This is a unique value for identifying game applications with compatible communication.
`tgid` | Temporary group ID. This is a dynamic value set on the parent side to allow uniqueness when the same device and same game application establish multiple communication.
`userGameInfoLength` | Size, in bytes, of available data stored in `userGameInfo`. Maximum is 112 bytes.
`userGameInfo` | Array in which any information characteristic to the application is stored.
`attribute` | The value showing parent attributes, such as "download play possible while receiving entry."
`parentMaxSize` | Maximum size of parent's send data in MP communication.
`childMaxSize` | Maximum size of child's send data in MP communication.
`reserved` | Reserved region. The user does not need to use this argument.
`old_type` | Provided for compatibility with old format. The user does not need to use this argument.

## Description

This structure stores information for the parent device that is discovered as the result of searching with the `WM_StartScan` function.

The `attribute` field consists of the following logical sums.

`WM_ATTR_FLAG_ENTRY` | "Receiving entry" flag.
`WM_ATTR_FLAG_MB` | "Download play possible" flag.
`WM_ATTR_FLAG_KS` | "Key sharing" flagNot currently used.
`WM_ATTR_FLAG_CS` | Continuation communication mode.Not currently used.

Before any fields of the `WMGameInfo` structure can be accessed, it is necessary to check that the `magicNumber` field equals `WM-GAMEINFO_MAGIC_NUMBER` (`0x0001`). Use the `WM_IsValidGameInfo` or `WM_IsValidGameBeacon` function to check the `magicNumber` field. Because the `WMGameInfo` structure is extended for backward compatibility as long as `magicNumber` is equal, if the `ver` field contains an unknown value, be sure to assume this version has the same functions as the current one.

## Revision History

2006/02/20 Deleted `version` and added `magicNumber` and `ver`. Added descriptions.
2005/12/08 Deleted a description related to key sharing.
2005/03/02 Added statement regarding the range for the `userGameInfoLength` member.
2004/12/20 Added explanation of `gameNameCount_attribute`.
2004/11/12 Corrected the unit of `userGameInfoLength`.
2004/10/06 Initial version.

CONFIDENTIAL