Commit Graph

379 Commits (master)

Author SHA1 Message Date
BodgeMaster f0092b78d3 lib/nbt: Make list serielizer return an error when serializing a list with no contained type set 2022-10-08 23:35:21 +02:00
BodgeMaster b1ba33b39f test/nbt_tags: Implement unit tests for Float, Double, and Int8Array 2022-10-08 12:56:13 +02:00
BodgeMaster 833c09e2da lib/nbt: Fix a bug caused by having two return statements swapped 2022-10-08 12:54:05 +02:00
BodgeMaster b53999a548 tools/arraydump: Remove a debugging message that I accidentally left in 2022-10-08 08:32:02 +02:00
BodgeMaster 379903d751 tools/baseconvert: New tool
This tool allows for easy conversion between relevant bases
for unsigned numbers.

You may be able to coerce it into converting signed numbers into
unsigned numbers if you know how, though that is not an officially
supported use case (aka that’s using UB in the STL).
2022-10-08 08:29:01 +02:00
BodgeMaster 17792ec5bf lib/cli: Implement the "Additional Info" feature 2022-10-08 08:27:48 +02:00
BodgeMaster 9ce35b5c6b test/nbt_tags: Implement more tests 2022-10-08 08:25:57 +02:00
BodgeMaster be08a97275 tesst/nbt_tags: Choose a more sensible value for int8_0 2022-10-06 20:46:50 +02:00
BodgeMaster 6bdf99c897 test/nbt_tags: Implement tests for the first three tag types 2022-10-06 11:10:51 +02:00
BodgeMaster 936def1a65 lib/nbt: move a comment (yes, very important commit) 2022-10-06 11:09:58 +02:00
BodgeMaster 3cc1222de9 lib/nbt: Fix a bug in NBT::Helper::writeString()
Writing a string to a byte vector would result in it being replaced
with one holding only the string.
2022-10-06 10:21:59 +02:00
BodgeMaster ecf3b14b5a test/nbt_tags: I have no clue what’s going on here.
Committing so I can debug at my PC.
2022-10-06 09:59:48 +02:00
BodgeMaster 8da758becd scripts/test/arraydump: Add test 2022-10-05 06:26:41 +02:00
BodgeMaster 1e5051b503 setupenv: Remove check for xxd
`xxd` is no longer needed as arraydump has been rewritten in C++
2022-10-05 05:31:37 +02:00
BodgeMaster 3b4c125ca2 tools/arraydump: Reimplement in C++ 2022-10-05 05:26:04 +02:00
BodgeMaster 4cb1206839 lib/file: Fix isOpen not being set properly when closing and reopening; add destructor 2022-10-05 05:02:58 +02:00
BodgeMaster 39c5940200 lib/file: Fix a potential memory leak created by yours truly 2022-10-05 04:50:41 +02:00
BodgeMaster f3e03710f6 lib/file: Ensure a file is actually open before attempting to read 2022-10-05 04:07:46 +02:00
BodgeMaster 72fc923839 lib/nbt: remove now useless comment 2022-10-05 04:02:32 +02:00
BodgeMaster 5059bd0193 lib/file: change File::eof to a function
This is just way easier to implement and less messy.
2022-10-05 04:01:18 +02:00
BodgeMaster 8bb633f118 lib/error and lib/file: reassign code 9 to FILE_NOT_OPEN
These are not exceptions so we don’t need multiple variants of
generic error in case someone wants to catch it somewhere
up the call stack.

It’s okay to use UNKNOWN for generic errors where we don’t know
exactly what happened.
2022-10-05 03:48:05 +02:00
BodgeMaster ec44ac9531 lib/file: Check if there are enough bytes left to read 2022-10-05 03:46:42 +02:00
BodgeMaster 341b4c187e lib/file: Fix (potential) memory leaks 2022-10-05 03:30:01 +02:00
BodgeMaster 79650e390e lib/nbt: Implement the rest of the functions outline in the header
This concludes the implementation of the in-memory NBT representation.
This is still all untested code so it might just blow up in your face.
The next step will be writing tests (and probably a lot of cursing and
debugging)...
2022-10-05 01:12:38 +02:00
BodgeMaster 2d2b67373c lib/nbt: Yesterday’s progress of implementing more of the functions in the header 2022-10-04 02:39:58 +02:00
BodgeMaster 4c4366f7e6 lib/nbt: Partially update documentation to current terminology.
Would probably be better if it were moved to doc/ and completely rewritten.
2022-10-02 07:48:03 +02:00
BodgeMaster 4ef1d2c44f lib/nbt: Split serializer into two components
One for serializing full tags and one for serializing tags without
their header.

