Code Monkey home page Code Monkey logo

casclib's People

Contributors

andreas-volz avatar bloerwald avatar bogdanw3 avatar brunosilvafreire avatar d07riv avatar darthgandalf avatar deamon87 avatar dest1yo avatar doctaweeks avatar fluxxu avatar herrvigg avatar ihm-tswow avatar jagdeep-manik avatar jeromnimo avatar jnovack avatar ladislav-zezula avatar liquidwater avatar luzifix avatar poiuyqwert avatar qartar avatar shauren avatar skarndev avatar stijnherfst avatar talv avatar timkurvers avatar tomrus88 avatar wainpetopia avatar xiangzhai avatar zzahos-kg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

casclib's Issues

Missing source file: 'src\common\Map.cpp'

Error 2 error C1083: Cannot open source file: 'src\common\Map.cpp': No such file or directory ..\CascLib\c1xx CascLib_test
Error 1 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 3 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 4 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 5 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 6 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 7 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 8 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..casclib\src\casccommon.h 28 1 CascLib_test
Error 9 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 10 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 11 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 12 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 13 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 14 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
Error 15 error C1083: Cannot open include file: 'common/Map.h': No such file or directory ..\casclib\src\casccommon.h 28 1 CascLib_test
16 IntelliSense: cannot open source file "common/Map.h" ..\CascLib\src\CascCommon.h 28 1 CascLib
17 IntelliSense: identifier "PCASC_MAP" is undefined ..\CascLib\src\CascCommon.h 234 5 CascLib

Missing encryption keys

updateKeys.diff.txt

This is an update for some missing encryption keys. One of them is needed to view the new firecat mount.

This patch was made against the version of CascLib that we use in WoW Modelviewer but I believe it's up-to-date and so should work here as well.

Support for SC1 remastered

SCBW after 1.18 uses CASCs and MPQs for storing game files. Will there be CASClib support for SCBW in the future?

Mask seems to be ignored in CascFindFirstFile

hello,
i'm using CascLib directly for the first time, in Heroes of the Storm (25.0).
I've just been running the test program which recompiles all the lib source files in its own exe. I adapted only the main to access the data source. The storage opens correctly, single files can be read, enumerate works, great !

But, if i try to change the mask in CascFindFirstFile nothing changes. It was * but if i change it for example to *.xml or anything else, it doesn't seem to have any effect, always returning all the files. Is that a bug or did i miss something and misunderstood this szMask parameter?

The lib is not documented so it's very hard to understand what is expected there, but i suppose it's a file token, accepting wildcards like "*" or "?" combined with filenames and/or path specification. I don't know if it handles a internal directory as well (i would expect it to return all the files in that directory).

Thanks for help.

[WoW] Opening by FileDataId does not work as expected

...In fact, it does not work at all.
After I modified WowHandler_GetKey to contain these lines

    if (pFileEntry)
        printf("%s - FileDataID %d\n", szFileName, pFileEntry->FileDataId);

Using sample code

    HANDLE CascStorage;
    CascOpenStorage(storage_dir.string().c_str(), CASC_LOCALE_ENUS, &CascStorage);
    HANDLE f;
    if (CascOpenFile(CascStorage, R"(World\Expansion04\Doodads\Pandaren\Stove\PA_stove_open_01.M2)", CASC_LOCALE_ENUS, 0, &f))
        CascCloseFile(f);
    if (CascOpenFile(CascStorage, "File00080A12", CASC_LOCALE_ENUS, 0, &f))
        CascCloseFile(f);

I get the following output

World\Expansion04\Doodads\Pandaren\Stove\PA_stove_open_01.M2 - FileDataID 147494982

with no entry for File00080A12 - according to FileData.dbc the id of World\Expansion04\Doodads\Pandaren\Stove\PA_stove_open_01.M2 is 526866 (00080A12 in hex), not 147494982

It looks like calculating FileDataId when opening the archive is doing something different than the wow client

Tested on fe97d8c, using both 6.2.4.21742 and 7.0.3.22248 clients (7.0.3 client had even different FileDataId for the file mentioned above)

