Jump to content
TrinityCore

Kovrizha

Plebs
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Kovrizha

  1. Greetings!

    I'm trying to make mmaps for 10.0.2. Unsuccessfully. Looking for any help. I'll be greatly appreciated.

    I provided ExtractorDB2LoadInfo.h some field update for 10.0.2 from WoWDBDefs.
    But It seems that there is something more. CascOpenFile failes almost at the start:

    d:\World of Warcraft\_beta_>mapextractor.exe -p wow_beta
    Opened casc storage 'd:/World of Warcraft\_beta_\Data'
    Opened casc storage 'd:/World of Warcraft\_beta_\Data'
    Detected client build 46157 for locale enUS

    Extracting dbc/db2 files...
    locale enUS output path d:\World of Warcraft\_beta_\dbc\enUS
    Unable to open file CinematicCamera.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Unable to open file GameObjectDisplayInfo.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Unable to open file LiquidMaterial.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Unable to open file LiquidObject.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Unable to open file LiquidType.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Unable to open file Map.db2 in the archive for locale enUS: FILE_NOT_FOUND
    Extracted 0 files

     

    I tried to debug and it seems the problem lies in empty object m_pItemArray while calling PCASC_FILE_NODE CASC_FILE_TREE::FindById(1294214):

    {m_pItemArray=0x0000000000000000 <NULL> m_ItemCountMax=0 m_ItemCount=0 m_ItemSize=0}

    When running on retail it looks like:    
    {m_pItemArray=0x00000236e7e9c070 "" m_ItemCountMax=8388608 m_ItemCount=4615200 m_ItemSize=8}

    Now I'm trying to find out where this structure is filling up...

    Update.

    My primitive investigation revealed that function RootHandler_CreateWoW (from CascRootFile_WoW.cpp) is not called for 10.0.2 beta build.
    The necessary data parsing happens there.

    LoadBuildManifest (from CascOpenStorage.cpp) recognizes FileSignature (type of the ROOT file) as CASC_TVFS_ROOT_SIGNATURE and calls corresponding line for it: RootHandler_CreateTVFS (instead of RootHandler_CreateWoW)

    Update2:

    After a quick fix in LoadBuildManifest it runs RootHandler_CreateWoW. Then it failes in CaptureRootGroup (from CascRootFile_WoW.cpp) at the line:
    // Validate the array of file data IDs
    if((pbRootPtr + (sizeof(DWORD) * RootGroup.Header.NumberOfFiles)) >= pbRootEnd)
        return NULL;

×
×
  • Create New...