Initial import of Red Planet v4.10 Win32 source
Imports the current Win32 source for the pod-racing game 'Red Planet', built on the MUNGA engine and its L4 (Win32/DirectX) platform layer: - MUNGA / MUNGA_L4: cross-platform engine core and Win32 backend - RP / RP_L4: Red Planet game logic and Win32 application - DivLoader, Setup1: asset loader and installer project - lib, MUNGA_L4/openal, MUNGA_L4/sos: third-party audio dependencies Removed stale Subversion metadata and added .gitignore/.gitattributes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+258
@@ -0,0 +1,258 @@
|
||||
#pragma once
|
||||
|
||||
#include "scalar.h"
|
||||
#include "audio.h"
|
||||
|
||||
//##########################################################################
|
||||
//########################## AudioTime ###############################
|
||||
//##########################################################################
|
||||
|
||||
class AudioTime SIGNATURED
|
||||
{
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Construction, Destruction, and Testing
|
||||
//
|
||||
public:
|
||||
AudioTime();
|
||||
AudioTime(const AudioTime&);
|
||||
AudioTime(Scalar seconds);
|
||||
AudioTime(AudioFrameCount frame_count);
|
||||
~AudioTime();
|
||||
|
||||
Logical
|
||||
TestInstance() const;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Assignment
|
||||
//
|
||||
public:
|
||||
AudioTime&
|
||||
operator=(const AudioTime&);
|
||||
AudioTime&
|
||||
operator=(Scalar seconds);
|
||||
AudioTime&
|
||||
operator=(AudioFrameCount frame_count);
|
||||
|
||||
operator Scalar() const;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Logical Operators
|
||||
//
|
||||
public:
|
||||
Logical
|
||||
operator<(const AudioTime&) const;
|
||||
Logical
|
||||
operator<=(const AudioTime&) const;
|
||||
Logical
|
||||
operator>(const AudioTime&) const;
|
||||
Logical
|
||||
operator>=(const AudioTime&) const;
|
||||
Logical
|
||||
operator==(const AudioTime&) const;
|
||||
Logical
|
||||
operator!=(const AudioTime&) const;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Addition Operators
|
||||
//
|
||||
public:
|
||||
operator AudioFrameCount() const;
|
||||
|
||||
AudioTime
|
||||
operator+(const AudioTime&) const;
|
||||
AudioTime
|
||||
operator-(const AudioTime&) const;
|
||||
|
||||
AudioTime&
|
||||
operator+=(const AudioTime &t);
|
||||
AudioTime&
|
||||
operator-=(const AudioTime &t);
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Public Constants
|
||||
//
|
||||
public:
|
||||
static const AudioTime
|
||||
Null;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Current Time
|
||||
//
|
||||
public:
|
||||
static AudioTime
|
||||
Now();
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Private Methods
|
||||
//
|
||||
private:
|
||||
AudioFrameCount
|
||||
Seconds_To_Frames(Scalar seconds) const;
|
||||
Scalar
|
||||
Frames_To_Seconds(AudioFrameCount frames) const;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Private Data
|
||||
//
|
||||
private:
|
||||
AudioFrameCount
|
||||
frameCount;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AudioTime inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
//
|
||||
// Construction, Destruction, and Testing
|
||||
//
|
||||
inline AudioTime::AudioTime():
|
||||
frameCount(NullAudioFrameCount)
|
||||
{
|
||||
}
|
||||
|
||||
inline AudioTime::AudioTime(const AudioTime &audio_time):
|
||||
frameCount(audio_time.frameCount)
|
||||
{
|
||||
}
|
||||
|
||||
inline AudioTime::AudioTime(Scalar seconds)
|
||||
{
|
||||
frameCount = Seconds_To_Frames(seconds);
|
||||
}
|
||||
|
||||
inline AudioTime::AudioTime(AudioFrameCount frame_count):
|
||||
frameCount(frame_count)
|
||||
{
|
||||
}
|
||||
|
||||
inline AudioTime::~AudioTime()
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Assignment
|
||||
//
|
||||
inline AudioTime&
|
||||
AudioTime::operator=(const AudioTime &audio_time)
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
frameCount = audio_time.frameCount;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline AudioTime&
|
||||
AudioTime::operator=(Scalar seconds)
|
||||
{
|
||||
Check(this);
|
||||
frameCount = Seconds_To_Frames(seconds);
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline AudioTime&
|
||||
AudioTime::operator=(AudioFrameCount frame_count)
|
||||
{
|
||||
Check(this);
|
||||
frameCount = frame_count;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
AudioTime::operator Scalar() const
|
||||
{
|
||||
Check(this);
|
||||
return Frames_To_Seconds(frameCount);
|
||||
}
|
||||
|
||||
//
|
||||
// Logical Operators
|
||||
//
|
||||
inline Logical
|
||||
AudioTime::operator<(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount < audio_time.frameCount;
|
||||
}
|
||||
|
||||
inline Logical
|
||||
AudioTime::operator<=(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount <= audio_time.frameCount;
|
||||
}
|
||||
|
||||
inline Logical
|
||||
AudioTime::operator>(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount > audio_time.frameCount;
|
||||
}
|
||||
|
||||
inline Logical
|
||||
AudioTime::operator>=(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount >= audio_time.frameCount;
|
||||
}
|
||||
|
||||
inline Logical
|
||||
AudioTime::operator==(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount == audio_time.frameCount;
|
||||
}
|
||||
|
||||
inline Logical
|
||||
AudioTime::operator!=(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return frameCount != audio_time.frameCount;
|
||||
}
|
||||
|
||||
//
|
||||
// Addition Operators
|
||||
//
|
||||
inline AudioTime::operator AudioFrameCount() const
|
||||
{
|
||||
Check(this);
|
||||
return frameCount;
|
||||
}
|
||||
|
||||
inline AudioTime
|
||||
AudioTime::operator+(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return AudioTime(frameCount + audio_time.frameCount);
|
||||
}
|
||||
|
||||
inline AudioTime
|
||||
AudioTime::operator-(const AudioTime &audio_time) const
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
return AudioTime(frameCount - audio_time.frameCount);
|
||||
}
|
||||
|
||||
inline AudioTime&
|
||||
AudioTime::operator+=(const AudioTime &audio_time)
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
frameCount += audio_time.frameCount;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline AudioTime&
|
||||
AudioTime::operator-=(const AudioTime &audio_time)
|
||||
{
|
||||
Check(this);
|
||||
Check(&audio_time);
|
||||
frameCount -= audio_time.frameCount;
|
||||
return *this;
|
||||
}
|
||||
Reference in New Issue
Block a user