Difference between revisions of "NWMUDS:GetConnectionStatus"

From 3dbrew
Jump to navigation Jump to search
(Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x000B0000] |} =Response= {| class="wikitable" border="1" |- ! Index Word !...")
 
 
(23 intermediate revisions by 3 users not shown)
Line 33: Line 33:
 
|-
 
|-
 
| 0x0
 
| 0x0
| 0x30
+
| 0x4
| ?
+
| u32 status
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Unknown u32. Official user-processes check for values: 0x0, 0x1, and non-zero.
 +
|-
 +
| 0x8
 +
| 0x2
 +
| u16 NetworkNodeID for this device. This is the broadcast alias when connected as a spectator.
 +
|-
 +
| 0xA
 +
| 0x2
 +
| u16, changed_nodes. This is a bitmask of the nodes that changed and triggered the update.
 +
|-
 +
| 0xC
 +
| 0x20
 +
| u16 nodes[16]. Array of NetworkNodeIds, the values inside this array is what's passed to [[NWMUDS:GetNodeInformation]].
 +
|-
 +
| 0x2C
 +
| 0x1
 +
| u8 total_nodes.
 +
|-
 +
| 0x2D
 +
| 0x1
 +
| u8 max_nodes, originally from the NetworkStruct.
 +
|-
 +
| 0x2E
 +
| 0x2
 +
| u16 node_bitmask. This is a bitmask of NetworkNodeIDs: bit0 for NetworkNodeID 0x1(host), bit1 for NetworkNodeID 0x2(first original client), and so on.
 +
|}
 +
 
 +
Right after [[NWMUDS:InitializeWithVersion|initializing]], this structure is all-zero except for the status which is value 0x3.
 +
 
 +
==Status values==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Type
 +
!  Description
 +
|-
 +
| 0x3
 +
| Not connected to any network as a host/client, or just initialized.
 +
|-
 +
| 0x6
 +
| Connected to a network as a host.
 +
|-
 +
| 0x9
 +
| Connected to a network as a client.
 +
|-
 +
| 0xA
 +
| Connected to a network as a spectator.
 +
|-
 +
| 0xB
 +
| For this value official user-processes use [[NWMUDS:UpdateNetworkAttribute]] to clear attributes bitmask 0x6.
 
|}
 
|}
  
 
=Description=
 
=Description=
This is mainly used when the event handle from [[NWMUDS:Initialize]] is signalled. This is also used before using [[NWMUDS:Bind]] and in one other case as well.
+
This is mainly used when the event handle from [[NWMUDS:Initialize]] is signaled. This is also used before using [[NWMUDS:Bind]]. For certain user-processes this may be used during NWMUDS initialization as well.
 +
 
 +
The event is not signaled when using [[NWMUDS:DestroyNetwork]] or [[NWMUDS:DisconnectNetwork]]. However the event does get signaled when creating or connecting to a network.

Latest revision as of 16:26, 14 April 2017

Request[edit]

Index Word Description
0 Header code [0x000B0000]

Response[edit]

Index Word Description
0 Header code
1 Result code
2-13 Output 0x30-byte structure.

Output structure[edit]

Offset Size Description
0x0 0x4 u32 status
0x4 0x4 Unknown u32. Official user-processes check for values: 0x0, 0x1, and non-zero.
0x8 0x2 u16 NetworkNodeID for this device. This is the broadcast alias when connected as a spectator.
0xA 0x2 u16, changed_nodes. This is a bitmask of the nodes that changed and triggered the update.
0xC 0x20 u16 nodes[16]. Array of NetworkNodeIds, the values inside this array is what's passed to NWMUDS:GetNodeInformation.
0x2C 0x1 u8 total_nodes.
0x2D 0x1 u8 max_nodes, originally from the NetworkStruct.
0x2E 0x2 u16 node_bitmask. This is a bitmask of NetworkNodeIDs: bit0 for NetworkNodeID 0x1(host), bit1 for NetworkNodeID 0x2(first original client), and so on.

Right after initializing, this structure is all-zero except for the status which is value 0x3.

Status values[edit]

Type Description
0x3 Not connected to any network as a host/client, or just initialized.
0x6 Connected to a network as a host.
0x9 Connected to a network as a client.
0xA Connected to a network as a spectator.
0xB For this value official user-processes use NWMUDS:UpdateNetworkAttribute to clear attributes bitmask 0x6.

Description[edit]

This is mainly used when the event handle from NWMUDS:Initialize is signaled. This is also used before using NWMUDS:Bind. For certain user-processes this may be used during NWMUDS initialization as well.

The event is not signaled when using NWMUDS:DestroyNetwork or NWMUDS:DisconnectNetwork. However the event does get signaled when creating or connecting to a network.