U.M.A.X. historique


Version 0.44 Anniversaire : 05/01/05


Version en l'honneur du deuxième anniversaire de U.M.A.X. !

Mises au point par rapport à la version précédente. Quasiment toutes les autres modifications ont pour but de proposer ce programme sur sourceforge : en gros, j'ai relu le code source intégralement, avec des yeux neufs, en ajoutant beaucoup de commentaires, traduisant les noms en anglais, vérifiant la coherence, factorisant le code, etc.
Bref, il faut considérer que le code de cette version part sur de toutes nouvelles bases !
Le problème c'est que je n'ai pas fini, il me reste a relire les répertoires Unit et GDIObject, soit la moitié encore (ToT) Ce n'est pas tres drôle et je n'ai pas eu beaucoup de temps libre au Japon, mais j'espère reprendre un bon rythme a mon retour en France, en avril ^^

* Nouveautés

- Progression en vue de U.G.D.I. 0.95, des petits détails réglés par-ci par-là.
- La MiniCarte est construite dans la mémoire avant d'être mise dans une texture, plus rapide et lissé.
- Possibilité pour les batiments de construire en boucle et pour les unites construites d'aller directement a un point de rendez-vous, symbolise par un petit drapeau.
- Raccourci (Ctrl+Enter) pour passer au tour suivant.
- Compilation pour Linux sous l'inspiration de Zzrough (et aussi parce que j'ai pas eu acces a un Windows pendant 1 an...).
- Nouvel algorithme pour le path-finding, une version personnalisée de A*. Beaucoup plus rapide, beaucoup plus réaliste (plus long d'aller en diagonale, on ne coupe plus les coins des bâtiments, le terrain a une influence sur la vitesse, etc), et surtout avec pas mal d'extensions qui promettent beaucoup pour l'IA que je suis en train de commencer.
- Quelques décors en plus.

* Améliorations

- Nouveau graphisme pour la route, plus sombre.
- Nette acceleration pour les ordis qui tournaient a quelques fps en rajoutant un glFinish avant chaque swap de buffers, en accelerant la Minicarte, etc.
- Factorise les classes FightingVehicule et FightingBuilding dans FightingUnit grace aux dynamic_cast.
- Factorise avec la classe Factory.
- Simplification de GDIObject.h en regroupant les methodes (addHandlers, execute, empty).

* Corrections

- Maintenant l'IA va vraiment vous tirer dessus si vous approchez, pas une fois seulement.
- Quelques autres bugs corriges dans au passage, dont certains que je venais de rajouter. Enfin normalement ca devrait quand meme etre plus stable, j'ai fait quelques longues parties sans rencontrer de probleme.

Version 0.43 Anniversaire : 05/01/04


Version en l'honneur du deuxième anniversaire de U.M.A.X. !

* Nouveautés

- Toutes les nouveautés de U.G.D.I. 0.90 (et il y en a !).
- Intégration de l'interface de jeu dessinée par TATMF !
- La destruction d'un Centre de Commandement élimine l'équipe, et le jeu se finit lorsqu'il ne reste plus qu'une équipe en jeu.
- Chaque équipe garde à jour un certains nombres de statistiques, ce qui permet d'afficher une fenêtre de fin de jeu avec plein d'infos sur la partie et de classer les équipes par score.
- Le nom des équipes, leur statistiques sont stockées dans EquipeInfos (ce qui permet entre autres d'ouvrir la FenetreFinPartie en ayant déjà libéré le jeu).
- Utilisation d'une nouvelle police (OCR A Extended), pour les parties droites de l'interface et les tooltiptexts.
- La MiniCarte affiche le terrain avec exactement les bonnes couleurs, pas toujours la même couleur pour la terre (le calcul de la moyenne de chaque élément de décor se fait au moment du chargement de la texture).
- Nouvelle icône laide mais plus dans l'esprit U.M.A.X.
- Le code source fait maintenant 707 Ko pour 172 fichiers.

* Améliorations

- Le défilement commence dès qu'on appuie sur une touche.
- Possibilité d'afficher le FPS aussi en mode RELEASE.

* Corrections

- Correction de l'affichage des icônes dans la FenetreTransfert.
- DistanceA n'est plus virtual et prend directement en compte l'encombrement des objets, pour éviter les problèmes de vision lors de la destruction de bâtiments 2x2.
- Plus de plantage lorsqu'on détruit un connecteur ou un véhicules (bugs rajoutés à la version précédente je pense).
- Plus de plantage lorsqu'on clique sur la flèche "unité suivante" alors qu'on avait sélectionné un bâtiment.
- Les Animations sont maintenant correctement effacées.
- Utilisation de MemoryManager pour détecter les fuites de mémoire : quasiment uniquement des Liste.vide() au lieu de détruire les objets qu'elle contient...
- Correction d'un problème lors d'un appui sur "Tour suivant" alors que l'ordi jouait.
- Correction de plusieurs bugs lors de la destruction d'un véhicule en mouvement.

Version 0.41 : 15/10/03


Je me suis concentré dans cette version dans des nouveautés sur l'interface et les fonctionnalités agréables au cours du jeu. Pas mal de boutons et de menus ont été rajoutés, absolument moches et temporaires, mais j'attends toujours l'interface de TATMF :)

* Nouveautés

- Nouveau menu pour le cours du jeu, l'ouvrir avec la touche F10 ou le bouton à gauche. La touche ESC sert maintenant à revenir au menu parent de l'unité ou annuler une action en cours.
- Les constructions terminées clignotent en vert.
- Les unités de combat tirent automatiquement sur l'ennemi quand elles sont en faction.
- Tous les éléments des menus ont un raccourci, qui correspond à la lettre dessinée en noir dans l'étiquette.
- Rajout d'une fenêtre de confirmation au moment de quitter le jeu ou la partie (pas en mode DEBUG).
- Possibilité de mettre une durée maximale pour chaque tour, elle est aussi affichée en haut pendant la partie (en rouge pendant les 5 dernières secondes).
- Ajout de boutons pour centrer sur l'unité en cours ou naviguer parmi les unités qui ne font rien (les unités de combat en faction sont considérées faisant qqchose).
- Le code source fait maintenant 447 Ko pour 162 fichiers.

* Améliorations

- Nouvel IA pour le sondage automatique, la précédente était vraiment trop un boulet ; mis à part quelques blocages du sondeur, celle-ci me paraît pas mal. Les ordis mettent leur sondeur en sondage auto, ce qui explique pourquoi leur tour dure plusieurs secondes.
- Pour ceux qui ont des saccades : en mode debug, la touche F9 permet de désactiver l'affichage de la MiniCarte. Mais bon, je vais lâcher OpenGL pour utiliser une librairie optimisée 2D, il n'y aura bientôt plus de problème de lenteur j'espère :)
- Ajout des listes globales NomVehicule et NomBatiment, utilisées pour centraliser les noms au lieu de prendre ceux des étiquettes du menu.
- La propriété EnConstruction des différents constructeurs est maintenant un EBatiment ou EVehicule au lieu de ECaseMenu.

* Corrections

- Supprimé un bug qui aurait pu survenir en cas de destruction d'un véhicule en mouvement.
- Si un véhicule peut tirer plusieurs fois et que la première n'a pas suffit à détruire l'unité visée, retire.
- La procédure globale Reflection a été remplacée par la création d'une classe EquipeIA et sa méthode reflection.
- Corrigé quelques erreurs dans la décorrelation EquipeAffichage et EquipeEnCours, ainsi que dans les différents modes de jeu, tour par tour ou simultanés. Rajouté quelques messages concernant les tours (genre "en attente que les autres joueurs finissent leurs tours", etc).

Version 0.40 : 27/09/03


Ce numéro de version ne correspond pas à ce qui était prévu dans mon plan de développement, mais l'intégration d'U.G.D.I. 0.85 ainsi que le retravail d'une bonne partie de la structure de U.M.A.X. en font une mise à jour majeure de ce programme, au moins du point de vue de la programmation (les utilisateurs ne devraient pas voir beaucoup de différences mis à part le menu en plus). La programmation de la suite devrait en être considérablement simplifiée !

* Nouveautés

- Tout d'abord, toutes les nouveautés du moteur GDI sont à aller voir dans l'historique de U.G.D.I., vu que désormais U.M.A.X. sera basé sur ce 'framework'.
- Nouvelle fenêtre au moment où l'on lance une partie, pour choisir le type des joueurs (ordi ou humain). Tout est prêt pour l'IA avec la procédure Reflection, pour l'instant vide.
- Une petite ombre sous les éléments du menu et du texte sur ZoneTerrain, ça fait plus mignon :)

* Améliorations

- J'ai profité du recul de 5 mois sans toucher à ce source et de mes découvertes en programmation pour remanier pas mal d'aspects du code source (par exemple, fréquente utilisation des dynamic_cast maintenant, des variables globales sont déplacées dans des classes, plus de paramètres par défaut).
- Toutes les actions d'un joueur passent maintenant par ActionJoueur, qui n'utilise pas de pointeurs. Avantage : n'importe quoi peut jouer une équipe, que ce soit un joueur réel, une IA, un autre joueur sur un réseau etc.
- Retravaillé EquipeAffichage et EquipeEnCours pour fonctionner dans les différents types de jeu, tour par tour ou tour simultanés, voire temps réel. En accord avec la procédure ActionJoueur, plusieurs procédures comme les informations sur la sélection prennent un paramètre de plus pour savoir de quelle équipe on parle. A propos, la SelectionEnCours disparaît, on n'utilise plus que la sélection des équipes.
- Chaque unité prend en paramètre son équipe pour pouvoir supprimer les EquipeEnCours : au passage, Equipe.ajouteVehicule et ajouteBatiment sont maintenant appelés directement dans le constructeur de l'unité.

* Corrections

- Le brouillard de guerre refonctionne et est corrigé.
- Correction du cercle de vision des GrosConstructeur en construction.
- Correction de la vue après la destruction d'un bâtiment.
- Correction d'un problème stupide avec des char* qui faisait que l'on ne pouvait plus afficher plusieurs messages sur ZoneTerrain à la fois.
- Encore une fois, plein de petits détails.

Version 0.36 : 02/04/03


Cette version de U.M.A.X. n'a jamais vu le jour : en effet, j'ai extrait toute la partie interface GDI pour la retravailler dans un programme indépendant : U.G.D.I. D'où le long décalage avec la version suivante où le nouveau moteur GDI a été intégré...

* Nouveautés

- Nouveaux véhicules : le LanceMissile, le Ravitaillement, Scanner et le Bulldozer. Nouveau bâtiment : la TourelleMissile.

* Améliorations

- Séparation du fichier AffichageTexte.cpp pour en faire une entité indépendante et de Callback.cpp.
- La ZoneTerrain n'affiche plus deux messages à la suite s'ils sont identiques, et ajouteMessage peut prendre des arguments 'à la printf'.
- Les différents reliefs sont maintenant placés au hasard (nouvelle fonction GetReliefInfos).

* Corrections

- Correction des curseurs lors du retour de la FenetreTransfert.
- Correction de la suppresion des unités toute buggée après mon rajout des Iterator dans la version précédente.
- On pouvait lancer une construction sur un emplacement invalide avec le GrosConstructeur si le curseur était mal positionné.
- Retour de la touche CONTROL avec la fonction GetKeyState.
- Déplacé toutes les variables globales dans leurs fichiers logiques.

Version 0.35b : 16/03/03


* Nouveautés

- Les véhicules utilisent leurs munitions quand ils tirent.
- Les bâtiments changent de graphismes quand ils sont abîmés (CentreCommandement et UsineLourde pour l'instant).
- Possibilité de compresser les textures dans la mémoire vidéo : division de la mémoire occupée par 4, mais la qualité en pâtit ; à la rigueur, j'utiliserai ça pour les ordis limites.
- Plein de nouveaux graphismes de décors en plus.

* Améliorations

- Augmentation de la portabilité : <windows.h> n'est plus appelé (exception : UMAX.cpp pour les MessageBox de démarrage, et ManiementRegistre évidemment) ; en plus, ça accélère nettement la compilation ! Redéfinition personnalisée de plusieurs types (dont RECT qui devient pour l'occasion SRect).
- Création de la classe Iterator qui centralise la gestion de mes innombrables listes doublement chaînées.
- Modification de l'algorithme du déplacement simultané de plusieurs véhicules : maintenant, je les lance tous en même temps, ils se mettent en attente quand leur case suivante est occupée par un véhicule en mouvement. Enfin, ils avancent chacun avec une vitesse différente, qui dépend le leur MouvementMax (un pas vers le temps réel...) Au passage, le bug qui donnait le nom "instable" aux versions précédentes disparaît.

* Corrections

- Correction de l'alignement des connecteurs sur UsineLegere.
- Plus possible d'ouvrir une fenêtre de transfert avec un véhicule qui n'est pas un constructeur.

Version 0.35a instable : 11/02/03


* Nouveautés

- Portage sous GLUT ! A priori, le code source est maintenant quasiment directement adaptable à n'importe quelle plateforme, j'ai traqué tout ce qui pouvait dépendre de Windows.
- Chaque événement utilisateur est géré par une procédure particulière de la fenêtre en cours, grâce aux fonctions callback de GLUT, le tout avec encore une fois le maximum de virtualisation. Enorme diminution du source des Fenetres.
- Tous les événéments du Menu sont maintenant directement gérés par l'Unité sélectionnée, vive l'encapsulation et ça soulage FenetreJeu qui n'avait rien à faire là-dedans.
- Les polices sont maintenant dessinées à partir de textures, beaucoup plus rapide que les fonctions wgl (encore un problème de vitesse de transfert entre RAM et mémoire graphique) et beaucoup plus souple. Pour cela, je lis un fichier TGA où tous les caractères sont écrit les uns à la suite des autres. Au moins, je n'ai plus de prolème de largeur de caractères là vu que c'est moi qui la fixe.
- Les PetitConstructeur peuvent maintenant construire automatiquement suivant un axe.

* Améliorations

-  Les derniers graphismes bâclés ont été remplacés.
- finTour, tourSuivant, ajouteBoutons et getCaracteristiques sont maintenant définis le plus possibles en virtual pour limiter la redondance du source. Pareil pour la nouvelle procédure clicMenu. Le source diminue de 15 Ko ! Pareil pour les destructeurs qui sont maintenant définis en virtual , ce qui permet de supprimer la procédure EffaceObjet.
- On peut lancer une construction dans un Bâtiment même s'il n'y a pas assez de ressources, la construction sera de toute manière suspendue tant qu'il faudra plus de minerai.
- Pas obligé de garder le curseur sur Remplissage pour le modifier.
- Utilisation d'une librairie de débogage pour détecter les moindres erreurs dans la gestion de la mémoire. Il n'y en avait pas d'ailleurs, quelques erreurs de rigueur dans la syntaxe à tout casser.
- Les messages affichés dans DebutTour ne sont pas effacés avant qu'on puisse les voir.
- Remplacé SCaseMenu.cout par Menu.getCout().
- Un message différent pour les icônes du Menu quand elles sont sélectionnées.

* Corrections

- J'avais recopié le source pour l'Habitation, qui fonctionnait comme une StationMiniere.
- On ne pouvait pas annuler les constructions dans l'UsineLegere.
- Corrigé un plantage qui pouvait survenir lors de la destruction d'un bâtiment, dû au chevauchement entre la sélection de l'équipe en cours et la sélection en cours.
- Corrigé un bug où un véhicule essayait d'attaquer une unité déjà détruite et avançait vers le coin haut-left du terrain.

Version 0.34 instable : 09/12/02

* Nouveautés

- La sélection multiple sert enfin à quelque chose : par exemple les unités sélectionnées se déplacent ou attaquent maintenant en coeur et intelligemment. Je n'aurais pas imaginé que j'aurais autant de mal à l'implémenter, ça a été affreux bien que ça ait l'air stupide... Le fichier Selection remanié centralise maintenant une bonne partie de la gestion des unités. Attention, le déplacement multiple est toujours instable, ne vous en servez pas trop avant la prochaine maj !
- Possibilité de mettre en faction les unités, ce qui servira beaucoup par la suite.
- Possibilité de cliquer sur la Minicarte pour effectuer une action (par exemple pour envoyer son scout explorer de l'autre côté de la carte).
- Nouveaux bâtiments avec beaux graphismes (merci à TATMF qui s'est déchiré) : la Centrale, l'UsineLegere, l'UsineAerienne, l'Habitation, le CentreRecherche (les trois derniers ne servent à rien pour le moment), la DCA (les graphismes pour le Port sont aussi prêts, mais vu que l'eau n'est pas prête...). Séparation de l'attaque au sol et en l'air en conséquence.
- Le code source fait maintenant 360 Ko pour 135 fichiers.
- Ajout des fichiers AFaire.txt et Programmation.txt.

* Améliorations

- La StationMiniere change de graphismes, les anciens servent maintenant au CentreRecherche.
- Le Generateur change aussi de graphismes.
- Curseurs et flèches au sol retouchés.
- L'affichage du Menu est maintenant toujours appelé par RafraichirMenu, permet de rassembler les fonctions intelligentes à plusieurs unités.
- Les SurAffichages sont recalculés à chaque image pour simplifier et éviter les problèmes de raffraichissement.

* Corrections

- Les unités ne peuvent plus tirer sur elles-mêmes.
- AvancerVers(coord,-1) foirait, l'unité avançait sur place une fois arrivée.
- Quelques corrections pour l'élément ATTAQUER du menu.
- Possibilité de tirer sur les Connecteur, ne marchait pas.
- Comme les Centrales, le CentreCommandement produit maintenant 6 d'électricité et non 4.
- Corrections de quelques détails après le rafraîchissement de seulement la partie left de FenetreJeu.
- N'Affichage plus les animations en dehors du champ de vision, pour l'instant c'était pas très important.


Version 0.31 : 09/11/02

- Correction d'un problème de couleurs, ça foirait quand l'utilisateur n'était pas déjà en 32 bits.
- Découverte étonnante : c'est le texte qui fait ramer l'affichage, pas seulement la MiniCarte... Je ne rafraîchis la partie left du jeu qu'une fois par seconde, énorme accélération (ne se voit que sur les ordis un peu limites).
- Correction d'un bug dans les timers initialisés longtemps avant de servir, ce qui explique pourquoi le défilement était parfois trop rapide.
- Au début d'un tour, rafraîchit correctement le menu de l'unité sélectionnée.
- Le curseur de la première unité sélectionnée clignote (servira pour les actions multiples).


Version 0.30 : 07/11/02

- Remplacement de DiretX par OpenGL, en prévision de mon passage sous Linux : comme ça, le code source sera quasiment immédiatement portable (merci à Jeff Molofee pour ses tutoriaux). Le portage a quand même été plus long que prévu, principalement parce que la fonction glDessinePixels s'est révélée monstrueusement lente (30 fps sur mon ordi, c'est dire) : en effet, la limitation de bande passante ralentit tout lorsque les données sont en RAM. Finalement, je charge tout dans des textures dans la mémoire vidéo (occupation : 18 Mo), mais je dois leur donner des tailles en puissances de deux. Pour le portage sous Linux, mon disque dur où je l'avais installé est mort (vive les 60GXP), ce sera donc pour plus tard.
- Principal avantage d'OpenGL : 256 niveaux de transparence, contre 1 seul pour DirectDraw. Relissage des graphismes en conséquence et ajout d'ombres, les textes de ZoneTerrain disparaissent petit à petit maintenant.
-  Au lieu qu'il y ait un seul fichier exe contenant les graphismes, ceux-ci sont maintenant à part dans des TGA compressés (décompresseur maison), ce qui fait passer les ressources de 8,3 à 2,8 Mo. Prochaine étape dès que j'en aurai le courage : stocker dans des PNG, beaucoup mieux compressés, et rassembler toutes les ressources en un seul fichier. A faire : Affichager une image d'intro pendant que les images sont chargées, ce qui n'est plus du tout immédiat.
- J'ai par contre dû faire toute la gestion du texte à la main (calcul de taille, centrage, retour à la ligne, etc avec des listes d'OpenGL), vu que je ne peux plus me servir des fonctions GDI de Windows. Pareil pour les cercles, qui sont maintenant des polygones, moins beaux qu'avant mais j'y peux rien...
- Deux nouveaux bâtiments : le générateur électrique et le radar, tous deux animés.
- Correction de plusieurs bugs, dont : plantage de LibereJeu ; FinTour ne s'exécutait que pour la première équipe ; les SurAffichages disparaissaient quand le Sondeur bougeait tout seul ; le GrosConstructeur se retrouvait avec des réserves négatives.


Version 0.27 : 24/09/02

- Gestion des animations asynchrones ! En gros, je peux rajouter (et je l'ai fait) n'importe quelle animation comme l'explosion d'un bâtiment, les missiles tirés, les véhicules qui se déplacent case par case, sans que ça empêche le reste de tourner. Attend quand même que les déplacements soient finis pour passer au tour suivant.
- Encore deux corrections dans la gestion des curseurs.
- Nouvel algorithme plus intelligent pour le déplacement du sondeur.
- Plein d'autres détails plus intelligents : par exemple, quand on dit à une unité d'attaquer et qu'elle est trop loin, elle commence par se rapprocher à la distance nécessaire.
- Pas mal de remaniements de fond dans le déplacement (rajout de l'argument distance), l'attaque (gérée principalement par la classe Combat maintenant), et la gestion des événements (liste).
- Ne plante plus quand on détruit une unité sélectionnée par l'autre joueur.
- Je me suis bien documenté : prochaine mise à jour, U.M.A.X. 0.30 en remplaçant DirectDraw par Direct3D !


Version 0.26 : 25/07/02

- Les objets de plusieurs cases (comme bâtiments 2x2) sont maintenant dessinés case par case, ne cachant plus le sondage.
- Nouveau bâtiment 2x2 capable des construire des unités : UsineLourde.
- Réorganisation des ressources (probabilités différentes), maintenant le CentreCommandement mine aussi.
- Dans Menu, séparation de ANNULER et RETOUR, rajout de SOUS_TENSION.
- Gestion de l'attaque.
- Nouveaux graphismes pour le tank, l'ancien servira de 'super tank'.
- Gestion des reliefs, d'autres variétés ajoutées au Terrain.
- La sélection se conserve d'un tour sur l'autre. Quelques autres corrections (principalement avec les connecteurs) dans la gestion de la sélection, des pointeurs et de l'attaque.
- La mémoire est bien désallouée quand on ferme l'application de force (merci Sly de t'être dévoué...).
- Réécriture presque intégrale de la gestion des BlocBatiment, trop trop trop trop, mais alors trop relou et très long. Maintenant, quand vous rajoutez ou supprimez des batiments, les usines électriques s'allument et s'éteignent intelligemment, les gains et l'utilisation des différentes ressources sont mis à jour sans erreurs, etc.
- On peut choisir l'emplacement de la construction avec un GrosConstructeur.
- Modification (police, durée, raffraichissement) de l'affichage des messages sur ZoneTerrain.
- Le code source est maintenant disponible sur FLâneries !


Version 0.25 : 07/06/02

- Gestion de l'affichage des messages sur le ZoneTerrain (déjà utilisé avec DEBUT_TOUR, RESSOURCES_INSUFFISANTES, PAS_DE_CHEMIN, UNITES_VIDES, UNITES_PLEINES).
- avanverVers et avancerVersDestination renvoient maintenant un EDeplacement.
- Quelques corrections dans la gestion du Menu. Chaque case du Menu a une propriété 'cout' affichée pour centraliser la récupération d'informations.
- Rassemblement en blocs des ressources sur le Terrain.
- getCaracteristiques est maintenant une propriété des Objets (avec héritage).
- Les Batiments ont aussi une procédure finTour (toujours avec héritage).
- Nouveaux bâtiments 1x1, stockage de minerai, de carburant et d'or, avec de jolis graphismes et des jauges qui indiquent le niveau de remplissage.
- Nouveau bâtiment 2x2 (toujours avec des jolis graphismes) : la Station Minière, capable de miner ! Gestion de la construction des bâtiments 2x2 par le gros constructeur gérée de manière simpliste pour l'instant.
- Les ressources ne se perdent plus lors de la reconstruction des blocs.
- Les caractéristiques des unités ont été copiées sur celles de M.A.X., que j'ai réinstallé sur un vieux dur à la maison (et joué une interminaaaaaaaaaaaable partie avec mon frère), chaque unité nécessite maintenant une certaine quantité de minerai et un certain nombre de tours pour sa construction.
- Toutes ces modifications ont été écrites pendant ma semaine de vacances, sans pouvoir tester, et il ne m'a fallut qu'une heure de corrections une fois rentré à Brest pour pouvoir le compiler : je suis tout heureux :-)
- Rapatriement de Ddutil et dxutil dans mon répertoire afin de les personnaliser.
- Gestion du transfert des ressources (nouvelle Fenetre, 4 nouveaux Boutons et le Remplissage définis en conséquence).
- On peut retirer les bâtiments, création de FenetreQuestion pour la confirmation.
- Les boutons du Menu sont remplacés par des dessins de TATMF.
- Le fond du terrain est remplacé par un fond de TATMF rougeâtre, les connecteurs sont plus petits afin de ne plus masquer les unités en dessous.


Version 0.21 : 03/05/02

- Suppression du menu de débogage et du clic droit pour coller des objets : maintenant, la gestion du menu est bien avancée (inspirée de celle de Starcraft) et dépend de l'unité sélectionnée (ajouteBoutons avec héritage), le clic droit et le curseur s'adapatent à plus de situations.
- Chaque équipe part maintenant d'un coin du terrain, avec un Centre de Commandement entouré de routes, de connecteurs et d'un véhicule de chaque type.
- Nouvelles fonctions tourSuivant pour tous les Objets et finTour pour les Unites.
- Nouveau bâtiment : la Tourelle à Canon.
- Nouveaux véhicules avec des beaux dessins : le Scout (le Lance-Roquette récupère les graphismes de l'ancien Scout) et le Petit Constructeur, qui est capable de constuire des Connecteurs, des Routes (corrigées d'ailleurs, gérées par le Terrain et plus par les équipes) et des Canons !
- Nouveau bouton Tour Suivant, fait tourner les équipes.
- Le Sondeur peut sonder automatiquement.


Version 0.20 : 23/04/02

- Grâce à un agréable voisin de TGV, j'ai compris d'où venaient mes problèmes avec les classes !
- Nouveaux graphismes semi-définitifs pour le menu de départ et l'interface du jeu.
- Nouvelle surcharge de la fonction DessineSprite et de CImage pour Affichager des sprites déformées.
- Gestion du déplacement des véhicules !
- Gestion de la sélection multiple d'unités en une passe, quelques modifications des procédures des ObjetGDI nécessaires.
- Ajout d'une Etiquette aux éléments du Menu.
- Surcharge des opérateurs pour SRect et SCoord, suppression de DecaleSRect et AjouteSCoord en conséquence.
- Refonte de Graphiques.cpp avec getSurfaceInfo et modification des appels aux BMP.
- J'ai trouvé enfin comment déboguer le programme : je le lance en mode fenêtre, ce n'était qu'une ligne à changer...
- Mise de mettreSurCase et retireDeCase dans les sous-classes, l'encombrement est maintenant une propriété de CObjet, plus une fonction virtuelle.
- Enfin un joli Readme en html, mise en forme aussi appliquée à ce fichier-ci.


Version 0.14 : 05/04/02

- Accélération de l'affichage avec GetHDC et LibereHDC (je me suis rendu compte du problème quand je suis descendu à 1,5 fps en modifiant la minicarte, d'ailleurs le problème n'est toujours pas complètement résolu). J'essaye de tout transformer au maximum en images pour Affichager plus vite.
- La carte et la Minicarte Affichagent différement les zones visibles, non-visibles et les zones non-visitées. La MiniCarte s'adapte à la taille et aux proportions du terrain.
- Brouillard un peu plus potable.
- Boutons pour régler l'affichage utilisant la nouvelle classe Coche (comme Bouton mais ne se relâche pas quand on relâche, comme une case à cocher).
- Nouvelle image animée de TATMF pour les connecteurs, qui en plus se connectent maintenant !
- Nouveau bâtiment, le centre de commandement, ça m'a obligé à corriger quelques procédures qui n'avaient pas encore été testées avec des unités 2x2.
- Nouvelle unité avec beaux dessins, le sondeur, le bouton sondage Affichage effectivement les résultats (le sondage est aussi affiché si un sondeur est sélectionné).
- Menu pour la construction d'unités, on peut en sélectionner une et la coller sur le terrain avec un clic droit (histoire de pouvoir tester).
- Nouveaux curseurs animés par TATMF.
- Quelques corrections dans la sélection d'unités.
- Séparation de EquipeEnCours et EquipeAffichage en prévision d'une IA en parallèle dans le futur.
- Je sais que ça va s'empirer, mais je commence à ma noyer dans tous mes fichiers sources (77 fichiers, 160 Ko), j'ai donc réorganisé le projet en jolis répertoires.


Version 0.13 : 31/03/02

- Listes des caractéristiques des véhicules et des bâtiments initiales et dans chaque équipe, remaniement des paramètres des différents constructeurs en conséquence.
- Affichage du brouillard (point rouge) après correction pour les connecteurs.
- Gestion personnalisée des touches qui peuvent rester enfoncées (directions, control, maj).
- Gestion personnalisée du temps avec des timers, appliquée aux fps et aux défilements du terrain.
- Gestion de la sélection multiple d'unités, entoure de blanc les unités sélectionnées ; séparation du fichier Selection.
- Affichage de la portée et de la vue de chaque unité de combat sélectionnée ; affichage des couleurs de l'équipe.
- Les points sur la Minicarte dépendent de la taille du terrain (par exemple, vu que la Minicarte fait 200 de large, des unités sur un terrain de 100 de large seront représentés par deux pixels de large).
- Tests et corrections pour plusieurs équipes.
- Nouvelles unités avec les dessins de TATMF : le scout et le tank (j'ai dû séparer UniteAttaque en deux, l'héritage multiple ne peut pas marcher dans ce cas) ; le gros constructeur a aussi des beaux dessins.
- Finalement remplacé les VERIFIE par des assert, m'évite de devoir tenir une liste de numéro des erreurs.
- Affichage ou non des informations de débogage avec F12, de la vision, de la portée et des couleurs avec F1, F2 et F3 (en attendant les boutons).


Version 0.12 : 08/03/02

- Petit problème de disque dur, j'ai dû tout réinstaller, je viens de remettre Visual Studio.
- Le fps faisait planter si l'ordi était trop rapide.
- Correction de la gestion de la MiniCarte.
- Les fenêtres d'erreur ne se centraient pas, contrairement à ce qui était annoncé.
- Les couvertures et les connecteurs (donc les bâtiments et leurs blocs !!!) fonctionnent, on peut cliquer avec le bouton droit pour poser-retirer des connecteurs.
- Liste des noms des unités dans Langue.h.
- Gestion de la vision des unités et du brouillard de guerre, même si j'ai désactivé son affichage pour l'instant par manque de sprite correct.
- Nouvelles image avec tous les curseurs, encore plus moches qu'avant ! Ils changent quand on passe sur certains objets.


Version 0.11 : 22/02/02

- Deux semaines de vacances devant moi, histoire de reprendre et de bien avancer le projet (a posteriori, j'ai plutôt bourriné sur FLâneries).
- Terminé la programmation de la plupart des fonctions de base des classes mères (comme par ex. la gestion complète des blocs de bâtiments !).
- Avancement de l'interface : nouvelles classes CZoneCaracteristiques et CMiniCarte, listes et fonctions UniteSelectionnee et CaseSuraffichage.
- Possibilité de faire défiler avec la souris.
- Un clic sur une case sélectionne une unité (mais bon, on ne peut pas encore savoir si ça marche, évidemment...).
- Affichage du fps en bas à right en mode DEBUG.
- Le source dépasse les 100 Ko pour 52 fichiers...


Version 0.10 : 05/02/02

- Après la mise au point globale de l'interface, je peux enfin commencer la programmation d'un jeu de stratégie !
- Début d'implémentation de différentes classes de bases (pas encore de spécifiques).
- Remise en page des en-têtes de classes.
- Quelques détails d'interface : nouveau bouton OK, moche mais remplace le bouton Quitter disproportionné ; les petites fenêtres se centrent au démarrage ; message d'erreur pas dans fenêtre Windows, elle apparaissait parfois en arrière-plan.


Version 0.05 : 30/01/02

- Je m'y remets difficilement, je suis en pleine partie de programmation ingrate.
- Création des procédures d'initialisation du jeu, maintenant ça se lance et ça Affichage le terrain !
- Possibilité de faire défiler le terrain, mais c'est la répétition par défaut de Windows, pas terrible et une seule direction à la fois. Sera amélioré.
- Chaque fenêtre est maintenant une classe dérivée de CFenetre. Plus lourd car répétitions mais plus simple à continuer.


Version 0.04 : 20/01/02

- Nouvelles classes Terrain, ZoneTerrain, BlocBatiment.
- Création des variables globales permettant de gérer le jeu, l'affichage.


Version 0.03 : 17/01/02

- L'interface du jeu est divisée en 4 bouts, histoire de pouvoir rajouter de la transparence par la suite.
- Ecriture à la main de la fonction GetTexteTaille, la fenêtre erreur a maintenant la taille du texte affiché, qui peut être sur plusieurs lignes.
- Chaque bouton du menu de départ ouvre une fenêtre d'erreur.
- Rajouter un graffiti pour distinguer les boutons enfoncés des autres.
- Correction de la gestion de l'ObjetGDI en cours, par ex. les boutons ne se relâchaient pas correctement.
- Rajout des fonctions de maniement de registre que j'ai programmées pour Noc-Nod.


Version 0.02 : 13/01/02

- J'ai inséré des VERIFIE là où nécessaire.
- Les fenêtres sont maintenant toutes en mode exlusif, ça simplifie quand même bien le source.
- Je n'avance pas trop, je suis en train de bourriner City Hunter.


Version 0.01 : 05/01/02

- J'ai à peu près fini la programmation de tout le GDI. Objets disponibles : boutons, images et textes.
- Toutes les procédures graphiques et utilitaires sont opérationnelles.
- La majorité des en-têtes de classes écrits.
- Dessin d'un menu de départ, qui peut ouvrir un fenêtre de jeu ou un message.




Copyright FL 2001-2004