Network: Add state checksum which is check in network sync

This commit is contained in:
Jonathan G Rennison
2019-08-05 19:16:51 +01:00
parent c941d2d2a6
commit a1d36b02f0
17 changed files with 76 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file checksum_func.hpp Checksum utility functions. */
#ifndef CHECKSUM_FUNC_HPP
#define CHECKSUM_FUNC_HPP
#include "bitmath_func.hpp"
struct SimpleChecksum64 {
uint64 state = 0;
void Update(uint64 input)
{
this->state = ROL(this->state, 1) ^ input ^ 0x123456789ABCDEF7ULL;
}
};
extern SimpleChecksum64 _state_checksum;
inline void UpdateStateChecksum(uint64 input)
{
_state_checksum.Update(input);
}
#endif /* CHECKSUM_FUNC_HPP */

View File

@@ -12,6 +12,8 @@
#ifndef RANDOM_FUNC_HPP
#define RANDOM_FUNC_HPP
#include "bitmath_func.hpp"
#if defined(__APPLE__)
/* Apple already has Random declared */
#define Random OTTD_Random