Image Channels

The CPixmap class manages 15 DirectDraw surfaces simultaneously, each identified by a channel index constant defined in include/def.hpp. Channels allow different layers to be rendered independently and composited to form the final frame.

Channel Reference

EnumValueUsed ForImage File
CHBACK 0 Background / level terrain tiles decor000.blpdecor031.blp (one per region)
CHOBJECT 1 Foreground objects, pickups, enemies, and interactive items object.blp
CHBLUPI 2 Default player character sprites blupi000.blp
CHDECOR 3 Decorative overlay layer decor000.blpdecor031.blp (same as CHBACK)
CHBUTTON 4 UI button sprites button.blp
CHJAUGE 5 Health/gauge progress bar sprites jauge.blp (IMAGE08 only — no 16-bit version)
CHTEXT 6 Normal-size text character sprites text.blp
CHLITTLE 7 Small text character sprites littletxt.blp
CHMAP 8 Minimap sprites map.blp (IMAGE08 only — no 16-bit version)
CHEXPLO 9 Explosion sprites (128×128 px each) explo.blp
CHELEMENT 10 Particle and element effect sprites element.blp
CHBLUPI1 11 Multiplayer player 1 character variant blupi001.blp
CHBLUPI2 12 Multiplayer player 2 character variant blupi002.blp
CHBLUPI3 13 Multiplayer player 3 character variant blupi003.blp
CHTEMP (CHMAX) 14 Temporary / scratch surface for intermediate rendering — (runtime only)

8-bit vs. 16-bit

Each channel can load from either IMAGE08/ (8-bit palette) or IMAGE16/ (16-bit true-color) based on the TrueColorBack and TrueColorDecor settings in config.def.

ℹ️
Exception: CHJAUGE (jauge.blp) and CHMAP (map.blp) are always loaded from IMAGE08/. There is no 16-bit version of these files.