This is even more important in 7.0.3 since FileData and FileDataComplete are both gone and files must be opened by their FileDataId.

Overwatch root file lines

Overwatch root file currently has lines like this:

#MD5|CHUNK_ID|PRIORITY|MPRIORITY|FILENAME|INSTALLPATH
993CA6773668FC9E04C167BB9A6CA8FF|0|0|255|PtrClient/Overwatch.exe|Overwatch.exe

Which causes the debug version to fail an assertion, and the release version (including CascView) only sees one file named '0'.

Failed to read archive due to read-only filesystem

Hey guys,

I have been troubleshooting CascLib for a while now and only recently realized that my problem was that CascLib requires a read-write filesystem. I cannot use it when it does not have write permission to the SC2 files. Here is more information about the issue:

Kanma/CASCExtractor#2

I understand CascLib may be able to add files at some point, but for a simple read operation, it shouldn't try opening files with write access.

Error 1392 (CORRUPT_FILE) when open folder

Hi Ladislav,

several people experience this error with wow model viewer (that now uses your lib).

After investigation yesterday on a Data/ folder that have the issue, I found the root cause, but I'm not sure what is wanted behavior.

Here is the call stack that conduct to issue:
CascOpenStorage -> LoadRootFile -> LoadRootFileToMemory -> CascReadFile -> FileStream_Read

in folders that have this issue, we read less size, because we reach end of file.
For instance, frame->Compressed = 20077362
We manage to read : (dwBytesRead in BaseFile_Read) 20077324

as dwBytesToRead != dwBytesRead , BaseFile_Read returns false, and cascade error, resulting in not readable folder.

A simple workaround is checking GetLastError() != ERROR_HANDLE_EOF together with !FileStream_Read(...), in same if. This lets folder being read in such a case (and fail in case of real failure)

Maybe a better solution would be to move BaseFile_Read return value from bool to DWORD,return 0 in case of real failure, and BwBytesRead otherwise ?

VS 2015 doesn't link for DLL mode

I had to set the -D versions of the project to link to DLLs. Also, I get unresolved externals when building:

1>------ Build started: Project: CascLib, Configuration: DebugAD Win32 ------
  (snip)
