32 lines
1.5 KiB
C
32 lines
1.5 KiB
C
|
|
#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);
|