REWise/imhex/WISESCRIPT.hexpat

225 lines
4.1 KiB
Plaintext

struct Header {
char unknown_0000[44];
};
struct String {
char value[];
};
struct InstStruct1 {
char log_path[];
char font[];
char unknown_0100[14];
String ui_strings_1[56];
};
// 0x00 Wise deflated file header
struct FileHeader {
char unknown_2[2]; // 0x8000, 0x8100, 0x0000, 0x9800 0xA100
u32 deflateStart;
u32 deflateEnd;
u16 date;
u16 time;
u32 inflatedSize;
char unknown_20[20];
u32 crc32;
char filePath[];
char fileText[];
char terminator;
};
struct Unknown_0x03 {
char unknown_1;
char string_1[];
char string_2[];
};
struct FormItem_0x04 {
u8 no;
char command_string_1[];
// read this struct again until 'no' == 0 ???
};
struct Unknown_0x05 {
// write .ini file?
char file[];
char heading[];
char values[];
};
struct Unknown_0x06 {
char unknown[6];
u32 deflateStart;
u32 deflateEnd;
u32 inflatedSize;
char terminator;
};
struct Unknown_0x07 {
char unknown_1;
char string_1[];
char string_2[];
if (unknown_1 == 0x02) {
char string_3[];
}
};
struct Unknown_0x08 {
char unknown_1;
};
struct Unknown_0x09 {
// 0x0901 and 0x0920 are different
char unknown_1;
if (unknown_1 != 0x01 && unknown_1 != 0x20) {
char unknown_2;
}
char string_1[];
char string_2[];
char string_3[];
char string_4[];
if (unknown_1 == 0x01 || unknown_1 == 0x20) {
char string_5[];
}
};
struct Unknown_0x11 {
char string_1[];
};
// Existing file on install medium (CD/DVD)
struct ExistingFile_0x12 {
char unknown_1; // 0C
char unknown_41[41];
char from_path[];
char unknown_string_1[];
char unknown_string_2[];
char to_path[];
};
struct Unknown_0x14 {
u32 deflatedStart;
u32 deflatedEnd;
u32 inflatedSize;
char name[];
char message[];
};
struct Unknown_0x15 {
char unknown_1;
char string_1[];
char string_2[];
};
struct TempFile_0x16 {
char name[];
};
struct Unknown_0x17 {
char unknown_1;
char unknown_4[4];
char string_1[];
};
struct Unknown_0x18 {
// skip tailing zeros
};
struct Unknown_0x23 { // option?
char unknown_1;
char string_1[];
char string_2[];
};
struct Unknown_0x31 {
char unknown_1; // always 0x7F ?
char string_1[];
};
struct Unknown_0x0A {
char unknown_2[2]; // 0x0200
char string_1[];
char string_2[];
char string_3[];
};
struct Unknown_0x0B {
char unknown_1;
char string_1[];
};
struct Unknown_0x0C {
char unknown_1;
char string_1[];
char string_2[];
};
struct Unknown_0x1C {
char string_1[];
};
struct Unknown_0x1E {
char unknown_2[2];
};
struct Container {
char op;
match (op) {
(0x00): FileHeader fileHeader;
(0x03): Unknown_0x03 unknown_0x03;
(0x04): FormItem_0x04 formItem;
(0x05): Unknown_0x05 unknown_0x05;
(0x06): Unknown_0x06 unknown_0x06;
(0x07): Unknown_0x07 unknown_0x07;
(0x08): Unknown_0x08 unknown_0x08;
(0x09): Unknown_0x09 unknown_0x09;
(0x11): Unknown_0x11 unknown_0x11;
(0x12): ExistingFile_0x12 existingFile_0x12;
(0x14): Unknown_0x14 unknown_0x14;
(0x15): Unknown_0x15 unknown_0x15;
(0x16): TempFile_0x16 tempFile_0x16;
(0x17): Unknown_0x17 unknown_0x17;
(0x23): Unknown_0x23 unknown_0x23;
(0x0A): Unknown_0x0A unknown_0x0A;
(0x0B): Unknown_0x0B unknown_0x0B;
(0x0C): Unknown_0x0C unknown_0x0C;
(0x1B): continue;
(0x1C): Unknown_0x1C unknown_0x1C;
(0x1E): Unknown_0x1E unknown_0x1E;
}
};
/*
NAME MD5 FILE
---- --- ----
HL:CS (CD) 43cd9aff74e04fa1b59321b898d9a6bd counter-strike.exe
HLGOTY (CD) f5b8b35ca02beeeb146e62a63a0273a6 SETUP.EXE
CS15 eedcfcf6545cef92f26fb9a7fdd77c42 csv15full.exe
RTCW (CD) f2d9e3e1eaaed66047210881d130384f Setup.exe
ET 5cc104767ecdf0feb3a36210adf46a8e WolfET.exe
Example:
// NOTE: Set absolute path to WISEINSTALL.hexpat
#include </home/user/code/WISESCRIPT.hexpat>
struct MainStruct {
Header header;
InstStruct1 install_struct_1;
// HL:GOTY 6536
// RTCW 403
// HL:CS 29701
// CS15 6253
// ET 403
Container items[390];
};
MainStruct mainStruct @0x0;
*/