ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/util.h
(Generate patch)

Comparing deliantra/server/include/util.h (file contents):
Revision 1.40 by root, Mon Apr 16 15:41:27 2007 UTC vs.
Revision 1.43 by root, Mon Apr 23 18:09:57 2007 UTC

262 262
263 void seed (uint32_t seed); 263 void seed (uint32_t seed);
264 uint32_t next (); 264 uint32_t next ();
265 265
266 // uniform distribution 266 // uniform distribution
267 uint32_t operator ()(uint32_t r_max) 267 uint32_t operator ()(uint32_t num)
268 { 268 {
269 return is_constant (r_max) 269 return is_constant (num)
270 ? this->next () % r_max 270 ? (next () * (uint64_t)num) >> 32U
271 : get_range (r_max); 271 : get_range (num);
272 } 272 }
273 273
274 // return a number within (min .. max) 274 // return a number within (min .. max)
275 int operator () (int r_min, int r_max) 275 int operator () (int r_min, int r_max)
276 { 276 {
277 return is_constant (r_min) && is_constant (r_max) 277 return is_constant (r_min) && is_constant (r_max) && r_min <= r_max
278 ? r_min + (*this) (max (r_max - r_min + 1, 1)) 278 ? r_min + operator ()(r_max - r_min + 1)
279 : get_range (r_min, r_max); 279 : get_range (r_min, r_max);
280 } 280 }
281 281
282 double operator ()() 282 double operator ()()
283 { 283 {
434// return current time as timestampe 434// return current time as timestampe
435tstamp now (); 435tstamp now ();
436 436
437int similar_direction (int a, int b); 437int similar_direction (int a, int b);
438 438
439// like printf, but returns a std::string
440const std::string format (const char *format, ...);
441
439#endif 442#endif
440 443

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines