Lioncash
fd61ba6cc7
driver/main: Factor out project finding code to its own function
...
Keeps the logic contained within its own function and makes the
assignment more straightforward within main().
2019-08-19 21:18:05 -04:00
a41bd828e7
Update submodules
2019-08-18 18:49:54 -07:00
1fb18dbf26
Update boo
2019-08-18 18:49:27 -07:00
50a7f7a860
Fix compiling with update boo
2019-08-18 12:42:19 -07:00
44ea9e68ed
Update submodules
2019-08-17 23:01:05 -07:00
269ca8a7ec
Update boo
2019-08-17 22:59:38 -07:00
23c718fe18
Update submodules
2019-08-16 18:39:05 -07:00
8a04686ca6
Merge branch 'master' of ssh+git://git.axiodl.com/AxioDL/hecl
2019-08-16 18:38:37 -07:00
e4d66745f5
Update submodules
2019-08-16 18:38:25 -07:00
0c3ed33d74
Update submodules
2019-08-15 20:41:47 -07:00
8f8dd5342f
Merge branch 'master' of ssh+git://git.axiodl.com:6431/AxioDL/hecl
2019-08-15 20:38:08 -07:00
ee3b98dbfe
Update athena
2019-08-15 20:36:27 -07:00
9a922de6c1
Update submodules
2019-08-15 16:09:05 -07:00
c411f6e784
Update athena
2019-08-15 16:08:31 -07:00
eaf5ba4b34
Update submodules
2019-08-15 08:41:25 -07:00
5ae5edfc46
Update athena
2019-08-15 08:41:04 -07:00
3cbf5028cd
Update submodules
2019-08-15 07:53:27 -07:00
fb529992ca
Update athena
2019-08-15 07:52:37 -07:00
401ef19682
Merge pull request #5 from lioncash/fcc
...
hecl/FourCC: Remove undefined behavior and make rest of interface constexpr where applicable
2019-08-15 07:47:29 -07:00
23551de349
Merge pull request #3 from lioncash/str
...
hecl/hecl: Minor changes and improvements to string utilities
2019-08-15 07:47:17 -07:00
1ea371b5cd
Merge pull request #4 from lioncash/hash
...
hecl/hecl: Make Hash interface constexpr where applicable
2019-08-15 07:46:56 -07:00
d4b36699b7
Merge pull request #43 from lioncash/spec-const
...
RetroDataSpec: Make member functions const where applicable
2019-08-15 07:46:46 -07:00
b3837b675f
Merge pull request #44 from lioncash/fmt
...
RetroDataSpec: Use fmt::print where applicable
2019-08-15 07:46:36 -07:00
Lioncash
477645f15d
hecl/FourCC: Amend clang-format discrepancies
...
These were formatting discrepancies that existed before all of the
previous changes. We may as well resolve them so that others don't run
into them.
2019-08-15 06:49:20 -04:00
Lioncash
64ac2e423e
hecl/FourCC: Make use of constexpr constructors where applicable
2019-08-15 06:48:38 -04:00
Lioncash
9e7661eb7a
hecl/FourCC: Make rest of FourCC interface constexpr where applicable
...
Finally, we can make the rest of the interface constexpr, except for
toString().
2019-08-15 06:48:38 -04:00
Lioncash
2f9010bc9f
hecl/FourCC: Eliminate magic values in DNAFourCC
2019-08-15 06:48:38 -04:00
Lioncash
1382bbf365
hecl/FourCC: Implement operator!= in terms of operator==
...
Deduplicates the amount of written code. Now code only needs to ever
change in operator== to automatically reflect across the two functions.
2019-08-15 06:48:38 -04:00
Lioncash
06c436b68d
hecl/FourCC: Eliminate undefined behavior within FourCC interface
...
Type punning like this isn't actually well-defined behavior. Only
casting to char/unsigned char is well defined. This presents a problem
when using FourCC instances in constexpr contexts, given constexpr
contexts are forbidden from having undefined behavior in them.
Because of that, any attempt to use the const char* constructor within a
constexpr context would always result in a compilation error.
2019-08-15 06:48:31 -04:00
Lioncash
0f74cce2ca
hecl/FourCC: Tidy up constructors
...
Marks constructors as noexcept and explicitly defaults the copy
constructor/assignment and move constructor/assignment.
2019-08-15 05:28:11 -04:00
Lioncash
9ec19d99cd
hecl/hecl: Make hash constructors explicit where applicable
2019-08-15 03:06:56 -04:00
Lioncash
06548409f8
hecl/hecl: Make Hash constexpr
2019-08-15 03:00:42 -04:00
Lioncash
216b038a7d
hecl/SystemChar: Unify StrLen implementations and make constexpr
...
We can utilize std::char_traits to generically handle the defined
character type. Since C++17, std::char_traits' length() function is
constexpr, so we can also make StrLen constexpr.
2019-08-15 02:28:31 -04:00
Lioncash
58e0c7eaa7
hecl/SystemChar: Cast to unsigned char before calling tolower/toupper
...
Performed for the same reasons outlined within
b32f16b519eafacb9de4852855486270f73d5e2e (avoiding undefined behavior).
2019-08-15 02:28:31 -04:00
Lioncash
b63d848846
hecl/hecl: Amend lingering formatting inconsistencies
...
Amends formatting issues that were pre-existing to get them out of the
way.
2019-08-15 02:28:09 -04:00
Lioncash
485782e3a7
hecl/hecl: Convert typedefs to using aliases
...
Same thing, but slightly nicer to read.
2019-08-15 02:26:12 -04:00
Lioncash
eb872cdf88
hecl/hecl: Assign ResourceLock's good member in the initializer list
...
Same behavior, but more idiomatic. While we're at it, we can make said
constructor and the conversion operator explicit to make the class a
little less error-prone.
2019-08-15 02:26:12 -04:00
Lioncash
92b87676c2
hecl/hecl: Make Entry take SystemString by value and move it
...
This allows callers to move into the constructor and subsequently move
into the member variable, avoiding copies altogether.
2019-08-15 02:26:12 -04:00
Lioncash
dae3e6123f
hecl/hecl: Make string conv operator+ instances friend functions
...
Makes both operators symmetrical to one another.
2019-08-15 02:26:12 -04:00
Lioncash
c7aae83a75
hecl/hecl: Slightly improve resource usage within string conv operator+ funcs
...
We already construct a std::string instance, so we can just append to
it instead of creating another temporary with std::string's operator+.
We also change this to append using the string view getter functions, as
this allows the appending process to do less work. When a pointer is
passed in, a strlen call would need to be performed in order to
determine the total characters to append. However, we already know the
size (via the string view).
2019-08-15 02:26:12 -04:00
Lioncash
c513a4b61f
hecl/hecl: Make use of std::char_traits with StrNCmp
...
Same behavior, but allows removing the use of ifdefs, unifying the code
paths.
2019-08-15 02:26:12 -04:00
Lioncash
ef6b41ea15
hecl/hecl: Amend string functions operating on string views to use interface functions
...
We don't really need to call out to the C functions to perform the
comparison behavior when the views already have a comparison function
as part of their interface.
2019-08-15 02:26:03 -04:00
Lioncash
e0b5a4e2f7
hecl/hecl: Cast to unsigned char before calling std::isspace
...
std::string_view instances can contain character values that lie outside
the range of an unsigned char (negative values). If such a value is
passed into std::isspace, then the behavior of the function is
undefined. To avoid this, we add these casts.
2019-08-15 01:21:10 -04:00
Lioncash
91ff474c44
hecl/hecl: Handle bounded strings within CaseInsensitiveCompare
...
std::string_view instances aren't guaranteed to be null-terminated, so
we shouldn't be treating them as if they are in these functions, and
should instead use a bounded comparison based off their sizes.
This way we prevent an edge-case from ever becoming a problem and also
remove an ifdef, making the code uniform across all implementations.
2019-08-15 01:21:04 -04: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
Lioncash
2517fac404
RetroDataSpec: Make member functions const where applicable
...
Marks member functions that don't modify instance state as const.
2019-08-14 22:25:15 -04:00
fa7785d024
Fix GetAreaFog
2019-08-14 12:56:46 -07:00
ea12a54a41
Merge pull request #42 from lioncash/const
...
Runtime: Make const/non-const getters have the same name
2019-08-14 12:47:52 -07:00
Lioncash
afab3e0327
Runtime: Make const/non-const getters have the same name
...
Makes for a more consistent interface, as getters won't have different
names to remember based off whether or not they're const qualified.
2019-08-14 12:45:57 -04:00
6760f78568
Update jbus
2019-08-14 07:12:09 -07:00