Statistics Panel
Overview
The right-hand statistics panel shows live mission status.
Position: POSSTATX=12, POSSTATY=220 (within the HUD area left of the game view).
Implementation: src/decstat.cpp
Panel Contents
| Statistic | Description |
|---|---|
| Living Blupi count | Total Blupi currently alive |
| Active fires | Number of cells currently on fire |
| Hatched cells total | Total hatched (target) cells in the mission |
| Hatched with Blupi | How many hatched cells have a Blupi on them |
| Hatched with planks | How many hatched cells have planks |
| Hatched with tomatoes | How many hatched cells have tomatoes |
| Hatched with metal | How many hatched cells have metal/iron |
| Hatched with robot | How many hatched cells have a disciple |
| Total homes | Total huts built |
| Homes with Blupi | Huts currently occupied |
| Remaining enemies | Total enemy characters still alive |
Internal Counters
int m_nbStatHach; // total hatched cells
int m_nbStatHachBlupi; // hatched cells with Blupi
int m_nbStatHachPlanche; // hatched cells with planks
int m_nbStatHachTomate; // hatched cells with tomatoes
int m_nbStatHachMetal; // hatched cells with metal
int m_nbStatHachRobot; // hatched cells with disciple
int m_nbStatHome; // total homes
int m_nbStatHomeBlupi; // occupied homes
int m_nbStatRobots; // remaining enemies
Update Mechanism
void CDecor::StatisticInit();
// Initialises all counters to zero
void CDecor::StatisticUpdate();
// Recalculates all counters from current world state
// Sets m_bStatRecalc = FALSE after recalculation
// Called every tick when m_bStatRecalc = TRUE
int CDecor::StatisticGetBlupi();
// Returns the current living Blupi count
int CDecor::StatisticGetFire();
// Returns the current active fire count
Rendering
void CDecor::StatisticDraw();
// Renders the statistics panel using CPixmap
// Uses CHLITTLE channel for small numeric text
void CDecor::GenerateStatictic();
// Generates the full statistics display
// Called when m_bStatRedraw = TRUE
Interaction
The statistics panel is clickable — hovering or clicking a stat can highlight related cells on the map.
BOOL CDecor::StatisticDown(POINT pos, int fwKeys); // mouse press
BOOL CDecor::StatisticMove(POINT pos, int fwKeys); // mouse move
BOOL CDecor::StatisticUp(POINT pos, int fwKeys); // mouse release
int CDecor::StatisticDetect(POINT pos); // detect which stat is under cursor
m_statHili holds the index of the currently highlighted statistic row.
m_statFirst is the index of the first visible row (for scrolling).
m_bStatUp/m_bStatDown indicate whether scroll arrows are visible.