Let’s suppose this scenario:
A tiled map for a platform game. Every tile have some kind of bit information to qualify rendering or engine property.
What’s the best way to store this information for Pokitto.
I draft something like this (see below)
struct TileRender
{
bool FlipH;
bool FlipV;
bool Rotate1;
bool Rotate2;
};
const TileRender map_0_renders[11][14] =
{{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{true,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{true,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{true,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{true,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{true,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
{{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},{false,false,false,false,},},
};
but even if easy to access in code, I’m not sure this is a good optimization for memory consumption. Are bools packed to the nearest byte or any element use one byte?