/**
 * @file actor_state_string_names.c
 * @brief Bit position -> state name, as text. Maintained by hand.
 *
 * An earlier comment in `actor.h` said this file was "built by a utility script
 * and not kept in git, see the Makefile for lib_src/actor_state_string_names.c".
 * None of that is true: there is no Makefile (the project is CMake), no
 * `lib_src/`, no such script under `scripts/` or `util/`, and this file is
 * tracked. It is maintained by hand, and the two things that keeps costing are
 * worth stating here rather than rediscovering.
 *
 * **Entry `i` must name the bit `1 << i` in `actor.h`.** Bits 11 and 12 read
 * `UNDEFINED_11` and `UNDEFINED_12` here for as long as `actor.h` has called
 * them `MOVING_IN` and `MOVING_OUT`, which meant a character JSON could not
 * bind a sprite to either state -- the name it would have to write did not
 * exist in the registry akgl_registry_init_actor_state_strings builds out of
 * this array.
 *
 * **The array is sized by #AKGL_ACTOR_MAX_STATES**, not by a literal. It was
 * `[32]` here against `[AKGL_ACTOR_MAX_STATES+1]` in the header, so a consumer
 * trusting the declared bound read one entry past the object.
 */

#include <akgl/actor.h>

char *AKGL_ACTOR_STATE_STRING_NAMES[AKGL_ACTOR_MAX_STATES] = {
    "AKGL_ACTOR_STATE_FACE_DOWN",       //  1 << 0
    "AKGL_ACTOR_STATE_FACE_LEFT",       //  1 << 1
    "AKGL_ACTOR_STATE_FACE_RIGHT",      //  1 << 2
    "AKGL_ACTOR_STATE_FACE_UP",         //  1 << 3
    "AKGL_ACTOR_STATE_ALIVE",           //  1 << 4
    "AKGL_ACTOR_STATE_DYING",           //  1 << 5
    "AKGL_ACTOR_STATE_DEAD",            //  1 << 6
    "AKGL_ACTOR_STATE_MOVING_LEFT",     //  1 << 7
    "AKGL_ACTOR_STATE_MOVING_RIGHT",    //  1 << 8
    "AKGL_ACTOR_STATE_MOVING_UP",       //  1 << 9
    "AKGL_ACTOR_STATE_MOVING_DOWN",     //  1 << 10
    "AKGL_ACTOR_STATE_MOVING_IN",       //  1 << 11
    "AKGL_ACTOR_STATE_MOVING_OUT",      //  1 << 12
    "AKGL_ACTOR_STATE_UNDEFINED_13",    //  1 << 13
    "AKGL_ACTOR_STATE_UNDEFINED_14",    //  1 << 14
    "AKGL_ACTOR_STATE_UNDEFINED_15",    //  1 << 15
    "AKGL_ACTOR_STATE_UNDEFINED_16",    //  1 << 16
    "AKGL_ACTOR_STATE_UNDEFINED_17",    //  1 << 17
    "AKGL_ACTOR_STATE_UNDEFINED_18",    //  1 << 18
    "AKGL_ACTOR_STATE_UNDEFINED_19",    //  1 << 19
    "AKGL_ACTOR_STATE_UNDEFINED_20",    //  1 << 20
    "AKGL_ACTOR_STATE_UNDEFINED_21",    //  1 << 21
    "AKGL_ACTOR_STATE_UNDEFINED_22",    //  1 << 22
    "AKGL_ACTOR_STATE_UNDEFINED_23",    //  1 << 23
    "AKGL_ACTOR_STATE_UNDEFINED_24",    //  1 << 24
    "AKGL_ACTOR_STATE_UNDEFINED_25",    //  1 << 25
    "AKGL_ACTOR_STATE_UNDEFINED_26",    //  1 << 26
    "AKGL_ACTOR_STATE_UNDEFINED_27",    //  1 << 27
    "AKGL_ACTOR_STATE_UNDEFINED_28",    //  1 << 28
    "AKGL_ACTOR_STATE_UNDEFINED_29",    //  1 << 29
    "AKGL_ACTOR_STATE_UNDEFINED_30",    //  1 << 30
    "AKGL_ACTOR_STATE_UNDEFINED_31",    //  1 << 31
};
