1
0
Fork 0
Commit Graph

127 Commits

Author SHA1 Message Date
peterbell10 31a11a6df4
Optimise chunk set (#4260)
Closes #1244

Initially I was just going to add the cChunkData to cSetChunkData but profiling revealed 
that the copying wasn't even the biggest slowdown. Much more time was being spent in 
cChunk::CreateBlockEntities and cChunk::WakeUpSimulators than was in memcpy so I've made 
those significantly faster as well.

Optimisations performed:
 * cSetChunkData now stores blocks in a cChunkData object
 * cChunkData objects can now perform moves even if they are using different pools
 * cChunk::CreateBlockEntities now iterates in the correct order and only over present chunk sections
 * Similarly for cChunk::WakeUpSimulators
 * cSetChunkData::CalculateHeightMap now shortcuts to the highest present chunk section before checking blocks directly
2018-07-23 19:12:51 +01:00
peterbell10 1e312296cc Fix cUUID::Variant (#4213) 2018-04-08 00:20:53 +02:00
peterbell10 1ea36298d2
Fix cUrlClient leak (#4125)
Fixes #4040
* The TCP connection is now shutdown after OnBodyFinished
* Any open connections are closed when cNetworkSingleton::Terminate() is called.
* Removed ownership cycles in cUrlClientRequest
* Added a check to the test to ensure there are no leaks.
2018-02-20 17:08:46 +00:00
peterbell10 d3c1c626f5
Deal with covered switches consistently (#4161)
* Fixes a number of "<function>: not all control paths return a value" warnings on MSVC.

* Introduces the UNREACHABLE global macro and uses it instead of conditionally compiled switch defaults.

* Move cNBTParseErrorCategory from FastNBT.h into FastNBT.cpp to prevent bad calls to message()
2018-02-04 23:07:12 +00:00
peterbell10 2df14a0496
cChunk and cChunkData: Use vectors for block get and set functions (#4172)
* cChunkData: Change interface to use Vector3i
* cChunk: Add Vector3i overloads for bounded block get and set functions.
2018-02-04 22:15:31 +00:00
peterbell10 fa4844e168 CMake: Fix test builds on MSVC (#4131)
* Add test dependency missing for MSVC builds.

* Appveyor builds tests and tools
2018-01-22 09:39:41 +00:00
peterbell10 757231cc6e
Add the fmt library (#4065)
* Replaces AppendVPrintf with fmt::sprintf
* fmt::ArgList now used as a type safe alternative to varargs.
* Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu.
* Adds FLOG functions to log with fmt's native formatting style.
2018-01-03 17:41:16 +00:00
peterbell10 832b394715 Fix Travis build (#4101)
Stop using gdb on osx - was breaking the build
Add clang 3.5 build as travis now defaults to 5.0
Fix unknown-warning-option errors on AppleClang
ProtoProxy: Use nullptr
UrlClientTest: add override to callback destructor
Update jsoncpp to use nullptr
2017-12-22 18:25:46 +00:00
Bond-009 5badb9bcca cChunkInterface GetBlock, GetBlockMeta, GetBlockTypeMeta use vectors (#4050) 2017-11-20 11:13:11 +00:00
Lukas Pioch c5f590d460 Removed UTF-8 BOM (#4033) 2017-09-19 10:34:08 +02:00
peterbell10 642fc239e2 Add a test for cUUID (#4021) 2017-09-11 23:17:51 +02:00
peterbell10 84941bcc9f Update mbedtls to 2.5.1 (#3964)
* Renaming changes:
  * macro prefix "POLARSSL" -> "MBEDTLS"
  * functions now prefixed with "mbedtls_"
  * rename PolarSSL++ -> mbedTLS++
  * rename polarssl submodule

* Use mbedtls' AES-CFB8 implementation.

* Add cSslConfig to wrap mbedtls_ssl_config

* Update cTCPLink and cBlockingSslClientSocket to use cSslConfig

* Use cSslConfig in cHTTPServer

* Use cSslConfig for cMojangAPI::SecureRequest

* CI Fixes

* Set -fomit-frame-pointer on the right target
2017-08-30 15:00:06 +01:00
peterbell10 f4f2fc7c3d Add cUUID class (#3871) 2017-08-25 13:43:18 +01:00
peterbell10 096cdac80d Implement protocol level chunk sparsing (#3864) 2017-08-21 17:56:53 +01:00
peterbell10 0d0323608d cBlockHandler: take player by ref 2017-08-01 08:21:20 +02:00
Lane Kolbly 5402b214b3 Check for intersection between placed blocks and entities. (#3850)
* Check for intersection between placed blocks and entities.

+ Implemented GetPlacementCollisionBox, to permit custom placement collision boxes for blocks.

* Factored block-entity placement checking into another function in cPlayer.

- Removed vector min/max functions

* Use GetWorld to get the world in DoesPlacingBlocksIntersectEntity.

+ Added block height checks, allow different cEntity subclasses to decide whether they will prevent block placement.
2017-07-28 17:59:21 +01:00
peterbell10 bbf5bec817 BigFlower fixes (#3826)
* BigFlowers fixes

* Correct upper part meta
* Documented parameters to DoesIgnoreBuildCollision
2017-07-07 16:37:53 +02:00
peterbell10 d838ef7ba4 cBlockInfo static initialisation (#3832) 2017-07-03 18:34:27 +02:00
Mattes D fe42538349 cBlockArea supports block entities. (#3795) 2017-06-24 11:58:06 +02:00
Mattes D 7ac3b0fa0b Removed the LeakFinder for Windows. (#3777) 2017-06-19 11:05:19 +02:00
peterbell10 035ecdc9e2 Replace evdns with getaddrinfo and getnameinfo (#3766) 2017-06-15 11:03:49 +02:00
peterbell10 360d8eade0 FastRandom rewrite (#3754) 2017-06-13 21:35:30 +02:00
Mattes D c939720c10 Gen: Added a simple PieceGeneratorBFSTree test. 2017-05-04 09:49:30 +02:00
Mattes D 96fdd72d45 Gen: Moved tests to a separate folder, unified shared sources. 2017-05-04 09:49:30 +02:00
Mattes D 187abe3f5e Gen: Moved PiecePool into a separate file.
Also rewritten the PieceGenerator to use std::unique_ptr.
2017-05-04 09:49:30 +02:00
Mattes D 5dc0189a16 FastRandom: Added test of class re-creation. (#3648)
Tests for the precondition of #2935 (re-created cFastRandom generates the same sequence of numbers).
2017-03-28 16:37:25 +02:00
Mattes D 585571d78c PieceGenerator: Added rotation-aware vertical connectors. 2017-02-13 16:50:35 +01:00
Mattes D 7cc3fb098d DeadlockDetect now lists some tracked CS's stats. 2017-01-18 09:03:05 +01:00
Mattes D 30756e3f95 Tests: Added LuaState thread stress-test. 2017-01-15 15:11:18 +01:00
Mattes D e28cecb3d1 Moved cPrefab parser self-check to the LoadablePieces test. (#3536) 2017-01-15 11:40:10 +01:00
Mattes D d825456127 Added strict static_cast to void * in printf. 2016-11-13 17:26:58 +01:00
Mattes D d2e8643607 Fixed type-casting-related warnings. 2016-08-24 22:26:53 +02:00
Mattes D c45bd4b968 HTTP: Fixed empty headers parsing. 2016-08-24 08:28:44 +02:00
Mattes D 74918ce805 cUrlClient: Refactored callbacks to use UniquePtr. 2016-08-22 23:44:37 +02:00
Mattes D 641cb063bc cTCPLink supports TLS out of the box. 2016-08-22 23:44:36 +02:00
Mattes D 6c760ee348 UrlClient: Basic HTTP implementation. 2016-08-22 22:16:42 +02:00
Alexander Harkness 58b29adc88 Fixed cFastRandom Test. (#3291)
This resolves #3290
2016-08-03 09:35:42 +02:00
Mattes D 8eaa8613da CMake: Remove needless minimum version specifications. 2016-07-18 22:11:42 +02:00
Mattes D 1462e4f70e Self tests (#3242)
* SelfTests: Added a cEvent stress-test.

* cNetwork: Fixed startup event hang.

The original code used to hang with a ~ 1:50000 chance, because on Linux the cEvent was destroyed before its "Set()" returned.
2016-06-26 14:51:12 +01:00
Mattes D 4d9769a484 SelfTests: More logging for EnumInterfaces. 2016-06-18 13:12:11 +02:00
Mattes D ea47247dc7 SelfTests: Print a quick message on test start. 2016-06-18 13:12:10 +02:00
Mattes D 36eefbf0f2 SelfTests: Removed the unneeded cSelfTests class. 2016-06-18 13:12:10 +02:00
Mattes D aa4b3ebf2f SelfTests: Fixed HTTPMessageParser tests for out-of-source builds. 2016-06-18 13:12:09 +02:00
Mattes D 82e81c01a2 SelfTests: Fixed missing override keyword in EchoServer. 2016-06-18 13:12:09 +02:00
Mattes D 75a81cf753 SelfTests: Moved BoundingBox test to a separate project. 2016-06-18 13:12:09 +02:00
Mattes D a781be5456 SelfTests: Moved SchematicFileSerializer test into a separate project. 2016-06-18 13:12:08 +02:00
Mattes D db17f585af SelfTests: Moved cCompositeChat test to a separate project. 2016-06-18 13:12:08 +02:00
Mattes D ab6f68b42c SelfTests: Moved ByteBuffer test to a separate project. 2016-06-18 13:12:07 +02:00
Mattes D 3d164a77cb SelfTests: Organized into solution folders. 2016-06-18 13:12:07 +02:00
Mattes D 3184433756 Moved NetworkInterfaceEnum test to a separate test project. 2016-06-18 13:12:06 +02:00