From 4a669d86b7227f176060374bc549af49249228fa Mon Sep 17 00:00:00 2001 From: Guus Waals <_@guusw.nl> Date: Thu, 29 May 2025 23:59:05 +0800 Subject: [PATCH] Cleanup --- game_re/gh_auto/r3_main.cxx | 616 --- game_re/gh_global.cxx | 2 +- game_re/gh_global.h | 2 +- game_re/gh_types.h | 5811 +++++++++++++++++++++++- game_re/r3/binders/dbg_mem.h | 4 +- game_re/r3/binders/global.h | 2 + game_re/r3/binders/stub.h | 4 +- game_re/scan_sources | 12 +- game_re/type_blacklist.txt | 16 +- game_re/type_path_blacklist.txt | 3 +- java/ghidra/re3lib/DataTypeWriter.java | 62 +- java/ghidra/re3lib/TypeDumper.java | 22 +- 12 files changed, 5901 insertions(+), 655 deletions(-) delete mode 100644 game_re/gh_auto/r3_main.cxx diff --git a/game_re/gh_auto/r3_main.cxx b/game_re/gh_auto/r3_main.cxx deleted file mode 100644 index 97421530..00000000 --- a/game_re/gh_auto/r3_main.cxx +++ /dev/null @@ -1,616 +0,0 @@ -// AUTO-GENERATED FILE, MOVE TO 'gh_fix' FOLDER PREVENT OVERWRITING!!!!! - -#include -#include - -extern "C" { -int setupWindow(HINSTANCE instance, undefined4 param_2, int windowedParam); // 00402140 // setupWindow -undefined FUN_00470db0(void); // 00470db0 // FUN_00470db0 -undefined r3_checkDisc(void); // 004464f0 // r3_checkDisc -undefined FUN_00503710(void); // 00503710 // FUN_00503710 -undefined r3_initAllModules(void); // 00401000 // r3_initAllModules -undefined FUN_00472150(void); // 00472150 // FUN_00472150 -undefined r3_wait_for_dvd(char * param_1, char * param_2, undefined4 param_3); // 0043e540 // r3_wait_for_dvd -undefined FUN_004725a0(void); // 004725a0 // FUN_004725a0 -int r3_get_gli_width1(void); // 0047baf0 // r3_get_gli_width1 -undefined gfx_init2(void); // 00470be0 // gfx_init2 -void g_setInitVar0(void); // 00401310 // g_setInitVar0 -int r3_get_gli_height1(void); // 0047bb00 // r3_get_gli_height1 -undefined FUN_004010b0(void); // 004010b0 // FUN_004010b0 -undefined FUN_00401320(void); // 00401320 // FUN_00401320 -void r3_noop(void * p_cTxt1, void * p_cTxt2); // 00401100 // r3_noop -undefined FUN_005038e0(void); // 005038e0 // FUN_005038e0 -undefined FUN_004fb300(void); // 004fb300 // FUN_004fb300 -undefined spawnThread(void); // 004477d0 // spawnThread -undefined r3_engineLoop(void); // 00401220 // r3_engineLoop - -// 00401630 -int r3_main(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR *cmdline,int showCmd) - -{ - undefined4 uVar1; - undefined2 uVar2; - undefined2 uVar3; - LPSTR pCVar3; - char *pcVar4; - FILE *pFVar5; - LONG LVar6; - HMODULE hLibModule; - DWORD DVar7; - HANDLE hTargetProcessHandle; - HANDLE hSourceHandle; - HANDLE hSourceProcessHandle; - uint *ppCVar8; - HWND hWnd; - int iVar10; - int iVar11; - int iVar12; - int iVar13; - uint uVar14; - HKEY unaff_ESI; - char *pcVar17; - void *p_cTxt1; - void *p_cTxt2; - undefined4 uStack_85c; - undefined4 uStack_858; - LPSTR lpBuffer; - UINT uiParam; - BYTE uStack_83c [4]; - DWORD pHStack_838; - DWORD pvStack_834; - char UStack_830 [16]; - char tStack_820 [260]; - CHAR aCStack_71c [256]; - char acStack_61c [16]; - CHAR pathToUbi_ini [228]; - char acStack_528 [16]; - char acStack_518 [244]; - char acStack_424 [16]; - CHAR aCStack_414 [244]; - char acStack_320 [16]; - char acStack_310 [240]; - char acStack_220 [256]; - char acStack_120 [260]; - HINSTANCE instance; - uint *puStack_14; - undefined4 uStack_10; - int iStack_8; - BOOL BVar18; - char cVar1; - undefined4 chars; - DWORD dwOptions; - LPRECT lpRect; - LPHANDLE lpTargetHandle; - undefined4 uVar22; - - lpBuffer = pathToUbi_ini; - uiParam = 0x104; - /* Append windows dir / ubi.ini */ - uStack_858 = 0x40164d; - GetWindowsDirectoryA(lpBuffer,0x104); - iVar13 = -1; - pcVar4 = acStack_61c; - do { - pcVar17 = pcVar4; - if (iVar13 == 0) break; - iVar13 = iVar13 + -1; - pcVar17 = pcVar4 + 1; - cVar1 = *pcVar4; - pcVar4 = pcVar17; - } while (cVar1 != '\0'); - *(undefined4 *)(pcVar17 + -1) = s_UbiSoft_Ubi_ini + Field<0, 4>(); - *(undefined4 *)(pcVar17 + 3) = s_UbiSoft_Ubi_ini + Field<4, 4>(); - *(undefined4 *)(pcVar17 + 7) = s_UbiSoft_Ubi_ini + Field<8, 4>(); - *(undefined4 *)(pcVar17 + 0xb) = s_UbiSoft_Ubi_ini + Field<12, 4>(); - pcVar17[0xf] = s_UbiSoft_Ubi_ini[0x10]; - pCVar3 = GetCommandLineA(); - pcVar4 = pCVar3 + 1; - iVar13 = -(int)pcVar4; - do { - cVar1 = *pcVar4; - pcVar4[(int)(tStack_820 + iVar13)] = cVar1; - pcVar4 = pcVar4 + 1; - } while (cVar1 != '\0'); - pcVar4 = strrchr(tStack_820,0x5c); - if (pcVar4 == (char *)0x0) { - /* Read from ubi.ini */ - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Directory_005b68f8,s_None,tStack_820,0xff,acStack_61c); - iVar13 = strcmpi(tStack_820,s_None); - } - else { - pcVar4 = strrchr(tStack_820,0x5c); - *pcVar4 = '\0'; - iVar13 = chdir(tStack_820); - if (iVar13 != -1) goto LAB_00401765; - /* Read from ubi.ini */ - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Directory_005b68f8,s_None,tStack_820,0xff,acStack_61c); - iVar13 = strcmpi(tStack_820,s_None); - } - if (iVar13 != 0) { - chdir(tStack_820); - } -LAB_00401765: - /* strcpy */ - iVar13 = 0; - do { - cVar1 = tStack_820[iVar13]; - r3_main_data_005d28b6.gameDataDir[iVar13] = cVar1; - iVar13 = iVar13 + 1; - } while (cVar1 != '\0'); - strlwr(r3_main_data_005d28b6.gameDataDir); - iVar13 = -1; - pcVar4 = r3_main_data_005d28b6.gameDataDir; - do { - if (iVar13 == 0) break; - iVar13 = iVar13 + -1; - cVar1 = *pcVar4; - pcVar4 = pcVar4 + 1; - } while (cVar1 != '\0'); -joined_r0x00401792: - if (iVar13 != -2) { - uVar14 = 0xffffffff; - pcVar4 = r3_main_data_005d28b6.gameDataDir; - do { - if (uVar14 == 0) break; - uVar14 = uVar14 - 1; - cVar1 = *pcVar4; - pcVar4 = pcVar4 + 1; - } while (cVar1 != '\0'); - if (r3_main_data_005d28b6.gameDataDir[~uVar14 - 2] != '\\') goto LAB_004017ce; - uVar14 = 0xffffffff; - pcVar4 = r3_main_data_005d28b6.gameDataDir; - do { - if (uVar14 == 0) break; - uVar14 = uVar14 - 1; - cVar1 = *pcVar4; - pcVar4 = pcVar4 + 1; - } while (cVar1 != '\0'); - r3_main_data_005d28b6.gameDataDir[~uVar14 - 2] = '\0'; - iVar13 = -1; - pcVar4 = r3_main_data_005d28b6.gameDataDir; - do { - if (iVar13 == 0) break; - iVar13 = iVar13 + -1; - cVar1 = *pcVar4; - pcVar4 = pcVar4 + 1; - } while (cVar1 != '\0'); - goto joined_r0x00401792; - } -LAB_004017ce: - pFVar5 = fopen(acStack_61c,fopen_mode_r_text); - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Adapter_005b68e4,(LPCSTR)&lpDefault_005cf96c,acStack_310,0xff, - acStack_61c); - if ((pFVar5 == (FILE *)0x0) || (acStack_310[0] == '\0')) { - /* Concat game data dir with r3 setup exe */ - iVar13 = 0; - do { - cVar1 = r3_main_data_005d28b6.gameDataDir[iVar13]; - acStack_518[iVar13] = cVar1; - iVar13 = iVar13 + 1; - } while (cVar1 != '\0'); - iVar13 = -1; - pcVar4 = acStack_518; - do { - pcVar17 = pcVar4; - if (iVar13 == 0) break; - iVar13 = iVar13 + -1; - pcVar17 = pcVar4 + 1; - cVar1 = *pcVar4; - pcVar4 = pcVar17; - } while (cVar1 != '\0'); - *(undefined4 *)(pcVar17 + -1) = s__R3_Setup_DX8_exe_005b68d0 + Field<0, 4>(); - *(undefined4 *)(pcVar17 + 3) = s__R3_Setup_DX8_exe_005b68d0 + Field<4, 4>(); - *(undefined4 *)(pcVar17 + 7) = s__R3_Setup_DX8_exe_005b68d0 + Field<8, 4>(); - *(undefined4 *)(pcVar17 + 0xb) = s__R3_Setup_DX8_exe_005b68d0 + Field<12, 4>(); - *(undefined2 *)(pcVar17 + 0xf) = s__R3_Setup_DX8_exe_005b68d0 + Field<16, 2>(); - pFVar5 = fopen(acStack_518,fopen_mode_r_binary); - if (pFVar5 == (FILE *)0x0) { - MessageBoxA((HWND)0x0,s_Unable_to_find_R3_Setup_DX8_exe__005b6880,s_Rayman_3_Error_005b68bc, - 0x10); - return -1; - } - fclose(pFVar5); - spawnl(0,acStack_518,acStack_518,0); - pFVar5 = fopen(acStack_61c,fopen_mode_r_text); - if (pFVar5 == (FILE *)0x0) { - return -1; - } - } - fclose(pFVar5); - /* Open reg key - HKEY_LOCAL_MACHINE\\SOFTWARE\\UBI SOFT\\RAYMAN 3 */ - LVar6 = RegOpenKeyExA((HKEY)0x80000002,s_SOFTWARE_UBI_SOFT_RAYMAN_3_005b6864,0,0x20019, - (PHKEY)&stack0xfffff7b8); - if (LVar6 == 0) { - LVar6 = RegQueryValueExA(unaff_ESI,s_CompleteInstall_005b6854,(LPDWORD)0x0,&pvStack_834, - uStack_83c,&pHStack_838); - DAT_007d9cc4 = (uint)(LVar6 == 0); - if (unaff_ESI != (HKEY)0x0) { - RegCloseKey(unaff_ESI); - } - } - else { - DAT_007d9cc4 = 0; - } - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Language_005b6840,s_English_005b684c,aCStack_71c,0xff,acStack_61c) - ; - sprintf(g_mutexName_Rayman3,s_percents,lpAppName_005b68f0); - sprintf(g_windowTitle,s_percents,s_windowTitle); - /* Setup localized quiting/restoring strings */ - iVar13 = strcmpi(aCStack_71c,s_French_005b6828); - if (iVar13 == 0) { - sprintf(s_windowTitleRestoring,s_Restauration_fmt,s_windowTitle); - chars = s_QUITTER + Field<4, 4>(); - pcVar4 = s_ou_appuyez_sur_Echap_pour_quitte_005b67d0; - pcVar17 = s_quitting1; - for (iVar13 = 0xb; uVar22 = s_QUITTER + Field<4, 4>(), iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - s_wndStrQuiting[0] = s_QUITTER[0]; - s_wndStrQuiting[1] = s_QUITTER[1]; - s_wndStrQuiting[2] = s_QUITTER[2]; - s_wndStrQuiting[3] = s_QUITTER[3]; - /* Wrong decompilation? */ - s_QUITTER[4] = (char)chars; - s_QUITTER[5] = SUB41(chars,1); - s_QUITTER[6] = SUB41(chars,2); - s_QUITTER[7] = SUB41(chars,3); - s_wndStrQuiting[4] = s_QUITTER[4]; - s_wndStrQuiting[5] = s_QUITTER[5]; - s_wndStrQuiting[6] = s_QUITTER[6]; - s_wndStrQuiting[7] = s_QUITTER[7]; - s_QUITTER + Field<4, 4>() = uVar22; - sprintf(g_windowTitle,s__s___Pause_005b67c4,s_windowTitle); - pcVar4 = s_Restauration; - pcVar17 = s_wndStrRestoring; - for (iVar13 = 7; iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - } - else { - iVar13 = strcmpi(aCStack_71c,s_Spanish_005b67a0); - if (iVar13 == 0) { - sprintf(s_windowTitleRestoring,s__s___Restablecer_datos____005b6784,s_windowTitle); - uVar2 = s_SALIR_005b675c + Field<4, 2>(); - pcVar4 = s_Pulsa_ESC_para_salir_Rayman_3__005b6764; - pcVar17 = s_quitting1; - for (iVar13 = 7; chars = s_SALIR_005b675c + Field<0, 4>(), iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - *(undefined2 *)pcVar17 = *(undefined2 *)pcVar4; - pcVar17[2] = pcVar4[2]; - uVar3 = s_SALIR_005b675c + Field<4, 2>(); - uVar22 = s_SALIR_005b675c + Field<0, 4>(); - s_SALIR_005b675c[0] = (char)chars; - s_SALIR_005b675c[1] = SUB41(chars,1); - s_SALIR_005b675c[2] = SUB41(chars,2); - s_SALIR_005b675c[3] = SUB41(chars,3); - s_wndStrQuiting[0] = s_SALIR_005b675c[0]; - s_wndStrQuiting[1] = s_SALIR_005b675c[1]; - s_wndStrQuiting[2] = s_SALIR_005b675c[2]; - s_wndStrQuiting[3] = s_SALIR_005b675c[3]; - s_SALIR_005b675c[4] = (char)uVar2; - s_SALIR_005b675c[5] = SUB21(uVar2,1); - s_wndStrQuiting[4] = s_SALIR_005b675c[4]; - s_wndStrQuiting[5] = s_SALIR_005b675c[5]; - s_SALIR_005b675c + Field<0, 4>() = uVar22; - s_SALIR_005b675c + Field<4, 2>() = uVar3; - sprintf(g_windowTitle,s__s___Rotura_005b6750,s_windowTitle); - pcVar4 = s_Restablecer_datos____005b6738; - pcVar17 = s_wndStrRestoring; - for (iVar13 = 5; iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - *pcVar17 = *pcVar4; - } - else { - iVar13 = strcmpi(aCStack_71c,s_Italian_005b6730); - if (iVar13 == 0) { - sprintf(s_windowTitleRestoring,s__s___Ripristino_dati____005b6718,s_windowTitle); - uVar2 = s_USCIRE_005b66ec + Field<4, 2>(); - pcVar4 = s_Premi_ESC_per_uscire_da_Rayman_3_005b66f4; - pcVar17 = s_quitting1; - for (iVar13 = 8; cVar1 = s_USCIRE_005b66ec[6], iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - s_wndStrQuiting[0] = s_USCIRE_005b66ec[0]; - s_wndStrQuiting[1] = s_USCIRE_005b66ec[1]; - s_wndStrQuiting[2] = s_USCIRE_005b66ec[2]; - s_wndStrQuiting[3] = s_USCIRE_005b66ec[3]; - *(undefined2 *)pcVar17 = *(undefined2 *)pcVar4; - uVar3 = s_USCIRE_005b66ec + Field<4, 2>(); - s_wndStrQuiting[6] = cVar1; - s_USCIRE_005b66ec[4] = (char)uVar2; - s_USCIRE_005b66ec[5] = SUB21(uVar2,1); - s_wndStrQuiting[4] = s_USCIRE_005b66ec[4]; - s_wndStrQuiting[5] = s_USCIRE_005b66ec[5]; - s_USCIRE_005b66ec + Field<4, 2>() = uVar3; - sprintf(g_windowTitle,s__s___Pausa_005b66e0,s_windowTitle); - s_wndStrRestoring[0] = s_Ripristino_dati____005b66cc[0]; - s_wndStrRestoring[1] = s_Ripristino_dati____005b66cc[1]; - s_wndStrRestoring[2] = s_Ripristino_dati____005b66cc[2]; - s_wndStrRestoring[3] = s_Ripristino_dati____005b66cc[3]; - s_wndStrRestoring[4] = s_Ripristino_dati____005b66cc[4]; - s_wndStrRestoring[5] = s_Ripristino_dati____005b66cc[5]; - s_wndStrRestoring[6] = s_Ripristino_dati____005b66cc[6]; - s_wndStrRestoring[7] = s_Ripristino_dati____005b66cc[7]; - s_wndStrRestoring[8] = s_Ripristino_dati____005b66cc[8]; - s_wndStrRestoring[9] = s_Ripristino_dati____005b66cc[9]; - s_wndStrRestoring[10] = s_Ripristino_dati____005b66cc[10]; - s_wndStrRestoring[0xb] = s_Ripristino_dati____005b66cc[0xb]; - s_wndStrRestoring + Field<12, 4>() = s_Ripristino_dati____005b66cc + Field<12, 4>(); - s_wndStrRestoring + Field<16, 2>() = s_Ripristino_dati____005b66cc + Field<16, 2>(); - s_wndStrRestoring[0x12] = s_Ripristino_dati____005b66cc[0x12]; - } - else { - iVar13 = strcmpi(aCStack_71c,s_German_005b66c4); - if (iVar13 == 0) { - sprintf(s_windowTitleRestoring,s__s___Daten_Reparatur____005b66ac,s_windowTitle); - chars = s_BEENDIGEN_005b6678 + Field<0, 4>(); - pcVar4 = &CHAR_E_005b6684; - pcVar17 = s_quitting1; - for (iVar13 = 9; uVar2 = s_BEENDIGEN_005b6678 + Field<8, 2>(), uVar22 = s_BEENDIGEN_005b6678 + Field<4, 4>(), - iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - *(undefined2 *)pcVar17 = *(undefined2 *)pcVar4; - uVar1 = s_BEENDIGEN_005b6678 + Field<0, 4>(); - s_BEENDIGEN_005b6678[0] = (char)chars; - s_BEENDIGEN_005b6678[1] = SUB41(chars,1); - s_BEENDIGEN_005b6678[2] = SUB41(chars,2); - s_BEENDIGEN_005b6678[3] = SUB41(chars,3); - s_wndStrQuiting[0] = s_BEENDIGEN_005b6678[0]; - s_wndStrQuiting[1] = s_BEENDIGEN_005b6678[1]; - s_wndStrQuiting[2] = s_BEENDIGEN_005b6678[2]; - s_wndStrQuiting[3] = s_BEENDIGEN_005b6678[3]; - s_BEENDIGEN_005b6678 + Field<0, 4>() = uVar1; - pcVar17[2] = pcVar4[2]; - uVar3 = s_BEENDIGEN_005b6678 + Field<8, 2>(); - chars = s_BEENDIGEN_005b6678 + Field<4, 4>(); - s_BEENDIGEN_005b6678[4] = (char)uVar22; - s_BEENDIGEN_005b6678[5] = SUB41(uVar22,1); - s_BEENDIGEN_005b6678[6] = SUB41(uVar22,2); - s_BEENDIGEN_005b6678[7] = SUB41(uVar22,3); - s_wndStrQuiting[4] = s_BEENDIGEN_005b6678[4]; - s_wndStrQuiting[5] = s_BEENDIGEN_005b6678[5]; - s_wndStrQuiting[6] = s_BEENDIGEN_005b6678[6]; - s_wndStrQuiting[7] = s_BEENDIGEN_005b6678[7]; - s_BEENDIGEN_005b6678[8] = (char)uVar2; - s_BEENDIGEN_005b6678[9] = SUB21(uVar2,1); - s_wndStrQuiting[8] = s_BEENDIGEN_005b6678[8]; - s_wndStrQuiting[9] = s_BEENDIGEN_005b6678[9]; - s_BEENDIGEN_005b6678 + Field<4, 4>() = chars; - s_BEENDIGEN_005b6678 + Field<8, 2>() = uVar3; - sprintf(g_windowTitle,s__s___Pause_005b67c4,s_windowTitle); - s_wndStrRestoring[0] = s_Daten_Reparatur____005b6664[0]; - s_wndStrRestoring[1] = s_Daten_Reparatur____005b6664[1]; - s_wndStrRestoring[2] = s_Daten_Reparatur____005b6664[2]; - s_wndStrRestoring[3] = s_Daten_Reparatur____005b6664[3]; - s_wndStrRestoring[4] = s_Daten_Reparatur____005b6664[4]; - s_wndStrRestoring[5] = s_Daten_Reparatur____005b6664[5]; - s_wndStrRestoring[6] = s_Daten_Reparatur____005b6664[6]; - s_wndStrRestoring[7] = s_Daten_Reparatur____005b6664[7]; - s_wndStrRestoring[8] = s_Daten_Reparatur____005b6664[8]; - s_wndStrRestoring[9] = s_Daten_Reparatur____005b6664[9]; - s_wndStrRestoring[10] = s_Daten_Reparatur____005b6664[10]; - s_wndStrRestoring[0xb] = s_Daten_Reparatur____005b6664[0xb]; - s_wndStrRestoring[0xc] = s_Daten_Reparatur____005b6664[0xc]; - s_wndStrRestoring[0xd] = s_Daten_Reparatur____005b6664[0xd]; - s_wndStrRestoring[0xe] = s_Daten_Reparatur____005b6664[0xe]; - s_wndStrRestoring[0xf] = s_Daten_Reparatur____005b6664[0xf]; - s_wndStrRestoring[0x10] = s_Daten_Reparatur____005b6664[0x10]; - s_wndStrRestoring[0x11] = s_Daten_Reparatur____005b6664[0x11]; - s_wndStrRestoring[0x12] = s_Daten_Reparatur____005b6664[0x12]; - } - else { - sprintf(s_windowTitleRestoring,s__s___Restoring_data____005b664c,s_windowTitle); - chars = s_QUIT + Field<0, 4>(); - pcVar4 = s_or_press_ESC_to_quit_Rayman_3__005b662c; - pcVar17 = s_quitting1; - for (iVar13 = 7; cVar1 = s_QUIT[4], iVar13 != 0; iVar13 = iVar13 + -1) { - *(undefined4 *)pcVar17 = *(undefined4 *)pcVar4; - pcVar4 = pcVar4 + 4; - pcVar17 = pcVar17 + 4; - } - *(undefined2 *)pcVar17 = *(undefined2 *)pcVar4; - pcVar17[2] = pcVar4[2]; - uVar22 = s_QUIT + Field<0, 4>(); - s_QUIT[0] = (char)chars; - s_QUIT[1] = SUB41(chars,1); - s_QUIT[2] = SUB41(chars,2); - s_QUIT[3] = SUB41(chars,3); - s_wndStrQuiting[0] = s_QUIT[0]; - s_wndStrQuiting[1] = s_QUIT[1]; - s_wndStrQuiting[2] = s_QUIT[2]; - s_wndStrQuiting[3] = s_QUIT[3]; - s_wndStrQuiting[4] = cVar1; - s_QUIT + Field<0, 4>() = uVar22; - sprintf(g_windowTitle,s__s___Pause_005b67c4,s_windowTitle); - s_wndStrRestoring[0] = s_Restoring_data_____005b6610[0]; - s_wndStrRestoring[1] = s_Restoring_data_____005b6610[1]; - s_wndStrRestoring[2] = s_Restoring_data_____005b6610[2]; - s_wndStrRestoring[3] = s_Restoring_data_____005b6610[3]; - s_wndStrRestoring[4] = s_Restoring_data_____005b6610[4]; - s_wndStrRestoring[5] = s_Restoring_data_____005b6610[5]; - s_wndStrRestoring[6] = s_Restoring_data_____005b6610[6]; - s_wndStrRestoring[7] = s_Restoring_data_____005b6610[7]; - s_wndStrRestoring[8] = s_Restoring_data_____005b6610[8]; - s_wndStrRestoring[9] = s_Restoring_data_____005b6610[9]; - s_wndStrRestoring[10] = s_Restoring_data_____005b6610[10]; - s_wndStrRestoring[0xb] = s_Restoring_data_____005b6610[0xb]; - s_wndStrRestoring + Field<12, 4>() = s_Restoring_data_____005b6610 + Field<12, 4>(); - s_wndStrRestoring + Field<16, 2>() = s_Restoring_data_____005b6610 + Field<16, 2>(); - s_wndStrRestoring[0x12] = s_Restoring_data_____005b6610[0x12]; - } - } - } - } - /* Create draw semaphore - Initial count = 1 - Maximum count = 1 */ - g_drawSemaphore = CreateSemaphoreA((LPSECURITY_ATTRIBUTES)0x0,1,1,s_DRAWSEM_005b6608); - if (iStack_8 != 0) { - return -1; - } - /* Load DirectPlay probably unused */ - hLibModule = LoadLibraryA(s_dpnhpast_dll_005b65f8); - if (hLibModule == (HMODULE)0x0) { - iVar13 = strcmpi(aCStack_71c,s_French_005b6828); - if (iVar13 == 0) { - MessageBoxA((HWND)0x0,lpText_005b6598,s_Erreur_Rayman_3_005b65e4,0x10); - return -1; - } - iVar13 = strcmpi(aCStack_71c,s_Spanish_005b67a0); - if (iVar13 == 0) { - MessageBoxA((HWND)0x0,lpText_005b6540,s_Rayman_3_005b6588,0x10); - return -1; - } - iVar13 = strcmpi(aCStack_71c,s_Italian_005b6730); - if (iVar13 == 0) { - MessageBoxA((HWND)0x0,lpText_005b64f0,s_Rayman_3_005b6588,0x10); - return -1; - } - iVar13 = strcmpi(aCStack_71c,s_German_005b66c4); - if (iVar13 != 0) { - MessageBoxA((HWND)0x0,s_Check_your_version_of_DirectX__V_005b6430,s_Rayman_3_Error_005b68bc, - 0x10); - return -1; - } - MessageBoxA((HWND)0x0,lpText_005b6478,s_Rayman_3_005b6588,0x10); - return -1; - } - FreeLibrary(hLibModule); - p_cTxt1 = (void *)0x401e2a; - CreateMutexA((LPSECURITY_ATTRIBUTES)0x0,1,g_mutexName_Rayman3); - DVar7 = GetLastError(); - if (DVar7 == 0xb7) { - /* Mutex already exists */ - return -1; - } - p_cTxt2 = (void *)0x401e5a; - GetWindowsDirectoryA(aCStack_414,0x104); - iVar13 = -1; - /* Append ubi.ini */ - pcVar4 = acStack_424; - do { - pcVar17 = pcVar4; - if (iVar13 == 0) break; - iVar13 = iVar13 + -1; - pcVar17 = pcVar4 + 1; - cVar1 = *pcVar4; - pcVar4 = pcVar17; - } while (cVar1 != '\0'); - *(undefined4 *)(pcVar17 + -1) = s_UbiSoft_Ubi_ini + Field<0, 4>(); - *(undefined4 *)(pcVar17 + 3) = s_UbiSoft_Ubi_ini + Field<4, 4>(); - *(undefined4 *)(pcVar17 + 7) = s_UbiSoft_Ubi_ini + Field<8, 4>(); - *(undefined4 *)(pcVar17 + 0xb) = s_UbiSoft_Ubi_ini + Field<12, 4>(); - pcVar17[0xf] = s_UbiSoft_Ubi_ini[0x10]; - /* Read graphics settings */ - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Adapter_005b68e4,(LPCSTR)&lpDefault_005cf96c,acStack_320,0xff, - acStack_424); - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Identifier_005b6420,(LPCSTR)&lpDefault_005cf96c,acStack_120,0xff, - acStack_424); - GetPrivateProfileStringA - (lpAppName_005b68f0,s_Gli_Mode_005b6414,(LPCSTR)&lpDefault_005cf96c,acStack_220,0xff, - acStack_424); - /* If they're all set */ - if (((acStack_320[0] != '\0') && (acStack_120[0] != '\0')) && (acStack_220[0] != '\0')) { - /* For GLIMode - 1 = maximize - 0 = windowed */ - g_runMaximized = (int)(acStack_220[0] != '0'); - r3_checkDisc(); - dwOptions = 0; - BVar18 = 0; - lpTargetHandle = (LPHANDLE)&stack0xfffff7ac; - DVar7 = 0x1f03ff; - g_hinstance = instance; - hTargetProcessHandle = GetCurrentProcess(); - hSourceHandle = GetCurrentThread(); - hSourceProcessHandle = GetCurrentProcess(); - DuplicateHandle(hSourceProcessHandle,hSourceHandle,hTargetProcessHandle,lpTargetHandle,DVar7, - BVar18,dwOptions); - /* Copy cmdline */ - ppCVar8 = puStack_14; - g_mainThreadHandle = lpBuffer; - do { - uVar14 = *ppCVar8; - *(char *)(((int)g_appCmdLine - (int)puStack_14) + (int)ppCVar8) = (char)uVar14; - ppCVar8 = (uint *)((int)ppCVar8 + 1); - } while ((char)uVar14 != '\0'); - /* SEM_FAILCRITICALERRORS */ - SetErrorMode(1); - pcVar4 = strstr(puStack_14,s_dashCC); - if (pcVar4 == (char *)0x0) { - r3_initAllModules(); - iVar13 = setupWindow(instance,uStack_10,g_runMaximized); - if (iVar13 == 0) { - return -1; - } - g_setInitVar0(); - FUN_00401320(); - spawnThread(); - r3_noop(p_cTxt1,p_cTxt2); - gfx_init2(); - lpRect = (LPRECT)&stack0xfffff7c0; - hWnd = GetDesktopWindow(); - GetWindowRect(hWnd,lpRect); - BVar18 = 1; - iVar13 = r3_get_gli_height1(); - iVar13 = iVar13 + 0x20; - iVar10 = r3_get_gli_width1(); - iVar10 = iVar10 + 0xc; - iVar11 = r3_get_gli_height1(); - iVar11 = (int)(pvStack_834 - iVar11) / 2; - iVar12 = r3_get_gli_width1(); - MoveWindow(g_gameHWND,(int)(pHStack_838 - iVar12) / 2,iVar11,iVar10,iVar13,BVar18); - FUN_004010b0(); - SystemParametersInfoA(0x10,0,&stack0xfffff7b0,0); - SystemParametersInfoA(0x11,0,(PVOID)0x0,0); - ShowCursor(0); - uStack_85c = 0; - SystemParametersInfoA(0x61,1,&uStack_85c,0); - g_engineRunning = 1; - r3_engineLoop(); - /* cleanup starts here */ - FUN_004725a0(); - FUN_005038e0(); - FUN_00503710(); - FUN_004fb300(); - FUN_00472150(); - FUN_00470db0(); - uStack_85c = 0; - SystemParametersInfoA(0x61,0,&uStack_85c,0); - ShowCursor(1); - SystemParametersInfoA(0x11,uiParam,(PVOID)0x0,0); - CloseHandle(lpBuffer); - } - return 0; - } - sprintf(UStack_830,s_Please_run_the__s_setup__005b63f4,s_windowTitle); - sprintf(acStack_528,s__s_not_initialized__005b63e0,s_windowTitle); - r3_wait_for_dvd(UStack_830,acStack_528,0); - /* WARNING: Subroutine does not return */ - exit(-1); -} - -} - diff --git a/game_re/gh_global.cxx b/game_re/gh_global.cxx index d7e490bf..04003a76 100644 --- a/game_re/gh_global.cxx +++ b/game_re/gh_global.cxx @@ -64,7 +64,7 @@ undefined4& g_engineRunning= (undefined4&) GH_MEM(0x0077d0b4); undefined4& g_drawSemaphore= (undefined4&) GH_MEM(0x0077d0bc); char(&g_mutexName_Rayman3)[256] = reinterpret_cast(GH_MEM(0x0077d0c0)); char(&g_windowTitle)[256] = reinterpret_cast(GH_MEM(0x0077d1c0)); -char(&g_windowTitle)[256] = reinterpret_cast(GH_MEM(0x0077d2c0)); +char(&g_windowTitle1)[256] = reinterpret_cast(GH_MEM(0x0077d2c0)); char(&s_windowTitleRestoring)[256] = reinterpret_cast(GH_MEM(0x0077d3c0)); HINSTANCE& g_hinstance= (HINSTANCE&) GH_MEM(0x0077d4c0); HWND& g_gameHWND= (HWND&) GH_MEM(0x0077d4c4); diff --git a/game_re/gh_global.h b/game_re/gh_global.h index c2e94345..a28e8199 100644 --- a/game_re/gh_global.h +++ b/game_re/gh_global.h @@ -69,7 +69,7 @@ extern undefined4& g_engineRunning; // 0077d0b4 extern undefined4& g_drawSemaphore; // 0077d0bc extern char(&g_mutexName_Rayman3)[256]; // 0077d0c0 extern char(&g_windowTitle)[256]; // 0077d1c0 -extern char(&g_windowTitle)[256]; // 0077d2c0 +extern char(&g_windowTitle1)[256]; // 0077d2c0 extern char(&s_windowTitleRestoring)[256]; // 0077d3c0 extern HINSTANCE& g_hinstance; // 0077d4c0 extern HWND& g_gameHWND; // 0077d4c4 diff --git a/game_re/gh_types.h b/game_re/gh_types.h index f204d016..e336c836 100644 --- a/game_re/gh_types.h +++ b/game_re/gh_types.h @@ -3,6 +3,3714 @@ // AUTO-GENERATED FILE #include +#define INITGUID 1 +typedef struct tdstMorphChannelList_ *CHN_tdxHandleToMorphElement; +struct TMR_tdstTimerCount { + unsigned long ulLowPart; + unsigned long ulHighPart; +}; +struct _SwitchParam { + long lObjectType; + long lObjectId; +}; +typedef struct _SwitchParam SwitchParam; +typedef long SndReal; +struct _RollOffParam { + SndReal rDistSatur; + SndReal rDistBackGround; +}; +typedef struct _RollOffParam RollOffParam; +struct _ExtraSoundParam { + RollOffParam stRollOff; + SwitchParam stSwitch; +}; +typedef struct _ExtraSoundParam ExtraSoundParam; +#define _USE_ATTRIBUTES_FOR_SAL 0 +typedef float GEO_tdxColorValue; +struct GEO_tdstColor { + GEO_tdxColorValue xR; + GEO_tdxColorValue xG; + GEO_tdxColorValue xB; + GEO_tdxColorValue xA; +}; +struct MTH3_Vector { + float xX; + float xY; + float xZ; +}; +struct MTH3D_Matrix { + struct MTH3_Vector stCol_0; + struct MTH3_Vector stCol_1; + struct MTH3_Vector stCol_2; +}; +struct POS_stCompletePosition { + unsigned long ulType; + struct MTH3_Vector stTranslationVector; + struct MTH3D_Matrix stRotationMatrix; + struct MTH3D_Matrix stTransformMatrix; +}; +struct GLI_tdstZBufferForLight { + long lSizeX; + long lSizeY; + float xCoefX; + float xCoefY; + float *p_xZBufferMap; + float *p_xMiddleZBufferMap; +}; +typedef unsigned char ACP_tdxBool; +struct GLI_tdstLight { + unsigned char bOnOff; + unsigned char bThisLightIsZBuffered; + long lTypeOfLight; + float xFar; + float xNear; + float xLittleAlpha; + float xBigAlpha; + float xLittleTangent; + float xBigTangent; + struct POS_stCompletePosition stMatrix; + struct GLI_tdstZBufferForLight stZBuffer; + struct GEO_tdstColor stColor; + ACP_tdxBool bValid; + unsigned char ucObjectPainted; + ACP_tdxBool bIsPainting; + unsigned char ucIsAlpha; + struct MTH3_Vector stInter_Min_Pos; + struct MTH3_Vector stExter_Min_Pos; + struct MTH3_Vector stInter_Max_Pos; + struct MTH3_Vector stExter_Max_Pos; + struct MTH3_Vector stCenterBox; + float xRadius; + float xIntensity_Min; + float xIntensity_Max; + struct GEO_tdstColor stBackgroundColor; +}; +typedef unsigned long (*tdfn_ulSizeofHandleFunction)(void); +#define TRUE 1 +#define C_ucMECHANIC_EVENT 1 +struct _tdstTypeSampleDisk { +}; +typedef struct _tdstTypeSampleDisk tdstTypeSampleDisk; +struct _tdstFormatPCM { + unsigned long ulNbSamples; + unsigned short uwResolution; + unsigned short uwNbChannels; + unsigned long ulFreq; +}; +struct tdstTimerCount { + unsigned long ulLowPart; + unsigned long ulHighPart; +}; +struct tdstChannelInfo_ { + unsigned long ulThreadId; + unsigned char ucGroupId; +}; +struct tdstInformationHeaderOfBlockWithoutFree_ { + unsigned char ucBoundededHeaderSize; + unsigned char ucAlignment; + unsigned char ucMode; +}; +typedef struct tdstChannelActivationStateList_ *CHN_tdxHandleToCASElement; +struct _SndVector { + SndReal x; + SndReal y; + SndReal z; +}; +typedef struct _SndVector SndVector; +typedef int SndBool; +struct _MicroLink { + long lId; + SndBool bLinked; +}; +typedef struct _MicroLink MicroLink; +struct _SoundParam { + SndReal Freq; + unsigned char ucVol; + unsigned char ucPan; + unsigned char ucSpace; + unsigned char ucReverb; + SndVector Pos; + SndVector Vit; + int iFlags; + int iNbLinks; + MicroLink astMicro[2]; + ExtraSoundParam xExtra; +}; +struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn { + struct FIL_FileNameListElement *hFirstElementDyn; + struct FIL_FileNameListElement *hLastElementDyn; + long lNumberOfElementsDyn; +}; +struct FIL_FileNameListElement { + struct FIL_FileNameListElement *hNextBrotherDyn; + struct FIL_FileNameListElement *hPrevBrotherDyn; + struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn *hFatherDyn; + char *szFileName; +}; +#define C_wTimerTrue 32766 +#define C_Check_OverflowFlag 8 +struct SND_astruct_4 { + int *field0_0x0; + struct SND_astruct_4 *next; + int *field2_0x8; + int *field3_0xc; + int *field4_0x10; + int *callback; /* callback? */ + int *field6_0x18; + int *field7_0x1c; +}; +struct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct { + unsigned int OffsetToDirectory; + unsigned int DataIsDirectory; +}; +union IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion { + unsigned int OffsetToData; + struct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct; +}; +struct _tdstTypeMidiDisk { +}; +typedef struct _tdstTypeMidiDisk tdstTypeMidiDisk; +typedef struct tdstFamilyList_ *tdxHandleToFamilyList; +#define INO_C_uwMouse 4 +#define IPT_C_MaxNumberOfPad 16 +enum r3_texmem_mode { + Vram=0, + VramPlus=1, + Vram4=2, + Vram8=3, + Agp4=4, + Agp8=5, + Agp=6 +}; +#define C_SOUNDPARAM_COEF_FREQ 8 +#define C_uwTimerMaxCount 16 +typedef struct tdstState_ *tdxHandleToState; +#define INO_C_ucKeyToggled 1 +struct tdstWaterStreakEffect_ { +}; +struct _tdstRangeSplitListMem { +}; +typedef struct _tdstRangeSplitListMem tdstRangeSplitListMem; +typedef void *MS_tdxHandleToMSLight; +#define IPT_C_ValideDevice 1 +struct astruct_1 { + struct IDirect3DVertexBuffer8 **field0_0x0; + float field1_0x4; + float field2_0x8; + float field3_0xc; +}; +typedef unsigned int color_rgba8_t; +struct astruct_2 { + unsigned int *field0_0x0; + unsigned int *field1_0x4; + unsigned int *field2_0x8; + undefined field3_0xc; + undefined field4_0xd; + undefined field5_0xe; + undefined field6_0xf; + undefined field7_0x10; + undefined field8_0x11; + undefined field9_0x12; + undefined field10_0x13; + color_rgba8_t unkColor; + unsigned char field12_0x18; + undefined field13_0x19; + unsigned char field14_0x1a; +}; +struct astruct_3 { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + int *binkFrameMemory; +}; +struct tdstObjectsTableElement_ { +}; +struct SND_Request3 { + undefined4 g_sndReq0; + undefined4 g_sndReq1; + undefined4 g_sndReq2; +}; +typedef struct IPT_tdstEntryElement_ *IPT_tdxHandleToEntryElement; +struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn { + IPT_tdxHandleToEntryElement hFirstElementDyn; + IPT_tdxHandleToEntryElement hLastElementDyn; + long lNumberOfElementsDyn; +}; +#define POS_C_xTranslation 1 +struct _tdstRefResList { +}; +typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree; +struct r3_graphics_data { + int field0_0x0; + int field1_0x4; + unsigned int field2_0x8; + unsigned int field3_0xc; + float field4_0x10; + float field5_0x14; + float field6_0x18; + int field7_0x1c; + float field8_0x20; + float field9_0x24; + float field10_0x28; + int field11_0x2c; + int field12_0x30; + int field13_0x34; + int field14_0x38; + undefined field15_0x3c; + undefined field16_0x3d; + undefined field17_0x3e; + undefined field18_0x3f; + int field19_0x40; + int field20_0x44; + int field21_0x48; + undefined field22_0x4c; + undefined field23_0x4d; + undefined field24_0x4e; + undefined field25_0x4f; + float field26_0x50; + float field27_0x54; + unsigned int field28_0x58; + unsigned int field29_0x5c; + unsigned int field30_0x60; + struct IDirect3DVertexBuffer8 **field31_0x64; + undefined field32_0x68; + undefined field33_0x69; + undefined field34_0x6a; + undefined field35_0x6b; + int field36_0x6c; + int *field37_0x70; + float **field38_0x74; + int field39_0x78; + undefined field40_0x7c; + undefined field41_0x7d; + undefined field42_0x7e; + undefined field43_0x7f; + undefined field44_0x80; + undefined field45_0x81; + undefined field46_0x82; + undefined field47_0x83; + undefined field48_0x84; + undefined field49_0x85; + undefined field50_0x86; + undefined field51_0x87; + undefined field52_0x88; + undefined field53_0x89; + undefined field54_0x8a; + undefined field55_0x8b; + undefined field56_0x8c; + undefined field57_0x8d; + undefined field58_0x8e; + undefined field59_0x8f; + undefined field60_0x90; + undefined field61_0x91; + undefined field62_0x92; + undefined field63_0x93; + undefined field64_0x94; + undefined field65_0x95; + undefined field66_0x96; + undefined field67_0x97; + undefined field68_0x98; + undefined field69_0x99; + undefined field70_0x9a; + undefined field71_0x9b; + undefined field72_0x9c; + undefined field73_0x9d; + undefined field74_0x9e; + undefined field75_0x9f; + undefined field76_0xa0; + undefined field77_0xa1; + undefined field78_0xa2; + undefined field79_0xa3; + undefined field80_0xa4; + undefined field81_0xa5; + undefined field82_0xa6; + undefined field83_0xa7; + undefined field84_0xa8; + undefined field85_0xa9; + undefined field86_0xaa; + undefined field87_0xab; + undefined field88_0xac; + undefined field89_0xad; + undefined field90_0xae; + undefined field91_0xaf; + undefined field92_0xb0; + undefined field93_0xb1; + undefined field94_0xb2; + undefined field95_0xb3; + undefined field96_0xb4; + undefined field97_0xb5; + undefined field98_0xb6; + undefined field99_0xb7; + undefined field100_0xb8; + undefined field101_0xb9; + undefined field102_0xba; + undefined field103_0xbb; + undefined field104_0xbc; + undefined field105_0xbd; + undefined field106_0xbe; + undefined field107_0xbf; + undefined field108_0xc0; + undefined field109_0xc1; + undefined field110_0xc2; + undefined field111_0xc3; + undefined field112_0xc4; + undefined field113_0xc5; + undefined field114_0xc6; + undefined field115_0xc7; + undefined field116_0xc8; + undefined field117_0xc9; + undefined field118_0xca; + undefined field119_0xcb; + undefined field120_0xcc; + undefined field121_0xcd; + undefined field122_0xce; + undefined field123_0xcf; + undefined field124_0xd0; + undefined field125_0xd1; + undefined field126_0xd2; + undefined field127_0xd3; + undefined field128_0xd4; + undefined field129_0xd5; + undefined field130_0xd6; + undefined field131_0xd7; + undefined field132_0xd8; + undefined field133_0xd9; + undefined field134_0xda; + undefined field135_0xdb; + undefined field136_0xdc; + undefined field137_0xdd; + undefined field138_0xde; + undefined field139_0xdf; + undefined field140_0xe0; + undefined field141_0xe1; + undefined field142_0xe2; + undefined field143_0xe3; + undefined field144_0xe4; + undefined field145_0xe5; + undefined field146_0xe6; + undefined field147_0xe7; + undefined field148_0xe8; + undefined field149_0xe9; + undefined field150_0xea; + undefined field151_0xeb; + int numVertices; + int field153_0xf0; + int field154_0xf4; + struct IDirect3DVertexBuffer8 *baseVertexBuffer; + struct IDirect3DVertexBuffer8 *texVertexBufer; + struct IDirect3DIndexBuffer8 *indexBuffer; + float *lockedVertexBuffer; +}; +typedef struct tdstObjectTypeElement_ *ObjectTypeElementHandle; +struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn { + ObjectTypeElementHandle hFirstElementDyn; + ObjectTypeElementHandle hLastElementDyn; + long lNumberOfElementsDyn; +}; +struct tdstObjectType_ { + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hFamilyType; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hModelType; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hPersonalType; +}; +typedef struct tdstObjectType_ tdstObjectType; +typedef short GLD_ViewportHandle; +struct tdstChannelActivationStateList_ { +}; +typedef void (*SND_td_pfn_vSoundCallback)(long par); +struct AutoClass1 { /* PlaceHolder Class Structure */ + int *field0_0x0; +}; +#define C_ulDefaultMaxNbDynamicMalloc 100000 +struct tdstZoneSetList_ { +}; +#define IPT_C_ActivatePadDevice 3 +#define C_ucMmgDefaultGroup 0 +#define C_SOUNDPAN_LEFT 0 +struct _tdstSampleStreaming { +}; +#define _STDCALL_SUPPORTED 1 +struct SCR_tdst_DyAr_Header_ { + unsigned int uiIndexInArray; + unsigned char ucMemLevel; +}; +typedef SndBool (*td_pfn_bRetRollOffFactor)(long obj, RollOffParam *rolloff); +#define C_SOUNDPARAM_COEF_VOL 4 +#define IPT_C_TRUE 1 +struct GLI_Texture { + unsigned char bIsAvailable; + long lTextureQuality; + void *p_vBitMap; + void *p_vColorTable; + void *p_stSpecParam; + unsigned long ulTextureCaps; + unsigned short uwHeight; + unsigned short uwWidth; + unsigned short uwRealHeight; + unsigned short uwRealWidth; + float xAddU; + float xAddV; + unsigned char lIncrementIsEnable; + unsigned long ulChromakeyColorRGBA; + long lNumberOfLod; + unsigned long ulCompressionCounter; + unsigned long ulTypeOfCompression; + unsigned long ulTypeOfMipMapping; + struct GLI_Texture *p_TextureOfSubstitution; + unsigned char ucBilinearMode; + unsigned char ucCyclingMode; + char szFileName[128]; +}; +struct GLI_tdstAnimatedTextureNode { + struct GLI_Texture *p_stTexture; + float xDisplayTime; + struct GLI_tdstAnimatedTextureNode *p_stNextDisplayNode; +}; +struct GEO_tdstParallelBox { +}; +typedef struct IPT_tdstKeyWordElement_ *IPT_tdxHandleToKeyWordElement; +struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn { + IPT_tdxHandleToKeyWordElement hFirstElementDyn; + IPT_tdxHandleToKeyWordElement hLastElementDyn; + long lNumberOfElementsDyn; +}; +#define C_ucEvent_User6 12 +#define C_ucEvent_User7 13 +#define C_ucEvent_User0 6 +#define C_ucEvent_User1 7 +#define C_ucEvent_User4 10 +#define C_ucEvent_User5 11 +struct _tdstSndBankHeader { +}; +typedef struct _tdstSndBankHeader tdstSndBankHeader; +#define C_ucEvent_User2 8 +#define C_ucEvent_User3 9 +struct stMorphData { + unsigned char ucTarget; + unsigned char ucMorphingAmount; + unsigned short uwChannelNumber; + unsigned short uwFrameNumber; + unsigned short uwAlign; +}; +typedef struct stMorphData tdstMorphData; +struct _tdstRandomElement { +}; +typedef struct _tdstRandomElement tdstRandomElement; +struct AI_tdstMind_ { +}; +typedef void *GMT_tdxHandleToGameMaterial; +struct Brain { + struct AI_tdstMind_ *p_stMind; + GMT_tdxHandleToGameMaterial hLastCollidedGoThroughMaterial; + bool bWarnMechanicsFlag; +}; +typedef void *MS_tdxHandleToMicro; +typedef void *MS_tdxHandleToCineinfo; +typedef void *MS_tdxHandleToStandardGame; +typedef void *MS_tdxHandleToDynam; +typedef void *MS_tdxHandleTo3dData; +typedef void *MS_tdxHandleToMSPrtSrc; +typedef void *MS_tdxHandleToMSWay; +typedef void *MS_tdxHandleToMSMagnet; +typedef void *MS_tdxHandleToSectInfo; +typedef void *MS_tdxHandleToCollSet; +typedef void *MS_tdxHandleToMSSound; +typedef void *MS_tdxHandleToAnimEffect; +struct EngineObject { + MS_tdxHandleTo3dData h_3dData; + MS_tdxHandleToStandardGame h_StandardGame; + MS_tdxHandleToDynam h_Dynam; + struct Brain *h_Brain; + MS_tdxHandleToCineinfo h_Cineinfo; + MS_tdxHandleToCollSet h_CollSet; + MS_tdxHandleToMSWay h_MSWay; + MS_tdxHandleToMSLight h_MSLight; + MS_tdxHandleToSectInfo h_SectInfo; + MS_tdxHandleToMicro h_Micro; + MS_tdxHandleToMSPrtSrc h_MSPrtSrc; + MS_tdxHandleToMSSound h_MSSound; + MS_tdxHandleToAnimEffect h_AnimEffect; + MS_tdxHandleToMSMagnet h_MSMagnet; +}; +typedef void *GEO_tdxHandleToRadiosity; +typedef struct IPT_tdstInput_ *IPT_tdxHandleToInput; +enum SCR_tde_Link_State_ { + SCR_ELS_Link_NotInitialized=0, + SCR_ELS_Link_Initialized=1 +}; +typedef struct POS_stCompletePosition *POS_tdxHandleToPosition; +struct HIE_tdstSuperObject { +}; +union HIE_tduLinkedObject { + struct HIE_tdstSuperObject *p_stSuperObject; + void *p_Void; +}; +struct HIE_SuperObject { + unsigned long ulTypeOfLinkedObject; + union HIE_tduLinkedObject hLinkedObject; + struct HIE_SuperObject *hFirstElementDyn; + struct HIE_SuperObject *hLastElementDyn; + long lNumberOfElementsDyn; + struct HIE_SuperObject *hNextBrotherDyn; + struct HIE_SuperObject *hPrevBrotherDyn; + struct HIE_SuperObject *hFatherDyn; + POS_tdxHandleToPosition hLocalMatrix; + POS_tdxHandleToPosition hGlobalMatrix; + long lLastComputeFrame; + long lDrawModeMask; + unsigned long ulFlags; + void *hBoundingVolume; + float fTransparenceLevel; + struct MTH3_Vector stSemiLookAtVector; +}; +typedef struct tdstChannelInfo_ tdstChannelInfo; +struct tdstGeneralChannelsInfo_ { + unsigned char ucNbchannelUsed; + unsigned char ucMAxNbChannel; + tdstChannelInfo *d_stTabChannelInfo; +}; +typedef unsigned long tdxId; +struct _SND_tdstBlockEvent { +}; +typedef struct _SND_tdstBlockEvent SND_tdstBlockEvent; +union _SND_tduRefEvt { + tdxId Id; + SND_tdstBlockEvent *pstPtr; +}; +#define SND_C_RES_FANTOME_ID -1 +#define C_INIT_RUNNING 4 +#define SCR_C_ui_Hash_Size 256 +struct _tdstTypeThemeDisk { +}; +#define GF_FORMAT_ARGB_4444 12 +union _tduResMem { +}; +typedef union _tduResMem tduResMem; +#define C_ucGENERATE_EVENT 2 +#define INO_C_uwJoystick 16 +struct _tdstTypeSampleMem { +}; +typedef struct _tdstTypeSampleMem tdstTypeSampleMem; +typedef SndReal (*td_pfn_rRetChannelCoord)(long obj, long channel); +typedef SndBool (*td_pfn_bRetChannelActive)(long obj, long channel); +struct _tdstAllRetChannelSound { + td_pfn_rRetChannelCoord X; + td_pfn_rRetChannelCoord Y; + td_pfn_rRetChannelCoord Z; + td_pfn_rRetChannelCoord VX; + td_pfn_rRetChannelCoord VY; + td_pfn_rRetChannelCoord VZ; + td_pfn_bRetChannelActive Active; + SndBool bAbsCoord; +}; +struct FIL_ConcatFileElement { + char *p_szFileName; + long lPathNumber; + long lOffset; + unsigned long ulFileLength; + unsigned long ulXorCode; + unsigned long ulCheckSum; +}; +struct FIL_ConcatFile { + FILE *p_stFile; + unsigned long ulNumberOfPath; + unsigned long ulNumberOfFile; + unsigned char bUseXorCode; + unsigned char bUseCheckSum; + unsigned char ucPathXorCode; + unsigned char ucPathCheckSum; + char **d_szPathList; + struct FIL_ConcatFileElement *d_stConcatFileElement; +}; +struct tdstState_ { +}; +#define C_MARK_SIZE 4 +enum _SND_tdstTypeCallback { + BUFFER_ASYNCHRONE=0, + BUFFER_SYNCHRONE=1, + BUFFER_STACK=2, + ALIGN_FOR_BUFFER_CLIENT=305419896 +}; +typedef enum _SND_tdstTypeCallback SND_tduTypeCallback; +struct TypeDescriptor { + unsigned int hash; + void *spare; + char name[0]; +}; +typedef short GLD_DeviceHandle; +struct _tdstTypeMidiMem { +}; +struct _tdstInfoTrackDisk { +}; +typedef struct _tdstInfoTrackDisk tdstInfoTrackDisk; +typedef SndReal (*td_pfn_rRetSoundCoord)(long obj); +#define IPT_C_NoDuplicate 2 +struct GLD_ViewportAttributes { + unsigned long dwInitialHeight; + unsigned long dwInitialWidth; + unsigned long dwHeight; + unsigned long dwWidth; + unsigned long dwTopInPix; + unsigned long dwBottomInPix; + unsigned long dwLeftInPix; + unsigned long dwRightInPix; + unsigned long dwTopInPixForClip; + unsigned long dwBottomInPixForClip; + unsigned long dwLeftInPixForClip; + unsigned long dwRightInPixForClip; + unsigned long dwWidthInPercent; + unsigned long dwHeightInPercent; + unsigned long dwClipTopInPix; + unsigned long dwClipBottomInPix; + unsigned long dwClipLeftInPix; + unsigned long dwClipRightInPix; + unsigned long dwClipTopInPerMille; + unsigned long dwClipBottomInPerMille; + unsigned long dwClipLeftInPerMille; + unsigned long dwClipRightInPerMille; + long lOffsetPosX; + long lOffsetPosY; + char *p_cVirtualScreen; + long lPitch; + void *p_vSpecificToXD; + GLD_DeviceHandle hDevice; + GLD_ViewportHandle hViewport; +}; +struct GLD_stViewport { + struct GLD_ViewportAttributes stViewAttrib; + unsigned char bIsLocked; +}; +typedef union _SND_tduRefEvt SND_tduRefEvt; +typedef void (*td_pfn_vRetSoundExtraCoef)(long obj, SND_tduRefEvt evt, SndReal *pitch, SndReal *pan, SndReal *vol); +typedef struct tdstParticleGenerator_ *tdxHandleToParticleGenerator; +struct Float4 { /* Vector (r3) */ + float x; + float y; + float z; + float w; +}; +struct Float4x4 { /* Matrix (row major?) math type */ + struct Float4 x; + struct Float4 y; + struct Float4 z; + struct Float4 w; +}; +struct r3_TaggedFloatUnk { + uint32_t type; + struct Float4x4 mat0; + struct Float4 unk; +}; +struct _s_UnwindMapEntry { +}; +typedef struct _s_UnwindMapEntry UnwindMapEntry; +struct _s_HandlerType { + unsigned int adjectives; + struct TypeDescriptor *pType; + void *addressOfHandler; +}; +typedef struct _s_HandlerType HandlerType; +struct _s_TryBlockMapEntry { + int nCatches; + HandlerType *pHandlerArray; +}; +typedef struct _s_TryBlockMapEntry TryBlockMapEntry; +struct _s_FuncInfo { + unsigned int magicNumber_and_bbtFlags; + UnwindMapEntry *pUnwindMap; + unsigned int nTryBlocks; + TryBlockMapEntry *pTryBlockMap; + unsigned int nIPMapEntries; + void *pIPToStateMap; +}; +typedef struct IPT_tdstHistoricElement_ *IPT_tdxHandleToHistoricElement; +typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header; +enum SCR_tde_DyAr_State { + SCR_EDAS_DyAr_Invalid=0, + SCR_EDAS_DyAr_Free=1, + SCR_EDAS_DyAr_Occupy=2 +}; +struct SCR_tdst_DyAr_Element_ { + void *d_vElement; + enum SCR_tde_DyAr_State eState; +}; +typedef struct SCR_tdst_DyAr_Element_ SCR_tdst_DyAr_Element; +struct SCR_tdst_DyAr_Description_ { + SCR_tdst_DyAr_Element *d_stDynArray; + unsigned int uiNumValues; + unsigned int uiMaxValues; +}; +typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description; +typedef SCR_tdst_DyAr_Description SCR_tda_st_Hash_Table[256]; +struct SCR_tdst_Link_Table_ { + SCR_tdst_DyAr_Header stHeader; + SCR_tdst_DyAr_Description stLinkArray; + SCR_tda_st_Hash_Table a_stHashTableForValues; + SCR_tda_st_Hash_Table a_stHashTableForKeys; +}; +typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table; +union tdu_KeyWordElementUnion_ { + short swJoyNumber; + short swJoyAction; + short swJoyValueMin; + short swJoyValueMax; + short swPadNumber; + short swPadAction; + short swKey; + short swKeyWord; + IPT_tdxHandleToEntryElement hEntryElement; + unsigned long ulNumberOfSequence; +}; +struct IPT_tdstKeyWordElement_ { + IPT_tdxHandleToKeyWordElement hNextBrotherDyn; + IPT_tdxHandleToKeyWordElement hPrevBrotherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn *hFatherDyn; + union tdu_KeyWordElementUnion_ u_ElementUnion; + unsigned char ucResult; + unsigned char ucMinCounterInput; + unsigned char ucMaxCounterInput; +}; +struct IPT_tdstEntryElement_ { + IPT_tdxHandleToEntryElement hNextBrotherDyn; + IPT_tdxHandleToEntryElement hPrevBrotherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn *hFatherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn hKeyWordList; + unsigned long ulNumberOfKeyWordElement; + struct IPT_tdstKeyWordElement_ *d_stKeyWordElementArray; + char *p_szActionName; + char *p_szEntryName; + long lState; + float xAnalogicValue; + unsigned char bIsActivate; +}; +struct IPT_tdstInput_ { + unsigned char ucOnePadActivate; + unsigned char p_ucValideAndActiveDevice[0]; + unsigned char p_ucKeyboardCounter[256]; + unsigned char p_ucPadAndJoyCounter[0][0]; + SCR_tdst_Link_Table stEntryLink; + SCR_tdst_Link_Table stCommandLink; + unsigned char ucKeyboardType; + unsigned long ulNumberOfEntryElement; + struct IPT_tdstEntryElement_ *d_stEntryElementArray; + struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn hEntryElement; + short sEventHistoricSize; + IPT_tdxHandleToHistoricElement hEventHistoric; +}; +#define C_ucMmgInvalidGroup 255 +struct LST2_tdstAnchorTotdxHandleToFamilyListDyn { + tdxHandleToFamilyList hFirstElementDyn; + tdxHandleToFamilyList hLastElementDyn; + long lNumberOfElementsDyn; +}; +struct LST2_tdstAnchorTotdxHandleToStateSLk { + tdxHandleToState hFirstElementSLk; + tdxHandleToState hLastElementSLk; + long lNumberOfElementsSLk; +}; +#define C_wTimerReady 1 +union _tduResDisk { +}; +typedef union _tduResDisk tduResDisk; +struct _tdstTypeSplitMem { +}; +typedef short ACP_tdxIndex; +struct GEO_tdstTripledIndex { + ACP_tdxIndex a3_xIndex[3]; +}; +typedef struct tdstAlwaysModelList_ *ALW_tdxHandleToModelList; +#define INO_C_ucConnected 1 +#define INO_C_ucKeyDown 128 +struct _tdstBlockResourceMem { +}; +typedef struct _tdstBlockResourceMem tdstBlockResourceMem; +union _tduRefRes { + tdxId Id; + tdstBlockResourceMem *pstPtr; +}; +struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn { +}; +struct Float3 { /* Vector (r3) */ + float x; + float y; + float z; +}; +typedef struct tdstObjectsTablesList_ *tdxHandleToObjectsTablesList; +struct LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk { + tdxHandleToObjectsTablesList hFirstElementSLk; + tdxHandleToObjectsTablesList hLastElementSLk; + long lNumberOfElementsSLk; +}; +struct Float2 { /* Vector (r3) */ + float x; + float y; +}; +typedef struct _tdstTypeThemeDisk tdstTypeThemeDisk; +#define GF_FORMAT_PALETTE 5 +union _tduDataSample { +}; +typedef union _tduDataSample tduDataSample; +struct _tdstSndBankHead { +}; +#define C_uaEndKey 3777185134 +struct GEO_tdstGeometricObject { +}; +enum GAM_DisplayFixMode { + E_DFM_DisplayNothing=0, + E_DFM_DisplayHitPoints=1, + E_DFM_DisplayGameSave=2, + E_DFM_DisplayAll=255 +}; +typedef void (*NormalizeFn)(struct Float3 *out, struct Float3 *in); +#define C_CREATEMICRO_FAILED -1 +#define IPT_C_NumberOfHistoricCommand 10 +typedef void (*td_pfn_vRetSoundVector)(long obj, SndVector *vect); +typedef SndBool (*td_pfn_bRetSoundLink)(long obj, long micro); +typedef unsigned char (*td_pfn_ucRetSoundMidi)(long obj); +typedef long SND_tdxHandleToSoundInfo; +typedef SND_tdxHandleToSoundInfo (*td_pfn_lRetSoundSwitch)(long obj, long type_switch); +struct _tdstAllRetObjectSound { + td_pfn_rRetSoundCoord X; + td_pfn_rRetSoundCoord Y; + td_pfn_rRetSoundCoord Z; + td_pfn_rRetSoundCoord VX; + td_pfn_rRetSoundCoord VY; + td_pfn_rRetSoundCoord VZ; + td_pfn_ucRetSoundMidi REVERB; + td_pfn_vRetSoundExtraCoef ExtraCoef; + td_pfn_lRetSoundSwitch Switch; + td_pfn_bRetSoundLink MicroLink; + td_pfn_vRetSoundVector VectorI; + td_pfn_vRetSoundVector VectorJ; + td_pfn_vRetSoundVector VectorK; + void *Unk0; + void *InfoType; +}; +struct tdstLipsSynchroTable_ { +}; +typedef struct GLD_stViewport *GLD_tdpstViewport; +typedef float GLD_tdxValue; +struct GLD_DeviceAttributes { + DWORD dwHeight; + DWORD dwWidth; + GLD_tdxValue xPixelDimensionX; + GLD_tdxValue xPixelDimensionY; + char *p_cVirtualScreen; + LONG lPitch; + short *p_sZBuffer; + DWORD dwFullScreenModeX; + DWORD dwFullScreenModeY; + DWORD dwFullScreenModeBpp; + HWND hFullScreenModeWnd; + HWND hNormalModeWnd; + unsigned char bFullScreen; + unsigned int uiTypeDriver; + POINT pClientOnPrimary; + RECT rtClientRect; + RECT rtWindowRect; +}; +struct GLD_Device { + struct GLD_DeviceAttributes stDevAttrib; + GLD_tdpstViewport pstViewports[16]; + unsigned char bIsLocked; + DWORD dwStyleBeforeSwap; + DWORD dwExStyleBeforeSwap; + RECT rcWindowBeforeSwap; + DWORD dwBackgroundColor; +}; +struct tdstAlwaysActiveCharacter_ { +}; +struct _tdstThemePartOutro { +}; +#define C_Check_AlignementFlag 4 +#define C_SOUNDPARAM_NO_DOPPLER 2 +struct IPT_tdstScriptValue_ { +}; +#define IPT_C_InvalidCommand -1 +struct tdstTransition_ { +}; +typedef struct EngineObject tdstEngineObject; +typedef void (*td_pfn_vBufferClientPoped)(long user_id, long poped_id); +struct _tdstBlockResourceDisk { +}; +typedef struct _tdstBlockResourceDisk tdstBlockResourceDisk; +#define LOW_LATENCY 4096 +union _tduBlockResource { +}; +typedef union _tduBlockResource tduBlockResource; +struct _SND_tdstStackBuffer { + unsigned long ulNbSamples; + void *ptrData; +}; +typedef struct _SND_tdstStackBuffer SND_tdstStackBuffer; +#define M_SET_ALIGNMENT 4 +#define C_ucSOUND_EVENT 0 +typedef void (*tdfn_vCopyCloneMSFunction)(struct EngineObject *_p_stObjectDest, struct EngineObject *_p_stObjectSrc); +typedef long (*td_pfn_lRetSoundLong)(long obj); +struct _tdstAllRetMicroSound { + td_pfn_rRetSoundCoord X; + td_pfn_rRetSoundCoord Y; + td_pfn_rRetSoundCoord Z; + td_pfn_rRetSoundCoord VX; + td_pfn_rRetSoundCoord VY; + td_pfn_rRetSoundCoord VZ; + td_pfn_rRetSoundCoord DNX; + td_pfn_rRetSoundCoord DNY; + td_pfn_rRetSoundCoord DNZ; + td_pfn_rRetSoundCoord DTX; + td_pfn_rRetSoundCoord DTY; + td_pfn_rRetSoundCoord DTZ; + td_pfn_lRetSoundLong Filtre; +}; +#define C_BlockWithoutFreeFlag 1 +struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn { +}; +struct tdstBubbleEffect_ { +}; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_char; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_dword; +#define C_ROLLOFFPARAM_DEFAULT 2147483646 +#define POS_C_xCompletePosition 128 +struct LST2_tdstAnchorToGLI_tdstNodeCameraDyn { +}; +struct _tdstSndPolyEvent { +}; +typedef struct _tdstSndPolyEvent tdstSndPolyEvent; +struct _tdstThemeBridge { +}; +typedef struct _tdstThemeBridge tdstThemeBridge; +#define POS_C_xScaleNotAccepted 256 +#define UNINITIALIZED_VALUE 305419896 +#define C_ucMmgDefaultChannel 0 +struct tdstBlockInfo_ { + char *p_cBeginBlock; + char *p_cEndBlock; + char *p_cFirstFree; + char *p_cMaxMem; +}; +typedef struct tdstBlockInfo_ tdstBlockInfo; +#define _INTEGRAL_MAX_BITS 64 +typedef struct IPT_tdstKeyWordElement_ IPT_tdstKeyWordElement; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_2_char; +#define C_ucGENERIC_EVENT 3 +#define POS_C_xTranslationUsed 16 +struct _tdstTypeSplitDisk { +}; +struct NodeCamera { +}; +struct _tdstTypeRandomDisk { +}; +typedef struct _SoundParam SoundParam; +struct _tdstTypeThemeMem { +}; +typedef struct _tdstTypeThemeMem tdstTypeThemeMem; +enum IPT_E_HistoricSate_ { + IPT_E_Stopped=0, + IPT_E_Stopping=1, + IPT_E_InProgress=2 +}; +struct _tdstSndBankDescriptor { +}; +typedef struct _tdstSndBankDescriptor tdstSndBankDescriptor; +#define POS_C_xTranslationRotationAxialScale 11 +#define C_INIT_FAILED 2 +struct tdstChunkHeader_ { + unsigned char ucChunkMark[4]; + long lChunkLength; +}; +typedef SndBool (*td_pfn_bRetChannelAbsCoord)(long obj, long channel); +#define C_SOUNDPARAM_NO_POSITION 1 +struct _tdstSwitchList { +}; +typedef unsigned long ACP_tdxAddress; +struct SCR_tdst_Link_AdditionalInfos_ { + unsigned long ulLong1; + unsigned long ulLong2; + unsigned long ulLong3; + unsigned long ulLong4; +}; +typedef struct SCR_tdst_Link_AdditionalInfos_ SCR_tdst_Link_AdditionalInfos; +struct _virtual_module { +}; +struct astruct { + float field0_0x0; + struct Float4x4 field1_0x4; +}; +enum IPT_E_PadEvent_ { + IPT_E_FirstPadAction=0, + IPT_E_PadUp=1, + IPT_E_PadDown=2, + IPT_E_PadLeft=3, + IPT_E_PadRight=4, + IPT_E_JoyXValue=5, + IPT_E_JoyYValue=6, + IPT_E_JoyZValue=7, + IPT_E_JoyRValue=8, + IPT_E_JoyUValue=9, + IPT_E_JoyVValue=10, + IPT_E_PadFirstButton=11, + IPT_E_PadButton0=12, + IPT_E_PadButton1=13, + IPT_E_PadButton2=14, + IPT_E_PadButton3=15, + IPT_E_PadButton4=16, + IPT_E_PadButton5=17, + IPT_E_PadLastButton=18, + IPT_E_JoyFirstButton=19, + IPT_E_JoyButton0=20, + IPT_E_JoyButton1=21, + IPT_E_JoyButton2=22, + IPT_E_JoyButton3=23, + IPT_E_JoyButton4=24, + IPT_E_JoyButton5=25, + IPT_E_JoyLastButton=26, + IPT_E_NumberOfPadAndJoyAction=27 +}; +typedef unsigned char (*IPT_tdfn_bIsKeyWordValid)(IPT_tdxHandleToKeyWordElement param1); +enum enum_2474 { + SAMPLE_INVALID=0, + SAMPLE_PCM=1, + SAMPLE_MPEG=2, + SAMPLE_AIFF=3, + SAMPLE_ADPCM=4, + SAMPLE_ADPCM_TO_CONVERT=5, + SAMPLE_FOR_ALIGNEMENT=321148536 +}; +typedef enum enum_2474 tdeTypeZip; +typedef struct _tdstFormatPCM tdstFormatPCM; +typedef struct _tdstFormatPCM tdstFormatADPCM; +typedef struct _tdstFormatPCM tdstFormatMPEG; +union _union_2479 { + tdstFormatPCM stPCM; + tdstFormatMPEG stMPEG; + tdstFormatADPCM stADPCM; +}; +struct _SND_tdstFormat { + tdeTypeZip eZip; + union _union_2479 uFormat; +}; +#define INO_C_ucActivated 16 +typedef struct _tdstTypeSplitMem tdstTypeSplitMem; +#define C_ucTHROW_OBJECT_EVENT 5 +enum GAM_InputMode { + E_IM_Normal=0, + E_IM_Commands=1, + E_IM_NbOfMode=2 +}; +struct FIL_FileNameList { + struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn hFileNameListAnchor; +}; +enum GAM_EngineMode { + E_EM_ModeInvalid=0, + E_EM_ModeStartingProgram=1, + E_EM_ModeStoppingProgram=2, + E_EM_ModeEnterGame=3, + E_EM_ModeQuitGame=4, + E_EM_ModeEnterLevel=5, + E_EM_ModeChangeLevel=6, + E_EM_ModeDeadLoop=7, + E_EM_ModePlayerDead=8, + E_EM_ModePlaying=9, + E_EM_NbTotalEngineMode=10 +}; +struct TMR_tdstEngineTimerStructure { + unsigned long ulFrameNumber; + unsigned short wTimerHandle; + unsigned long ulCurrentTimerCount; + unsigned long ulDeltaTimerCount; + unsigned long a_ulCounter[16]; + unsigned long ulUsefulDeltaTime; + unsigned long ulPauseTime; + float xFrameLength; + struct TMR_tdstTimerCount stRealTimeCount; + struct TMR_tdstTimerCount stPauseTime; + unsigned long ulTickPerMs; +}; +struct GLI_tdst2DVertex { + float xX; + float xY; + float xOoZ; +}; +typedef float GLI_tdxValue; +struct GLI_Camera { + long lSizeOfThis; + long lTypeOfThis; + long lCameraMode; + struct POS_stCompletePosition stMatrix; + float xAlphaX; + float xAlphaY; + GLI_tdxValue xNear; + GLI_tdxValue xFar; + GLI_tdxValue xScreen; + struct GLI_tdst2DVertex stScale; + struct GLI_tdst2DVertex stTrans; + long lVptInitialHeight; + long lVptInitialWidth; + struct MTH3_Vector stNormPlaneLeft; + float xDistPlaneLeft; + struct MTH3_Vector stNormPlaneRight; + float xDistPlaneRight; + struct MTH3_Vector stNormPlaneUp; + float xDistPlaneUp; + struct MTH3_Vector stNormPlaneDown; + float xDistPlaneDown; + float xRatio; +}; +struct GLI_SpecificAttributesFor3D { + struct GLI_Camera *p_stCam; + float xNear; +}; +struct GLI_tdstViewportManagement { + struct HIE_tdstSuperObject *hCamera; + struct HIE_tdstSuperObject *hTempCamera; + struct GLI_Camera *p_stCamera; + ACP_tdxBool bValid; +}; +struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn { +}; +struct GAM_EngineStructure { + enum GAM_EngineMode eEngineMode; + char szLevelName[30]; + char szNextLevelName[30]; + char szFirstLevelName[30]; + undefined field4_0x5b; + enum GAM_DisplayFixMode eDisplayFixMode; + unsigned long ulDisplayMode; + undefined field7_0x61; + undefined field8_0x62; + undefined field9_0x63; + struct TMR_tdstEngineTimerStructure stEngineTimer; + short field11_0xd4; /* controls level rendeirng parameter (fix name "?renderCtl") */ + enum GAM_InputMode eInputMode; /* maybe? */ + undefined field13_0xda; + undefined field14_0xdb; + undefined field15_0xdc; + undefined field16_0xdd; + undefined field17_0xde; + undefined field18_0xdf; + undefined field19_0xe0; + undefined field20_0xe1; + undefined field21_0xe2; + undefined field22_0xe3; + undefined field23_0xe4; + undefined field24_0xe5; + undefined field25_0xe6; + undefined field26_0xe7; + GLD_DeviceHandle hGLDDevice; /* correct */ + GLD_ViewportHandle hGLDViewport; /* correct */ + undefined field29_0xec; + undefined field30_0xed; + undefined field31_0xee; + undefined field32_0xef; + undefined field33_0xf0; + undefined field34_0xf1; + unsigned short screenshotVpHandle_maybe; + struct GLD_ViewportAttributes stViewportAttr; /* correct 0xf4 */ + struct GLI_Camera *p_stGameViewportCamera; + GLD_ViewportHandle hGLDFixViewport; + struct GLD_ViewportAttributes stFixViewportAttr1; + struct GLI_SpecificAttributesFor3D stFixAttributes3D; + struct GLI_Camera *p_stFixCamera; + struct GLI_tdstViewportManagement *a_hViewportArray; + struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn hCameraList; + struct LST2_tdstAnchorTotdxHandleToFamilyListDyn hFamilyList; + struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn hMainCharacterList; + struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn hAlwaysActiveCharactersList; + struct HIE_tdstSuperObject *g_hMainActor; + struct HIE_tdstSuperObject *g_hNextMainActor; + struct HIE_tdstSuperObject *g_hStdCamCharacter; + undefined field50_0x202; + undefined field51_0x203; + undefined field52_0x204; + undefined field53_0x205; + undefined field54_0x206; + undefined field55_0x207; + undefined field56_0x208; + undefined field57_0x209; + undefined field58_0x20a; + undefined field59_0x20b; + undefined field60_0x20c; + undefined field61_0x20d; + undefined field62_0x20e; + undefined field63_0x20f; + undefined field64_0x210; + undefined field65_0x211; + undefined field66_0x212; + undefined field67_0x213; + undefined field68_0x214; + undefined field69_0x215; + undefined field70_0x216; + undefined field71_0x217; + undefined field72_0x218; + undefined field73_0x219; + undefined field74_0x21a; + undefined field75_0x21b; + undefined field76_0x21c; + undefined field77_0x21d; + undefined field78_0x21e; + undefined field79_0x21f; + undefined field80_0x220; + undefined field81_0x221; + undefined field82_0x222; + undefined field83_0x223; + undefined field84_0x224; + undefined field85_0x225; + undefined field86_0x226; + undefined field87_0x227; + undefined field88_0x228; + undefined field89_0x229; + undefined field90_0x22a; + undefined field91_0x22b; + undefined field92_0x22c; + undefined field93_0x22d; + undefined field94_0x22e; + undefined field95_0x22f; + undefined field96_0x230; + undefined field97_0x231; + undefined field98_0x232; + undefined field99_0x233; + undefined field100_0x234; + undefined field101_0x235; + undefined field102_0x236; + undefined field103_0x237; + undefined field104_0x238; + undefined field105_0x239; + undefined field106_0x23a; + undefined field107_0x23b; + undefined field108_0x23c; + undefined field109_0x23d; + undefined field110_0x23e; + undefined field111_0x23f; + undefined field112_0x240; + undefined field113_0x241; + undefined field114_0x242; + undefined field115_0x243; + undefined field116_0x244; + undefined field117_0x245; + undefined field118_0x246; + undefined field119_0x247; + undefined field120_0x248; + undefined field121_0x249; + undefined field122_0x24a; + undefined field123_0x24b; + undefined field124_0x24c; + undefined field125_0x24d; + undefined field126_0x24e; + undefined field127_0x24f; + undefined field128_0x250; + undefined field129_0x251; + undefined field130_0x252; + undefined field131_0x253; + undefined field132_0x254; + undefined field133_0x255; + undefined field134_0x256; + undefined field135_0x257; + undefined field136_0x258; + undefined field137_0x259; + undefined field138_0x25a; + undefined field139_0x25b; + undefined field140_0x25c; + undefined field141_0x25d; + undefined field142_0x25e; + undefined field143_0x25f; + undefined field144_0x260; + undefined field145_0x261; + undefined field146_0x262; + undefined field147_0x263; + undefined field148_0x264; + undefined field149_0x265; + undefined field150_0x266; + undefined field151_0x267; + undefined field152_0x268; + undefined field153_0x269; + undefined field154_0x26a; + undefined field155_0x26b; + undefined field156_0x26c; + undefined field157_0x26d; + undefined field158_0x26e; + undefined field159_0x26f; + undefined field160_0x270; + undefined field161_0x271; + undefined field162_0x272; + undefined field163_0x273; + undefined field164_0x274; + undefined field165_0x275; + undefined field166_0x276; + undefined field167_0x277; + undefined field168_0x278; + undefined field169_0x279; + undefined field170_0x27a; + undefined field171_0x27b; + undefined field172_0x27c; + undefined field173_0x27d; + undefined field174_0x27e; + undefined field175_0x27f; + undefined field176_0x280; + undefined field177_0x281; + undefined field178_0x282; + undefined field179_0x283; + undefined field180_0x284; + undefined field181_0x285; + undefined field182_0x286; + undefined field183_0x287; + undefined field184_0x288; + undefined field185_0x289; + undefined field186_0x28a; + undefined field187_0x28b; + undefined field188_0x28c; + undefined field189_0x28d; + undefined field190_0x28e; + undefined field191_0x28f; + undefined field192_0x290; + undefined field193_0x291; + undefined field194_0x292; + undefined field195_0x293; + undefined field196_0x294; + undefined field197_0x295; + undefined field198_0x296; + undefined field199_0x297; + undefined field200_0x298; + undefined field201_0x299; + undefined field202_0x29a; + undefined field203_0x29b; + undefined field204_0x29c; + undefined field205_0x29d; + undefined field206_0x29e; + undefined field207_0x29f; + undefined field208_0x2a0; + undefined field209_0x2a1; + undefined field210_0x2a2; + undefined field211_0x2a3; + undefined field212_0x2a4; + undefined field213_0x2a5; + undefined field214_0x2a6; + undefined field215_0x2a7; + undefined field216_0x2a8; + undefined field217_0x2a9; + undefined field218_0x2aa; + undefined field219_0x2ab; + undefined field220_0x2ac; + undefined field221_0x2ad; + undefined field222_0x2ae; + undefined field223_0x2af; + undefined field224_0x2b0; + undefined field225_0x2b1; + undefined field226_0x2b2; + undefined field227_0x2b3; + undefined field228_0x2b4; + undefined field229_0x2b5; + undefined field230_0x2b6; + undefined field231_0x2b7; + undefined field232_0x2b8; + undefined field233_0x2b9; + undefined field234_0x2ba; + undefined field235_0x2bb; + unsigned int screenshotWidth; + unsigned int screenshotHeight; + undefined field238_0x2c4; + undefined field239_0x2c5; + undefined field240_0x2c6; + undefined field241_0x2c7; + undefined field242_0x2c8; + undefined field243_0x2c9; + undefined field244_0x2ca; + undefined field245_0x2cb; + undefined field246_0x2cc; + undefined field247_0x2cd; + undefined field248_0x2ce; + undefined field249_0x2cf; + undefined field250_0x2d0; + undefined field251_0x2d1; + undefined field252_0x2d2; + undefined field253_0x2d3; + undefined field254_0x2d4; + undefined field255_0x2d5; + undefined field256_0x2d6; + undefined field257_0x2d7; + undefined field258_0x2d8; + undefined field259_0x2d9; + undefined field260_0x2da; + undefined field261_0x2db; + undefined field262_0x2dc; + undefined field263_0x2dd; + undefined field264_0x2de; + undefined field265_0x2df; + undefined field266_0x2e0; + undefined field267_0x2e1; + undefined field268_0x2e2; + undefined field269_0x2e3; + undefined field270_0x2e4; + undefined field271_0x2e5; + undefined field272_0x2e6; + undefined field273_0x2e7; + undefined field274_0x2e8; + undefined field275_0x2e9; + undefined field276_0x2ea; + undefined field277_0x2eb; + undefined field278_0x2ec; + undefined field279_0x2ed; + undefined field280_0x2ee; + undefined field281_0x2ef; + undefined field282_0x2f0; + undefined field283_0x2f1; + undefined field284_0x2f2; + undefined field285_0x2f3; + undefined field286_0x2f4; + undefined field287_0x2f5; + undefined field288_0x2f6; + undefined field289_0x2f7; + undefined field290_0x2f8; + undefined field291_0x2f9; + undefined field292_0x2fa; + undefined field293_0x2fb; + undefined field294_0x2fc; + undefined field295_0x2fd; + undefined field296_0x2fe; + undefined field297_0x2ff; + undefined field298_0x300; + undefined field299_0x301; + undefined field300_0x302; + undefined field301_0x303; + undefined field302_0x304; + undefined field303_0x305; + undefined field304_0x306; + undefined field305_0x307; + undefined field306_0x308; + undefined field307_0x309; + undefined field308_0x30a; + undefined field309_0x30b; + undefined field310_0x30c; + undefined field311_0x30d; + undefined field312_0x30e; + undefined field313_0x30f; + undefined field314_0x310; + undefined field315_0x311; + undefined field316_0x312; + undefined field317_0x313; + undefined field318_0x314; + undefined field319_0x315; + undefined field320_0x316; + undefined field321_0x317; + undefined field322_0x318; + undefined field323_0x319; + undefined field324_0x31a; + undefined field325_0x31b; + undefined field326_0x31c; + undefined field327_0x31d; + undefined field328_0x31e; + undefined field329_0x31f; + undefined field330_0x320; + undefined field331_0x321; + undefined field332_0x322; + undefined field333_0x323; + undefined field334_0x324; + undefined field335_0x325; + undefined field336_0x326; + undefined field337_0x327; + undefined field338_0x328; + undefined field339_0x329; + undefined field340_0x32a; + undefined field341_0x32b; + undefined field342_0x32c; + undefined field343_0x32d; + undefined field344_0x32e; + undefined field345_0x32f; + undefined field346_0x330; + undefined field347_0x331; + undefined field348_0x332; + undefined field349_0x333; + undefined field350_0x334; + undefined field351_0x335; + undefined field352_0x336; + undefined field353_0x337; + GLD_ViewportHandle viewportHandleUnk; + undefined field355_0x33a; + undefined field356_0x33b; + undefined field357_0x33c; + undefined field358_0x33d; + undefined field359_0x33e; + undefined field360_0x33f; + undefined field361_0x340; + undefined field362_0x341; + undefined field363_0x342; + undefined field364_0x343; + struct GLD_ViewportAttributes viewportAttribUnk; + undefined field366_0x3b4; + undefined field367_0x3b5; + undefined field368_0x3b6; + undefined field369_0x3b7; + undefined field370_0x3b8; + undefined field371_0x3b9; + undefined field372_0x3ba; + undefined field373_0x3bb; + undefined field374_0x3bc; + undefined field375_0x3bd; + undefined field376_0x3be; + undefined field377_0x3bf; + undefined field378_0x3c0; + undefined field379_0x3c1; + undefined field380_0x3c2; + undefined field381_0x3c3; + undefined field382_0x3c4; + undefined field383_0x3c5; + undefined field384_0x3c6; + undefined field385_0x3c7; + undefined field386_0x3c8; + undefined field387_0x3c9; + undefined field388_0x3ca; + undefined field389_0x3cb; + undefined field390_0x3cc; + undefined field391_0x3cd; + undefined field392_0x3ce; + undefined field393_0x3cf; + undefined field394_0x3d0; + undefined field395_0x3d1; + undefined field396_0x3d2; + undefined field397_0x3d3; + undefined field398_0x3d4; + undefined field399_0x3d5; + undefined field400_0x3d6; + undefined field401_0x3d7; + undefined field402_0x3d8; + undefined field403_0x3d9; + undefined field404_0x3da; + undefined field405_0x3db; + undefined field406_0x3dc; + undefined field407_0x3dd; + undefined field408_0x3de; + undefined field409_0x3df; + undefined field410_0x3e0; + undefined field411_0x3e1; + undefined field412_0x3e2; + undefined field413_0x3e3; + undefined field414_0x3e4; + undefined field415_0x3e5; + undefined field416_0x3e6; + undefined field417_0x3e7; + undefined field418_0x3e8; + undefined field419_0x3e9; + undefined field420_0x3ea; + undefined field421_0x3eb; + undefined field422_0x3ec; + undefined field423_0x3ed; + undefined field424_0x3ee; + undefined field425_0x3ef; + undefined field426_0x3f0; + undefined field427_0x3f1; + undefined field428_0x3f2; + undefined field429_0x3f3; + undefined field430_0x3f4; + undefined field431_0x3f5; + undefined field432_0x3f6; + undefined field433_0x3f7; + undefined field434_0x3f8; + undefined field435_0x3f9; + undefined field436_0x3fa; + undefined field437_0x3fb; + undefined field438_0x3fc; + undefined field439_0x3fd; + undefined field440_0x3fe; + undefined field441_0x3ff; + undefined field442_0x400; + undefined field443_0x401; + undefined field444_0x402; + undefined field445_0x403; + undefined field446_0x404; + undefined field447_0x405; + undefined field448_0x406; + undefined field449_0x407; + undefined field450_0x408; + undefined field451_0x409; + undefined field452_0x40a; + undefined field453_0x40b; + undefined field454_0x40c; + undefined field455_0x40d; + undefined field456_0x40e; + undefined field457_0x40f; + undefined field458_0x410; + undefined field459_0x411; + undefined field460_0x412; + undefined field461_0x413; + undefined field462_0x414; + undefined field463_0x415; + undefined field464_0x416; + undefined field465_0x417; + undefined field466_0x418; + undefined field467_0x419; + undefined field468_0x41a; + undefined field469_0x41b; + undefined field470_0x41c; + undefined field471_0x41d; + undefined field472_0x41e; + undefined field473_0x41f; + undefined field474_0x420; + undefined field475_0x421; + undefined field476_0x422; + undefined field477_0x423; + undefined field478_0x424; + undefined field479_0x425; + undefined field480_0x426; + undefined field481_0x427; + undefined field482_0x428; + undefined field483_0x429; + undefined field484_0x42a; + undefined field485_0x42b; + undefined field486_0x42c; + undefined field487_0x42d; + undefined field488_0x42e; + undefined field489_0x42f; + undefined field490_0x430; + undefined field491_0x431; + undefined field492_0x432; + undefined field493_0x433; + undefined field494_0x434; + undefined field495_0x435; + undefined field496_0x436; + undefined field497_0x437; + undefined field498_0x438; + undefined field499_0x439; + undefined field500_0x43a; + undefined field501_0x43b; + undefined field502_0x43c; + undefined field503_0x43d; + undefined field504_0x43e; + undefined field505_0x43f; + undefined field506_0x440; + undefined field507_0x441; + undefined field508_0x442; + undefined field509_0x443; + undefined field510_0x444; + undefined field511_0x445; + undefined field512_0x446; + undefined field513_0x447; + undefined field514_0x448; + undefined field515_0x449; + undefined field516_0x44a; + undefined field517_0x44b; + undefined field518_0x44c; + undefined field519_0x44d; + undefined field520_0x44e; + undefined field521_0x44f; + undefined field522_0x450; + undefined field523_0x451; + undefined field524_0x452; + undefined field525_0x453; + undefined field526_0x454; + undefined field527_0x455; + undefined field528_0x456; + undefined field529_0x457; + undefined field530_0x458; + undefined field531_0x459; + undefined field532_0x45a; + undefined field533_0x45b; + undefined field534_0x45c; + undefined field535_0x45d; + undefined field536_0x45e; + undefined field537_0x45f; + undefined field538_0x460; + undefined field539_0x461; + undefined field540_0x462; + undefined field541_0x463; + undefined field542_0x464; + undefined field543_0x465; + undefined field544_0x466; + undefined field545_0x467; + undefined field546_0x468; + undefined field547_0x469; + undefined field548_0x46a; + undefined field549_0x46b; + undefined field550_0x46c; + undefined field551_0x46d; + undefined field552_0x46e; + undefined field553_0x46f; + undefined field554_0x470; + undefined field555_0x471; + undefined field556_0x472; + undefined field557_0x473; + undefined field558_0x474; + undefined field559_0x475; + undefined field560_0x476; + undefined field561_0x477; + undefined field562_0x478; + undefined field563_0x479; + undefined field564_0x47a; + undefined field565_0x47b; + undefined field566_0x47c; + undefined field567_0x47d; + undefined field568_0x47e; + undefined field569_0x47f; + undefined field570_0x480; + undefined field571_0x481; + undefined field572_0x482; + undefined field573_0x483; + undefined field574_0x484; + undefined field575_0x485; + undefined field576_0x486; + undefined field577_0x487; + undefined field578_0x488; + undefined field579_0x489; + undefined field580_0x48a; + undefined field581_0x48b; + undefined field582_0x48c; + undefined field583_0x48d; + undefined field584_0x48e; + undefined field585_0x48f; + undefined field586_0x490; + undefined field587_0x491; + undefined field588_0x492; + undefined field589_0x493; + undefined field590_0x494; + undefined field591_0x495; + undefined field592_0x496; + undefined field593_0x497; + undefined field594_0x498; + undefined field595_0x499; + undefined field596_0x49a; + undefined field597_0x49b; + undefined field598_0x49c; + undefined field599_0x49d; + undefined field600_0x49e; + undefined field601_0x49f; + undefined field602_0x4a0; + undefined field603_0x4a1; + undefined field604_0x4a2; + undefined field605_0x4a3; + undefined field606_0x4a4; + undefined field607_0x4a5; + undefined field608_0x4a6; + undefined field609_0x4a7; + undefined field610_0x4a8; + undefined field611_0x4a9; + undefined field612_0x4aa; + undefined field613_0x4ab; + undefined field614_0x4ac; + undefined field615_0x4ad; + undefined field616_0x4ae; + undefined field617_0x4af; + undefined field618_0x4b0; + undefined field619_0x4b1; + undefined field620_0x4b2; + undefined field621_0x4b3; + undefined field622_0x4b4; + undefined field623_0x4b5; + undefined field624_0x4b6; + undefined field625_0x4b7; + undefined field626_0x4b8; + undefined field627_0x4b9; + undefined field628_0x4ba; + undefined field629_0x4bb; + undefined field630_0x4bc; + undefined field631_0x4bd; + undefined field632_0x4be; + undefined field633_0x4bf; + undefined field634_0x4c0; + undefined field635_0x4c1; + undefined field636_0x4c2; + undefined field637_0x4c3; + undefined field638_0x4c4; + undefined field639_0x4c5; + undefined field640_0x4c6; + undefined field641_0x4c7; + undefined field642_0x4c8; + undefined field643_0x4c9; + undefined field644_0x4ca; + undefined field645_0x4cb; + undefined field646_0x4cc; + undefined field647_0x4cd; + undefined field648_0x4ce; + undefined field649_0x4cf; + undefined field650_0x4d0; + undefined field651_0x4d1; + undefined field652_0x4d2; + undefined field653_0x4d3; + undefined field654_0x4d4; + undefined field655_0x4d5; + undefined field656_0x4d6; + undefined field657_0x4d7; + undefined field658_0x4d8; + undefined field659_0x4d9; + undefined field660_0x4da; + undefined field661_0x4db; + undefined field662_0x4dc; + undefined field663_0x4dd; + undefined field664_0x4de; + undefined field665_0x4df; + undefined field666_0x4e0; + undefined field667_0x4e1; + undefined field668_0x4e2; + undefined field669_0x4e3; + undefined field670_0x4e4; + undefined field671_0x4e5; + undefined field672_0x4e6; + undefined field673_0x4e7; + undefined field674_0x4e8; + undefined field675_0x4e9; + undefined field676_0x4ea; + undefined field677_0x4eb; + undefined field678_0x4ec; + undefined field679_0x4ed; + undefined field680_0x4ee; + undefined field681_0x4ef; + undefined field682_0x4f0; + undefined field683_0x4f1; + undefined field684_0x4f2; + undefined field685_0x4f3; + undefined field686_0x4f4; + undefined field687_0x4f5; + undefined field688_0x4f6; + undefined field689_0x4f7; + undefined field690_0x4f8; + undefined field691_0x4f9; + undefined field692_0x4fa; + undefined field693_0x4fb; + undefined field694_0x4fc; + undefined field695_0x4fd; + undefined field696_0x4fe; + undefined field697_0x4ff; + undefined field698_0x500; + undefined field699_0x501; + undefined field700_0x502; + undefined field701_0x503; + undefined field702_0x504; + undefined field703_0x505; + undefined field704_0x506; + undefined field705_0x507; + undefined field706_0x508; + undefined field707_0x509; + undefined field708_0x50a; + undefined field709_0x50b; + undefined field710_0x50c; + undefined field711_0x50d; + undefined field712_0x50e; + undefined field713_0x50f; + undefined field714_0x510; + undefined field715_0x511; + undefined field716_0x512; + undefined field717_0x513; + undefined field718_0x514; + undefined field719_0x515; + undefined field720_0x516; + undefined field721_0x517; + undefined field722_0x518; + undefined field723_0x519; + undefined field724_0x51a; + undefined field725_0x51b; + undefined field726_0x51c; + undefined field727_0x51d; + undefined field728_0x51e; + undefined field729_0x51f; + undefined field730_0x520; + undefined field731_0x521; + undefined field732_0x522; + undefined field733_0x523; + undefined field734_0x524; + undefined field735_0x525; + undefined field736_0x526; + undefined field737_0x527; + undefined field738_0x528; + undefined field739_0x529; + undefined field740_0x52a; + undefined field741_0x52b; + undefined field742_0x52c; + undefined field743_0x52d; + undefined field744_0x52e; + undefined field745_0x52f; + undefined field746_0x530; + undefined field747_0x531; + undefined field748_0x532; + undefined field749_0x533; + undefined field750_0x534; + undefined field751_0x535; + undefined field752_0x536; + undefined field753_0x537; + undefined field754_0x538; + undefined field755_0x539; + undefined field756_0x53a; + undefined field757_0x53b; + undefined field758_0x53c; + undefined field759_0x53d; + undefined field760_0x53e; + undefined field761_0x53f; + undefined field762_0x540; + undefined field763_0x541; + undefined field764_0x542; + undefined field765_0x543; + undefined field766_0x544; + undefined field767_0x545; + undefined field768_0x546; + undefined field769_0x547; + undefined field770_0x548; + undefined field771_0x549; + undefined field772_0x54a; + undefined field773_0x54b; + undefined field774_0x54c; + undefined field775_0x54d; + undefined field776_0x54e; + undefined field777_0x54f; + undefined field778_0x550; + undefined field779_0x551; + undefined field780_0x552; + undefined field781_0x553; + undefined field782_0x554; + undefined field783_0x555; + undefined field784_0x556; + undefined field785_0x557; + undefined field786_0x558; + undefined field787_0x559; + undefined field788_0x55a; + undefined field789_0x55b; + undefined field790_0x55c; + undefined field791_0x55d; + undefined field792_0x55e; + undefined field793_0x55f; + undefined field794_0x560; + undefined field795_0x561; + undefined field796_0x562; + undefined field797_0x563; + undefined field798_0x564; + undefined field799_0x565; + undefined field800_0x566; + undefined field801_0x567; + undefined field802_0x568; + undefined field803_0x569; + undefined field804_0x56a; + undefined field805_0x56b; + undefined field806_0x56c; + undefined field807_0x56d; + undefined field808_0x56e; + undefined field809_0x56f; + undefined field810_0x570; + undefined field811_0x571; + undefined field812_0x572; + undefined field813_0x573; + undefined field814_0x574; + undefined field815_0x575; + undefined field816_0x576; + undefined field817_0x577; + undefined field818_0x578; + undefined field819_0x579; + undefined field820_0x57a; + undefined field821_0x57b; + undefined field822_0x57c; + undefined field823_0x57d; + undefined field824_0x57e; + undefined field825_0x57f; + undefined field826_0x580; + undefined field827_0x581; + undefined field828_0x582; + undefined field829_0x583; + undefined field830_0x584; + undefined field831_0x585; + undefined field832_0x586; + undefined field833_0x587; + undefined field834_0x588; + undefined field835_0x589; + undefined field836_0x58a; + undefined field837_0x58b; + undefined field838_0x58c; + undefined field839_0x58d; + undefined field840_0x58e; + undefined field841_0x58f; + undefined field842_0x590; + undefined field843_0x591; + undefined field844_0x592; + undefined field845_0x593; + undefined field846_0x594; + undefined field847_0x595; + undefined field848_0x596; + undefined field849_0x597; + undefined field850_0x598; + undefined field851_0x599; + undefined field852_0x59a; + undefined field853_0x59b; + undefined field854_0x59c; + undefined field855_0x59d; + undefined field856_0x59e; + undefined field857_0x59f; + undefined field858_0x5a0; + undefined field859_0x5a1; + undefined field860_0x5a2; + undefined field861_0x5a3; + undefined field862_0x5a4; + undefined field863_0x5a5; + undefined field864_0x5a6; + undefined field865_0x5a7; + undefined field866_0x5a8; + undefined field867_0x5a9; + undefined field868_0x5aa; + undefined field869_0x5ab; + undefined field870_0x5ac; + undefined field871_0x5ad; + undefined field872_0x5ae; + undefined field873_0x5af; + undefined field874_0x5b0; + undefined field875_0x5b1; + undefined field876_0x5b2; + undefined field877_0x5b3; + undefined field878_0x5b4; + undefined field879_0x5b5; + undefined field880_0x5b6; + undefined field881_0x5b7; + undefined field882_0x5b8; + undefined field883_0x5b9; + undefined field884_0x5ba; + undefined field885_0x5bb; + undefined field886_0x5bc; + undefined field887_0x5bd; + undefined field888_0x5be; + undefined field889_0x5bf; + undefined field890_0x5c0; + undefined field891_0x5c1; + undefined field892_0x5c2; + undefined field893_0x5c3; + undefined field894_0x5c4; + undefined field895_0x5c5; + undefined field896_0x5c6; + undefined field897_0x5c7; + undefined field898_0x5c8; + undefined field899_0x5c9; + undefined field900_0x5ca; + undefined field901_0x5cb; + undefined field902_0x5cc; + undefined field903_0x5cd; + undefined field904_0x5ce; + undefined field905_0x5cf; + undefined field906_0x5d0; + undefined field907_0x5d1; + undefined field908_0x5d2; + undefined field909_0x5d3; + undefined field910_0x5d4; + undefined field911_0x5d5; + undefined field912_0x5d6; + undefined field913_0x5d7; + undefined field914_0x5d8; + undefined field915_0x5d9; + undefined field916_0x5da; + undefined field917_0x5db; + undefined field918_0x5dc; + undefined field919_0x5dd; + undefined field920_0x5de; + undefined field921_0x5df; + undefined field922_0x5e0; + undefined field923_0x5e1; + undefined field924_0x5e2; + undefined field925_0x5e3; + undefined field926_0x5e4; + undefined field927_0x5e5; + undefined field928_0x5e6; + undefined field929_0x5e7; + HANDLE drawSemaphore; + undefined field931_0x5ec; + undefined field932_0x5ed; + undefined field933_0x5ee; + undefined field934_0x5ef; + undefined field935_0x5f0; + undefined field936_0x5f1; + undefined field937_0x5f2; + undefined field938_0x5f3; + undefined field939_0x5f4; + undefined field940_0x5f5; + undefined field941_0x5f6; + undefined field942_0x5f7; + undefined field943_0x5f8; + undefined field944_0x5f9; + undefined field945_0x5fa; + undefined field946_0x5fb; + undefined field947_0x5fc; + undefined field948_0x5fd; + undefined field949_0x5fe; + undefined field950_0x5ff; + undefined field951_0x600; + undefined field952_0x601; + undefined field953_0x602; + undefined field954_0x603; + undefined field955_0x604; + undefined field956_0x605; + undefined field957_0x606; + undefined field958_0x607; + undefined field959_0x608; + undefined field960_0x609; + undefined field961_0x60a; + undefined field962_0x60b; + undefined field963_0x60c; + undefined field964_0x60d; + undefined field965_0x60e; + undefined field966_0x60f; + undefined field967_0x610; + undefined field968_0x611; + undefined field969_0x612; + undefined field970_0x613; + undefined field971_0x614; + undefined field972_0x615; + undefined field973_0x616; + undefined field974_0x617; + undefined field975_0x618; + undefined field976_0x619; + undefined field977_0x61a; + undefined field978_0x61b; + struct FIL_FileNameList *hLevelNameList; + undefined field980_0x620; + undefined field981_0x621; + undefined field982_0x622; + undefined field983_0x623; + undefined field984_0x624; + undefined field985_0x625; + undefined field986_0x626; + undefined field987_0x627; + undefined field988_0x628; + undefined field989_0x629; + undefined field990_0x62a; + undefined field991_0x62b; + undefined field992_0x62c; + undefined field993_0x62d; + undefined field994_0x62e; + undefined field995_0x62f; + undefined field996_0x630; + undefined field997_0x631; + undefined field998_0x632; + undefined field999_0x633; + undefined field1000_0x634; + undefined field1001_0x635; + undefined field1002_0x636; + undefined field1003_0x637; + undefined field1004_0x638; + undefined field1005_0x639; + undefined field1006_0x63a; + undefined field1007_0x63b; + undefined field1008_0x63c; + undefined field1009_0x63d; + undefined field1010_0x63e; + undefined field1011_0x63f; + undefined field1012_0x640; + undefined field1013_0x641; + undefined field1014_0x642; + undefined field1015_0x643; + undefined field1016_0x644; + undefined field1017_0x645; + undefined field1018_0x646; + undefined field1019_0x647; + undefined field1020_0x648; + undefined field1021_0x649; + undefined field1022_0x64a; + undefined field1023_0x64b; + undefined field1024_0x64c; + undefined field1025_0x64d; + undefined field1026_0x64e; + undefined field1027_0x64f; + undefined field1028_0x650; + undefined field1029_0x651; + undefined field1030_0x652; + undefined field1031_0x653; + undefined field1032_0x654; + undefined field1033_0x655; + undefined field1034_0x656; + undefined field1035_0x657; + undefined field1036_0x658; + undefined field1037_0x659; + undefined field1038_0x65a; + undefined field1039_0x65b; + undefined field1040_0x65c; + undefined field1041_0x65d; + undefined field1042_0x65e; + undefined field1043_0x65f; + undefined field1044_0x660; + undefined field1045_0x661; + undefined field1046_0x662; + undefined field1047_0x663; + undefined field1048_0x664; + undefined field1049_0x665; + undefined field1050_0x666; + undefined field1051_0x667; + undefined field1052_0x668; + undefined field1053_0x669; + undefined field1054_0x66a; + undefined field1055_0x66b; + undefined field1056_0x66c; + undefined field1057_0x66d; + undefined field1058_0x66e; + undefined field1059_0x66f; + undefined field1060_0x670; + undefined field1061_0x671; + undefined field1062_0x672; + undefined field1063_0x673; + undefined field1064_0x674; + undefined field1065_0x675; + undefined field1066_0x676; + undefined field1067_0x677; + undefined field1068_0x678; + undefined field1069_0x679; + undefined field1070_0x67a; + undefined field1071_0x67b; + undefined field1072_0x67c; + undefined field1073_0x67d; + undefined field1074_0x67e; + undefined field1075_0x67f; + undefined field1076_0x680; + undefined field1077_0x681; + undefined field1078_0x682; + undefined field1079_0x683; + undefined field1080_0x684; + undefined field1081_0x685; + undefined field1082_0x686; + undefined field1083_0x687; + undefined field1084_0x688; + undefined field1085_0x689; + undefined field1086_0x68a; + undefined field1087_0x68b; + undefined field1088_0x68c; + undefined field1089_0x68d; + undefined field1090_0x68e; + undefined field1091_0x68f; + undefined field1092_0x690; + undefined field1093_0x691; + undefined field1094_0x692; + undefined field1095_0x693; + undefined field1096_0x694; + undefined field1097_0x695; + undefined field1098_0x696; + undefined field1099_0x697; + undefined field1100_0x698; + undefined field1101_0x699; + undefined field1102_0x69a; + undefined field1103_0x69b; + undefined field1104_0x69c; + undefined field1105_0x69d; + undefined field1106_0x69e; + undefined field1107_0x69f; + undefined field1108_0x6a0; + undefined field1109_0x6a1; + undefined field1110_0x6a2; + undefined field1111_0x6a3; + undefined field1112_0x6a4; + undefined field1113_0x6a5; + undefined field1114_0x6a6; + undefined field1115_0x6a7; + undefined field1116_0x6a8; + undefined field1117_0x6a9; + undefined field1118_0x6aa; + undefined field1119_0x6ab; + undefined field1120_0x6ac; + undefined field1121_0x6ad; + undefined field1122_0x6ae; + undefined field1123_0x6af; + undefined field1124_0x6b0; + undefined field1125_0x6b1; + undefined field1126_0x6b2; + undefined field1127_0x6b3; + undefined field1128_0x6b4; + undefined field1129_0x6b5; + undefined field1130_0x6b6; + undefined field1131_0x6b7; + undefined field1132_0x6b8; + undefined field1133_0x6b9; + undefined field1134_0x6ba; + undefined field1135_0x6bb; + undefined field1136_0x6bc; + undefined field1137_0x6bd; + undefined field1138_0x6be; + undefined field1139_0x6bf; + undefined field1140_0x6c0; + undefined field1141_0x6c1; + undefined field1142_0x6c2; + undefined field1143_0x6c3; + undefined field1144_0x6c4; + undefined field1145_0x6c5; + undefined field1146_0x6c6; + undefined field1147_0x6c7; + long lSubMapNumber; /* 0x6c8 */ + undefined field1149_0x6cc; + undefined field1150_0x6cd; + undefined field1151_0x6ce; + undefined field1152_0x6cf; + undefined field1153_0x6d0; + undefined field1154_0x6d1; + undefined field1155_0x6d2; + undefined field1156_0x6d3; + undefined field1157_0x6d4; + undefined field1158_0x6d5; + undefined field1159_0x6d6; + undefined field1160_0x6d7; + undefined field1161_0x6d8; + undefined field1162_0x6d9; + undefined field1163_0x6da; + undefined field1164_0x6db; + undefined field1165_0x6dc; + undefined field1166_0x6dd; + undefined field1167_0x6de; + undefined field1168_0x6df; + undefined field1169_0x6e0; + undefined field1170_0x6e1; + undefined field1171_0x6e2; + undefined field1172_0x6e3; + undefined field1173_0x6e4; + undefined field1174_0x6e5; + undefined field1175_0x6e6; + undefined field1176_0x6e7; + undefined field1177_0x6e8; + undefined field1178_0x6e9; + undefined field1179_0x6ea; + undefined field1180_0x6eb; + undefined field1181_0x6ec; + undefined field1182_0x6ed; + undefined field1183_0x6ee; + undefined field1184_0x6ef; + undefined field1185_0x6f0; + undefined field1186_0x6f1; + undefined field1187_0x6f2; + undefined field1188_0x6f3; + undefined field1189_0x6f4; + undefined field1190_0x6f5; + undefined field1191_0x6f6; + undefined field1192_0x6f7; + undefined field1193_0x6f8; + undefined field1194_0x6f9; + undefined field1195_0x6fa; + undefined field1196_0x6fb; + undefined field1197_0x6fc; + undefined field1198_0x6fd; + undefined field1199_0x6fe; + undefined field1200_0x6ff; + undefined field1201_0x700; + undefined field1202_0x701; + undefined field1203_0x702; + undefined field1204_0x703; + undefined field1205_0x704; + undefined field1206_0x705; + undefined field1207_0x706; + undefined field1208_0x707; + undefined field1209_0x708; + undefined field1210_0x709; + undefined field1211_0x70a; + undefined field1212_0x70b; + undefined field1213_0x70c; + undefined field1214_0x70d; + undefined field1215_0x70e; + undefined field1216_0x70f; + undefined field1217_0x710; + undefined field1218_0x711; + undefined field1219_0x712; + undefined field1220_0x713; + undefined field1221_0x714; + undefined field1222_0x715; + undefined field1223_0x716; + undefined field1224_0x717; + undefined field1225_0x718; + undefined field1226_0x719; + undefined field1227_0x71a; + undefined field1228_0x71b; + undefined field1229_0x71c; + undefined field1230_0x71d; + undefined field1231_0x71e; + undefined field1232_0x71f; + undefined field1233_0x720; + undefined field1234_0x721; + undefined field1235_0x722; + undefined field1236_0x723; + undefined field1237_0x724; + undefined field1238_0x725; + undefined field1239_0x726; + undefined field1240_0x727; + undefined field1241_0x728; + undefined field1242_0x729; + undefined field1243_0x72a; + undefined field1244_0x72b; + undefined field1245_0x72c; + undefined field1246_0x72d; + undefined field1247_0x72e; + undefined field1248_0x72f; + undefined field1249_0x730; + undefined field1250_0x731; + undefined field1251_0x732; + undefined field1252_0x733; + undefined field1253_0x734; + undefined field1254_0x735; + undefined field1255_0x736; + undefined field1256_0x737; + undefined field1257_0x738; + undefined field1258_0x739; + undefined field1259_0x73a; + undefined field1260_0x73b; + undefined field1261_0x73c; + undefined field1262_0x73d; + undefined field1263_0x73e; + undefined field1264_0x73f; + undefined field1265_0x740; + undefined field1266_0x741; + undefined field1267_0x742; + undefined field1268_0x743; + undefined field1269_0x744; + undefined field1270_0x745; + undefined field1271_0x746; + undefined field1272_0x747; + undefined field1273_0x748; + undefined field1274_0x749; + undefined field1275_0x74a; + undefined field1276_0x74b; + undefined field1277_0x74c; + undefined field1278_0x74d; + undefined field1279_0x74e; + undefined field1280_0x74f; + undefined field1281_0x750; + undefined field1282_0x751; + undefined field1283_0x752; + undefined field1284_0x753; + undefined field1285_0x754; + undefined field1286_0x755; + undefined field1287_0x756; + undefined field1288_0x757; + undefined field1289_0x758; + undefined field1290_0x759; + undefined field1291_0x75a; + undefined field1292_0x75b; + undefined field1293_0x75c; + undefined field1294_0x75d; + undefined field1295_0x75e; + undefined field1296_0x75f; + undefined field1297_0x760; + undefined field1298_0x761; + undefined field1299_0x762; + undefined field1300_0x763; + undefined field1301_0x764; + undefined field1302_0x765; + undefined field1303_0x766; + undefined field1304_0x767; + undefined field1305_0x768; + undefined field1306_0x769; + undefined field1307_0x76a; + undefined field1308_0x76b; + undefined field1309_0x76c; + undefined field1310_0x76d; + undefined field1311_0x76e; + undefined field1312_0x76f; + undefined field1313_0x770; + undefined field1314_0x771; + undefined field1315_0x772; + undefined field1316_0x773; + undefined field1317_0x774; + undefined field1318_0x775; + undefined field1319_0x776; + undefined field1320_0x777; + undefined field1321_0x778; + undefined field1322_0x779; + undefined field1323_0x77a; + undefined field1324_0x77b; + undefined field1325_0x77c; + undefined field1326_0x77d; + undefined field1327_0x77e; + undefined field1328_0x77f; + undefined field1329_0x780; + undefined field1330_0x781; + undefined field1331_0x782; + undefined field1332_0x783; + undefined field1333_0x784; + undefined field1334_0x785; + undefined field1335_0x786; + undefined field1336_0x787; + undefined field1337_0x788; + undefined field1338_0x789; + undefined field1339_0x78a; + undefined field1340_0x78b; + undefined field1341_0x78c; + undefined field1342_0x78d; + undefined field1343_0x78e; + undefined field1344_0x78f; + undefined field1345_0x790; + undefined field1346_0x791; + undefined field1347_0x792; + undefined field1348_0x793; + undefined field1349_0x794; + undefined field1350_0x795; + undefined field1351_0x796; + undefined field1352_0x797; + undefined field1353_0x798; + undefined field1354_0x799; + undefined field1355_0x79a; + undefined field1356_0x79b; + undefined field1357_0x79c; + undefined field1358_0x79d; + undefined field1359_0x79e; + undefined field1360_0x79f; + undefined field1361_0x7a0; + undefined field1362_0x7a1; + undefined field1363_0x7a2; + undefined field1364_0x7a3; + undefined field1365_0x7a4; + undefined field1366_0x7a5; + undefined field1367_0x7a6; + undefined field1368_0x7a7; + undefined field1369_0x7a8; + undefined field1370_0x7a9; + undefined field1371_0x7aa; + undefined field1372_0x7ab; + undefined field1373_0x7ac; + undefined field1374_0x7ad; + undefined field1375_0x7ae; + undefined field1376_0x7af; + undefined field1377_0x7b0; + undefined field1378_0x7b1; + undefined field1379_0x7b2; + undefined field1380_0x7b3; + undefined field1381_0x7b4; + undefined field1382_0x7b5; + undefined field1383_0x7b6; + undefined field1384_0x7b7; + undefined field1385_0x7b8; + undefined field1386_0x7b9; + undefined field1387_0x7ba; + undefined field1388_0x7bb; + undefined field1389_0x7bc; + undefined field1390_0x7bd; + undefined field1391_0x7be; + undefined field1392_0x7bf; + undefined field1393_0x7c0; + undefined field1394_0x7c1; + undefined field1395_0x7c2; + undefined field1396_0x7c3; + undefined field1397_0x7c4; + undefined field1398_0x7c5; + undefined field1399_0x7c6; + undefined field1400_0x7c7; + undefined field1401_0x7c8; + undefined field1402_0x7c9; + undefined field1403_0x7ca; + undefined field1404_0x7cb; + undefined field1405_0x7cc; + undefined field1406_0x7cd; + undefined field1407_0x7ce; + undefined field1408_0x7cf; + undefined field1409_0x7d0; + undefined field1410_0x7d1; + undefined field1411_0x7d2; + undefined field1412_0x7d3; + undefined field1413_0x7d4; + undefined field1414_0x7d5; + undefined field1415_0x7d6; + undefined field1416_0x7d7; + undefined field1417_0x7d8; + undefined field1418_0x7d9; + undefined field1419_0x7da; + undefined field1420_0x7db; + undefined field1421_0x7dc; + undefined field1422_0x7dd; + undefined field1423_0x7de; + undefined field1424_0x7df; + undefined field1425_0x7e0; + undefined field1426_0x7e1; + undefined field1427_0x7e2; + undefined field1428_0x7e3; + undefined field1429_0x7e4; + undefined field1430_0x7e5; + undefined field1431_0x7e6; + undefined field1432_0x7e7; + undefined field1433_0x7e8; + undefined field1434_0x7e9; + undefined field1435_0x7ea; + undefined field1436_0x7eb; + undefined field1437_0x7ec; + undefined field1438_0x7ed; + undefined field1439_0x7ee; + undefined field1440_0x7ef; + undefined field1441_0x7f0; + undefined field1442_0x7f1; + undefined field1443_0x7f2; + undefined field1444_0x7f3; + undefined field1445_0x7f4; + undefined field1446_0x7f5; + undefined field1447_0x7f6; + undefined field1448_0x7f7; + undefined field1449_0x7f8; + undefined field1450_0x7f9; + undefined field1451_0x7fa; + undefined field1452_0x7fb; + undefined field1453_0x7fc; + undefined field1454_0x7fd; + undefined field1455_0x7fe; + undefined field1456_0x7ff; + undefined field1457_0x800; + undefined field1458_0x801; + undefined field1459_0x802; + undefined field1460_0x803; + undefined field1461_0x804; + undefined field1462_0x805; + undefined field1463_0x806; + undefined field1464_0x807; + undefined field1465_0x808; + undefined field1466_0x809; + undefined field1467_0x80a; + undefined field1468_0x80b; + undefined field1469_0x80c; + undefined field1470_0x80d; + undefined field1471_0x80e; + undefined field1472_0x80f; + undefined field1473_0x810; + undefined field1474_0x811; + undefined field1475_0x812; + undefined field1476_0x813; + undefined field1477_0x814; + undefined field1478_0x815; + undefined field1479_0x816; + undefined field1480_0x817; + undefined field1481_0x818; + undefined field1482_0x819; + undefined field1483_0x81a; + undefined field1484_0x81b; + undefined field1485_0x81c; + undefined field1486_0x81d; + undefined field1487_0x81e; + undefined field1488_0x81f; + undefined field1489_0x820; + undefined field1490_0x821; + undefined field1491_0x822; + undefined field1492_0x823; + undefined field1493_0x824; + undefined field1494_0x825; + undefined field1495_0x826; + undefined field1496_0x827; + undefined field1497_0x828; + undefined field1498_0x829; + undefined field1499_0x82a; + undefined field1500_0x82b; + undefined field1501_0x82c; + undefined field1502_0x82d; + undefined field1503_0x82e; + undefined field1504_0x82f; + undefined field1505_0x830; + undefined field1506_0x831; + undefined field1507_0x832; + undefined field1508_0x833; + undefined field1509_0x834; + undefined field1510_0x835; + undefined field1511_0x836; + undefined field1512_0x837; + undefined field1513_0x838; + undefined field1514_0x839; + undefined field1515_0x83a; + undefined field1516_0x83b; + undefined field1517_0x83c; + undefined field1518_0x83d; + undefined field1519_0x83e; + undefined field1520_0x83f; + undefined field1521_0x840; + undefined field1522_0x841; + undefined field1523_0x842; + undefined field1524_0x843; + undefined field1525_0x844; + undefined field1526_0x845; + undefined field1527_0x846; + undefined field1528_0x847; + undefined field1529_0x848; + undefined field1530_0x849; + undefined field1531_0x84a; + undefined field1532_0x84b; + undefined field1533_0x84c; + undefined field1534_0x84d; + undefined field1535_0x84e; + undefined field1536_0x84f; + undefined field1537_0x850; + undefined field1538_0x851; + undefined field1539_0x852; + undefined field1540_0x853; + undefined field1541_0x854; + undefined field1542_0x855; + undefined field1543_0x856; + undefined field1544_0x857; + undefined field1545_0x858; + undefined field1546_0x859; + undefined field1547_0x85a; + undefined field1548_0x85b; + undefined field1549_0x85c; + undefined field1550_0x85d; + undefined field1551_0x85e; + undefined field1552_0x85f; + undefined field1553_0x860; + undefined field1554_0x861; + undefined field1555_0x862; + undefined field1556_0x863; + undefined field1557_0x864; + undefined field1558_0x865; + undefined field1559_0x866; + undefined field1560_0x867; + undefined field1561_0x868; + undefined field1562_0x869; + undefined field1563_0x86a; + undefined field1564_0x86b; + undefined field1565_0x86c; + undefined field1566_0x86d; + undefined field1567_0x86e; + undefined field1568_0x86f; + undefined field1569_0x870; + undefined field1570_0x871; + undefined field1571_0x872; + undefined field1572_0x873; + undefined field1573_0x874; + undefined field1574_0x875; + undefined field1575_0x876; + undefined field1576_0x877; + undefined field1577_0x878; + undefined field1578_0x879; + undefined field1579_0x87a; + undefined field1580_0x87b; + undefined field1581_0x87c; + undefined field1582_0x87d; + undefined field1583_0x87e; + undefined field1584_0x87f; + undefined field1585_0x880; + undefined field1586_0x881; + undefined field1587_0x882; + undefined field1588_0x883; + undefined field1589_0x884; + undefined field1590_0x885; + undefined field1591_0x886; + undefined field1592_0x887; + undefined field1593_0x888; + undefined field1594_0x889; + undefined field1595_0x88a; + undefined field1596_0x88b; + undefined field1597_0x88c; + undefined field1598_0x88d; + undefined field1599_0x88e; + undefined field1600_0x88f; + undefined field1601_0x890; + undefined field1602_0x891; + undefined field1603_0x892; + undefined field1604_0x893; + undefined field1605_0x894; + undefined field1606_0x895; + undefined field1607_0x896; + undefined field1608_0x897; + undefined field1609_0x898; + undefined field1610_0x899; + undefined field1611_0x89a; + undefined field1612_0x89b; + undefined field1613_0x89c; + undefined field1614_0x89d; + undefined field1615_0x89e; + undefined field1616_0x89f; + undefined field1617_0x8a0; + undefined field1618_0x8a1; + undefined field1619_0x8a2; + undefined field1620_0x8a3; + undefined field1621_0x8a4; + undefined field1622_0x8a5; + undefined field1623_0x8a6; + undefined field1624_0x8a7; + undefined field1625_0x8a8; + undefined field1626_0x8a9; + undefined field1627_0x8aa; + undefined field1628_0x8ab; + undefined field1629_0x8ac; + undefined field1630_0x8ad; + undefined field1631_0x8ae; + undefined field1632_0x8af; + undefined field1633_0x8b0; + undefined field1634_0x8b1; + undefined field1635_0x8b2; + undefined field1636_0x8b3; + undefined field1637_0x8b4; + undefined field1638_0x8b5; + undefined field1639_0x8b6; + undefined field1640_0x8b7; + undefined field1641_0x8b8; + undefined field1642_0x8b9; + undefined field1643_0x8ba; + undefined field1644_0x8bb; + undefined field1645_0x8bc; + undefined field1646_0x8bd; + undefined field1647_0x8be; + undefined field1648_0x8bf; + undefined field1649_0x8c0; + undefined field1650_0x8c1; + undefined field1651_0x8c2; + undefined field1652_0x8c3; + undefined field1653_0x8c4; + undefined field1654_0x8c5; + undefined field1655_0x8c6; + undefined field1656_0x8c7; + undefined field1657_0x8c8; + undefined field1658_0x8c9; + undefined field1659_0x8ca; + undefined field1660_0x8cb; + undefined field1661_0x8cc; + undefined field1662_0x8cd; + undefined field1663_0x8ce; + undefined field1664_0x8cf; + undefined field1665_0x8d0; + undefined field1666_0x8d1; + undefined field1667_0x8d2; + undefined field1668_0x8d3; + undefined field1669_0x8d4; + undefined field1670_0x8d5; + undefined field1671_0x8d6; + undefined field1672_0x8d7; + undefined field1673_0x8d8; + undefined field1674_0x8d9; + undefined field1675_0x8da; + undefined field1676_0x8db; + undefined field1677_0x8dc; + undefined field1678_0x8dd; + undefined field1679_0x8de; + undefined field1680_0x8df; + undefined field1681_0x8e0; + undefined field1682_0x8e1; + undefined field1683_0x8e2; + undefined field1684_0x8e3; + undefined field1685_0x8e4; + undefined field1686_0x8e5; + undefined field1687_0x8e6; + undefined field1688_0x8e7; + undefined field1689_0x8e8; + undefined field1690_0x8e9; + undefined field1691_0x8ea; + undefined field1692_0x8eb; + undefined field1693_0x8ec; + undefined field1694_0x8ed; + undefined field1695_0x8ee; + undefined field1696_0x8ef; + undefined field1697_0x8f0; + undefined field1698_0x8f1; + undefined field1699_0x8f2; + undefined field1700_0x8f3; + undefined field1701_0x8f4; + undefined field1702_0x8f5; + undefined field1703_0x8f6; + undefined field1704_0x8f7; + undefined field1705_0x8f8; + undefined field1706_0x8f9; + undefined field1707_0x8fa; + undefined field1708_0x8fb; + undefined field1709_0x8fc; + undefined field1710_0x8fd; + undefined field1711_0x8fe; + undefined field1712_0x8ff; + undefined field1713_0x900; + undefined field1714_0x901; + undefined field1715_0x902; + undefined field1716_0x903; + undefined field1717_0x904; + undefined field1718_0x905; + undefined field1719_0x906; + undefined field1720_0x907; + undefined field1721_0x908; + undefined field1722_0x909; + undefined field1723_0x90a; + undefined field1724_0x90b; + undefined field1725_0x90c; + undefined field1726_0x90d; + undefined field1727_0x90e; + undefined field1728_0x90f; + undefined field1729_0x910; + undefined field1730_0x911; + undefined field1731_0x912; + undefined field1732_0x913; + undefined field1733_0x914; + undefined field1734_0x915; + undefined field1735_0x916; + undefined field1736_0x917; + undefined field1737_0x918; + undefined field1738_0x919; + undefined field1739_0x91a; + undefined field1740_0x91b; + undefined field1741_0x91c; + undefined field1742_0x91d; + undefined field1743_0x91e; + undefined field1744_0x91f; + undefined field1745_0x920; + undefined field1746_0x921; + undefined field1747_0x922; + undefined field1748_0x923; + undefined field1749_0x924; + undefined field1750_0x925; + undefined field1751_0x926; + undefined field1752_0x927; + undefined field1753_0x928; + undefined field1754_0x929; + undefined field1755_0x92a; + undefined field1756_0x92b; + undefined field1757_0x92c; + undefined field1758_0x92d; + undefined field1759_0x92e; + undefined field1760_0x92f; + undefined field1761_0x930; + undefined field1762_0x931; + undefined field1763_0x932; + undefined field1764_0x933; + undefined field1765_0x934; + undefined field1766_0x935; + undefined field1767_0x936; + undefined field1768_0x937; + undefined field1769_0x938; + undefined field1770_0x939; + undefined field1771_0x93a; + undefined field1772_0x93b; + undefined field1773_0x93c; + undefined field1774_0x93d; + undefined field1775_0x93e; + undefined field1776_0x93f; + undefined field1777_0x940; + undefined field1778_0x941; + undefined field1779_0x942; + undefined field1780_0x943; + undefined field1781_0x944; + undefined field1782_0x945; + undefined field1783_0x946; + undefined field1784_0x947; + undefined field1785_0x948; + undefined field1786_0x949; + undefined field1787_0x94a; + undefined field1788_0x94b; + undefined field1789_0x94c; + undefined field1790_0x94d; + undefined field1791_0x94e; + undefined field1792_0x94f; + undefined field1793_0x950; + undefined field1794_0x951; + undefined field1795_0x952; + undefined field1796_0x953; + undefined field1797_0x954; + undefined field1798_0x955; + undefined field1799_0x956; + undefined field1800_0x957; + undefined field1801_0x958; + undefined field1802_0x959; + undefined field1803_0x95a; + undefined field1804_0x95b; + undefined field1805_0x95c; + undefined field1806_0x95d; + undefined field1807_0x95e; + undefined field1808_0x95f; + undefined field1809_0x960; + undefined field1810_0x961; + undefined field1811_0x962; + undefined field1812_0x963; + undefined field1813_0x964; + undefined field1814_0x965; + undefined field1815_0x966; + undefined field1816_0x967; + undefined field1817_0x968; + undefined field1818_0x969; + undefined field1819_0x96a; + undefined field1820_0x96b; + undefined field1821_0x96c; + undefined field1822_0x96d; + undefined field1823_0x96e; + undefined field1824_0x96f; + undefined field1825_0x970; + undefined field1826_0x971; + undefined field1827_0x972; + undefined field1828_0x973; + undefined field1829_0x974; + undefined field1830_0x975; + undefined field1831_0x976; + undefined field1832_0x977; + undefined field1833_0x978; + undefined field1834_0x979; + undefined field1835_0x97a; + undefined field1836_0x97b; + undefined field1837_0x97c; + undefined field1838_0x97d; + undefined field1839_0x97e; + undefined field1840_0x97f; + undefined field1841_0x980; + undefined field1842_0x981; + undefined field1843_0x982; + undefined field1844_0x983; + undefined field1845_0x984; + undefined field1846_0x985; + undefined field1847_0x986; + undefined field1848_0x987; + undefined field1849_0x988; + undefined field1850_0x989; + undefined field1851_0x98a; + undefined field1852_0x98b; + undefined field1853_0x98c; + undefined field1854_0x98d; + undefined field1855_0x98e; + undefined field1856_0x98f; + undefined field1857_0x990; + undefined field1858_0x991; + undefined field1859_0x992; + undefined field1860_0x993; + undefined field1861_0x994; + undefined field1862_0x995; + undefined field1863_0x996; + undefined field1864_0x997; + undefined field1865_0x998; + undefined field1866_0x999; + undefined field1867_0x99a; + undefined field1868_0x99b; + undefined field1869_0x99c; + undefined field1870_0x99d; + undefined field1871_0x99e; + undefined field1872_0x99f; + undefined field1873_0x9a0; + undefined field1874_0x9a1; + undefined field1875_0x9a2; + undefined field1876_0x9a3; + undefined field1877_0x9a4; + undefined field1878_0x9a5; + undefined field1879_0x9a6; + undefined field1880_0x9a7; + undefined field1881_0x9a8; + undefined field1882_0x9a9; + undefined field1883_0x9aa; + undefined field1884_0x9ab; + undefined field1885_0x9ac; + undefined field1886_0x9ad; + undefined field1887_0x9ae; + undefined field1888_0x9af; + undefined field1889_0x9b0; + undefined field1890_0x9b1; + undefined field1891_0x9b2; + undefined field1892_0x9b3; + undefined field1893_0x9b4; + undefined field1894_0x9b5; + undefined field1895_0x9b6; + undefined field1896_0x9b7; + undefined field1897_0x9b8; + undefined field1898_0x9b9; + undefined field1899_0x9ba; + undefined field1900_0x9bb; + undefined field1901_0x9bc; + undefined field1902_0x9bd; + undefined field1903_0x9be; + undefined field1904_0x9bf; + undefined field1905_0x9c0; + undefined field1906_0x9c1; + undefined field1907_0x9c2; + undefined field1908_0x9c3; + undefined field1909_0x9c4; + undefined field1910_0x9c5; + undefined field1911_0x9c6; + undefined field1912_0x9c7; + undefined field1913_0x9c8; + undefined field1914_0x9c9; + undefined field1915_0x9ca; + undefined field1916_0x9cb; + undefined field1917_0x9cc; + undefined field1918_0x9cd; + undefined field1919_0x9ce; + undefined field1920_0x9cf; + undefined field1921_0x9d0; + undefined field1922_0x9d1; + undefined field1923_0x9d2; + undefined field1924_0x9d3; + undefined field1925_0x9d4; + undefined field1926_0x9d5; + undefined field1927_0x9d6; + undefined field1928_0x9d7; + undefined field1929_0x9d8; + undefined field1930_0x9d9; + undefined field1931_0x9da; + undefined field1932_0x9db; + undefined field1933_0x9dc; + undefined field1934_0x9dd; + undefined field1935_0x9de; + undefined field1936_0x9df; + undefined field1937_0x9e0; + undefined field1938_0x9e1; + undefined field1939_0x9e2; + undefined field1940_0x9e3; + undefined field1941_0x9e4; + undefined field1942_0x9e5; + undefined field1943_0x9e6; + undefined field1944_0x9e7; + undefined field1945_0x9e8; + undefined field1946_0x9e9; + undefined field1947_0x9ea; + undefined field1948_0x9eb; + undefined field1949_0x9ec; + undefined field1950_0x9ed; + undefined field1951_0x9ee; + undefined field1952_0x9ef; + undefined field1953_0x9f0; + undefined field1954_0x9f1; + undefined field1955_0x9f2; + undefined field1956_0x9f3; + undefined field1957_0x9f4; + undefined field1958_0x9f5; + undefined field1959_0x9f6; + undefined field1960_0x9f7; + undefined field1961_0x9f8; + undefined field1962_0x9f9; + undefined field1963_0x9fa; + undefined field1964_0x9fb; + undefined field1965_0x9fc; + undefined field1966_0x9fd; + undefined field1967_0x9fe; + undefined field1968_0x9ff; + undefined field1969_0xa00; + undefined field1970_0xa01; + undefined field1971_0xa02; + undefined field1972_0xa03; + undefined field1973_0xa04; + undefined field1974_0xa05; + undefined field1975_0xa06; + undefined field1976_0xa07; + undefined field1977_0xa08; + undefined field1978_0xa09; + undefined field1979_0xa0a; + undefined field1980_0xa0b; + undefined field1981_0xa0c; + undefined field1982_0xa0d; + undefined field1983_0xa0e; + undefined field1984_0xa0f; + undefined field1985_0xa10; + undefined field1986_0xa11; + undefined field1987_0xa12; + undefined field1988_0xa13; + undefined field1989_0xa14; + undefined field1990_0xa15; + undefined field1991_0xa16; + undefined field1992_0xa17; + undefined field1993_0xa18; + undefined field1994_0xa19; + undefined field1995_0xa1a; + undefined field1996_0xa1b; + undefined field1997_0xa1c; + undefined field1998_0xa1d; + undefined field1999_0xa1e; + undefined field2000_0xa1f; + undefined field2001_0xa20; + undefined field2002_0xa21; + undefined field2003_0xa22; + undefined field2004_0xa23; + undefined field2005_0xa24; + undefined field2006_0xa25; + undefined field2007_0xa26; + undefined field2008_0xa27; + undefined field2009_0xa28; + undefined field2010_0xa29; + undefined field2011_0xa2a; + undefined field2012_0xa2b; + undefined field2013_0xa2c; + undefined field2014_0xa2d; + undefined field2015_0xa2e; + undefined field2016_0xa2f; + undefined field2017_0xa30; + undefined field2018_0xa31; + undefined field2019_0xa32; + undefined field2020_0xa33; + undefined field2021_0xa34; + undefined field2022_0xa35; + undefined field2023_0xa36; + undefined field2024_0xa37; + undefined field2025_0xa38; + undefined field2026_0xa39; + undefined field2027_0xa3a; + undefined field2028_0xa3b; + undefined field2029_0xa3c; + undefined field2030_0xa3d; + undefined field2031_0xa3e; + undefined field2032_0xa3f; + undefined field2033_0xa40; + undefined field2034_0xa41; + undefined field2035_0xa42; + undefined field2036_0xa43; + undefined field2037_0xa44; + undefined field2038_0xa45; + undefined field2039_0xa46; + undefined field2040_0xa47; + undefined field2041_0xa48; + undefined field2042_0xa49; + undefined field2043_0xa4a; + undefined field2044_0xa4b; + undefined field2045_0xa4c; + undefined field2046_0xa4d; + undefined field2047_0xa4e; + undefined field2048_0xa4f; + undefined field2049_0xa50; + undefined field2050_0xa51; + undefined field2051_0xa52; + undefined field2052_0xa53; + undefined field2053_0xa54; + undefined field2054_0xa55; + undefined field2055_0xa56; + undefined field2056_0xa57; + undefined field2057_0xa58; + undefined field2058_0xa59; + undefined field2059_0xa5a; + undefined field2060_0xa5b; + undefined field2061_0xa5c; + undefined field2062_0xa5d; + undefined field2063_0xa5e; + undefined field2064_0xa5f; + undefined field2065_0xa60; + undefined field2066_0xa61; + undefined field2067_0xa62; + undefined field2068_0xa63; + undefined field2069_0xa64; + undefined field2070_0xa65; + undefined field2071_0xa66; + undefined field2072_0xa67; + undefined field2073_0xa68; + undefined field2074_0xa69; + undefined field2075_0xa6a; + undefined field2076_0xa6b; + undefined field2077_0xa6c; + undefined field2078_0xa6d; + undefined field2079_0xa6e; + undefined field2080_0xa6f; + undefined field2081_0xa70; + undefined field2082_0xa71; + undefined field2083_0xa72; + undefined field2084_0xa73; + undefined field2085_0xa74; + undefined field2086_0xa75; + undefined field2087_0xa76; + undefined field2088_0xa77; + undefined field2089_0xa78; + undefined field2090_0xa79; + undefined field2091_0xa7a; + undefined field2092_0xa7b; + undefined field2093_0xa7c; + undefined field2094_0xa7d; + undefined field2095_0xa7e; + undefined field2096_0xa7f; + undefined field2097_0xa80; + undefined field2098_0xa81; + undefined field2099_0xa82; + undefined field2100_0xa83; + undefined field2101_0xa84; + undefined field2102_0xa85; + undefined field2103_0xa86; + undefined field2104_0xa87; + undefined field2105_0xa88; + undefined field2106_0xa89; + undefined field2107_0xa8a; + undefined field2108_0xa8b; + undefined field2109_0xa8c; + undefined field2110_0xa8d; + undefined field2111_0xa8e; + undefined field2112_0xa8f; + undefined field2113_0xa90; + undefined field2114_0xa91; + undefined field2115_0xa92; + undefined field2116_0xa93; + undefined field2117_0xa94; + undefined field2118_0xa95; + undefined field2119_0xa96; + undefined field2120_0xa97; + undefined field2121_0xa98; + undefined field2122_0xa99; + undefined field2123_0xa9a; + undefined field2124_0xa9b; + undefined field2125_0xa9c; + undefined field2126_0xa9d; + undefined field2127_0xa9e; + undefined field2128_0xa9f; + undefined field2129_0xaa0; + undefined field2130_0xaa1; + undefined field2131_0xaa2; + undefined field2132_0xaa3; + undefined field2133_0xaa4; + undefined field2134_0xaa5; + undefined field2135_0xaa6; + undefined field2136_0xaa7; + undefined field2137_0xaa8; + undefined field2138_0xaa9; + undefined field2139_0xaaa; + undefined field2140_0xaab; + undefined field2141_0xaac; + undefined field2142_0xaad; + undefined field2143_0xaae; + undefined field2144_0xaaf; + undefined field2145_0xab0; + undefined field2146_0xab1; + undefined field2147_0xab2; + undefined field2148_0xab3; + undefined field2149_0xab4; + undefined field2150_0xab5; + undefined field2151_0xab6; + undefined field2152_0xab7; + undefined field2153_0xab8; + undefined field2154_0xab9; + undefined field2155_0xaba; + undefined field2156_0xabb; + undefined field2157_0xabc; + undefined field2158_0xabd; + undefined field2159_0xabe; + undefined field2160_0xabf; + undefined field2161_0xac0; + undefined field2162_0xac1; + undefined field2163_0xac2; + undefined field2164_0xac3; + undefined field2165_0xac4; + undefined field2166_0xac5; + undefined field2167_0xac6; + undefined field2168_0xac7; + undefined field2169_0xac8; + undefined field2170_0xac9; + undefined field2171_0xaca; + undefined field2172_0xacb; + undefined field2173_0xacc; + undefined field2174_0xacd; + undefined field2175_0xace; + undefined field2176_0xacf; + undefined field2177_0xad0; + undefined field2178_0xad1; + undefined field2179_0xad2; + undefined field2180_0xad3; + undefined field2181_0xad4; + undefined field2182_0xad5; + undefined field2183_0xad6; + undefined field2184_0xad7; + undefined field2185_0xad8; + undefined field2186_0xad9; + undefined field2187_0xada; + undefined field2188_0xadb; + undefined field2189_0xadc; + undefined field2190_0xadd; + undefined field2191_0xade; + undefined field2192_0xadf; + undefined field2193_0xae0; + undefined field2194_0xae1; + undefined field2195_0xae2; + undefined field2196_0xae3; + undefined field2197_0xae4; + undefined field2198_0xae5; + undefined field2199_0xae6; + undefined field2200_0xae7; + undefined field2201_0xae8; + undefined field2202_0xae9; + undefined field2203_0xaea; + undefined field2204_0xaeb; + undefined field2205_0xaec; + undefined field2206_0xaed; + undefined field2207_0xaee; + undefined field2208_0xaef; + undefined field2209_0xaf0; + undefined field2210_0xaf1; + undefined field2211_0xaf2; + undefined field2212_0xaf3; + undefined field2213_0xaf4; + undefined field2214_0xaf5; + undefined field2215_0xaf6; + undefined field2216_0xaf7; + undefined field2217_0xaf8; + undefined field2218_0xaf9; + undefined field2219_0xafa; + undefined field2220_0xafb; + undefined field2221_0xafc; + undefined field2222_0xafd; + undefined field2223_0xafe; + undefined field2224_0xaff; + undefined field2225_0xb00; + undefined field2226_0xb01; + undefined field2227_0xb02; + undefined field2228_0xb03; + undefined field2229_0xb04; + undefined field2230_0xb05; + undefined field2231_0xb06; + undefined field2232_0xb07; + undefined field2233_0xb08; + undefined field2234_0xb09; + undefined field2235_0xb0a; + undefined field2236_0xb0b; + undefined field2237_0xb0c; + undefined field2238_0xb0d; + undefined field2239_0xb0e; + undefined field2240_0xb0f; + undefined field2241_0xb10; + undefined field2242_0xb11; + undefined field2243_0xb12; + undefined field2244_0xb13; + undefined field2245_0xb14; + undefined field2246_0xb15; + undefined field2247_0xb16; + undefined field2248_0xb17; + undefined field2249_0xb18; + undefined field2250_0xb19; + undefined field2251_0xb1a; + undefined field2252_0xb1b; + undefined field2253_0xb1c; + undefined field2254_0xb1d; + undefined field2255_0xb1e; + undefined field2256_0xb1f; + undefined field2257_0xb20; + undefined field2258_0xb21; + undefined field2259_0xb22; + undefined field2260_0xb23; + undefined field2261_0xb24; + undefined field2262_0xb25; + undefined field2263_0xb26; + undefined field2264_0xb27; + undefined field2265_0xb28; + undefined field2266_0xb29; + undefined field2267_0xb2a; + undefined field2268_0xb2b; + undefined field2269_0xb2c; + undefined field2270_0xb2d; + undefined field2271_0xb2e; + undefined field2272_0xb2f; + undefined field2273_0xb30; + undefined field2274_0xb31; + undefined field2275_0xb32; + undefined field2276_0xb33; + undefined field2277_0xb34; + undefined field2278_0xb35; + undefined field2279_0xb36; + undefined field2280_0xb37; + undefined field2281_0xb38; + undefined field2282_0xb39; + undefined field2283_0xb3a; + undefined field2284_0xb3b; + undefined field2285_0xb3c; + undefined field2286_0xb3d; + undefined field2287_0xb3e; + undefined field2288_0xb3f; + undefined field2289_0xb40; + undefined field2290_0xb41; + undefined field2291_0xb42; + undefined field2292_0xb43; + undefined field2293_0xb44; + undefined field2294_0xb45; + undefined field2295_0xb46; + undefined field2296_0xb47; + undefined field2297_0xb48; + undefined field2298_0xb49; + undefined field2299_0xb4a; + undefined field2300_0xb4b; + undefined field2301_0xb4c; + undefined field2302_0xb4d; + undefined field2303_0xb4e; + undefined field2304_0xb4f; + undefined field2305_0xb50; + undefined field2306_0xb51; + undefined field2307_0xb52; + undefined field2308_0xb53; + undefined field2309_0xb54; + undefined field2310_0xb55; + undefined field2311_0xb56; + undefined field2312_0xb57; + undefined field2313_0xb58; + undefined field2314_0xb59; + undefined field2315_0xb5a; + undefined field2316_0xb5b; + undefined field2317_0xb5c; + undefined field2318_0xb5d; + undefined field2319_0xb5e; + undefined field2320_0xb5f; + undefined field2321_0xb60; + undefined field2322_0xb61; + undefined field2323_0xb62; + undefined field2324_0xb63; + undefined field2325_0xb64; + undefined field2326_0xb65; + undefined field2327_0xb66; + undefined field2328_0xb67; + undefined field2329_0xb68; + undefined field2330_0xb69; + undefined field2331_0xb6a; + undefined field2332_0xb6b; + undefined field2333_0xb6c; + undefined field2334_0xb6d; + undefined field2335_0xb6e; + undefined field2336_0xb6f; + undefined field2337_0xb70; + undefined field2338_0xb71; + undefined field2339_0xb72; + undefined field2340_0xb73; + undefined field2341_0xb74; + undefined field2342_0xb75; + undefined field2343_0xb76; + undefined field2344_0xb77; + undefined field2345_0xb78; + undefined field2346_0xb79; + undefined field2347_0xb7a; + undefined field2348_0xb7b; + undefined field2349_0xb7c; + undefined field2350_0xb7d; + undefined field2351_0xb7e; + undefined field2352_0xb7f; + undefined field2353_0xb80; + undefined field2354_0xb81; + undefined field2355_0xb82; + undefined field2356_0xb83; + undefined field2357_0xb84; + undefined field2358_0xb85; + undefined field2359_0xb86; + undefined field2360_0xb87; + undefined field2361_0xb88; + undefined field2362_0xb89; + undefined field2363_0xb8a; + undefined field2364_0xb8b; + undefined field2365_0xb8c; + undefined field2366_0xb8d; + undefined field2367_0xb8e; + undefined field2368_0xb8f; + undefined field2369_0xb90; + undefined field2370_0xb91; + undefined field2371_0xb92; + undefined field2372_0xb93; + undefined field2373_0xb94; + undefined field2374_0xb95; + undefined field2375_0xb96; + undefined field2376_0xb97; + undefined field2377_0xb98; + undefined field2378_0xb99; + undefined field2379_0xb9a; + undefined field2380_0xb9b; + undefined field2381_0xb9c; + undefined field2382_0xb9d; + undefined field2383_0xb9e; + undefined field2384_0xb9f; + undefined field2385_0xba0; + undefined field2386_0xba1; + undefined field2387_0xba2; + undefined field2388_0xba3; + undefined field2389_0xba4; + undefined field2390_0xba5; + undefined field2391_0xba6; + undefined field2392_0xba7; + undefined field2393_0xba8; + undefined field2394_0xba9; + undefined field2395_0xbaa; + undefined field2396_0xbab; + undefined field2397_0xbac; + undefined field2398_0xbad; + undefined field2399_0xbae; + undefined field2400_0xbaf; + undefined field2401_0xbb0; + undefined field2402_0xbb1; + undefined field2403_0xbb2; + undefined field2404_0xbb3; + undefined field2405_0xbb4; + undefined field2406_0xbb5; + undefined field2407_0xbb6; + undefined field2408_0xbb7; + undefined field2409_0xbb8; + undefined field2410_0xbb9; + undefined field2411_0xbba; + undefined field2412_0xbbb; + undefined field2413_0xbbc; + undefined field2414_0xbbd; + undefined field2415_0xbbe; + undefined field2416_0xbbf; + undefined field2417_0xbc0; + undefined field2418_0xbc1; + undefined field2419_0xbc2; + undefined field2420_0xbc3; + undefined field2421_0xbc4; + undefined field2422_0xbc5; + undefined field2423_0xbc6; + undefined field2424_0xbc7; + undefined field2425_0xbc8; + undefined field2426_0xbc9; + undefined field2427_0xbca; + undefined field2428_0xbcb; + undefined field2429_0xbcc; + undefined field2430_0xbcd; + undefined field2431_0xbce; + undefined field2432_0xbcf; + undefined field2433_0xbd0; + undefined field2434_0xbd1; + undefined field2435_0xbd2; + undefined field2436_0xbd3; + undefined field2437_0xbd4; + undefined field2438_0xbd5; + undefined field2439_0xbd6; + undefined field2440_0xbd7; + undefined field2441_0xbd8; + undefined field2442_0xbd9; + undefined field2443_0xbda; + undefined field2444_0xbdb; + undefined field2445_0xbdc; + undefined field2446_0xbdd; + undefined field2447_0xbde; + undefined field2448_0xbdf; + undefined field2449_0xbe0; + undefined field2450_0xbe1; + undefined field2451_0xbe2; + undefined field2452_0xbe3; + undefined field2453_0xbe4; + undefined field2454_0xbe5; + undefined field2455_0xbe6; + undefined field2456_0xbe7; + undefined field2457_0xbe8; + undefined field2458_0xbe9; + undefined field2459_0xbea; + undefined field2460_0xbeb; + undefined field2461_0xbec; + undefined field2462_0xbed; + undefined field2463_0xbee; + undefined field2464_0xbef; + undefined field2465_0xbf0; + undefined field2466_0xbf1; + undefined field2467_0xbf2; + undefined field2468_0xbf3; + undefined field2469_0xbf4; + undefined field2470_0xbf5; + undefined field2471_0xbf6; + undefined field2472_0xbf7; + undefined field2473_0xbf8; + undefined field2474_0xbf9; + undefined field2475_0xbfa; + undefined field2476_0xbfb; + undefined field2477_0xbfc; + undefined field2478_0xbfd; + undefined field2479_0xbfe; + undefined field2480_0xbff; + undefined field2481_0xc00; + undefined field2482_0xc01; + undefined field2483_0xc02; + undefined field2484_0xc03; + undefined field2485_0xc04; + undefined field2486_0xc05; + undefined field2487_0xc06; + undefined field2488_0xc07; + undefined field2489_0xc08; + undefined field2490_0xc09; + undefined field2491_0xc0a; + undefined field2492_0xc0b; + undefined field2493_0xc0c; + undefined field2494_0xc0d; + undefined field2495_0xc0e; + undefined field2496_0xc0f; + undefined field2497_0xc10; + undefined field2498_0xc11; + undefined field2499_0xc12; + undefined field2500_0xc13; + undefined field2501_0xc14; + undefined field2502_0xc15; + undefined field2503_0xc16; + undefined field2504_0xc17; +}; +#define FIL_C_MaxConcatCacheSize 262144 +struct stAxisCaps { + long m_lCenter; + long m_lRange; + long m_lThreshold; +}; +typedef struct stAxisCaps INO_tdstAxisCaps; +typedef struct tdstCsaList_ *ZDX_tdxHandleToCsaList; +#define INO_C_wNbMaxDevice 20 +typedef void (*tdfn_vAllocHandleFunction)(struct EngineObject *p_stObject); +#define IPT_C_ValidCommand 1 +typedef struct tdstZoneSetList_ *ZDX_tdxHandleToZoneSetList; +struct tdstSndBankDescriptorList_ { +}; +#define IPT_C_MaxLineCommand 78 +struct tdstBlockInfoPriv { + char *p_cBeginBlock; + char *p_cEndBlock; + char *p_cFirstFree; + char *p_cMaxMem; +}; +typedef struct IPT_tdstScriptValue_ *IPT_tdxHandleToScriptValue; +#define C_FillTheBlockWithCleanKeyFlag 2 +#define C_wTimerUnused 0 +typedef void (*td_fn_vTimerEventCallback)(void); struct tdstObjectTypeElement_ { ObjectTypeElementHandle hNextBrotherDyn; ObjectTypeElementHandle hPrevBrotherDyn; @@ -10,5 +3718,2106 @@ struct tdstObjectTypeElement_ { char *szName; unsigned char ucElementPriority; }; -typedef struct tdstObjectTypeElement_ *ObjectTypeElementHandle; +#define C_wTimerFalse 32765 +#define INO_C_wConnectedDevices 2 +struct GEO_tdstVisualSet { +}; +#define INO_C_ucButtonDown 128 +struct _tdstMidiStreaming { +}; +typedef struct _tdstMidiStreaming tdstMidiStreaming; +struct FIL_RealGFFileHeader { + unsigned long ulFormat; + unsigned long ulWidth; + unsigned long ulHeight; + unsigned char ucBpp; + unsigned char ucRLECode; +}; +struct _tdstTypeSequenceMem { +}; +typedef struct _tdstTypeSequenceMem tdstTypeSequenceMem; +struct FileInner1 { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + undefined field16_0x10; + undefined field17_0x11; + undefined field18_0x12; + undefined field19_0x13; + undefined field20_0x14; + undefined field21_0x15; + undefined field22_0x16; + undefined field23_0x17; +}; +typedef struct _tdstSampleStreaming tdstSampleStreaming; +#define C_NB_MAX_SETS_OF_RASTERS 16 +#define INO_C_uwAnyType 255 +typedef struct _tdstAllRetObjectSound tdstAllRetObjectSound; +#define C_uaBeginKey 2971878763 +typedef struct FIL_ConcatFile *FIL_HandleToConcatFile; +struct _tdstRangeSplitDisk { +}; +typedef struct _tdstRangeSplitDisk tdstRangeSplitDisk; +struct AnimLights { + void **a_p_stLights; + unsigned short uwNumberOfLights; + void *a_hLightsInSector; +}; +struct Couple { + unsigned short wChild; + unsigned short wFather; +}; +struct tdstPLA_Hierarchy_ { + unsigned long ulNbOfCouples; + struct Couple *d_stCouples; +}; +typedef struct tdstPLA_Hierarchy_ tdstPLA_Hierarchy; +struct Element3d { + POS_tdxHandleToPosition stMatrix; + unsigned char ucElement; + unsigned char ucChannelNumber; + unsigned char bActiveStatus; + unsigned long eTypeOfElement; +}; +struct Frame3d { + struct Element3d *p_stArrayOfElts3d; + struct MTH3D_Matrix *p_stAngularSpeedMatrix; + struct MTH3_Vector *p_stLinearSpeedVector; + tdstPLA_Hierarchy *p_stHierarchy; +}; +struct EventInTable { + void *p_xEvent; + unsigned char ucTypeOfEvent; + unsigned char ucPriority; + unsigned char ucFirstCall; + unsigned char ucPeriod; + unsigned long ulBinaryEventId; +}; +struct Event { + struct EventInTable *p_stfEventInTBL; + unsigned short usEventNumberInTBL; + unsigned short uwFrameNumber; + unsigned short uwChannelNumber; +}; +struct Anim3d { + struct Frame3d *d_stFrame3d; + unsigned char ucNumberOfFrames; + unsigned char ucFrameRate; + unsigned char ucMaxNumberOfElements; + struct Event *d_stAnimEvent; + unsigned char ucNumberOfEvents; + struct POS_stCompletePosition stOffsetMatrix; + unsigned char bCompressedAnim; + struct AnimLights *p_stLights; + struct stMorphData *d_stMorphDataArray; + unsigned short uwNumOfA3dGENERAL; +}; +#define MAX_NAME_LEVEL 30 +#define C_NoAlignement 1 +#define POS_C_xRotationUsed 32 +#define SCR_C_ui_Hash_Modulo 256 +#define GF_VERSION 1 +typedef void (*td_pfn_vCopyString)(long obj, char *str, long size_str); +struct _tdstInfoTrackList { +}; +typedef struct _tdstInfoTrackList tdstInfoTrackList; +typedef struct _tdstTypeRandomDisk tdstTypeRandomDisk; +struct Unk0 { /* Used as a tls/static */ + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + int unk0; + int unk1; + undefined field10_0x10; + undefined field11_0x11; + undefined field12_0x12; + undefined field13_0x13; + undefined field14_0x14; + undefined field15_0x15; + undefined field16_0x16; + undefined field17_0x17; + undefined field18_0x18; + undefined field19_0x19; + undefined field20_0x1a; + undefined field21_0x1b; + undefined field22_0x1c; + undefined field23_0x1d; + undefined field24_0x1e; + undefined field25_0x1f; + undefined field26_0x20; + undefined field27_0x21; + undefined field28_0x22; + undefined field29_0x23; + undefined field30_0x24; + undefined field31_0x25; + undefined field32_0x26; + undefined field33_0x27; + undefined field34_0x28; + undefined field35_0x29; + undefined field36_0x2a; + undefined field37_0x2b; + undefined field38_0x2c; + undefined field39_0x2d; + undefined field40_0x2e; + undefined field41_0x2f; + undefined field42_0x30; + undefined field43_0x31; + undefined field44_0x32; + undefined field45_0x33; + undefined field46_0x34; + undefined field47_0x35; + undefined field48_0x36; + undefined field49_0x37; + undefined field50_0x38; + undefined field51_0x39; + undefined field52_0x3a; + undefined field53_0x3b; + undefined field54_0x3c; + undefined field55_0x3d; + undefined field56_0x3e; + undefined field57_0x3f; + undefined field58_0x40; + undefined field59_0x41; + undefined field60_0x42; + undefined field61_0x43; + undefined field62_0x44; + undefined field63_0x45; + undefined field64_0x46; + undefined field65_0x47; + undefined field66_0x48; + undefined field67_0x49; + undefined field68_0x4a; + undefined field69_0x4b; + undefined field70_0x4c; + undefined field71_0x4d; + undefined field72_0x4e; + undefined field73_0x4f; + undefined field74_0x50; + undefined field75_0x51; + undefined field76_0x52; + undefined field77_0x53; + undefined field78_0x54; + undefined field79_0x55; + undefined field80_0x56; + undefined field81_0x57; + undefined field82_0x58; + undefined field83_0x59; + undefined field84_0x5a; + undefined field85_0x5b; + undefined field86_0x5c; + undefined field87_0x5d; + undefined field88_0x5e; + undefined field89_0x5f; + undefined field90_0x60; + undefined field91_0x61; + undefined field92_0x62; + undefined field93_0x63; + undefined field94_0x64; + undefined field95_0x65; + undefined field96_0x66; + undefined field97_0x67; + undefined field98_0x68; + undefined field99_0x69; + undefined field100_0x6a; + undefined field101_0x6b; + undefined field102_0x6c; + undefined field103_0x6d; + undefined field104_0x6e; + undefined field105_0x6f; + undefined field106_0x70; + undefined field107_0x71; + undefined field108_0x72; + undefined field109_0x73; +}; +struct IPT_tdstHistoricElement_ { + unsigned char bf2State; + unsigned char bf6DeviceType; + unsigned char ucCounter; + short swDeviceValue; +}; +typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement; +struct _SampleParam { + SndReal Freq; + unsigned char ucVol; + unsigned char ucPan; + unsigned char ucSpace; + unsigned char ucReverb; +}; +#define C_NB_MAX_VPT_IN_DEV 16 +union _union_2483 { + SndReal rCallbackPeriod; + long lNbSampleToPush; +}; +typedef struct tdstBubbleEffect_ *GAM_tdxHandleToBubbleEffect; +typedef void (*td_pfn_vRefreshBufferClient)(long user_id, unsigned long first, unsigned long nb, void *ptr_first_sample); +union _union_2482 { + td_pfn_vRefreshBufferClient CallbackASynchrone; + td_pfn_vRefreshBufferClient CallbackSynchrone; + td_pfn_vBufferClientPoped CallbackStack; +}; +struct tdstMorphChannelList_ { +}; +typedef td_fn_vTimerEventCallback *td_p_fn_vTimerEventCallback; +struct _tdstTimer { + short m_wTimerType; + short m_wTimerState; + struct TMR_tdstTimerCount m_stTimerCount_InitValue; + struct TMR_tdstTimerCount m_stTimerCount_LastValue; + struct TMR_tdstTimerCount m_stTimerCount_TotalValue; + unsigned long m_ulEventId; + td_p_fn_vTimerEventCallback m_p_fn_vEventCallback; +}; +typedef struct _tdstTimer tdstTimer; +typedef struct _tdstThemePartOutro tdstThemePartOutro; +typedef struct _tdstTypeMidiMem tdstTypeMidiMem; +struct _tdstRefRes { +}; +#define IPT_C_FALSE 0 +#define FALSE 0 +struct GEO_tdstDoubledIndex { + ACP_tdxIndex a2_xIndex[2]; +}; +struct tdstAviHeader_ { + unsigned char ucRIFFMark[4]; + long lLength; + unsigned char ucAVIMark[4]; +}; +typedef struct _tdstSndBankHead tdstSndBankHead; +#define C_ucNeverPlay 255 +#define IPT_C_Duplicate 0 +#define C_uwAllocSize 4 +#define C_ulOverflowCheckKey 3777185134 +#define C_SOUNDPAN_RIGHT 127 +struct _tdstSampleMemory { +}; +typedef struct _tdstSampleMemory tdstSampleMemory; +struct _tdstTypeCD { +}; +typedef struct _tdstTypeCD tdstTypeCD; +struct _tdstSndPolyResource { +}; +struct FIL_FileInConcatFile { + unsigned char bUseConcatFile; + FILE *p_stFile; + unsigned long ulFileActualSeek; + unsigned long ulFileEndSeek; + unsigned long ulFileXorCode; + unsigned long ulFileCheckSum; + unsigned long ulCacheSeek; + unsigned long ulCacheSize; + unsigned long ulCacheCheckSum; + unsigned char *p_ucCache; +}; +#define C_INIT_UNCOMPLETED 5 +#define INO_C_ucAcquired 2 +typedef struct IPT_tdstEntryElement_ IPT_tdstEntryElement; +struct tdstSubAnim3d_ { + unsigned char ucCurrentFrame; + unsigned char ucRepeatAnimation; + unsigned char ucElement; + struct tdstState_ *p_stCurrentState; +}; +struct tdstAChannel_ { +}; +struct _tdstSwitchElement { +}; +#define GF_FORMAT_RGB_565 10 +#define C_wTimerFrequencyLow 0 +typedef struct tdstAlwaysActiveCharacter_ *tdxHandleToAlwaysActiveCharacterNode; +struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk { + tdxHandleToAlwaysActiveCharacterNode hFirstElementSLk; + tdxHandleToAlwaysActiveCharacterNode hLastElementSLk; + long lNumberOfElementsSLk; +}; +struct stDevCaps { + unsigned char m_ucNbButtons; + unsigned long m_ulCapsFlags; +}; +#define IPT_C_InvalideDevice 0 +#define C_wTimerEvent 5 +typedef struct _tdstRefResList tdstRefResList; +#define IPT_C_BadNumberOfParameters -2 +#define _WIN32 1 +#define POS_C_xTranslationRotationZoom 7 +typedef struct tdstWaterStreakEffect_ *GAM_tdxHandleToWaterStreakEffect; +typedef struct stDevCaps INO_tdstDevCaps; +struct IPT_tdstKeyAndPadDefine_ { + unsigned short uwBasedKey; + char *p_szFrenchKey; + char *p_szAmericanKey; +}; +typedef struct IPT_tdstKeyAndPadDefine_ IPT_tdstKeyAndPadDefine; +#define SCR_C_ui_DyAr_BaseForAllocation 100 +typedef struct _tdstAllRetChannelSound tdstAllRetChannelSound; +struct tdstNodeMainCharacter_ { +}; +#define _USE_DECLSPECS_FOR_SAL 0 +struct GMA_tdstEngineEndStructure { + unsigned char ucNumberOfLevels; + unsigned char ucCurrentLevel; + unsigned char ucPreviousLevel; + unsigned char ucExitIdToQuitPrevLevel; + unsigned char ucLevelGlobalCounter; + ACP_tdxBool xDemoMode; + unsigned char ucCurrentLanguage; + unsigned char ucNbLanguages; + ACP_tdxBool bEngineFrozen; + ACP_tdxBool bResurrection; + char cCameraMode; +}; +#define SND_C_RES_FANTOME_PTR 0 +struct stDevState { + unsigned char m_ucStatus; +}; +#define C_INIT_OK 3 +#define IPT_C_ACP_HistoricSize 2 +typedef struct tdstFootPath_ *GAM_tdxHandleToFootPathEffect; +typedef enum SCR_tde_Link_State_ SCR_tde_Link_State; +#define C_SOUNDPARAM_SWITCH 32 +typedef struct tdstChunkHeader_ tdstChunkHeader; +typedef struct tdstObjectTypeElement_ tdstObjectTypeElement; +struct _MicroParam { + SndVector pos; + SndVector vit; + SndVector dirnor; + SndVector dirtan; +}; +#define C_SOUNDPARAM_ROLLOFF 16 +#define C_ucTAKE_OUT_OBJECT_EVENT 3 +typedef struct tdstAviHeader_ tdstAviHeader; +enum IPT_E_DeviceEvent_ { + IPT_E_FirstDeviceEvent=1, + IPT_E_KeyboardDeviceEvent=2, + IPT_E_Pad00DeviceEvent=3, + IPT_E_Pad01DeviceEvent=4, + IPT_E_Pad02DeviceEvent=5, + IPT_E_Pad03DeviceEvent=6, + IPT_E_Pad04DeviceEvent=7, + IPT_E_Pad05DeviceEvent=8, + IPT_E_Pad06DeviceEvent=9, + IPT_E_Pad07DeviceEvent=10, + IPT_E_Pad08DeviceEvent=11, + IPT_E_Pad09DeviceEvent=12, + IPT_E_Pad10DeviceEvent=13, + IPT_E_Pad11DeviceEvent=14, + IPT_E_Pad12DeviceEvent=15, + IPT_E_Pad13DeviceEvent=16, + IPT_E_Pad14DeviceEvent=17, + IPT_E_Pad15DeviceEvent=18, + IPT_E_NumberOfDeviceEvent=19 +}; +typedef struct _tdstSndPolyResource tdstSndPolyResource; +struct tdstViewportManagement_ { +}; +typedef struct tdstTransition_ *tdxHandleToTransition; +#define IPT_C_MaxNumberOfParameters 10 +#define C_ucTAKE_IN_OBJECT_EVENT 2 +#define POS_C_xScaleUsed 64 +#define C_ucTAKE_OBJECT_EVENT 1 +#define GF_FORMAT_ARGB_1555 11 +struct _tdstInfoTrackMem { +}; +#define IPT_C_QuitCommandMode 2 +struct LST2_tdstAnchorTotdxHandleToNodeCameraSLk { + struct NodeCamera *hFirstElementSLk; + struct NodeCamera *hLastElementSLk; + long lNumberOfElementsSLk; +}; +#define POS_C_xTranslationRotation 3 +#define C_GETVOLUME_FAILED 255 +struct _tdstTypeSwitchMem { +}; +typedef struct _tdstTypeSwitchMem tdstTypeSwitchMem; +#define IPT_C_ActivateDevice 2 +struct LevelLoadState { + undefined *ptrSized; /* len = size * 8 */ + unsigned int ptrSize; +}; +typedef struct IPT_tdstInput_ IPT_tdstInput; +#define __RAD32__ 1 +typedef struct tdstProhibit_ *tdxHandleToProhibit; +struct LST2_tdstAnchorTotdxHandleToProhibitSLk { + tdxHandleToProhibit hFirstElementSLk; + tdxHandleToProhibit hLastElementSLk; + long lNumberOfElementsSLk; +}; +#define IPT_C_ActivateJoystickDevice 4 +#define C_uwShiftAllocSize 2 +#define IPT_C_Exchange 1 +typedef struct _MicroParam MicroParam; +#define C_BlockWithFreeFlag 0 +struct BinkInner0 { + int unk_neg1; + undefined *field1_0x4; + float field2_0x8; + float field3_0xc; + undefined field4_0x10; + undefined field5_0x11; + undefined field6_0x12; + undefined field7_0x13; + float field8_0x14; + float field9_0x18; + float field10_0x1c; + undefined field11_0x20; + undefined field12_0x21; + undefined field13_0x22; + undefined field14_0x23; + undefined field15_0x24; + undefined field16_0x25; + undefined field17_0x26; + undefined field18_0x27; + undefined field19_0x28; + undefined field20_0x29; + undefined field21_0x2a; + undefined field22_0x2b; + undefined field23_0x2c; + undefined field24_0x2d; + undefined field25_0x2e; + undefined field26_0x2f; + undefined field27_0x30; + undefined field28_0x31; + undefined field29_0x32; + undefined field30_0x33; + undefined field31_0x34; + undefined field32_0x35; + undefined field33_0x36; + undefined field34_0x37; + undefined field35_0x38; + undefined field36_0x39; + undefined field37_0x3a; + undefined field38_0x3b; + undefined field39_0x3c; + undefined field40_0x3d; + undefined field41_0x3e; + undefined field42_0x3f; + undefined field43_0x40; + undefined field44_0x41; + undefined field45_0x42; + undefined field46_0x43; + undefined field47_0x44; + undefined field48_0x45; + undefined field49_0x46; + undefined field50_0x47; + undefined field51_0x48; + undefined field52_0x49; + undefined field53_0x4a; + undefined field54_0x4b; + undefined field55_0x4c; + undefined field56_0x4d; + undefined field57_0x4e; + undefined field58_0x4f; + undefined field59_0x50; + undefined field60_0x51; + undefined field61_0x52; + undefined field62_0x53; + undefined field63_0x54; + undefined field64_0x55; + undefined field65_0x56; + undefined field66_0x57; + undefined field67_0x58; + undefined field68_0x59; + undefined field69_0x5a; + undefined field70_0x5b; + undefined field71_0x5c; + undefined field72_0x5d; + undefined field73_0x5e; + undefined field74_0x5f; + undefined field75_0x60; + undefined field76_0x61; + undefined field77_0x62; + undefined field78_0x63; + undefined field79_0x64; + undefined field80_0x65; + undefined field81_0x66; + undefined field82_0x67; + undefined field83_0x68; + undefined field84_0x69; + undefined field85_0x6a; + undefined field86_0x6b; + undefined field87_0x6c; + undefined field88_0x6d; + undefined field89_0x6e; + undefined field90_0x6f; + undefined field91_0x70; + undefined field92_0x71; + undefined field93_0x72; + undefined field94_0x73; + undefined field95_0x74; + undefined field96_0x75; + undefined field97_0x76; + undefined field98_0x77; + undefined field99_0x78; + undefined field100_0x79; + undefined field101_0x7a; + undefined field102_0x7b; + undefined field103_0x7c; + undefined field104_0x7d; + undefined field105_0x7e; + undefined field106_0x7f; + undefined field107_0x80; + undefined field108_0x81; + undefined field109_0x82; + undefined field110_0x83; + undefined field111_0x84; + undefined field112_0x85; + undefined field113_0x86; + undefined field114_0x87; + undefined field115_0x88; + undefined field116_0x89; + undefined field117_0x8a; + undefined field118_0x8b; + undefined field119_0x8c; + undefined field120_0x8d; + undefined field121_0x8e; + undefined field122_0x8f; + undefined field123_0x90; + undefined field124_0x91; + undefined field125_0x92; + undefined field126_0x93; + undefined field127_0x94; + undefined field128_0x95; + undefined field129_0x96; + undefined field130_0x97; + undefined field131_0x98; + undefined field132_0x99; + undefined field133_0x9a; + undefined field134_0x9b; + undefined field135_0x9c; + undefined field136_0x9d; + undefined field137_0x9e; + undefined field138_0x9f; + undefined field139_0xa0; + undefined field140_0xa1; + undefined field141_0xa2; + undefined field142_0xa3; + undefined field143_0xa4; + undefined field144_0xa5; + undefined field145_0xa6; + undefined field146_0xa7; + undefined field147_0xa8; + undefined field148_0xa9; + undefined field149_0xaa; + undefined field150_0xab; + undefined field151_0xac; + undefined field152_0xad; + undefined field153_0xae; + undefined field154_0xaf; + undefined field155_0xb0; + undefined field156_0xb1; + undefined field157_0xb2; + undefined field158_0xb3; + undefined field159_0xb4; + undefined field160_0xb5; + undefined field161_0xb6; + undefined field162_0xb7; + undefined field163_0xb8; + undefined field164_0xb9; + undefined field165_0xba; + undefined field166_0xbb; + undefined field167_0xbc; + undefined field168_0xbd; + undefined field169_0xbe; + undefined field170_0xbf; + undefined field171_0xc0; + undefined field172_0xc1; + undefined field173_0xc2; + undefined field174_0xc3; + undefined field175_0xc4; + undefined field176_0xc5; + undefined field177_0xc6; + undefined field178_0xc7; + undefined field179_0xc8; + undefined field180_0xc9; + undefined field181_0xca; + undefined field182_0xcb; + undefined field183_0xcc; + undefined field184_0xcd; + undefined field185_0xce; + undefined field186_0xcf; + undefined field187_0xd0; + undefined field188_0xd1; + undefined field189_0xd2; + undefined field190_0xd3; + undefined field191_0xd4; + undefined field192_0xd5; + undefined field193_0xd6; + undefined field194_0xd7; + undefined field195_0xd8; + undefined field196_0xd9; + undefined field197_0xda; + undefined field198_0xdb; + undefined field199_0xdc; + undefined field200_0xdd; + undefined field201_0xde; + undefined field202_0xdf; + undefined field203_0xe0; + undefined field204_0xe1; + undefined field205_0xe2; + undefined field206_0xe3; + undefined field207_0xe4; + undefined field208_0xe5; + undefined field209_0xe6; + undefined field210_0xe7; + undefined field211_0xe8; + undefined field212_0xe9; + undefined field213_0xea; + undefined field214_0xeb; + undefined field215_0xec; + undefined field216_0xed; + undefined field217_0xee; + undefined field218_0xef; + undefined field219_0xf0; + undefined field220_0xf1; + undefined field221_0xf2; + undefined field222_0xf3; + undefined field223_0xf4; + undefined field224_0xf5; + undefined field225_0xf6; + undefined field226_0xf7; + undefined field227_0xf8; + undefined field228_0xf9; + undefined field229_0xfa; + undefined field230_0xfb; + undefined field231_0xfc; + undefined field232_0xfd; + undefined field233_0xfe; + undefined field234_0xff; + undefined field235_0x100; + undefined field236_0x101; + undefined field237_0x102; + undefined field238_0x103; + undefined field239_0x104; + undefined field240_0x105; + undefined field241_0x106; + undefined field242_0x107; + undefined field243_0x108; + undefined field244_0x109; + undefined field245_0x10a; + undefined field246_0x10b; + undefined field247_0x10c; + undefined field248_0x10d; + undefined field249_0x10e; + undefined field250_0x10f; + undefined field251_0x110; + undefined field252_0x111; + undefined field253_0x112; + undefined field254_0x113; + undefined field255_0x114; + undefined field256_0x115; + undefined field257_0x116; + undefined field258_0x117; + undefined field259_0x118; + undefined field260_0x119; + undefined field261_0x11a; + undefined field262_0x11b; + undefined field263_0x11c; + undefined field264_0x11d; + undefined field265_0x11e; + undefined field266_0x11f; + undefined field267_0x120; + undefined field268_0x121; + undefined field269_0x122; + undefined field270_0x123; + undefined field271_0x124; + undefined field272_0x125; + undefined field273_0x126; + undefined field274_0x127; + undefined field275_0x128; + undefined field276_0x129; + undefined field277_0x12a; + undefined field278_0x12b; + undefined field279_0x12c; + undefined field280_0x12d; + undefined field281_0x12e; + undefined field282_0x12f; + undefined field283_0x130; + undefined field284_0x131; + undefined field285_0x132; + undefined field286_0x133; + undefined field287_0x134; + undefined field288_0x135; + undefined field289_0x136; + undefined field290_0x137; + undefined field291_0x138; + undefined field292_0x139; + undefined field293_0x13a; + undefined field294_0x13b; + undefined field295_0x13c; + undefined field296_0x13d; + undefined field297_0x13e; + undefined field298_0x13f; + undefined field299_0x140; + undefined field300_0x141; + undefined field301_0x142; + undefined field302_0x143; + undefined field303_0x144; + undefined field304_0x145; + undefined field305_0x146; + undefined field306_0x147; + undefined field307_0x148; + undefined field308_0x149; + undefined field309_0x14a; + undefined field310_0x14b; + undefined field311_0x14c; + undefined field312_0x14d; + undefined field313_0x14e; + undefined field314_0x14f; + undefined field315_0x150; + undefined field316_0x151; + undefined field317_0x152; + undefined field318_0x153; + undefined field319_0x154; + undefined field320_0x155; + undefined field321_0x156; + undefined field322_0x157; + undefined field323_0x158; + undefined field324_0x159; + undefined field325_0x15a; + undefined field326_0x15b; + undefined field327_0x15c; + undefined field328_0x15d; + undefined field329_0x15e; + undefined field330_0x15f; + undefined field331_0x160; + undefined field332_0x161; + undefined field333_0x162; + undefined field334_0x163; + undefined field335_0x164; + undefined field336_0x165; + undefined field337_0x166; + undefined field338_0x167; + undefined field339_0x168; + undefined field340_0x169; + undefined field341_0x16a; + undefined field342_0x16b; + undefined field343_0x16c; + undefined field344_0x16d; + undefined field345_0x16e; + undefined field346_0x16f; + undefined field347_0x170; + undefined field348_0x171; + undefined field349_0x172; + undefined field350_0x173; + undefined field351_0x174; + undefined field352_0x175; + undefined field353_0x176; + undefined field354_0x177; + undefined field355_0x178; + undefined field356_0x179; + undefined field357_0x17a; + undefined field358_0x17b; + undefined field359_0x17c; + undefined field360_0x17d; + undefined field361_0x17e; + undefined field362_0x17f; + undefined field363_0x180; + undefined field364_0x181; + undefined field365_0x182; + undefined field366_0x183; + undefined field367_0x184; + undefined field368_0x185; + undefined field369_0x186; + undefined field370_0x187; +}; +struct GameStructure { + struct BinkInner0 *binkInner; + float field1_0x4; + float field2_0x8; + float field3_0xc; + float field4_0x10; + HANDLE drawSemaphore; + FILE *movieFile; + unsigned int keySeqEsc; + undefined field8_0x20; + undefined field9_0x21; + undefined field10_0x22; + undefined field11_0x23; + undefined field12_0x24; + undefined field13_0x25; + undefined field14_0x26; + undefined field15_0x27; + undefined field16_0x28; + undefined field17_0x29; + undefined field18_0x2a; + undefined field19_0x2b; + undefined field20_0x2c; + undefined field21_0x2d; + undefined field22_0x2e; + undefined field23_0x2f; + undefined field24_0x30; + undefined field25_0x31; + undefined field26_0x32; + undefined field27_0x33; + undefined field28_0x34; + undefined field29_0x35; + undefined field30_0x36; + undefined field31_0x37; + undefined field32_0x38; + undefined field33_0x39; + undefined field34_0x3a; + undefined field35_0x3b; + undefined field36_0x3c; + undefined field37_0x3d; + undefined field38_0x3e; + undefined field39_0x3f; + unsigned char passedToDisplayFn; + undefined field41_0x41; + undefined field42_0x42; + undefined field43_0x43; + undefined field44_0x44; + undefined field45_0x45; + undefined field46_0x46; + undefined field47_0x47; + char *movieName; + undefined field49_0x4c; + undefined field50_0x4d; + undefined field51_0x4e; + undefined field52_0x4f; + undefined field53_0x50; + undefined field54_0x51; + undefined field55_0x52; + undefined field56_0x53; + undefined field57_0x54; + undefined field58_0x55; + undefined field59_0x56; + undefined field60_0x57; + undefined field61_0x58; + undefined field62_0x59; + undefined field63_0x5a; + undefined field64_0x5b; + float field65_0x5c; +}; +typedef char * (*tdpfnResNameCallback)(unsigned long param1); +#define C_ucFalse 0 +struct CLIENT_ID { + void *UniqueProcess; + void *UniqueThread; +}; +#define C_wTimerStop 3 +#define C_wTimerFrequencyMedium 1 +#define C_wTimerError 32767 +enum tdeObjectTreeInit_ { + OTI_WhenGameStart=0, + OTI_MapLoaded=1, + OTI_ReinitTheMap=2, + OTI_LoadSavedGame=3, + OTI_PlayerDead=4, + OTI_WhenGoOutOfZone=5, + OTI_Always=6, + OTI_AlwaysCreated=7 +}; +typedef void (*tdfn_vInitHandleFunction)(struct EngineObject *p_stObject, enum tdeObjectTreeInit_ eObjectInit); +struct tdstStructureHandleFunction { + tdfn_vCopyCloneMSFunction *p_fn_vCopyCloneMSFunction; + tdfn_ulSizeofHandleFunction *p_fn_ulSizeOfFunction; + tdfn_vAllocHandleFunction *p_fn_vAllocFunction; + tdfn_vAllocHandleFunction *p_fn_vFreeFunction; + tdfn_vInitHandleFunction *p_fn_vInitFunction; + tdfn_vInitHandleFunction *p_fn_vDesinitFunction; +}; +struct _tdstRangeSplitMem { +}; +struct tdstFamilyList_ { +}; +#define C_PLAY_FAILED -1 +struct tdstObjectsTablesList_ { +}; +typedef union _tduRefRes tduRefRes; +struct m7_init_struct { + unsigned int threadSignal0; + unsigned int threadSignal1; + unsigned char field2_0x8; + unsigned char field3_0x9; + unsigned char field4_0xa; + unsigned char field5_0xb; + unsigned char field6_0xc; + unsigned char field7_0xd; + unsigned char field8_0xe; + unsigned char field9_0xf; + unsigned char field10_0x10; + unsigned char field11_0x11; + undefined1 field12_0x12; + unsigned char field13_0x13; + unsigned char field14_0x14; + unsigned char field15_0x15; + unsigned char field16_0x16; + unsigned char field17_0x17; + unsigned char field18_0x18; +}; +typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList; +typedef struct INO_Device *INO_DeviceHandle; +#define C_MaxNbPossibleChannel 255 +#define INO_C_ucAccessError 4 +struct INO_DIDevice { + DIDEVICEINSTANCE m_stDevInstance; + LPDIRECTINPUTDEVICE m_p_stDevInterface; /* set */ + LPDIRECTINPUTDEVICE2 m_p_stDevInterface2; + short m_wExtendedInterfaceAvailable; + undefined field4_0x24e; + undefined field5_0x24f; + INO_DeviceHandle m_hDevice; + undefined field7_0x254; + undefined field8_0x255; + undefined field9_0x256; + undefined field10_0x257; + undefined field11_0x258; + undefined field12_0x259; + undefined field13_0x25a; + undefined field14_0x25b; + undefined field15_0x25c; + undefined field16_0x25d; + undefined field17_0x25e; + undefined field18_0x25f; + undefined field19_0x260; + undefined field20_0x261; + undefined field21_0x262; + undefined field22_0x263; + undefined field23_0x264; + undefined field24_0x265; + undefined field25_0x266; + undefined field26_0x267; + undefined field27_0x268; + undefined field28_0x269; + undefined field29_0x26a; + undefined field30_0x26b; + undefined field31_0x26c; + undefined field32_0x26d; + undefined field33_0x26e; + undefined field34_0x26f; + undefined field35_0x270; + undefined field36_0x271; + undefined field37_0x272; + undefined field38_0x273; + undefined field39_0x274; + undefined field40_0x275; + undefined field41_0x276; + undefined field42_0x277; + undefined field43_0x278; + undefined field44_0x279; + undefined field45_0x27a; + undefined field46_0x27b; + undefined field47_0x27c; + undefined field48_0x27d; + undefined field49_0x27e; + undefined field50_0x27f; + undefined field51_0x280; + undefined field52_0x281; + undefined field53_0x282; + undefined field54_0x283; + undefined field55_0x284; + undefined field56_0x285; + undefined field57_0x286; + undefined field58_0x287; + undefined field59_0x288; + undefined field60_0x289; + undefined field61_0x28a; + undefined field62_0x28b; + undefined field63_0x28c; +}; +enum LRM_eKindOfRequest_ { + LRM_eRequest_NotValid=-1, + LRM_eRequest_NoAction=0, + LRM_eRequest_TurnUp=1, + LRM_eRequest_TurnDown=2, + LRM_eRequest_TurnLeft=3, + LRM_eRequest_TurnRight=4, + LRM_eRequest_TurnAbsolute=5, + LRM_eRequest_Jump=6, + LRM_eRequest_JumpAbsolute=7, + LRM_eRequest_JumpWithoutAddingSpeed=8, + LRM_eRequest_Accelerate=9, + LRM_eRequest_Pulse=10, + LRM_eRequest_Brake=11, + LRM_eRequest_GoRelative=12, + LRM_eRequest_GoAbsolute=13, + LRM_eRequest_Start=14, + LRM_eRequest_Continue=15, + LRM_eRequest_TrackingDirection=16, + LRM_eRequest_ActionOnCamera=17, + LRM_eRequest_TurnAbsoluteInProgress=18, + LRM_eRequest_GoTarget=19, + LRM_eRequest_GoInDirection=20, + LRM_eRequest_Fire=21, + LRM_eRequest_ReachTarget=22, + LRM_eRequest_TurnAround=23, + LRM_eRequest_BePushed=24 +}; +#define NB_MICRO_MAX 2 +typedef unsigned int SCR_tdx_Hash_Key; +struct SCR_tdst_Link_Value_ { + SCR_tdst_DyAr_Header stHeader; + char *p_szKey; + unsigned long ulValue; + SCR_tdx_Hash_Key xHashKeyForKey; + unsigned int uiIndexHashKeyKey; + SCR_tdx_Hash_Key xHashKeyForValue; + unsigned int uiIndexHashKeyValue; + SCR_tde_Link_State eState; + SCR_tdst_Link_AdditionalInfos stInfos; +}; +typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value; +struct _tdstThemePart { +}; +typedef struct _tdstThemePart tdstThemePart; +typedef void *tdxHandleToVoid; +typedef struct _tdstAllRetMicroSound tdstAllRetMicroSound; +#define IPT_C_ActivateMouseDevice 5 +struct mod1_ptrs { + pointer field0_0x0; + pointer field1_0x4; + pointer field2_0x8; +}; +typedef struct tdstSubAnim3d_ tdstSubAnim3d; +typedef HANDLE SND_FileHandle; +struct windowInnerParams { + undefined4 field0_0x0; + undefined field1_0x4; + undefined field2_0x5; + undefined field3_0x6; + undefined field4_0x7; + undefined field5_0x8; + undefined field6_0x9; + undefined field7_0xa; + undefined field8_0xb; + undefined field9_0xc; + undefined field10_0xd; + undefined field11_0xe; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; +}; +struct GAM_as4_inner { + unsigned int unk; + unsigned char tag; /* Created by retype action */ + undefined field2_0x5; + undefined field3_0x6; + undefined field4_0x7; + undefined field5_0x8; + undefined field6_0x9; + undefined field7_0xa; + undefined field8_0xb; + undefined field9_0xc; + undefined field10_0xd; + undefined field11_0xe; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + float field25_0x1c; + undefined field26_0x20; + undefined field27_0x21; + undefined field28_0x22; + undefined field29_0x23; + float field30_0x24; + undefined field31_0x28; + undefined field32_0x29; + undefined field33_0x2a; + undefined field34_0x2b; + undefined field35_0x2c; + undefined field36_0x2d; + undefined field37_0x2e; + undefined field38_0x2f; + undefined field39_0x30; + undefined field40_0x31; + undefined field41_0x32; + undefined field42_0x33; + float field43_0x34; + undefined field44_0x38; + undefined field45_0x39; + undefined field46_0x3a; + undefined field47_0x3b; + float field48_0x3c; + float field49_0x40; + unsigned int counter; +}; +struct GAM_tdstEngineOuter { + unsigned char ucNumberOfLevels; + unsigned char ucCurrentLevel; + unsigned char ucPreviousLevel; + unsigned char ucExitIdToQuitPrevLevel; + unsigned char ucLevelGlobalCounter; + ACP_tdxBool xDemoMode; + unsigned char ucCurrentLanguage; + unsigned char ucNbLanguages; + ACP_tdxBool bEngineFrozen; + ACP_tdxBool bResurrection; + char cCameraMode; +}; +struct _tdstMidiMemory { +}; +typedef struct _tdstMidiMemory tdstMidiMemory; +#define C_wTimerRunning 2 +typedef struct _tdstSwitchElement tdstSwitchElement; +struct _SND_tdstCallback { + SND_tduTypeCallback eType; + union _union_2482 uCallback; + union _union_2483 uInfo; +}; +typedef struct _tdstTypeSplitDisk tdstTypeSplitDisk; +struct tdst_inputAction { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + int validated; +}; +enum enum_1 { + TE_GraphicObject=0, + TE_SubAnimation=1, + TE_EmptyObject=2, + TE_Event=3, + TE_Light=4, + eUndefined=5, + eFuckedObjet=6 +}; +#define C_SOUNDPAN_MEDIAN 64 +#define IPT_C_AZERTYKeyBoardType 1 +#define E_ucDynamic 255 +typedef struct tdstObjectsTableElement_ *tdxHandleToObjectsTableElement; +typedef struct _tdstInfoTrackMem tdstInfoTrackMem; +#define RPC_NO_WINDOWS_H 1 +#define INO_C_ucGLDLink 8 +struct _tdstTypeSwitchDisk { +}; +struct _SND_tdstInitStruct { + HINSTANCE hProcessInstance; + HWND hMainWindow; + HANDLE hMutexDX; +}; +typedef struct _SND_tdstInitStruct SND_tdstInitStruct; +typedef struct _virtual_module *SND_VirtualModuleHandle; +struct tdstCurrentModeInfo { + unsigned char ucModuleId; + unsigned char ucMode; + void *p_vTdstBlockInfoOrTdstDynInfo; +}; +union _tduDataMidi { +}; +typedef union _tduDataMidi tduDataMidi; +typedef struct tdstNodeMainCharacter_ *MC_tdxHandleToMainCharacterNode; +#define NB_LINK 2 +typedef long SndRealTwin; +typedef struct stDevState INO_tdstDevState; +typedef short (*INO_fn_wMethod)(undefined INO_tdstDevice); +struct INO_Device { + unsigned short m_uwType; + INO_tdstDevCaps *m_p_stCaps; + INO_tdstDevState *m_p_stState; + unsigned long m_ulLastTimeCount; + short m_wHistoricSize; + short m_wHistoricHead; + short m_wRecordNumber; + void *m_pvHistoric; + INO_fn_wMethod m_pfnRead; +}; +struct IPT_tdstConvertValue_ { +}; +#define C_SOUNDVOL_MAXI 127 +enum IPT_E_KeyWord_ { + IPT_E_KeyWord_And=61441, + IPT_E_KeyWord_Or=61442, + IPT_E_KeyWord_Not=61443, + IPT_E_KeyWord_KeyJustPressed=61444, + IPT_E_KeyWord_KeyJustReleased=61445, + IPT_E_KeyWord_KeyPressed=61446, + IPT_E_KeyWord_KeyReleased=61447, + IPT_E_KeyWord_ActionJustValidated=61448, + IPT_E_KeyWord_ActionJustInvalidated=61449, + IPT_E_KeyWord_ActionValidated=61450, + IPT_E_KeyWord_ActionInvalidated=61451, + IPT_E_KeyWord_PadJustPressed=61452, + IPT_E_KeyWord_PadJustReleased=61453, + IPT_E_KeyWord_PadPressed=61454, + IPT_E_KeyWord_PadReleased=61455, + IPT_E_KeyWord_JoystickAxeValue=61456, + IPT_E_KeyWord_JoystickJustPressed=61457, + IPT_E_KeyWord_JoystickJustReleased=61458, + IPT_E_KeyWord_JoystickPressed=61459, + IPT_E_KeyWord_JoystickReleased=61460, + IPT_E_KeyWord_JoystickOrPadJustPressed=61461, + IPT_E_KeyWord_JoystickOrPadJustReleased=61462, + IPT_E_KeyWord_JoystickOrPadPressed=61463, + IPT_E_KeyWord_JoystickOrPadReleased=61464, + IPT_E_KeyWord_Sequence=61465, + IPT_E_KeyWord_SequenceKey=61466, + IPT_E_KeyWord_SequenceKeyEnd=61467, + IPT_E_KeyWord_SequencePad=61468, + IPT_E_KeyWord_SequencePadEnd=61469, + IPT_E_NumberOfKeyWord=61470 +}; +struct r3_math_interface { + undefined *field0_0x0; + undefined *field1_0x4; + undefined *field2_0x8; + undefined *field3_0xc; + undefined *float4x4_mul; + undefined *field5_0x14; + undefined *field6_0x18; + NormalizeFn *float3_normalize; + undefined *float4_normalize; + undefined *float2_transformXZ; + undefined *field10_0x28; + undefined *field11_0x2c; + undefined field12_0x30; + undefined field13_0x31; + undefined field14_0x32; + undefined field15_0x33; + undefined *field16_0x34; + undefined field17_0x38; + undefined field18_0x39; + undefined field19_0x3a; + undefined field20_0x3b; + undefined field21_0x3c; + undefined field22_0x3d; + undefined field23_0x3e; + undefined field24_0x3f; + undefined *field25_0x40; + undefined *field26_0x44; + undefined *field27_0x48; + undefined *field28_0x4c; + undefined *field29_0x50; + undefined *field30_0x54; + undefined *field31_0x58; + undefined field32_0x5c; + undefined field33_0x5d; + undefined field34_0x5e; + undefined field35_0x5f; + undefined *field36_0x60; + undefined *field37_0x64; + undefined field38_0x68; + undefined field39_0x69; + undefined field40_0x6a; + undefined field41_0x6b; + undefined *field42_0x6c; + undefined *field43_0x70; + undefined field44_0x74; + undefined field45_0x75; + undefined field46_0x76; + undefined field47_0x77; + undefined *field48_0x78; + undefined *field49_0x7c; + undefined field50_0x80; + undefined field51_0x81; + undefined field52_0x82; + undefined field53_0x83; + undefined field54_0x84; + undefined field55_0x85; + undefined field56_0x86; + undefined field57_0x87; + undefined field58_0x88; + undefined field59_0x89; + undefined field60_0x8a; + undefined field61_0x8b; + undefined field62_0x8c; + undefined field63_0x8d; + undefined field64_0x8e; + undefined field65_0x8f; + undefined field66_0x90; + undefined field67_0x91; + undefined field68_0x92; + undefined field69_0x93; + undefined field70_0x94; + undefined field71_0x95; + undefined field72_0x96; + undefined field73_0x97; + undefined field74_0x98; + undefined field75_0x99; + undefined field76_0x9a; + undefined field77_0x9b; + undefined field78_0x9c; + undefined field79_0x9d; + undefined field80_0x9e; + undefined field81_0x9f; + undefined field82_0xa0; + undefined field83_0xa1; + undefined field84_0xa2; + undefined field85_0xa3; + undefined field86_0xa4; + undefined field87_0xa5; + undefined field88_0xa6; + undefined field89_0xa7; + undefined field90_0xa8; + undefined field91_0xa9; + undefined field92_0xaa; + undefined field93_0xab; + undefined field94_0xac; + undefined field95_0xad; + undefined field96_0xae; + undefined field97_0xaf; + undefined field98_0xb0; + undefined field99_0xb1; + undefined field100_0xb2; + undefined field101_0xb3; + undefined field102_0xb4; + undefined field103_0xb5; + undefined field104_0xb6; + undefined field105_0xb7; + undefined field106_0xb8; + undefined field107_0xb9; + undefined field108_0xba; + undefined field109_0xbb; + undefined *field110_0xbc; + undefined *field111_0xc0; + undefined *field112_0xc4; + undefined *field113_0xc8; + undefined *field114_0xcc; + undefined *field115_0xd0; + undefined *field116_0xd4; + undefined *field117_0xd8; +}; +#define C_SOUNDSPACE_BACK 127 +struct GAM_astruct_4 { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + undefined field16_0x10; + undefined field17_0x11; + undefined field18_0x12; + undefined field19_0x13; + undefined field20_0x14; + undefined field21_0x15; + undefined field22_0x16; + undefined field23_0x17; + undefined field24_0x18; + undefined field25_0x19; + undefined field26_0x1a; + undefined field27_0x1b; + undefined field28_0x1c; + undefined field29_0x1d; + undefined field30_0x1e; + undefined field31_0x1f; + undefined field32_0x20; + undefined field33_0x21; + undefined field34_0x22; + undefined field35_0x23; + undefined field36_0x24; + undefined field37_0x25; + undefined field38_0x26; + undefined field39_0x27; + undefined field40_0x28; + undefined field41_0x29; + undefined field42_0x2a; + undefined field43_0x2b; + undefined field44_0x2c; + undefined field45_0x2d; + undefined field46_0x2e; + undefined field47_0x2f; + undefined field48_0x30; + undefined field49_0x31; + undefined field50_0x32; + undefined field51_0x33; + undefined field52_0x34; + undefined field53_0x35; + undefined field54_0x36; + undefined field55_0x37; + undefined field56_0x38; + undefined field57_0x39; + undefined field58_0x3a; + undefined field59_0x3b; + undefined field60_0x3c; + undefined field61_0x3d; + undefined field62_0x3e; + undefined field63_0x3f; + undefined field64_0x40; + undefined field65_0x41; + undefined field66_0x42; + undefined field67_0x43; + undefined field68_0x44; + undefined field69_0x45; + undefined field70_0x46; + undefined field71_0x47; + undefined field72_0x48; + undefined field73_0x49; + undefined field74_0x4a; + undefined field75_0x4b; + undefined field76_0x4c; + undefined field77_0x4d; + undefined field78_0x4e; + undefined field79_0x4f; + undefined field80_0x50; + undefined field81_0x51; + undefined field82_0x52; + undefined field83_0x53; + undefined field84_0x54; + undefined field85_0x55; + undefined field86_0x56; + undefined field87_0x57; + undefined field88_0x58; + undefined field89_0x59; + undefined field90_0x5a; + undefined field91_0x5b; + undefined field92_0x5c; + undefined field93_0x5d; + undefined field94_0x5e; + undefined field95_0x5f; + undefined field96_0x60; + undefined field97_0x61; + undefined field98_0x62; + undefined field99_0x63; + undefined field100_0x64; + undefined field101_0x65; + undefined field102_0x66; + undefined field103_0x67; + struct GAM_as4_inner field104_0x68[4]; + undefined field105_0x188; + undefined field106_0x189; + undefined field107_0x18a; + undefined field108_0x18b; + undefined field109_0x18c; + undefined field110_0x18d; + undefined field111_0x18e; + undefined field112_0x18f; + undefined field113_0x190; + undefined field114_0x191; + undefined field115_0x192; + undefined field116_0x193; + undefined field117_0x194; + undefined field118_0x195; + undefined field119_0x196; + undefined field120_0x197; +}; +typedef struct _tdstRefRes tdstRefRes; +struct tdstCsaList_ { +}; +#define C_ROLLOFFPARAM_INFINITE 2147483647 +#define INO_C_uwKeyboard 8 +#define C_wTimerPaused 4 +struct _tdstRangeSplitListDisk { +}; +#define __STDC__ 1 +#define C_SNDREAL_0 0 +#define C_SNDREAL_1 65536 +#define C_ucTrue 255 +struct GLD_Viewport { + struct GLD_ViewportAttributes stViewAttrib; + unsigned char bIsLocked; +}; +#define INO_C_wNbMaxAxis 6 +struct tdstProhibit_ { +}; +struct tdstFootPath_ { +}; +#define INO_C_uwUnknown 0 +typedef enum tdeObjectTreeInit_ tdeObjectTreeInit; +typedef struct _tdstRangeSplitMem tdstRangeSplitMem; +typedef long SND_FileAsyncHandle; +typedef struct _SampleParam SampleParam; +struct levelFixStructInner { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + int fixClass; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; + undefined field26_0x1d; + undefined field27_0x1e; + undefined field28_0x1f; + undefined field29_0x20; + undefined field30_0x21; + undefined field31_0x22; + undefined field32_0x23; + undefined field33_0x24; + undefined field34_0x25; + undefined field35_0x26; + undefined field36_0x27; + undefined field37_0x28; + undefined field38_0x29; + undefined field39_0x2a; + undefined field40_0x2b; + undefined field41_0x2c; + undefined field42_0x2d; + undefined field43_0x2e; + undefined field44_0x2f; + undefined field45_0x30; + undefined field46_0x31; + undefined field47_0x32; + undefined field48_0x33; + undefined field49_0x34; + undefined field50_0x35; + undefined field51_0x36; + undefined field52_0x37; + undefined field53_0x38; + undefined field54_0x39; + undefined field55_0x3a; + undefined field56_0x3b; + undefined field57_0x3c; + undefined field58_0x3d; + undefined field59_0x3e; + undefined field60_0x3f; + undefined field61_0x40; + undefined field62_0x41; + undefined field63_0x42; + undefined4 field64_0x43; +}; +#define C_NB_MAX_DEVICES 16 +struct r3_main_data { + bool field0_0x0; + bool field1_0x1; + char gameDataDir[260]; +}; +struct GAM_tdstLanguageStructure { + char szLanguageCode[20]; + char szLanguageText[20]; +}; +struct _tdstTypeRandomMem { +}; +typedef struct _SND_tdstBlockEvent *SND_tdxHandleToSoundEvent; +struct FIL_FileHeader { + unsigned long ulWidth; + unsigned long ulHeight; + unsigned long ulImageSize; + long lChromakeyIndex; + unsigned short uwNbColorInPalette; + unsigned char ucBpcInPalette; + unsigned char ucBpp; + unsigned char ucRLECode; + unsigned char ucRed; + unsigned char ucGreen; + unsigned char ucBlue; + unsigned char ucFormat; + unsigned char ucVersion; +}; +struct FIL_GF { + struct FIL_FileHeader stFileHeader; + unsigned char *p_ucBitMap; + unsigned char *p_ucPalette; +}; +#define POS_C_xIdentity 65535 +#define IPT_C_NoCommand 0 +struct _tdstTypeSequenceDisk { +}; +#define C_FirstFreeValueForBlockWithoutFree 4294967295 +typedef struct _SND_tdstCallback SND_tdstCallback; +#define IPT_C_QWERTYKeyBoardType 2 +struct windowInnerUnkParams { + int field0_0x0; /* Init equal to field_0x8 */ + int field1_0x4; /* Init equal to field_0xc */ + int field2_0x8; + int field3_0xc; + undefined4 field4_0x10; + int field5_0x14; + undefined4 field6_0x18; + int field7_0x1c; + int field8_0x20; + unsigned int field9_0x24; + int field10_0x28; + unsigned int field11_0x2c; + int unk2_100; + int unk3_100; + int field14_0x38; + int field15_0x3c; + int field16_0x40; + int field17_0x44; + int unk5_0; + int unk1_1000; /* width? */ + int unk4_0; + int unk0_1000; /* height? */ + int unk6_0; + int unk7_0; + undefined4 unk1_0; + unsigned int unk_ffffffff; + undefined *unk0_0; /* set from r3_wndUnk1 */ + undefined field27_0x6c; + undefined field28_0x6d; + undefined field29_0x6e; + undefined field30_0x6f; +}; +struct GLI_tdstMaterial { + unsigned long ulMaterialType; + struct GEO_tdstColor stAmbient; + struct GEO_tdstColor stDiffuse; + struct GEO_tdstColor stSpecular; + struct GEO_tdstColor stColor; + long lSpecularExponent; + struct GLI_Texture *p_stTexture; + float xAddU; + float xAddV; + float xConstantAddU; + float xConstantAddV; + long lIncrementIsEnable; + unsigned long dwActualRefreshNumber; + struct GLI_tdstAnimatedTextureNode *p_stFirstAnimatedTextureNode; + struct GLI_tdstAnimatedTextureNode *p_stActualAnimatedTextureNode; + long lNumberOfDisplayNode; + float xActualDisplayTimeSinceStartOfLastTexture; + ACP_tdxBool xIsLocked; +}; +#define C_ulTimerEventOneTime 0 +typedef struct tdstLipsSynchroTable_ *tdxHandleOfLipsSynchroTable; +struct tdstAlwaysModelList_ { +}; +#define C_p_cBlockNotValidKey 4294967295 +typedef struct _tdstSwitchList tdstSwitchList; +struct r3_astruct_2 { + struct GLI_Camera *camera0; + float f1; + float f2; + float f3; + struct IDirect3DSurface8 *d3dSurface; +}; +struct tdstZdxList_ { +}; +typedef struct _s_FuncInfo FuncInfo; +#define IPT_C_UnknownKeyBoardType 0 +#define INO_C_wAllDevices 1 +#define POS_C_xTranslationRotationScale 15 +#define C_ulTimerEventPeriodic 1 +typedef struct tdstAChannel_ *CHN_tdxHandleToChannel; +#define NO_REVERB 0 +#define SND_ENUM_ALIGNEMENT 321148536 +typedef struct _tdstRangeSplitListDisk tdstRangeSplitListDisk; +struct tdstParticleGenerator_ { +}; +typedef struct tdstViewportManagement_ *tdxHandleToViewportManagement; +#define C_wTimerFrequencyHigh 2 +struct levelFixStruct { + unsigned char field0_0x0; /* stripped of usually */ + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + int fixClass; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; + undefined field26_0x1d; + undefined field27_0x1e; + undefined field28_0x1f; + undefined field29_0x20; + undefined field30_0x21; + undefined field31_0x22; + undefined field32_0x23; + undefined field33_0x24; + undefined field34_0x25; + undefined field35_0x26; + undefined field36_0x27; + undefined field37_0x28; + undefined field38_0x29; + undefined field39_0x2a; + undefined field40_0x2b; + undefined field41_0x2c; + undefined field42_0x2d; + undefined field43_0x2e; + undefined field44_0x2f; + undefined field45_0x30; + undefined field46_0x31; + undefined field47_0x32; + undefined field48_0x33; + undefined field49_0x34; + undefined field50_0x35; + undefined field51_0x36; + undefined field52_0x37; + undefined field53_0x38; + undefined field54_0x39; + undefined field55_0x3a; + undefined field56_0x3b; + undefined field57_0x3c; + undefined field58_0x3d; + undefined field59_0x3e; + undefined field60_0x3f; + undefined field61_0x40; + undefined field62_0x41; + undefined field63_0x42; + undefined field64_0x43; + undefined4 field65_0x44; +}; +typedef struct _tdstTypeRandomMem tdstTypeRandomMem; +#define C_ucDROP_OBJECT_EVENT 4 +struct tdstLastErrorInfo { + unsigned short lastErr; + char ucLastFailedModuleId; + unsigned int ulChannelId; +}; +#define C_SOUNDSPACE_FRONT 0 +typedef struct _tdstTypeSequenceDisk tdstTypeSequenceDisk; +struct INO_unk_joy { + unsigned char field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + int field4_0x4; + undefined field5_0x8; + undefined field6_0x9; + undefined field7_0xa; + undefined field8_0xb; + undefined field9_0xc; + undefined field10_0xd; + undefined field11_0xe; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; + undefined field26_0x1d; + undefined field27_0x1e; + undefined field28_0x1f; + undefined field29_0x20; + undefined field30_0x21; + undefined field31_0x22; + undefined field32_0x23; + undefined field33_0x24; + undefined field34_0x25; + undefined field35_0x26; + undefined field36_0x27; + undefined field37_0x28; + undefined field38_0x29; + undefined field39_0x2a; + undefined field40_0x2b; + undefined field41_0x2c; + undefined field42_0x2d; + undefined field43_0x2e; + undefined field44_0x2f; + undefined field45_0x30; + undefined field46_0x31; + undefined field47_0x32; + undefined field48_0x33; + undefined field49_0x34; + undefined field50_0x35; + undefined field51_0x36; + undefined field52_0x37; + undefined field53_0x38; + undefined field54_0x39; + undefined field55_0x3a; + undefined field56_0x3b; + undefined field57_0x3c; + undefined field58_0x3d; + undefined field59_0x3e; + undefined field60_0x3f; + undefined field61_0x40; + undefined field62_0x41; + undefined field63_0x42; + undefined field64_0x43; + undefined field65_0x44; + undefined field66_0x45; + undefined field67_0x46; + undefined field68_0x47; + undefined field69_0x48; + undefined field70_0x49; + undefined field71_0x4a; + undefined field72_0x4b; + undefined field73_0x4c; + undefined field74_0x4d; + undefined field75_0x4e; + undefined field76_0x4f; + undefined field77_0x50; + undefined field78_0x51; + undefined field79_0x52; + undefined field80_0x53; + unsigned char field81_0x54; + undefined field82_0x55; + unsigned char field83_0x56; + undefined field84_0x57; + undefined field85_0x58; + unsigned char field86_0x59; + undefined field87_0x5a; + undefined field88_0x5b; + int field89_0x5c; + int field90_0x60; + undefined field91_0x64; + undefined field92_0x65; + undefined field93_0x66; + undefined field94_0x67; + undefined field95_0x68; + undefined field96_0x69; + undefined field97_0x6a; + undefined field98_0x6b; + int field99_0x6c; + int field100_0x70; + int field101_0x74; + int field102_0x78; + int field103_0x7c; + unsigned char field104_0x80; + undefined field105_0x81; + undefined field106_0x82; + undefined field107_0x83; + undefined field108_0x84; + undefined field109_0x85; + undefined field110_0x86; + undefined field111_0x87; + undefined field112_0x88; + undefined field113_0x89; + undefined field114_0x8a; + undefined field115_0x8b; + undefined field116_0x8c; + undefined field117_0x8d; + undefined field118_0x8e; + undefined field119_0x8f; + undefined field120_0x90; + undefined field121_0x91; + undefined field122_0x92; + undefined field123_0x93; + undefined field124_0x94; + undefined field125_0x95; + undefined field126_0x96; + undefined field127_0x97; + undefined field128_0x98; + undefined field129_0x99; + undefined field130_0x9a; + undefined field131_0x9b; + undefined field132_0x9c; + undefined field133_0x9d; + undefined field134_0x9e; + undefined field135_0x9f; + undefined field136_0xa0; + undefined field137_0xa1; + undefined field138_0xa2; + undefined field139_0xa3; + undefined field140_0xa4; + undefined field141_0xa5; + undefined field142_0xa6; + undefined field143_0xa7; + undefined field144_0xa8; + undefined field145_0xa9; + undefined field146_0xaa; + undefined field147_0xab; + undefined field148_0xac; + undefined field149_0xad; + undefined field150_0xae; + undefined field151_0xaf; + undefined field152_0xb0; + undefined field153_0xb1; + undefined field154_0xb2; + undefined field155_0xb3; + undefined field156_0xb4; + undefined field157_0xb5; + undefined field158_0xb6; + undefined field159_0xb7; + undefined field160_0xb8; + undefined field161_0xb9; + undefined field162_0xba; + undefined field163_0xbb; + undefined field164_0xbc; + undefined field165_0xbd; + undefined field166_0xbe; + undefined field167_0xbf; + undefined field168_0xc0; + undefined field169_0xc1; + undefined field170_0xc2; + undefined field171_0xc3; + undefined field172_0xc4; + undefined field173_0xc5; + undefined field174_0xc6; + undefined field175_0xc7; + undefined field176_0xc8; + undefined field177_0xc9; + undefined field178_0xca; + undefined field179_0xcb; + undefined field180_0xcc; + undefined field181_0xcd; + undefined field182_0xce; + undefined field183_0xcf; + undefined field184_0xd0; + undefined field185_0xd1; + undefined field186_0xd2; + undefined field187_0xd3; + undefined field188_0xd4; + undefined field189_0xd5; + undefined field190_0xd6; + undefined field191_0xd7; + undefined field192_0xd8; + undefined field193_0xd9; + undefined field194_0xda; + undefined field195_0xdb; + undefined field196_0xdc; + undefined field197_0xdd; + undefined field198_0xde; + undefined field199_0xdf; + undefined field200_0xe0; + undefined field201_0xe1; + undefined field202_0xe2; + undefined field203_0xe3; + undefined field204_0xe4; + undefined field205_0xe5; + undefined field206_0xe6; + undefined field207_0xe7; + undefined field208_0xe8; + undefined field209_0xe9; + undefined field210_0xea; + undefined field211_0xeb; + undefined field212_0xec; + undefined field213_0xed; + undefined field214_0xee; + undefined field215_0xef; + undefined field216_0xf0; + undefined field217_0xf1; + undefined field218_0xf2; + undefined field219_0xf3; + undefined field220_0xf4; + undefined field221_0xf5; + undefined field222_0xf6; + undefined field223_0xf7; + undefined field224_0xf8; + undefined field225_0xf9; + undefined field226_0xfa; + undefined field227_0xfb; + undefined field228_0xfc; + undefined field229_0xfd; + undefined field230_0xfe; + undefined field231_0xff; + undefined field232_0x100; + undefined field233_0x101; + undefined field234_0x102; + undefined field235_0x103; + undefined field236_0x104; + undefined field237_0x105; + undefined field238_0x106; + undefined field239_0x107; + undefined field240_0x108; + undefined field241_0x109; + undefined field242_0x10a; + undefined field243_0x10b; + undefined field244_0x10c; + undefined field245_0x10d; + undefined field246_0x10e; + undefined field247_0x10f; + undefined field248_0x110; + undefined field249_0x111; + undefined field250_0x112; + undefined field251_0x113; + undefined field252_0x114; + undefined field253_0x115; + undefined field254_0x116; + undefined field255_0x117; + undefined field256_0x118; + undefined field257_0x119; + undefined field258_0x11a; + undefined field259_0x11b; + undefined field260_0x11c; + undefined field261_0x11d; + undefined field262_0x11e; + undefined field263_0x11f; + undefined field264_0x120; + undefined field265_0x121; + undefined field266_0x122; + undefined field267_0x123; +}; +struct LST2_tdstAnchorTotdxHandleToTransitionSLk { + tdxHandleToTransition hFirstElementSLk; + tdxHandleToTransition hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef struct _tdstTypeSwitchDisk tdstTypeSwitchDisk; +#define POS_C_xRotation 2 +#define C_SOUNDVOL_MINI 0 +typedef struct levelFixStruct *relPtr; +struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk { + MC_tdxHandleToMainCharacterNode hFirstElementSLk; + MC_tdxHandleToMainCharacterNode hLastElementSLk; + long lNumberOfElementsSLk; +}; +struct GEO_tdstBoundingSphere { +}; +typedef struct GLD_Viewport GLD_tdstViewport; +typedef struct tdstZdxList_ *ZDX_tdxHandleToZdxList; +#define C_ulDefaultMaxNbStaticMalloc 100000 +typedef struct _SND_tdstFormat SND_tdstFormat; #endif // GH_GENERATED_STRUCTS_H diff --git a/game_re/r3/binders/dbg_mem.h b/game_re/r3/binders/dbg_mem.h index d6a00618..04f05dc9 100644 --- a/game_re/r3/binders/dbg_mem.h +++ b/game_re/r3/binders/dbg_mem.h @@ -1,6 +1,7 @@ #ifndef BD364AE6_AD96_4DEA_9D6B_B237BC1E2C6A #define BD364AE6_AD96_4DEA_9D6B_B237BC1E2C6A +#include #include template inline constexpr void checkMappedMemory() { @@ -8,8 +9,9 @@ template inline constexpr void checkMappedMemory() { static_assert(addr < GH_DATA_END, "Address outside upper bound"); } +uint8_t *gh_map_dbg_mem(size_t addr); void gh_init_dbg_loader(); -#define GH_MEM(addr) (checkMappedMemory(), *memoryMapSafe(addr)) +#define GH_MEM(addr) (checkMappedMemory(), *gh_map_dbg_mem(addr)) #endif /* BD364AE6_AD96_4DEA_9D6B_B237BC1E2C6A */ diff --git a/game_re/r3/binders/global.h b/game_re/r3/binders/global.h index 85da3243..8a8f9d8f 100644 --- a/game_re/r3/binders/global.h +++ b/game_re/r3/binders/global.h @@ -4,11 +4,13 @@ #define EDBE48FC_B879_4985_9274_B7ACF24AD024 #include "base.h" + #if RE_DBG_INJECTED #include "dbg_mem.h" #else #include "static_mem.h" #endif + #include #endif /* EDBE48FC_B879_4985_9274_B7ACF24AD024 */ diff --git a/game_re/r3/binders/stub.h b/game_re/r3/binders/stub.h index bd8f8d2b..2e8f347a 100644 --- a/game_re/r3/binders/stub.h +++ b/game_re/r3/binders/stub.h @@ -13,7 +13,7 @@ template T gh_stub_impl_cdecl(void *ptr_, Args... args) { #if RE_DBG_INJECTED using Callable = __cdecl T (*)(Args...); - static Callable *fn = (Callable *)gh_stub_impl_ptr(ptr_); + static Callable fn = (Callable)gh_stub_impl_ptr(ptr_); return fn(args...); #else throw GHStubException("Function not implemented"); @@ -24,7 +24,7 @@ template T gh_stub_impl_stdcall(void *ptr_, Args... args) { #if RE_DBG_INJECTED using Callable = __stdcall T (*)(Args...); - static Callable *fn = (Callable *)gh_stub_impl_ptr(ptr_); + static Callable fn = (Callable)gh_stub_impl_ptr(ptr_); return fn(args...); #else throw GHStubException("Function not implemented"); diff --git a/game_re/scan_sources b/game_re/scan_sources index 984a2479..4a63656d 100644 --- a/game_re/scan_sources +++ b/game_re/scan_sources @@ -3,20 +3,24 @@ script_dir=$(readlink -f $(dirname "$0")) tool=$script_dir/../tooling/bin/r3_gh_tool set -e +shopt -s nullglob pushd $script_dir mkdir -p logs types=(auto ref fix stub) for type in "${types[@]}"; do - file_list="logs/files_${type}.txt" - rm -f "$file_list" - if [ -d "gh_${type}" ]; then + file_list="logs/files_${type}.txt" + rm -f "$file_list" + any_files=false for file in "gh_${type}"/*.cxx; do echo "$file" >>"$file_list" + any_files=true done - $tool "@$file_list" -v --type=$type --log-file=logs/log-functions-${type}.txt + if [ "$any_files" = true ]; then + $tool "@$file_list" -v --type=$type --log-file=logs/log-functions-${type}.txt + fi fi done diff --git a/game_re/type_blacklist.txt b/game_re/type_blacklist.txt index 314cb45d..633205a8 100644 --- a/game_re/type_blacklist.txt +++ b/game_re/type_blacklist.txt @@ -1,4 +1,18 @@ GUID _GUID CLSID -LPCGUID \ No newline at end of file +LPCGUID +ImageBaseOffset32 +pointer32 +define__WIN32_WINNT +define_LZERROR_GLOBLOCK +define_LZERROR_READ +define_COM_NO_WINDOWS_H +define__X86_ +define_LZERROR_UNKNOWNALG +define___cplusplus +define___STDC_HOSTED__ +define_WINVER +define__MSC_VER +define__WIN32_WINNT +define__M_IX86 \ No newline at end of file diff --git a/game_re/type_path_blacklist.txt b/game_re/type_path_blacklist.txt index 837048e9..572e6155 100644 --- a/game_re/type_path_blacklist.txt +++ b/game_re/type_path_blacklist.txt @@ -83,4 +83,5 @@ winsvc.h winuser.h winver.h wtypes.h -dinput.h \ No newline at end of file +dinput.h +lzexpand.h \ No newline at end of file diff --git a/java/ghidra/re3lib/DataTypeWriter.java b/java/ghidra/re3lib/DataTypeWriter.java index 101202bc..2ff37189 100644 --- a/java/ghidra/re3lib/DataTypeWriter.java +++ b/java/ghidra/re3lib/DataTypeWriter.java @@ -1,8 +1,6 @@ // Source code is decompiled from a .class file using FernFlower decompiler. package re3lib; -import ghidra.app.script.GhidraScript; -import ghidra.app.script.ScriptMessage; import ghidra.program.model.data.*; import ghidra.program.model.data.Enum; import ghidra.util.Msg; @@ -13,7 +11,8 @@ import java.io.Writer; import java.util.*; public class DataTypeWriter { - public HashSet blacklistedTypes; + public HashSet requiredFunctionTypes; + public HashMap lazyFunctionTypeBlocks; private static String[] INTEGRAL_TYPES = new String[] { "char", "short", "int", "long", "long long", "__int64", "float", "double", "long double", "void" }; @@ -54,7 +53,6 @@ public class DataTypeWriter { public DataTypeWriter(DataTypeManager dtm, Writer writer, AnnotationHandler annotator, boolean cppStyleComments) throws IOException { - this.blacklistedTypes = new HashSet<>(); this.cppStyleComments = false; this.dtm = dtm; if (dtm != null) { @@ -68,6 +66,8 @@ public class DataTypeWriter { this.writer = writer; this.annotator = annotator; this.cppStyleComments = cppStyleComments; + this.requiredFunctionTypes = new HashSet<>(); + this.lazyFunctionTypeBlocks = new HashMap<>(); } private String comment(String text) { @@ -118,7 +118,7 @@ public class DataTypeWriter { for (DataType dataType : dataTypes) { monitor.checkCancelled(); - if (dataType == null || blacklistedTypes.contains(dataType.getDisplayName())) { + if (dataType == null) { continue; } @@ -138,7 +138,20 @@ public class DataTypeWriter { monitor.setProgress((long) cnt); } - // Step 2: Topological sort and write + // Step 2: Check if we're missing any function type typedefs + for (String funcName : requiredFunctionTypes) { + if (!blocks.containsKey(funcName)) { + FunctionDefinition funcType = lazyFunctionTypeBlocks.get(funcName); + + Set dependencies = new HashSet<>(); + StringBuilder code = new StringBuilder(); + this.writeFunctionDefinitionBlock(funcType, funcName, code, dependencies); + blocks.put(funcName, new Block(funcType, code.toString(), dependencies)); + } + } + + + // Step 3: Topological sort and write List sortedBlocks = topologicalSort(blocks); for (Block block : sortedBlocks) { writer.write(block.code); @@ -157,9 +170,9 @@ public class DataTypeWriter { Set dependencies = new HashSet<>(); StringBuilder code = new StringBuilder(); - if (dt.getDisplayName().contains("HIE_tduLinkedObject")) { - System.out.println("DEBUG " + dt.getDisplayName()); - } + // if (dt.getDisplayName().contains("HIE_tduLinkedObject")) { + // System.out.println("DEBUG " + dt.getDisplayName()); + // } if (dt.equals(DataType.DEFAULT)) { code.append("typedef unsigned char ").append(DataType.DEFAULT.getName()).append(";"); @@ -176,12 +189,16 @@ public class DataTypeWriter { } else if (dt instanceof Union) { writeUnionBlock((Union) dt, code, dependencies); } else if (dt instanceof Enum) { + if(dt.getDisplayName().contains(".conflict")) + return null; writeEnumBlock((Enum) dt, code, dependencies); } else if (dt instanceof TypeDef) { writeTypeDefBlock((TypeDef) dt, code, dependencies); } else if (dt instanceof BuiltInDataType) { writeBuiltInBlock((BuiltInDataType) dt, code, dependencies); } else if (dt instanceof FunctionDefinition) { + // Store these for later, a lot of them are going to be unused + lazyFunctionTypeBlocks.put(dt.getDisplayName(), (FunctionDefinition) dt); return null; } else { code.append(comment("Unable to write datatype. Type unrecognized: " + dt.getClass())); @@ -248,6 +265,9 @@ public class DataTypeWriter { DataType depType = getImmediateDependencyType(componentDataType); if (depType != null) { dependencies.add(depType.getDisplayName()); + if(depType instanceof FunctionDefinition) { + requiredFunctionTypes.add(depType.getDisplayName()); + } } code.append(getTypeDeclaration(fieldName, componentDataType, component.getLength())); @@ -300,7 +320,7 @@ public class DataTypeWriter { } } - private void writeFunctionDefinitionBlock(FunctionDefinition funcDef, String name, StringBuilder code, + private boolean writeFunctionDefinitionBlock(FunctionDefinition funcDef, String name, StringBuilder code, Set dependencies) { DataType returnType = funcDef.getReturnType(); ParameterDefinition[] params = funcDef.getArguments(); @@ -351,20 +371,29 @@ public class DataTypeWriter { } code.append(");"); + return true; } - private void writeTypeDefBlock(TypeDef typeDef, StringBuilder code, Set dependencies) { + private boolean writeTypeDefBlock(TypeDef typeDef, StringBuilder code, Set dependencies) { String typedefName = typeDef.getDisplayName(); DataType dataType = typeDef.getDataType(); - String dataTypeName = dataType.getDisplayName(); // Handle function definition typedefs if (dataType instanceof FunctionDefinition) { - writeFunctionDefinitionBlock((FunctionDefinition) dataType, typedefName, code, dependencies); + return writeFunctionDefinitionBlock((FunctionDefinition) dataType, typedefName, code, dependencies); } // Could be pointer to function - else if (dataType instanceof Pointer && ((Pointer) dataType).getDataType() instanceof FunctionDefinition) { - writeFunctionDefinitionBlock((FunctionDefinition) ((Pointer) dataType).getDataType(), typedefName, code, - dependencies); + else if (dataType instanceof Pointer) { + Pointer ptr = (Pointer) dataType; + if (ptr.getDataType() instanceof FunctionDefinition) { + return writeFunctionDefinitionBlock((FunctionDefinition) ((Pointer) dataType).getDataType(), typedefName, code, + dependencies); + } else { + // Try to write the typedef as a forward declaration + code.append("typedef "); + code.append(getTypeDeclaration(typedefName, dataType, -1)); + code.append(";"); + return true; + } } else { DataType depType = getImmediateDependencyType(dataType); if (depType != null && !isBuiltInType(depType)) { @@ -373,6 +402,7 @@ public class DataTypeWriter { String typedefString = getTypeDeclaration(typedefName, dataType, -1); code.append("typedef ").append(typedefString).append(";"); + return true; } } diff --git a/java/ghidra/re3lib/TypeDumper.java b/java/ghidra/re3lib/TypeDumper.java index fcb32bdc..9e244a19 100644 --- a/java/ghidra/re3lib/TypeDumper.java +++ b/java/ghidra/re3lib/TypeDumper.java @@ -13,6 +13,7 @@ import ghidra.program.model.data.Composite; import ghidra.program.model.data.DataType; import ghidra.program.model.data.Enum; import ghidra.program.model.data.EnumDataType; +import ghidra.program.model.data.FunctionDefinition; import ghidra.program.model.data.ProgramBasedDataTypeManager; import ghidra.program.model.data.Structure; import ghidra.program.model.data.TypeDef; @@ -86,24 +87,24 @@ public class TypeDumper { continue; if (dt instanceof Structure || dt instanceof TypeDef || dt instanceof EnumDataType - || dt instanceof Union || dt instanceof Enum) { + || dt instanceof Union || dt instanceof Enum || dt instanceof FunctionDefinition) { - if (dt.getDisplayName().contains("NormalizeFn")) + if (dt.getDisplayName().contains("NormalizeFn") || dt.getDisplayName().contains("_M_IX86")) script.println("DEBUG " + dt.getDisplayName() + " - " + dt.getClass().getSimpleName()); - if (dt.getDisplayName().contains("tdstObjectTypeElement_") || - dt.getDisplayName().contains("ObjectTypeElementHandle")) + // if (dt.getDisplayName().contains("tdstObjectTypeElement_") || + // dt.getDisplayName().contains("ObjectTypeElementHandle")) - filteredTypes.add(dt); + filteredTypes.add(dt); } // } } - String s = ""; - for (DataType dataType : filteredTypes) { - s += dataType.getDisplayName() + ", "; - } - script.println(s); + // String s = ""; + // for (DataType dataType : filteredTypes) { + // s += dataType.getDisplayName() + ", "; + // } + // script.println(s); try (PrintWriter writer = new PrintWriter(new File(RemanConfig.INSTANCE.outputDir, "gh_types.h"), "UTF-8")) { @@ -112,7 +113,6 @@ public class TypeDumper { writer.println("#include "); DataTypeWriter dtw = new DataTypeWriter(dtm, writer); - dtw.blacklistedTypes = typeBlacklist; dtw.write(filteredTypes, script.getMonitor()); Utils.headerGuardPost(writer, "STRUCTS");