Le 04 août 2015 à 19:52:26 Miza_Link a écrit :
Le 04 août 2015 à 19:29:45 xmojo20 a écrit :
Krakzz, télécharge DLC_EventQuestInfo_fre.txt
Miza, octet 1, type condition
01 : tuer
C'est noté.
Le 04 août 2015 à 18:48:12 xmojo20 a écrit :
Tiens je me posais une question, quand tu lis ou écrit dans un fichier binaire en c++. Tu crées un memory_block qui est pointer type *char qui pointe vers un tableau de char qui stock tous les octet du fichier à lire ou à écrire?
Non, j'utilise une structure, mais le fonctionnement est similaire.
Elle ressemble à :
struct Quest
{
uint32_t flags_offset;
uint32_t magic;
uint32_t supply_box_offset;
uint8_t supply_condition1[8];
uint8_t supply_condition2[8];
uint32_t reward_box_offset[3];
uint32_t boss_offset;
uint32_t monster_offset;
uint32_t intruder_offset;
Quest_monster_stats boss_stats[5];
Quest_monster_stats monster_stats;
uint32_t unknown1[4];
uint32_t hr_points;
uint32_t hr_points_penalty;
uint32_t sub_hr_points;
...
Et quand je lis :
f->read((char*)&(quest->flags_offset), 4);
f->read((char*)&(quest->magic), 4);
... // ici je test si le nombre magique et l'offset de flag est valide. Si c'est pas le cas, j'assume que c'est peut-être un fichier encrypté et je tente de décrypter
f->read((char*)&(quest->supply_box_offset), 4);
f->read((char*)quest->supply_condition1, 8);
f->read((char*)quest->supply_condition2, 8);
f->read((char*)quest->reward_box_offset, 12);
...
Ça rend le tout facile à manipuler ou modifier. Après en terme de taille de code, c'est pas le plus élégant mais ça me va pour le moment.