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; }
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; }
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; }