reman3/Rayman_X/cpa/tempgrp/AI/AiInfo/AiInfo.c

288 lines
9.0 KiB
C
Raw Blame History

#pragma warning(disable:4032) /* formal parameter 1 has different type when promoted */
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include "ConvCst.h"
#include "EnumKey.h"
#include "ConvKey.h"
#include "EnumCond.h"
#include "ConvCond.h"
#include "EnumFunc.h"
#include "ConvFunc.h"
#include "EnumOper.h"
#include "ConvOper.h"
#include "EnumProc.h"
#include "ConvProc.h"
#include "EnumAct.h"
#include "ConvAct.h"
#include "EnumFild.h"
#include "ConvFild.h"
#include "EnumVar.h"
#include "ConvVar.h"
#include "VarType.h"
#include "EnumType.h"
/* don't delete this function please !
void display()
{
#define M_DEFINE_KEYWORD(a,b,c,d,e,f) printf("%s (%s,%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,e,f,b,c);
#include "DefKey.h"
#undef M_DEFINE_KEYWORD
getch();
#define M_DEFINE_CONDITION(a,b,c,d,e,f) printf("%s (%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,e,b,c);
#include "DefCond.h"
#undef M_DEFINE_CONDITION
getch();
#define M_DEFINE_FUNCTION(a,b,c,d,e,f,g) printf("%s (%s,%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,e,f,b,c);
#include "DefFunc.h"
#undef M_DEFINE_FUNCTION
getch();
#define M_DEFINE_OPERATOR(a,b,c,d,e,f) printf("%s (%s,%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,e,f,b,c);
#include "DefOper.h"
#undef M_DEFINE_OPERATOR
getch();
#define M_DEFINE_PROCEDURE(a,b,c,d,e,f) printf("%s (%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,e,b,c);
#include "DefProc.h"
#undef M_DEFINE_PROCEDURE
getch();
#define M_DEFINE_METAACTION(a,b,c,d,e,f) printf("%s (%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,f,b,c);
#include "DefAct.h"
#undef M_DEFINE_METAACTION
getch();
#define M_DEFINE_FIELD(a,b,c,d,e,f) printf("%s (%s)\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,#d,b,c);
#include "DefFild.h"
#undef M_DEFINE_FIELD
getch();
#define M_DEFINE_DSGVAR_TYPE(a,b,c,d,e,f,g,h,i,j) printf("%s (%s)\n" "\t\"%s\"\n" "\t\"%s\"\n" "\t\"%s\"\n" "\t\"%s\"\n",#a,#d,b,c,#g,#h);
#include "DefVar.h"
#undef M_DEFINE_DSGVAR_TYPE
getch();
#define M_DEFINE_TYPE_INTERPRET(a,b,c,d) printf("%s\n" "\t%s\n" "\t%s\n" "\t%s\n",#a,#b,#c,#d);
#include "DefType.h"
#undef M_DEFINE_TYPE_INTERPRET
getch();
#define M_DEFINE_NODE(a,b,c) printf("\"%s\"\n" "\t%s\n" "\t%s\n",a,#b,#c);
#include "DefNode.h"
#undef M_DEFINE_NODE
getch();
#define M_DEFINE_DSGVAR_SAVE_TYPE(a,b,c) printf("\"%s\"\n" "\"%s\"\n" "%s\n\n",a,b,#c);
#include "DefSAI.h"
#undef M_DEFINE_DSGVAR_SAVE_TYPE
getch();
#define M_DEFINE_DSGVAR_INIT_TYPE(a,b,c) printf("\"%s\"\n\"%s\"\n%s\n\n",a,b,#c);
#include "DefOTI.h"
#undef M_DEFINE_DSGVAR_INIT_TYPE
getch();
}
*/
/* To generate the multilanguage file very soon used by XB */
#define AI_MULTI_LANGUAGE_SCRIPT "AILANGUE.TXT"
#define AI_ALL_METAACTIONS "CreateAllMetaActions"
#define AI_ONE_METAACTION "CreateOneMetaAction"
#define AI_ALL_PROCEDURES "CreateAllProcedures"
#define AI_ONE_PROCEDURE "CreateOneProcedure"
#define AI_ALL_FUNCTIONS "CreateAllFunctions"
#define AI_ONE_FUNCTION "CreateOneFunction"
#define AI_ALL_CONDITIONS "CreateAllConditions"
#define AI_ONE_CONDITION "CreateOneCondition"
#define AI_ALL_KEYWORDS "CreateAllKeyWords"
#define AI_ONE_KEYWORD "CreateOneKeyWord"
#define AI_ALL_FIELDS "CreateAllFields"
#define AI_ONE_FIELD "CreateOneField"
#define AI_ALL_DSGVAR_TYPES "CreateAllDsgVarTypes"
#define AI_ONE_DSGVAR_TYPE "CreateOneDsgVarType"
#define AI_ALL_DSGVAR_INIT_TYPES "CreateAllDsgVarInitTypes"
#define AI_ONE_DSGVAR_INIT_TYPE "CreateOneDsgVarInitType"
#define AI_ALL_DSGVAR_SAVE_TYPES "CreateAllDsgVarSaveTypes"
#define AI_ONE_DSGVAR_SAVE_TYPE "CreateOneDsgVarSaveType"
#define AI_FRENCH "French"
#define AI_ENGLISH "English"
/* C'est pour virer Proc,Cond,Action etc...*/
char *fn_szConvertString(char *str)
{
char *ptr;
if ((ptr=strchr(str,'_'))!=NULL)
{
ptr++;
}
else
{
ptr=str;
}
return(ptr);
}
/* C'est pour Xavier qui veut que les noms des conditions <> <= >= etc soit les m<>mes en anglais et en francais !!!*/
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<63>s et les types des variables designers*/
/* C'est pour Xavier qui veut que les noms des types des variables commencent par une lettre !!!*/
char TempChar[200];
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 main()
{
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))
#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))
#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))
#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))
#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))
#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))
#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);
}
}