Home

Resume

Blog

Teikitu


/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/*  »Project«   Teikitu Gaming System (TgS) (∂)
    »File«      TgS Common - Console [Var].h
    »Author«    Andrew Aye (EMail: mailto:andrew.aye@gmail.com, Web: http://www.andrewaye.com)
    »Version«   4.51 / »GUID« A9981407-3EC9-42AF-8B6F-8BE6DD919615                                                                                                        */
/*   -------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
/*  Copyright: © 2002-2017, Andrew Aye.  All Rights Reserved.
    This software is free for non-commercial use.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
      following conditions are met:
        Redistribution of source code must retain this copyright notice, this list of conditions and the following disclaimers.
        Redistribution in binary form must reproduce this copyright notice, this list of conditions and the following disclaimers in the documentation and other materials
          provided with the distribution.
    The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
    The intellectual property rights of the algorithms used reside with Andrew Aye.
    You may not use this software, in whole or in part, in support of any commercial product without the express written consent of the author.
    There is no warranty or other guarantee of fitness of this software for any purpose. It is provided solely "as is".                                                   */
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
#if !defined(TGS_COMMON_CONSOLE_VAR_H)
#define TGS_COMMON_CONSOLE_VAR_H
#pragma once


/* == Common ============================================================================================================================================================ */

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Public Constants                                                                                                                                                      */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

enum { KTgCN_VAR_INIT                      = 1 <<  0 }; /*« Read-Only variable that is used for initialization */
enum { KTgCN_VAR_READ_ONLY                 = 1 <<  1 }; /*« Write once */
enum { KTgCN_VAR_CONFIG                    = 1 <<  2 }; /*« Value is read and written to configuration files */
enum { KTgCN_VAR_SERVER                    = 1 <<  3 }; /*« Communication to client from server */
enum { KTgCN_VAR_CHEAT                     = 1 <<  4 }; /*« Used during development - this is a cheat variable */


/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Preprocessor Definitions */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
#if TgCOMPILE_CONSOLE_VAR_DEV

#define TgCN_VAR_DEV_DEFINE( A, B, C ) TgEXTN TgCN_VAR_ID A

/*# TgCOMPILE_CONSOLE_VAR_DEV */
#else

#define TgCN_VAR_DEV_DEFINE( A, B, C ) static const B A = C

/*# TgCOMPILE_CONSOLE_VAR_DEV */
#endif


/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Public Functions                                                                                                                                                      */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

TgEXTN TgVOID                               tgCN_Var_Load_Config( TgVOID );
TgEXTN TgVOID                               tgCN_Var_Save_Config( TgVOID );

TgEXTN TgBOOL                               tgCN_Var_Query_Init( TgVOID );
TgEXTN TgBOOL                               tgCN_Var_Query_Boot( TgVOID );
TgEXTN TgSIZE                               tgCN_Var_Query_Fixed_Memory( TgVOID );

TgEXTN TgVOID                               tgCN_Print_Command_Variables( P_STg2_Output );

                                            /* Functions used to manage the console commands supported by the module */
                                            /* 1: Name of variable */
                                            /* 2: Description */
                                            /* 3: Flags */
                                            /* 4: Default */
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_Bool( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgBOOL );

                                            /* 4+: Default, Min, Max */
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_S08( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgSINT08, C_TgSINT08, C_TgSINT08 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_S16( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgSINT16, C_TgSINT16, C_TgSINT16 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_S32( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgSINT32, C_TgSINT32, C_TgSINT32 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_S64( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgSINT64, C_TgSINT64, C_TgSINT64 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_U08( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgUINT08, C_TgUINT08, C_TgUINT08 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_U16( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgUINT16, C_TgUINT16, C_TgUINT16 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_U32( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgUINT32, C_TgUINT32, C_TgUINT32 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_U64( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgUINT64, C_TgUINT64, C_TgUINT64 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_F32( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgFLOAT32, C_TgFLOAT32, C_TgFLOAT32 );
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_F32_04( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, C_TgVEC_F32_04, C_TgVEC_F32_04, C_TgVEC_F32_04 );

                                            /* 4+: Default, Buffer, Buffer Size */
TgEXTN TgCN_VAR_ID                          tgCN_Var_Init_String( CPC_TgCHAR, CPC_TgCHAR, C_TgUINT16, CPC_TgCHAR, PC_TgCHAR, C_TgSIZE );

TgEXTN TgBOOL                               tgCN_Var_Set_Bool( C_TgCN_VAR_ID, C_TgBOOL );
TgEXTN TgBOOL                               tgCN_Var_Set_S08( C_TgCN_VAR_ID, C_TgSINT08 );
TgEXTN TgBOOL                               tgCN_Var_Set_S16( C_TgCN_VAR_ID, C_TgSINT16 );
TgEXTN TgBOOL                               tgCN_Var_Set_S32( C_TgCN_VAR_ID, C_TgSINT32 );
TgEXTN TgBOOL                               tgCN_Var_Set_S64( C_TgCN_VAR_ID, C_TgSINT64 );
TgEXTN TgBOOL                               tgCN_Var_Set_U08( C_TgCN_VAR_ID, C_TgUINT08 );
TgEXTN TgBOOL                               tgCN_Var_Set_U16( C_TgCN_VAR_ID, C_TgUINT16 );
TgEXTN TgBOOL                               tgCN_Var_Set_U32( C_TgCN_VAR_ID, C_TgUINT32 );
TgEXTN TgBOOL                               tgCN_Var_Set_U64( C_TgCN_VAR_ID, C_TgUINT64 );
TgEXTN TgBOOL                               tgCN_Var_Set_F32( C_TgCN_VAR_ID, C_TgFLOAT32 );
TgEXTN TgBOOL                               tgCN_Var_Set_F32_04( C_TgCN_VAR_ID, C_TgVEC_F32_04 );
TgEXTN TgBOOL                               tgCN_Var_Set_String( C_TgCN_VAR_ID, CPC_TgCHAR );

TgEXTN TgBOOL                               tgCN_Var_Query_Bool( P_TgBOOL, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_S08( P_TgSINT08, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_S16( P_TgSINT16, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_S32( P_TgSINT32, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_S64( P_TgSINT64, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_U08( P_TgUINT08, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_U16( P_TgUINT16, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_U32( P_TgUINT32, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_U64( P_TgUINT64, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_F32( P_TgFLOAT32, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_F32_04( P_TgVEC_F32_04, C_TgCN_VAR_ID );
TgEXTN TgBOOL                               tgCN_Var_Query_String( CPP_TgCHAR, C_TgCN_VAR_ID );

TgEXTN TgCN_VAR_ID                          tgCN_Var_Query_Id( CPC_TgCHAR );


/* ====================================================================================================================================================================== */
#endif