81 Commits

Author SHA1 Message Date
d274602104 Merge branch 'master' into nres 2025-02-23 17:23:33 +04:00
8bc39d10b1 Updated dependencies 2025-02-23 17:22:30 +04:00
88faa6e3ea Merge branch 'master' into nres 2025-02-22 14:19:02 +04:00
66705ba4f0 Update Rust crate log to v0.4.26 (#11)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 10:51:06 +00:00
bb4c217ee2 Update all digest updates (#10)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 12:35:42 +00:00
c83822e353 Update Rust crate clap to v4.5.30 (#9)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 03:03:44 +00:00
130ee8df5b Update Rust crate clap to v4.5.29 (#8)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-12 02:55:33 +00:00
8d8653133b Обновление структуры проекта 2025-02-08 01:11:02 +00:00
94d2f8a512 Обновление зависимостей 2025-02-08 00:44:59 +00:00
215a093344 Updated Renovate config 2025-02-05 03:43:58 +04:00
3de1575082 Merge pull request #5 from valentineus/renovate/all-digest 2025-02-04 05:49:24 +04:00
aa8e1184bf Update Rust crate clap to v4.5.28 2025-02-04 01:47:42 +00:00
feb7ebe722 Merge pull request #4 from valentineus/renovate/all-digest
Update Rust crate miette to v7.5.0
2025-02-01 17:58:58 +04:00
becadef5ee Update Rust crate miette to v7.5.0 2025-02-01 04:26:56 +00:00
a4b36e1aea Merge pull request #3 from valentineus/renovate/all-digest
Update all digest updates
2025-01-30 04:34:02 +04:00
c7b099b596 Update all digest updates 2025-01-30 00:26:30 +00:00
48a08445e7 Added mirror 2025-01-30 04:25:11 +04:00
694de5edfa Moved Renocate config 2025-01-30 01:59:31 +04:00
0dc37e9604 Outdated CI and Renovate configurations have been removed, and a new Dependabot configuration file for dependency management has been added. 2025-01-24 20:50:13 +04:00
3d2e970225 Update Rust crate clap to v4.5.27 2025-01-21 00:01:51 +00:00
d90b9830bc Updated all dependencies 2025-01-20 20:18:27 +00:00
f91e1bda22 Update Rust crate serde_json to v1.0.137 2025-01-20 00:02:56 +00:00
e9a0fd718f Update Rust crate log to v0.4.25 2025-01-15 00:03:21 +00:00
509ce2d83d Update all digest updates 2025-01-10 23:44:03 +00:00
391756b77d Update all digest updates 2025-01-10 21:04:54 +00:00
035153c7c0 Update all digest updates 2025-01-07 21:04:58 +00:00
885a593829 Update Rust crate serde to v1.0.217 2024-12-27 21:02:46 +00:00
7c3c8cc969 Update all digest updates 2024-12-21 21:03:04 +00:00
00c62a9909 Update Rust crate thiserror to v2.0.8 2024-12-18 21:03:04 +00:00
c2899d27af Update Rust crate console to v0.15.10 2024-12-16 15:42:52 +00:00
e60fdd1958 Update Rust crate thiserror to v2.0.7 2024-12-14 21:02:34 +00:00
dd6d440ba5 Update Rust crate serde to v1.0.216 2024-12-11 21:04:41 +00:00
36a082ba18 Update all digest updates 2024-12-08 21:03:54 +00:00
09689a937c Update all digest updates 2024-12-03 21:01:39 +00:00
39f6479415 Update Rust crate miette to v7.4.0 2024-11-27 21:02:44 +00:00
01a2a47370 Update Rust crate miette to v7.3.0 2024-11-26 21:05:22 +00:00
4cd42afa37 Update Rust crate serde_json to v1.0.133 2024-11-17 21:05:34 +00:00
298aa954b9 Update Rust crate clap to v4.5.21 2024-11-13 21:01:52 +00:00
910deb6c17 Update all digest updates 2024-11-12 21:01:58 +00:00
4a22e2177e Merge pull request 'Update Rust crate thiserror to v2' (!36) from renovate/thiserror-2.x into master
Reviewed-on: #36
2024-11-11 15:10:34 +03:00
729c972573 Update Rust crate thiserror to v2 2024-11-10 21:05:05 +00:00
250d78a955 Update Rust crate thiserror to v1.0.69 2024-11-10 21:04:56 +00:00
03f2d762bb Merge pull request 'Update ghcr.io/renovatebot/renovate Docker tag to v39' (!34) from renovate/ghcr.io-renovatebot-renovate-39.x into master
Reviewed-on: #34
2024-11-06 09:43:20 +03:00
fcaa729544 Update all digest updates 2024-11-05 21:02:13 +00:00
8c2a6e2c19 Update ghcr.io/renovatebot/renovate Docker tag to v39 2024-11-04 21:02:13 +00:00
daa2efba89 Update Rust crate thiserror to v1.0.66 2024-11-01 21:03:36 +00:00
b5748505ef Update Rust crate serde to v1.0.214 2024-10-28 21:02:55 +00:00
d305b1f005 Update all digest updates 2024-10-22 21:01:55 +00:00
2cfba4891c Update Rust crate serde_json to v1.0.132 2024-10-19 21:01:55 +00:00
777d3814d3 Update Rust crate serde_json to v1.0.131 2024-10-18 23:23:57 +00:00
784ceeebdf Update Rust crate serde_json to v1.0.130 2024-10-18 21:02:00 +00:00
e3675555ea Update all digest updates 2024-10-17 21:02:30 +00:00
91104e214f Update Rust crate image to v0.25.3 2024-10-16 21:04:18 +00:00
9198b18652 Update Rust crate clap to v4.5.20 2024-10-08 21:04:51 +00:00
1ad7949828 Update Rust crate clap to v4.5.19 2024-10-01 21:03:54 +00:00
b98f01a810 Update Rust crate thiserror to v1.0.64 2024-09-24 09:34:04 +00:00
fa88050a52 Update all digest updates 2024-09-23 21:04:33 +00:00
1123c8a56e Update all digest updates 2024-09-15 21:07:25 +00:00
2eb6333552 Update Rust crate serde to v1.0.209 2024-08-24 12:51:04 +00:00
c5224e006f Update Rust crate serde_json to v1.0.127 2024-08-23 21:04:54 +00:00
79599f3cf4 Update Rust crate clap to v4.5.16 2024-08-15 23:00:19 +00:00
7acf99b9d6 Update all digest updates 2024-08-15 21:03:43 +00:00
ec542703b4 Update Rust crate serde to v1.0.207 2024-08-12 21:02:14 +00:00
ee1cdda38b Update Rust crate serde_json to v1.0.124 2024-08-11 21:42:34 +00:00
293a1de413 Update all digest updates 2024-08-11 21:04:17 +00:00
6635d4da9a Update Rust crate clap to v4.5.15 2024-08-10 21:04:17 +00:00
f549769fcf Update all digest updates 2024-08-08 21:05:42 +00:00
c0a56acc0c Update Rust crate serde_json to v1.0.122 2024-08-02 21:05:34 +00:00
a136dc5fa4 Update Rust crate clap to v4.5.13 2024-07-31 22:13:23 +00:00
1b13f2acfc Update Rust crate clap to v4.5.12 2024-07-31 21:03:54 +00:00
6c127ce028 Update Rust crate serde_json to v1.0.121 2024-07-29 21:03:12 +00:00
bc2e051741 Merge branch 'master' into renovate/ghcr.io-renovatebot-renovate-38.x 2024-07-26 17:12:49 +03:00
9abd2a4558 Update ghcr.io/renovatebot/renovate Docker tag to v38 2024-07-25 21:03:45 +00:00
f267a56fd0 Update Rust crate clap to v4.5.11 2024-07-25 21:03:42 +00:00
1d592418af Update Rust crate clap to v4.5.10 2024-07-23 21:02:15 +00:00
3448f0f930 Update Rust crate image to v0.25.2 2024-07-21 21:04:37 +00:00
039ed238a6 Added Gitea CI testing 2024-07-19 18:23:35 +04:00
b7349f9df9 Added CI check 2024-07-19 13:08:47 +00:00
12c7f0284e Added DevContainer 2024-07-19 13:08:46 +00:00
5c9a691495 Update Rust crate miette to v7 2024-07-19 12:43:23 +00:00
bf8be5c045 Update all digest updates 2024-07-19 12:41:15 +00:00
27 changed files with 996 additions and 495 deletions

View File

@ -0,0 +1,15 @@
{
"image": "mcr.microsoft.com/devcontainers/rust:latest",
"customizations": {
"vscode": {
"extensions": [
"rust-lang.rust-analyzer"
]
}
},
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined"
]
}

View File

@ -1,26 +0,0 @@
name: RenovateBot
on:
schedule:
- cron: "@daily"
push:
branches:
- master
jobs:
renovate:
container: ghcr.io/renovatebot/renovate:37
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run renovate
run: |
renovate
env:
LOG_LEVEL: debug
RENOVATE_CONFIG_FILE: renovate.config.cjs
RENOVATE_REPOSITORIES: ${{ gitea.repository }}
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}

14
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: "weekly"

View File

@ -1,24 +1,30 @@
{
"assignees": [
"valentineus"
],
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":disableDependencyDashboard"
],
"assignees": [
"valentineus"
],
"labels": [
"dependencies",
"automated"
],
"packageRules": [
{
"groupName": "all digest updates",
"groupSlug": "all-digest",
"matchPackagePatterns": [
"*"
],
"matchUpdateTypes": [
"minor",
"patch",
"pin",
"digest"
]
],
"matchPackageNames": [
"*"
],
"automerge": true
}
]
}
}

