Giter Club home page Giter Club logo

pboviewer's Introduction

PboViewer

Cross-platform PBO maker / unpacker. Check the wiki here.

GUI

The GUI is availble to all the platform.

Here is a screenshot of the window:

alt text

CLI

You have two command for the CLI:

  • packFolder, arguments: --path or -p, path of the folder to pack
  • unpackFolder, arguments: --path or -p, path of the PBO to unpack

Here is one example for each command:

  • ./PboViewer packFolder --path="C:\test"
  • ./PboViewer unpackFolder --path="C:\test.pbo"
  • ./PboViewer listFiles --path="C:\test.pbo"

The return of listFiles is in this format: Path: fileName, Size: fileSize, Data size: dataSize, Timestamp: timestamp, Packing method: packingMethod

pboviewer's People

Contributors

steezcram 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

Watchers

 avatar

pboviewer's Issues

Clicks will not open the selected item when the mouse has not been moved since last time

Describe the bug
When double clicking a folder and then trying to double click another item will not work. Moving the mouse will fix this issue.

To Reproduce
Steps to reproduce the behavior:

  1. Open a pbo
  2. Double click on a folder
  3. Do NOT move your mouse
  4. Double clicking the item (folder or file) under the mouse will do nothing

Expected behavior
Double clicking should open the item

Screenshots
https://user-images.githubusercontent.com/38866692/111082799-70965680-850a-11eb-9fe7-d1f79abba112.mp4

Operating system
Edition: Windows 10 Home
Version: 20H2
Installed on: ‎10.‎09.‎2020
OS Build: 19042.867
Performance: Windows Feature Experience Pack 120.2212.551.0

Additional context
Tested on 3den.pbo in Arma 3's Addon folder

EDIT: Formatting for bug template

Support for mouse button 5 and 4 to go up/down a directory

It would be nice to be able to use the mouse buttons to navigate the folder structure. Mouse button 5 (the back one on the side) normally brings you into the parent directory of the current folder while mouse button 4 (front one) takes you into the last subfolder.

Feature Request: The ability to pinpoint referenced files or scripts using a Goto button just like Assembly for Halo

Being New to modding in the Arma series I'm finding the generally massive amount of fragmentation and script spaghetti difficult to get the hang of, I'm so used to using tools like Guerilla or Assembly for Halo that Arma feels 20 years behind. I'm currently tring to port 3 sided Mountain Warfare CTI form Arma 2 OA to Arma 3 and have had to look through multiple PBOs for the required files and scripts just for that one mission.

Windows 10, non specific.

Having the ability to set the game install locations for supported Arma titles and have a list in a portion of the window on the left with PBO files found in the install folders with the folder names as headders in a collapsible menu.

For example:
[+] Arma 2 Operation Arrowhead
---[+] Common (PBO location)
---[+] Expansion
------[+] Addons (PBO location)
[+] Arma 3
---[+] Addons (PBO location)
---[+] Expansion
------[+] Addons (PBO location)
---[+] GM
------[+] Addons (PBO location)

Just to sweeten the layout even more be able to locate a referenced addon or file with one click, for example this line in config.cpp from the warfare2.pbo of Arma 2 Operation Arrowhead

class CfgPatches
{
class Warfare2
{
units[] = {};
weapons[] = {};
requiredAddons[] = {"CA_Missions_SecOps"};
requiredVersion = 0.1;
};
};

Having a small window that mentions required addons and a Goto button next to it that should take you directly to the referenced PBO exactly like Assembly does for Tag files in the Halo engine would be an absolute gamechanger.

See here a referenced Tag in the Assembly with a Goto button at the arrow.
Assembly 1

After clicking the button a new tab opens up with the referenced file contents!
Assembly 2

After scrolling to the bottom of the tag we find another tag that is referenced and another button to lead us.
Assembly 3

Another new tab and all the data for it
Assembly 4

A future idea but probably way beyond the scope of this tool and possibly not even possible for Arma. Halo tag files in Assembly are modified using plugins which give you an easy to use UI to quickly modify all common variables of a tag file and directly reference them.
For example a Light tag plugin will be different to a Weapon tag plugin but a Weapon tag can reference a Light tag as the light will be emitted during a firing effect
Here is a shader_model tag plugin for Assembly
Assembly 5

The way I'm thinking about this whole thing is have the PBO files act sort of like .map files from the Halo engine and have the ability to use a full GUI system to quickly add, modify and reference files just like you would using Guerilla (the original development tool for the Halo engine) then turn it into a single PBO file ready to go in the arma engine without painstakingly finding and typing out loads of code to make things work. Probably wishful thinking but you'll never know if it's possible if you don't ask 🤷‍♂️

Problems with libssl on Ubuntu 22.04

On Ubuntu 22.04. LTS:

  1. GUI Binary for Ubuntu won't run or return an error.
  2. Linux CLI will return error "No usable version of the libssl was found"

Can be fixed by installing the needed dependency.
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb

After adding the needed dependency:

  1. GUI will run and work as expected.
  2. CLI also works as expected.

pbo file storage

How do I output a packaged pbo file to a specified directory?

[Bug] Folder arguments with a trailing slash break the PBO export

Describe the bug
Launching PboViewer via command line using a path to a mission folder as argument is bugged. This is a twofold issue:

  • when the mission folder path doesn't end with a slash, PboViewer opens with an empty GUI, seemingly ignoring the folder path argument (minor nuisance, but not catastrophic)
  • when the mission folder path ends with a slash, PboViewer opens the folder properly, but exporting the folder yields a broken .pbo file (missing files/folders, and the first character is trimmed). PboViewer is effectively unuseable when launched this way.

To Reproduce
Steps to reproduce the behavior:
1. Download the attached test mission archive and extract it somewhere (in this example, next to PboViewer)
2. Start your terminal and launch PboViewer with the folder path as argument:

./PboViewer "Test.Altis"

3. Observe that PboViewer starts with an empty GUI:
image
4. Close PboViewer
5. In the terminal, launch PboViewer with the same folder path as argument, but add a trailing slash at the end:

./PboViewer "Test.Altis/"

Observe that PboViewer now opens the folder in the GUI:
image
6. Click "Pack the folder to PBO"
7. Notice that the file name field is empty (it isn't when manually opening a folder in PboViewer and packing to PBO)
8. Enter a name and hit "Save"
9. Close PboViewer
10. Open the exported mission PBO file with PboViewer (not necessarily using the command line this time, though it shouldn't make a difference)
11. Notice that the PBO contains files with incorrect names (first character is trimmed), and contains garbled data (some files are empty, others contain binary data, yet all files were originally text files)
image

Expected behavior

  • Trailing slashes, or the absence thereof, should not have an impact on the behaviour of the program (consistency)
  • PboViewer should suggest the name of the opened folder when exporting to a PBO
  • Exporting to a PBO shouldn't break files (obviously 😛)

Screenshots
Overview of the test mission folder:
image

Operating system
Arch Linux 6.9.8-arch1-1

Additional context
Test mission archive:
Test.Altis.tar.gz

Exported PBO file (renamed to .zip to allow uploading):
Test.Altis.pbo.zip

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.