Phillip Stephens
30bcdb2b2f
Add TextureCache support to MP2 and 3
2020-04-11 00:53:04 -07:00
Jack Andersen
3dd485e0eb
Fix MP3 PASS extract with null textures
2020-04-10 19:42:14 -10:00
Jack Andersen
26f272735d
Set compiler flags for building with C++20
2020-04-10 19:05:55 -10:00
Phillip Stephens
5f2ce02b05
Fix extracting RS5FE.pak
2020-04-09 23:26:27 -07:00
Phillip Stephens
0085f0b16f
Merge branch 'mp2-fixes'
2020-04-09 20:27:22 -07:00
Jack Andersen
9a87a24439
Remove redundant condition from MP2's GetNoShare
2020-04-09 17:21:05 -10:00
Jack Andersen
ad411a940b
Merge branch 'mp2-fixes' of ssh://git.axiodl.com:6431/AxioDL/urde into mp2-fixes
2020-04-09 17:20:48 -10:00
Jack Andersen
380cc13abb
Fixes for MP3
2020-04-09 17:20:20 -10:00
Luke Street
859d5e9068
DNAMP2: Mark FrontEnd as non-shared
2020-04-09 22:46:09 -04:00
Lioncash
e22ecf644d
SpecMP1: Remove usage of const_cast
...
The preceding commit marked this mutex as mutable, so we can remove the
const_cast usage here.
2020-04-09 20:28:48 -04:00
Lioncash
cf054f35a3
SpecBase: Remove usages of const_cast
...
It's generally the case that mutexes are marked as mutable whenever they
need to be used within a const class context, given they don't directly
participate as a bitwise member of the class, but only transiently exist
so that synchronization operations can occur.
Given that, marking the member as mutable in this case makes sense.
2020-04-09 20:26:31 -04:00
Jack Andersen
e858c929e3
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde into mp2-fixes
2020-04-09 13:04:37 -10:00
Jack Andersen
a668a623cb
Exclude bitmap3 from MP3's PATH
2020-04-08 20:03:52 -10:00
Jack Andersen
e4ade45fd1
Remove unnecessary includes
2020-04-08 19:50:29 -10:00
Jack Andersen
73f245ee27
Specialize PATH by PAKBridge
2020-04-08 19:46:40 -10:00
Jack Andersen
df229671c4
MP2 PATH support
2020-04-08 19:19:50 -10:00
Jack Andersen
5b0a4b5f60
Implement MP2 shader extraction presets
2020-04-08 16:24:18 -10:00
Phillip Stephens
ff0cf969c2
Initial CDrone imps
2020-04-06 13:58:36 -07:00
Phillip Stephens
d033ddeb1d
Initial CDrone imp
2020-04-06 13:57:36 -07:00
Lioncash
fa2f37a14c
DNAMP3/PAK: Make use of unique_ptr in getBuffer()
...
Same motivation as the previous change: seating the allocated memory
into a type that will always do the right thing immediately, rather than
later.
2020-04-05 10:20:59 -04:00
Lioncash
9e503edaf1
PAK: Make use of unique_ptr in getBuffer()
...
Same behavior, however we seat the allocated memory into a unique_ptr
from the get-go to prevent any possible memory being leaked.
2020-04-05 10:16:09 -04:00
Lioncash
11c40415f5
TXTR: Mark constexpr functions static
...
Same behavior, but makes them internally linked.
2020-03-31 20:36:45 -04:00
Lioncash
d3295cbb87
TXTR: Make use of const(typedefs) where applicable
...
Same behavior, but signifies read-only semantics.
Also resolves a few -Wcast-qual warnings.
2020-03-31 17:36:17 -04:00
Lioncash
8132375c69
TXTR: Eliminate variable shadowing
2020-03-31 17:02:55 -04:00
Lioncash
d337327b97
DNACommon: Mark hash overloads as noexcept
...
These functions shouldn't throw at all.
By extension, also mark the UniqueID class interfaces as noexcept.
2020-03-31 16:55:19 -04:00
Lioncash
96fa7af8b5
STRG: Convert file-scope std::vector to std::array
...
Eliminates a runtime-static constructor and heap allocation at program
start.
2020-03-31 14:15:09 -04:00
Lioncash
16c37abf79
DNAMP3: Prevent unnecessary copies
2020-03-31 13:24:34 -04:00
Lioncash
93f107cb79
STRG: Avoid unnecessary copies
...
Makes several functions significantly less copy intensive. See previous
commit for reason.
2020-03-31 13:23:21 -04:00
Lioncash
3d0270cf82
DNAMP2: Prevent unnecessary copies
...
Auto-deduces the exact type instead of using a similar, but slightly off
pair type (which causes a copy).
2020-03-31 13:19:50 -04:00
Lioncash
d8ed1a5e79
RetroDataSpec: Convert typedefs to using aliases
...
Same behavior, but nicer to read.
2020-03-31 13:11:24 -04:00
Lioncash
9ef2fbba5a
RetroDataSpec: Make use of make_unique where applicable
...
Same behavior, but without a mildly wonky way of performing it.
2020-03-31 13:06:27 -04:00
Lioncash
53694481e5
SpecMP2: Make use of emplace_back()'s return value
...
Same behavior, less code.
2020-03-31 12:46:20 -04:00
Lioncash
e6f217bf25
SpecMP2: Prevent unnecessary copies in buildPaks()
...
Uses auto to properly deduce the intended return type in iteration (pair
with a const string), which prevents a copy from needing to be
generated.
2020-03-31 12:43:42 -04:00
Lioncash
97fd815afa
SpecMP1: Make use of emplace_back() where applicable
...
Same behavior, but allows in-place construction.
2020-03-31 12:40:37 -04:00
Lioncash
9af90efb7d
SpecMP1: Make use of emplace_back()'s return value
...
Same behavior, less code.
2020-03-31 12:38:31 -04:00
Lioncash
305262eb29
SpecMP1: Prevent unnecessary copies in buildPaks
...
Previously the type mismatched by a single const qualifier, which meant
a copy would have to occur.
Instead, we can use auto to avoid this issue from occurring and allowing
the proper type to be automatically deduced.
2020-03-31 12:36:18 -04:00
Lioncash
ac28575e9d
SpecMP3: Make use of emplace_back()'s return value
...
Same behavior, less code.
2020-03-31 12:33:51 -04:00
Lioncash
be1d77f550
SpecMP3: Remove unnecessary initializer
2020-03-31 12:33:51 -04:00
Lioncash
94c4c0f102
SpecMP3: Prevent unnecessary copies
...
Prevents iterating over elements by value and also uses auto to ensure
the iterated item matches 1:1.
2020-03-31 12:32:57 -04:00
Lioncash
315becf1b5
ATBL: Collapse std::vector construction and resize into one another
...
Same behavior, less code.
2020-03-31 07:36:26 -04:00
Lioncash
3e084d2ae2
AROTBuilder: Convert defines into constexpr variables
...
Same behavior, but with concrete types.
2020-03-31 07:33:25 -04:00
Lioncash
da4b1d5e7d
AROTBuilder: Collapse manual loops into ranged for loops
...
Same behavior, minus the induction variable to follow
2020-03-31 07:31:04 -04:00
Lioncash
84141eeb25
AROTBuilder: Eliminate variable shadowing
2020-03-31 07:31:04 -04:00
Lioncash
a2709f1d20
AROTBuilder: Make use of std::array where applicable
...
While we're at it, we can dehardcode some sizes.
2020-03-31 07:31:01 -04:00
Jack Andersen
76fc829c6b
Merge branch 'new-particle-metaclass'
2020-03-30 11:38:01 -10:00
Lioncash
8d0a8ea52e
SCAN: Convert file-scope std::vector into constexpr std::array
...
Same behavior, but without any runtime heap allocations at program
start.
2020-03-29 08:46:03 -04:00
Jack Andersen
566b15766c
Refactor particle serialization to use generative meta-information
2020-03-28 21:29:27 -10:00
Phillip Stephens
0c3d6c7f27
Initiaal material imps
2020-03-24 23:13:31 -07:00
Phillip Stephens
eb9efbf8c3
Initial PATH support for MP2
2020-03-17 23:12:43 -07:00
Phillip Stephens
25842949a9
Initial MP2 fixes
2020-03-17 15:56:14 -07:00
Luke Street
316128b7af
Use bintoc_compress; reduce URDE/HECL binary sizes
2020-03-02 02:02:57 -05:00
Phillip Stephens
1c5fd85b57
Correct ITweakPlayerRes offset
2020-03-01 16:56:38 -08:00
Luke S
be51b0323f
Merge pull request #169 from lioncash/array
...
ITweakPlayerRes: Make use of std::array where applicable
2020-02-28 10:35:57 -05:00
Luke S
1cfe88fab1
Merge pull request #168 from lioncash/bind
...
SpecBase: Remove redundant std::bind
2020-02-28 10:35:30 -05:00
Lioncash
3f3b0e6ba8
ITweakPlayerRes: Make use of std::array where applicable
...
Performs the same changes that were recently applied to ITweakGunRes for
consistency. Also eliminates some sign conversion warnings and
deduplicates some array sizes.
2020-02-28 01:50:32 -05:00
Lioncash
be4252127b
SpecBase: Remove redundant std::bind
...
std::thread can already execute the supplied function as is without the
assistance of std::bind.
2020-02-28 01:25:14 -05:00
Lioncash
fc3ef2fddd
SpecBase: Flatten loop within flattenDependenciesBlend()
...
We can use insert() with make_move_iterator() to perform the same
behavior, minus unnecessary copies.
While we're at it, we can collapse the code within the Area case, since
it's the exact same as the Mesh code.
2020-02-26 14:52:20 -05:00
Luke S
08604d770a
Merge pull request #163 from lioncash/data
...
ITweakGunRes: Minor cleanup
2020-02-25 22:32:25 -05:00
Lioncash
e80d9c7192
ITweakGunRes: Make use of std::array where applicable
...
Deduplicates a few array sizes and makes the member variables more
strongly typed.
2020-02-25 15:50:37 -05:00
Lioncash
b608a72aad
ITweakGunRes: Remove unnecessary c_str() calls
...
These functions already return the data type that GetResourceIdByName()
expects. Has the side-effect of also eliminating unnecessary strlen
calls.
2020-02-25 15:34:22 -05:00
Lioncash
a92bc16265
ITweakPlayerRes: Remove unnecessary calls to .data()
...
All of these functions return a string_view, which is accepted by
GetResourceIdByName(), so this avoids several unnecessary std::strlen
calls.
2020-02-25 02:09:45 -05:00
Lioncash
189b03c001
ITweakPlayerRes: Fix mismatched icon retrievals within ResolveResources()
...
Previously, all of these icons were using the first top icon, rather
than their own respective icons.
This amends that.
2020-02-25 02:07:15 -05:00
Lioncash
5ff100fdd1
DNAMP1/ScriptObjects: Convert SCRIPT_OBJECT_DB into a std::array
...
Now that all elements of the std::vector would otherwise be constexpr,
we can use a std::array here instead, given they're all able to
deterministically be available at compile-time.
This gets rid of a runtime static heap allocation at program start.
2020-02-24 03:42:24 -05:00
Lioncash
2ec236fc45
DNAMP1/ScriptObjects: Trim headers in ScriptObjects.hpp
...
All of these can be migrated into the cpp file, since they're only used
there.
Greatly reduces the amount of work the preprocessor has to do in files
that include this one.
2020-02-24 03:42:05 -05:00
Lioncash
e27ac1e2a1
DNAMP1/ScriptObjects: Eliminate several runtime static constructors
...
All of these entries make use of captureless lambdas, so there's no need
to make use of std::function. We can just use a regular function
pointer, which allows making all of the file-static entries within
IScriptObject constexpr. Eliminating all of their runtime static
constructors.
2020-02-24 03:20:39 -05:00
Jcw87
7be3f4febb
Fixed character type mismatch.
2020-02-15 12:24:50 -08:00
Phillip Stephens
8d90edd55f
Initial CChozoGhost imp
2020-01-20 20:00:40 -08:00
Luke Street
56c3221733
Merge branch 'blender2.81'
2019-12-22 18:32:55 -05:00
Phillip Stephens
1a13f7e4ee
Update submodules, initial CTextureCache
2019-12-10 20:51:33 -08:00
Luke Street
cce11d3cd9
Blender 2.81 support
2019-12-10 18:45:55 -05:00
Phillip Stephens
34e78a2dd0
Move CParticleGlobals from the executable and onto the heap, minor fixes, update wiki link
2019-12-03 00:47:05 -08:00
Phillip Stephens
9e2486ba0e
Use `std::string::empty` rather than string comparison
2019-10-13 19:47:24 -07:00
Phillip Stephens
6260708ba4
Cook/cache fixes for unset original IDs
2019-10-13 19:45:43 -07:00
Phillip Stephens
5f0f3ea45c
More tweak CVars
2019-10-05 07:07:13 -07:00
Jack Andersen
e1d46755a3
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde
2019-09-30 21:41:42 -10:00
Jack Andersen
16ca0d24c2
Explicit Asset ID refactor
2019-09-30 21:38:03 -10:00
Phillip Stephens
79ac5d76df
Update hecl, more CVar imps
2019-09-29 08:17:55 -07:00
Phillip Stephens
56b198838f
Update hecl
2019-09-29 05:44:37 -07:00
Lioncash
5b7f159233
General: Be explicit about athena's Endian type
...
Allows this code to still compile if the Endian type is ever changed
into a strong enumeration.
2019-09-14 11:01:01 -04:00
Lioncash
bf818a883e
DataSpec: Be explicit about athena's SeekOrigin type
...
This was missed in 9c0d13f001
2019-09-08 16:44:02 -04:00
Lioncash
9c0d13f001
DataSpec: Be explicit about athena's SeekOrigin type
...
Allows code to still function properly if the enum is changed into an
enum class.
2019-09-07 21:20:01 -04:00
Phillip Stephens
c2777b42f8
Merge pull request #55 from lioncash/typo
...
WPSC: Correct typo within WPSM's _read() function
2019-09-06 23:20:29 -07:00
Lioncash
8556a74196
WPSC: Correct typo within WPSM's _read() function
...
This should be calling read() on xunk_SPS1, not xunk_SPS2
2019-09-06 08:42:35 -04:00
Lioncash
66ce2774d5
DNAMP1/CTweakPlayerGun: Prevent array overrun cases
...
These arrays are both 5 elements in size. Accessing them at index 5
would be out of bounds.
2019-09-06 08:13:10 -04:00
Lioncash
7a0e7f449e
PAK: Make operator bool() explicit for PAKEntryReadStream
...
Prevents potential error-prone conversions to bool.
2019-09-05 00:59:32 -04:00
Lioncash
107dfc4203
PAK: Zero initialize m_sz and m_pos of PAKEntryReadStream
...
Provides a deterministic initial state for the members in the case of
the default constructor.
2019-09-05 00:57:57 -04:00
Lioncash
da89e7cf45
SpecBase: Add missing includes
2019-09-04 19:30:04 -04:00
Jack Andersen
ca0ca94b18
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde
2019-08-31 10:40:41 -10:00
Jack Andersen
cffb56a24e
MacOS build fixes
2019-08-31 10:40:07 -10:00
Phillip Stephens
256994c199
Initial CEnergyBall, update submodules, various fixes
2019-08-31 02:02:21 -07:00
Phillip Stephens
3ca09f60db
atdna fixes
2019-08-26 20:02:31 -07:00
Lioncash
1d3062b33f
General: Make use of FopenUnique where applicable
...
Migrates to the hecl Fopen variant that automatically closes its
contained file handle if it goes out of scope.
2019-08-26 15:03:58 -04:00
Phillip Stephens
4ac54f39cd
Merge branch 'fwd' of https://github.com/lioncash/urde into lioncash-fwd
2019-08-23 20:43:15 -07:00
Lioncash
7f7a18a708
DataSpec/DNACommon: Resolve indirect includes where applicable
...
Avoids indirect inclusions where applicable and includes the necessary
headers as used by the interface. This way, it prevents code from
failing to compile due to changes in other header inclusions.
2019-08-23 22:03:03 -04:00
Phillip Stephens
f2b551b89b
Minor compile fixes, fix potential undefined behavior in CMDL.cpp
2019-08-23 17:09:21 -07:00
Lioncash
b064967de8
DNACommon: Replace platform-specific string conversion functions with standard facilities
...
These can be replaced with std::strtoull and std::wcstoull, eliminating
a platform-specific ifdef.
2019-08-23 14:27:00 -04:00
Phillip Stephens
a41bd828e7
Update submodules
2019-08-18 18:49:54 -07:00
Phillip Stephens
44ea9e68ed
Update submodules
2019-08-17 23:01:05 -07:00
Phillip Stephens
d4b36699b7
Merge pull request #43 from lioncash/spec-const
...
RetroDataSpec: Make member functions const where applicable
2019-08-15 07:46:46 -07:00
Lioncash
11098374a4
RetroDataSpec: Use fmt::print where applicable
...
Replaces uses of fprintf with fmt::print where applicable. For trivial
character insertion, we can make use of fputc instead of fprintf.
2019-08-14 22:44:49 -04:00