#+title: Engines evolutions Fichier de description rapide des `engines` Utilisé par `make_engines.py` pour générer toutes les versions des engines. * Engines fonctionnels Ces engines devraient tous fonctionner. Ils ont tous des tests unitaires et certains sont utilisés dans des niveaux. ** SIMPLE_MAP - Note: engine de base donc jamais de ifdef - carte simple sans layer en tableau 2D d'entités (char) linéarisées - les entités sont placées "à la main" - déplacement simple en supprimant l'ancien caractère et en le plaçant a côté - le joueur a deux coordonnees player_x player_y - on a 4 moves pour les entites mais aussi pour le joueur ** LEVEL_END - ajout des level_success level_failed et game_instance ** INPUT_COMMAND - lecture d'input et mouvement sous forme de commande sans arguments - déplacement en rentrant sur stdin: LEFT RIGHT UP DOWN - Note: le deplacement avec les fleches vient de Agdbentures qui écrit sur le stdin de l'inférieur ** LEVERS - Note: ajout mineur : deux lignes - ajout des defines ACTIVATED et DEACTIVATED pour les leviers XX CONFIG_FILE - Note: disabled, ne vois pas l'intérêt de cette version. - ajout d'un fichier de config avec la taille de la map la position du joueur pour init_game ** READ_MAP_STR - lire la map dans une chaine ** COMMAND_ARGS - arguments pour les commandes en input - variantes UP N, DOWN N, des deplacements ** MAP_STACK - stack de map pour changer de map ** ENTITY_STRUCT - les entites deviennent des structures - le joueur devient une entite - la map devient un tableau 2D ** INVENTORY_ARRAY - inventaire array - structure game ** CUSTOM_ENTITY - ajout d'un fichier de config pour declarer des entites ** ENTITY_PROPERTIES - propriete des objets genre pushable, activable, blocking - ajout du champ dans le fichier de config ** MAP_ENTITY_STACKING - on empile les entites dans des listes chainees sur les maps ** MAP_GRAPH - map comme graph ** EVENTS - events - interraction avec les objets dans le moteur et pas dans le niveau ** EVENT_ARGS - void * pour pointeur de fonction - void * pour les arguments aussi * Engines à travailler/retravailler Ces engines sont générés mais non testés complètement ou à revoir. ** READ_MAP_TMX - lire la carte dans un tmx