Commit Graph

245 Commits (01e5f5eaac6838bbbf20a021134c4a52f83b12b3)

Author SHA1 Message Date
BodgeMaster 01e5f5eaac lib/region: Start working on region file parser
Something is fishy with dumpnbt or lib/nbt.
Attempting to dump the extracted chunk fails, but external tools
do manage to parse it.
2023-05-29 14:47:19 +02:00
BodgeMaster 6112da2e6f lib/game: Start working on game internals
Btw: I lost the game.
2023-01-27 03:32:43 +01:00
BodgeMaster b07d6e2ff6 fossvg (client): Clean up GLFW-related code
- add some Vulkan-specific things to deal with GLFW
- get rid of useless warnings
- allow to set window size from the command line

The Window size is fixed for now because that will hopefully make
things easier in the strt. I intend to have a resizable window
in the future but getting things going is more important.
2023-01-27 01:20:29 +01:00
BodgeMaster 4247bd295a fossvg (client): Commit to using Vulkan
I have decided that we are going to use Vulkan for this. Hopefully, it works out.
This commit removes some OpenGL-specific things and adds Vulkan to the build command line.
2023-01-27 01:20:29 +01:00
BodgeMaster e152c72a04 fossvg (client): Create window 2023-01-09 20:43:49 +01:00
BodgeMaster c245e8a5ca lib/{file,javacompat,net/conversion/position,net/conversion/varint,net/packet}: pragma once 2022-12-30 15:38:33 +01:00
BodgeMaster 10d8cdae22 lib/net/{client,server,packet}: Prepare for networking 2022-12-29 03:31:56 +01:00
BodgeMaster c6ec0f6850 lib/net/conversion/position: Remove misattributed author
Yeah, I just copied the header from somewhere else...
2022-12-27 17:34:16 +01:00
BodgeMaster 85fc73e015 lib/net/conversion/position.hpp: Add library
Unit tests tbd
2022-12-27 17:28:11 +01:00
BodgeMaster d2861b79ac lib/net/conversion/varint: move lib/varint here 2022-12-27 16:24:59 +01:00
BodgeMaster 9403da4ca0 lib/varint: Fix error handling for out of bounds access 2022-12-27 15:44:05 +01:00
BodgeMaster ad5bf1c41a lib/cli: Remove completely useless TODO 2022-12-20 17:06:22 +01:00
BodgeMaster 7108e71b96 lib/varint: Add toVarN() functions 2022-12-20 04:41:09 +01:00
Shwoomple 26df433dc5 lib/file: Implement cutString function 2022-12-04 09:59:28 +05:30
BodgeMaster 44716a55bb lib/varint: Fix fromVar64 function
The problem was that I let the compiler assume data type widths.
`1 << 63` is a 32 bit integer on x86_64-pc-linux-gnu.
2022-11-26 14:50:02 +01:00
BodgeMaster fe7c763d06 lib/varint: Add VarInt library
Minecraft uses 32-bit and 64-bit VarInt types to cut down on network usage.
This library currently contains read functions for conversion to normal integers.

Something seems to be wrong with the converter for 64-bit varints,
can’t figure out what rn.
2022-11-25 22:19:49 +01:00
BodgeMaster d392e080ca test/nbt_tags: Add tests for constructing invalid lists/compounds 2022-11-25 17:07:35 +01:00
BodgeMaster 60a8ac9788 lib/nbt: Make constructor NBT::Tag::Compound::Compound(name, data) private
The constructor has been made private and replaced with a static wrapper
function to make constructing from invalid data impossible.

If there is more than one end tag or an end tag isn’t at the end,
an error will be returned.
2022-11-25 15:52:24 +01:00
Shwoomple bc2255de6b lib/file: Fix issue #71 - Electric Boogaloo (Out of bounds access)
Add size constraint to make sure string terminates at the correct
length. Cygwin appears to not put null bytes to terminate string when
reading from a file stream.
2022-11-12 11:51:43 +05:30
Shwoomple 9bda607649 lib/file: Implement cut function. 2022-11-12 10:59:08 +05:30
Shwoomple 76dd30c45a lib/file:Fix issue #71 (Out of Bounds access) 2022-11-12 10:58:27 +05:30
Shwoomple f784948c3e lib/file: fix cutByte filesize bug 2022-10-30 16:10:33 +00:00
Shwoomple d794bce288 lib/file.cpp: Implement cutByte function 2022-10-30 16:10:33 +00:00
BodgeMaster 5ff8a871ad lib/javacompat: Make this a header library
Cygwin build issues were caused by lib/nbt impleicitly linking against this
2022-10-30 04:55:58 +01:00
BodgeMaster 4abb1f223c lib/nbt: Lists can no longer be constructed from invalid sets of data
The constructor `NBT::Tag::List::List(tiny_utf8::string, std::vector<NBT::Tag::Generic*>)`
is now private and has a wrapper function `NBT::Tag::List::constructWithData(tiny_utf8::string, std::vector<NBT::Tag::Generic*>)`
that performs a sanity check on the data it is given.
2022-10-28 04:08:06 +02:00
BodgeMaster c9b56d4d7f tools/dumpnbt: Remove unused CLI flag 2022-10-28 02:45:25 +02:00
BodgeMaster 7bccaca7b9 fossvg and fossvgd: Add stub programs for client and server 2022-10-28 01:53:20 +02:00
BodgeMaster b5c18cd0de tools/hexnet: Implement bi-directional communication 2022-10-23 01:48:47 +02:00
BodgeMaster a1ba08b7db tools/hexnet: Shut down connections when gracefully handling signals 2022-10-23 01:47:44 +02:00
BodgeMaster 1d7e98d0b3 tools/hexnet: Implement function for reading bytes from stdin 2022-10-23 01:45:59 +02:00
BodgeMaster a7e07d2c3c tools/hexnet: Implement UDP support (and minor refactoring) 2022-10-22 18:51:29 +02:00
BodgeMaster 7ae843039c tools/hexnet: Implement TCP v6 handler, rename readFromTCPSocket to readFromTCP 2022-10-22 01:18:44 +02:00
BodgeMaster 5574cdb4bf tools/hexnet: Don’t confuse users 2022-10-22 01:02:00 +02:00
BodgeMaster 89cfb9d850 tools/hexnet: Reduce redundant code 2022-10-21 23:01:03 +02:00
BodgeMaster f681c54c82 tools/hexnet: Reimplement TCP server, implement TCP client
Both can only receive at the moment as we still don’t handle input.
2022-10-21 23:01:03 +02:00
BodgeMaster ee0ebb273c tools/hexnet: Add instructions for setting up TTY 2022-10-21 23:01:03 +02:00
Shwoomple 8dea1f2d31 lib/file: Implement modify functions 2022-10-20 15:12:15 +05:30
Shwoomple c825c73afd lib/file: Implement insertByte function 2022-10-20 13:02:15 +05:30
Shwoomple e7711a3d59 commit merge 2022-10-20 10:27:48 +05:30
Shwoomple e7ce6f5cd4 lib/file: Fix write function bugs 2022-10-20 10:27:00 +05:30
BodgeMaster ee9b5d4f67 tools/hexnet: Add command line parser back
Reimplementation has started.
2022-10-19 15:26:38 +02:00
BodgeMaster b84130344d tools/hexnet: Starting over 2022-10-19 15:26:38 +02:00
BodgeMaster 25d7806f6d lib/nbt: Fix memory leak in case of parsing error 2022-10-19 15:26:38 +02:00
Shwoomple 6e57a86338 lib/file: Implement write functions 2022-10-19 10:43:23 +05:30
Shwoomple c54eb48887 lib/file: Implement writeByte function 2022-10-18 20:57:02 +05:30
BodgeMaster c14504ce0b tools/dumpnbt: Display empty lists correctly 2022-10-17 07:02:36 +02:00
BodgeMaster 92cf81c1b4 tools/dumpnbt: Implement basic functionality.
FINALLY!!! :^)
2022-10-17 06:40:56 +02:00
BodgeMaster df35243ee9 lib/nbt: Add NBT::Tag::List::getContainedType()
Supid oversight, easily work-aroundable,
but it doesn’t hurt and was easy to implement
2022-10-17 06:39:42 +02:00
BodgeMaster 8d2f3f2fa5 tools/dumpnbt: Switch from using the validator to using the parser, update some strings 2022-10-16 07:40:00 +02:00
BodgeMaster cdc23e7468 lib/nbt: Implement parser 2022-10-15 23:05:26 +02:00