I'm having difficulty figuring out exactly what signature D is expecting.
enum DIR
{
UP = 0,
DOWN,
LEFT,
RIGHT,
UPLEFT,
UPRIGHT,
DOWNRIGHT,
DOWNLEFT,
}
BITMAP*[2][DIR] bmps;
// ...
bmps[DIR.UP][0] = nope.
bmps[DIR.UP][0] = new BITMAP *; // nope
bmps[DIR.UP][0] = new BITMAP; // nope
bmps[DIR.UP] = new BITMAP*[2]; // compiles. runtime range violation.
I swear this all worked fine when it was just:
bmps[DIR] bmps;