// src/assets/character_frames.h #pragma once // Player frame 1 static const char *CHARACTER_MASK_FRAME_1[] = { ".....a@$..", ".....7PF..", "..yaM@@__y", "..@.y@FFF~", "..._$M@_..", "yaa@~.`@y.", "........@r" }; // Player frame 2 static const char *CHARACTER_MASK_FRAME_2[] = { ".g@$", ".7PF", "y@$.", "0@F.", "4@$.", "y$@.", "u@.." }; // Player frame 3 (triggered) static const char *CHARACTER_MASK_FRAME_3[] = { ".._$@.", ".$By`.", "4@$@@a", "aa@W@." }; enum class CharacterFrame { Walk1 = 0, Walk2, Crawl1, COUNT // number of frames, must stay last }; // Combine frames for easy access static const char **PLAYER_FRAMES[] = { CHARACTER_MASK_FRAME_1, // Walk1 CHARACTER_MASK_FRAME_2, // Walk1 CHARACTER_MASK_FRAME_3 // Crawl1 }; static const int CHARACTER_FRAME_COUNT = static_cast(CharacterFrame::COUNT); // Height per frame static const int CHARACTER_HEIGHT_1 = sizeof(CHARACTER_MASK_FRAME_1) / sizeof(CHARACTER_MASK_FRAME_1[0]); static const int CHARACTER_HEIGHT_2 = sizeof(CHARACTER_MASK_FRAME_2) / sizeof(CHARACTER_MASK_FRAME_2[0]); static const int CHARACTER_HEIGHT_3 = sizeof(CHARACTER_MASK_FRAME_3) / sizeof(CHARACTER_MASK_FRAME_3[0]);