void TIMER_Save( void ) { int j; gentity_t *ent; ojk::SavedGameHelper saved_game( ::gi.saved_game); for ( j = 0, ent = &g_entities[0]; j < MAX_GENTITIES; j++, ent++ ) { int numTimers = TIMER_GetCount(j); if ( !ent->inuse && numTimers) { // Com_Printf( "WARNING: ent with timers not inuse\n" ); assert(numTimers); TIMER_Clear( j ); numTimers = 0; } //Write out the timer information saved_game.write_chunk<int32_t>( INT_ID('T', 'I', 'M', 'E'), numTimers); gtimer_t *p = g_timers[j]; assert ((numTimers && p) || (!numTimers && !p)); while(p) { const char *timerID = p->id.c_str(); const int length = strlen(timerID) + 1; const int time = p->time - level.time; //convert this back to delta so we can use SET after loading assert( length < 1024 );//This will cause problems when loading the timer if longer //Write out the string size and data saved_game.write_chunk<int32_t>( INT_ID('T', 'S', 'L', 'N'), length); saved_game.write_chunk( INT_ID('T', 'S', 'N', 'M'), timerID, length); //Write out the timer data saved_game.write_chunk<int32_t>( INT_ID('T', 'D', 'T', 'A'), time); p = p->next; } } }
void TIMER_Save( void ) { int j; gentity_t *ent; for ( j = 0, ent = &g_entities[0]; j < MAX_GENTITIES; j++, ent++ ) { unsigned char numTimers = TIMER_GetCount(j); if ( !ent->inuse && numTimers) { // Com_Printf( "WARNING: ent with timers not inuse\n" ); assert(numTimers); TIMER_Clear( j ); numTimers = 0; } //Write out the timer information gi.AppendToSaveGame(INT_ID('T','I','M','E'), (void *)&numTimers, sizeof(numTimers)); gtimer_t *p = g_timers[j]; assert ((numTimers && p) || (!numTimers && !p)); while(p) { const char *timerID = p->id.c_str(); const int length = strlen(timerID) + 1; const int time = p->time - level.time; //convert this back to delta so we can use SET after loading assert( length < 1024 );//This will cause problems when loading the timer if longer //Write out the id string gi.AppendToSaveGame(INT_ID('T','M','I','D'), (void *) timerID, length); //Write out the timer data gi.AppendToSaveGame(INT_ID('T','D','T','A'), (void *) &time, sizeof( time ) ); p = p->next; } } }