Création d'une fonction pour mesurer le temps d'un cycle

Les instructions dans la boucle principale ont simplement été mis dans une fonction.
On chargement les niveaux de manière plus directe

On ne passe plus par la structure Level, on ouvre le fichier et on remplit direct les champs de Game.
Avant on devait remplir une structure Level, puis remplir les champs de Game.
Ajout d'une structure de Bouton

Gère le survol et n'affiche qu'une couleur unie.
Pour l'instant pas utilisée.
Ajout d'un gestionnaire d'états fonctionnel et d'un menu basique

Il n'y a pour l'instant que 2 états, Menu et Jeu.
Celui-ci permet de lancer une partie et d'arrêter le programme.
Le jeu revient au Menu avec Echap ou automatiquement lorsque la partie est finie.
Retour du main.c, plus pratique pour trouver la fonction main...
Les sprites sont chargés et gardés en mémoire par le Manager, celui-ci les transmet à Game à chaque début de partie.
Le Manager sait quel état est actif et appelle les fonctions (Event, Logic, Draw) nécessaires au fonctionnement de l'état actif.
Il gère également les transitions d'états.
Modifs mineures sur Bouton

Séparation du test Point/Rectangle et de la mise à jour de l'état du bouton.
La mise à jour utilise 2 int au lieu d'un Point, appel plus simple.
Fonction de remplissage de la structure.
Ecran de choix du niveau et chargement de niveau par numéro

Un nouvel état est ajouté au manager, il se place entre le menu principal et le jeu.
Il permet de choisir entre 10 niveaux.
Le manager récupère le numéro du niveau choisi et l'envoie a gameInit.
Le chargement de niveau prend maintenant un int en paramètre et construit le bon chemin en fonction.
Bidouillage d'un segfault quand gameDraw est appellé immédiatement après l'initialisation et que player.sprite est null