Home | nevrax.com |
|
random.cppGo to the documentation of this file.00001 00006 /* Copyright, 2000, 2001, 2002 Nevrax Ltd. 00007 * 00008 * This file is part of NEVRAX NEL. 00009 * NEVRAX NEL is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2, or (at your option) 00012 * any later version. 00013 00014 * NEVRAX NEL is distributed in the hope that it will be useful, but 00015 * WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * General Public License for more details. 00018 00019 * You should have received a copy of the GNU General Public License 00020 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00021 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00022 * MA 02111-1307, USA. 00023 */ 00024 00025 #include "stdmisc.h" 00026 #include "nel/misc/random.h" 00027 00028 namespace NLMISC 00029 { 00030 00031 //=========================================================================== 00032 CRandom::CRandom() : _Seed(1) 00033 { 00034 } 00035 00036 //=========================================================================== 00037 // NB : In fact this random generator has the same behaviour than the VC6 one 00038 sint32 CRandom::rand() 00039 { 00040 return ((_Seed = _Seed * 214013L + 2531011L) >> 16) & RandMax; 00041 } 00042 00043 //=========================================================================== 00044 void CRandom::srand(sint32 seed) 00045 { 00046 _Seed = seed; 00047 } 00048 00049 //=========================================================================== 00050 float CRandom::frand(float mod) 00051 { 00052 double r = (double) rand(); 00053 r /= (double) RandMax; 00054 return (float)(r * mod); 00055 } 00056 00057 } |