diff options
Diffstat (limited to 'Xenogears/script-dec.cpp')
-rw-r--r-- | Xenogears/script-dec.cpp | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/Xenogears/script-dec.cpp b/Xenogears/script-dec.cpp index 2a1b0f3..81dfea3 100644 --- a/Xenogears/script-dec.cpp +++ b/Xenogears/script-dec.cpp @@ -2,69 +2,71 @@ #include <stdlib.h> #include <unistd.h> #include "lzss.h" -#include "fileutils.h" +#include "String.h" +#include "Input.h" +#include "Output.h" -void process_one_file(FILE * f, int d, int n) { - char nom_du_fichier[100]; +void process_one_file(Handle * f, int d, int n) { + String nom_du_fichier; long script_position, true_length; int i; - FILE * f_out; + Handle * f_out; - if (filesize(f) == 24) return; + if (f->GetSize() == 24) return; - sprintf(nom_du_fichier, "xeno_d%d/ROOMS/%04i", d, n); - MKDIR(nom_du_fichier); + nom_du_fichier.set("xeno_d%d/ROOMS/%04i", d, n); + MKDIR(nom_du_fichier.to_charp()); i = 7; // for (i = 0; i < 9; i++) { -// fprintf(stderr, " Processing part %i\n", i); - sprintf(nom_du_fichier, "xeno_d%d/ROOMS/%04i/script.comp", d, n); +// printm(M_BARE, " Processing part %i\n", i); + nom_du_fichier.set("xeno_d%d/ROOMS/%04i/script.comp", d, n); // sprintf(nom_du_fichier, "xeno_d%d/ROOMS/%04i/part-%i", d, n, i); - f_out = fopen(nom_du_fichier, "w"); - fseek(f, 0x130 + i * 4, SEEK_SET); - fread(&script_position, 1, 4, f); - fseek(f, 0x10c + i * 4, SEEK_SET); - fread(&true_length, 1, 4, f); - fseek(f, script_position, SEEK_SET); + f_out = new Output(nom_du_fichier); + f->seek(0x130 + i * 4); + f->read(&script_position, 4); + f->seek(0x10c + i * 4); + f->read(&true_length, 4); + f->seek(script_position); lzss_decomp(f, f_out, true_length); // if (i == 7) { // fseek(f_out, 0, SEEK_SET); // fread(&true_length, 4, 1, f_out); -// fprintf(stderr, " (seems to be the script number %i)\n", true_length); +// printm(M_BARE, " (seems to be the script number %i)\n", true_length); // } - fclose(f_out); + delete f_out; // } } int main(void) { - FILE * f_script_comp; + Handle * f_script_comp; int i; int num = 0; char nom_du_fichier[100]; for (i = 384; i < 1844; i = i + 2) { - fprintf(stderr, "CD 1 - File %d -> Script %d\n", i, num); + printm(M_BARE, "CD 1 - File %d -> Script %d\n", i, num); sprintf(nom_du_fichier, "xeno_d1/ROOMS/%04d.out", i); - f_script_comp = fopen(nom_du_fichier, "r"); + f_script_comp = new Input(nom_du_fichier); process_one_file(f_script_comp, 1, num); - fclose(f_script_comp); + delete f_script_comp; num++; } num = 0; for (i = 379; i < 1838; i = i + 2) { - fprintf(stderr, "CD 2 - File %d -> Script %d\n", i, num); + printm(M_BARE, "CD 2 - File %d -> Script %d\n", i, num); sprintf(nom_du_fichier, "xeno_d2/ROOMS/%04d.out", i); - f_script_comp = fopen(nom_du_fichier, "r"); + f_script_comp = new Input(nom_du_fichier); process_one_file(f_script_comp, 2, num); - fclose(f_script_comp); + delete f_script_comp; num++; } - fprintf(stderr, "Done !\n"); + printm(M_BARE, "Done !\n"); } |