inline void PuzzleObject::Archive( Archiver &arc ) { Entity::Archive( arc ); arc.ArchiveString( &_itemToUse ); arc.ArchiveString( &_itemUsedThread ); arc.ArchiveString( &_failedThread ); arc.ArchiveString( &_solvedThread ); arc.ArchiveString( &_canceledThread ); ArchiveEnum( _puzzleState, PuzzleState ); ArchiveEnum( _saveState, PuzzleState ); arc.ArchiveFloat( &_openDistance ); arc.ArchiveBool( &_timed ); arc.ArchiveFloat( &_timeToUse ); arc.ArchiveFloat( &_lastTimeUsed ); arc.ArchiveFloat( &_usedTime ); arc.ArchiveBool( &_hudOn ); arc.ArchiveFloat( &_nextNeedToUseTime ); arc.ArchiveString( &_hudName ); arc.ArchiveInteger( &_minSkill ); }
inline void type_t::Archive( Archiver &arc ) { int i; Class::Archive( arc ); ArchiveEnum( type, etype_t ); if ( arc.Loading() ) { bool onList; arc.ArchiveBool( &onList ); if ( !onList ) { def = new def_t; arc.ArchiveObject( ( Class * )def ); } else { arc.ArchiveObjectPointer( ( Class ** )&def ); } } else { arc.ArchiveBool( &def->_onDefList ); if ( !def->_onDefList ) { arc.ArchiveObject( ( Class * )def ); } else { arc.ArchiveObjectPointer( ( Class ** )&def ); } } /* if ( arc.Loading() ) def = new def_t; arc.ArchiveObject( ( Class * )def ); */ arc.ArchiveObjectPointer( ( Class ** )&def ); arc.ArchiveObjectPointer( ( Class ** )&aux_type ); arc.ArchiveInteger( &num_parms ); arc.ArchiveInteger( &min_parms ); for ( i = 0; i < num_parms; i++ ) arc.ArchiveObjectPointer( ( Class ** )&parm_types[i] ); }
void Level::Archive( Archiver &arc ) { int num; int i; Class::Archive( arc ); if ( arc.Saving() ) { SafePtr<Earthquake> ent; num = _earthquakes.NumObjects(); arc.ArchiveInteger( &num ); for ( i = 1 ; i <= num ; i++ ) { ent = _earthquakes.ObjectAt( i ); arc.ArchiveSafePointer( &ent ); } } else { SafePtr<Earthquake> ent; SafePtr<Earthquake> *entityPointer; arc.ArchiveInteger( &num ); _earthquakes.ClearObjectList(); _earthquakes.Resize( num ); for ( i = 1 ; i <= num ; i++ ) { _earthquakes.AddObject( ent ); entityPointer = &_earthquakes.ObjectAt( i ); arc.ArchiveSafePointer( entityPointer ); } } arc.ArchiveInteger( &_totalEnemiesSpawned ); // Don't archive these //const char *current_map; //const char *current_entities; //int spawn_entnum; arc.ArchiveInteger( ¤tInstanceNumber ); //int spawnflags; arc.ArchiveInteger( &framenum ); arc.ArchiveInteger( &inttime ); arc.ArchiveFloat( &time ); arc.ArchiveFloat( &timeInLevel ); arc.ArchiveFloat( &frametime ); arc.ArchiveFloat( &fixedframetime ); arc.ArchiveInteger( &startTime ); arc.ArchiveString( &level_name ); arc.ArchiveString( &mapname ); arc.ArchiveString( &spawnpoint ); arc.ArchiveString( &nextmap ); arc.ArchiveBoolean( &restart ); arc.ArchiveBoolean( &started ); arc.ArchiveBoolean( &playerfrozen ); arc.ArchiveFloat( &intermissiontime ); arc.ArchiveInteger( &exitintermission ); arc.ArchiveFloat( &intermission_advancetime ); arc.ArchiveBool( &_showIntermission ); arc.ArchiveBool( &_saveOrientation ); // Don't archive //gentity_s *next_edict; arc.ArchiveInteger( &total_secrets ); arc.ArchiveInteger( &found_secrets ); arc.ArchiveInteger( &total_specialItems ); arc.ArchiveInteger( &found_specialItems ); arc.ArchiveString( &game_script ); // Don't archive //trace_t impact_trace; arc.ArchiveBoolean( &cinematic ); arc.ArchiveBoolean( &ai_on ); arc.ArchiveBoolean( &mission_failed ); arc.ArchiveBoolean( &died_already ); arc.ArchiveBoolean( &near_exit ); arc.ArchiveVector( &water_color ); arc.ArchiveFloat( &water_alpha ); arc.ArchiveVector( &slime_color ); arc.ArchiveFloat( &slime_alpha ); arc.ArchiveVector( &lava_color ); arc.ArchiveFloat( &lava_alpha ); arc.ArchiveString( ¤t_soundtrack ); arc.ArchiveString( &saved_soundtrack ); arc.ArchiveObjectPointer( ( Class ** )&consoleThread ); arc.ArchiveVector( &m_fade_color ); arc.ArchiveFloat( &m_fade_alpha ); arc.ArchiveFloat( &m_fade_time ); arc.ArchiveFloat( & m_fade_time_start ); ArchiveEnum( m_fade_type, fadetype_t ); ArchiveEnum( m_fade_style, fadestyle_t ); arc.ArchiveFloat( &m_letterbox_fraction ); arc.ArchiveFloat( &m_letterbox_time ); arc.ArchiveFloat( &m_letterbox_time_start ); ArchiveEnum( m_letterbox_dir, letterboxdir_t ); arc.ArchiveBool( &_cleanup ); arc.ArchiveString( &_playerDeathThread ); arc.ArchiveObjectPointer( ( Class ** )&hNodeController ); // Don't archive, will already be setup from camera code // Container<Camera *> automatic_cameras; arc.ArchiveVector( & m_intermission_origin ); arc.ArchiveVector( & m_intermission_angle ); if ( arc.Loading() ) { str temp_soundtrack; // Change the sound track to the one just loaded temp_soundtrack = saved_soundtrack; ChangeSoundtrack( current_soundtrack.c_str() ); saved_soundtrack = temp_soundtrack; // not archived since we can't save mid-frame next_edict = NULL; // not archived since we can't save mid-frame memset( &impact_trace, 0, sizeof( impact_trace ) ); loadLevelStrings(); } }