void parsePlayerUpdateMessage( Client *inC, char *inMessageLine ) {
    SimpleVector<char*> *tokens = tokenizeString( inMessageLine );

    //printf( "\n\nParsing PU line: %s\n\n", inMessageLine );
    
    if( tokens->size() > 16 ) {
        int id = -1;
        sscanf( tokens->getElementDirect(0), "%d", &( id ) );
    
        if( inC->id == -1 ) {
            inC->id = id;
            }
        
        if( inC->id == id ) {
            // update pos
            
            if( inC->moving ) {
                //printf( "Client %d done moving\n", inC->i );
                }
            if( strcmp( tokens->getElementDirect(14), "X" ) == 0 ) {
                // dead
                inC->dead = true;
                printf( "Client %d died with PU message:  %s\n",
                        inC->i, inMessageLine );
                }
            else {
                sscanf( tokens->getElementDirect(14), "%d", &( inC->x ) );
                sscanf( tokens->getElementDirect(15), "%d", &( inC->y ) );
                inC->moving = false;
                }
            }
        }
    
    
    tokens->deallocateStringElements();
    delete tokens;
    }
Exemple #2
0
void initCategoryBankFinish() {
  
    freeFolderCache( cache );
    
    mapSize = maxID + 1;
    
    idMap = new CategoryRecord*[ mapSize ];
    
    for( int i=0; i<mapSize; i++ ) {
        idMap[i] = NULL;
        }


    reverseMapSize = maxObjectID + 1;
    
    reverseMap = new ReverseCategoryRecord*[reverseMapSize];
    
    for( int i=0; i<reverseMapSize; i++ ) {
        reverseMap[i] = NULL;
        }


    int numRecords = records.size();
    for( int i=0; i<numRecords; i++ ) {
        CategoryRecord *r = records.getElementDirect(i);
        
        idMap[ r->parentID ] = r;

        for( int j=0; j<r->objectIDSet.size(); j++ ) {
            int objID = r->objectIDSet.getElementDirect( j );
            
            ReverseCategoryRecord *rr = reverseMap[ objID ];
            
            if( rr == NULL ) {
                rr = new ReverseCategoryRecord;
                rr->childID = objID;
                
                reverseMap[ objID ] = rr;
                }
            
            rr->categoryIDSet.push_back( r->parentID );
            }
        
        }
    

    
    printf( "Loaded %d categories from categories folder\n", numRecords );
    }
Exemple #3
0
SoundUsage scanSoundUsage( char *inString ) {
    SimpleVector<int> idVector;
    SimpleVector<double> volVector;

    int numParts = 0;

    char **parts = split( inString, "#", &numParts );
    

    for( int i=0; i<numParts; i++ ) {
        int id = -1;
        double vol = 1.0;
        
        sscanf( parts[i], "%d:%lf", &id, &vol );
        
        if( id != -1 && vol >=0 && vol <= 1.0 ) {
            idVector.push_back( id );
            volVector.push_back( vol );
            }
        delete [] parts[i];
        }
    delete [] parts;

    
    if( idVector.size() > 0 ) {
        
        if( idVector.size() == 1 &&
            idVector.getElementDirect( 0 ) == -1 ) {
            return blankSoundUsage;
            }

        SoundUsage u = { idVector.size(), idVector.getElementArray(),
                         volVector.getElementArray() };
        return u;
        }
    else {
        return blankSoundUsage;
        }
    }
Exemple #4
0
void freeEmotion() {
    for( int i=0; i<emotions.size(); i++ ) {
        delete [] emotions.getElementDirect(i).triggerWord;
        }
    emotions.deleteAll();
    }