squad-proto/generated/agent_paperdoll.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

28 lines
928 B
C++

/* Generated by tools/agent_assets.py sync (consolidated Blender assets). */
#pragma once
#include <cstdint>
#include "render/anim.h"
#include "sim/items.h"
constexpr uint32_t AGENT_BODY_ASSET = UINT32_C(0xC4B41EA2);
constexpr uint32_t AgentBodyAsset(AnimKind) { return AGENT_BODY_ASSET; }
constexpr uint32_t AgentArmorAsset(ItemId id, AnimKind = AnimKind::IDLE) {
switch (id) {
case ItemId::JACKET: case ItemId::VEST: case ItemId::PLATE: case ItemId::SHROUD:
return UINT32_C(0xC8F6040D);
default: return 0;
}
}
constexpr uint32_t AgentWeaponAsset(ItemId id, AnimKind = AnimKind::IDLE) {
switch (id) {
case ItemId::RIFLE: case ItemId::PISTOL: case ItemId::SHOTGUN:
case ItemId::SMG: case ItemId::MAGNUM: case ItemId::BOW:
case ItemId::SABER: case ItemId::KNIFE: case ItemId::CLEAVER:
return UINT32_C(0xA68530E2);
default: return 0;
}
}