Home Risen Risen2 Risen3 Forum English Russian

Registrieren Hilfe Kalender Heutige Beiträge
Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 38
  1. #1 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
    Type, class, and property names are no longer stored as strings. The engine uses the DJB2 hash function to generate unique hashes (an exception is raised in case of a hash collision).

    There are three functions:
    • ASCII
      Code:
      unsigned long __stdcall djb2a(char const * name) {
          unsigned long hash = 5381;
          if (name)
              while (*name)
                  hash += (hash << 5) + *name++;
          return hash;
      }
    • Unicode:
      Code:
      unsigned long __stdcall djb2w(wchar_t const * name) {
          unsigned long hash = 5381;
          if (name)
              while (*name)
                  hash += (hash << 5) + *name++;
          return hash;
      }
    • and a special one that is lowercase and ignores everything from '%' and the following character to the next '.' (therefore ignoring case and "tags" in file names):
      Code:
      unsigned long __stdcall djb2x(char const * name) {
          if (!name)
              return 0;
          {
              unsigned long hash = 5381;
              while (*name) {
                  if ('%' == *name) {
                      if (!*++name)
                          return hash;
                      while (*++name)
                          if ('.' == *name)
                              break;
                  }
                  hash += (hash << 5) + tolower(*name++);
              }
              return hash;
          }
      }

    The hash values of registered run-time types and enumeration names are listed in post #26.
    The values of registered run-time enumeration names are listed in post #25.

    Let's have a look at the "compiled headers" format (*.whdr)
    Code:
    ArchiveHeader {
        char8_t  Magic[4];   // "GAR3"
        uint32_t _reserved;  // 0x00000000
    }
    char8_t  Magic[4];  // "GH15"
    uint32_t Count;
    for( Count ) {
        Name {
            uint16_t Length;
            char8_t  String[Length];
        }
        char8_t  ClassRevision[4];
        uint23_t DataSize;
        uint32_t DataOffset;
        uint16_t _unknown1;
        uint32_t RawDateTime[2];       // FILETIME with high/low swapped
        uint32_t _unknown2[2];
        uint32_t _unknown3[2];         // FILETIME with high/low swapped
        uint32_t TimeLastModified[2];  // FILETIME with high/low swapped
        Object {
            char8_t  Magic[4];  // "GEC0"
            uint32_t ClassHash;
            uint16_t Version;
            uint32_t PropSize;
            uint32_t DataSize;
            Prop {
                uint32_t Size;
                {
                    uint16_t Count;
                    for( Count ) {
                        uint32_t TypeHash;
                        uint32_t NameHash;
                        uint32_t Size;
                        uint8_t  Data[Size];
                    }
                }
            }
            Data[] {
                uint32_t ClassHash;
                uint16_t Version;
                uint32_t Size;
                uint8_t  Data[Size];
            }
        }
    }
    As you might notice there is no longer a string table in the archive. And the object persistence has changed a bit.

    Two resource formats:
    • Compiled Images (*._ximg):
      Code:
      ArchiveHeader {
          char8_t  Magic[4];   // "GAR3"
          uint32_t _reserved;  // 0x00000000
      }
      ResourceHeader {
          char8_t  Magic[4];          // "GR01"
          char8_t  ClassRevision[4];
          uint32_t ObjectOffset;
          uint32_t ObjectSize;
          uint32_t DataOffset;
          uint32_t DataSize;
          uint64_t RawDateTime;       // (FILETIME)
          char8_t  RawFileExt[8];     // ".dds", ".png", ".tga"
      }
      ResourceObject {
          char8_t  Magic[4];   // "GEC0"
          uint32_t ClassHash;  // 0x251EC780 -> "class eCImageResource2"
          uint16_t Version;    // 0x0001
          uint32_t PropSize;
          uint32_t DataSize;
          Prop {
              uint32_t Size;
              {
                  // 0x0B888030, 0x0E60A085, 0x00000004 { 0x________ }             -> "int"                "Width"
                  // 0x0B888030, 0xB73174BE, 0x00000004 { 0x________ }             -> "int"                "Height"
                  // 0xB23C93CD, 0x3EA71CD5, 0x00000004 { 0x________ }             -> "unsigned int"       "SkipMips"
                  // 0x9A8892EC, 0x35F9A530, 0x00000008 { 0x________, 0x________ } -> "enum eEColorFormat" "PixelFormat"
                  //                                      0xA09E2086, 0x00000000   ->                                    "eEColorFormat_Unknown"
                  //                                      0xC43B9B72, 0x00000015   ->                                    "eEColorFormat_A8R8G8B8"
                  //                                      0xFE25BBA9, 0x00000016   ->                                    "eEColorFormat_X8R8G8B8"
                  //                                      0xE317BC19, 0x00000018   ->                                    "eEColorFormat_X1R5G5B5"
                  //                                      0xA92D9BE2, 0x00000019   ->                                    "eEColorFormat_A1R5G5B5"
                  //                                      0x900A3562, 0x0000001A   ->                                    "eEColorFormat_A4R4G4B4"
                  //                                      0x05580235, 0x0000006F   ->                                    "eEColorFormat_R16F"
                  //                                      0xD8D4A203, 0x00000070   ->                                    "eEColorFormat_G16R16F"
                  //                                      0x0F978AB4, 0x00000071   ->                                    "eEColorFormat_A16B16G16R16F"
                  //                                      0x05580A33, 0x00000072   ->                                    "eEColorFormat_R32F"
                  //                                      0xDD36993F, 0x00000073   ->                                    "eEColorFormat_G32R32F"
                  //                                      0x985EF62C, 0x00000074   ->                                    "eEColorFormat_A32B32G32R32F"
                  //                                      0x0550FE97, 0x31545844   ->                                    "eEColorFormat_DXT1"
                  //                                      0x0550FE98, 0x32545844   ->                                    "eEColorFormat_DXT2"
                  //                                      0x0550FE99, 0x33545844   ->                                    "eEColorFormat_DXT3"
                  //                                      0x0550FE9A, 0x34545844   ->                                    "eEColorFormat_DXT4"
                  //                                      0x0550FE9B, 0x35545844   ->                                    "eEColorFormat_DXT5"
                  uint16_t Count;
                  for( Count ) {
                      uint32_t TypeHash;
                      uint32_t NameHash;
                      uint32_t Size;
                      uint8_t  Data[Size];
                  }
              }
          }
          Data {
              eCImageResource2 {
                  uint32_t ClassHash;  // 0x251EC780 -> "class eCImageResource2"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000020
                  uint8_t  Data[Size];
              }
              eCResource2 {
                  uint32_t ClassHash;  // 0x7BF929DD -> "class eCResource2"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000000
                  uint8_t  Data[Size];
              }
              bCObjectBase {
                  uint32_t ClassHash;  // 0x84ADA072 -> "class bCObjectBase"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000000
                  uint8_t  Data[Size];
              }
          }
      }
      ResourceData {
          ArchiveHeader {
              char8_t  Magic[4];   // "GAR3"
              uint32_t _reserved;  // 0x00000000
          }
          // "DDS " + DDSURFACEDESC2
          uint8_t Surface[ResourceHeader.DataLength - sizeof(ArchiveHeader)];
      }
    • Compield Sounds and Music (*._xsnd):
      Code:
      ArchiveHeader {
          char8_t  Magic[4];   // "GAR3"
          uint32_t _reserved;  // 0x00000000
      }
      ResourceHeader {
          char8_t  Magic[4];       // "GR01"
          char8_t  ClassRevision[4];
          uint32_t ObjectOffset;
          uint32_t ObjectSize;
          uint32_t DataOffset;
          uint32_t DataSize;
          uint64_t RawDateTime;    // (FILETIME)
          char8_t  RawFileExt[8];  // ".wav"
      }
      ResourceObject {
          char8_t  Magic[4];   // "GEC0"
          uint32_t ClassHash;  // 0x88E0CA06 -> "class eCSoundResource2"
          uint16_t Version;    // 0x0001
          uint32_t PropSize;
          uint32_t DataSize;
          Prop {
              uint32_t Size;
              {
                  // 0xB23C93CD, 0x7C9663EB, 0x00000004 { 0x________ } -> "unsigned int"  "Duration"
                  // 0xF9CBA7A0, 0x0D2E96B2, 0x00000001 { 0x__ }       -> "unsigned char" "Flags"
                  uint16_t Count;
                  for( Count ) {
                      uint32_t TypeHash;
                      uint32_t NameHash;
                      uint32_t Size;
                      uint8_t  Data[Size];
                  }
              }
          }
          Data {
              eCSoundResource2 {
                  uint32_t ClassHash;  // 0x88E0CA06 -> "class eCSoundResource2"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000000
                  uint8_t  Data[Size];
              }
              eCResource2 {
                  uint32_t ClassHash;  // 0x7BF929DD -> "class eCResource2"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000000
                  uint8_t  Data[Size];
              }
              bCObjectBase {
                  uint32_t ClassHash;  // 0x84ADA072 -> "class bCObjectBase"
                  uint16_t Version;    // 0x0001
                  uint32_t Size;       // 0x00000000
                  uint8_t  Data[Size];
              }
          }
      }
      ResourceData {
          ArchiveHeader {
              char8_t  Magic[4];   // "GAR3"
              uint32_t _reserved;  // 0x00000000
          }
          // RIFF WAVE
          uint8_t Sound[ResourceHeader.DataLength - sizeof(ArchiveHeader)];
      }
      Notice that the resource data format has been changed from MP3 to RIFF WAVE.


    And finally the Document Archives (data/compiled/library/compiled_*.bin - without compiled_achievements.bin):
    Code:
    ArchiveHeader {
        char8_t  Magic[4];   // "GAR3"
        uint32_t _reserved;  // 0x00000000
    }
    char8_t  Magic[4];  // "DOC5"
    uint32_t InfoSize;
    Info {
        uint32_t Count;
        for( Count ) {
            uint16_t Version;
            uint32_t RawDateTime[2];  // FILETIME with high/low swapped
            RawFileName {
                uint16_t Length;
                char8_t  String[Length];
            }
        }
    }
    Data {
        uint32_t Count;  // Info.Count
        for( Count ) {
            char8_t  Magic[4];  // "GEC0"
            uint32_t ClassHash;
            uint16_t Version;
            uint32_t PropSize;
            uint32_t DataSize;
            Prop {
                uint32_t Size;
                {
                    uint16_t Count;
                    for( Count ) {
                        uint32_t TypeHash;
                        uint32_t NameHash;
                        uint32_t Size;
                        uint8_t  Data[Size];
                    }
                }
            }
            Data[] {
                uint32_t ClassHash;
                uint16_t Version;
                uint32_t Size;
                uint8_t  Data[Size];
            }
        }
    }

    Best regards,
    Nico
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    NicoDE ist offline Geändert von NicoDE (14.06.2012 um 08:55 Uhr) Grund: archive and object layout updated

  2. #2 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Hi, I'm really a noob at this subject. Would it be much work to update your ximg to dds converter for Risen 2?
    3.1415926535
    Blog
    Malkav ist offline

  3. #3 Zitieren
    Mod-Starter Project  Avatar von LordOfWAR
    Registriert seit
    Mar 2008
    Ort
    Ukraine
    Beiträge
    3.981
    Zitat Zitat von NicoDE Beitrag anzeigen
    You might redirect this functions at run-time to dump/log the identifiers. But even if you do this very early, you'll miss some strings, because many hashes (e.g. enumeration member names) are calculated dynamically on first usage. Here is a list of registered type names (bCRuntimeType) and the hashes:
    Here is the list of all currently unknown hashes (they are not present in your list) what we can meet while reading *.bin files (count = 513). Property names & types hashes:

    Spoiler:(zum lesen bitte Text markieren)

    Code:
    0x1022FBEE
    0x126E270C
    0x13019899
    0x13780941
    0x13AE0AB3
    0x1463DDAA
    0x1468E2B0
    0x156B8B
    0x15F3A1DA
    0x1639C14B
    0x1639C14C
    0x164F458C
    0x164F458D
    0x16656265
    0x17B0799D
    0x17B0799E
    0x18455B3C
    0x18FBC010
    0x18FD6E99
    0x190E0022
    0x19837974
    0x19BADFC
    0x1A864B96
    0x1B6E7B79
    0x1B883ED4
    0x1BF81DAB
    0x1C57897C
    0x1C6A9767
    0x1DF4CABB
    0x1E13EECB
    0x1E5D9285
    0x1EE606C2
    0x20249079
    0x20B5FF26
    0x20D700B3
    0x20D98DBC
    0x218EE45A
    0x2394C2B5
    0x240435D1
    0x243F8DA
    0x24659CAE
    0x250E5D05
    0x257F606F
    0x2601E61
    0x27DF1934
    0x28E759BF
    0x2A6A87EB
    0x2B5BFCEC
    0x2B96F79
    0x2BAF2DE9
    0x2BC86C04
    0x2C283334
    0x2CA23173
    0x2CCBD76D
    0x2CCBD76F
    0x2CD6A1D6
    0x2D64F612
    0x2DE4DD1D
    0x2F07592A
    0x2F268055
    0x2F86D63D
    0x2F9E86BA
    0x2FD94859
    0x31D7CB48
    0x31F07C3E
    0x31F6AF0A
    0x3207D6DC
    0x32842B28
    0x32D50CF8
    0x33009E3A
    0x33A30465
    0x33A51E21
    0x33C4C0B
    0x34236AB7
    0x348F6595
    0x34AA0EDA
    0x35967549
    0x3651B2FF
    0x366D834B
    0x36E67281
    0x37118166
    0x3797805
    0x38A06961
    0x38A06A5F
    0x39099523
    0x3984E9A7
    0x39C1B9C2
    0x39FD087A
    0x3B26915E
    0x3BDB4022
    0x3BEE4F96
    0x3C3571F1
    0x3C833237
    0x3CCE651A
    0x3DBB5852
    0x3DF36725
    0x3E95AD7B
    0x3EFD069B
    0x3F0D3184
    0x3F721FD8
    0x3F94C5A1
    0x40BB2C
    0x41E9114C
    0x420E098F
    0x42B6678C
    0x44BC1AF6
    0x458017E3
    0x471BC421
    0x4796F772
    0x48086FB1
    0x4813C530
    0x4813C531
    0x48FBAA5A
    0x49D63EAC
    0x49DFB497
    0x4A3AEDF3
    0x4B9CE777
    0x4BCF1B78
    0x4CAE843A
    0x4CB01CB7
    0x4CB8E343
    0x4DCD0769
    0x4DDD7F
    0x4EC91816
    0x4F780F6A
    0x4FA0D25A
    0x4FC18155
    0x4FC18157
    0x50DD76B0
    0x50F07155
    0x51DE9A02
    0x526F4C83
    0x5272BD20
    0x53AC847A
    0x543E093F
    0x555E01C
    0x55E3ECC4
    0x56338F24
    0x563670BE
    0x56EE9993
    0x576C4C73
    0x583C7D0A
    0x5882E5BA
    0x59047BC3
    0x5973F2
    0x59CC4D7F
    0x5C30DA74
    0x5C30DB72
    0x5CBCF577
    0x5CF11F62
    0x5D393FC4
    0x5D6C0E43
    0x5DFE9E35
    0x5F069E93
    0x5FBBD5FD
    0x60DE09BB
    0x61056DD9
    0x612DA318
    0x61517A34
    0x61C3724A
    0x62619FE9
    0x63D2E144
    0x64A72730
    0x64E07943
    0x653EBBCE
    0x654FFB84
    0x658684C8
    0x659B0744
    0x65ED4CD3
    0x65EDB86B
    0x663B2097
    0x664BD5E6
    0x6692749B
    0x67919B95
    0x67B717F5
    0x680A9DEE
    0x6810BA43
    0x694CF1FE
    0x696C7130
    0x69D82D45
    0x69FB9E7E
    0x6A2B3B15
    0x6A346635
    0x6B40C7E2
    0x6B725200
    0x6C53542C
    0x6CC15276
    0x6D65D86
    0x6D7A6358
    0x6E153080
    0x70EB1DCE
    0x71475B4A
    0x71FA7671
    0x7217CA24
    0x721BEF4A
    0x72A9F7C7
    0x72F27745
    0x73354084
    0x736FD4B1
    0x74594308
    0x750282A0
    0x76898F87
    0x770D854A
    0x77E67AD9
    0x781796DC
    0x783CE3E2
    0x783EC5CB
    0x78728605
    0x7A891A25
    0x7AFACAB0
    0x7BEFC75E
    0x7C843EA6
    0x7C898026
    0x7C8BED82
    0x7C8C61C0
    0x7C8D30E7
    0x7C9663EB
    0x7C99E516
    0x7DAC5E26
    0x7DE7FA18
    0x7EA655B6
    0x80E5E57C
    0x812C9EAB
    0x816F90FF
    0x827AC691
    0x82A9C010
    0x82B0C3D3
    0x834D384A
    0x8351396A
    0x83671151
    0x83D7D9EE
    0x83FE00A9
    0x845EE23E
    0x84AA2147
    0x84AD1A1A
    0x857FD083
    0x86EE7739
    0x86F535C9
    0x87B40937
    0x8934C406
    0x8959773C
    0x89A7C004
    0x8A316065
    0x8AAB23E1
    0x8AEF19EF
    0x8AFE3221
    0x8BCCED9C
    0x8C0A5537
    0x8C8833DF
    0x8CC402CC
    0x8D19B7FC
    0x8D19B7FD
    0x8D851D8F
    0x8E761637
    0x8F12A561
    0x905FE3E1
    0x90B66882
    0x90E3DC0E
    0x917ADA78
    0x917CBC40
    0x918D88B2
    0x91B37C43
    0x924CDC47
    0x94BCD98C
    0x9543CCA4
    0x95A3C786
    0x96A078DD
    0x96B34B6E
    0x9783064F
    0x98E8DA35
    0x992B4363
    0x99649D8
    0x9A7DE97
    0x9A7DE98
    0x9A8CCC6B
    0x9AC70630
    0x9C2FD21D
    0x9CB1A9B9
    0x9CB1F00C
    0x9D88B7BB
    0x9EB93183
    0x9EDE0595
    0x9F5D49
    0xA0417C92
    0xA091739F
    0xA0A43A38
    0xA1584D06
    0xA1915ED4
    0xA2A8EA52
    0xA48F2B7E
    0xA4E2DC38
    0xA5C13938
    0xA5CCE43E
    0xA60C9641
    0xA62FA6A2
    0xA6650126
    0xA69D4765
    0xA6B14623
    0xA6B1ADF7
    0xA6BF39C1
    0xA6BF52D1
    0xA757B002
    0xA7742CD6
    0xA77E51E6
    0xA7DBD3CF
    0xA83E6117
    0xA9481180
    0xA98103C2
    0xA9E75DF5
    0xA9EC5843
    0xAA20F449
    0xAA43C20
    0xAA4FB922
    0xAAE072F4
    0xAB40E961
    0xAB5867D3
    0xABCD3124
    0xACAE5503
    0xAD3FA7AB
    0xADCB0982
    0xAE1DF207
    0xAE2660B3
    0xAF72520E
    0xAF8CF73B
    0xAF8E082E
    0xAFA474BD
    0xB00AF5B7
    0xB01D4366
    0xB025FB49
    0xB14B1319
    0xB17EB1FE
    0xB244C02A
    0xB2B57DAF
    0xB2E2C3A2
    0xB33DB081
    0xB4492522
    0xB531F622
    0xB56FDA96
    0xB65A935F
    0xB68C2AD1
    0xB79C2617
    0xB87A6912
    0xB888030
    0xB8D43AA7
    0xB94CD98C
    0xB94CD98D
    0xB9531FD6
    0xB999589F
    0xB9FF5434
    0xBA791753
    0xBAD52E13
    0xBBDF3F13
    0xBBFB2310
    0xBC89636E
    0xBCF9B9B
    0xBD667679
    0xBD97B471
    0xBEB630AB
    0xBEC2257D
    0xBEED1460
    0xBF6AEEAC
    0xC038AB0C
    0xC0BBE2EE
    0xC0EFDE8
    0xC115DC62
    0xC1920681
    0xC1D1E8EC
    0xC2006FF
    0xC2C0C577
    0xC2E7C9A3
    0xC33DDE86
    0xC378A17B
    0xC3B38680
    0xC3BB5F3A
    0xC3C7EBE8
    0xC3F0E990
    0xC41FD1FD
    0xC44FFAC2
    0xC4851E7C
    0xC4B4DE9A
    0xC4B9B555
    0xC4DFB20B
    0xC63308D3
    0xC71F678D
    0xC74F1893
    0xC816FF76
    0xC8258306
    0xC8EAE13A
    0xC9211886
    0xC921EDBF
    0xC930724C
    0xC9754BD3
    0xC991324F
    0xC9973F6F
    0xCA5FAF5A
    0xCAF5943D
    0xCC501049
    0xCD129742
    0xCD71BD4C
    0xCDDF93C4
    0xCE8C24AB
    0xCF3D5F90
    0xCF3D6014
    0xCFD935E
    0xD06A9CD
    0xD1140839
    0xD1243314
    0xD180FBA1
    0xD1944B3A
    0xD1E57929
    0xD228C45D
    0xD28CAA69
    0xD336A224
    0xD337C917
    0xD383B440
    0xD3ADAC8
    0xD412F416
    0xD4FA02CE
    0xD515B8B
    0xD56C098
    0xD5F45232
    0xD5FEB807
    0xD61F5083
    0xD61F5084
    0xD61F5085
    0xD656C88
    0xD6758E62
    0xD8CBCF3C
    0xD97D5597
    0xDA7FE0FC
    0xDAD24B24
    0xDB46DE73
    0xDB491C15
    0xDBC3890F
    0xDBF94EA9
    0xDC62B309
    0xDD19F533
    0xDD20858C
    0xDD50FAC7
    0xDD7B270
    0xDDC33DB9
    0xDE522D50
    0xDE984F5F
    0xDF118E6B
    0xDF9D1DA7
    0xDFAA637
    0xE01234C6
    0xE031B3F9
    0xE044229A
    0xE088813
    0xE0F668D3
    0xE0FFDD67
    0xE1C1776
    0xE2632AB
    0xE326E01D
    0xE3B0DB8C
    0xE3D7B8A3
    0xE3E0DDF6
    0xE41A12D5
    0xE452CCA6
    0xE4702EEB
    0xE474653E
    0xE4A4595
    0xE5304380
    0xE577F41D
    0xE5D675B8
    0xE5D675B9
    0xE61A1F69
    0xE6A90F4E
    0xE728CA0A
    0xE86DEDCC
    0xE8D82793
    0xEA1412F4
    0xEA6A7D63
    0xEA9A9958
    0xEBF4F8CC
    0xEC657BD9
    0xED3ED6C8
    0xEE0B9B3
    0xEF92F11E
    0xEFB45A7B
    0xEFC9735F
    0xF055F74C
    0xF0FD12DA
    0xF0FD13D8
    0xF34D2837
    0xF395119C
    0xF3BF546D
    0xF4F53B7A
    0xF57CC26F
    0xF5FCC0B2
    0xF619C33B
    0xF61A0EFA
    0xF6310006
    0xF6313775
    0xF6A73149
    0xF71E19B
    0xF786B475
    0xF8003ABC
    0xF81A37CB
    0xF81AEE65
    0xF89CD1AF
    0xF94BE3CE
    0xF9BAF36D
    0xFA8A089E
    0xFB0C3B19
    0xFBCFF8DE
    0xFBEFF458
    0xFC876581
    0xFCCFBE0E
    0xFF25311A
    0xFF303CB1
    0xFFF96AC8
    #Stand With Ukraine
    LordOfWAR ist offline

  4. #4 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
    Zitat Zitat von LordOfWAR Beitrag anzeigen
    Here is the list of all currently unknown hashes [...]
    [...] and here are the values:
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    0x00156B8B="AlignPivotFront"
    0x0040BB2C="Invalid"
    0x004DDD7F="CamTargetCorrectionAcceleration"
    0x005973F2="ID"
    0x009F5D49="InnerRadius"
    0x019BADFC="FogWaterLevel"
    0x0243F8DA="FreeCamTurnSpeedFactorLeftRight"
    0x02601E61="HighFreqVibration"
    0x02B96F79="EchoDepth"
    0x033C4C0B="BloomThreshold"
    0x03797805="class bTRefPropertyArray<class gCEntityFlightKeyframe *>"
    0x0555E01C="BaseTrafo"
    0x06D65D86="CamAdditionalOffsetPitchCorrection"
    0x099649D8="SpeedTreeWind"
    0x09A7DE97="RotationPhase1"
    0x09A7DE98="RotationPhase2"
    0x0AA43C20="ImageEffectBlendInTime"
    0x0B888030="int"
    0x0BCF9B9B="CamWarmUpMoveDecceleration"
    0x0C0EFDE8="LockOnMovementAlignTarget"
    0x0C2006FF="OnX1ButtonDown"
    0x0CFD935E="Filters"
    0x0D06A9CD="RunningQuestScript"
    0x0D3ADAC8="Gamma"
    0x0D515B8B="Hints"
    0x0D56C098="enum gETutorialCategory"
    0x0D656C88="Image"
    0x0DD7B270="Owner"
    0x0DFAA637="Quest"
    0x0E088813="HorizontalScrollBar"
    0x0E1C1776="Speed"
    0x0E2632AB="Tasks"
    0x0E4A4595="Valid"
    0x0EE0B9B3="SmalltalkInnerRange"
    0x0F71E19B="float"
    0x1022FBEE="class bCRect"
    0x126E270C="CamWarmUpRotationAcceleration"
    0x13019899="JumpSmoothing"
    0x13780941="SunSpecularIntensity"
    0x13AE0AB3="Caption"
    0x1463DDAA="class bCPoint"
    0x1468E2B0="CamRotationAcceleration"
    0x15F3A1DA="MaxTime"
    0x1639C14B="RotationAmplitude1"
    0x1639C14C="RotationAmplitude2"
    0x164F458C="OnGetScreenPntX"
    0x164F458D="OnGetScreenPntY"
    0x16656265="RandomEffect2"
    0x17B0799D="PositionFrequency1"
    0x17B0799E="PositionFrequency2"
    0x18455B3C="Languages"
    0x18FBC010="OnlyRealKBMessages"
    0x18FD6E99="class eCEntityStringProxy"
    0x190E0022="class eCGuiWindowProxy"
    0x19837974="DefaultWeapon"
    0x1A864B96="Configurable"
    0x1B6E7B79="SysMenu"
    0x1B883ED4="FixTargetRotationYaw"
    0x1BF81DAB="TestCapsuleHeight"
    0x1C57897C="MaxLookAtAngle"
    0x1C6A9767="CancelledQuestScript"
    0x1DF4CABB="FixTargetRotationPitch"
    0x1E13EECB="OnModifyFocusName"
    0x1E5D9285="ThunderDuration"
    0x1EE606C2="MergeID"
    0x20249079="CoolDownTime"
    0x20B5FF26="JumpSmoothingTargetViewDistance"
    0x20D700B3="OnEscape"
    0x20D98DBC="DoFNearFarRatio"
    0x218EE45A="TestForFreeSpace"
    0x2394C2B5="class bTObjArray<struct gCQuest::gSDeliveryEntity>"
    0x240435D1="SucceededQuestScript"
    0x24659CAE="FixTargetRotationDistance"
    0x250E5D05="BloomIntensity"
    0x257F606F="class eCScriptProxyScript"
    0x27DF1934="MaxLookAtAngleDown"
    0x28E759BF="CamMoveDecceleration"
    0x2A6A87EB="RequiredPerks"
    0x2B5BFCEC="class bTObjArray<class gCTutorialHint>"
    0x2BAF2DE9="DialogCanBeCancelled"
    0x2BC86C04="CamMoveSpeedMax"
    0x2C283334="CamWarmUpRotationDecceleration"
    0x2CA23173="LowFreqVibration"
    0x2CCBD76D="AlignToFloorX"
    0x2CCBD76F="AlignToFloorZ"
    0x2CD6A1D6="StumbleReaction"
    0x2D64F612="AutoTrigger"
    0x2DE4DD1D="class bTObjArray<class eCGuiResourceFontLanguage2>"
    0x2F07592A="FlightKeyframes"
    0x2F268055="EnvDiffusion"
    0x2F86D63D="RefScreenSize"
    0x2F9E86BA="CounterReaction"
    0x2FD94859="CamWarmUpRotationSpeedMax"
    0x31D7CB48="FogDensityOffset"
    0x31F07C3E="EaseMainPitchFlips"
    0x31F6AF0A="CamAdditionalOffsetTargetViewBlendRange"
    0x3207D6DC="SoundVolumeVoice"
    0x32842B28="OceanWavelengthBlue"
    0x32D50CF8="WarmUpOutFadeTime"
    0x33009E3A="TestCapsuleRadius"
    0x33A30465="EnableAutoFocus"
    0x33A51E21="class bTObjArray<struct gCQuest::SLogEntry>"
    0x34236AB7="EaseMainYawFlips"
    0x348F6595="Indicators"
    0x34AA0EDA="class bTObjArray<class gCRequiredPerk_PS>"
    0x35967549="ProgressDelay"
    0x3651B2FF="AccuracyDelay"
    0x366D834B="ProgressParam"
    0x36E67281="ScaleSpeedByWeight"
    0x37118166="DefaultFightAI"
    0x38A06961="FixTargetRotationPitchMax"
    0x38A06A5F="FixTargetRotationPitchMin"
    0x39099523="TintColor"
    0x3984E9A7="class bCColorScale"
    0x39C1B9C2="SkyColorMultiplier"
    0x39FD087A="StartChapter"
    0x3B26915E="class eCGuiVisualProxy"
    0x3BDB4022="class bTRefPtrArray<class gCCombatAIWeights *>"
    0x3BEE4F96="CamAdditionalOffset"
    0x3C3571F1="StageGizmoLocked"
    0x3C833237="OverlayImageEffect"
    0x3CCE651A="LookAtDistance"
    0x3DBB5852="ReflectionsDelay"
    0x3DF36725="AttachToOnParentFinish"
    0x3E95AD7B="DefaultStyle"
    0x3EFD069B="BorderExtent"
    0x3F0D3184="AmbientColor"
    0x3F721FD8="NeighborUp"
    0x3F94C5A1="ImageEffectBlendOutTime"
    0x41E9114C="class gCQuestLocString"
    0x420E098F="NightSkyInnerCoronaSize"
    0x42B6678C="TimeOut"
    0x44BC1AF6="class bTObjArray<class gCFocusIndicatorProxy2>"
    0x458017E3="NeedsPrefetching"
    0x471BC421="FogDensity"
    0x4796F772="MoodColorRatio"
    0x48086FB1="OceanCuasticsMultiplier"
    0x4813C530="PositionAmplitude1"
    0x4813C531="PositionAmplitude2"
    0x48FBAA5A="SunColor"
    0x49D63EAC="class bTObjArray<class gCModifySkill>"
    0x49DFB497="class bTObjArray<class gCTutorialAction>"
    0x4A3AEDF3="MinFallDistance"
    0x4B9CE777="class bTObjArray<class bCString>"
    0x4BCF1B78="class bTRefPropertyArray<class eCImageFilterBase *>"
    0x4CAE843A="AlignToTarget"
    0x4CB01CB7="AutoComplete"
    0x4CB8E343="ActivationTime_Day"
    0x4DCD0769="class eCWeatherStatesProxy"
    0x4EC91816="SplashDuration"
    0x4F780F6A="SubWeights"
    0x4FA0D25A="class bTRefPtrArray<class gCCombatAITask *>"
    0x4FC18155="AlignMaxAngleX"
    0x4FC18157="AlignMaxAngleZ"
    0x50DD76B0="ToolTip"
    0x50F07155="AnchorBottom"
    0x51DE9A02="CloudColorMultiplier"
    0x526F4C83="OnMButtonDown"
    0x5272BD20="MeleeDistanceRadius"
    0x53AC847A="ReverbDelay"
    0x543E093F="MainSortID"
    0x55E3ECC4="SoundVolumeFX"
    0x56338F24="CursorName"
    0x563670BE="CursorSize"
    0x56EE9993="SplashSizeScale"
    0x576C4C73="SmalltalkRewind"
    0x583C7D0A="CharacterControlMove"
    0x5882E5BA="CamJumpOnDistance"
    0x59047BC3="VerticalScrollBar"
    0x59CC4D7F="Conditions"
    0x5C30DA74="FixTargetRotationDistanceMax"
    0x5C30DB72="FixTargetRotationDistanceMin"
    0x5CBCF577="FocalRange"
    0x5CF11F62="SkyWavelengthGreen"
    0x5D393FC4="MoonSpecularIntensity"
    0x5D6C0E43="CameraEffectWeight"
    0x5DFE9E35="EnableFakeEnvCamera"
    0x5F069E93="CamWarmUpMoveAcceleration"
    0x5FBBD5FD="NightSkyHazeColor"
    0x60DE09BB="SkyColor"
    0x61056DD9="class eCGuiBitmapProxy2"
    0x612DA318="NightSkyHazeBiasAndScale"
    0x61517A34="CombatHeight"
    0x61C3724A="InfoGiven"
    0x62619FE9="HealthRect"
    0x63D2E144="DestinationEntity"
    0x64A72730="class bTObjArray<class gCQuestActor>"
    0x64E07943="PageControl"
    0x653EBBCE="LostQuestScript"
    0x654FFB84="JitterPower"
    0x658684C8="JitterSpeed"
    0x659B0744="GoldCost"
    0x65ED4CD3="class bTRefPropertyArray<class gCCutsceneSequenceChannelSetup *>"
    0x65EDB86B="SplashSize"
    0x663B2097="ShowX360"
    0x664BD5E6="ImageEffectInGame"
    0x6692749B="CameraEffect"
    0x67919B95="class bTObjArray<class eCWeatherStateProbability>"
    0x67B717F5="OnRateTarget"
    0x680A9DEE="DirectionScale"
    0x6810BA43="FreeCamFOV"
    0x694CF1FE="AutoFocus"
    0x696C7130="MinimizeBox"
    0x69D82D45="Density"
    0x69FB9E7E="class eCTemplateEntityProxy"
    0x6A2B3B15="RoomRolloffFactor"
    0x6A346635="CharacterMoveInCameraSpace"
    0x6B40C7E2="ReflectionsPan"
    0x6B725200="FogColor"
    0x6C53542C="Diffusion"
    0x6CC15276="SeismicSources"
    0x6D7A6358="CamRotationDecceleration"
    0x6E153080="WonQuestScript"
    0x70EB1DCE="CharacterRotationInCameraSpace"
    0x71475B4A="class bTRefPropertyArray<class gCCameraEffectSeismicSource *>"
    0x71FA7671="FailedQuestScript"
    0x7217CA24="WindPower"
    0x721BEF4A="ExperiencePoints"
    0x72A9F7C7="PageMode"
    0x72F27745="class bCVector2"
    0x73354084="NightSkyHazeColorMultiplier"
    0x736FD4B1="NeighborRight"
    0x74594308="ShowScrollBarArrows"
    0x750282A0="InfoIsRunnig"
    0x76898F87="ParadeReaction"
    0x770D854A="class bTRefPropertyArray<class gCEffectCondition *>"
    0x77E67AD9="class bTRefPtrArray<class gCCombatAI2 *>"
    0x781796DC="RangeWeapon"
    0x783CE3E2="SunIntensity"
    0x783EC5CB="UpdateCameraData"
    0x78728605="AlignCapsuleRadius"
    0x7A891A25="BloomOffset"
    0x7AFACAB0="AirAbsorptionHF"
    0x7BEFC75E="class bCFloatScale"
    0x7C843EA6="Dock"
    0x7C898026="Name"
    0x7C8BED82="Room"
    0x7C8C61C0="Size"
    0x7C8D30E7="Type"
    0x7C9663EB="Duration"
    0x7C99E516="OnGetProgressFactor"
    0x7DAC5E26="SoundVolumeAmbient"
    0x7DE7FA18="ToneMapFactor"
    0x7EA655B6="Actions"
    0x80E5E57C="CloudScrollSpeed"
    0x812C9EAB="TimeOutResult"
    0x816F90FF="PreStartConsoleCommands"
    0x827AC691="LoadingScreenOnPrefetch"
    0x82A9C010="WarmUpTime"
    0x82B0C3D3="NightSkyInnerCoronaColor"
    0x834D384A="OceanWaveChoppyness"
    0x8351396A="SortValue"
    0x83671151="OceanWavelengthGreen"
    0x83D7D9EE="CSCSetupArray"
    0x83FE00A9="ObsoleteQuestScript"
    0x845EE23E="IsCompleted"
    0x84AA2147="GuideWalkMode"
    0x84AD1A1A="Environment"
    0x857FD083="CharacterControlRotation"
    0x86EE7739="ParadeAngle"
    0x86F535C9="CloudShadowMultiplier"
    0x87B40937="OceanWaveHeight"
    0x8934C406="RunningTimeDays"
    0x8959773C="PlaySoundOnOpenAndClose"
    0x89A7C004="WeightChangeSpeed"
    0x8A316065="class eCTipLocString"
    0x8AAB23E1="CamAdditionalOffsetWarmUpTime"
    0x8AEF19EF="HealthVisual"
    0x8AFE3221="SkyMieConstant"
    0x8BCCED9C="OnWheelUp"
    0x8C0A5537="IndoorMultiplier"
    0x8C8833DF="FixTargetRotationJump"
    0x8CC402CC="CamTargetMinDistance"
    0x8D19B7FC="PositionPhase1"
    0x8D19B7FD="PositionPhase2"
    0x8D851D8F="SplashTextureTile"
    0x8E761637="SoundWnd"
    0x8F12A561="CloudExtinction"
    0x905FE3E1="MaxLookAtAngleUp"
    0x90B66882="NightSkyOuterCoronaSize"
    0x90E3DC0E="Probabilities"
    0x917ADA78="CombatAIs"
    0x917CBC40="OnX2ButtonDown"
    0x918D88B2="InfoGameModeType"
    0x91B37C43="Category"
    0x924CDC47="FogColorMultiplier"
    0x94BCD98C="OnGetAccuracyFactor"
    0x9543CCA4="JumpSmoothingWarmUpTime"
    0x95A3C786="OverlayClient"
    0x96A078DD="CSResetSpaces"
    0x96B34B6E="KeyboardDisabled"
    0x9783064F="ParticlesPerSecond"
    0x98E8DA35="class bCMatrix"
    0x992B4363="CamAdditionalOffsetTargetViewDistance"
    0x9A8CCC6B="AutoFocusRange"
    0x9AC70630="CSSearchSpaces"
    0x9C2FD21D="CamJumpOnStart"
    0x9CB1A9B9="BlendDelay"
    0x9CB1F00C="AmbientIntensity"
    0x9D88B7BB="BlendParam"
    0x9EB93183="Reflections"
    0x9EDE0595="AxisCorrectionAllowedForPlayerTarget"
    0xA0417C92="Track_Day_Battle"
    0xA091739F="class eCGuiScriptProxy"
    0xA0A43A38="FreeCamSpeedModifier"
    0xA1584D06="SmalltalkPartner"
    0xA1915ED4="FocalRangeChangeSpeedMax"
    0xA2A8EA52="CamTargetDistanceAcceleration"
    0xA48F2B7E="class bCRange1"
    0xA4E2DC38="DecayHFRatio"
    0xA5C13938="ThunderIntesity"
    0xA5CCE43E="CamFOVChangeSpeedMax"
    0xA60C9641="class bTRefPtrArray<class eCInputMapping *>"
    0xA62FA6A2="FogHeightScale"
    0xA6650126="NightSkyOuterCoronaColor"
    0xA69D4765="MoonIntensity"
    0xA6B14623="FixTargetRotation"
    0xA6B1ADF7="FixTargetRotationJumpPitch"
    0xA6BF39C1="Active"
    0xA6BF52D1="Actors"
    0xA757B002="VisualWnd"
    0xA7742CD6="ModulationDepth"
    0xA77E51E6="FramesPerSecond"
    0xA7DBD3CF="CamClippingCorrectionEnabled"
    0xA83E6117="class bCString"
    0xA9481180="ThunderProbability"
    0xA98103C2="Bitmap"
    0xA9E75DF5="NightSkyColor"
    0xA9EC5843="Border"
    0xAA20F449="IconSize"
    0xAA4FB922="class bTRefPropertyArray<class eCParticleEmitter *>"
    0xAAE072F4="HealthBorderSize"
    0xAB40E961="CamFOV"
    0xAB5867D3="RandomEffect"
    0xABCD3124="CamTargetJumpDistance"
    0xACAE5503="Cursor"
    0xAD3FA7AB="IsPermanent"
    0xADCB0982="HFReference"
    0xAE1DF207="SmalltalkPartnerExitRoutineName"
    0xAE2660B3="class bCVector"
    0xAF72520E="FreeCamTurnSpeedFactorUpDown"
    0xAF8CF73B="ReadByUser"
    0xAF8E082E="Track_Night_Battle"
    0xAFA474BD="class bTRefPropertyArray<class gCCSWeightedAddend *>"
    0xB00AF5B7="ShowAlways"
    0xB01D4366="RunningTimeHours"
    0xB025FB49="FreeCamSpeed"
    0xB14B1319="RunningTimeYears"
    0xB17EB1FE="MusicVolume"
    0xB244C02A="PrePageControl"
    0xB2B57DAF="OnWheelDown"
    0xB2E2C3A2="Completed"
    0xB33DB081="Folder"
    0xB4492522="SSAOIntensity"
    0xB531F622="CamAdditionalOffsetCollisionTest"
    0xB56FDA96="HotSpot"
    0xB65A935F="CSWeightedAddends"
    0xB68C2AD1="EndScript"
    0xB79C2617="Commands"
    0xB87A6912="SkyMiePhaseConstant"
    0xB8D43AA7="SlopeLimit"
    0xB94CD98C="CloudColor1"
    0xB94CD98D="CloudColor2"
    0xB9531FD6="CounterFrameDuration"
    0xB999589F="CamTargetDistanceSpeedMax"
    0xB9FF5434="FinishedQuests"
    0xBA791753="Contrast"
    0xBAD52E13="MoodColor"
    0xBBDF3F13="EffectProbability"
    0xBBFB2310="FixTargetRotationJumpYaw"
    0xBC89636E="OverlayTarget"
    0xBD667679="AutoSize"
    0xBD97B471="Track_Night_Explore"
    0xBEB630AB="SmalltalkExitRoutineName"
    0xBEC2257D="HotSpotOffset"
    0xBEED1460="CamWarmUpMoveSpeedMax"
    0xBF6AEEAC="EventFailed"
    0xC038AB0C="JumpSmoothingWarmUpOutFadeTime"
    0xC0BBE2EE="ConditionType"
    0xC115DC62="UseWantedCameraAsFallback"
    0xC1920681="ActionMap"
    0xC1D1E8EC="CamFOVVertigoDistance"
    0xC2C0C577="Transparent"
    0xC2E7C9A3="EndChapter"
    0xC33DDE86="LFReference"
    0xC378A17B="OceanWavelengthRed"
    0xC3B38680="EventSuccess"
    0xC3BB5F3A="CamTargetDistanceDecceleration"
    0xC3C7EBE8="class bTRefPropertyArray<class gCFocusInteractFilter2 *>"
    0xC3F0E990="SpawnPointDizzer"
    0xC41FD1FD="CamRotationSpeedMax"
    0xC44FFAC2="WeightScript"
    0xC4851E7C="NightSkyColorMultiplier"
    0xC4B4DE9A="Position"
    0xC4B9B555="Track_Day_Explore"
    0xC4DFB20B="CurrentInfoCommandIndex"
    0xC63308D3="SpeciesType"
    0xC71F678D="JumpSmoothingTargetViewBlendRange"
    0xC74F1893="CloudSharpness"
    0xC816FF76="OnInit"
    0xC8258306="class eCGuiMsgScriptProxy"
    0xC8EAE13A="DecayTime"
    0xC9211886="AccuracyBlendParam"
    0xC921EDBF="Emitter"
    0xC930724C="CamMoveDirectionChangeSmoothing"
    0xC9754BD3="AnchorTop"
    0xC991324F="PageID"
    0xC9973F6F="Parent"
    0xCA5FAF5A="OnAbort"
    0xCAF5943D="LookAtDistorsion"
    0xCC501049="EnvSize"
    0xCD129742="OnLButtonDown"
    0xCD71BD4C="CamTargetCorrectionSpeedMax"
    0xCDDF93C4="StartWeatherState"
    0xCE8C24AB="Reverb"
    0xCF3D5F90="RoomHF"
    0xCF3D6014="RoomLF"
    0xD1140839="ShowPC"
    0xD1243314="Silent"
    0xD180FBA1="LoopSample"
    0xD1944B3A="SortID"
    0xD1E57929="Status"
    0xD228C45D="MoonColor"
    0xD28CAA69="class bTRefPropertyArray<class gCCSSearchSpaceBase *>"
    0xD336A224="LoopSystem"
    0xD337C917="TextID"
    0xD383B440="class bTObjArray<class gCFocusCollectorProxy2>"
    0xD412F416="StreakIntensity"
    0xD4FA02CE="DeliveryEntities"
    0xD5F45232="MaximizeBox"
    0xD5FEB807="CamTargetCorrectionDecceleration"
    0xD61F5083="CamControl_AxisX"
    0xD61F5084="CamControl_AxisY"
    0xD61F5085="CamControl_AxisZ"
    0xD6758E62="class bTRefPropertyArray<class gCEffectCommand *>"
    0xD8CBCF3C="DecayLFRatio"
    0xD97D5597="LoopVolume"
    0xDA7FE0FC="StartCamera"
    0xDAD24B24="VisualFrame"
    0xDB46DE73="InLocalSpace"
    0xDB491C15="ToolTipText"
    0xDBC3890F="Permanent"
    0xDBF94EA9="DisableInput"
    0xDC62B309="class bTRefPropertyArray<class gCCutsceneSequence *>"
    0xDD19F533="Visible"
    0xDD20858C="Visuals"
    0xDD50FAC7="CurrentTextureTile"
    0xDDC33DB9="LookAtDeadZone"
    0xDE522D50="ModulationTime"
    0xDE984F5F="Collectors"
    0xDF118E6B="CapsuleHeight"
    0xDF9D1DA7="Overlay"
    0xE01234C6="SmalltalkOuterRange"
    0xE031B3F9="OnCalcBlendColor"
    0xE044229A="StepHeight"
    0xE0F668D3="AlignPivotBack"
    0xE0FFDD67="AlignPivotSide"
    0xE326E01D="Disabled"
    0xE3B0DB8C="Condition"
    0xE3D7B8A3="ActivationTime_Hour"
    0xE3E0DDF6="ActivationTime_Year"
    0xE41A12D5="ImageEffect"
    0xE452CCA6="OnGetBlendFactor"
    0xE4702EEB="NeighborDown"
    0xE474653E="NeighborLeft"
    0xE5304380="SpeedMinMax"
    0xE577F41D="HitSufferRadius"
    0xE5D675B8="RotationFrequency1"
    0xE5D675B9="RotationFrequency2"
    0xE61A1F69="Description"
    0xE6A90F4E="ImageFilter"
    0xE728CA0A="ReverbPan"
    0xE86DEDCC="LogText"
    0xE8D82793="EchoTime"
    0xEA1412F4="AllowedToHaveFocus"
    0xEA6A7D63="OnKeyDown"
    0xEA9A9958="class eCLocString"
    0xEBF4F8CC="DefaultCtrlID"
    0xEC657BD9="OnCalcBlendFactor"
    0xED3ED6C8="OnRButtonDown"
    0xEF92F11E="class bTRefPtrArray<class eCGuiVisual *>"
    0xEFB45A7B="SkyRayleighConstant"
    0xEFC9735F="FogSkyMultiplier"
    0xF055F74C="SkyWavelengthRed"
    0xF0FD12DA="FixTargetRotationYawMax"
    0xF0FD13D8="FixTargetRotationYawMin"
    0xF34D2837="CamMoveAcceleration"
    0xF395119C="ShowPS3"
    0xF3BF546D="CamMoveAndRotationSync"
    0xF4F53B7A="class eCGuiWndSound"
    0xF57CC26F="Saturation"
    0xF5FCC0B2="OceanAmbientMultiplier"
    0xF619C33B="CloudCover"
    0xF61A0EFA="CapsuleRadius"
    0xF6310006="LogTopic"
    0xF6313775="ClearChildren"
    0xF6A73149="SizeBox"
    0xF786B475="SequenceClassName"
    0xF8003ABC="OuterRadius"
    0xF81A37CB="AnchorLeft"
    0xF81AEE65="AnchorMode"
    0xF89CD1AF="SmalltalkGivenCmdIndex"
    0xF94BE3CE="CamTargetMaxDistance"
    0xF9BAF36D="FadeOut"
    0xFA8A089E="Brightness"
    0xFB0C3B19="SkyWavelengthBlue"
    0xFBCFF8DE="AnchorRight"
    0xFBEFF458="ModifySkillsSuccess"
    0xFC876581="Partner"
    0xFCCFBE0E="ParadeMovementStyle"
    0xFF25311A="DefaultImageEffect"
    0xFF303CB1="Sequences"
    0xFFF96AC8="StartScript"
    You might have missed existing values, because you did not include the leading zero(s) in the key name.
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    NicoDE ist offline

  5. #5 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Can you help me to analyze the materials format ._xmat, for example by providing similar informations as for ximg in the opening post?
    Being more specific I'm looking for the TexCoord settings.
    3.1415926535
    Blog
    Malkav ist offline

  6. #6 Zitieren
    Mod-Starter Project  Avatar von LordOfWAR
    Registriert seit
    Mar 2008
    Ort
    Ukraine
    Beiträge
    3.981
    Zitat Zitat von NicoDE Beitrag anzeigen
    [...] and here are the values:
    Wow!!! Very nice, looks like every properties name & types hashes already known . Thanks a lot .

    So, it is time to analise old RisenSDK for learning class types .
    #Stand With Ukraine
    LordOfWAR ist offline

  7. #7 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
    Zitat Zitat von Malkav Beitrag anzeigen
    Can you help me to analyze the materials format ._xmat, for example by providing similar informations as for ximg in the opening post?
    Being more specific I'm looking for the TexCoord settings.
    I didn't had a look at the materials yet. But the eETexCoordSrc* enumeration constants are the same as in Risen 1. You only have to calculate/know the hash of the enumeration constant names if you want to modify the values.

    ps: If you need hash lookups, just post a list. And you should have a look at the Compiled Shader Material research for Risen 1.
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    NicoDE ist offline Geändert von NicoDE (09.05.2012 um 15:45 Uhr)

  8. #8 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    I did take a look at Risen 1 xmats but the material system is different. Risen 2 uses material instances for all mats in the game. It seems that most infos are stored in the master materials, whilst the instances primarily assign the texture maps only?

    Spoiler:(zum lesen bitte Text markieren)
    3.1415926535
    Blog
    Malkav ist offline

  9. #9 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
    I updated the start post. Here is a summery of the changes:



    I scanned all files for "GAR" and found only "GAR2" and "GAR3" archives. The following 32-bit word is always 0 (no nested archive). Therefore I renamed the field to _reserved:
    Code:
    ArchiveHeader {
        char8_t  Magic[4];   // "GAR2", "GAR3"
        uint32_t _reserved;  // 0x00000000
    }



    The object streaming layout is now complete (and should be more clear now):
    Code:
    Object {
        char8_t  Magic[4];  // "GEC0"
        uint32_t ClassHash;
        uint16_t Version;
        uint32_t PropSize;
        uint32_t DataSize;
        Prop {
            uint32_t Size;
            {
                uint16_t Count;
                for( Count ) {
                    uint32_t TypeHash;
                    uint32_t NameHash;
                    uint32_t Size;
                    uint8_t  Data[Size];
                }
            }
        }
        Data[] {
            uint32_t ClassHash;
            uint16_t Version;
            uint32_t Size;
            uint8_t  Data[Size];
        }
    }
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    NicoDE ist offline Geändert von NicoDE (10.05.2012 um 17:33 Uhr)

  10. #10 Zitieren
    Ehrengarde Avatar von Baltram
    Registriert seit
    Jun 2006
    Beiträge
    2.264
    Thank you!

    As for GEC0: The 'Version' number refers to the streamed object, not to the streaming system itself, right?
    Baltram ist offline

  11. #11 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
    Zitat Zitat von Baltram Beitrag anzeigen
    The 'Version' number refers to the streamed object, not to the streaming system itself, right?
    It refers to the class. Therefore you might name it ClassVersion (like ClassHash).
    e.g. the class version of gCQuest is currently 5.
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    NicoDE ist offline Geändert von NicoDE (10.05.2012 um 17:52 Uhr)

  12. #12 Zitieren
    Legende Avatar von JFaron
    Registriert seit
    Sep 2010
    Beiträge
    7.179
    Hat eigentlich schon mal jemand die Templates, genauer die Waffen und ihre Schadenswerte bzw. den Schmuck und die Boni angeschaut? Würde mich mal interessieren...
    JFaron ist offline

  13. #13 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Es gibt hier einen Post dazu, stammt sogar noch vom Releasetag.
    3.1415926535
    Blog
    Malkav ist offline

  14. #14 Zitieren
    Legende Avatar von JFaron
    Registriert seit
    Sep 2010
    Beiträge
    7.179
    Zitat Zitat von Malkav Beitrag anzeigen
    Es gibt hier einen Post dazu, stammt sogar noch vom Releasetag.
    Okay, Danke. Ich habe vom Hex-Editing ungefähr so viel Ahnung wie du Schnee in der Wüste findest, und bin dementsprechend überrascht, dass ich es trotzdem verstehe
    Ich habe mir jetzt einfach mal ein paar Dateien angeschaut und Regelmäßigkeiten festgestellt. Ich bin mal gespannt ob ich das jetzt hinbekomme

    edit: Ok, die Schadenswerte der Schwerter habe ich gefunden, allerdings interessieren mich auch die Musketen.
    Die Hex-Werte
    Code:
    4D 75 73 6B 65 74 5F 44 61 6D 61 67 65 30 7E 0A BD AE 00 CB B4 08
    scheinen so bei allen Musekten vorzukommen. In dem Text-Fenster neben den ganzen Hex-Werten (Wie heißt denn das? Zur Verdeutlichung: Grüner Bereich) wird auch ganz treffend Musket_Damage (+ ein paar Zeichen ) angezeigt. Hinter den oben genannten Hex-Werten stehen dann, wie bei den Schwertern, drei "00"-Paare. Die Werte hinter diesen Paaren ergeben aber nicht annähernd den Schadenswert der entsprechenden Muskete. Das habe ich mehrfach überprüft.
    Meine Frage: Kann jemand aus dem Stehgreif sagen, ob ich etwas falsch gemacht habe? (Wie gesagt: Ich habe praktisch keine Ahnung von Hex-Editoren) Oder wird der Schaden irgendwie anders gespeichert bzw. berechnet?
    JFaron ist offline Geändert von JFaron (11.05.2012 um 15:11 Uhr)

  15. #15 Zitieren
    Legende Avatar von JFaron
    Registriert seit
    Sep 2010
    Beiträge
    7.179
    Auf die Gefahr hin zu nerven: Wurde der edit in dem Post über diesem überlesen oder hat sich damit noch niemand beschäftigt? Ich gehe aktuell vom zweiten Fall aus, aber ich bin mir nicht sicher, da der edit deutlich später kam als der normale Post.
    So oder so, wenn sich nun niemand meldet, bin ich mir wenigsten sicher.
    JFaron ist offline

  16. #16 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Du musst oberhalb vom Musket_Damage gucken.

    Hier mal ein Beispiel:

    Spoiler:(zum lesen bitte Text markieren)


    Hex 46 = 70 Schaden.



    Zitat Zitat von JFaron Beitrag anzeigen
    Auf die Gefahr hin zu nerven: Wurde der edit in dem Post über diesem überlesen oder hat sich damit noch niemand beschäftigt? Ich gehe aktuell vom zweiten Fall aus, aber ich bin mir nicht sicher, da der edit deutlich später kam als der normale Post.
    Edit kam erst nach dem Lesen.
    3.1415926535
    Blog
    Malkav ist offline Geändert von Malkav (12.05.2012 um 12:27 Uhr)

  17. #17 Zitieren
    Legende Avatar von JFaron
    Registriert seit
    Sep 2010
    Beiträge
    7.179
    Ok, danke Malkav.
    Der Schaden ist wohl bei sämtlichen Waffenarten (zumindest Gewehrschaden, Bajonett, Mindest- und Maximalschaden der Schwerter und Pistolen) hinter diesen "CD 93 ... 00"-Gebilden. Hätte ich auch so draufgekommen können...
    edit: Yeah! Ich habe den Wert der Boni gefunden
    JFaron ist offline Geändert von JFaron (12.05.2012 um 12:53 Uhr)

  18. #18 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Das ist wohl generell ein Indikator für ganzzahlige Variablen.
    Zitat Zitat von NicoDE Beitrag anzeigen
    Code:
    0xB23C93CD="unsigned int"
    ("rückwärts" lesen)


    Der Bereich danach ist auch interessant, musket/shotgun_aim legt scheinbar die Zielgenauigkeit fest.



    Edit: Willst du nur so testen oder eventuell ne größere Mod (rebalancing?) in Angriff nehmen)
    3.1415926535
    Blog
    Malkav ist offline

  19. #19 Zitieren
    Legende Avatar von JFaron
    Registriert seit
    Sep 2010
    Beiträge
    7.179
    Zitat Zitat von Malkav Beitrag anzeigen
    [...] Der Bereich danach ist auch interessant, musket/shotgun_aim legt scheinbar die Zielgenauigkeit fest.
    Könnte man sich auch mal anschauen.

    Edit: Willst du nur so testen oder eventuell ne größere Mod (rebalancing?) in Angriff nehmen)
    Das ist die Frage, die ich mir selbst im Moment auch stelle. Denn dafür müsste ich Risen 2 auf (viele) verschiedene Weisen durchspielen und mir entsprechende Notizen dazu machen.
    Ich habe Risen aufgrund meines Systems noch nicht einmal durch, habe aber jetzt schon keine Lust mehr per Hit & Run durch die Welt zu rennen. Shotgun, Nahkampf, Vodoo habe ich mir z. B. noch gar nicht gegeben und alles was ich bisher weiß ist: Die Schusswaffen sind zu stark

    Wenn überhaupt, werde ich mir dann wohl Hilfe suchen, vllt. eine kleine Umfrage starten... Aber noch nicht.

    edit: Im Moment schreibe ich mir erstmal alles auf, was ich herausfinde.
    JFaron ist offline

  20. #20 Zitieren
    Kämpfer Avatar von Malkav
    Registriert seit
    Oct 2006
    Ort
    Hamburg
    Beiträge
    308
    Zitat Zitat von JFaron Beitrag anzeigen
    Shotgun, Nahkampf, Vodoo habe ich mir z. B. noch gar nicht gegeben und alles was ich bisher weiß ist: Die Schusswaffen sind zu stark
    Die Einschätzung der Community dahingehend ist wohl eindeutig. Wäre also auf jeden Fall schonmal ein guter Ansatzpunkt.


    Zitat Zitat von JFaron Beitrag anzeigen
    Könnte man sich auch mal anschauen.
    Der Integer nach dem Schaden gibt übrigens die Reichweite der Waffe an.
    3.1415926535
    Blog
    Malkav ist offline Geändert von Malkav (12.05.2012 um 14:52 Uhr)

Seite 1 von 2 12 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •