/** * @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 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 };