41 lines
		
	
	
		
			962 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			962 B
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) 2021 Dominic Masters
 | 
						|
 * 
 | 
						|
 * This software is released under the MIT License.
 | 
						|
 * https://opensource.org/licenses/MIT
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#define EPOCH_FIXED_STEP 0.016f
 | 
						|
#define EPOCH_SMALLEST_STEP 0.001f
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  /**
 | 
						|
   * Current time (as a float of seconds since game start).
 | 
						|
   * 
 | 
						|
   * When time is initialized this will start at a fixed value of 2/60ths of a 
 | 
						|
   * second, regardless of what engine the game is running.
 | 
						|
   * 
 | 
						|
   * This is to avoid any divide by zero errors.
 | 
						|
   */
 | 
						|
  float current;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Last Time (as a float of seconds since the game start).
 | 
						|
   * 
 | 
						|
   * This value will start at 1/60th of a second regardless of engine the game
 | 
						|
   * is running on to avoid divide by zero errors.
 | 
						|
   */
 | 
						|
  float last;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Varying timestep that occured since the last frame. 
 | 
						|
   */
 | 
						|
  float delta;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Fixed timestep that is not affected by framerate but remains consistent.
 | 
						|
   */
 | 
						|
  float fixedDelta;
 | 
						|
} epoch_t; |