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>
62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "cmpnnt.h"
|
|
#include "schain.h"
|
|
|
|
class StateIndicator : public Node
|
|
{
|
|
public:
|
|
StateIndicator();
|
|
StateIndicator(unsigned max_states);
|
|
StateIndicator(const StateIndicator &state_indicator);
|
|
~StateIndicator();
|
|
|
|
StateIndicator& operator=(const StateIndicator&);
|
|
|
|
Logical operator==(const StateIndicator&) const;
|
|
|
|
public:
|
|
unsigned GetState()
|
|
{
|
|
Check(this);
|
|
return currentState;
|
|
}
|
|
unsigned GetOldState()
|
|
{
|
|
Check(this);
|
|
return oldState;
|
|
}
|
|
void SetState(unsigned new_state);
|
|
|
|
protected:
|
|
unsigned stateCount, oldState, currentState;
|
|
|
|
public:
|
|
void AddAudioWatcher(Component *watcher)
|
|
{
|
|
Check(&audioWatcherSocket);
|
|
audioWatcherSocket.Add(watcher);
|
|
}
|
|
void AddVideoWatcher(Component *watcher)
|
|
{
|
|
Check(&videoWatcherSocket);
|
|
videoWatcherSocket.Add(watcher);
|
|
}
|
|
void AddGaugeWatcher(Component *watcher)
|
|
{
|
|
Check(&gaugeWatcherSocket);
|
|
gaugeWatcherSocket.Add(watcher);
|
|
}
|
|
|
|
private:
|
|
SChainOf<Component*> audioWatcherSocket;
|
|
SChainOf<Component*> videoWatcherSocket;
|
|
SChainOf<Component*> gaugeWatcherSocket;
|
|
|
|
public:
|
|
friend std::ostream& operator << (std::ostream &strm, const StateIndicator &state_indicator);
|
|
|
|
public:
|
|
Logical TestInstance() const;
|
|
static Logical TestClass();
|
|
}; |