Compile Flags
Compile-time feature flags defined in include/def.hpp via
#define. These cannot be changed at runtime.
Feature Flags
| Flag | Default | Description |
|---|---|---|
_DEMO |
FALSE |
Enable demo mode — limited content, no save/load |
_EGAMES |
FALSE |
Enable eGames retail version behavior |
_SE |
FALSE |
eGames Special Edition variant |
_INTRO |
FALSE |
Show intro images at startup |
_CD |
FALSE |
Require the game CD to be present (WM_PHASE_INSERT / WM_PHASE_TESTCD) |
_BYE |
!_EGAMES |
Show exit/goodbye image (similar to _INTRO) |
_LEGACY |
FALSE |
Keep broken/quirky legacy code from the decompilation for accuracy. When TRUE, restores original bugs. |
_DREAM |
TRUE |
Allow Dream-mode blocks when loading levels. Current default enables Dream mode. |
_BASS |
FALSE |
Use the BASS audio library instead of the DirectSound/MCI path. FALSE = DirectSound/MCI (default). TRUE = BASS + BASSMIDI. |
_LEGACY and _DREAM
_DREAM=TRUE is the current default to support Dream-mode levels.
_LEGACY=TRUE restores original bugs and quirks from the binary — useful
for accuracy testing but not recommended for normal use.
Security Power-Up States (SEC_*)
Active security/power-up states for the player character.
Defined as an enum in include/def.hpp.
The current active state is tracked in the player's SEC field.
| Enum | Value | Description |
|---|---|---|
SEC_SHIELD | 1 | Shield active — player is temporarily invulnerable |
SEC_POWER | 2 | Power-up lollipop active — speed or power boost |
SEC_CLOUD | 3 | Cloud invisibility active — player is invisible to enemies |
SEC_HIDE | 4 | Hidden state active — related to cloud invisibility |
Changing Flags
To change a flag, edit include/def.hpp directly and rebuild:
// Example: enable BASS audio
#define _BASS TRUE
// Example: enable legacy mode
#define _LEGACY TRUE