/****************************************************************************
 * Copyright (c) 2026 MAK Technologies, Inc.
 * All rights reserved.
 ****************************************************************************/

#pragma once

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

extern "C" {

#include <declspec_diguy.h>


/****************************************************************************/
typedef enum
{
   DIGUY_ACTION_USAGE_TYPE_UNKNOWN = 0,
   DIGUY_ACTION_USAGE_TYPE_TASKABLE = 1,
   DIGUY_ACTION_USAGE_TYPE_INTRINSIC = 2,
   DIGUY_ACTION_USAGE_TYPE_BOTH = 3,
   DIGUY_ACTION_USAGE_TYPE_UNUSED = 4,
   DIGUY_ACTION_USAGE_TYPE_COUNT
} diguyActionUsageType;

/*l
 *b  Description:
 **
 **    This function converts the passed action usage type enumeration into
 **    a NULL-terminated C-style string.
 **
 *b  Returns:
 **
 **    C-style string identifying usage type
 **
 *b  Callable From:
 **
 *-    - C++
 *-    - Script
 */
BDI_DECLSPEC_diguy const char* diguy_action_usage_type_to_string( diguyActionUsageType type );

/*l
 *b  Description:
 **
 **    This function converts the passed C-style string into an
 **    enumerated value.
 **
 **    Action usage type can be used to determine whether an action should be chosen
 **    automatically for moving the character.
 **
 *b  Returns:
 **
 **    enumeration value of action usage type
 **
 *b  Callable From:
 **
 *-    - C++
 *-    - Script
 */
BDI_DECLSPEC_diguy diguyActionUsageType diguy_action_usage_type_from_string( const char* string );


} // end extern "C"
