Пример #1
0
int EE_Evaluate( char* e, double* result, int* a )
{
   //if( setjmp( jb ) )
   //   return( ERROR );
   expression = e;
   ERANC = e;
   STRLWR( expression );
   *result = 0;
   Parse();
   if( ! *token )
      return ( E_EMPTY );
   *a = Level1( result );
   return( E_OK );
}
Пример #2
0
			//////////////////////////////////////
			// Save Levels Function
			//////////////////////////////////////
void SaveLevels(void)
{
	Level1();
	Level2();
	Level3();
	Level4();
	Level5();
	Level6();
	Level7();
	Level8();

//	LevelLast();

	FILE *fp;
	char S[MAXARRAY] = GAMEDIR;
	strcat(S, LEVELSFILE);
	fp = fopen(S, "w");
for(int i = 0; i < CL; i++)
	{
	error = fwrite(&(level[i]->midi),				sizeof(MIDIFILE),	1, fp);
	if(error == 1)
		error = fwrite(&(level[i]->waveNum),	sizeof(UINT),			1, fp);
	else return;
	if(error == 1)
		error = fwrite(&(level[i]->bitmapNum),sizeof(UINT),			1, fp);
	else return;
	if(error == 1)
		error = fwrite(&(level[i]->spriteNum),sizeof(UINT),			1, fp);
	else return;
	if(error == 1)
		error = fwrite(&(level[i]->zoneNum),	sizeof(UINT),			1, fp);
	else return;
	if(error == 1)
		error = fwrite(&(level[i]->lWaveA),		sizeof(UINT),			level[i]->waveNum, fp);
	else return;
	if(error == level[i]->waveNum)
		error = fwrite(&(level[i]->lBitmapA),	sizeof(BITMAPARRAY),	level[i]->bitmapNum, fp);
	else return;
	if(error == level[i]->bitmapNum)
		error = fwrite(&(level[i]->lSpriteA),	sizeof(SPRITEARRAY),	level[i]->spriteNum, fp);
	else return;
	if(error == level[i]->spriteNum)
		error = fwrite(&(level[i]->lZoneA),		sizeof(ZONEARRAY),		level[i]->zoneNum, fp);
	else return;
	}
	fclose(fp);
}
Пример #3
0
int Evaluate( CMCPforNTDoc* pDoc,char* e, double* result, int* a, USHORT ind )
{
   EVALUATENEXT = FALSE;
   double inde = ind;
   SetValue("i",&inde);
   pDocument = pDoc;
   index = ind;
   if( setjmp( jb ) ) 
	   return( ERRORNUM );
   expression = (char*)e;
   ERANC = e;
   _strlwr(expression );
   *result = 0;
   Parse();
   if( ! *token ) ERR( E_EMPTY );
   *a = Level1( result );
   return( E_OK );
}
Пример #4
0
static void Level6( double* r )
{
   int  i;
   int  n;
   double a[3];

   if( *token == '(' )
   {
      Parse();
      if( *token == ')' )
         ERR( E_NOARG );
      Level1( r );
      if( *token != ')' )
         ERR( E_UNBALAN );
      Parse();
   }
   else
   {
      if( type == NUM )
      {
         *r = (double) atof( (char*)token );
         Parse();
      }
      else if( type == VAR )
      {
         if( *expression == '(' )
         {
            for( i = 0; Funcs[i].args; i++ )
               if( ! strcmp((char*) token, Funcs[i].name ) )
               {
                  Parse();
                  n = 0;
                  do
                  {
                     Parse();
                     if( *token == ')' || *token == ',' )
                        ERR( E_NOARG );
                     a[n] = 0;
                     Level1( &a[n] );
                     n++;
                  } while( n < 4 && *token == ',' );
                  Parse();
                  if( n != Funcs[i].args )
                  {
                     strcpy((char*) token, Funcs[i].name );
                     ERR( E_NUMARGS );
                  }
                  *r = Funcs[i].func( a[0], a[1], a[2]);
                  return;
               }
               if( !Funcs[i].args )
                  ERR( E_BADFUNC );
            }
            else if( ! GetValue((char*) token, r ) )
               ERR( E_UNKNOWN );
         Parse();
      }
      else
         ERR( E_SYNTAX );
   }
}
Пример #5
0
static int Level6( double* r )
{
   int  i;
   int  n;
   double a[3];

   if( *token == '(' )
   {
      Parse();
      if( *token == ')' )
         return( E_NOARG );
      Level1( r );
      if( *token != ')' )
         return( E_UNBALAN );
      Parse();
   }
   else
   {
      if( type == NUM )
      {
         *r = (double) atof( token );
         Parse();
      }
      else if( type == VAR )
      {
         if( *expression == '(' )
         {
            for( i = 0; *Funcs[i].name; i++ )
               if( ! strcmp( token, Funcs[i].name ) )
               {
                  Parse();
                  n = 0;
                  do
                  {
                     Parse();
                     if( *token == ')' || *token == ',' )
                        return( E_NOARG );
                     a[n] = 0;
                     Level1( &a[n] );
                     n++;
                  } while( n < 4 && *token == ',' );
                  Parse();
                  if( n != Funcs[i].args )
                  {
                     strcpy( token, Funcs[i].name );
                     return( E_NUMARGS );
                  }
                  //*r = Funcs[i].func( a[0], a[1], a[2] );
                  *r = Funcs[i].func( a[0] );
                  return E_OK;
               }
               if( ! *Funcs[i].name )
                  return( E_BADFUNC );
            }
            else if( ! GetValue( token, r ) )
               return( E_UNKNOWN );
         Parse();
      }
      else
         return( E_SYNTAX );
   }
   return E_OK;
}