
/*********************************************************************
 ** Copyright (c) 1992-2022 MAK Technologies, Inc.
 ** All rights reserved.
 *********************************************************************/


/*********************************************************************
 **
 *t  diguyMotionSpeedType Type Declaration
 **
 */

#ifndef __diguyMotionSpeedType_H
#define __diguyMotionSpeedType_H

#ifdef SWIG
%module diguyMotionSpeedType
#else
#define CPLUSPLUS_ONLY
#endif

extern "C" {

#include <declspec_diguy.h>


/****************************************************************************/
/*l
 *b  Description:
 **
 **    DI-Guy character speed types.
 **
 **      There are times when it is convenient to refer to actions based
 **      on roughly how fast they will move a character.  When this is
 **      possible, DI-Guy uses "speed types".
 **
 *i    DIGUY_MOTION_SPEED_TYPE_UNKNOWN
 **
 **      Error return value.
 **
 *i    DIGUY_MOTION_SPEED_TYPE_STILL
 **
 **      Specifies that character/action should not move.
 **      For upright characters, this is typically some kind of stand.
 **
 *i    DIGUY_MOTION_SPEED_TYPE_SLOW
 **
 **      Specifies that character/action should move slowly.
 **      For upright characters, this is typically a shuffle.
 **
 *i    DIGUY_MOTION_SPEED_TYPE_MEDIUM
 **
 **      Specifies that character/action should move at medium,
 **      or average, speed.
 **      For upright characters, this is typically a walk.
 **
 *i    DIGUY_MOTION_SPEED_TYPE_FAST
 **
 **      Specifies that character/action should move at a speed
 **      faster than a walk, but slower than its fastest speed.
 **      For upright characters, this is typically a jog.
 **
 *i    DIGUY_MOTION_SPEED_TYPE_FASTEST
 **
 **      Specifies that character/action should move at its
 **      fastest speed.
 **      For upright characters, this is typically a run.
 */
typedef int diguyMotionSpeedType;

enum {
   DIGUY_MOTION_SPEED_TYPE_UNKNOWN = -1,

   DIGUY_MOTION_SPEED_TYPE_STILL = 0,
   DIGUY_MOTION_SPEED_TYPE_SLOW,
   DIGUY_MOTION_SPEED_TYPE_MEDIUM,
   DIGUY_MOTION_SPEED_TYPE_FAST,
   DIGUY_MOTION_SPEED_TYPE_FASTEST,

   DIGUY_MOTION_SPEED_TYPE_COUNT
};


/*l
 *b  Description:
 **
 **    Utility function that converts a diguyMotionSpeedType enum into
 **    a string.
 */
BDI_DECLSPEC_diguy
const char* diguy_motion_speed_type_to_string(diguyMotionSpeedType motion_speed_type);


/*l
 *b  Description:
 **
 **    Utility function that converts a string into a diguyMotionSpeedType
 **    enum.
 */
BDI_DECLSPEC_diguy
diguyMotionSpeedType diguy_motion_speed_type_from_string(const char* string);


} /* end extern "C" */

#endif /* __diguyMotionSpeedType_H */


/*********************************************************************
 ** Copyright (c) 1992-2022 MAK Technologies, Inc.
 ** All rights reserved.
 *********************************************************************/

