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>
41 lines
1.6 KiB
Plaintext
41 lines
1.6 KiB
Plaintext
//-----------------------------------------------------------------------------
|
|
//
|
|
// Sample Name: Audio Path Sample
|
|
//
|
|
// Copyright (C) 1999-2001 Microsoft Corporation. All rights reserved.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
Description
|
|
===========
|
|
This sample shows the effects of playing multiple files across different audio
|
|
paths, how they can be mixed, and how music is played at the tempo of the primary
|
|
audio path.
|
|
|
|
Path
|
|
====
|
|
Source: DXSDK\Samples\Multimedia\VBSamples\DirectMusic\vbAudioPath
|
|
|
|
Executable: DXSDK\Samples\Multimedia\VBSamples\DirectMusic\bin
|
|
|
|
|
|
User's Guide
|
|
============
|
|
You may add one file to the 'Primary' audio path, and 0 to 5 files to each of the two
|
|
secondary audio paths. Each audio path can be played separately and has separate controls
|
|
for volume and 3D positioning.
|
|
|
|
Programming Notes
|
|
=================
|
|
At the start of the application we create 3 default audio paths. We allow 1 audio file
|
|
to be loaded into the first audio path, and 0 to 5 loaded in each of the next two. When
|
|
Play is clicked on the first audio path, we call PlaySegmentEx with the DMUS_SEGF_DEFAULT
|
|
flag to clarify that this is the primary segment. Each of the other audio paths call
|
|
PlaySegmentEX with the DMUS_SEGF_SECONDARY flag to play as secondary segments.
|
|
|
|
If Looping is selected on an audio path we call SetRepeats with INIFINITE, otherwise we
|
|
call SetRepeats with 0. To change the volume or 3D Positioning of any audio path we first
|
|
call GetObjectInPath to retreive a DirectSoundSecondaryBuffer or DirectSound3DBuffer, and
|
|
then call SetVolume or SetPosition, respectively.
|