View File

15
.github/workflows/mirror.yml vendored Normal file
View File

@ -0,0 +1,15 @@
name: Mirror
on: [push]
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: yesolutions/mirror-action@master
with:
REMOTE: 'https://git.popov.link/fparkan.git'
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
GIT_PASSWORD: ${{ secrets.GIT_PASSWORD }}

12
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,12 @@
name: Test
on: [push, pull_request]
jobs:
test:
name: cargo test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo check --all
- run: cargo test --all-features

1282
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,6 @@
[workspace]
resolver = "2"
members = [
"libnres",
"nres-cli",
"packer",
"texture-decoder",
"unpacker",
]
members = ["libs/*", "tools/*"]
[profile.release]
codegen-units = 1

View File

@ -1,16 +0,0 @@
[package]
name = "libnres"
version = "0.1.4"
description = "Library for NRes files"
authors = ["Valentin Popov <valentin@popov.link>"]
homepage = "https://git.popov.link/valentineus/fparkan"
repository = "https://git.popov.link/valentineus/fparkan.git"
license = "GPL-2.0"
edition = "2021"
keywords = ["gamedev", "library", "nres"]
[dependencies]
byteorder = "1.4"
log = "0.4"
miette = "5.6"
thiserror = "1.0"

View File

@ -1,25 +0,0 @@
# Library for NRes files (Deprecated)
Library for viewing and retrieving game resources of the game **"Parkan: Iron Strategy"**.
All versions of the game are supported: Demo, IS, IS: Part 1, IS: Part 2.
Supports files with `lib`, `trf`, `rlb` extensions.
The files `gamefont.rlb` and `sprites.lib` are not supported.
This files have an unknown signature.
## Example
Example of extracting game resources:
```rust
fn main() {
let file = std::fs::File::open("./voices.lib").unwrap();
// Extracting the list of files
let list = libnres::reader::get_list(&file).unwrap();
for element in list {
// Extracting the contents of the file
let data = libnres::reader::get_file(&file, &element).unwrap();
}
}
```

