Files
firestorm/Gameleap/code/mw4/Libraries/Adept/SpatializedCommand.hpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

107 lines
3.2 KiB
C++

//===========================================================================//
// File: audiorenderer.hpp //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 03/22/99 SMJ Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1999, Microsoft Corporation //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Adept.hpp"
#include "AudioCommand.hpp"
namespace Adept {
//##########################################################################
//######################### SpatializedCommand #######################
//##########################################################################
class SpatializedCommand:
public AudioCommand
{
friend class SpatializedChannel;
public:
typedef AudioCommand BaseClass;
static void InitializeClass(size_t block_count = 20, size_t block_delta = 10);
static void TerminateClass();
static ClassData *DefaultData;
void TestInstance() const;
static SpatializedCommand *Create(
int type,
const ResourceID &hint_ID,
Stuff::Scalar priority,
Stuff::Scalar volume,
Stuff::Scalar min_restart,
Stuff::Scalar min_replace,
const Point3D &position,
const Vector3D &velocity,
Stuff::Scalar min_deviation,
Stuff::Scalar near_clip,
Stuff::Scalar min_range,
Stuff::Scalar max_range,
Stuff::Scalar far_clip
);
void SetPosition(const Stuff::Point3D &position);
void SetVelocity(const Stuff::Vector3D &velocity);
const Stuff::Point3D& GetPosition()
{Check_Object(this); return m_position;}
const Stuff::Vector3D& GetVelocity()
{Check_Object(this); return m_velocity;}
bool ConnectToChannel(AudioSample* sample);
bool AddLoop();
Stuff::Scalar ComputeEnergy(AudioChannel *channel);
protected:
SpatializedCommand(
ClassData *class_data,
int type,
const ResourceID &hint_ID,
Stuff::Scalar priority,
Stuff::Scalar volume,
Stuff::Scalar min_restart,
Stuff::Scalar min_replace,
const Point3D &position,
const Vector3D &velocity,
Stuff::Scalar min_deviation,
Stuff::Scalar near_clip,
Stuff::Scalar min_range,
Stuff::Scalar max_range,
Stuff::Scalar far_clip
);
~SpatializedCommand();
void*
operator new(size_t size)
{Verify(size == sizeof(SpatializedCommand)); return s_AllocatedMemory->New();}
void
operator delete(void *where)
{s_AllocatedMemory->Delete(where);}
Stuff::Scalar
m_minDeviation,
m_nearClip,
m_minRange,
m_maxRange,
m_farClip;
Stuff::Point3D m_position;
Stuff::Vector3D m_velocity;
Stuff::YawPitchRange m_bearing;
private:
static Stuff::MemoryBlock *s_AllocatedMemory;
};
}