pmd-red/include/constants/direction.h
2025-11-25 06:08:16 -05:00

38 lines
1.1 KiB
C

#ifndef GUARD_CONSTANTS_DIRECTION_H
#define GUARD_CONSTANTS_DIRECTION_H
#define DIRECTION_MASK 7
#define DIRECTION_MASK_CARDINAL 6 // Only South, East, North and West
enum Direction
{
DIRECTION_SOUTH,
DIRECTION_SOUTHEAST,
DIRECTION_EAST,
DIRECTION_NORTHEAST,
DIRECTION_NORTH,
DIRECTION_NORTHWEST,
DIRECTION_WEST,
DIRECTION_SOUTHWEST,
NUM_DIRECTIONS
};
enum DirectionTransformation
{
DIR_TRANS_NONE,
DIR_TRANS_SPINRIGHT1, // Spin right 1 (example: South -> SouthWest)
DIR_TRANS_SPINLEFT1, // Spin left 1 (example: South -> SouthEast)
DIR_TRANS_SPINRIGHT2, // Spin right 2 (example: South -> West)
DIR_TRANS_SPINLEFT2, // Spin left 2 (example: South -> East)
DIR_TRANS_FLIP, // Flip (example: South -> North)
DIR_TRANS_RAND_OFFSET_SOFT_CARDINAL, // Like DIR_TRANS_RAND_OFFSET_SOFT but only results in cardinal directions
DIR_TRANS_RAND_OFFSET_SOFT, // SpinLeft1 or Nothing or SpinRight1
DIR_TRANS_RAND_CARDINAL, // Random non-diagonal
DIR_TRANS_RAND, // Fully random
DIR_TRANS_10,
DIR_TRANS_11,
};
#endif // GUARD_CONSTANTS_DIRECTION_H