Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "math/consts.h"
- #include "data/nav.h"
- #include "data/formation.h"
- #include "data/carraige/carraige.h"
- #include "./context.h"
- namespace Equipment {
- #define STATES \
- etype(EquippedPrimary) \
- etype(EquippedSecondary) \
- etype(Unequipped)
- #include "state_type_macro_snippet.h"
- #undef STATES
- } // namespace Combat
- namespace MeleeCombat {
- #define STATES \
- etype(Waiting) \
- etype(Attack) \
- etype(Guarding) \
- etype(Riposte) \
- etype(Staggering) \
- etype(Parrying)
- #include "state_type_macro_snippet.h"
- #undef STATES
- }
- namespace RangedCombat {
- #define STATES \
- etype(Ready) \
- etype(Aiming) \
- etype(Reloading) \
- etype(OutOfAmmo) \
- etype(Firing)
- #include "state_type_macro_snippet.h"
- #undef STATES
- }
- namespace Movement {
- struct Mounted {
- EntityType id;
- Menge::Math::Vector2 relativePos;
- prop_t relativeHeight;
- };
- struct Moving {};
- struct Stationary {};
- #define STATES_ALREADY_DEFINED
- #define STATES \
- etype(Mounted) \
- etype(Moving) \
- etype(Stationary)
- #include "state_type_macro_snippet.h"
- #undef STATES
- }
- namespace Status {
- #define STATES \
- etype(FreeMove) \
- etype(MeleeCombat) \
- etype(RangedCombat) \
- etype(Injured) \
- etype(Dead)
- #include "state_type_macro_snippet.h"
- #undef STATES
- }
- const auto excludeDead = entt::exclude<Status::Dead>;
- namespace UprightMovement {
- #define STATES \
- etype(Marching) \
- etype(Charging) \
- etype(Fleeing) \
- etype(Running)
- #include "state_type_macro_snippet.h"
- #undef STATES
- } // namespace Movement
- namespace Stance {
- #define STATES \
- etype(Upright) \
- etype(Prone) \
- etype(Crouching) \
- etype(Kneeling)
- #include "state_type_macro_snippet.h"
- #undef STATES
- } // namespace Stance
- namespace Destination {
- using Data::FormationAgentPoint;
- using Data::CircleGoalPtr;
- using Data::AgentFollow;
- using Data::AgentToMount;
- struct None {};
- #define STATES_ALREADY_DEFINED
- #define STATES \
- etype(None) \
- etype(FormationAgentPoint) \
- etype(CircleGoalPtr) \
- etype(AgentFollow) \
- etype(AgentToMount)
- #include "state_type_macro_snippet.h"
- #undef STATES
- }
- /*namespace Goal {
- #define STATES \
- etype(ToFormation) \
- etype(ToArea) \
- etype(ToCover) \
- etype(ToWaypoints) \
- etype(ToNearestEnemy) \
- etype(AwayNearestEnemy)
- #include "state_type_macro_snippet.h"
- #undef STATES
- } // namespace Goal
- */
- /*---------- Formation states ----------*/
- // namespace Formation {
- // struct CanFireTag {};
- // struct CanKneelTag {};
- // }
- /*---------- Group States ----------*/
- namespace GroupMovement {
- // different types of move to position modifiers,
- // move while prone, move while running, move default == marching,
- // retreat == fleeing .
- #define STATES \
- etype(ProneModifier) \
- etype(RunModifier) \
- etype(DefaultModifier) \
- etype(RetreatModifier)
- #include "state_type_macro_snippet.h"
- #undef STATES
- } // namespace GroupCommand
- namespace GroupCombat {
- struct CanFireTag {};
- struct CanPursueTag {};
- struct CanAimTag {};
- } // namespace GroupCommand
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement