mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-04 20:53:40 +00:00
0545adfac3
Have fun!
55 lines
770 B
C++
55 lines
770 B
C++
/// \file
|
|
/// \brief \b [Internal] Generates and validates checksums
|
|
///
|
|
/// \note I didn't write this, but took it from http://www.flounder.com/checksum.htm
|
|
///
|
|
|
|
#ifndef __CHECKSUM_H
|
|
#define __CHECKSUM_H
|
|
|
|
#include "RakMemoryOverride.h"
|
|
|
|
/// Generates and validates checksums
|
|
class CheckSum : public RakNet::RakMemoryOverride
|
|
{
|
|
|
|
public:
|
|
|
|
/// Default constructor
|
|
|
|
CheckSum()
|
|
{
|
|
Clear();
|
|
}
|
|
|
|
void Clear()
|
|
{
|
|
sum = 0;
|
|
r = 55665;
|
|
c1 = 52845;
|
|
c2 = 22719;
|
|
}
|
|
|
|
void Add ( unsigned int w );
|
|
|
|
|
|
void Add ( unsigned short w );
|
|
|
|
void Add ( unsigned char* b, unsigned int length );
|
|
|
|
void Add ( unsigned char b );
|
|
|
|
unsigned int Get ()
|
|
{
|
|
return sum;
|
|
}
|
|
|
|
protected:
|
|
unsigned short r;
|
|
unsigned short c1;
|
|
unsigned short c2;
|
|
unsigned int sum;
|
|
};
|
|
|
|
#endif
|