Files
TeslaRel410/restoration/source410/MUNGA/ALARM.HPP
T
CydandClaude Fable 5 9a4f1c293b Mech milestone: reconstruct AlarmIndicator (helper 1/3), compile-verified
First of the 3 missing Mech embedded-helper classes. AlarmIndicator is the
multi-level status indicator the Mech carries four of (master/heat/stability/
status). Reconstructed as a StateIndicator subclass: the shipped ctor
(@0041b9ec) is byte-for-byte the surviving StateIndicator(unsigned) ctor
(stateCount=oldState=currentState=count; 3 watcher sockets NULL) with a distinct
vtable, so a derived class reproduces it exactly and adds the level API
(SetLevel/GetLevel/GetLevelCount -> SetState/GetState/stateCount). Header-only
(StateIndicator's methods are in SIMULATE.CPP, already in munga.lib).

Compile-verified standalone under BC4.52 with the authentic build flags.
Evidence + placement in ALARM.NOTES.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 20:49:26 -05:00

43 lines
1.2 KiB
C++

#if !defined(ALARM_HPP)
# define ALARM_HPP
# if !defined(STATE_HPP)
# include <state.hpp>
# endif
//##########################################################################
//######################## AlarmIndicator ############################
//##########################################################################
//
// A multi-level status indicator. The Mech carries four (master, heat,
// stability, status); each maps a discrete alarm LEVEL onto a StateIndicator
// state, so a level change fires the same audio / video / gauge watchers as
// StateIndicator::SetState.
//
// Reconstructed: the shipped ctor (@0041b9ec) is byte-for-byte the
// StateIndicator(unsigned) ctor (stateCount = oldState = currentState =
// level_count; the three watcher sockets initialised NULL) with a distinct
// vtable, i.e. a StateIndicator subclass. See ALARM.NOTES.md.
//
class AlarmIndicator:
public StateIndicator
{
public:
AlarmIndicator(unsigned level_count = 0):
StateIndicator(level_count)
{
}
void
SetLevel(unsigned level)
{Check(this); SetState(level);}
unsigned
GetLevel()
{Check(this); return GetState();}
unsigned
GetLevelCount()
{Check(this); return stateCount;}
};
#endif