Skip to content

Add Warriors of Rock DLC support and bug fixes#2

Open
jasonulbright wants to merge 2 commits intoNanook:upgrade-to-NET10from
jasonulbright:wor-dlc-support-and-fixes
Open

Add Warriors of Rock DLC support and bug fixes#2
jasonulbright wants to merge 2 commits intoNanook:upgrade-to-NET10from
jasonulbright:wor-dlc-support-and-fixes

Conversation

@jasonulbright
Copy link
Copy Markdown

Summary

  • Warriors of Rock DLC support: PAK files with duplicate CRC-based filenames (e.g. localized .qs files all sharing CRC 99D6564D) now load without error — duplicates are suffixed _2, _3, etc.
  • Bug fixes: Inverted path-length checks in export/import dialogs, QbKey.GetHashCode() inconsistent with Equals(), unnecessary ReadWrite file access during extraction, undisposed streams in copyData and QbFile.Write
  • Build: Simplified parser to single net10.0 target (multi-target required SDKs not typically installed)
  • Documentation: Updated About tab (added GH5/WoR to supported games), added v1.9 Version History entry, widened Information dialog

Files changed (10)

File Change
PakEditor.cs Duplicate key handling, ReadWriteRead, leaveOpen streams
QbKey.cs GetHashCode() returns _crc.GetHashCode()
QbFile.cs using block with leaveOpen: true
QbItemBase.cs Comment on uint < 0 dead validation
BinaryEndianWriter.cs Added leaveOpen constructor overload
ScriptEditor.cs Fixed == 0!= 0 on LastScriptPath.Length
SimpleArrayEditor.cs Fixed == 0!= 0 on LastArrayPath.Length
QueenBeeParser.csproj Single net10.0 target
InfoForm.cs v1.9 changelog, GH5/WoR in feature list
InfoForm.Designer.cs Wider dialog (790×542)

Testing

Tested with WoR DLC PAK files extracted from STFS containers:

  • bdlc747_song.pak.xen — 39 QB items, full tree expansion ✓
  • cdl481.pak.xen — catalog file ✓
  • cmanifest_dlc747.pak.xen — manifest file ✓
  • cdl481_text.pak.xen — localized text with duplicate CRCs ✓

All 4 PAK types from 130 extracted WoR DLC files loaded successfully.

🤖 Generated with Claude Code

jasonulbright and others added 2 commits March 5, 2026 17:20
- Handle duplicate CRC-based filenames in PAK headers (WoR DLC has
  multiple .qs files sharing the same CRC hash). Suffixes _2, _3, etc.
  are appended to disambiguate.
- Fix inverted path length checks in ScriptEditor and SimpleArrayEditor
  export/import dialogs (== 0 should be != 0).
- Fix QbKey.GetHashCode() to be consistent with Equals() - was using
  base.GetHashCode() & crc, now returns crc.GetHashCode().
- Fix PAK file extraction using ReadWrite access instead of Read.
- Fix undisposed BinaryReader/BinaryWriter in copyData (leaveOpen: true).
- Fix undisposed BinaryEndianWriter in QbFile.Write (add leaveOpen ctor).
- Add comment noting uint < 0 is always false in QbItemBase validation.
- Simplify QueenBeeParser to single net10.0 target framework.
- Widen Information dialog to prevent text wrapping.
- Update About tab and Version History (v1.9) with all changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The zlib source files (12 .cs files in QueenBeeParser/Zlib/) are already
compiled by QueenBeeParser.csproj via SDK-style auto-inclusion. The old
zlib.net.csproj (pre-SDK Visual Studio 2008 format) and zlib.net.sln were
orphaned artifacts that cause parse errors in modern IDEs (VS Code C#
extension, MSBuild). Removing them eliminates the IDE errors with no
functional change -- the build output is identical before and after.

The zlib source code and license.txt are preserved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant