squad-proto/generated/spriteforge_assets.h
z.kirill 8d35f4c2ec Конвейер ассетов: манифесты, риги, каталоги, инструменты
Всё, из чего собираются спрайты, и ничего собранного. Источник истины —
assets/manifests и assets/*/catalog.yaml; PNG, .sfa и contact sheet остаются
за бортом, потому что воспроизводятся командой (docs/12-assets.md).

  assets/manifests   что и как рендерить: окружение, твари, агенты, предметы
  assets/agents      паперdoll-риг восьми направлений, каталог снаряжения
  assets/monsters    пять морфологий, каждая своим ригом (docs/14-monsters.md)
  assets/sources     исходные развёртки и импорты
  assets/art_masters мастер-развёртки, по которым сверяется стиль
  tools/             сборка ассетов, покрытие, генераторы, blender-скрипты
  generated/         заголовки с константами SF_ASSET_*: без них игра не
                     соберётся, поэтому они в репозитории, хотя и производные

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 21:06:09 +03:00

201 lines
9.3 KiB
C

/* Generated by SpriteForge. Do not edit. */
#ifndef SPRITEFORGE_ASSETS_H
#define SPRITEFORGE_ASSETS_H
#include <stdint.h>
typedef enum sf_asset_id {
SF_ASSET_AGENT_ARMOR_JACKET_ATTACK = UINT32_C(0x1C894556),
SF_ASSET_AGENT_ARMOR_JACKET_IDLE = UINT32_C(0xB82571AC),
SF_ASSET_AGENT_ARMOR_JACKET_WALK = UINT32_C(0x3F71CC33),
SF_ASSET_AGENT_ARMOR_PLATE_ATTACK = UINT32_C(0x4EBF60DE),
SF_ASSET_AGENT_ARMOR_PLATE_IDLE = UINT32_C(0x87166A84),
SF_ASSET_AGENT_ARMOR_PLATE_WALK = UINT32_C(0xE8E1EA2B),
SF_ASSET_AGENT_ARMOR_SHROUD_ATTACK = UINT32_C(0xB5831D53),
SF_ASSET_AGENT_ARMOR_SHROUD_IDLE = UINT32_C(0xD9180FC1),
SF_ASSET_AGENT_ARMOR_SHROUD_WALK = UINT32_C(0x0ED988D6),
SF_ASSET_AGENT_ARMOR_VEST = UINT32_C(0xC8F6040D),
SF_ASSET_AGENT_ARMOR_VEST_ATTACK = UINT32_C(0xDBA217C2),
SF_ASSET_AGENT_ARMOR_VEST_IDLE = UINT32_C(0xDF630660),
SF_ASSET_AGENT_ARMOR_VEST_WALK = UINT32_C(0xD6F4927F),
SF_ASSET_AGENT_BODY_SLEEK = UINT32_C(0xC4B41EA2),
SF_ASSET_AGENT_BODY_SLEEK_ATTACK = UINT32_C(0xF1122AAF),
SF_ASSET_AGENT_BODY_SLEEK_IDLE = UINT32_C(0xCD80CAD5),
SF_ASSET_AGENT_BODY_SLEEK_WALK = UINT32_C(0xB0776C42),
SF_ASSET_AGENT_WEAPON_BOW_ATTACK = UINT32_C(0x0761E96D),
SF_ASSET_AGENT_WEAPON_BOW_IDLE = UINT32_C(0x0E0AF843),
SF_ASSET_AGENT_WEAPON_BOW_WALK = UINT32_C(0xF24E8CA0),
SF_ASSET_AGENT_WEAPON_DAGGER_ATTACK = UINT32_C(0x41086BDF),
SF_ASSET_AGENT_WEAPON_DAGGER_IDLE = UINT32_C(0xC9B18F45),
SF_ASSET_AGENT_WEAPON_DAGGER_WALK = UINT32_C(0xF6E01112),
SF_ASSET_AGENT_WEAPON_PISTOL_ATTACK = UINT32_C(0x907FFED8),
SF_ASSET_AGENT_WEAPON_PISTOL_IDLE = UINT32_C(0x0C63E8C6),
SF_ASSET_AGENT_WEAPON_PISTOL_WALK = UINT32_C(0xAA18B06D),
SF_ASSET_AGENT_WEAPON_RIFLE = UINT32_C(0xA68530E2),
SF_ASSET_AGENT_WEAPON_RIFLE_ATTACK = UINT32_C(0xE98508EF),
SF_ASSET_AGENT_WEAPON_RIFLE_IDLE = UINT32_C(0xE828C015),
SF_ASSET_AGENT_WEAPON_RIFLE_WALK = UINT32_C(0xE6E67F82),
SF_ASSET_AGENT_WEAPON_SHOTGUN_ATTACK = UINT32_C(0x6DCC0133),
SF_ASSET_AGENT_WEAPON_SHOTGUN_IDLE = UINT32_C(0x6FAD72A1),
SF_ASSET_AGENT_WEAPON_SHOTGUN_WALK = UINT32_C(0xBEBBA0B6),
SF_ASSET_AGENT_WEAPON_SWORD_ATTACK = UINT32_C(0x6AA4992A),
SF_ASSET_AGENT_WEAPON_SWORD_IDLE = UINT32_C(0x47F65BF8),
SF_ASSET_AGENT_WEAPON_SWORD_WALK = UINT32_C(0x18C0F257),
SF_ASSET_BRUTE_ATTACK = UINT32_C(0xE166F8E8),
SF_ASSET_BRUTE_DEATH = UINT32_C(0x3D96DA4E),
SF_ASSET_BRUTE_HIT = UINT32_C(0xBC752911),
SF_ASSET_BRUTE_WALK = UINT32_C(0xC97ABA5D),
SF_ASSET_FLOOR_BIOMASS = UINT32_C(0x106896E0),
SF_ASSET_FLOOR_CLEAN = UINT32_C(0x9A0C8C83),
SF_ASSET_FLOOR_CRACKED = UINT32_C(0x2C625609),
SF_ASSET_FLOOR_GRATE = UINT32_C(0x20A05799),
SF_ASSET_FLOOR_SLAB = UINT32_C(0x78D3F27E),
SF_ASSET_FLOOR_SLAB_DIM = UINT32_C(0x30CD3FBB),
SF_ASSET_ITEM_ICON_BANDAGE = UINT32_C(0x730D0DDB),
SF_ASSET_ITEM_ICON_BOW = UINT32_C(0x7626252D),
SF_ASSET_ITEM_ICON_CHARM = UINT32_C(0xDB48D1CE),
SF_ASSET_ITEM_ICON_CLEAVER = UINT32_C(0x2516EFDB),
SF_ASSET_ITEM_ICON_JACKET = UINT32_C(0x81553CE1),
SF_ASSET_ITEM_ICON_KNIFE = UINT32_C(0x13043C2C),
SF_ASSET_ITEM_ICON_LANTERN = UINT32_C(0x34C9B6D1),
SF_ASSET_ITEM_ICON_MAGNUM = UINT32_C(0x429211AE),
SF_ASSET_ITEM_ICON_PISTOL = UINT32_C(0xD7A06F30),
SF_ASSET_ITEM_ICON_PLATE = UINT32_C(0x917C60D9),
SF_ASSET_ITEM_ICON_RIFLE = UINT32_C(0x512188A7),
SF_ASSET_ITEM_ICON_SABER = UINT32_C(0xC61BE6EC),
SF_ASSET_ITEM_ICON_SHOTGUN = UINT32_C(0x168A5BFB),
SF_ASSET_ITEM_ICON_SHROUD = UINT32_C(0x8D439236),
SF_ASSET_ITEM_ICON_SMG = UINT32_C(0xE98FD794),
SF_ASSET_ITEM_ICON_SPURS = UINT32_C(0x5F97F1E8),
SF_ASSET_ITEM_ICON_STIMPACK = UINT32_C(0x4D5224BB),
SF_ASSET_ITEM_ICON_VEST = UINT32_C(0x2973B52D),
SF_ASSET_LURKER_ATTACK = UINT32_C(0x9A5A0F2F),
SF_ASSET_LURKER_DEATH = UINT32_C(0xA573E6AB),
SF_ASSET_LURKER_HIT = UINT32_C(0xFF50F498),
SF_ASSET_LURKER_WALK = UINT32_C(0x8FF69CC2),
SF_ASSET_PROP_BARREL = UINT32_C(0x0C0931F1),
SF_ASSET_PROP_CRATE = UINT32_C(0x2DADDAE0),
SF_ASSET_PROP_LOCKER = UINT32_C(0x62DA4D55),
SF_ASSET_RUSHER_ATTACK = UINT32_C(0x219BA505),
SF_ASSET_RUSHER_DEATH = UINT32_C(0xAEBDED05),
SF_ASSET_RUSHER_HIT = UINT32_C(0x3404E732),
SF_ASSET_RUSHER_WALK = UINT32_C(0x442741A8),
SF_ASSET_SHAMBLER_ATTACK = UINT32_C(0x2821014E),
SF_ASSET_SHAMBLER_DEATH = UINT32_C(0x0B950530),
SF_ASSET_SHAMBLER_HIT = UINT32_C(0x8498BC33),
SF_ASSET_SHAMBLER_WALK = UINT32_C(0xDA564B3B),
SF_ASSET_SPITTER_ATTACK = UINT32_C(0x02D54BDB),
SF_ASSET_SPITTER_DEATH = UINT32_C(0x9142CAF7),
SF_ASSET_SPITTER_HIT = UINT32_C(0x84B7B754),
SF_ASSET_SPITTER_WALK = UINT32_C(0xE887C90E),
SF_ASSET_WALL_BLOCK = UINT32_C(0x892CB17B),
SF_ASSET_WALL_INDUSTRIAL = UINT32_C(0x1E7AD4C5),
SF_ASSET_WALL_INFESTED = UINT32_C(0xA5D6F746),
} sf_asset_id;
typedef enum sf_animation_id {
SF_ANIM_ATTACK = UINT32_C(0x4595B8FD),
SF_ANIM_DEFAULT = UINT32_C(0x933B5BDE),
SF_ANIM_IDLE = UINT32_C(0xC301CF93),
SF_ANIM_WALK = UINT32_C(0xA0262210),
} sf_animation_id;
typedef enum sf_palette_id {
SF_PALETTE_DEFAULT = UINT32_C(0x933B5BDE),
} sf_palette_id;
typedef struct sf_asset_metadata {
sf_asset_id id; uint16_t frames; uint16_t directions; uint8_t has_normals; uint8_t has_depth;
} sf_asset_metadata;
static const sf_asset_metadata SF_ASSET_METADATA[86] = {
{SF_ASSET_AGENT_ARMOR_JACKET_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_JACKET_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_JACKET_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_PLATE_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_PLATE_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_PLATE_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_SHROUD_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_SHROUD_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_SHROUD_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_VEST, 144, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_VEST_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_VEST_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_ARMOR_VEST_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_BODY_SLEEK, 144, 8, 1, 1},
{SF_ASSET_AGENT_BODY_SLEEK_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_BODY_SLEEK_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_BODY_SLEEK_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_BOW_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_BOW_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_BOW_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_DAGGER_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_DAGGER_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_DAGGER_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_PISTOL_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_PISTOL_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_PISTOL_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_RIFLE, 144, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_RIFLE_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_RIFLE_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_RIFLE_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SHOTGUN_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SHOTGUN_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SHOTGUN_WALK, 64, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SWORD_ATTACK, 48, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SWORD_IDLE, 8, 8, 1, 1},
{SF_ASSET_AGENT_WEAPON_SWORD_WALK, 64, 8, 1, 1},
{SF_ASSET_BRUTE_ATTACK, 48, 8, 1, 1},
{SF_ASSET_BRUTE_DEATH, 64, 8, 1, 1},
{SF_ASSET_BRUTE_HIT, 32, 8, 1, 1},
{SF_ASSET_BRUTE_WALK, 64, 8, 1, 1},
{SF_ASSET_FLOOR_BIOMASS, 1, 1, 1, 1},
{SF_ASSET_FLOOR_CLEAN, 1, 1, 1, 1},
{SF_ASSET_FLOOR_CRACKED, 1, 1, 1, 1},
{SF_ASSET_FLOOR_GRATE, 1, 1, 1, 1},
{SF_ASSET_FLOOR_SLAB, 1, 1, 1, 1},
{SF_ASSET_FLOOR_SLAB_DIM, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_BANDAGE, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_BOW, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_CHARM, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_CLEAVER, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_JACKET, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_KNIFE, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_LANTERN, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_MAGNUM, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_PISTOL, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_PLATE, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_RIFLE, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_SABER, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_SHOTGUN, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_SHROUD, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_SMG, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_SPURS, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_STIMPACK, 1, 1, 1, 1},
{SF_ASSET_ITEM_ICON_VEST, 1, 1, 1, 1},
{SF_ASSET_LURKER_ATTACK, 48, 8, 1, 1},
{SF_ASSET_LURKER_DEATH, 64, 8, 1, 1},
{SF_ASSET_LURKER_HIT, 32, 8, 1, 1},
{SF_ASSET_LURKER_WALK, 64, 8, 1, 1},
{SF_ASSET_PROP_BARREL, 1, 1, 1, 1},
{SF_ASSET_PROP_CRATE, 1, 1, 1, 1},
{SF_ASSET_PROP_LOCKER, 1, 1, 1, 1},
{SF_ASSET_RUSHER_ATTACK, 48, 8, 1, 1},
{SF_ASSET_RUSHER_DEATH, 64, 8, 1, 1},
{SF_ASSET_RUSHER_HIT, 32, 8, 1, 1},
{SF_ASSET_RUSHER_WALK, 64, 8, 1, 1},
{SF_ASSET_SHAMBLER_ATTACK, 48, 8, 1, 1},
{SF_ASSET_SHAMBLER_DEATH, 64, 8, 1, 1},
{SF_ASSET_SHAMBLER_HIT, 32, 8, 1, 1},
{SF_ASSET_SHAMBLER_WALK, 64, 8, 1, 1},
{SF_ASSET_SPITTER_ATTACK, 48, 8, 1, 1},
{SF_ASSET_SPITTER_DEATH, 64, 8, 1, 1},
{SF_ASSET_SPITTER_HIT, 32, 8, 1, 1},
{SF_ASSET_SPITTER_WALK, 64, 8, 1, 1},
{SF_ASSET_WALL_BLOCK, 1, 1, 1, 1},
{SF_ASSET_WALL_INDUSTRIAL, 1, 1, 1, 1},
{SF_ASSET_WALL_INFESTED, 1, 1, 1, 1},
};
#define SF_ASSET_COUNT 86u
#endif