2008-01-06 Serge Martin * src/gui/ShowMap.cpp: Unit at top is select first Some code clean 2007-12-18 Serge Martin * src/gui/ShowMap.h: * src/gui/ShowMap.cpp: Improve Drawing perf 2007-12-18 Romain Bignon * src/Cases.h (DefaultEntitiesPosition): Entities positions get from Alexandre javascript. * src/tools/Pixels.h: Now Pixels class is derived from std::vector. * src/entities/Entity.cpp (void ECEntity::SetImage): Do not call FindPositionOnCase() if there was already an image. * src/entities/Unit.cpp (Point2i ECUnit::FindPositionOnCase): Implement function to find a position on case, and to move others units. It uses weight. * src/entities/Building.h: Set entities positions for default buildings. 2007-12-18 Serge Martin * src/tools/Images.cpp: * src/tools/Images.h: make some function const * src/gui/ShowMap.cpp: more accurate Rect2Case 2007-12-17 Romain Bignon * src/entities/Entity.cpp: Fixed fucking bug that may provide an error in std::set entries. If there are two entities, A and B, and A < B because A->Y < B->Y, there will be A before B in std::set. But if, when we want to remove A, A->Y > B->Y because it changed, there will have a problem (like not remove, or remove two entities). * src/gui/ShowMap.cpp: Lock mutex when scrolling to not have display bugs. 2007-12-09 Romain Bignon * src/tools/Pixels.h (Pixels): Class to list some pixels. * src/Cases.h (DefaultEntitiesPositions): Virtual function for the position of entities by default. * src/Cases.cpp (EntitiesPositions): Return the position of entities on case. * src/entities/Unit.cpp (ECUnit::FindPositionOnCase): Removed bugged code. * lib/Units.h: Add weight on each units. * lib/Map.h (ECBEntity): Added system of weight. * lib/Batiments.h: Added weight on each buildings. 2007-11-27 Serge Martin * src/entities/Entity.cpp: * src/entities/Entity.h: * lib/EntitiesSet.cpp: * lib/EntitiesSet.h: * lib/Map.h: remove < operator : replace by IsBefore restore set usage. pointer are the last comparing level. 2007-11-27 Romain Bignon * src/data/graphics/game/buildings/capitale/1.png: Trying a building image. * src/entities/Entity.cpp (void ECEntity::FindPositionOnCase): Added this function to determine what position use on case. * src/entities/Unit.cpp (Point2i ECUnit::FindPositionOnCase): Overriding this function to unit positions. * lib/EntitiesSet.h: Use multimap 2007-11-26 Romain Bignon * src/Resources.cpp: Removed useless images * src/data/check_datas.py: Create this script to check if all datas in src/Resources.cpp file exist. * src/entities/Entity.cpp (: Resources::FlecheDroiteHaut): Removed useless attaq arrows. * src/data/graphics: Created this new arborescence of data files. 2007-11-25 Romain Bignon * src/entities/Entity.cpp (ECEntity::operator<): Override ECBEntity function. * src/entities/Entity.h: Likewise. * src/gui/ShowMap.cpp (void TMap::DrawEntities): When a entity must be redrawn, we set MustRedraw on its cell, but on up and right too. 2007-11-25 Serge Martin * src/Sound.cpp : switch to 44100 Hz. 2007-11-25 Romain Bignon * src/gui/ShowMap.h: Added function DrawEntities(). * src/gui/ShowMap.cpp (TMap::DrawCases): Do not draw fog here. (TMap::DrawEntities): Draw all entities. This function can take an argument (DRAW_ENTITIES or DRAW_ENTITIES_AFTER). (TMap::Draw): drawing of arrows moved in an ECEntity's method. (TMap::DrawFog): Now draw the fog here and not in DrawCase(), to be drawn after entities. * src/entities/Entity.cpp (void ECEntity::operator<): Add an operator to know which entity we must draw in first. (void ECEntity::DrawArrow): Draw arrows of this entity. * lib/EntitiesSet.cpp: Do not compare pointers but objects. * lib/Map.h: Add a fucking default < operator. 2007-11-25 Serge Martin * lib/Makefile.am: * lib/Map.cpp: * lib/Map.h: * lib/Outils.h: * server/Batiments.cpp: * server/Channels.cpp: * server/IA.cpp: * server/InGame.cpp: * server/Map.cpp: * server/Map.h: * server/Units.cpp: * src/InGame.cpp: * src/Map.cpp: * src/MapEditor.cpp: * src/entities/Entity.cpp: * src/gui/ShowMap.cpp: * src/gui/ShowMap.cpp: ECBCase use EntitiesList instead of ECList in order to enable sort. 2007-11-24 Serge Martin * src/gui/ShowMap.cpp: Keep track of cases that are on screen and only redraw those. * src/entities/Entity.cpp: Avoid segfault when an entity don't have case 2007-11-22 Romain Bignon * src/entities/*: Make a file for each entity. * src/entities/EntityList.h, src/MapEditor.cpp, src/InGame.cpp: Now we use the EntityList to create entities. * src/Cases.h: Separated file. 2007-11-20 Romain Bignon * src/gui/ShowMap.cpp (TMap::Draw): Only fill 0 the screen in the Draw() function. The SetXY method can be called from an other thread, and if this is when redrawing the screen, a black flash can be viewed. * src/gui/Units.cpp (ECUnit::MoveEffect): Updated the move effect for units. * src/tools/Images.cpp: Show correctly (and faster!!!) the fog. 2007-11-19 Romain Bignon * meta-server/sockets.c: cpu usage fix (from Cesar) * src/Map.cpp (ECEntity): Has a position attribute for its position on TShowMap object. (and not screen). (ECase): A position attribute. * src/Map.cpp (AttaquedCase): Fixed for 3D iso the attaq trajectory. 2007-11-18 Romain Bignon * src/tools/Images.cpp: Now we use all the gray to change color to player color. Not only white pixels. 2007-11-17 Romain Bignon * src/pics/blackfog.png, src/gui/ShowMap.cpp: Beautiful fog.. * src/Map.cpp: New cadre for units * src/Map.cpp: BIG BIG BIG BIG BIG optimization of memory!!!!!! * src/gui/ShowMap.cpp: New images for hachures, and filters on attack and walkon. 2007-11-13 Romain Bignon * src/Map.cpp: The preview is now rotated... * src/MapEditor.cpp: Show the screen position on radar. * src/gui/Radar.cpp: Usage of an independant object for the radar. * src/gui/ShowMap.cpp: Display case in the good order. * src/Map.cpp (ECase::Test): Correct result. 2007-10-20 Romain Bignon * src/Defines.h: Now cases's size is 400x200. * src/gui/ShowMap.cpp (Pixel2Case): Now it works with 3D iso. (SetPosition): Entities images are automatically positionned. * src/data/anims/cases: New images with size 400x200. * src/data/pics/cadre.png: New image adapted. 2007-10-15 Romain Bignon * src/gui/ShowMap.cpp: Begin of work for 3D isometric! * src/Defines.h: Usage of CWIDTH, CHEIGHT, CWIDTH_IMG and CHEIGHT_IMG constants instead of CASE_HEIGHT and CASE_WIDTH (deprecated). * src/data/anims/cases: Update some images of cases. 2007-08-11 Romain Bignon * server/Main.cpp, server/Server.cpp: Portage pour OpenBSD. 2007-05-31 Romain Bignon * meta-server/client.c: Correction d'un crash dans le cas où il y a plus de 50 comptes enregistrés * meta-server/client.c: Correction d'un crash si le message d'identification du client ne comporte pas au moins 3 mots. 2007-05-22 Romain Bignon * server/Maps.cpp (ECEntity::CancelEvents): Correction d'une faille qui permettait a un joueur de faire annuler les actions d'une unite ennemie. * src/data/anims/units/boat/*: Nouvelles images de bateau envoyes par Luc Leger, merci a lui. 2007-05-21 Romain Bignon * src/Login.cpp: Case à cocher "Show only official servers" cochée par défaut qui cache les serveurs non officiels. 2007-05-12 Romain Bignon * src/Units.cpp (ECEiffelTower): La tour Eiffel maintenant passe la variable HaveBrouillard à false plutot que d'ajouter 2 à toutes les cases. * src/Map.cpp: Correction d'un bug sur l'incrémentation de la variable Showed des ECase. * src/Map.cpp, src/Units.cpp, src/Batiments.cpp: Tout marche convenablement maintenant quand HaveBrouillard = false. * src/gui/ShowMap.cpp: Essais d'optimisations de l'affichage. * src/JoinGame.cpp: Message lors de la déconnexion d'un joueur. 2007-05-11 Romain Bignon * Version 0.4 releasée. * lib/Batiments.h: Le radar coûte maintenant 30 000 $ et la Tour Eiffel 70 000 $. * lib/Units.h: Correction du bug qui empêchait une infanterie d'avancer sur une case possédant un barbelé construit par un ennemie pendant ce même tour, alors qu'il n'apparaît pas chez nous. * lib/Outils.h (ECList): La fonction Find(uint type, int not_flag) prends l'argument facultatif not_flag en plus pour retourner uniquement les unités du type en question ne possédant pas le flag passé. * src/InGame.cpp: Anonce bien les chiffres d'un combat même si il y a eu quelques lignes d'introduction, notament pour anoncer une unité qui était cachée et qui participe au combat. * lib/Units.h (ECBEnginer): L'ingénieur avance de 2 cases par tours maintenant. (ECBPlane): L'avion contient 10 directement au lieu de 5, pour le même prix (5 000 $), ce qui en gros réduit son coût de moitier. Augmentation de sa vitesse et de sa visibilité. * server/maps/*: Adaptation des maps pour rajouter des aéroports dans les villes entourées de montagnes (et donc impossible à prendre sans avions), du fait qu'il est maintenant nécessaire d'attérir sur une piste. 2007-05-10 Romain Bignon * src/gui/Edit.cpp, src/Login.cpp: TEdit affiche des '*' lorsque c'est un mot de passe. * lib/Defines.h: Passage en protocole version 14. * lib/Units.h (ECArmy): IMPORTANT: le prix de l'armée passe de 2 000 $ à 1 000 $ pour 100 hommes. 2007-05-02 Romain Bignon * lib/UnitsList.h, Batiments.h: Création du bâtiment AirPort pour créer les avions. Ces derniers ne peuvent décoller et atterir que sur ceux-ci. * lib/UnitsList.h, Batiments.h: Création du bâtiment Radar qui permet de voir le terrain de toute la map. * lib/UnitsList.h, Batiments.h: Création du bâtiment Tour Eiffel, upgrade du Radar, qui permet, en plus de voir tout le terrain de toute la map, voir toutes les unités. 2007-05-01 Romain Bignon * server/Channels.cpp: Correction d'un bug qui n'envoyait pas le nombre dans une armée dont le joueur est propriétaire, lors d'un rejoin. * lib/Map.h, lib/Batiments.h: Attribut virtuel CanBeSold() qui définie si l'entité peut etre vendue. * server/Channels.cpp, server/InGame.cpp, src/InGame.cpp, API: Possibilité de vendre une entité. 2007-04-25 Romain Bignon * meta-server/database.c, meta-server/server.c, meta-server/clients.c: Utilisation d'unsigned long long int pour stocker les scores etc. Ça a l'air overkill mais sait-on jamais ! Les scores augmentent de plus en plus. (soit 18 446 744 073 709 551 615, bon ok pour le moment le meilleurs score est de 4 087 589, mais sait-on jamais, anticipation !). * src/Sockets.cpp: Programmation du support d'une connexion à un proxy. * src/JoinGame.cpp: Si jamais l'option scoring était active et que le serveur l'enlève au début de la partie, c'est que celui-ci considère que la partie ne sera *pas* scorifiée. Du coup, on envoie un message au joueur. * tools/proxy.c: Petit proxy. 2007-04-19 Loiseau Lucien * src/Login.cpp (LSPCommand::Exec) : bugfix 2007-04-19 Loiseau Lucien * src/Sockets.cpp (EC_Client::sendbuf) : on verifie qu'on est connecté avant d'envoyer sur le sock. 2007-04-12 Romain Bignon * server/Channels.cpp (FindEntityName): On prends maintenant également les caractères minuscules (donc [A..Z][a..z] * 2). On passe de 576 unités max par joueurs à 2304 ! * lib/Batiments.cpp (ECBNuclearSearch): À l'initialisation du centre de recherche, on cherche les silos déjà présents pour les lier à soit. * server/Batiments.cpp (ECBNuclearSearch): Correction d'un crash dans le cas où un centre de recherches est neutre. * server/maps/foret_fabuleuse.map: Nouvelle carte de nameless 4 joueurs. Comme son nom l'indique, il y a beaucoup de forêt, des iles au milieu, un nombre moyen de villes. Non orienté équipes. * server/maps/civil_war.map: Nouvelle carte de nameless 2 joueurs. Très grand nombre de villes, map bourrin ! 2007-04-11 Romain Bignon * server/Channels.cpp (SETCommand): On empêche un joueur de s'allier à lui même. (BPCommand): Correction d'un bug qui n'envoyait pas la balise aux joueurs alliés. * src/Channels.cpp, src/gui/ShowMap.cpp, src/InGame.cpp: Maintenant on peut afficher du texte dans la balise (c'était déjà supporté dans le protocole). * lib/Units.h, server/Units.cpp (ECPlane): On ne peut plus le faire atterir n'importe où (uniquement terre et pont). * server/Channels.cpp (send_info): Correction d'un crash si on cherchait à envoyer l'info à un player déconnecté. 2007-04-10 Romain Bignon * lib/Units.h, server/Units.cpp, server/InGame.cpp, src/ShowMap.cpp, src/Map.cpp: On peut maintenant entrer une unité dans un conteneur qui en contient déjà une. * test/combats.cpp: Petit programme permettant de simuler des combats 1v1 dans le but de tester différents algorithmes. Il y a une vingtaine de cas, qui sont executés un grand nombre de fois (à spécifier en argument), et pour chaque cas il fait pour chaque joueur le pourcentage de fois où il a gagné, et la moyenne des restes non nuls. * server/Map.cpp (ECEntity::Attaq): Utilisation de l'amélioration de Thomas concernant l'algorithme, qui donne de meilleurs resultats. (voir http://kouak.org/~progs/maa.html). * lib/Map.h (ECBEntity): Les membres protégés de cette classe se retrouvent privés pour améliorer l'encapsulation. 2007-04-09 Romain Bignon * src/InGame.cpp, src/Map.cpp: Le curseur indique qu'on peut entrer uniquement si c'est MON conteneur, et quand on clique il prends le plus adapté. * server/Login.cpp (ADMINCommand): Envoie un message de confirmation du kill AVANT de killer l'user. * src/Units.cpp (ECJouano): On ne met la case "terre dead" seulement si on est sur de la terre ! * server/Units.cpp (EContainer): Si jamais l'unité contenue est détruite, on porte le reste de l'attaque au conteneur. * server/Units.cpp (ECJouano): Il n'y a plus dans les unités attaquées que les unités attaquables (pour ne plus faire surgir une mine par exemple). * server/Map.cpp (ECEntity::Attaq): Correction d'un bug qui traine depuis UN AN.. une simple histoire de parenthèses mal placées. * server/InGame.cpp (InitAnim): Correction du bug #8891 des unités ennemies qui restent sur la même case en cas de combat à la création. * lib/Batiments.h (ECShipYard): Maintenant il n'y a plus de combat avec le chantier naval. * server/Channels.cpp: L'argent emmagasiné compte dans le score. Protection contre le dépassement de l'entier qui stock l'argent possédé. 2007-04-07 Romain Bignon * server/Channels.cpp: Les scores concernant les escarmouches (les parties donc avec un seul humain) ne sont PLUS envoyes au meta-serveur pour eviter que des abrutis comme pankkake et phh ne passent leur temps a ca. * lib/Batiments.h: Le barbelé coute maintenant 1000$. * server/Channels.cpp, src/JoinGame.cpp: On autorise maintenant que plusieurs personnes prennent la même nation. * lib/Units.h (ECMcDo): Un Ronald avance maintenant de 4 cases. * server/InGame.cpp: On ne peut plus unir deux unités qui ne sont pas sur le meme niveau. * server/Units.cpp: Correction de bugs concernant McGerbale et Jouano. * server/InGame.cpp (ShowAnim): Correction d'un bug qui faisait que si une unité actrice d'un event changeait de propriétaire, ben l'evenement était tenté d'être enlevé du nouveau propriétaire, et plus de l'ancien (pour McGerbale par exemple). Du coup, crash. * server/Units.cpp (ECMine): La mine n'attaque que si l'evenement est sur sa case (problème avec Jouano par exemple). * API, meta-server/server.c, server/Channels.cpp, tools/maa_ircbot.py: On est maintenant prévenu lorsqu'une partie se créée (avant qu'elle se lance). * src/gui/Memo.cpp: Maintenant lorsqu'un Memo est redimensionné, la taille du contenu l'est aussi (on ne voit plus de texte dépasser), et on est bien amené à la fin du texte. * src/Resources.h, src/data/anims/buttons/*: Quelques autres boutons nouveau style. * src/Config.cpp, src/Login.cpp, src/JoinGame.cpp: Des boutons nouveaux styles mis. * src/Login.cpp: Il affiche bien les deux boutons "rehash" et "kill" quand on se loggue en admin. * src/JoinGame.cpp: La liste des cartes est affichée chez le client également (disabled). * src/JoinGame.cpp, src/gui/Form.cpp: Il redesssine bien tout quand il y a eu une nouvelle map ou un user qui part. 2007-04-03 Romain Bignon * meta-server/database.c: Le meta-serveur stock dans la base de donnée le nombre de connexions et de chans. * meta-server/server.c, meta-server/clients.c: Possibilité de connexion d'un robot, avec envoie d'event sur création de partie * server/Channels.cpp: Envoie d'un message au meta-serveur lors de la création d'une partie. * API: Mise à jour du protocole concernant la classe de connexion au meta-serveur de "robot irc", et les events du serveur. * tools/maa_ircbot.py: Robot irc en python. 2007-04-02 Romain Bignon * server/Channels.cpp: On envoie bien maintenant TOUTES les alliances à un user qui rejoin. 2007-04-01 Romain Bignon * src/Form.cpp, src/InGame.cpp: Une fonction virtuelle LockedBeforeDraw() est appellée, et on vérifie après si want_quit est bien à faux pour continuer, ceci dans le cas où l'écran était locké et qu'entre temps on a décidé de partir. * src/JoinGame.cpp: Correction d'un bug qui faisait crasher des fois lors d'un changement de maps (mutex). * server/Channels.cpp: Maintenant le serveur envoie le nombre dans les unités à son nouvel allié. 2007-03-31 Romain Bignon * src/InGame.cpp: Le message "Une unité de %s bouge en dehors de votre champs de vision" s'affichait des fois avec son nom.. Corrigé * server/Channels.cpp (ECPlayer::Havelost): Correction d'un crash lorsqu'un joueur partait et qu'un autre joueur avait mis une des unités de ce joueur dans sa ligne de mire. * server/InGame.cpp (BPCommand): Correction du bug qui envoyait deux fois un message de Balise à celui qui la posait/l'enlevait. 2007-03-28 Romain Bignon * server/Map.cpp: Correction d'un crash (qui arrive bizarement d'ailleurs). * src/InGame.cpp: On ne peut plus savoir si une unité se trouve dans une forêt grave à un curseur "attaquer". * src/Sockets.cpp (EC_Client::Request): Retourne maintenant le retour de Connect(). * src/Login.cpp: Si jamais il n'arrive pas à se connecter (Request() retournant false), il affiche un message d'erreur et sort. * src/ListBox.cpp: On scroll aussi maintenant quand le curseur est au dessus ou en dessous du widget (avec la scrollbar). * src/MapEditor.cpp: On scroll le widget vers le propriétaire actuel. * server/Channels.cpp: Lorsqu'on envoie la liste des unités, on donne le nombre pour les armées neutres. 2007-03-27 Romain Bignon * server/Units.cpp (ECMcDo): Correction d'un crash lorsqu'un jouano ayant investis le McDo le détruit. La variable "caserne" n'était pas remise à 0. * server/Units.cpp, server/InGame.cpp, lib/Units.h: Maintenant quand on fait un ARM_DEPLOY, on ne met *pas* Deployed() à !Deployed(), pour pouvoir faire un cancel. Ceci corrige le bug de l'annulation d'actions pour l'avion. * server/Batiments.cpp, server/Units.cpp: Maintenant l'obélisque peut bien tirer sur l'avion en l'air, et la tour de défense et le lance missile peuvent tirer sur un avion à terre. * server/InGame.cpp: Le restant dans un conteneur n'est envoyé qu'aux unités concernées. * src/Map.cpp: On affiche maintenant la trajectoire d'un tir à distance que l'unité soit sélectionnée ou non. 2007-03-24 Romain Bignon * server/maps/Islands.map: Ajout de la map Islands (pour 8 joueurs, première map aussi grosse). * src/MapEditor.cpp: Utilisation de la touche "n" pour que les cases sélectionnées fassent partie d'un nouveau territoire neutre. 2007-03-20 Romain Bignon * lib/Colors.h, src/gui/ColorEdit.cpp: Utilisation d'une couleur rose au lieu de marron. * meta-server/config.c: Utilisation d'une configuration. * meta-server/clients.c, meta-server/server.c, server/Server.cpp: Les serveurs doivent maintenant être identifiés * src/Map.cpp, src/data/sound/units/missile.ogg: Utilisation du son d'un missile. * src/data/anims/buttons, src/Main.cpp, src/Config.cpp, src/Login.cpp, src/gui/MessageBox.cpp: Ajout des nouveaux boutons de yeKcim. * server/Server.cpp: Correction d'un super bug qui faisait qu'une fois une connexion reçue, on ne reçoit plus les messages du meta-serveur. 2007-03-17 Romain Bignon * server/Channel.cpp: Lorsqu'un user quitte, on supprime bien ses evenements. * src/Units.cpp (ECJouano): Correction d'un bug qui faisait que si un prout était hors du champs de vision, l'écran freezait. * meta-server/clients.c, src/Login.cpp, server/Channels.cpp: Système de cookie pour ne pas avoir à se réidentifier. Maintenant une connexion au meta-serveur depuis un client est breve (on fait une requette et on se barre). Le serveur doit donner le cookie. 2007-03-14 Romain Bignon * lib/Units.h (ECJouano): Il ne peut plus y avoir qu'une seule instance de Jouano en même temps. * src/Units.cpp (ECJouano): Lorsque Jouano pète, il y a un nuage de fumée autour de lui. * src/Login.cpp: Prévient quand il y a une nouvelle version, ainsi que si il n'y a aucun serveur disponible. 2007-03-12 Romain Bignon * Units.h (ECJouano): L'unité Jouano peut maintenant se deployer pour péter et faire des domages à l'infanterie environnante. * meta-server/client.c: Une fois que le joueur a reçu un REJOIN, celui ci est supprimé. * meta-server/database.c: On se souvient maintenant de l'heure de l'enregistrement et de la dernière partie. * server/Channels.cpp: Lorsqu'un user se fait virer du jeu parce que tous les joueurs ont votés pour lui, on informe le meta-serveur de ça. * src/data/sound/units/prout.ogg, src/Units.cpp: Utilisation de l'image du sol avec une onde, ainsi que du son d'un prout. * server/InGame.cpp: Lorsqu'une unité voulait entrer dans un bateau qui avait été supprimée, elle avançait quand même vers le bord, et puis rien... 2007-03-11 Romain Bignon * src/ShowMap.cpp: Maintenant quand le bouton "Schema" est pressé, il affiche les délimitations entre les territoires enemis. * src/gui/ListBox.cpp (ScrollTo): Maintenant il scroll bien. * server/maps/Japan.map: Carte du japon pour 3 joueurs. * src/tools/effects_wave.cpp: Patch de lodesi pour avoir un effet d'onde, sera utilisé pour Jouano. * Batiments.h (ECBarbedWire): On peut poser des barbelés pour empêcher l'infanterie de passer. * src/tools/Images.h: Remaniement. 2007-03-10 Romain Bignon * src/Sockets.cpp: Dans la version windows, si il n'y avait aucun socket connecté, select() foirait et donc sortait de la boucle, ce qui quittait le thread et rendait au final la connexion à une partie impossible. * src/Main.cpp: Dans la version windows, il affiche un message au lancement pour prévenir les utilisateurs qu'ils utilisent un OS de merde. * meta-server/client.c, src/Login.cpp: Un message AIM est envoyé au client lors de la connexion effectuée pour informer du pseudo utilisé. 2007-03-06 Romain Bignon * meta-server/server.c: Correction d'un crash ! * server/Main.cpp: Correction d'un crash ! * src/JoinGame.cpp: Les numeros sur la carte affichent bien le numero d'ordre de la liste, et plus le numero d'ordre dans la liste de EChannel (qui mettait toujours soit en premier). 2007-03-04 Romain Bignon * src/JoinGame.cpp: Plutôt que d'avoir un SpinEdit pour choisir sa position, il y a maintenant des boutons sur la preview de la map pour choisir où l'on souhaite être. 2007-03-02 Romain Bignon * server/IA.cpp: Correction d'une petite fuite de mémoire. 2007-02-28 Romain Bignon * API, meta-server/database.cp, server/Channels.cpp: Compte les victoires. * server/Main.cpp: Ping le serveur pour savoir si il va se faire deconnecter ou non. * src/Login.cpp, src/InGame.cpp: La souris bouge pendant les messages d'attente, et en jeu on peut utiliser F11. * server/Channels.cpp (CheckEndOfGame): Putain de bug qui faisait une boucle infinie si il restait que des IAs ennemies corrigé. 2007-02-27 Romain Bignon * src/InGame.cpp, src/Units.cpp, src/Map.h: Le waitmessage est maintenant un membre de ECMap pour qu'une entité puisse le jarter au besoin. * server/Channels.cpp, src/InGame.cpp: On peut maintenant perdre de sa propre initiative. Pire encore, c'est le comportement par défault du bouton pour quitter. * src/InGame.cpp: Correction du crash du dont d'une ville. 2007-02-26 Romain Bignon * src/Sockets.cpp: Une partie statique de la classe EC_Client s'occupe du thread qui est initialisé au lancement du programme, et terminé à la fin. * server/Channels.cpp, server/InGame.cpp: Correction temporaire d'un int overflow sur les scores (le score pouvait être négatif (!?) et c'était un entier non signé). * src/Login.cpp: Au premier lancement, propose l'enregistrement d'un nickname. * server/Channels.cpp (SendArm): Au lieu d'envoyer le ARM_DEPLOY sur la même ligne, on envoie séparément pour éviter tout problème. * src/InGame.cpp: Maintenant, quand on a perdu (et donc qu'on a plus de brouillard), on voit bien tous les evenements. 2007-02-25 Romain Bignon * src/menareants.6, server/menareants-server.6, meta-server/menareants-meta-server.6: Créations de manpages. 2007-02-24 Romain Bignon * meta-server/database.c: Utilisation d'une base de données d'accounts. * src/Login.cpp, src/Config.cpp: Peut s'enregistrer et se logger sur un account. * meta-server/server.c: Commande USET pour des paramètres sur les users. * server/Channels.cpp: Gère maintenant le revenu max de la partie eu, et envoie les stats à la fin du jeu au meta-serveur. 2007-02-23 Romain Bignon * src/gui/Cursor.cpp, src/gui/Form.cpp: Utilisation de TCursor TOUT LE TEMPS, avec un curseur par défault rouge. Permet de corriger le bug de windows et que le jeu en plein écran soit plus agréable (il y avait des bugs de positions de curseur (image -> wm). * src/Main.cpp, src/Resources.cpp: Utilisation d'une nouvelle image de background pour les menus, ainsi que dans le menu principal, utilisation de nouveaux boutons. 2007-02-22 Romain Bignon * src/Sockets.cpp: Maintenant il y a une instance par connexion. * src/Login.cpp: Support de la version 2 du protocole MetaServer. * server/Server.cpp: Les envoies sont asynchrones. * meta-server/servers.c, meta-server/clients.c: Envoie l'uptime du serveur. * meta-server/main.c: Support du restart. * meta-server/sockets.c: Correction d'un bug qui ne fermait pas les connexions correctement lors de la fermeture du serveur. * src/Login.cpp, meta-server/server.c, server/Server.cpp, server/Channels.cpp: Gestion des REJOIN. * server/Channels.cpp (EChannels::SendEntities): Envoie les évenements et gère les unités contenues. * src/InGame.cpp: Corrections concernant l'envoie d'unités lors du resynch en SENDING d'un REJOIN. * serger/Channels.cpp, server/InGame.cpp: Les informations sont un maximum partagées entre les alliés (nombres dans les unités). 2007-02-21 Romain Bignon * src/gui/Form.cpp: Utilisation du TMemo Hint comme bulle d'aide à coté de la souris plutot que d'un pointeur vers un composant de la fenêtre. * lib/Version.h, lib/v.sh: La version SVN est maintenant écrite ici. * meta-server/server.c: La version de chaque serveur, ainsi que le nombre total de connexions et de parties, sont envoyées. 2007-02-20 Romain Bignon * server/Map.cpp (ECEntity::CancelEvents): Supprime maintenant les evenements des unités liés aux evenements supprimés. * server/IA.cpp: Corrections sur l'utilisation des bateaux, créée sur les capitales et les megalopoles, favorise la création sur les villes du front. * src/gui/Form.cpp: Prise en compte (enfin!) de l'attribut AlwaysRedraw() des TComponent. * src/gui/FPS.cpp: Hérite maintenant de TLabel plutôt que de l'avoir dans ses membres. * src/InGame.cpp: Correction d'un crash possible lors d'une création d'unité (mutex). * server/InGame.cpp: Correction de trois bugs : - Lorsqu'une unité sortait d'un conteneur et allait directement investir un batiment, il n'y avait pas de ARM_UNCONTENER envoyé, donc l'unité restait invisible - L'évenement n'était pas supprimé de la liste des evenements des unités liées. - Lorsqu'un évenement pour entrer dans un conteneur était précédé d'un mouvement, l'évenement ne se faisait pas. * server/Map.cpp (ECEntity::CancelEvents): Supprime également les évenements des unités liées par les evenements supprimés. 2007-02-17 Romain Bignon * src/gui/ListBox.cpp: Scrollbar fonctionnelle. * server/Channels.cpp: Les salons ne sont plus renommés en "." lors d'une fin de partie (+E scoring). 2007-02-16 Romain Bignon * server/Map.cpp, server/maps/maps.list: Le fichier maps.list n'est desormais plus utilisé, on cherche simplement tous les *.map nous même. * server/maps/Conquer.map: Cette carte 4 joueurs se joue 3 contre 1. Un des joueurs est embusqué sur une île, nommé le "Chateau" où il a un revenu confortable. Le but des trois autres joueurs est d'attaquer et de conquérir le château. Il est à noter que sur cette carte le revenu est assez large. * src/data/anims/*button, src/Resources.cpp, src/Main.cpp: Utilisation de boutons normaux pour le menu. 2007-02-15 Romain Bignon * server/InGame.cpp, server/Map.cpp, server/Channels.cpp: Corrections de multiples bugs (au moins 4). * server/InGame.cpp: Début des scores. * src/MapEditor.cpp: Support du scrolling de la map. * server/Login.cpp, server/Config.cpp, server/menareantsd.conf.in, src/Login.cpp: Possibilité de bannir une IP ou un pseudo du serveur. * src/MapEditor.cpp: Début du support de la pose de cases intelligentes (par exemple quand on met une case d'eau, tout autour y a des cases bordures). * lib/Map.cpp: Fonction pour rechercher la case accessible la plus proche de celle recherchée. * server/IA.cpp: Amélioration de l'IA, peut de nouveau utiliser les bateaux. * server/Units.cpp, server/InGame.cpp: Correction de bugs concernant les conteneurs. * server/InGame.cpp: Lorsque l'on presse la touche 'n', on obtient l'historique des messages. * server/Config.cpp: On peut maintenant mettre des wildcards dans le mask de ban. * configure.ac: Support de gettext dans la compilation Windows. 2007-02-14 Romain Bignon * server/InGame.cpp: Correction d'un bug vicieux. * src/ShowMap.cpp: On peut maintenant scroller la map en maintenant la molette appuyée et en dirigeant la souris vers la direction du mouvement. * server/Channels.cpp: Correction d'un bug qui n'envoyait pas le nmobre de joueurs possédés au meta-serveur. * src/InGame.cpp, src/MapEditor.h: Possibilité de scroller sur les listes d'images avec la molette. * server/Login.cpp, src/Login.cpp: Statistique sur la version du serveur. 2007-02-13 Romain Bignon * src/: Traduction intégrale en anglais. * po/, src/i18n.h: Support de gettext. * po/fr.po: Traduction française. * Passage de tout le code source en UTF-8. * API, server/Channels.cpp, src/JoinGame.cpp, src/InGame.cpp: Changement des messages £ et ° qui sont trop gros pour un char en UTF-8. 2007-02-12 Romain Bignon * src/, meta-server/, server/: Changement complet du protocole ! Utilisation d'enumerateurs, changement dans les fonctions, etc. 2007-02-11 Romain Bignon * server/Main.cpp (sig_alarm): Correction d'un bug qui risquait de faire jarter tous les clients si l'un était victime d'un ping timeout. * server/menareantsd.conf.in: Valeur par défault de server/fping est mise à 25 plutot que 50, pour diminuer par deux le temps de détection d'un ping timeout. * Quelques corrections de bugs. * server/Main.cpp: Ajout du support des signaux HUP, INT et TERM. Mise à jour des paramètres passés au programme. * src/Login.cpp: Permet d'administrer un serveur (premiers outils). * doc/ADMIN: Création d'une documentation pour les administrateurs. * src/Login.cpp: Correction d'un crash. * lib/Outils.cpp: Correction d'un bug par rapport au caractère d'échappement. * server/Units.cpp: Correction d'un crash. * src/JoinGame.cpp: Avertis par message l'owner de la partie lors d'un clic sur "lancer la partie" de ce qu'il manque pour la lancer plutot que de la non possibilité de cliquer sur le boutton, ainsi qu'avertissement si il y a des joueurs non prets. * src/gui/Form.cpp, src/gui/MessageBox.cpp: Correction du FPS (limite augmentée à 30 FPS). * server/InGame.cpp: Correction d'un bug concernant les actions à la sortie d'une unité d'un conteneur. Egalement, maintenant lorsqu'une unité passe par un batiment qu'il peut investir mais qu'il n'y a pas d'enemis dessus (donc pas de combat), on investis quand même et on continue le mouvement. * Création d'une branche 0.4alpha P11 2007-02-10 Romain Bignon * src/InGame.cpp (ARMCommand): Vérifie ET la case visée ET la case de l'unité sendeuse pour voir si l'event est visible ou non. * server/InGame.cpp (InitAnim): Lors d'une création, vérification de si ça ne fait pas un combat avec d'autres unités sur la case. * server/IA.cpp: Amélioration des probabilités que l'IA crée telle ou telle unité. * lib/Units.h (ECBTourist): Elle peut se défendre face à une unité de type infantery, ce qui n'a aucun intérêt (il y a 1 homme à l'intérieur, donc il peut que perdre), mais qui est plus ou moins un hack pour que l'IA l'amène vers l'enemie. Après, comme les japonais sont des samouraï, on peut quand même leur laisser une chance de vaincre un combat contre un ou deux enemies. 2007-02-09 Romain Bignon * src/JoinGame.cpp: Lors du changement de propriétaire d'une country, anoncer uniquement aux joueurs concernés et à leurs alliés le changement. * server/InGame.cpp (ShowAnim ARM_ATTAQ): Si l'unité visée n'est plus attaquable (par exemple, si l'unité visée par une tour défense est allée sur la même case que celle-ci), on n'attaque plus. (ShowAnim ARM_[UN]CONTAIN): Gestion du cas où le parent est devenu un zombie. (ARMCommand): Correction d'un bug lors de la création. (ShowAnim ARM_ATTAQ): Lors d'une attaque de la part d'une entité, on envoie en sendeur uniquement cet entité et plus celles qui sont concernées. * server/Units.cpp, server/Batiments.cpp: On profite maintenant du nouveau système. Une fonction virtuelle permet d'obtenir la liste des entités attaquées. 2007-02-07 Romain Bignon * meta-server/sockets.c: Envoie d'un PING au client et détection du ping timeout. * server/Server.cpp: Gestion des messages du serveur, et réponse au ping. * server/InGame.cpp, server/Map.cpp, server/Channels.cpp: Changement fondamental dans la gestion des évenements. * server/Main.cpp, server/Server.cpp: Abandon du SIG_ALARM pour un système de timer dans la boucle principale. * lib/Map.h, src/Map.h (ECBMove): Merge de ECBMove et ECMove dans ECBMove. * src/gui/Label.cpp: Bugfix: si il y avait gray_disable d'actif, il mettait en gris quand enabled et en couleur quand disable. * src/gui/ListBox.cpp: Attribut "GrayDisable" pour afficher les items en gris si le ListBox est !Enabled(). 2007-02-03 Romain Bignon * src/Sockets.cpp, src/Login.cpp: Utilisation d'un timeout pour la connexion. 2007-01-24 Romain Bignon * src/InGame.cpp: Utilisation de la touche "tab" lors de l'écriture d'un message pour l'auto-complétion. * src/*: Correction d'une foultitude de bugs (freeze en cours de jeu, etc). * meta-server/clients.h, API: Ebauche du protocole 2 du meta-server, qui garde le client connecté en permanence, et probablement avec gestion d'accounts. * src/Login.cpp: Affiche les serveurs où y a quelqu'un en vert. 2007-01-23 Romain Bignon * src/gui/ListBox.cpp: Récupération de la ListBox de wormux, et amélioration pour avoir une scrollbar. 2007-01-21 Romain Bignon * src/tools/Rectangle.h, src/tools/Vector2.h: Importation de ces classes de Wormux pour pouvoir représenter des couples de 2 ou 4 entiers dans un seul type. * src/gui/*, src/*: - Utilisation de Vector2i pour prendre en compte les couples x,y, et de Rectanglei pour les couples x,y,w,h (pour les widgets et les ECImage). - On ne redessine plus que les composants qui le demandent ou qui inter-agissent avec l'utilisateur (si le curseur est au dessus, etc.) * src/gui/Form.h, src/Main.h, src/Config.h, src/InGame.h, src/JoinGame.h, src/Login.h, src/MapEditor.h: La classe TForm met à disposition des fonctions virtuelles de callback pour que les dérivées puissent réagir à un evenement, plutôt que de gérer nous même dans la boucle principale. Ceci permet d'éviter justement l'utilisation de ces boucles, et ainsi les objets s'auto-gèrent. On peut noter les evenements types OnClic(), OnMouseMotion(), OnKeyDown(), BeforeDraw(), etc. * src/Color.h, src/gui/*: Utilisation d'une couleur dans les teintes bleu/violet pour toutes les box (semi transparent). * src/gui/ComboBox.cpp: La liste n'est plus transparente (pour éviter les problèmes), mais sa couleur bleuté est plus jolie que blanche. 2007-01-13 Romain Bignon * src/data/sound/units/McDo.ogg, src/Resources.cpp, src/Units.cpp: Lors de la création d'un McGerbale, diffusion d'un son. * lib/Defines.h: La macro UNSTABLE est desactivée... 2007-01-05 Romain Bignon * src/data/anims/escarmouchebutton: Bouton pour créer une escarmouche à partir de la liste des serveurs. * src/data/anims/missionbutton: Pareil pour les missions. * src/Login.cpp (TListServerForm): Maintenant, en plus de la liste des serveurs, se trouvent des statistiques données par le meta-server et basées sur la liste donnée. En outre, se trouve également deux boutons, "Mission solo" et "Escarmouche", qui choisissent un serveur au hasard parmis ceux présents accessibles, s'y connectent et créent respectivement une mission ou une escarmouche. (TConnectedForm): La liste des parties se trouve maintenant dans cette fenêtre. * src/JoinGame.cpp (TListGameForm): Suppression de cette fenêtre. * meta-server/clients.c, meta-server/servers.c: Création de statistiques sur le nombre de joueurs et de parties crées. * src/Config.cpp: Rajout de la résolution 1680x1050. * src/gui/MessageBox.cpp: On peut maintenir appuyer sur "entrée" pour faire OK. * src/data/anims/escarmouchebutton, src/data/anims/missionbutton: Modification des images des boutons 2007-01-04 Romain Bignon * server/Units.cpp (ECMcDo): Correction d'un crash. * src/data/anims/units/nuclearsearch: Changement de l'image pour une animation (que m'a envoyé thomas y a plusieurs mois..). 2007-01-03 Romain Bignon * src/gui/*, src/Login.cpp, src/JoinGame.cpp, src/InGame.cpp: Support des différences de boutons de la souris (gauche/droit/molette). * src/InGame.cpp, lib/Channels.cpp: Dans une mission solo, par défaut le temps de reflexion est de 0 secondes, donc illimité. * lib/Batiments.h (ECBMine): Correction: elle remarche maintenant. * src/Units.h (ECMissiLauncher): Tire ses missiles plus rapidement. 2007-01-02 Romain Bignon * lib/Map.cpp, server/Channels.cpp, src/InGame.cpp: Création des sauvegardes. 2007-01-01 Romain Bignon * src/Login.cpp: Affichage du ping dans la liste des serveurs. 2006-12-25 Romain Bignon * lib/Map.cpp: Le FindFastPath accepte aussi les cases où l'entité trouve une unité à investir. * src/InGame.cpp: Modification du message d'attente. 2006-12-23 Romain Bignon * src/Sockets.cpp: EC_Client est maintenant utilisable pour plusieurs fins (meta-server et menareantsd). * src/Login.cpp (TListServerForm): Récupération et affichage d'une liste de serveurs depuis un meta-serveur, spécifié dans la conf. 2006-12-22 Romain Bignon * src/data/fonts/: Changement pour une font fixed. * meta-server: Création d'un daemon meta-serveur qui permet de recenser tous les serveurs lancés. Le client se connecte dessus d'abord pour obtenir une liste avec des informations, puis choisis le serveur. * server/*: Utilisation du meta-serveur. 2006-12-08 Romain Bignon * src/Sockets.cpp: Résolution du problème qui faisait crasher lorsqu'il ne trouvait pas une dns. * server/Map.cpp, server/Channels.cpp: Récupération de la partie de la fonction EChannel::RemovePlayer() qui supprimait les evenements des entités, création de la fonction ECEntity::CancelEvents(). * API, server/InGame.cpp, src/InGame.cpp: Gestion de l'annulation pour les unités. 2006-12-05 Romain Bignon * lib/Map.h: Implémentation d'un algorithme de recherche du chemin le plus court (A*). * server/IA.cpp: Application dans la fonction TIA::WantMoveTo(), qui passe de 150 lignes à 25 lignes ! * src/InGame.cpp: Application lors du clique, permettant un clique direct en diagonale. 2006-12-04 Romain Bignon * src/InGame.cpp: Correction du crash de don de territoire. 2006-12-03 Romain Bignon * Release version 0.3.3 2006-12-02 Romain Bignon * src/InGame.cpp: Utilisation de la touche TAB pour chercher les unités inactives. * src/data/units/anims/char: Les chars sont (enfin!) marqués de la couleur du propriétaire. * lib/Colors.h, src/gui/ColorEdit.h: Suppression couleur blanche, rajout du violet, bleu ciel et noir. * src/InGame.cpp (TLoadPlayerLine): Affichage d'un "OK" devant un user quand il est pret (lors du chargement). * server/maps/europa_conquest.map: Rajout de rails sur les ponts pour les joueurs un peu éloignés. * lib/Units.h, lib/Batiments.h: Réduction du prix d'un rail (500$) et d'un train (2000$ pour une capacité de 500) * lib/Map.h: Possibilité de créer un rail sur un pont. * lib/Units.h, lib/Batiments.h: Ajustement des prix en général. * lib/Units.h, server/Units.cpp, src/Units.cpp (ECBAvion): Quand l'avion est en vol et contient des unités, on paye un certain prix proportionnel au nombre d'unités contenues. * src/Resources.cpp, src/Units.cpp (ECMcDo): Image pour la caserne investie du McDo investie du Jouano. 2006-12-01 Romain Bignon * API, server/Channels.cpp, src/JoinGame.cpp, src/InGame.cpp: Possibilité de donner de l'argent à un autre joueur (par le menu des options), ou un territoire à un autre joueur (en sélectionnant la ville en question, en cliquant sur le bouton "Don. Territoire", puis en donnant le pseudo du joueur). 2006-11-30 Romain Bignon * server/Channels.cpp (JOICommand): En cas de recover, on envoie les informations concernant la propriété des countries. 2006-11-27 Romain Bignon * src/data/anims/units/: Utilisation des images pour l'avion. 2006-11-26 Romain Bignon * src/gui/ShowMap.cpp: Lorsqu'une unité est selectionnée, affichage en jaune des cases où elle peut aller, et en rouge des cases où elle peut tirer. * server/Channels.cpp (JOICommand): Lors d'un recover d'une partie par un user, on envoie bien les personnes avec qui il est allié. 2006-11-24 Romain Bignon * Units.h: Création de l'unité Jouano qui permet de bouffer les mcdonalds. 2006-11-23 Romain Bignon * src/InGame.cpp: Bouton qui permet de trouver les unités inactives. * API, src/JoinGame.cpp: Modification du protocole pour la commande INFO. Ça permet la traduction du client en attribuant les messages à celui-ci avec un formatage spécial. Le serveur n'a plus qu'à transmettre l'ID du message et les arguments nécessaires. * server/Channels.cpp, server/Batiments.cpp, server/Units.cpp (EChannel::send_info): Fonction pour envoyer une info à un client. 2006-11-04 Romain Bignon * src/InGame.cpp (ARMCommand): Le timer pour éviter qu'une animation marche plus de 10 secondes marche maintenant. 2006-10-27 Romain Bignon * server/maps/*: Correction du bug du crash lors de la lecture de la liste de maps par le client alors qu'il join une partie. En fait le soucis réside dans le fait que la chaine du nom contenait un 'Î'. Je ne sais pas pourquoi ça crash pour ça mais bon il suffit de ne jamais mettre d'accents dans les noms et ça ne devrait plus poser de problèmes. 2006-10-24 Romain Bignon * src/data/pics/MAA.ico: Icone du jeu. * src/Main.cpp: Utilisation de l'icone du jeu dans la fenêtre. * lib/LibConfig.h: Librairie de lecture (et bientot de sauvegarde) de configuration. * server/Config.cpp: Utilisation de LibConfig. 2006-10-09 Romain Bignon * Units.h: Avion de transport. * lib/Map.h, ...: Gestion de niveaux en hauteur d'une unité. 2006-10-04 Romain Bignon * src/Channels.h: Structure BreakPoint. * src/InGame.cpp (int BPCommand::Exec): Commande de breakpoints. (TInGameForm::Wants TInGameForm::GetWant): Utilisation d'un enumerateur pour les wants, et un want pour poser une balise. (void MenAreAntsApp::InGame): Pose d'une balise. (void MenAreAntsApp::Options): Utilisation d'une ombre derrière les pseudos pour y voir plus clair. (void MenAreAntsApp::PingingGame): Utilisation d'une ombre derrière les pseudos pour y voir plus clair. (void TScoresForm::WantLeave): Utilisation d'une ombre derrière les pseudos pour y voir plus clair. * src/Resources.cpp: Images de balises. * src/Sockets.cpp: Commande BP. * src/data/anims/balise/1.png * src/data/anims/balise/2.png * src/data/anims/balise/3.png * src/data/anims/balise/4.png * src/data/anims/balise/info: Images de la balise. * src/data/pics/cursors/rem_bp.png * src/data/pics/cursors/add_bp.png: Curseurs. * src/Channels.cpp: Structures de breakpoints. * src/gui/Form.cpp (void TForm::Actions): Gestion des touches appuyées directement de SDL. * src/gui/Cursor.h: Ajout des curseurs pour poser ou enlever une balise. * src/gui/Form.h: Gestion des touches appuyées directement de SDL. * src/gui/Cursor.cpp (TCursor::TCursor): Ajout des curseurs pour poser ou enlever une balise. * src/gui/ShowMap.cpp: Affichage des balises. * src/InGame.h: Passage des wants dans un enumerateur. * src/Commands.h: Commande BP. * src/Login.cpp (int MAJCommand::Exec): Changement du texte, adapté suivant l'OS. * src/Resources.h: Images de balise. * src/Sockets.h: Message BP. * src/Defines.h: Début de migration à OpenGL. * src/Main.cpp: Modification credits. * server/InGame.cpp: Commande BP. * server/Channels.h: Structure BreakPoint pour les balises. * server/Commands.h: Commande BP. * server/Main.cpp: Message BP. * server/Main.h: Message BP. * API: Commande BP pour les Balises. 2006-09-27 Romain Bignon * src/InGame.cpp: Le bouton "Voter" se grisait dès que n'importe qui votait. * server/Config.cpp (bool Config::load): Chargement du paramètre ADMINPASS. * server/Commands.h: Ajout de la commande ADMIN * server/Login.cpp: Commande ADMIN qui permet de se loguer, de rehash ou de killer quelqu'un. * server/menareantsd.conf.in: Ajout du paramètre ADMINPASS. * server/Config.h: Variable AdminPass. * server/Server.h: Flag ECD_ADMIN. * server/Main.cpp: Commande ADMIN. 2006-09-26 Romain Bignon * src/InGame.cpp: Anticipation sur un bug qui n'affiche pas dans certain cas AttaqImg, et qui faisait une boucle infinie. On met un timer qui empeche dans la boucle du ARMCommand de faire plus de 10 secondes. * src/Sockets.cpp, src/tools/Images.h: Modifications qui assure le portage à MacOS. 2006-09-24 Romain Bignon * Version 0.3.2 releasée !! 2006-09-23 Romain Bignon * server/Units.cpp (void ECEnginer::Invest): Vérification que Client() ne soit pas nul. * server/Map.cpp (void ECMap::RemoveAnEntity): Vérification que Client() ne soit pas nul. (bool ECEvent::CheckRemoveBecauseOfPartOfAttaqEntity): Vérification que Client() ne soit pas nul. * server/maps/europa_conquest.map: Modifications essayant de rapprocher l'égalité. * server/Channels.cpp (void EChannel::operator<< ): Vérification que Client() ne soit pas nul. 2006-09-22 Romain Bignon * src/InGame.cpp (int ARMCommand::Exec): Ne pas déplacer la camera pour une unité enemie cachée dans les arbres. (const char TInGameForm::GetWant): Affichage de fleches pour un ingénieur pour réparer. (void MenAreAntsApp::InGame): Correction d'un bug qui ne faisait pas avancer sur la case quand une unité ne pouvait pas entrer dans un conteneur sur la case cible. * src/Units.cpp: Ne pas déplacer la camera pour une unité enemie cachée dans les arbres. * src/data/anims/units/mcdo/caserne/1.png: Actualisation de l'image avec la caserne actuelle. * src/data/anims/units/train/dos/1.png: Mise du train vu de face. * src/data/anims/units/train/left/1.png: Mise du train vu de face. * src/data/anims/units/train/right/1.png: Mise du train vu de face. * lib/Units.h: Le mcdo possède 300 pour se défendre, histoire de lui laisser une chance d'arriver à destination. * lib/Defines.h: Passage en version 3.2-pre1 * server/Server.cpp (void TClient::Free): N'affiche pas le message "Deconnexion de x" pour les IA. * server/Units.h: Le McDo ne se bat pas si on l'attaque, ses 300 ne sont que défensifs contre la tour défense. * server/maps/first.map: Modification un peu du terrain avec rajout de quelques mines. * server/maps/three.map: Rajout de quelques mines. * server/maps/ia.map: Modification du nom de l'IA. * server/maps/caraibes.map: Rajout d'une mine pomée. * server/maps/europa_conquest.map: Rajout de mines, et enlève la position de facilité de la Russie. * server/IA.cpp (void TIA::FirstMovements): Ne créé plus les unités n'importe comment, et ne créé plus de batiments au pif. 2006-09-22 Romain Bignon * src/InGame.cpp (void MenAreAntsApp::InGame): Suppression du bouton Attaq. 2006-09-19 Romain Bignon * lib/Channels.h (ECBPlayer): Utilisation de flags dans un int plutot que de bools, ce qui fait économiser de la mémoire, (5 bools = 5 * 8 bits = 40 bits, 1 int = 4 * 8 bits = 32 bits) * lib/Map (ECBCountry): Suppression des flags inutilisés. * lib/Debug.h: assert() ne fait plus d'exception. C'est juste que si DEBUG n'est pas déclaré, il fait comme si y avait NDEBUG de déclaré. Donc quand il n'y a pas le debugage, il fait plus les vérifications. * src/Main.cpp: Mise du core size limit à infinie pour générer un core. 2006-09-18 Romain Bignon * API: Rajout des messages d'erreurs ER3(SERVFULL) et ER4(TOOMUCHGAMES). * server/Config.h: Configuration pour PINGFREQ, MAXCONNEXIONS et MAXGAMES. * server/menareantsd.conf: Configuration pour PINGFREQ, MAXCONNEXIONS et MAXGAMES. * server/Main.cpp: Utilisation du PINGFREQ de la conf. * server/Server.cpp: Utilisation du MAXCONNEXIONS de la conf avec un message d'erreur spécial. * src/Login.cpp: Traitement de l'erreur ER3(SERVFULL). * server/Channels.cpp: Utilisation de MAXGAMES de la conf avec un message d'erreur spécial. * src/JoinGame.cpp: Gestion des messages d'erreurs ER2(IACANTJOIN) et ER4(TOOMUCHGAMES). (TGameInfosForm): Système pour les messages d'erreurs avec une variable string statique. 2006-09-17 Romain Bignon * src/gui/ShowMap.cpp (void TMap::ScrollTo): Implémentation de la fonction. * src/InGame.cpp (ARMCommand): Lors des animations, quand la camera bouge, elle scroll, c'est beau ! * src/InGame.cpp (MenAreAntsApp::InGame): Utilisation des touches UP/DOWN/LEFT/RIGHT pour scroller la map. * src/InGame.cpp (MenAreAntsApp::InGame): Affichage d'un message dans le cas où il y a une animation qu'on ne peut pas voir. * src/InGame.cpp (MenAreAntsApp::InGame): Le bouton "Pret" se desactive dès le clic, pour éviter une succession de clics en cas de lag, risquant de fausser la partie. * src/data/pics/help.png: Recréation de l'image mise au gout du jour. * src/Batiments.cpp: Affiche pour le centre-ville et ses upgrades combien elles rapportent par tours. * server/IA.cpp (UseTransportBoat): Correction d'un grave bug qui ne faisait plus debarquer ! 2006-09-16 Romain Bignon * Correction des assert.h manquants (alors que bizarement sur la majorité des compilateurs ça compile sans). * changelog.sh: Script qui génère à partir du svn diff le changelog. * Batiments.h (ECSilo): Le silo n'est actif que deux jours après la création. * src/Channels.h (ECPlayer): Ajout du compte des votes. * src/InGame.cpp (void MenAreAntsApp::InGame): Corrections d'un crash. (void MenAreAntsApp::PingingGame): Gestion des votes. (TPingingForm::TPingingForm): Gestion des votes. * src/JoinGame.cpp (int SETCommand::Exec): Gestion des votes. * src/gui/Component.cpp (void TList::Clear): Correction d'un bug qui ne reparamétrait pas les infos. * server/Channels.cpp (int SETCommand::Exec): (bool EChannel::RemovePlayer): Ne delete pas même si demandé dans le cas où on est InGame. (bool EChannel::CheckPinging): Vérifie si on est en fin de partie. * API: Le protocole gère les votes. 2006-09-11 Romain Bignon * src/Timer.h: Système qui permet de mettre le timer sur pause. * src/InGame.cpp, src/JoinGame.cpp (TPingingForm): Affichage d'un écran lors du mode +Q (PINGING). * lib/Defines.h: Passage protocole 9 et version 3.2. 2006-09-10 Romain Bignon * lib/Map.h: Correction du bug du cp de l'id dans nick du MapPlayer. * API, lib/Channels.h, server/Server.cpp, server/Channels.cpp: Système pour que le client puisse se reconnecter en cas de perte de connexion. 2006-09-08 Romain Bignon * server/Debug.cpp, server/Server.cpp, server/Channels.cpp: Utilisation de plusieurs fichiers de logs. 2006-09-05 Romain Bignon * lib/Channels.h (ECBPlayer): Passage du nick comme une chaine dans la classe de base. * server/Channels.cpp: Un joueur qui part pendant le jeu n'est pas supprimé et est juste noté comme ayant perdu. Ça permet de garder ses stats. 2006-09-04 Romain Bignon * src/Edit.cpp: Correction du putain de bug super simple à corriger en fait qui empechait d'utiliser d'accents ! 2006-09-03 Romain Bignon * src/InGame.cpp (GetWant): Correction du curseur par rapport au lance missile, curseur "investir" quand on veut entrer dans un conteneur. (InGame): Lorsqu'on souhaite rentrer dans un conteneur mais qu'on n'est pas sur une case adjacente, avancer d'abord suffisament puis ensuite entrer. * lib/Map.h, server/Units.h, server/Units.cpp, src/InGame.cpp: Utilisation d'un fonction CanWalkOn() plutot que d'une variable coté serveur. Ça permet de généraliser l'endroit où l'unité peut marcher d'une part (utilité pour le train), et d'autre part que le client soit au courant. * src/JoinGame.cpp: Le nom du salon est mis par défaut (temporairement, voir), sur "nick's game". * lib/Batiments.h (ECBCapitale): Peut créer des armées. * lib/Batiments.h (ECBMegalopole): Peut créer des armées et des chars. * Batiments.h (ECRail): Rail où peut transiter un train. * Units.h (ECTrain): Train pouvant transporter de l'infanterie et des vehicules légers. * Units.h (ECBoat): Le bateau commence à partir de 5 et il a une capacité de 100 fois plus de son nombre, ce qui simplifie fortement le calcul. * src/Units.h (ECTrain&ECBoat): Affichage de la capacité dans la barre de status. * src/JoinGame.cpp (LEACommand): Correction du bug qui desactivait le bouton "Pret" si un joueur partait. * lib/Map.cpp: Il est maintenant permis de mettre des terrains ensembles du moment qu'ils ne sont pas du même type. 2006-09-02 Romain Bignon * lib/Map.cpp, server/Map.cpp: Création de classes ECase et dérivées coté serveur (plutot que typdef), et mise de la fonction CheckInvests de ce côté. * server/IA.cpp (TIA::WantMoveTo): Au lieu d'avancer droitement sans reflechir quand l'unité est recruté, paramètre de la fonction qui définit si oui ou non on fait ça. * lib/Batiments.h (ECDefenseTower): On peut maintenant acheter et poser n'importe où sur un de ses territoires une tour défense pour 10 000 $. 2006-09-01 Romain Bignon * lib/Debug.cpp: Correction d'un bug qui ne mettait pas les Vars en mémoire. 2006-08-30 Romain Bignon * src/MapEditor.cpp, src/Map.cpp, src/gui/ShowMap.cpp: Utilisation d'une mise en cache de la version de la case "noircie" (pour le brouillard), afin d'éviter que ça rame avec la transparence lors du défilement. D'autre part, réduction des icones des cases dans l'éditeur de maps, ainsi que d'utilisation de deux lignes, afin que l'affichage soit plus clair. 2006-08-30 Romain Bignon * src/MapEditor.cpp: Petites corrections pour que ça soit plus facile à utiliser... * server/maps/europa_conquest: Nouvelle carte représentant l'Europe, de zorkis, corrigée par moi même !! Première carte à six joueurs. Première carte à représenter un environnement réel. 2006-08-26 Romain Bignon * server/InGame.cpp (ARMCommand): Correction d'un crash, si on voulait extraire une unité d'un non conteneur. * server/Map.cpp (Union): Correction, met bien la bonne valeur au RestStep de l'unité receptrice. * server/IA.cpp: Amélioration. * server/InGame.cpp (NextAnim): Dans l'evenement ARM_MOVE|ARM_CONTENER|ARM_UNCONTENER, vérifier les investissions(!) sur la case de l'evenement, et non sur la case de l'entité, car celle-ci pourrait bien avoir un autre mouvement après (lors d'une attaque par exemple). 2006-08-25 Romain Bignon * src/Sound.cpp: Correction (enfin!) du bug qui rendait un son bizarre sous windows. La fréquence était trop élevée. * src/data/pics/fog*: Mise de transparence dans les bords du brouillard. * src/data/anims/units/caserne/1.png: La couleur s'affiche sur le toit. 2006-08-24 Romain Bignon * server/IA.cpp: Système de gestion de strategies. * server/IA.cpp (UseTransportBoat): Stratégie permettant à l'IA d'utiliser les bateaux de transport. * server/InGame.cpp: Correction d'une boucle infinie. * server/maps/: Modification des maps. * src/Units.cpp: Ne fait plus bouger les unités lentement quand on ne les voit pas, les faire passer à la case suivante directement. Ça evite d'attendre trois plombes quand on joue contre des IA. * src/data/anims/normalbutton/: Nouvelles images du boutton. 2006-08-23 Romain Bignon * src/data/anims/units/defensetower: Nouvelle image. * Batiments.h (ECMegalopole): Nouveau batiment de la ville, upgrade du centre d'affaire, qui rapporte 5x. * Map.h (ECMontain): Case "montagne". * src/Resources.h, src/Batiments.cpp, src/Units.cpp: Sons pour les mitraillettes et pour le tir de l'obélisque. * src/InGame.cpp: Correction d'un bug bizare, que quand SDL_Cursor() est appelé depuis le thread, il y a une sorte de boucle infinie. 2006-08-22 Romain Bignon * server/IA.cpp: Restructuration un peu de FirstMovements() avec gestion de strategies que veut faire l'IA. * Makefile.am: Mettre à jour avec "make update" dorénavant, pour ne pas avoir à faire ./config.status --recheck. * Batiments.h (ECTrees): Arbres qui permettent de se cacher derrière. * src/data/anims/units: Nouvelles images pour les membres de la ville. 2006-08-21 Romain Bignon * server/IA.cpp: Correction d'un bug qui faisait que si un joueur partait en pleine partie, et que tous les autres joueurs étaient prets, l'animation ne se lançait pas car les IA attendent que tout le monde soit pret pour se mettre pretes. * src/MapEditor.cpp: Possibilité d'utiliser MAJ pour faire une selection d'un rectangle (première case selectionnée, puis MAJ + case du coin opposé du rectangle de selection formé). * server/maps/caraibes.map: Nouvelle map. 2006-08-19 Romain Bignon * src/Units.h (ECMcDo): Quand un mcgerbale se fait détruire, si il était deployé, mettre la bonne case de destruction de ville. * src/InGame.cpp: Changement des boutons de la souris, clic gauche pour bouger, clic droit pour deselectionner. * server/Batiments.cpp (ECMine::Attaq): N'attaque que les unités sur la même case. * server/InGame.cpp (ARMCommand): Même si il reste des unités qui ont pas bougés, si y en a une qui a déjà bougé, bouger l'attaque. * src/data/pics/cursors/left.png: Utilisation d'un nouveau curseur unique pour le déplacement. 2006-08-18 Romain Bignon * lib/Map.cpp, src/MapEditor.cpp: - On se souvient des lignes cachées pour les réafficher quand on écrit la map. - On peut paramétrer si c'est une mission ou pas dans les options de l'editeur de maps. * src/InGame.cpp, server/Channels.cpp (SETCommand): Dans une mission, on ne peut plus s'allier 2006-08-13 Romain Bignon * lib/Channels.h, server/Channels.cpp, API: Si on join le chan '.', c'est une mission solo que personne ne peut joindre. * lib/Map.cpp, server/Map.cpp: Si "_Mission" spécifié, la map est une mission. * server/IA.cpp (TIA::Join): Fonction pour joindre un salon plutot que de faire envoyer JOI à l'IA, ça evite déjà de devoir recevoir et traiter tous les messages de join (liste des maps et map), et ensuite de faire joindre une IA à une mission. * src/JoinGame.cpp (GameInfos): Modification pour utiliser TGameInfosForm pour les missions. * src/InGame.cpp, src/MapEditor.cpp: Utilisation d'un scroll pour chercher dans la liste des unités (barrelat et barreact). En outre, utilisation du même composant TBarreLatIcons de InGame.h pour MapEditor.cpp * server/Map.cpp (ECEvent::CheckRemoveBecauseOfPartOfAttaqEntity): Correction d'un bug. 2006-08-05 Romain Bignon * lib/Outils.cpp (GetFileList): Pour windows, correction d'une boucle infinie si il trouve un dossier. 2006-08-04 Romain Bignon * lib/Map.cpp (ECBEntity::CanBeCreated): On peut créer une unité sur un batiment d'un de ses allié. * src/gui/Component.h, src/gui/ChildForm.cpp, src/gui/Form.cpp: Correction avec les hints, fonction TComponent::HaveHint(). * server/InGame.cpp (EChannel::NextAnim): Correction d'un bug qui purgeait les unités qui étaient dans un evenement d'attaque mais dont ce dernier était supprimé. * lib/Outils.cpp (GetFileList): Correction d'un plantage si le rep n'existe pas. 2006-08-03 Romain Bignon * lib/Map.h (ECEntity::Create): Fonction qui est appelée quand une unité en créer une autre. * server/Units.cpp (ECMcDo::Invest): Tout un principe pour que la caserne puisse avoir un mcdo et effectuer ses taches. * src/InGame.cpp: Bouton "Infos" qui permet d'avoir pleins d'infos sur une unité dans la BarreAct. * src/Batiments.h, src/Units.h (Description): Fonction virtuelle pure qui retourne une chaine avec une description très complète de l'unité qui sera sortie dans les infos d'une unité. * src/Map.h (ECEntityList): Fonctions CanAttaq() et CanInvest() qui retournent la liste des entités que l'unité peut attaquer et investir. 2006-08-01 Romain Bignon * Units.h (ECMcDo): Unité Donald De McGerbale qui ne fait pour le moment.. rien. * lib/Map.cpp (CheckChangingOwner): Fonction renomée en CheckInvests(). (CheckInvests): Maintenant vérifie aussi si une quelconque unité de la case peut investir l'unité en question. * server/InGame.cpp (EChannel::NextAnim): On envoie plus le ARM_ATTAQ si il y a que des amis. 2006-08-01 Laurent Defert * src/Batiments.cpp (ECDefenseTower::AfterDraw): Envoie d'un boulet de manière parabolique. 2006-07-31 Romain Bignon * lib/Outils.cpp (GetFileList): Ne pas noter les dossiers. 2006-07-30 Romain Bignon * AVERTISSEMENT AVEC LE SON: Je me suis apperçu qu'avec gdb il y avait quelques problèmes avec la musique ou le son. Si jamais ça vous arrive, coupez la musique voir les effets dans les options, ou alors lancez sans gdb pour en profiter même si ça empeche de trouver les crashs. Ça m'a l'air d'être un problème avec gdb par rapport aux threads, je sais pas trop pourquoi, gdb merde un peu. * lib/Outils.h (GetFileList): Création d'une fonction qui permet d'obtenir la liste des fichiers à partir d'un nom de repertoire. * src/Sound.cpp: Gestion d'une liste de musique, pour lire tous les fichiers audio inclus dans un répertoire. * server/Map.cpp (ECEvent::operator<): Afficher en premier les evenements qui ont d'autres evenements liés, pour les attaques, histoire d'éviter par exemple un tir de lance missile sur la case où va aller l'unité toucher mais qui n'y est pas encore car son evenement de mouvement est lié à une evenement d'attaque qu'on va avoir plus tard. (CheckRemoveBecauseOfPartOfAttaqEntity): On ne rejoint pas une attaque existante quand notre attaque bouge, on en créer forcément une. * server/Channels.cpp (CheckReadys): Même dans les parties longues, ne pas avoir à trouver les mines pour gagner. * src/Batiments.h: Variable explosion pour gérer les sprites à afficher lors de l'explosion d'un batiment. Application sur la mine. 2006-07-29 Romain Bignon * server/IA.cpp (JIACommand): N'envoie plus le +! inutile car il réagit au SET +m lors du join. 2006-07-27 Romain Bignon * src/Sound.cpp (Sound): Système de gestion sonore, d'un coté il y a les fonctions statiques pour l'initialisation et la gestion globale, de l'autre coté il y a l'instanciation unique pour chaque fichier sonore. * src/Resources.h: L'implémentation de la fonction d'instanciation d'une ressource passe dans le .cpp, comme ça on évite d'inclure Images.h, Sound.h et Defines.h dans les en-tetes, et donc de devoir recompiler tous les fichiers utilisant des images pour la modification de Sound.h ! * src/data/sound/dingdong.wav: "Hoo, you touch my tralala... Hmm, my ding ding dong", écran des scores. * src/data/sound/start.wav: "Controle de la bataille activée", début d'une partie. * src/data/sound/begin.wav: "Nouveau tour", nouveau tour. * src/data/sound/end.wav: "Fin du tour", fin d'un tour. * src/data/sound/resources.wav: "Ressources insuffisantes", pas assez d'argent pour construire. * src/JoinGame.cpp, src/InGame.cpp: Utilisation des sons. * src/gui/Form.cpp (TForm::Update): Mise de la limite FPS là pour que ça soit effectif partout. * src/MapEditor.cpp (MenAreAntsApp::MapEditor): Correction d'un bug qui ne permettait pas d'ouvrir la première map de la liste. (TLoadMapFile::Refresh): Marche maintenant sous windows. * src/Config.cpp: Permet de ne pas avoir la musique. * lib/Map.cpp (ECBMap::Destruct): Correction d'un plantage quand on ferme une map à partir de l'éditeur de maps. * configure.ac: Utilisation de SDL_mixer pour linux et en dur d'un lien direct vers la lib de mon pc (et oui) pour pouvoir compiler. * server/maps/ia.map: Nouvelle map où on est censé se battre contre une IA forte dès le début. * server/IA.cpp: Maintenant, les IA s'allient entre elles au début de la partie, et quand un des joueurs humain s'allie avec une IA, celle ci se des-allie avec ses alliées IA, puis s'allie avec l'humain. Ensuite donc un nombre variable d'humains peuvent s'allier avec l'IA, mais quand plus aucun humain n'est allié avec l'IA, celle ci s'allie avec toutes les IA qui n'ont pas d'alliés humains. * src/gui/Cursor.cpp (TCursor::~TCursor): Réaffiche le curseur. 2006-07-26 Romain Bignon * lib/Map.cpp, lib/Units.h, server/Units.cpp: Les ingénieurs peuvent réparer les batiments endomagés. * lib/Map.cpp: On peut maintenant construire sur les territoires de ses alliés. 2006-07-25 Romain Bignon * src/InGame.cpp (InGame): Utilisation du limiteur de fps. * src/tools/SDL_rotozoom.c: Comme la compilation pour windows ne marche pas avec cette librairie, je l'ai inclus. * src/tools/Video.cpp: On peut mettre le plein écran sous windows, mais il faut admettre que ça merde un peu. 2006-07-23 Romain Bignon * lib/Batiments.h (ECObelisk): Création de l'Obélisque du NOD. * src/tools/Images.h (DrawLargeLine): Fonction pour dessiner une ligne large de 3x3 pixels. * src/Map.cpp, src/Batiments.cpp: Utilisation générique de la terre sale, et utilisation d'un "dead case" quand un batiment de la ville est détruit, pour pas que ça fasse cassure. 2006-07-22 Romain Bignon * Passage à la version 0.3(P7)(SVN-801)-dev * lib/Batiments.h (ECDefenseTower): Récupération de ECityBuilding pour créer la Tour de défense. * src/gui/ShowMap.h: Utilisation d'un système de callback pour afficher des sprites après les entités. * server/Channels.cpp: En mode "partie rapide", les batiments cachés ou d'eau ne comptent plus pour être maintenu en vie. 2006-07-20 Romain Bignon * src/Batiments.h (ECMine): Création des mines. * src/Map.h, server/InGame.cpp: Fonction constante "IsHidden" qui n'affiche l'unité concernée qu'aux alliées, et à tout le monde lors d'un combat. * src/data/pics/barrelat.png: Intégration d'une nouvelle barre laterale. * src/gui/ProgressBar.cpp: Flag "background" qui permet de le cacher. 2006-07-19 Romain Bignon * Units.h (ECTouriste): Touriste Japonais, première unité spéciale d'une nation. * lib/Map.h, lib/Units.h: La fonction CanBeCreated(ECPlayer* pl) redirive vers CanBeCreated(pl->Nation()) qui est créée et qui renvoie "true" par défaut pour toutes les unités, et les unités spéciales surchargent la fonction en renvoyant "true" que pour la nation qui peut la créer. * src/Map.cpp (SetShadowedCases): Correction du bug qui mettait un champs de vision trop gros si l'unité était trop près du bord de la map. * src/gui/Cursors.cpp, src/InGame.cpp: Curseur de selection sur le radar. 2006-07-18 Romain Bignon * src/gui/Cursor.cpp (TCursor): Création du composant qui gère les curseurs. * src/InGame.cpp: Utilisation du TCursor dans le jeu. * src/data/pics/cursors: Ajout de plusieurs curseurs (à titre experimentaux). * lib/Map.h, lib/Batiments.h: ECBEntity::IsCity() pour différencier les CountryMaker des autres batiments de la ville. * server/InGame.cpp: Même quand on a pas bougé on vérifie quand même qu'il y a pas attaque. * server/Map.cpp: Tous les batiments de la ville sont changés d'owner. * server/Units.cpp: Affaiblissement de la puissance des lance-missiles. 2006-07-17 Romain Bignon * server/Channels.cpp (KICKCommand): Correction d'un bug avec les IA. * src/JoinGame.cpp (LEACommand): Met à jour le bouton "Lancer la partie". * src/gui/Component.h (Mouse): Fonction qui détecte la présence de la souris sans inclure le fait que le composant soit ou non Enabled. * server/maps/: Remodelage des maps en utilisant les "nouvelles villes" de 4 cases (enfin trois pour le moment). * lib/Batiments.h: - La caserne et l'usine de chars ne sont plus constructibles. - Le centre d'affaire (ex Capitale) est l'upgrade du centre ville (ex Ville). * src/gui/ShowMap.cpp (Draw): Les batiments sont dessinés en même temps que les cases, ce qui fait que dans tous les cas les unités sont au dessus des batiments. 2006-07-16 Romain Bignon * src/Images.h (ECSpriteBase): Reprogrammation de la fonction d'ouverture pour l'adapter un peu plus au c++. (ECImage): Gère maintenant le canal alpha des images. * src/Resources.h, src/data/pics/fleches/: Recréation des fleches en utilisant le canal alpha. * server/IA.cpp: Modifications rapides de l'IA qui n'améliorent pas encore vraiment le problème des côtes. * src/data/anims/cases/terre/2.png: Autre image pour le cratère. * src/JoinGame.cpp: Petit timer pour voir la fin des combats. 2006-07-15 Romain Bignon * server/IA.cpp (FirstMovements): Amélioration importante: l'IA cherche à aller vers l'enemie (bien que le code soit pas encore très beau). 2006-07-14 Laurent Defert * src/JoinGame.cpp: Animation de la translation de la barre laterale. 2006-07-14 Romain Bignon * server/Channels.cpp, src/JoinGame.cpp: Implémentation du KICK. * server/IA.cpp (LEACommand): Il s'autosupprime bien. 2006-07-13 Romain Bignon * lib/Map.h, server/InGame.cpp, src/InGame.cpp: Système d'upgrade programmé, fonctionnel et disponible pour plus tard. * lib/Units.cpp (UnContain): Correction d'un bug très vicieux qui a nécessité du temps de recherche et qui pouvait causer une crash (juste parce qu'on a ajouté deux fois l'unité dans la liste d'une ville). 2006-07-12 Laurent Defert * src/ShowMap.cpp, src/Resources.h: Bords au brouillard de guerre. 2006-07-12 Romain Bignon * lib/Map.h, lib/Units.h, lib/Batiments.h, server/Units.h, server/Batiments.h, src/Units.h, src/Batiments.h: restructuration. * src/data/anims/brouillard, src/Units.cpp, src/Map.h: - Support des animations lors des attaques. - Première animation: brouillard. 2006-07-11 Romain Bignon * src/v.sh, src/Version.cpp, src/Main.cpp: Affichage de la version svn. * src/data/, src/Resources.h, lib/Units.h, server/Units.h, src/Units.h (ECEnginer): Création de l'ingénieur. * lib/Map.cpp, lib/Batiments.h, lib/Units.h, server/Map.cpp, server/Units.cpp: Principe de l'investissement, étendue à la capture des villes. * src/Defines.h, src/data/anims/cases/*: Intégration de nouvelles images pour les cases, format 100x100 * src/v.sh, src/Version.cpp, src/Main.cpp, src/Makefile.am: Affichage de la révision svn. * src/Map.cpp, src/InGame.cpp, src/JoinGame.cpp, src/MapEditor.cpp (CreatePreview): - Utilisation de flags plutot que d'un booléen "ingame" arbitraire. - Affichage des limites des countries meme sur la meme dans l'editeur de map. - Affichage des unités neutres en blanc. 2006-07-10 Romain Bignon * src/Main.cpp, src/Login.cpp, src/Config.cpp, src/JoinGame.cpp, src/InGame.cpp, src/MapEditor.cpp: Optimisation du jeu pour choisir une autre resolution. * server/IA.cpp: Amélioration de l'IA: peut créer des batiments. 2006-07-08 Romain Bignon * lib/Outils.h (ECList): Suppression des fonctions inutiles Moved() et Available(). * lib/Defines.h (FOR): Macro sous la forme "FOR(type, vecteur, pointé par iterateur)", genre "FOR(ECEntity*, entities, entity)". Voir la documentation dans lib/Defines.h. * server/Server.h, server/IA.cpp: Utilisation de std::string... * src/Main.h, src/InGame.cpp: Affiche un message lors de la première partie. * src/gui/ShowMap.cpp: Quelques corrections.. 2006-07-05 Romain Bignon * lib/Map.h (ECBEntity): Sauvegarde de la map associée. * src/gui/ShowMap.cpp, src/InGame.cpp, src/Map.cpp: Utilisation de MustRedraw() pour ne réafficher les cases que si nécessaire. * src/gui/Fps.cpp (TFPS): Création de la classe qui calcule les frames par secondes. * src/InGame.cpp: Utilisation d'un TFPS. 2006-07-04 Romain Bignon * src/gui/ProgressBar.h (TProgressBar): Récupération du composant TProgressBar de wormux. * lib/Channels.h, server/Channels.cpp, src/JoinGame.cpp, src/InGame.cpp: Programmation du temps maximum de reflexion par tours. * server/Batiments.cpp (ECNuclearSearch): Envoie à tout le monde du nombre de missile d'un batiment. * src/Batiments.cpp (ECNuclearSearch): Affichage d'un message d'avertissement lors de la creation d'un centre de recherches nucléaire. * server/Channels.cpp, lib/Channels.cpp: Supprime bien la map dans le destructeur du channel, après avoir détruit les players. En outre, dans le destructeur de ECBPlayer, paramètre l'owner à 0 de chacunes de ses entités. 2006-07-03 Romain Bignon * Obtention du bac. * server/Channels.cpp (RemovePlayer): Suppression des entités de la liste des players, pour satisfaire au destructeur de ECBNuclearSearch qui regarde la liste des players. * src/Config.cpp: Correction d'un bug de lecture de la configuration. * src/ListBox.cpp: Décolorie bien les lignes déselectionnées. 2006-07-02 Romain Bignon * server/Map.h, server/Units.cpp, server/Batiments.cpp, server/InGame.cpp (ECEntity/Attaq()): Passage en argument de l'event, comme ça ECSilo::Attaq() connait la case plutot que de chercher chez les attaqués. 2006-06-30 Romain Bignon * server/Batiments.cpp, server/InGame.cpp: Corrections... * lib/Map.h, src/Map.h, src/InGame.cpp: Passage du ECDate en temps que variable et non de pointeur, et utilisation d'une mémorisation de la date initiale ainsi que du nombre de tours écoulés pour les stats de fin de partie. * src/gui/Label.cpp, src/Login.cpp, src/JoinGame.cpp, src/InGame.cpp (TLabel): Ne pas donner de position X place le composant automatiquement centré (horizontalement) à l'écran. 2006-06-29 Romain Bignon * server/Channels.cpp, server/Map.h, server/InGame.cpp, server/Batiments.cpp: N'envoie les informations du nombre des unités encore vivantes après un combat qu'aux joueurs concernés par le combat. * src/*: Énorme travail de réécriture, notament avec un nouveau système de gestion de l'affichage à l'écran (Video.h), une imposition de ECImage en substitution de SDL_Surface* dans les composants, décentralisation de MenAreAntsApp. 2006-06-28 Romain Bignon * server/Batiments.cpp: Le silo peut attaquer tout ça c'est operationnel. * lib/Batiments.cpp: Le silo ne peut être créé que si il y a un centre de recherches, et le centre de recherches ne peut être créé qu'une fois. * src/JoinGame.cpp: Recréation de la liste latérale lors d'un nouveau tour. * src/Resources.h, data/*, src/Batiments.h: Mise en place graphiquement de l'utilisation du silo. * src/Map.h, src/Batiments.h, src/Units.h (ECMissile): Création d'une classe auxiliaire ECMissile à utiliser pour les unités qui lancent un missile de manière verticale (première étape avec le missile qui va vers le haut à partir de la zone de lancement, seconde étape où il va vers le bas jusqu'à sa cible). 2006-06-27 Romain Bignon * src/Units.cpp (ECMissiLauncher): Correction d'un bug quand on fait une attaque SUR MOI (donc je ne lance pas de missile). * lib/Batiments.h, server/Batiments.h, src/Batiments.h (ECNuclearSearch): Création du centre de recherches nucléaire. * lib/Batiments.h, server/Batiments.h, src/Batiments.h (ECSilo): Création du silo de missile nucléaire. * server/Channels.cpp, server/Batiments.cpp (SendArm): Support du flag '~' pour l'envoie de données (voir API). * src/Batiments.h, src/InGame.cpp, src/Map.h: Utilisation d'une information spécifique à une unité (fonction virtuelle) pour s'afficher dans la BarreAct. 2006-06-25 Romain Bignon * lib/Units.h (ECBBoat): Limiter à 50*Nb() le nombre d'hommes maximum qu'une armée puisse contenir pour pouvoir entrer. * src/InGame.cpp: Rajout de messages lorsqu'on ne peut pas envoyer dans un conteneur, on qu'on ne peut pas créer une unité/batiment. * src/Units.cpp (WantMove): Correction d'un bug. * server/InGame.cpp, src/InGame.cpp: Gestion des uncontenings (out). * lib/Map.cpp, src/Map.cpp: Correction de plusieurs problèmes. * lib/Map.h, server/Channels.cpp: Utilisation d'un flags (&) qui dit qu'un evenement n'est pas le principal. * server/Channels.cpp (SendArm): Dans les évenements liés, dans le cas d'une attaque (en particulier) envoyer une ligne avant si jamais ce n'est pas un ARM_MOVE (pour faire ARM_MOVE|ARM_CONTAINING) en enlevant le ARM_MOVE. 2006-06-24 Romain Bignon * src/Units.cpp (ECMissiLauncher): Lors d'une attaque composée d'un mouvement, le lance-missile réagissait anormalement en se reployant... * src/InGame.cpp (ARMCommand): Support du containing (in). * server/Units.cpp (EContainer): Gestion des unions, des attaques etc pour les conteneurs. * src/InGame.cpp (BarreAct): Affichage de l'objet contenue. * server/InGame.cpp (NextAnim): Gestion des contenings, des unions par conteneurs, etc. 2006-06-22 Romain Bignon * src/InGame.cpp (Options): Si jamais le jeu se met brusquement à passer en ANIMING ou autre, fermer cet écran. * src/data/pics/help.png: Image d'aide lorsqu'on appuie sur F1. 2006-06-21 Romain Bignon * server/InGame.cpp, server/Channels.cpp, API: Programmation du ')' (contenir). * lib/Units.h, server/Units.h (EC[B]Container): Classe de base pour les unités conteneurs. * lib/Map.h, server/Map.h, server/InGame.cpp: Remplacement de l'utilisation dans le serveur des Locked() par des Shadowed() pour pouvoir se servir de Locked() dans le cas d'une unité verouillée MAIS NON A SUPPRIMER. 2006-06-20 Romain Bignon * server/InGame.cpp: - Support des attaques sur la case de départ d'une unité qui a bougé. - Correction d'un bug qui faisait inclure dans un combat toutes les unités d'une case lors des resultats et qui pouvaient faire revivre une unité disparue lors d'une union, soit resupprimer une unité lors d'un double combat. * server/Channels.cpp: Corrections concernant les fins de jeux. * src/Map.cpp: Petite correction, on ne voyait pas le trait si il était vertical. * server/Channels.cpp (SendArm): En cas de mouvement, n'afficher les déplacements que jusqu'à la case actuel du joueur pour eviter les desynch. Note que ça ne résouds tout de même pas le problème qui fait que lorsqu'un attaquant s'enlève d'une attaque, les autres attaquants "passifs" qui récupèrent leur mouvement vont avancer au maximum jusqu'à la case de l'attaque, et pas plus loins comme le mec l'avait prévu. * API, server/Channels.cpp, src/JoinGame.cpp: Mode +b pour définir l'argent de début de partie. * lib/Map.cpp, src/MapEditor.cpp: Suppression du BEGIN des maps. * src/gui/SpinEdit.cpp, src/gui/ColorEdit.cpp: Corrections... * lib/UnitsList.h, lib/Batiments.h, server/Batiments.h, src/Batiments.h, src/data/anims/units/shipyard: Chantier Naval. * lib/UnitsList.h, lib/Units.h, server/Units.h, src/Units.h, src/data/anims/units/boat: Bateau de transport. * server/IA.cpp: L'IA sait construire avec les batiments, ainsi que "recharger" ses unités. * src/InGame.cpp: Correction d'un soucis qui faisait une desynch lors d'une attaque, si jamais une unité (à moi) de l'attaque n'a plus de mouvement dans la commande, parce que l'attaque l'en empeche, mais qu'elle avait un mouvement anticipé, le client le faisait bouger car il ne supprimait pas le contenu de ECEntity::Move(). 2006-06-19 Romain Bignon * src/InGame.cpp: Affichage d'un panneau de scores. * API, server/Main.h, server/Server.cpp, src/Commands.h, src/Sockets.cpp, server/Channels.cpp: - Commande SCO pour les scores. * server/Channels.cpp, server/InGame.cpp, server/Map.cpp: Stats du joueur. * lib/Map.h, server/Map.h: Passage de "shooted" et du ReleaseShoot() dans le serveur. * server/Channels.cpp: Détermination, grace notament au +r(partie rapide), si un joueur a perdu, et quand on passe en +E. * API, src/JoinGame.cpp, server/Channels.cpp: Mode +£ pour indiquer qu'un joueur a perdu, et +E pour les scores. 2006-06-17 Romain Bignon * server/Map.cpp (ECEvent/operator<): Le "reploiement" se fait maintenant avant un déplacement. * src/Map.cpp, src/ShowMap.cpp: Stockage de l'image de la trajectoire d'une attaque dans l'entité même qui l'affiche lui même sur l'écran. Ça évite de tout redessiner à chaques fois et surtout les plantages. * src/gui/CheckBox.cpp, src/data/anims/checkbox (TCheckBox): Programmation d'un nouveau composant TCheckBox. * API, src/JoinGame.cpp, server/Channels.cpp: Nouveau mode +r (Partie rapide). 2006-06-13 Romain Bignon * Projet sur svn gna 2006-06-02 Romain Bignon * servers/maps/three.map: Map pour trois joueurs * src/gui/*: Petites modifs rapides à faire et longues à retrouver. 2006-06-01 Romain Bignon * src/gui/Label.cpp: Utilisation d'une variable "shadowed" pour afficher un petit fond qui permet de bien voir. * src/gui/Memo.cpp: Utilisations de TLabels plutot que de la classe exotique propre à TMemo. Ceci permet d'utiliser le shadowed du Label, et surtout d'éviter les nombreux TFont::WriteLeft() qui bouffent à mort. 2006-05-31 Romain Bignon * server/Units.cpp, server/Units.cpp: Délégation de la détection d'unité sur la case cible à ARMCommand::Exec. * src/MapEditor.cpp: INFO par defaut. * API, server/Channels.cpp, src/JoinGame.cpp: Affichage dans le Hint de la première ligne d'infos des maps. * server/maps: Modification des titres et des infos. * src/InGame.cpp: Ctrl + clic: attaque maintenue, shift + clic: attaque volatile. (note: sans avoir besoin de cliquer sur "Attaquer") 2006-05-28 Romain Bignon * server/InGame.cpp: Correction d'un bug, si jamais un evenement d'une attaque contient des locked, surtout ne pas envoyer le ARM* et surtout supprimer l'evenement, sinon boucle infinie ! * src/InGame.cpp: Correction d'un bug qui faisait apparaitre un mouvement non réel si jamais le serveur envoyait un ARM*= pour une unité qui finalement ne bougeait pas (mais qui avait quand meme un évenement lié, cf attaque en chemin). 2006-05-27 Romain Bignon * API, server/Map.cpp, server/InGame.cpp, src/InGame.cpp: Possibilité d'attaques "maintenues" ou "volatiles". Dans le premier cas, il faut maintenir ctrl enfoncé lors du clic pour l'attaque. L'attaque volatile permet que si une unité de la case visée bouge, il y ait un déplacement de la cible de l'attaque. * src/Map.cpp, src/InGame.cpp, src/MapEditor.cpp: Modification de la preview pour que chaque pixel soit uniformisé, ça fait plus beau. 2006-05-25 Romain Bignon * src/Map.cpp, src/data/ShowMap.cpp, src/Units.cpp: Corrections pour les attaques du lance missile ou déploiement hors champ de vision. * server/InGame.cpp: Correction pour les combats qui ne sont pas "jusqu'à la mort". * server/Config.cpp, server/Login.cpp: Stockage du motd dès le début. * src/Doxyfile, server/Doxyfile: Affiche la doc de lib/ dans les deux, ce qui devient plus interressant. 2006-05-24 Romain Bignon * src/Resources.h, src/data/anims/cases/terre/2.png, src/Units.cpp: Affichage d'un "cratère" quand y a eu un combat. * src/Resources.h, src/data/anims/units/missilauncher, src/Units.cpp: Propres images au lance-missile. * src/Images.cpp: Rajout d'un système de selection de l'ordre de lecture, de répétition ou non, quelques corrections. * server/InGame.cpp: Correction d'un bug sur les attaques (lors d'une attaque en cours de chemin d'un autre type, vérifier si il n'avait pas une attaque plus loins, et si oui se barrer). * src/Map.h, src/JoinGame.cpp: Corrections pour le lance missile dans la barreact, pour les boutons, et affichage d'un label en bas pour des infos (déployé, en instance de déploiement et locked). * src/gui/Label.cpp: Correction d'un crash en cas de chaine vide. * src/gui/ShowMap.cpp: Affichage d'un trait rouge lors d'une attaque à distance. * server/Channels.cpp: On voit les infos cachées de ses alliés. * src/Map.cpp: Affiche un rayon. 2006-05-23 Romain Bignon * src/MapEditor.cpp: Ne permet pas la sauvegarde tant qu'on n'a pas configuré la map. En outre, faire toutes les vérifications minimum. * src/Map.cpp, src/gui/ShowMap.cpp: Actualisation des images des cases uniquement quand c'est nécessaire. 2006-05-22 Romain Bignon * lib/Map.cpp: Visibilité. * src/Map.cpp, src/InGame.cpp, src/gui/ShowMap.cpp, src/MapEditor.cpp: Affichage d'un brouillard de guerre. * server/InGame.cpp: Correction d'un bug qui ne faisait pas d'attaques lorsqu'on créait une unité sur une ville et que quelqu'un avait commencé à bouger dessus (le pire c'est que je l'avais déjà corrigé, et je l'ai recréé). 2006-05-21 Romain Bignon * src/gui/ListBox.cpp: Correction d'un bug de ScrollTo(). * server/Login.cpp: Tentative de correction d'un bug. * src/MapEditor.cpp (OptionsMap): Rajouts de labels et de hints pour que ça soit plus explicite. * src/data/anims/cases/pont*, src/Resources.h, src/Map.cpp: Implémentation des ponts. * server/maps: Utilisations des ponts. 2006-05-20 Romain Bignon * server/Channels.cpp (SetMap): N'envoie plus les lignes UNIT qui sont inutiles au client. * src/Map.cpp: Affichage sans l'aide des villes des numeros des joueurs à des positions satisfaisantes. Affichage de couleurs dans la preview dans la pré-partie pour savoir quels territoires appartiennent à qui. * server/IA.cpp: Accepte les alliances, corrige le bug des \r\n non supprimés et fait pour le moment des déplacements bateaux. * lib/Map.cpp: Lors de la vérification de si on change d'owner, on ne peut plus piquer les countries de ses alliés ! * src/MapEditor.cpp: L'éditeur de maps est fini. 2006-05-18 Romain Bignon * server/IA.cpp (SETCommand): En PLAYING, ne se +! que quand tous les humains sont +!. 2006-05-17 Romain Bignon * src/Map.h, src/Units.h, src/Batiments.h (RefreshColor): Permet de modifier la couleur attribuée à une unité. * src/Map.cpp: Correction pour l'affichage des unités sur la preview. 2006-05-14 Romain Bignon * lib/Batiments.h, server/Batiments.h, src/Batiments.h: Passage des villes en unités à part entières. * lib/Map.h, server/Map.h, server/InGame.cpp, src/InGame.cpp, src/Map.h: Suppression des cases ville et capitale. 2006-05-13 Romain Bignon * lib/Map.cpp, server/Channels.cpp: Programmation du support d'UNIT dans les fichiers maps pour décider à l'avance des unités présentent sur la carte au lancement. Suppression de SOLDATS. * src/Main.cpp, src/MapEditor.cpp, src/ShowMap.cpp: Création d'un éditeur de maps. * server/InGame.cpp: Correction d'un bug lors des animations des unions. 2006-05-12 Romain Bignon * server/Map.cpp (Return), server/InGame.cpp: Correction d'un bug qui, lors d'un combat en cours de chemin, faisait buguer. * API, lib/Channels.h, server/Channels.cpp, src/InGame.cpp, src/JoinGame.cpp: Gestion des alliances. Menu "Options". * lib/Map.h (ECBEntity): Fonction CanBeCreated(ECBPlayer*) pour vérifier si un player peu globalement créer l'unité (avec les nations). * src/InGame.cpp: On ne peut plus cliquer sur l'icone d'un batiment si on a pas assez d'argent. * src/Map.h: Vérification si un batiment peut etre construit par le player. 2006-05-09 Romain Bignon * lib/Map.h, lib/Units.h, lib/Batiments.h: Utilisation d'une fonction Qual() qui retourne un qualificatif pour une entité ("l'armée", "la caserne", etc) utilisé dans un message au joueur. * server/Units.cpp (ECMissiLauncher): Le lance missile peut louper sa cible si la distance est trop élevée, et la distance influe sur les degats. * src/InGame.cpp: Modification des messages en réponse à ARM. 2006-05-08 Romain Bignon * server/Channels.h: Opérateur << sur EChannel& qui envoie un message INFO à ses users. * API, server/Server.h: Message INFO qui affiche une info sur l'écran du joueur. * src/InGame.cpp: Réception des INFO et modification du TMemo des messages. * API, server/Channels.cpp, src/InGame.cpp: Changement du protocole sur les déploiements, utilisation de '{' et '}' pour que ça soit plus explicite niveau client. 2006-05-07 Romain Bignon * lib/Units.h, server/Units.cpp, src/Units.cpp (EC[B]MissiLauncher): Support des attaques uniquement en déployé. * API, server/InGame.cpp, server/Channels.cpp, src/InGame.cpp: Support du deploiement ('#'). 2006-05-06 Romain Bignon * data/case.png, src/gui/ShowMap.cpp: En mode "schema" affichage du quadrillage. * src/gui/BouttonText.cpp, src/tools/Images.cpp, src/gui/MessageBox.cpp: Corrections. * src/gui/Images.cpp: Correction d'un bug assez fondamental qui ne libérait pas les ressources. * data/pics/units/missilauncher_pics.png, lib/Units.h, server/Units.h, src/Units.h: Création du lanceur de missiles. * server/IA.cpp: Remplace les ' ' par des '_' dans le pseudo de l'IA. 2006-05-03 Romain Bignon * src/Config.cpp: Possibilité d'ajouter ou de supprimer un serveur à la liste. * src/gui/ListBox.cpp: Possibilité de retirer un item. * src/Main.cpp: Affichage des Credits. * src/gui/ShowMap.cpp: Possibilité de selectionner plusieurs entités qui sont sur la meme case (répétition du clic sur la case). * server/Units.cpp, server/InGame.cpp: Gestion des attaques en cours de chemin. * server/Channels.cpp, server/Map.cpp: Correction de bugs. * lib/Outils.h: Correction de ECList::Clear(). 2006-05-02 Romain Bignon * src/Main.cpp: Affichage du numero de version. * lib/Map.cpp: Correction du bug de la création des entités. * server/InGame.cpp: Correction du bug des attaques tuaient des entités qui devaient vivre. 2006-05-01 Romain Bignon * src/Units.h, server/Units.h: Création indépendament coté serveur et coté client de ECUnit qui réunit le code utilisé par EChar et ECArmy. * server/InGame.cpp: Correction de bugs. * src/tools/Images.cpp: Fonctions pour copier des SpriteBase et pour utiliser une coloriage de toutes images. * src/Units.cpp: Utilisation dans ECUnit d'une liste d'images suivant la position et coloriage de la couleur du propriétaire. 2006-04-30 Romain Bignon * lib/Map.cpp: Pas deux batiments, ou pas deux unités sur la meme case. * src/Defines.h, src/data: Modification de la taille des cases à 80x80 * lib/Batiments.h, lib/Units.h, src/Batiments.h, src/Units.h, server/Batiments.h, server/Units.h: Ajout de la caserne, du charfact et du char. * src/InGame.cpp, src/gui/ShowMap.cpp: Création de batiments et affichage de la position de l'écran sur le radar. * src/tools/Images.cpp (DrawRect): Fonction pour dessiner un rectangle. 2006-04-29 Romain Bignon * server/Channels.cpp: Vérification des +! lors du quit. * src/Sockets.cpp, src/gui/Form.cpp, src/JoinGame.cpp: Utilisation des mutex pour ne pas buguer. * src/gui/ComboBox.cpp, src/JoinGame.cpp: Correction du bug de la position des nations dans GameInfos. * server/Map.cpp: Correction du bug qui, lorsque le client veut bouger et qu'il est en conflit déjà avec un mec (sans le savoir), fait disparaitre le client. Utilisation d'une mémorisation des mouvements. * src/InGame.cpp: - On est prévenu quand un joueur veut faire une attaque explicite. - Mise en "lock" lorsque l'armée a join une autre. - N'ajoute rien si pas sur une bonne case. - Enlevage de bugs * src/gui/ShowMap.cpp: Elevage d'un bug concernant les mutex. * src/Defines.h, src/data: Modification de la taille des cases à 100*100 avec de nouvelles images. * API, server/InGame.cpp: Envoie d'un '.' pour LOCK une armée quand elle union. 2006-04-27 Romain Bignon * server/InGame.cpp: Correction d'un bug qui ne vérifiait pas les attaques dans un create, et qui envoie *tous* les déplacements d'un joueur * server/Map.h (ECEntity): Il stock maintenant tous ses déplacements. 2006-04-26 Romain Bignon * API: Paragraphe concernant l'IA. * server/Channels.cpp, server/Server.cpp: Les IA partent bien en cours de partie si il n'y a plus aucun humain. * server/Channels.cpp: Corrections pour le portage. * lib/Channels.h, src/JoinGame.cpp, server/IA.cpp: Caractère ajouté devant le pseudo de l'IA poru la reconnaitre. * src/JoinGame.cpp, src/Channels.h, lib/Channels.h: Fonction ECPlayer::IsIA(), et coté client il y a un argument au constructeur. * src/InGame.cpp: Modification de l'utilisation des boutons de la souris. * lib/Debug.h: Ajout de assert() * lib/Outils.h: - Fonction MyFree() (plutot que macro) avec une sécurité - Portage si la std est trop vieille. 2006-04-25 Romain Bignon * src/gui/Component.cpp, src/gui/Form.cpp: Rajout d'un paramètre "dynamic_hint" qui donne la priorité et qui fait fonctionner les hints du GameInfosForm sur la combobox des nations. 2006-04-23 Romain Bignon * server/IA.cpp: Utilisation d'un système de Lock pour ne pas traiter les messages tout de suite. * server/Channels.cpp (ByeEveryBody): Cette fonction peut avoir une exception. * server/Server.cpp: Correction d'un bug concernant l'IA. * src/JoinGame.cpp: Utilisation d'un Hint et réorganisation de la Form. * src/gui/Components.cpp, src/gui/ChildForm.cpp: Modifs concernant les Hints. 2006-04-20 Romain Bignon * server/IA.cpp (JIACommand): Commande pour créer une IA dans un chan. (TIA): Classe de l'Intelligence Artificielle * src/JoinGame.cpp: - La MapList n'est affichée que lorsque l'user est op ou owner. - Délais pour eviter les clics abusifs dans la liste des maps. * lib/Outils.cpp, src/Sockets.cpp, server/Server.cpp: Utilisation d'une fonction SplitBuf(). 2006-04-19 Romain Bignon * server/Server.cpp: Système des clients revisités pour accueillir l'intelligence artificielle... * src/InGame.cpp: Affichage un peu partout d'hints... * src/gui/ListBox.cpp: Hints pour chaques items. * */Units.h: Macros pour les constructeurs. 2006-04-13 Romain Bignon * server/Makefile.am: Installation de la configuration dans $prefix/etc/. * configure.ac, server/menareants.conf.in: Le path du motd dans la conf dépend du rep d'installation. * src/JoinGame.cpp: Correction d'un bug qui posait problème lors du lancement du jeu quand c'était trop lent (desynch). * src/Component.h, src/Form.cpp, src/ChildForm.cpp: OnMouseOn() et Hint(). * src/Main.cpp, src/Config.cpp: Nouveau nom pour On*. * src/InGame.cpp: Affichage des icones à droite, utilisation d'un TChildForm et affichage du Hint. * src/Map.cpp: N'affiche plus les contours sur la mer (preview). 2006-04-12 Romain Bignon * src/Main.cpp, src/Config.cpp: Affiche la ConfigForm au lancement lors du premier lancement. * src/tools/Images.cpp: Nouvelles fonctions, modifications... * gui/Edit.cpp: Nouvelle version du composant beaucoup plus elaborée. * gui/: Passage à des composants qui sont indépendants de MenAreAntsApp. * gui/Components.h (ForceFocus): Force le focus, pour T*Form. (ClickedFuncPos): Fonction qui connait les coordonnées de la souris lors du click. * src/InGame.cpp (BarreLat): Le clic sur le radar fait bouger la camera. * server/Channels.cpp, src/Config.cpp, src/JoinGame.cpp: Utilisation de macros NICK_CHARS et CHAN_CHARS pour limiter les chars autorisés. * src/gui/MessageBox.h: Lorsqu'on ne spécifie pas de position, l'afficher au centre. * lib/UnitsList.h, server/InGame.cpp, src/Map.cpp, src/InGame.cpp: Liste des unités qui permet de n'avoir à mettre à jour qu'ici lors d'ajout d'unités. * configure.ac: Paramètre --enable-full-warnings 2006-04-11 Romain Bignon * server/Channels.cpp (RemovePlayer): Gestion du départ d'un joueur pendant une partie. * server/Map.cpp (CheckRemoveBecauseOfPartOfAttaqEntity): Fonction dont le nom est explicite :p. 2006-04-10 Romain Bignon * lib/Map.cpp (CheckChaningOwner): Fonction de ECBCase pour vérifier si sa prise créé un changement d'owner. * lib/Channels.cpp, server/Channels.cpp: Passage de ModesStr() dans le serveur avec affichage de la map dans les modes. * API, server/Channels.cpp, server/Map.cpp: Mode +@ pour changer l'owner d'une country. * src/AltThread.cpp: Utilisation de stack plutot que de vector. * src/JoinGame.cpp: Messages... * src/gui/Object.h, src/gui/Component.h, src/gui/Form.h, src/gui/ChildForm.h: Création de TObject mère de toutes les classes graphiques (T*), avec gestion des parents. * src/gui/ShowMap.cpp (CenterOn): Méthode pour centrer la camera sur un point particulier. * server/InGame.cpp (SendArm): Quand il n'y a pas d'evenement de mouvement lié, utiliser x et y plutot que les coordonnées de l'entité, car il est possible qu'on veuille envoyer un CREATE avant un MOVE. * src/Map.cpp (ECEntityList): Liste des entitées qui peut etre utilisée pour récupérer la liste des entitées pouvant etre créée par une case ou une autre entité (batiment). * src/InGame.cpp (BarreAct): Possibilité de selectionner une case et de créer des unités. * src/data/pics/units: Boutons des unités. * src/data/barrelat.png: Nouvelle version un peu plus belle. 2006-04-09 Romain Bignon * src/InGame.cpp: Gestion de l'ajout d'unités, des messages d'information, et quelques corrections. * server/InGame.cpp (ARM_NUMBER): Gestion, et n'en fait plus un evenement lors du ANIMING (les autres s'en foutent). * src/gui/Memo.cpp: Taille maximum de caractère par ligne adapté à la chaine elle meme (meilleur resultat). * src/, WIN32: Portabilité du code du jeu pour windows. 2006-04-08 Romain Bignon * src/gui/Component.cpp (TList), src/gui/ChildForm.cpp: Gestion des focus et clics * src/gui/Form.cpp: Debugage. * src/Resources.h, src/data/pics, src/InGame.cpp: Barre d'actions. * src/AltThread.cpp: Thread alternatif qui peut recevoir des instructions à executer. 2006-04-05 Romain Bignon * server/InGame.cpp: Suppression de l'ancien code. * src/Units.cpp: Gestion des déplacements en mode ANIMING. * src/InGame.cpp: Amélioration de la gestion des déplacements. * src/Main.cpp, server/Main.cpp: Un peu plus beau. * src/Config.cpp, src/JoinGame.cpp: Nation par défaut. * lib/Outils.cpp (GetHome): Fonction pour récupérer le $HOME. 2006-04-01 Romain Bignon * src/InGame.cpp, src/gui/ShowMap.cpp: Gestion des déplacements anticipés. * lib/Map.h, server/Map.h, src/Map.h: Passage de ECBMove dans lib/ et dérivée dans src/Map.h (ECMove) * src/JoinGame.cpp: Amélioration de l'ergonomie. * server/Channels.cpp (SETCommand): Gestion de problèmes liés au READY. * src/data/anims/cases/mer: Animation de la mer. * lib/Debug.h: Utilisation de __PRETTY_FUNCTION__ qui renvoit un nom de fonction plus complet. * Changement du nom du jeu (Europa Conquest -> Men Are Ants). 2006-03-31 Romain Bignon * lib/Channels.h: Gestion des nations (enumérateur, tableau d'équivalence de chaine, etc) * server/Channels.cpp: Gestion des nations. * src/JoinGame.cpp: Gestion des nations * src/InGame.cpp: Evite d'appeler TFont::Write* à chaque Draw() du TPlayer*. * src/gui/ListBox.cpp: Améliorations... * src/gui/ComboBox.cpp: Améliorations... * src/gui/Component.cpp, src/gui/Form.cpp: Maintenant l'affichage en tete du composant focusé est fonctionnel. * server/InGame.cpp: Gestion des unions. 2006-03-30 Romain Bignon * src/gui/ComboBox.cpp: Programmation d'un composant TComboBox. 2006-03-29 Romain Bignon * lib/Outils.h (nrvector): Vecteur dérivé de std::vector sans répétitions. Retour de std::string plutot que de chaines dans FormatStr(). * src/gui/SpinEdit.cpp: Correction d'un petit bug. * src/gui/ShowMap.cpp: Ne redimentionne pas quand la carte est plus petite que l'écran. * src/gui/Label.h: Peut paramétrer la couleur du label. * src/gui/Component.h, src/gui/Form.cpp: Pour les evenements, donne en argument le Form et un paramètre arbitraire. * src/data: Nouvelles images plus belles (nouveau style). * src/Map.cpp (CreatePreview): Paramètre pour ne pas afficher les numeros. * src/gui/Menu.cpp: Suppression du menu. * src/Login.cpp: Application du nouveau style. * src/JoinGame.cpp: Correction de bugs (part), receptions infos pour InGame. * src/InGame.cpp: Application nouveau style, affichage dans la BarreLat de la date, l'heure et l'argent par tour. * server/Units.cpp, server/InGame.cpp: FONDAMENTALE: Passage à un mode de déplacement pas à pas. * server/Server.cpp, server/Channels.cpp: Le départ de l'owner supprime le jeu. * server/Map.h (ECMove): Cette classe compatibilise les mouvements (et passera sous peu dans lib/). * server/Channels.cpp: Application au principe de déplacement pas-à-pas à SendArm(), support de la couleur et de la position aléatoire. 2006-03-25 Romain Bignon * src/Sockets.cpp: Support des hosts et correction de bugs. * src/Main.cpp: Utilisation d'un TForm pour le menu principal. * src/Config.cpp: Utilisation d'un TForm pour la config, support d'une liste de serveurs et de la couleur par default. * src/gui/ColorEdit.cpp: Correction d'un bug qui n'affichait pas le label. * src/JoinGame.cpp, server/Channels.cpp: Affiche le nom de la map et les parties jouées dans la liste. * lib/Outils.cpp: Rajout de is_ip(). 2006-03-19 Romain Bignon * lib/Map.h, server/Map.h (EC*Entity): Passage du system de last de lib à server, et passage de event_type de server à lib. * src/data/pics/fleches: Fleches d'attaque. * src/Units.cpp: Gestion des déplacements. * src/gui/ShowMap.cpp: Utilisation des fleches d'attaque, et ne bouge plus quand le composant est !Enabled(). * src/gui/Components.h, src/gui/*.h: Fonctions Test(), Clic() et Focused(). Rajout en outre d'un pointeur vers un TClickedFunction, pour appeler une fonction dédiée lorsqu'on le clique. * src/gui/Form.h: Fonction Actions() à appeler dans la boucle d'une fenetre. Met le focus lui même et appel la fonction Clic() par default de TComponent(), ainsi que l'appel de la ClickedFunc si définie. * src/InGame.cpp: Composants TEdit et TMemo pour l'affichag du chat. * src/InGame.cpp, src/Map.cpp: Gestion des animations. * src/InGame.cpp, src/Login.cpp, src/JoinGame.cpp: Utilisation de TForm::Actions(). * src/gui/Edit.h: N'affiche pas forcément le background. * src/Timer.cpp, src/gui/Menu.cpp: Correction d'un bug. 2006-03-18 Romain Bignon * lib/Outils.h (is_num): Fonction pour vérifier si une chaine est un entier. * lib/Map.cpp, lib/Units.h: Prise en compte du prix d'une entité. * server/Map.cpp, lib/Map.cpp: Passage de server à lib des fonctions ECMap::AddAnEntity() et ECMap::RemoveAnEntity(). * src/gui/ShowMap.h (TShowMap): Composant qui affiche la carte. * src/gui/ChildForm.h (TChildForm): Composant qui est une Form enfant. * src/data/: Rajout des fleches, de la barre laterale, du curseur de selection et d'animation (de merde) pour la mer. * src/gui/Component.h, src/gui/*: Passage des variables x et y de uint à int ainsi que quelques autres changements. * src/InGame.cpp: Gestion de la carte, ébauche de la gestion des déplacements et des animations. * src/JoinGame.cpp: Support du LEA, et des changements de modes pour le mode PLAYING. * src/Sockets.cpp: Commande ARM. * src/Map.cpp, src/Units.h: Dérivation des cases et entitées avec leur image, fonctions pour afficher, gérer, etc. * src/Defines.h: Constantes pour la résolution de l'écran plutot que des valeurs magiques. * src/tools/Images.cpp: Correction de bugs. * src/tools/Font.cpp: Correction du bug qui n'affichait pas le texte bien au centre verticalement avec WriteCenter(). 2006-03-17 Romain Bignon * src/gui/: Réorganisation en utilisant int plutot que uint pour X et Y. 2006-03-17 Romain Bignon * lib/Channels.h: Petites améliorations. * lib/Map.cpp: Support pour le type des cases du client, fonction ECBCountry::ChangeOwner() et autres... * lib/Outils.h (ECList): Fonctions Fixed() et Moved(), et quelques modifs. * lib/Units.cpp: Modification des Attaq() et Move() en WantAttaq() et WantMove(). * server/Units.cpp (ECArmy): Gestion des attaques. * server/Map.cpp: Gestion du tri des evenements, fonction static ECEntity::AreFriends() et autres.. * server/InGame.cpp: Gestion des attaques. * src/JoinGame.cpp: Suppression des TPlayerLine pour le LoadingForm. * src/gui/Components.h (TLine): Rajout de l'argument use_delete dans RemoveComponent. 2006-03-15 Romain Bignon * src/Map.cpp: Dérivation des cases avec chargement des sprites des cases. * src/gui/MessageBox.h: Rajout de la possibilité de mettre un Edit dans le MessageBox. * server/Main.cpp: Fonction CleanUp() pour libérer la mémoire. * server/: Un certain nombre de corrections de fuites de mémoire. * src/data/anims/cases: Images des cases * src/data/anims/normalbutton: Images d'un boutton "normal" * src/gui/Boutton.cpp: Utilisation du normalbutton comme image par default * src/JoinGame.cpp,src/Login.cpp: Redimension des boutons * src/tools/Image.cpp: Correction d'un bug quand il y a plusieurs images non animées * src/Resources.h: Rajout de normalbutton et de toutes les images des cases, mise en place d'un nouveau système avec les macros qui déchire. 2006-03-12 Romain Bignon * server/InGame.cpp: Gestion des créations et amélioration des animations. * server/Map.h (ECEvent): Type et nombre. * lib/Map.cpp (ECBEntity): Fonctions CanBeCreated(), CanCreate() et AddUnits() * lib/Outils.h (ECList): Rajout des fonctions membres ECList::Enemies() et ECList::Sames() 2006-03-11 Romain Bignon * lib/Map.h: RemoveLast(). * lib/Units.cpp: Union. * server/Channels.cpp, server/InGame.cpp: Premier support de l'animation. * server/Map.cpp: Fonctions pour ajouter ou supprimer une entity de tous les endroits où il faut. * server/Server.cpp: Ne s'arrete plus sur les messages vides. 2006-03-11 Romain Bignon * server/Channels.cpp (SendArm): Fonction pour envoyer un message ARM. - Envoie de l'argent, des unités crées au début de la partie. * server/Main.h, server/Commands.h, server/InGame.cpp (ARMCommand): Commande ARM * server/Map.h (ECEvent): Support des evenements. * server/Server.cpp: Commande ARM, et vérifie bien les flags des commandes. * server/Units.h: Conforme aux définitions de ses ancetres. * src/Sockets.cpp: Variable "error" pour éviter d'attendre quand il y a eu une erreur à la connexion. * src/JoinGame.cpp: Support du mode +$ * lib/Outils.h (ECList): Mise à jour. * lib/Map.h: Modifs importantes dans plusieurs classes. * lib/Units.cpp (ECArmy): Implémentation de fonctions élémentaires (mouvement, attaque, retour, etc). 2006-03-04 Romain Bignon * src/gui/MessageBox: Correction du bug de dimentionnement horizontale. 2006-03-01 Romain Bignon * API: Commande ARM * lib/Outils.h (ECList): Liste. * lib/Map.h: Rajout des entités, et de leur liste dans la map. Rajout du nombre de soldats dans les premières armées. Rajout de typedef pour les IDs (char ou char[3]). * lib/Channels.h: Rajout de la liste des entitées d'un player. * lib/Units.h (ECBArmee): Armée de base dérivée de ECBEntity. * server/Channels.cpp: - Envoie lors du mode SENDING des armées de chaques villes - Réorganisation de la propagation des modes plus simple et plus performante. - Fonction EChannel::SendArm() pour envoyer un message ARM par rapport aux différents arguments de la fonction. - Fonction EChannel::FindEntityName() pour trouver un nom d'entité non pris dans une liste. * server/Main.h, server/Server.cpp: Commande ARM. * server/maps: Mise à jour des maps. * src/InGame.cpp: Affichage de la date dans le Loading. 2006-02-24 Romain Bignon * src/Outils.cpp (duration): Fonction pour avoir le temps d'une heure unix. * src/Login.cpp, server/Login.cpp, server/Server.cpp, API: Affiche l'uptime à la connexion. * src/Map.cpp: Affichage de la preview qui couvre toute une surface définie (ou paramétrable), avec donc la taille des cases variables suivant la taille de la carte. Affichage également des frontières, et coloriage des propriétés des joueurs quand ils en ont. * src/gui/Memo.h: Variable pour afficher ou non le background transparent. * lib/Batiments.h, lib/Units.h: Création des fichiers et classes de base. * lib/Colors.h, src/tools/Font.h, src/gui/ColorEdit.cpp: Suppression du noir dans les couleurs des joueurs, et rajout pour ces memes joueurs de couleurs "foncées" du bleu, du rouge, du marron et du blanc. * lib/Map.h: Rajout du map_infos qui contient quelques lignes d'informations un peu superflues. * src/InGame.cpp: Rajout du fichier qui contiendra les informations de dans le jeu. (LoadingForm): Form qui affiche un etat de chargement du jeu... * src/JoinGame.cpp: Quand l'etat est SENDING, afficher LoadingForm. * src/Sockets.cpp, server/Channels.cpp, src/JoinGame.cpp: Utilisation d'un indicateur '$' dans JOI pour dire qu'on veut *créer* un chan. Evite, quand on veut créer un chan, d'en rejoindre un existant ou d'essayer de joindre une partie déjà lancée (et que le serveur s'étonne). 2006-02-22 Romain Bignon * src/gui/ColorEdit.cpp: Création du composant ColorEdit. * src/JoinGame.cpp: Rajout de la couleur. 2006-02-20 Romain Bignon * src/JoinGame.cpp server/Server.cpp, server/Login.cpp, server/Map.coo: Petit formatage des messages des Debug pour plus de compréhension. * server/Channels.cpp: Support du passage de SENDING à PLAYING. 2006-02-19 Romain Bignon * src/Channels.cpp: Supprime la map lors de la suppression du channel (uniquement dans le client car le serveur elle GARDE la map dans sa liste). * Changement des it++ en ++it (plus rapide). * src/gui/Images.cpp: Pour corriger un bug avec ECMap::preview, il y a un paramètre dans le TImage pour dire ou non si on veut que l'image soit supprimée à la suppression du composant. * Outils.cpp (get_time): Correction, il n'affichait pas l'heure. * API: Commande STAT pour voir les stats du serveur. * server/Server.cpp, server/Commands.h, server/Main.h, server/Channels.cpp: Statistiques du serveur. * src/Login.cpp: Affichage des stats * src/JoinGame.cpp: Support des noms de salon en plusieurs mots. * server/Channels.cpp: Le salon se met en mode SENDING quand tous les joueurs sont READY. * server/Debug.cpp: Le fichier errors.log devient plus clair car mieux structuré. 2006-02-18 Romain Bignon * test/map.cpp: Petite mise à jour avec prise en compte de la date et test du ++ dessus. * lib/Map.cpp: Ajout de ECBDate. * API: Section "6. Êtat de la partie" * src/JoinGame.cpp, server/Channels.c: Ne peut se mettre Ready que si il a une position et une couleur. * src/JoinGame.cpp: Affichage de la preview. * src/Map.cpp: Fonction pour créer la preview. * src/gui/Image.cpp: Création d'un composant TImage. * lib/Channels.cpp, src/Channels.cpp, server/Channels.c: Rajout du status de "Op" pour le +o. Il ne peut y avoir qu'un seul owner. * src/tools/Font.cpp: Correction (enfin!) du bug du cpu et memoire full, en reprenant le code de wormux pour ce fichier. * src/tools/Images.cpp: Petite amélioration. * src/Main.cpp, ...: Mise du membre EuroConqApp::fonts et application partout. 2006-02-17 Romain Bignon * src/JoinGame.cpp: Reception de la liste des maps et de la map paramétrée. * lib/Map.cpp: Utilisation d'une fonction virtuelle pour le Z d'une case, ainsi que quelques petites modifs. * server/Channels.cpp: Envoie la liste des maps au JOI et une map lors d'un +m * server/Map.cpp: Fonction d'ouverture de toutes les maps. 2006-02-16 Romain Bignon * test/map.cpp: Outil permettant d'ouvrir une map (genre gna.map) et d'avoir des infos sur elle une fois qu'on a vérifié qu'elle ne comportait pas d'erreurs. * src/Map.cpp: Création des différentes classes ainsi que de diverses fonctions. Le chargement de la map MARCHE ! * src/Commands.h (ER1): Prise en charge (enfin) de l'ER1 (CANTJOIN) même si elle est inutile !! * lib/Debug.h (VCName): macro pour les char. * src/Debug.cpp: Correction du bug qui envoyait deux fois la meme chaine au serveur avec W_SEND. * src/Login.cpp: Utilisation des accents. * src/gui/Label.cpp: Correction: on peut maintenant utiliser des accents dans les Label. 2006-02-13 Romain Bignon * src/Map.cpp, lib/Map.cpp, server/Map.cpp: Création des fichiers. * src/JoinGame.cpp: Utilisation des valeurs interdites pour les "position" (TSpinEdit) des players. * src/gui/SpinEdit.cpp: Utilisation de valeurs interdites. * lib/Channels.h: Renomage des ECBChannel::*Place() en ECBChannel::*Position(). * server/Channels.cpp (EChannel-send_modes()): Fonction qui envoie les modes aux players à partir d'un ou de plusieurs senders. * src/JoinGame.cpp: Utilise comme position maximale la limite et non plus le nombre de joueurs. En outre, actualise la position maximale lors d'un +l. En outre pour les modes "!pc" prend en compte *tous* les senders. 2006-02-12 Romain Bignon * Corrections un peu partout. Normalement y a plus de plantages. 2006-02-08 Romain Bignon * lib/Outils.h (MyFree): Macro qui utilise delete sur un pointeur et qui l'assigne à 0. * Utilisation de Doxygen. 2006-01-15 Romain Bignon * src/JoinGame.cpp (TPlayerLine): Composant utilisé dans un TList pour la liste des players dans TGameInfos. * src/gui/Component.h (TList): Création du composant TList, conteneur de composants. * Utilisation d'iterateurs un peu partout plutot que de boucles à index. * server/Channels.cpp: Interdiction d'utiliser une place ou une couleur déjà prise. 2006-01-14 Romain Bignon * src/gui/Menu.cpp: Correction de Menu::EnterString(). * src/Login.cpp, src/Main.cpp: request_game() a bougé dans Login.cpp et a été entièrement remodelé avec l'utilisation d'un TForm plutot que d'un menu. Affichage du MOTD * server/Config.cpp, server/Login.cpp: Envoie d'un motd. * src/gui/Memo.cpp: Utilisation du parsage du TMessageBox pour ne pas couper les mots. * src/Commands.h, src/Login.cpp: Support de la commande MAJ. * server/Channels.cpp: Petite modification de noms de variables. * API, server/Server.h: Suppression de la raison pour le LEA ou le BYE. Rajout MOTD. * server/Debug.cpp: Correction du logging dans un fichier. * server/Main.cpp: Trouve le path de ~/.euroconqserver. Sauvegarde dans une variable de EuroConqServerApp. * src/Main.h: Sauvegarde de path dans une variable de EuroConqApp. * src/Defines.h, server/Defines.h: Passage à des constantes plutot que des macros pour les tailles. 2006-01-13 Romain Bignon * src/tools/Font.cpp: Suspension temporaire du cache, il causait des problèmes. * src/gui/Boutton.cpp (Test): Ne renvoie true que si le bouton est Enabled. * API, lib/Channels.h, server/Channels.cpp, src/JoinGames.cpp: - Changement du protocole de PLS qui affiche si l'user est ok. - Rajout du mode '!' pour se définir comme étant OK. - Noter en particulier dans server/Channels.cpp::SETCommand::Exec la suppression des deux macros dont la laideur me faisait frémir pendant mon someil. * src/gui/SpinEdit.cpp: La fonction Click() renvoie true que si la valeur a été modifiée. 2006-01-01 Laurent Defert * src/Main.cpp, src/Menu.cpp: Correction de quelques bugs et éclaircissement du code. 2006-01-01 Romain Bignon * DEVELOPPEURS: Fichier pour que les developpeurs puissent laisser des notes aux autres. (oui je sais il n'y a que deux developpeurs et l'IRC ça existe mais bon, on fait genre) * patch: Répertoire contenant les patchs qui ont été receptionnés de l'exterieur (oui je *sais* y a personne qui en envoie mais BON). 2005-12-28 Romain Bignon * *.h: Passage de la majorité des fonctions membres qui le doivent en "const" pour respecter la norme C++. 2005-12-21 Romain Bignon * src/tools/Font.cpp: Mise d'un cache. (© Wormux) * src/gui/SpinEdit.cpp (TSpinEdit): Composant TSpinEdit pour un Edit de nombres. * src/gui/Component.h, src/gui/Button.h: Mise de l'attribut Enabled directement dans TComponent. * server/Channels.cpp (SETCommand::Exec): Fonction de la commande SET pour parser les modes d'un chan. * src/JoinGame.cpp (SETCommand::Exec): Fonction de la commande SET pour parser les modes d'un chan. * server/Server.cpp, src/Commands.cpp: Changement de la commande SETS en SET. * server/Login.cpp: Utilisation de la nouvelle syntaxe de StrToTyp; * server/Channels.cpp: Envoie des modes avec SET. * lib/Outils.h (StrToTyp): La fonction renvoie désormais la valeur plutot que de l'assigner dans une variable donnée en argument. (FichierExist): Fonction pour vérifier l'existence d'un fichier. * lib/Channels.cpp (ECBChannel::ModesStr): Fonction qui retourne le buffer des modes. (ECBChannel::PlayerList): Rajout de la position et de la couleur. * API: Modification de SET: prend en charges des modes à la IRC. Voir section 4. Modes. 2005-12-20 Romain Bignon * src/JoinGame.cpp: Utilisation du TForm pour les écrans ListGame et GameInfos. * Edit.cpp,Memo.cpp,ListBox.cpp,Button.cpp,TextButton.cpp: Dérivation de TComponent * src/gui/MessageBox.cpp: Utilisation du TForm pour faire marcher correctement. * src/gui/Component.cpp: Création de TComponent qui est la base de tous les composants. * src/gui/Form.cpp: Création de TForm qui est la base des forms contenant les composants. Ça va permettre de gérer les "fenêtres" plus simplement. * src/gui/Label.cpp: Composant TLabel. Le nom est assez explicite. 2005-12-16 Romain Bignon * src/gui/MessageBox.cpp (TMessageBox): Classe d'un composant qui affiche une fenêtre avec un message et des boutons d'un certain type. * server/Config.cpp, server/euroconqd.conf: Rajout du champ DEFLIMITE pour la limite par default d'un jeu. * API: Modification du protocole: plus de "$" pour indiquer si c'est un quit ou non -> on s'en fou! * src/JoinGame.cpp (GameInfos): Taille du TMemo proportionnel au nombre de joueurs (en priant pour qu'il n'y en ait pas des tonnes). Messages dans le TMemo lors de join/part. * src/gui/Memo.cpp: Rajout fonctions SetHeight et SetWidth pour modifier la taille. * configure.ac: Correction d'un problème qui ne mettait plus les cflags de sdl. * Petites modifs par ci par là. * src/Sockets.cpp (read_sock): Correction d'un bug qui rajoutait à chaques fois un parv. 2005-12-02 Romain Bignon * server/Channels.cpp (JOICommand): Envoie de ER1 (CANTJOIN) si le chan est plein * API: Modifications de l'API 2005-11-30 Romain Bignon * src/gui/: Renomage des différents composants en T*. * configure.ac: Possibilité de ne pas compiler le jeu. * Application des debugages un peu partout... * lib/Outils.cpp (Format): Fonction qui formate (à la sprintf) mais qui retourne le résultat dans une std::string. (get_time): Retourne la date formatée. * lib/Debug.cpp: Création fichier. (TECExcept): Classe d'exception. * src/Debug.cpp (Debug): Fonction pour envoyer un debug au serveur et/ou printf. * server/Debug.cpp (Debug): Fonction lors de la reception d'erreurs. Ecriture dans un fichier. (ERRCommand): Commande lorsqu'un client rapporte un bug. 2005-11-28 Romain Bignon * server/Channels.cpp: Empeche le join d'un salon en cours de jeu... * src/Main.cpp: Utilisation du parsage unicode des chars au clavier. * src/JoinGame.cpp: Utilisation du ListBox et du Edit pour faire un petit espace de discussion. * src/gui/Memo.cpp: Création du composant Memo en s'inspirant du ListBox. * src/gui/Edit.cpp: Création du composant Edit. 2005-11-27 Romain Bignon * src/gui/ListBox.cpp: Disable... * src/Commands.h: Commande MSG et LEA * server/Channels.c: Commande MSG. * lib/Channels.h: State. * lib/Outils.cpp: Correction bug de stringtok. * src/JoinGame.cpp: Interface DANS une partie. 2005-11-26 Romain Bignon * src/Login.cpp: Gestion commande Used * src/Main.cpp: Meilleur système de connexion. * src/gui/Menu.cpp: Utilisation d'une fonction plus généraliste et statique Menu::EnterString(). * src/Sockets.cpp: Parsage du premier argument de parv (player(s)). * src/Commands.h: Commandes JOI, PLS, EOL, USED. * src/JoinGame.cpp: support du join. * src/gui/ListBox.cpp: Membre ClearItems(). * src/Resources.cpp: Anim NormalButton. * src/gui/BouttonText.cpp: Rajout du fichier avec ButtonText pour dessiner un bouton (©wormux) 2005-11-25 Romain Bignon * src/JoinGame.cpp: Rajout du fichier pour la boucle de la liste des jeux, ainsi que de l'écran de création/join de jeu. * src/data/anims: Répertoire créé. Avec dedans les anims des boutons "up" et "down". * src/tools/Maths.cpp: Création fichier avec deux petites fonctions. * src/Resources.cpp: rajout des sprites pour UpButton et DownButton * src/gui/ListBox.cpp: Rajout du fichier avec la classe ListBox pour dessiner une listbox (©wormux) * src/gui/Boutton.cpp: Rajout du fichier avec la classe Button pour dessiner un bouton (©wormux) * src/tools/Images.h: rajout de ECSprite::GetWidth() et ECSprite::GetHeight() 2005-11-23 Romain Bignon * src/gui: Création du répertoire. Mise de Menu.cpp dedans ainsi que de ListBox.cpp (vide). * server/Server.cpp (TClient::Init): Met la valeur de lastread à maintenant pour éviter un PIG immédiat. * server/Login.cpp (BYECommand): Commande pour faire partir un client. * server/Channels.cpp (LSPCommande): Commande pour lister les jeux. (~EChannel): Destructeur se retire de la liste ChanList. * server/Channels.cpp, server/Channels.h (sendto_players): envoie à tous les joueurs du jeu (JOICommand): commande pour joindre ou créer un jeu (LEACommand): commande pour partir d'un jeu * lib/Outils.c (FormatStr): fonction qui formate les chaines en un "mot" (mise de '\') 2005-11-22 Romain Bignon * API: Mise à jour. * server/Server.h, server/Server.cpp, server/Main.h, server/Login.cpp: Utilisation plus structurée de TClient; * server/Channels.cpp, server/Channels.h (EChannels): Structure serveur des channels. (ECPlayer): Structure serveur des players. * lib/Channels.h, lib/Channels.cpp (ECBChannels): Structure de base (commune) des channels. (ECBPlayer): Structure de base (commune) des channels. 2005-11-21 Romain Bignon * server/Channels.cpp, lib/Channels.h: Création des fichiers. * lib/Channels.cpp, lib/Channels.h: Création des fichiers. (EChannel): classe channel par default. (ECPlayer): classe player par default. * src/Sockets.cpp: Correction du bug de la connexion. * src/Login.cpp: Prise en charge de la commande AIM. * API: Mise à jour. * INSTALL: Remplissage. 2005-11-20 Romain Bignon * src/Sockets.cpp: réécriture des sockets. Utilisation de SDL_Thread. * src/Main.cpp (EuroConqApp::request_game()): Utilisation d'un second menu pour "Jouer". 2005-11-18 Romain Bignon * autogen.sh, configure.ac: prise en compte sdl, ajout DEBUG, changement autogen.sh (©wormux), etc. * Reorganisation des dossiers * Passage à SDL terminé (mais il faut debuguer !) * src/Menu.cpp: Passage normalement correct à SDL. * src/tools/Images.h, src/tools/Images.c: Création du fichier (reprise de fonctions d'un tuto) (ECImage): classe pour les images (ECSpriteBase): classe pour la base des animations (ECSprite): classe pour les animations * src/tools/Font.cpp, src/tools/Font.h: Reprise du fichier de Wormux. * lib/Outils.h (StrToInt): changement en StrToTyp() (TypToStr): fonction pour transformer en une chaine. 2005-11-16 Romain Bignon * Transcription de ClanLib vers SDL en cours... 2005-11-11 Romain Bignon * server/Login.cpp: Rajout du fichier avec les fonctions de logging. (PIGCommand::Exec): Fonction PING (POGCommand::Exec): Fonction PONG (IAMCommand::Exec): Fonction IAM * src/Login.cpp: Rajout du fichier avec les fonctions de logging. (HELCommand::Exec): Fonction HELLO (PIGCommand::Exec): Fonction PING (POGCommand::Exec): Fonction PONG * src/Sockets.c: corrections * server/Commands.h, server/Server.c: Parsage des commandes correct. * server/Server.c (ECServer::parsemsg): Création de cette fonction de parsage. (ECServer::sendrpl): Création de cette fonction pour envoyer un message (ECServer::rpl): Création de cette fonction qui renvoie le pattern à partir d'un enumérateur. 2005-11-08 Romain Bignon * pics/loading.png: Utilisation d'un png pour le loading. * server/: Création du serveur (option --enable-server dans configure pour compiler). * lib/: Utilisation maintenant de ce rep pour mettre le code utilisé par les deux programmes. * Sockets.cpp: Theoriquement plus aucun bug. 2005-11-08 Romain Bignon * Sockets.cpp: Système de commandes theoriquement *pret*. * Sockets (EC_Client::send): Fonction crée. 2005-11-07 Romain Bignon * Sockets.cpp: Ébauche de la gestion des commandes. 2005-11-06 Romain Bignon * Menu.cpp: Gestion de flags: M_READ_ONLY: Champ non modifiable ou lien inactif, change la couleur du focus en gris. M_NOFMAJ: Ne pas mettre une maj automatique au début d'une chaine pour un MenuItem_String. M_RETOUR: Gère comme étant un bouton de retour: légèrement séparé, et retourne au menu supérieur. * Sockets.c (connect_to_server): Affichage d'un message d'erreur si la connexion echoue. * Sockets.c: Utilisation des sockets "de bases" avant de se servir de CL_Socket: permet d'éviter un bug bizare qui ne permet de se connecter qu'en local. * Outils.cpp (stringtok): Équivalent de strtok pour les chaines. * Outils.cpp: Outils * Config.cpp: Création de la configuration. * API: Reflexion sur le protocole. * Sockets.cpp: Correction bug du blockage du socket. 2005-11-05 Romain Bignon * Sockets.cpp: Création d'un support sockets. * Utilisation d'un repositery CVS. * Menu.cpp: Possibilité d'une fonction à appeler lors de l'utilisation d'un Item. * pics/smallfont.pcs: Modification de la fonte. * pics/: Utilisations d'un beau background. (By Thomas) * Defines.h: Création du fichier et d'un super système de gestion des versions. * Main.cpp (main): Création fonction avec menu. * Menu.cpp: Reprise du fichier de clanbomber pour la création de menus. * Timer.cpp: Reprise du fichier de clanbomber pour la création de timers. * Resources.cpp: Inspiration de clanbomber pour l'utilisation des fichiers de ressources. * array.h,link.h: Utilisation de ces fichiers d'origine clanlib. 2005-11-04 Romain Bignon * Initialisation du projet.