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.
107 lines
3.2 KiB
C++
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;
|
|
};
|
|
}
|