#pragma once // ----------------------------------------------------------------------------- // Процедурная генерация всех спрайтов при старте. Файлов с ассетами нет. // ----------------------------------------------------------------------------- #include "render/framebuffer.h" #include "tuning.h" struct SpriteSet { Sprite floorA; // шахматка пола, вариант 1 Sprite floorB; // вариант 2 Sprite wall; // блок 32x32 Sprite agent[NUM_AGENTS]; // стрелок: по цвету на агента Sprite melee[NUM_AGENTS]; // тот же цвет, но силуэт с клинком Sprite target; // Спрайта пули нет: снаряд рисуется светящимся трассером (render/fx.cpp). Sprite pistol[NUM_AGENTS]; // тот же цвет, но силуэт с коротким стволом void Generate(); // Какой ромб пола лежит на тайле. Одно место на весь рендер: запечённая // кровь копирует ИМЕННО его, иначе шахматка поедет (render/blood.h). const Sprite& FloorTile(int tx, int ty) const { return ((tx + ty) & 1) ? floorA : floorB; } }; // Затемнить/осветлить цвет (множитель по RGB, альфа сохраняется). uint32_t ShadeColor(uint32_t c, float k);