/*---------------------------------------------------------------------------*/ /* Convert.c : Convert Id <-> string (mainly usefull for editor)*/ /* creation : 17/01/1997 (Olivier Couvreur)*/ /* modify : 29/01/1997 (Fabien Morales) Vertex param*/ /* modify : 31/01/1997 (Olivier Couvreur) lint verification*/ /* modify : 12/02/1997 (Fabien Morales) Module & DsgVarId param types*/ /* modify : 19/02/1997 (Olivier Couvreur) types checking functions (for editor)*/ /* modify : 26/02/1997 (Olivier Couvreur) new functions for editor type checking */ /* modify : 11/03/1997 (Olivier Couvreur) functions for editor transfered from several modules*/ /* modify : 25/03/1997 (Olivier Couvreur) ACTIVE_EDITOR support*/ /* modify : 21/05/1997 (Olivier Couvreur) HitPoints support*/ /* modify : 27/05/1997 (Olivier Couvreur) ZDD + ZDE stuff*/ /* modify : 27/06/1997 (Olivier Couvreur) Operators,Functions,Procedures,Conditions use functions pointers !*/ /*---------------------------------------------------------------------------*/ #include "AIUseCPA.h" #include "specif/AIOption.h" #include "AIMacros.h" #include "AI_Erm.h" #include "GsParam.h" /* so that exported functions are effectively exported !*/ #include "Convert.h" #if defined(ACTIVE_EDITOR) #include "specif/ActTable.h" #endif /* ACTIVE_EDITOR*/ #if !defined(OPTIMIZED_COMMAND) /**********************************************************************/ /* list of all allowed char for defining types*/ char szAutorizedTypeParam[]= \ C_LONG_PARAM \ C_REAL_PARAM \ C_PERSO_PARAM \ C_VECTOR_PARAM \ C_MODULE_PARAM \ C_WAYPOINT_PARAM \ C_LIST_PARAM \ C_BOOLEAN_PARAM \ C_ACTION_PARAM \ C_ZDE_PERSO_PARAM \ C_ZDD_PERSO_PARAM \ C_ZDM_PERSO_PARAM \ C_ZDE_MODULE_PARAM \ C_ZDD_MODULE_PARAM \ C_BUTTON_PARAM \ C_STRING_PARAM \ C_MAP_PARAM \ C_MASK_PARAM \ C_MASK_PARAM \ C_SURFACE_PARAM \ C_LIPSYNCHRO_PARAM \ C_OBJECTTABLE_PARAM \ C_SECTOR_PARAM \ C_ENV_PARAM \ C_FAMILY_PARAM \ C_COMPORT_PARAM \ C_MY_REFLEX_COMPORT_PARAM \ C_MY_INTELL_COMPORT_PARAM \ C_REFLEX_COMPORT_PARAM \ C_INTELL_COMPORT_PARAM \ C_SOUNDEVENT_PARAM \ C_ALWAYS_PARAM \ C_POWER_PARAM \ C_PERSO_PARAM_ONLY \ C_FONT_PARAM \ C_TEXT_PARAM \ C_PARTICLEGENERATOR_PARAM \ C_GMT_PARAM \ C_MODEL_PARAM \ C_ARRAY_PARAM \ C_SUPEROBJECT_PARAM \ /*ANNECY CT 22/01/98 {*/ C_LIGHT_PARAM \ /*ENANNECY CT}*/ /*ANNECY Bart 02/02/98 {*/ C_CAPS_PARAM \ C_GRAPH_PARAM \ /*ENDANNECY Bart }*/ C_ZDR_PERSO_PARAM ; /* return a pointer on a string containing all valid chars to define types*/ char *fn_szGetAutorizedTypeParam(void) { return (&szAutorizedTypeParam[0]); } /* check if a string contains only valid chars*/ unsigned char fn_ucCheckTypeParam(char *szTypeParam) { unsigned char Ok=0; if (strlen(szTypeParam)<=C_MAX_NB_PARAM) { unsigned char i; Ok=1; for (i=0;((i <= >= etc soit les mêmes en anglais et en francais !!!*/ static char *fn_szConvertConditionString(char *str1,char *str2) { if (!isalpha(str2[0])) { return(fn_szConvertString(str2)); } return(fn_szConvertString(str1)); } /* C'est pour Xavier qui veut qu'il y ait bijection entre les mots clés et les types des variables designers*/ /* C'est pour Xavier qui veut que les noms des types des variables commencent par une lettre !!!*/ static char TempChar[200]; static char *fn_szConvertDsgVarString(char *str1,char *str2) { if (!strnicmp(str2,"Type",4)) { sprintf(&TempChar[0],"%sType",str1); return(fn_szConvertString(&TempChar[0])); } else if ((isdigit(str1[0])) || (str1[0]=='_') ) { sprintf(&TempChar[0],"Integer%s",str1); return(&TempChar[0]); } return(str1); } void fn_vWriteAILangue() { FILE *fp; if ((fp=fopen(AI_MULTI_LANGUAGE_SCRIPT,"wt"))!=NULL) { #define M_BAR "------------------------------------------------------------------" #define M_WRITE_ALL_COMMAND_START(title,nb) fprintf(fp,";%s\n;%s\n;%s\n{%s:(%d)\n",M_BAR,title,M_BAR,title,nb); #define M_WRITE_ALL_COMMAND_END() fprintf(fp,"}\n\n"); #define M_WRITE_ONE_COMMAND(title,key,fr,gb) \ fprintf(fp,"\t{%s:%s\n",title,key); \ fprintf(fp,"\t\t%s(%s)\n",AI_FRENCH,fr); \ fprintf(fp,"\t\t%s(%s)\n",AI_ENGLISH,gb); \ fprintf(fp,"\t}\n\n"); /* MetaActions*/ #define M_WRITE_ALL_METAACTIONS(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_METAACTIONS,nb) #define M_WRITE_ONE_METAACTION(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_METAACTION,key,fr,gb) M_WRITE_ALL_METAACTIONS(fn_eGetNbMetaAction()) /*#define M_DEFINE_METAACTION(a,b,c,d,e,f) M_WRITE_ONE_METAACTION(c,b,fn_szConvertString(c))*/ #define M_DEFINE_METAACTION(a,b,english,c,d,e,f) M_WRITE_ONE_METAACTION(c,b,english) #include "DefAct.h" #undef M_DEFINE_METAACTION M_WRITE_ALL_COMMAND_END() /* Procedures*/ #define M_WRITE_ALL_PROCEDURES(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_PROCEDURES,nb) #define M_WRITE_ONE_PROCEDURE(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_PROCEDURE,key,fr,gb) M_WRITE_ALL_PROCEDURES(fn_eGetNbProcedure()) /*#define M_DEFINE_PROCEDURE(a,b,c,d,e,f) M_WRITE_ONE_PROCEDURE(c,b,fn_szConvertString(c))*/ #define M_DEFINE_PROCEDURE(a,b,english,c,d,e,f) M_WRITE_ONE_PROCEDURE(c,b,english) #include "DefProc.h" #undef M_DEFINE_PROCEDURE M_WRITE_ALL_COMMAND_END() /* Functions*/ #define M_WRITE_ALL_FUNCTIONS(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_FUNCTIONS,nb) #define M_WRITE_ONE_FUNCTION(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_FUNCTION,key,fr,gb) M_WRITE_ALL_FUNCTIONS(fn_eGetNbFunc()) /*#define M_DEFINE_FUNCTION(a,b,c,d,e,f,g) M_WRITE_ONE_FUNCTION(c,b,fn_szConvertString(c))*/ #define M_DEFINE_FUNCTION(a,b,english,c,d,e,f,g) M_WRITE_ONE_FUNCTION(c,b,english) #include "DefFunc.h" #undef M_DEFINE_FUNCTION M_WRITE_ALL_COMMAND_END() /* Conditions*/ #define M_WRITE_ALL_CONDITIONS(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_CONDITIONS,nb) #define M_WRITE_ONE_CONDITION(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_CONDITION,key,fr,gb) M_WRITE_ALL_CONDITIONS(fn_eGetNbCond()) /*#define M_DEFINE_CONDITION(a,b,c,d,e,f) M_WRITE_ONE_CONDITION(c,b,fn_szConvertConditionString(c,b))*/ #define M_DEFINE_CONDITION(a,b,english,c,d,e,f) M_WRITE_ONE_CONDITION(c,b,english) #include "DefCond.h" #undef M_DEFINE_CONDITION M_WRITE_ALL_COMMAND_END() /* KeyWords*/ #define M_WRITE_ALL_KEYWORDS(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_KEYWORDS,nb) #define M_WRITE_ONE_KEYWORD(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_KEYWORD,key,fr,gb) M_WRITE_ALL_KEYWORDS(fn_eGetNbKeyWord()) /*#define M_DEFINE_KEYWORD(a,b,c,d,e,f) M_WRITE_ONE_KEYWORD(c,b,fn_szConvertString(c))*/ #define M_DEFINE_KEYWORD(a,b,english,c,d,e,f) M_WRITE_ONE_KEYWORD(c,b,english) #include "DefKey.h" #undef M_DEFINE_KEYWORD M_WRITE_ALL_COMMAND_END() /* Fields*/ #define M_WRITE_ALL_FIELDS(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_FIELDS,nb) #define M_WRITE_ONE_FIELD(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_FIELD,key,fr,gb) M_WRITE_ALL_FIELDS(fn_eGetNbField()) /*#define M_DEFINE_FIELD(a,b,c,d,e,f) M_WRITE_ONE_FIELD(c,b,fn_szConvertString(c))*/ #define M_DEFINE_FIELD(a,b,english,c,d,e,f) M_WRITE_ONE_FIELD(c,b,english) #include "DefFild.h" #undef M_DEFINE_FIELD M_WRITE_ALL_COMMAND_END() /* Designer variables*/ #define M_WRITE_ALL_DSGVAR_TYPES(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_DSGVAR_TYPES,nb) #define M_WRITE_ONE_DSGVAR_TYPE(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_DSGVAR_TYPE,key,fr,gb) M_WRITE_ALL_DSGVAR_TYPES(fn_eGetNbDsgVarType()) #define M_DEFINE_DSGVAR_TYPE(a,b,c,d,e,f,g,h,i,j) M_WRITE_ONE_DSGVAR_TYPE(c,b,fn_szConvertDsgVarString(c,b)) #include "DefVar.h" #undef M_DEFINE_DSGVAR_TYPE M_WRITE_ALL_COMMAND_END() /* SAI Type*/ #define M_WRITE_ALL_DSGVAR_SAVE_TYPES(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_DSGVAR_SAVE_TYPES,nb) #define M_WRITE_ONE_DSGVAR_SAVE_TYPE(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_DSGVAR_SAVE_TYPE,key,fr,gb) M_WRITE_ALL_DSGVAR_SAVE_TYPES(fn_ucGetSaveTypeNumber()) #define M_DEFINE_DSGVAR_SAVE_TYPE(a,b,c) M_WRITE_ONE_DSGVAR_SAVE_TYPE(b,a,b) #include "DefSAI.h" #undef M_DEFINE_DSGVAR_SAVE_TYPE M_WRITE_ALL_COMMAND_END() /* OTI Type*/ #define M_WRITE_ALL_DSGVAR_INIT_TYPES(nb) M_WRITE_ALL_COMMAND_START(AI_ALL_DSGVAR_INIT_TYPES,nb) #define M_WRITE_ONE_DSGVAR_INIT_TYPE(key,fr,gb) M_WRITE_ONE_COMMAND(AI_ONE_DSGVAR_INIT_TYPE,key,fr,gb) M_WRITE_ALL_DSGVAR_INIT_TYPES(fn_ucGetInitTypeNumber()) #define M_DEFINE_DSGVAR_INIT_TYPE(a,b,c) M_WRITE_ONE_DSGVAR_INIT_TYPE(b,a,b) #include "DefOTI.h" #undef M_DEFINE_DSGVAR_INIT_TYPE M_WRITE_ALL_COMMAND_END() fclose(fp); } } #endif /* ACTIVE_EDITOR*/