This commit fixes (at least) the following problems:
1. cmake will "find" RakNet include directory even if the cmake option
`-DRakNet_INCLUDES` CACHE entry value is incorrect. The build will
fail later when an included RakNet file is missing. (To test,
change to `-DRakNet_INCLUDES="/tmp/CrabNet/includex"` below.)
2. cmake will not find the RakNet Release library (which exists at the
path specified with `-DRakNet_LIBRARY_RELEASE`) unless
`-DRakNet_LIBRARY_DEBUG` is defined (to any value). (To test,
remove the `-DRakNet_LIBRARY_DEBUG` line below.)
3. cmake will not find anything if only the environment variable
`RAKNET_ROOT` is set, although it appears that it was intended to
be used as a search path. (To test, add `RAKNET_ROOT=/tmp/CrabNet`
and remove the three `-DRakNet_` lines.)
This commit was tested with the following cmake command in a Debian
bookworm container with CrabNet and osg directories in `/tmp`:
```sh
mkdir build/
cd build/
cmake .. -DBUILD_BROWSER=OFF \
-DBUILD_BSATOOL=OFF \
-DBUILD_ESMTOOL=OFF \
-DBUILD_ESSIMPORTER=OFF \
-DBUILD_LAUNCHER=OFF \
-DBUILD_MWINIIMPORTER=OFF \
-DBUILD_NIFTEST=OFF \
-DBUILD_OPENCS=OFF \
-DBUILD_OPENMW=ON \
-DBUILD_OPENMW_MP=OFF \
-DBUILD_WIZARD=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DOPENSCENEGRAPH_INCLUDE_DIRS=/tmp/osg/include \
-DRakNet_INCLUDES="/tmp/CrabNet/include" \
-DRakNet_LIBRARY_DEBUG="/tmp/CrabNet/lib/libRakNetLibStaticd.a" \
-DRakNet_LIBRARY_RELEASE="/tmp/CrabNet/lib/libRakNetLibStatic.a"
make -j $(nproc)
```
Without the change build fails on `gcc-13` as:
In file included from /build/source/components/misc/stringops.hpp:8,
from /build/source/components/settings/settings.cpp:6:
/build/source/components/misc/utf8stream.hpp:11:13: error: 'uint32_t' does not name a type
11 | typedef uint32_t UnicodeChar;
| ^~~~~~~~
/build/source/components/misc/utf8stream.hpp:5:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
4 | #include <cstring>
+++ |+#include <cstdint>
Previously, summoned creatures weren't being deleted in certain situations because they were encountered again before the cell they were in had a local authority.
The previous logic was meant to prevent packet spam from local scripts, but inadvertently prevented objects from being enabled or disabled correctly from dialogue in certain quests.
Enabling and disabling objects from dialogue and the console is now always allowed to go through.