* Hardcode the key and ensure buffers are appropriately sized.
If you do want to build the key at runtime the following initial state gets the right sequence:
```cpp
std::linear_congruential_engine<uint32_t, 214013, 2531011, 0> engine(3193970784);
for (auto ¬ch: key)
notch = static_cast<byte>(engine() >> 16);
```
* Move public defines into sha.h, move private struct into .cpp
* Remove unused count member, clarify loop in SHA1Input
* Update circular shift to indicate desired behaviour, remove unnecessary negation.
The parameters are also reordered to match C++20 rotl/rotr and the usual order for shift operators.
Prior to this commit, the following error was encountered when compiling
as C using Clang:
Source/codec.cpp:20:2: error: must use 'struct' tag to refer to type 'CodecSignature'
CodecSignature *sig;
^
struct
- Add file documentation to about 1/4 of the files in Source
- Copy over a lot of the documentation from the sanctuary/notes repo
- Standardise all the existing documentation
- Create a configuration for Doxygen
- Add more documentation (engine.cpp is now fully documented)
Now diablo.h is treated in the same way as all other header files of
Source, as it only contains the declarations of global variables and
functions of diablo.cpp.
Besides consistency, this also enables mods to include diablo.h just
like any other header file without having to include every header file
(and without having to include C++ specific aspects of the now all.h).