Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
93 lines
4.3 KiB
Plaintext
93 lines
4.3 KiB
Plaintext
//-----------------------------------------------------------------------------
|
|
//
|
|
// Sample Name: AddressOverride Sample
|
|
//
|
|
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
Description
|
|
===========
|
|
AddressOverride shows how to programmatically tell DirectPlay the addressing
|
|
in order to host or connect to another session on the network, instead of just
|
|
letting DirectPlay popup a dialog box to ask the user the connection settings.
|
|
Most games will typically follow this method so they can customize the UI.
|
|
|
|
Path
|
|
====
|
|
Source: DXSDK\Samples\Multimedia\DirectPlay\AddressOverride
|
|
|
|
Executable: DXSDK\Samples\Multimedia\DirectPlay\Bin
|
|
|
|
User's Guide
|
|
============
|
|
Enter the player's name, session, and check or uncheck the 'host sesion'
|
|
checkbox.
|
|
|
|
Choose a service provider, and adapter. If the TCP/IP SP is chosen, and
|
|
hosting then enter port or it leave blank to have DirectPlay automatically
|
|
pick a port. If joining, then enter the port and the IP address of the host,
|
|
or leave blank to search the subnet. If the modem SP is chosen, then enter
|
|
the phone number. If the IPX SP is chosen, then enter the port. If the
|
|
serial SP is chosen, then the simple dialog will use the default DirectPlay
|
|
dialog to query the user for the serial settings.
|
|
|
|
Click OK to start or join a game. Once in a session, it presents a
|
|
simple game similiar to SimplePeer.
|
|
|
|
Programming Notes
|
|
=================
|
|
The AddressOverride sample is very similar in form to the SimplePeer sample. For
|
|
detailed programming notes on the basics this sample, refer to Programming
|
|
Notes section of the SimplePeer sample.
|
|
|
|
The AddressOverride differs by letting programmatically telling DirectPlay
|
|
the address instead of just letting DirectPlay popup a dialog box.
|
|
|
|
* The "OK" button is pressed. See LaunchMultiplayerGame().
|
|
1. It gathers if the user wants to host or join.
|
|
2. It gathers the SP guid from the UI
|
|
3. If hosting it creates a IDirectPlay8Address* called pHostAddress and
|
|
calls IDirectPlay8Address::SetSP() on it.
|
|
4. If joining or hosting it creates a IDirectPlay8Address* called
|
|
pDeviceAddress and calls IDirectPlay8Address::SetSP() on it.
|
|
5. If gathers from the UI if an adapter was selected. If it was it calls
|
|
IDirectPlay8Address::SetDevice() on the pDeviceAddress.
|
|
6. It then fills in the pDeviceAddress and the pHostAddress depending
|
|
on the SP selected, and if joining or hosting by calling
|
|
IDirectPlay8Address::AddComponent. Here's how that works:
|
|
|
|
- If the TCP/IP SP was selected and hosting, then:
|
|
- If a port was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
|
|
on the pDeviceAddress to add the port.
|
|
- If the TCP/IP SP was selected and joining, then:
|
|
- If a IP address was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_HOSTNAME, ... )
|
|
on the pHostAddress to add the IP address.
|
|
- If a port was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
|
|
on the pHostAddress to add the port.
|
|
|
|
- If the IPX SP was selected and hosting, then:
|
|
- If a port was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
|
|
on the pDeviceAddress to add the port.
|
|
- If the IPX SP was selected and joining, then:
|
|
- If a port was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
|
|
on the pHostAddress to add the port.
|
|
|
|
- If the modem SP was selected and joining, then:
|
|
- If a phone number was entered it calls
|
|
IDirectPlay8Address::AddComponent( DPNA_KEY_PHONENUMBER, ... )
|
|
on the pHostAddress to add the phone number.
|
|
|
|
7. It then connects in a similar manner as SimplePeer, but using
|
|
the pDeviceAddress and pHostAddress it filled to connect or join
|
|
to the session.
|
|
|
|
|
|
|