Merge branch 'fixes' into main/rendor-staging
[ryzomcore.git] / nel / src / misc / cdb_check_sum.cpp
blob13b47a85f7c9500e9929a728333246d2a4e67d77
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #include "stdmisc.h"
21 #include "nel/misc/cdb_check_sum.h"
23 #ifdef DEBUG_NEW
24 #define new DEBUG_NEW
25 #endif
27 namespace NLMISC{
30 * Constructor
33 CCDBCheckSum::CCDBCheckSum()
35 //arbitrary values
36 _Sum = 0;
37 _Factor = 55665;
38 _Const1 = 52845;
39 _Const2 = 22719;
42 ///add an uint8 to the sum
43 void CCDBCheckSum::add(uint8 el)
45 uint32 cipher = (el ^ (_Factor >> 8));
46 _Factor = (cipher + _Factor) * _Const1 + _Const2;
47 _Sum += cipher;