sotn-decomp/tools/sotn-assets
Luciano Ciccariello f1faef333a
Weapon assets and statically linked (#1470)
Allow to compile weapon overlays as a single C files. The benefit is to
disallow symbols to be exported by statically compile them all but the
header. We would no longer need to use `OVL_EXPORT` as long as the
symbols are marked as `static`. The frames data is also generated as an
array of data that can be just included into their respective C files,
generated by JSON files on the fly.

I changed `animset` to `frameset` as the data does not represent a set
of animations but rather a set of frames, where every frame has multiple
sprites. The information on how the frames are played (e.g. animation)
is found elsewhere.

Following the full list of changes to achieve this project:
* The `animset` from splat is now dummied out
* The `frameset` JSON is now generated by the asset manager
* The `frameset` JSON is now compiled into `src/weapon/w_0xx_y.h`
* The `header.c` has been moved into `shared.h`
* For simplicity I added a `#define g_Animset w_000_1`. I did not want
to hack the asset manager too much to force the name to be `g_Animset`
and I did not want to change all the symbols yet.
* Simplified `weapon_pc.c` as we now only need the exported header
* Always try to build the most up-to-date asset manager: this should
avoid weird errors whenever people pull new changes

As the asset manager now can accept those `config` files, now the CLI
supports the following commands:
* `stage extract`
* `stage build`
* `config extract` (NEW)
* `config build` (NEW)

The config structure is heavily inspired to Splat to maintain
consistency and continuity.
2024-08-09 00:57:26 +01:00
..
psx Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
asset_config.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
build.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
data_range.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
go.mod Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
go.sum Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
graphics.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
layer.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
layout.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
main.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
paths.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
room.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
sprites.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
tile_def.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
tile_map.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
utils.go Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00