summaryrefslogtreecommitdiff
path: root/Xenogears/script-dec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Xenogears/script-dec.cpp')
-rw-r--r--Xenogears/script-dec.cpp52
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");
}