1>  Generating Code...
1>CascOpenStorage.obj : error LNK2019: unresolved external symbol "int __cdecl Array_Create_(struct _DYNAMIC_ARRAY *,unsigned int,unsigned int)" (?Array_Create_@@YAHPAU_DYNAMIC_ARRAY@@II@Z) referenced in function _CascOpenStorage@12
1>CascRootFile_Diablo3.obj : error LNK2001: unresolved external symbol "int __cdecl Array_Create_(struct _DYNAMIC_ARRAY *,unsigned int,unsigned int)" (?Array_Create_@@YAHPAU_DYNAMIC_ARRAY@@II@Z)    
1>CascRootFile_WoW6.obj : error LNK2001: unresolved external symbol "int __cdecl Array_Create_(struct _DYNAMIC_ARRAY *,unsigned int,unsigned int)" (?Array_Create_@@YAHPAU_DYNAMIC_ARRAY@@II@Z)
1>CascOpenStorage.obj : error LNK2019: unresolved external symbol "void * __cdecl Array_Insert(struct _DYNAMIC_ARRAY *,void const *,unsigned int)" (?Array_Insert@@YAPAXPAU_DYNAMIC_ARRAY@@PBXI@Z) referenced in function "int __cdecl InsertExtraFile(struct _TCascStorage *,char const *,struct _QUERY_KEY *)" (?InsertExtraFile@@YAHPAU_TCascStorage@@PBDPAU_QUERY_KEY@@@Z)
1>CascRootFile_Diablo3.obj : error LNK2001: unresolved external symbol "void * __cdecl Array_Insert(struct _DYNAMIC_ARRAY *,void const *,unsigned int)" (?Array_Insert@@YAPAXPAU_DYNAMIC_ARRAY@@PBXI@Z)
1>CascRootFile_WoW6.obj : error LNK2001: unresolved external symbol "void * __cdecl Array_Insert(struct _DYNAMIC_ARRAY *,void const *,unsigned int)" (?Array_Insert@@YAPAXPAU_DYNAMIC_ARRAY@@PBXI@Z)
1>CascOpenStorage.obj : error LNK2019: unresolved external symbol "void __cdecl Array_Free(struct _DYNAMIC_ARRAY *)" (?Array_Free@@YAXPAU_DYNAMIC_ARRAY@@@Z) referenced in function "struct _TCascStorage * __cdecl FreeCascStorage(struct _TCascStorage *)" (?FreeCascStorage@@YAPAU_TCascStorage@@PAU1@@Z)
1>CascRootFile_Diablo3.obj : error LNK2001: unresolved external symbol "void __cdecl Array_Free(struct _DYNAMIC_ARRAY *)" (?Array_Free@@YAXPAU_DYNAMIC_ARRAY@@@Z)
1>CascRootFile_WoW6.obj : error LNK2001: unresolved external symbol "void __cdecl Array_Free(struct _DYNAMIC_ARRAY *)" (?Array_Free@@YAXPAU_DYNAMIC_ARRAY@@@Z)
1>CascOpenStorage.obj : error LNK2019: unresolved external symbol "int __cdecl RootHandler_CreateOverwatch(struct _TCascStorage *,unsigned char *,unsigned long)" (?RootHandler_CreateOverwatch@@YAHPAU_TCascStorage@@PAEK@Z) referenced in function "int __cdecl LoadRootFile(struct _TCascStorage *,unsigned long)" (?LoadRootFile@@YAHPAU_TCascStorage@@K@Z)
1>CascReadFile.obj : error LNK2019: unresolved external symbol "int __cdecl CascDecrypt(unsigned char *,unsigned long *,unsigned char *,unsigned long,unsigned long)" (?CascDecrypt@@YAHPAEPAK0KK@Z) referenced in function "int __cdecl ProcessFileFrame(unsigned char *,unsigned long,unsigned char *,unsigned long,unsigned long)" (?ProcessFileFrame@@YAHPAEK0KK@Z)
1>CascReadFile.obj : error LNK2019: unresolved external symbol "int __cdecl CascDirectCopy(unsigned char *,unsigned long *,unsigned char *,unsigned long)" (?CascDirectCopy@@YAHPAEPAK0K@Z) referenced in function "int __cdecl ProcessFileFrame(unsigned char *,unsigned long,unsigned char *,unsigned long,unsigned long)" (?ProcessFileFrame@@YAHPAEK0KK@Z)
1>CascRootFile_Diablo3.obj : error LNK2019: unresolved external symbol "void * __cdecl Array_ItemAt(struct _DYNAMIC_ARRAY *,unsigned int)" (?Array_ItemAt@@YAPAXPAU_DYNAMIC_ARRAY@@I@Z) referenced in function "int __cdecl RootHandler_CreateDiablo3(struct _TCascStorage *,unsigned char *,unsigned long)" (?RootHandler_CreateDiablo3@@YAHPAU_TCascStorage@@PAEK@Z)
1>CascRootFile_Diablo3.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl Array_IndexOf(struct _DYNAMIC_ARRAY *,void const *)" (?Array_IndexOf@@YAIPAU_DYNAMIC_ARRAY@@PBX@Z) referenced in function "int __cdecl InsertFileEntry(struct TRootHandler_Diablo3 *,struct _ENCODING_KEY &,char const *,unsigned int)" (?InsertFileEntry@@YAHPAUTRootHandler_Diablo3@@AAU_ENCODING_KEY@@PBDI@Z)
1>./bin/CascLib/Win32/DebugAD\CascLibDAD.dll : fatal error LNK1120: 8 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Looks like overall what is missing is:

  • Array_Create_
  • Array_ItemAt
  • Array_Insert
  • Array_Free
  • CascDecrypt
  • CascDirectCopy
  • Array_IndexOf
  • InsertFileEntry

SC2 - Unknown game type

Hey Zezula,

You've done a great job. Can you help me debug an issue I'm having? I am getting an assertion error for an SC2 CASC archive. I am running Heart of the Swarm and the SC2Data folder is 20 GB.

Here is the error I am getting:

