| Age | Commit message (Collapse) | Author | 
|---|
|  | - position corresponds to bottom left of block.
- makes it easy and predictable to design and place levels. | 
|  | - lt, rb -> lb, rt
- This makes a lot more sense. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | - Added ability to use spaces and tabs for formatting level files for
  better readability.
- Fixed camera follow | 
|  | * Added new gameplay elements:
    - invert gravity block
    - teleporter
* updated level_format:
    - added id for explicitly setting block id before hand
    - added link_id for teleporter block
* added method to get_entity_by_id
* updated level loader to ignore `\t` and ` ` for readably file formatting
* setting raw_position dynamically by using entity_z MAP
* simplified goal collision checking
* updated level elements drawing | 
|  |  | 
|  |  | 
|  | - no longer need to specify number of level elements up front | 
|  | - automatically load the next level once goal is reached | 
|  |  | 
|  |  | 
|  | - Player can move a small amount in the air
- this makes the movement feel natural | 
|  | - Can add comments in a level file
- Player movement slightly improved | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Main code path is disabled until I get everything working correctly.
Also added tags to gitignore | 
|  |  | 
|  | The camera now changes view after player moves beyond 80% of the screen
up or right AND beyond 20% of the screen left or bottom. | 
|  |  | 
|  |  | 
|  | This issue would sometimes occur when renderer was stack allocating
objects. It surprisingly did not occur when items are heap allocated.
I checked the stack locations and it seemed like values were looping
around or atleast overflowing | 
|  |  | 
|  | - Created a timer struct with helper functions to clean things up
- Removed some redundant and duplicate variables
- Fixed the issue where if a player presses horizontal movement key,
even though we are colliding, the player will still move once it is not
colliding, even though they are not pressing a key. | 
|  | This prevents movement being very fast on high refresh rate displays | 
|  | - Collisions are checked for each side, to let us know how to proceed
- Equations of motion seem to work fine, except that they don't play
  well with time_delta, and are framerate dependant. | 
|  |  |