+ return (ptimer->get_ticks() - ptimer->time);
+}
+
+int timer_fwrite(timer_type* ptimer, FILE* fi)
+{
+ unsigned int diff_ticks;
+ int tick_mode;
+ if(ptimer->time != 0)
+ diff_ticks = ptimer->get_ticks() - ptimer->time;
+ else
+ diff_ticks = 0;
+
+ fwrite(&ptimer->period,sizeof(unsigned int),1,fi);
+ fwrite(&diff_ticks,sizeof(unsigned int),1,fi);
+ if(ptimer->get_ticks == st_get_ticks)
+ tick_mode = YES;
+ else
+ tick_mode = NO;
+ fwrite(&tick_mode,sizeof(unsigned int),1,fi);
+}
+
+int timer_fread(timer_type* ptimer, FILE* fi)
+{
+ unsigned int diff_ticks;
+ int tick_mode;
+ fread(&ptimer->period,sizeof(unsigned int),1,fi);
+ fread(&diff_ticks,sizeof(unsigned int),1,fi);
+ fread(&tick_mode,sizeof(unsigned int),1,fi);
+ if(tick_mode == YES)
+ ptimer->get_ticks = st_get_ticks;
+ else
+ ptimer->get_ticks = SDL_GetTicks;
+ if(diff_ticks != 0)
+ ptimer->time = ptimer->get_ticks() - diff_ticks;
+ else
+ ptimer->time = 0;
+