CASCExtractor -o wat "/usr/share/sc2/SC2Data/" "Assets/Buildings/Terran/Barracks/Barracks.m3"
Opening '/usr/share/sc2/SC2Data'...
CASCExtractor: /compile/CascLib/src/CascBuildCfg.cpp:493: int GetGameType(TCascStorage*, LPBYTE, LPBYTE): Assertion `false' failed.
Aborted

I read in the source that it is looping through a list of known games and apparently my SC2 is not being identified as SC2. Can you tell me which file to look into to determine which game IDs it is then? Can I send you this file?

Can't open latest D3 PTR build

I'm getting an error when opening the last PTR build in debug mode:

Assertion failed in CascRootFile_Diablo3.cpp line 621:

assert(dwFileIndex < dwFileIndexes);

dwFileIndex and dwFileIndexes are both 451223.

Compilation failed with mingw and cmake

Hi Ladislav,

just tried to compile casclib with mingw and cmake, and I needed to update CMakeLists.txt to suceed:

  • add src/common/Map.cpp in SRC_FILES otherwise linker complies about missing Map_* functions
  • remove src/zlib/trees.c from ZLIB_BZIP2_FILES as this file is actually not part of repo

After that, everything goes well (not tried to use it yet, but compilation succeed)

I don't know which update method you prefer, do you want me to submit a patch, or do you prefer doing updates yourself ?

Regards.

WoW game folder is "corrupted and unreadable".

If I try to read the WoW live or Beta game databases with the latest CASCView I get the error:
"Failed to open game storage . The file or directory is corrupted and unreadable."
It gives this error on both game versions and I've ensured that the Battle.net app is properly closed and no Agent processes are running. The game folders also open in WMV so they don't seem corrupted.

Are you seeing this error too? I don't have an older version of CascView on hand to check if it's a problem with the latest version.

CascTextFiles.cpp missing

Getting a compile error with the latest commit. CascTextFiles.cpp appears to be missing from the repository. Thanks for your time on this project..

Unicode build on windows ?

Hi Ladislav, hope you're doing well.
I am currently working on switching WoW Model Viewer to unicode build (it is still using multi byte for years, due to old code base) and I was about to push a pull request to allow using an argument when calling CMake to force unicode build for casclib.

Do you think it is fine to alsways force it for windows builds (several libraries are already doing it) or do you prefer keeping it as optional ?

If anyone is using casclib under windows, your feedbacks are welcome as well.

List Files / Index

I'm a little confused here, please bear with me.

  • Why do I need a list file to extract files?
  • How did you generate the list file (example, WoW file in repo)?
  • Is there a function for listing the files in the containers?
  • How does CascView.exe do the listing of the files, that CascLib can not? (or is the feature not documented)

Or perhaps I'm misunderstanding it fully.

My use case: I'm on OSX. I would like to extract files from Heroes of the Storm. The current way I have to do this is open the files in a Windows partition, use CascView, and get the files needed. Then do all my magic on OSX (I'm using Kanma's CASCExtractor).

The part where I'm confused, is I understand that CASCExtractor may not have a function for listing files (as it's not your program), however, where is the function that can list files (the index?)?

CascView.exe doesn't seem to have the source, but it HAS be listing an index or at least iterating through all files. A new function in CASCExtractor can easily be written to support that via CascLib. I'm just not versed enough in CPP to do so. Your MPQ examples on the site were useful enough for me to use, but I'm struggling with the CASC functions.

You mention that Heroes CASCs hold the file names, my goal would be to update Kanma's CASCExtractor to read that if I can figure out how to find the function in CascLib. :/

several db2 files can't be read from last PTR version

Hi Ladislav,

trying to update WMV to support 8.1, I am currently facing this issue : when I try to read Item.db2, creature.db2 or itemsparse.db2, I get a 6002 error (ENCRYPTED_FILE) when calling CascReadFile, even for reading the first 4 bits, to get the "magic" number.
According to recent WDC3 changes, some sections of the files are probably encrypted, and we don't know the key yet according to wowdev.wiki

However, I am wondering if we are supposed to be stuck because file is partially encrypted with this key, or if we should be able to read other sections if the key is not the same.

I don't know how to easily dump key used overall for the file, let me know how to do it if you need more info.

Note : using CASCView produces the same result, we can't preview these 3 files in it.

can't open overwatch casc

can't open overwatch casc

to force install overwatch
battle.net.exe --switcherall --install --game=prometheus --installlocale=enUS --installregion=US --torrentinstall

Most definitely does not work for Overwatch

Casc Extractor was never actually able to get anything out of Overwatch, and since a recent update, it can't even open the game. Just reporting, Ninja Ripper no longer works for Overwatch :(

2GB Unknown files in Storm of the heroes

I extract that .xxx files. Some of them are text、xml、dds、ogg which can be recognized, others are totally known.

Is it a bug or I used in a wrong way?

Thanks.

Error code 6002 on wow file ?

Hi,

i get a strange issue with some files in WoW folder using casclib (within WoW Model Viewer). A user notified me that "AllianceMurloc" and HordeMurloc models are not displayed at all.

In a regular WoW install (7.1.0.22996), checking with code outputs, CascReadFile fails on these files :

  • creature\alliancemurloc\alliancemurloc.m2
  • creature\hordemurloc\hordemurloc.m2

I got error 6002, which means "ERROR_FILE_ENCRYPTED" (according to https://msdn.microsoft.com/en-us/library/windows/desktop/ms681389(v=vs.85).aspx)

Do you have any idea from where this issue could come ?

Let me know if you need anything to investigate

Broken build system: target "casc_static" which does not exist

A bisect revealed 628ea3c introduced a bug that breaks the build system:

-- Compile dynamically linked library
CMake Error at CMakeLists.txt:135 (install):
  install TARGETS given target "casc_static" which does not exist in this
  directory.

Reproduce simply by running cmake.

An config option should not be used to determine whether an install target is even present in the build system.

Windows: Initialization fails because CascLib is looking for .agent.db

On my Windows machine, games are located as such:

  • c:\Program Files (x86)\Battle.net\ <-- This is where .agent.db lives
  • c:\Program Files (x86)\Heroes of the Storm\ <-- .build.info lives here
  • c:\Program Files (x86)\World of Warcraft\ <-- .build.info lives here

Games are fully patched.

Even the comments of InitializeCascDirectories says "The root directory is the one where .build.info is", but CheckGameDirectory() looks for .agent.db. If I modify InitializeCascDirectories to check the parent of the current directory for .build.info instead, it works.

Doesn't extract everything

May be I am doing something wrong, but Casc Viewer does not opening everything which described in the list file. For example minimaps, there is no folder in the program, but files of Minimaps directory written in list file: World\Minimaps\WMO\Dungeon\Azjol_Uppercity\Azjol_Uppercity_001_02_05.blp
During opening storage there are no errors.
CASC Viewer 1.0.0.11
WoW enUS 6.0.3.19342

minor issue: missing VS15 projects

hello,
just a minor issue with the VS15 solution. The DLL and test projects are missing in the solution package because it references the .vcxproj for all projects but only the .vcproj exist for those last 2 projects. The main lib project is fine. Here are the concerned files:

  • CascLib_vs15.sln : ok
  • CascLib_vs15.vcxproj : ok
  • CascLib_vs15_dll.vcproj -> CascLib_vs15_dll.vcxproj
  • CascLib_vs15_test.vcproj -> CascLib_vs15_test.vcxproj

As i use VS17 i prefer not to change these files so i let someone having VS15 correct them to keep a compatible version in the git repo. Btw the upgrade VS15->VS17 is fine and smoother than VS08->VS17.

Other minor point, when building the CascLib_Test i had this linker error: module unsafe for SAFESEH image.. I fixed it like this:
CascLib_Test properties > linker > Image Has Safe Exception Handler -> No (/SAFESEH:NO)
Maybe this should be set in the CascLib_test project as well.

When this is fixed in the repo, i will update my local stuff and i can make a pull request for the VS17 files if you are interested.

Question

Can anyone explain me how to compile CascLib? i dont know how to use VisulaStudio.

Crash when trying to open 7.3 folder

Hi Ladislav,

currently evrybody is stuck with 7.3 WoW version (PTR), casclib ending up with a crash

Here is the crash stack
0 "WowHandler_Insert" ( "d:\development\wowmodelviewer\src\casclib\src\cascrootfile_wow6.cpp" - 375 )
1 "InsertExtraFile" ( "d:\development\wowmodelviewer\src\casclib\src\cascopenstorage.cpp" - 234 )
2 "LoadRootFile" ( "d:\development\wowmodelviewer\src\casclib\src\cascopenstorage.cpp" - 927 )
3 "CascOpenStorage" ( "d:\development\wowmodelviewer\src\casclib\src\cascopenstorage.cpp" - 1075 )
4 "CASCFolder::setLocale" ( "d:\development\wowmodelviewer\src\games\wow\cascfolder.cpp" - 130 )

Before digging into it, if you have time, you will be more efficien than me :-)

WoW Build 21737 and ulterior

Impossible to open a storage with CASC lib due to this error when opening Wow folder on Legion 21737+
Assertion failed: false, file F:\heimcore\core\dep\CascLib\src\CascOpenStorage.cpp, line 530

I think the download needs to be updated...

You said in a earlier issue that the folders in overwatch which are currently inaccessible (coincidentally the folders containing everything cool) are accessible to you, then you said a version number newer than that of the current download. I'm not sure if that's available through github, I don't know how to compile things or whatever. I'm sorry to bug you, but I'm just wondering, because I just really want to extract the models from the game for animations.

Sorry to bug you, I've just been checking every day since the game came out (I'm in beta) and I really really want to extract things. Also, happy thanksgiving!

Missing deflate.h

src/zlib/trees.c includes deflate.h, but that file cannot be found.

Maybe removing trees.c is the right way to go about this.

So you say it works... does that mean I'm using the wrong download?

I've been trying to use this.
http://www.zezula.net/en/casc/main.html

And I get this result...
https://i.gyazo.com/8f5a734880191c90b71210bca80d1404.png
Everything but unknown is impossible to open, and has apparently no file type.
https://i.gyazo.com/0482caf1ff3cd124bcd20d148e90823a.png
Everything inside the unknown folder is also useless.
https://i.gyazo.com/8ebe38058bb82fccc1bae3457e138499.png

So am I using the wrong tool? Is that the wrong download? How do I get the one you say is working? I'm confused.

undefined reference to GetLastError

1c9a16f breaks linking against a shared library (which only worked by declaring GetLastError/SetLastError in the consuming program.) Without the proper public declaration linkers can no longer find the right symbols.

Fewer unknown files in latest build

I downloaded the latest version of CascView and noticed that the number of unknown files had dropped a lot over the version I'd been using previously. There's a number of .blp images that we don't know the names for yet and some are now missing, despite the fact we still haven't guessed their names.

I guess this happened around the same time you renamed the unknown folder from "unknown" to "CONTENT_KEY"?

Is there somewhere I can download an older version of CascView in the meantime? I overwrote the one i had.

Thanks!

Warcraft 3 support

With the 1.30 update (now in PTR) Warcraft 3 has started using CASC storage for their game data files (map remain MPQs for now). Having support for opening Warcraft 3 game data would allow me to support 1.30 too.

Commit 47bfd4f9 introduced a regression when reading files

I've been trying to track down a problem with ToT master in CascLib. If I attempt to extract World\Maps\Azeroth\Azeroth_29_28.adt, ToT produces a file that is 248725 bytes long, previous checkouts produced a file that is 314252 bytes. I noticed that the shorter file is missing several maptile's worth of data.

I bisected the problem down to the following commit.

[carbon: (bisect/bad~1) CascLib]$ git bisect bad 
47bfd4f9b0bcd1cd8d3e3169cc1f68994414e8b6 is the first bad commit
commit 47bfd4f9b0bcd1cd8d3e3169cc1f68994414e8b6
Author: unknown <E:\Ladik\Mail>
Date:   Tue Nov 11 15:10:55 2014 +0100

    + Fixed file size handling for ENCODING and ROOT files

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.