The former is what used to be `toRawData` - though a bunch of
duplicated code has been removed by just moving it to the Generic
type class instead of having an implementation on the sub-classes.

The latter is useful for serializing lists.

The previous warning that all of this is untested still applies.
2022-10-02 07:47:12 +02:00
Shwoomple 5920d1d004 commit merge 2022-10-02 08:42:33 +05:30
Shwoomple 056c1e6b11 lib/file.cpp: fix read fubctions. 2022-10-02 08:38:39 +05:30
BodgeMaster 8b1491c311 lib/nbt: Add missing class prefix to function names 2022-10-01 04:57:45 +02:00
BodgeMaster fc2caf3bc0 lib/nbt: Implement more member functions for tag types 2022-10-01 04:51:53 +02:00
BodgeMaster 89baeebc65 lib/file: Switch to using pointers for passing File objects around 2022-09-30 20:10:28 +02:00
Shwoomple c204aa7d76 lib/file.cpp:Fix exception warnings 2022-09-30 22:41:55 +05:30
BodgeMaster 09503d3dc7 lib/file: Remove accidentally included C header 2022-09-30 18:31:49 +02:00
BodgeMaster 9fb06c998e scripts/build: Temporarily comment out hexnet 2022-09-30 18:31:20 +02:00
BodgeMaster aa97154474 lib/error: Remove misplaced code fragment
brea
2022-09-30 18:09:23 +02:00
BodgeMaster 9abfd9e5a9 setupenv: Move sourcing the local environment before FOSS-VG environment adjustments 2022-09-30 17:55:17 +02:00
Shwoomple 150ce826ba complete merge 2022-09-30 11:03:05 +05:30
Shwoomple 3449e3b9c4 lib/file: Implement broken file functions 2022-09-30 11:02:46 +05:30
Charlie Root 213d28a9b8 setupenv: Fix syntax errors 2022-09-30 06:13:38 +02:00
Shwoomple c1d7801436 complete merge 2022-09-28 08:22:09 +05:30
Shwoomple 9610f4a4a2 lib/file: implement open function 2022-09-28 08:21:39 +05:30
BodgeMaster 434c976cc5 lib/nbt: Continue implementing in-memory NBT tag data types
This is still all unvalidated work.
For all I know it might cause your computer to burst into flames,
grow an arm and a leg and an eye, and attack you with a sword.
But probably, it will just not work and I will realize that sleepy
past me was a fucking idiot (as always).
2022-09-28 03:43:54 +02:00
BodgeMaster 47fd1f8970 test/nbt_read_write_helpers: Change unnecessarily long string to be just one above the allowed size 2022-09-26 23:53:53 +02:00
BodgeMaster 10b1d9fa0c lib/nbt: Start implementing NBT data types, make NBT::Helper::writeString() return an error instead of aborting the program
The former is finally some progress on getting NBT going,
though at this point it is all unvalidated work.
For all I know it might cause your computer to burst into flames,
grow an arm and a leg and an eye, and attack you with a sword.
But probably, it won’t do that and instead start working after I
have debugged it so much that I wish I could attack my PC with a sword.

The latter is the implementation of a change I prepared in a previous commit
when i added ErrorOrVoid.
2022-09-26 03:11:44 +02:00
Shwoomple e8d41efeef lib/error.hpp: fix merge conflicts 2022-09-19 16:21:25 +05:30
Shwoomple 508b5e67e7 lib/error.hpp: add file errors 2022-09-19 16:19:52 +05:30
BodgeMaster 398321e415 test/nbt*: Replace NBT::helper with NBT::Helper
Yes, I forgot to run the test suite before committing.
This is why we need CI.
2022-09-19 11:47:29 +02:00
BodgeMaster 53878c3e2b lib/nbt: Start implementing the in-memory data structure for NBT 2022-09-15 06:06:47 +02:00
BodgeMaster ad291ee77d lib/nbt: Capitalize NBT::Helper because I feel like it 2022-09-15 02:00:07 +02:00