#pragma once
///@file флаги объектов
#include "a83/macro.hpp"
#define EFT constexpr uint
EFT EF_DEFAULT    = 0;       ///< инит при старте игры
EFT EF_LIVE       = 1 << 0;  ///< активен
EFT EF_LRU        = 1 << 1;  ///< рисовать на верхнем слое
EFT EF_END_ANIM   = 1 << 2;  ///< анимация закончилась
EFT EF_END_FRAME  = 1 << 3;  ///< переключился кадр
EFT EF_NO_UPDATE  = 1 << 4;  ///< скипать обнову состояния
EFT EF_NO_SCATTER = 1 << 5;  ///< игнор расталкивания взрывом
EFT EF_NO_MOVE    = 1 << 6;  ///< не двигаться
EFT EF_R_FRAME_ANY= 1 << 7;  ///< случайный кадр каждый фрейм
EFT EF_R_DEG_ANY  = 1 << 8;  ///< случайный угол каждый фрейм
EFT EF_KILL_TIMER = 1 << 9;  ///< уничтожиться по окончанию таймера
EFT EF_KILL_FRAME = 1 << 9;  ///< то же, что и EF_KILL_TIMER
EFT EF_KILL_ANIM  = 1 << 10; ///< уничтожиться по окончанию анимации
EFT EF_DMG_ENEMY  = 1 << 11; ///< наносить урон врагам
EFT EF_DMG_PLAYER = 1 << 12; ///< наносить урон игроку
EFT EF_DMG_BULLET = 1 << 13; ///< наносить урон пулям
EFT EF_NO_KILL    = 1 << 14; ///< не получать урон
EFT EF_WARN_ENE   = 1 << 15; ///< отмечать как врага на UI
EFT EF_WARN_BLT   = 1 << 16; ///< отмечать как пулю на UI
EFT EF_WARN_BNS   = 1 << 17; ///< отмечать как бонус на UI
EFT EF_KILL_NOW   = 1 << 18; ///< уничтожить себя на следующей обнове
EFT EF_IGNORE_SELF_ID= 1 << 19; ///< не уничтожаться от подобных по id
EFT EF_COLLIDED   = 1 << 20; ///< произошло столкновение
EFT EF_NO_DRAW    = 1 << 21; ///< скипать отрисовку
EFT EF_NO_COLLIDE = 1 << 22; ///< скипать проверку столкновения
EFT EF_NO_ANIM    = 1 << 23; ///< скипать обновление анимации
EFT EF_R_FRAME    = 1 << 24; ///< случайный кадр анимации
EFT EF_R_DEG      = 1 << 25; ///< случайный угол анимации
EFT EF_NO_OFFSET  = 1 << 26; ///< двигаться с игроком
EFT EF_IGNORE_MASTER= 1 << 27; ///< не дамажиться об Enity.master
EFT EF_BOUND      = 1 << 28; ///< объекст был сдвинут барьером
#undef EFT