Ejemplo n.º 1
0
bool CTerrainModelCoder::_CElementDeCode( const DeCodeParams& Params )
{
	CDataChunk tempChunk;
	uint16		ver = 0;
	bool		isDeCode = false;

	//SetDeCodeVersion(ver);
	tempChunk.SetVersion(ver);
	isDeCode = DeCode(tempChunk,Params.m_pNode);	
	return isDeCode;
}
Ejemplo n.º 2
0
bool CSceneAmpCoder::SceneDeCode( CDataScene* pSceneManager, CPkgFile& File )
{
	uint32 nMagicID,nVersion;
	bool isDeCode = false;
	File.Read(&nMagicID, sizeof(int32));
	File.Read(&nVersion, sizeof(int32));
	
	if( nMagicID == 'PAMA' )
	{
		CDataChunk TmpChunk((char*)&File, File.Size() - File.Tell());
		((CSceneManagerClient*)pSceneManager)->m_nVersion = nVersion;		
		TmpChunk.SetVersion(nVersion);
		isDeCode = DeCode(TmpChunk,pSceneManager);
	}
	return isDeCode;
}
Ejemplo n.º 3
0
PUBLIC swString *Make_swString(char *string)
{  
   int i=0, j=0, k=0;
   int tp, len, l, length;
   float w;
   swString  *S;

   length = strlen(string);

   for(i=0; i<length; i++) {
      if( (string[i]=='(') || (string[i]==')') ) j++;
      if(string[i]=='.') j+=2;
   }
  
   len = j;  

   S= (swString *) space(sizeof(swString)*(len+1));
   S[0].sign = j; /* number of entries */
   S[0].weight= 0.0;
   S[0].type=     0;

   i=0;
   j=1;
   while(i<length){
      switch(string[i]){
       case '(' :
          S[j].sign = 1;
          l=1;
          k=i;
          while (l>0) {
             k++;
             if(string[k] == '(' ) l++;
             if(string[k] == ')' ) l--;
          }
          DeCode(string,k,&tp,&w);
          S[j].type   = tp;
          S[j].weight = w/2.0; 
	  j++;
          break;
       case ')' :
          k=i;
          S[j].sign = -1;
          DeCode(string,k,&tp,&w);
          S[j].type = tp;
          S[j].weight = w/2.0;
	  j++;
          break;
       case '.' :
          S[j].sign = 1;
          S[j].type = 1;
          S[j].weight = 0.5;
          j++;
          S[j].sign = -1;
          S[j].type =  1;
          S[j].weight = 0.5;
	  j++;
          break;
      }         
      i++;
   }
   return S;
}