From 0584dbaad9f65edfb0e6fa8b49914c03143846f2 Mon Sep 17 00:00:00 2001 From: pixel Date: Thu, 2 Oct 2003 19:14:13 +0000 Subject: Jour1... --- PE/extract-rooms.cpp | 57 +--------------------------------------------- PE/extract-various.cpp | 35 +++++++++++++++++++++++++++- PE/reinsert.cpp | 5 ++++ PE/table.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 57 deletions(-) diff --git a/PE/extract-rooms.cpp b/PE/extract-rooms.cpp index d7148ff..738411d 100644 --- a/PE/extract-rooms.cpp +++ b/PE/extract-rooms.cpp @@ -131,62 +131,7 @@ virtual int startup() throw (GeneralException) { printm(M_INFO, "Found %i bytes of text at %i\n", size, pos); - for (j = 0; j < size; j++) { - b = f->readU8(); - - if (b <= MAXCHAR) { - t->writeU8(table[b]); - } else { - switch(b) { - case 0xf7: - t->writeU8('\n'); - break; - case 0xf8: - (*t) << "\n"; - break; - case 0xf9: - (*t) << "\n\n"; - break; - case 0xfa: - (*t) << ""; - break; - case 0xfb: - j++; - j++; - a1 = f->readU8(); - switch(a1) { - case 0: - (*t) << ""; - break; - case 1: - (*t) << ""; - break; - case 9: - a2 = f->readU8(); - (*t) << "\n"; - break; - case 7: - a2 = f->readU8(); - (*t) << ""; - break; - default: - (*t) << ""; - break; - } - break; - case 0xfe: - j++; - b = f->readU8(); - (*t) << "\n"; - break; - case 0xff: - (*t) << "\n\n"; - break; - default: - (*t) << String().set("", b); - } - } - } + extracttext(f, t, size); delete t; } diff --git a/PE/extract-various.cpp b/PE/extract-various.cpp index 9a68a3d..a4261b9 100644 --- a/PE/extract-various.cpp +++ b/PE/extract-various.cpp @@ -9,7 +9,7 @@ int pos[50]; virtual int startup() throw (GeneralException) { Input * f = new Input("dump/0000.out"); Output * s = new Output("various/various.txt"); - unsigned int c, b, i, j, size, n, changed; + unsigned int c, b, i, j, size, changed; unsigned short p, t; String fn; @@ -126,6 +126,39 @@ virtual int startup() throw (GeneralException) { delete s; } + f = new Input("dump/0075.out"); + + for (i = 0; i < 4; i++) { + Uint32 pos, pos2, size; + + f->seek(i * 4); + pos = f->readU32(); + pos2 = f->readU32(); + f->seek(pos); + + if (i == 3) { + size = f->readU32(); + f->seek(pos); + } else { + size = pos2 - pos; + } + + s = new Output(String().set("75/%i.out", i)); + + copy(f, s, size); + + delete s; + + if (i == 1) { + s = new Output("75/text.txt"); + f->seek(pos); + extracttext(f, s, size); + delete s; + } + } + + delete f; + return 0; } CODE_ENDS diff --git a/PE/reinsert.cpp b/PE/reinsert.cpp index 581c16f..47b2627 100644 --- a/PE/reinsert.cpp +++ b/PE/reinsert.cpp @@ -77,6 +77,11 @@ int patch_img(cdutils * cd) { cd->write_file(menu, GUESS, d_pe1.Sector + 978); delete menu; + Handle * Jour1 = new Input("75/0075.out"); + printm(M_INFO, "Ecriture de la fin du jour 1...\n"); + cd->write_file(Jour1, GUESS, d_pe1.Sector + 1975); + delete Jour1; + for (i = 1; i <= 20; i++) { Input groupe(String().set("groupe-%02i.txt", i)); c = 0; diff --git a/PE/table.h b/PE/table.h index 1eb7cb9..c5a13d2 100644 --- a/PE/table.h +++ b/PE/table.h @@ -1,3 +1,65 @@ char table[256] = "0123456789+-=*% ABCDEFGHIJKLMNOPQRSTUVWXYZ&!?\"'.abcdefghijklmnopqrstuvwxyz:,/éèêëàâäîïôöùûüç"; #define MAXCHAR 0x5b + +void extracttext(Handle * f, Handle * t, int size) { + int j; + Uint8 b, a1, a2; + + for (j = 0; j < size; j++) { + b = f->readU8(); + + if (b <= MAXCHAR) { + t->writeU8(table[b]); + } else { + switch(b) { + case 0xf7: + t->writeU8('\n'); + break; + case 0xf8: + (*t) << "\n"; + break; + case 0xf9: + (*t) << "\n\n"; + break; + case 0xfa: + (*t) << ""; + break; + case 0xfb: + j++; + j++; + a1 = f->readU8(); + switch(a1) { + case 0: + (*t) << ""; + break; + case 1: + (*t) << ""; + break; + case 9: + a2 = f->readU8(); + (*t) << "\n"; + break; + case 7: + a2 = f->readU8(); + (*t) << ""; + break; + default: + (*t) << ""; + break; + } + break; + case 0xfe: + j++; + b = f->readU8(); + (*t) << "\n"; + break; + case 0xff: + (*t) << "\n\n"; + break; + default: + (*t) << String().set("", b); + } + } + } +} -- cgit v1.2.3