Re: Lire les fichiers de maps (d2p reader)
Voilà !
J'ai finis de remanier le code !
Liste non-exhaustive des changements :
- Remplacement du reader de base (Reader.cs) par celui de bouh2 (BigEndianReader.cs)
- Suppression de la méthode ConvertMapReaderToMap(MapInformation.Map maps) dans MapManager.cs (inutile)
- Correction de la plupart des classes d'éléments du jeu (Map, CellData, Layer, etc.) : ajout de plein de variables/propriétés manquantes (les infos étaient lues mais pas sauvegardées dans des variables)
- Renommage de la quasi-totalité des noms de méthodes/variables/propriétés afin de respecter les conventions de nommage et de leur donner un nom cohérent
- Suppression de la méthode InitializePosition(uint id) (inutile) à la place j'ai mis le code dans InitializeMap(byte[] encryptionKey) :
_relativeId = _reader.ReadUInt();
_position = new WorldPoint(_relativeId);
Simplification énorme de la préparation de la clé de déchiffrage. Énormément de code pour... rien. Peut-être que c'était comme ça dans le client Dofus mais j'ai remplacé ~ 40 lignes par... 1 ligne.
- Suppression de la méthode InitializeBuffer(string string_1)
- Suppression de la méthode ReturnEncode(string Strings, bool arg2 = false)
- Suppression de la méthode ReturnString(byte[] arg1, bool arg2 = false)
- On passe de :
this.InitializeMap(this.InitializeBuffer(Convert.ToString(this.ReturnEncode("649ae451ca33ec53bbcbcc33becf15f4", false))));
à :
_encryptionKey = Encoding.UTF8.GetBytes(DefaultEncryptionKeyString);
InitializeMap(_encryptionKey);
Voilà pour les modifications principales.
Je n'ai pas ajouté de "ProgressHandler" comme je l'avais prévu (C.F. mon message ci-dessus), la flemme. Vous pourrez le faire si vous voulez j'ai mis en pièce jointe les sources modifiées.
J'ai bien sûr testé à la fin (et régulièrement au cours des changements je vous rassure) et ça fonctionne impec' !
Je vous mets en pièce jointe une archive contenant :
- Le projet DLL avec les sources modifiées
- La DLL compilée (version 2.0 du Framework)
Mot de passe de l'archive : cadernis.fr
Et encore une fois all credits au(x) codeur(s) de la DLL.
J'espère que ça vous sera utile :P ! Si vous avez des remarques/questions n'hésitez pas.
PS : je n'ai pas pu poster dans la partie C# car je ne suis pas rédacteur, si quelqu'un veut le faire à ma place ;) .