Example #1
0
ping *LoadAndFixAnomalyPing(void)
{
    SaveChunk *chunk;
    ping *newping;
    sdword size;

    chunk = LoadNextChunk();
    VerifyChunkNoSize(chunk,VARIABLE_STRUCTURE|SAVE_PING);

    size = sizeofping(((ping *)chunkContents(chunk)));

    dbgAssert(size == chunk->contentsSize);

    newping = memAlloc(size,"Ping!",0);
    memcpy(newping,chunkContents(chunk),size);

    memFree(chunk);

    newping->owner = SpaceObjRegistryGetObj((sdword)newping->owner);
    newping->userID = (sdword)SpaceObjRegistryGetObj((sdword)newping->userID);
    newping->evaluate = pingAnomalyPingTimeout;

    if (newping->userDataSize > 0)
    {
        SelectAnyCommand *tempsel = (SelectAnyCommand *)LoadSelectionAndFix();
        memcpy((newping + 1),tempsel,sizeofSelectCommand(tempsel->numTargets));
        memFree(tempsel);
    }

    return newping;
}
Example #2
0
void SaveCloakStruct(CloakStruct *cloakStruct)
{
    SaveChunk *chunk;
    CloakStruct *savecontents;

    chunk = CreateChunk(BASIC_STRUCTURE,sizeof(CloakStruct),cloakStruct);
    savecontents = (CloakStruct *)chunkContents(chunk);

    savecontents->spaceobj = (SpaceObj *)SpaceObjRegistryGetID(savecontents->spaceobj);

    SaveThisChunk(chunk);
    memFree(chunk);
}
void SaveDefenseStruct(DefenseStruct *defenseStruct)
{
    SaveChunk *chunk;
    DefenseStruct *savecontents;

    chunk = CreateChunk(BASIC_STRUCTURE,sizeof(DefenseStruct),defenseStruct);
    savecontents = (DefenseStruct *)chunkContents(chunk);

    savecontents->bullet = (Bullet *) SpaceObjRegistryGetID((SpaceObj *)savecontents->bullet);
    savecontents->laser = (Bullet *) SpaceObjRegistryGetID((SpaceObj *)savecontents->laser);

    SaveThisChunk(chunk);
    memFree(chunk);
}
DefenseStruct *LoadDefenseStruct(void)
{
    SaveChunk *chunk;
    DefenseStruct *defenseStruct;

    chunk = LoadNextChunk();
    VerifyChunk(chunk,BASIC_STRUCTURE,sizeof(DefenseStruct));

    defenseStruct = memAlloc(sizeof(DefenseStruct),"DefenseStruct",0);
    memcpy(defenseStruct,chunkContents(chunk),sizeof(DefenseStruct));

    memFree(chunk);

    return defenseStruct;
}
Example #5
0
CloakStruct *LoadCloakStruct(void)
{
    SaveChunk *chunk;
    CloakStruct *cloakStruct;

    chunk = LoadNextChunk();
    VerifyChunk(chunk,BASIC_STRUCTURE,sizeof(CloakStruct));

    cloakStruct = memAlloc(sizeof(CloakStruct),"CloakStruct",0);
    memcpy(cloakStruct,chunkContents(chunk),sizeof(CloakStruct));

    memFree(chunk);

    return cloakStruct;
}
Example #6
0
void SaveAnomalyPing(ping *tping)
{
    SaveChunk *chunk;
    sdword size = sizeofping(tping);
    ping *savecontents;

    chunk = CreateChunk(VARIABLE_STRUCTURE|SAVE_PING,size,tping);
    savecontents = (ping *)chunkContents(chunk);

    savecontents->owner = (SpaceObj *)SpaceObjRegistryGetID(tping->owner);
    savecontents->userID = SpaceObjRegistryGetID((SpaceObj *)tping->userID);

    SaveThisChunk(chunk);
    memFree(chunk);

    if (tping->userDataSize > 0)
    {
        SaveSelection((SpaceObjSelection *) (tping + 1));
    }
}