10
libs/nres/Cargo.toml Normal file
View File

@ -0,0 +1,10 @@
[package]
name = "libnres"
version = "0.1.4"
edition = "2021"
[dependencies]
byteorder = "1.4"
log = "0.4"
miette = "7.0"
thiserror = "2.0"

View File

@ -1,20 +0,0 @@
[package]
name = "nres-cli"
version = "0.2.3"
description = "Console tool for NRes files"
authors = ["Valentin Popov <valentin@popov.link>"]
homepage = "https://git.popov.link/valentineus/fparkan"
repository = "https://git.popov.link/valentineus/fparkan.git"
license = "GPL-2.0"
edition = "2021"
keywords = ["cli", "gamedev", "nres"]
[dependencies]
byteorder = "1.4"
clap = { version = "4.2", features = ["derive"] }
console = "0.15"
dialoguer = { version = "0.10", features = ["completion"] }
indicatif = "0.17"
libnres = { version = "0.1", path = "../libnres" }
miette = { version = "5.6", features = ["fancy"] }
tempdir = "0.3"

View File

@ -1,6 +0,0 @@
module.exports = {
endpoint: "https://code.popov.link",
gitAuthor: "RenovateBot <renovatebot@noreply.localhost>",
optimizeForDisabled: true,
platform: "gitea",
};

14
tools/nres-cli/Cargo.toml Normal file
View File

@ -0,0 +1,14 @@
[package]
name = "nres-cli"
version = "0.2.3"
edition = "2021"
[dependencies]
byteorder = "1.4"
clap = { version = "4.2", features = ["derive"] }
console = "0.15"
dialoguer = { version = "0.11", features = ["completion"] }
indicatif = "0.17"
libnres = { version = "0.1", path = "../../libs/nres" }
miette = { version = "7.0", features = ["fancy"] }
tempdir = "0.3"

View File

@ -3,4 +3,4 @@
## Commands
- `extract` - Extract game resources from a "NRes" file.
- `ls` - Get a list of files in a "NRes" file.
- `ls` - Get a list of files in a "NRes" file.

View File

@ -5,4 +5,4 @@ edition = "2021"
[dependencies]
byteorder = "1.4.3"
image = "0.24.7"
image = "0.25.0"

View File

@ -38,4 +38,4 @@ It is essential to preserve the file index for the game to function correctly, a
Files can be replaced and packed back using the [packer](../packer).
The newly obtained game resource files are correctly processed by the game engine.
For example, sounds and 3D models of warbots' weapons were successfully replaced.
For example, sounds and 3D models of warbots' weapons were successfully replaced.