ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/utils.C
(Generate patch)

Comparing deliantra/server/common/utils.C (file contents):
Revision 1.17 by root, Fri Nov 17 19:40:53 2006 UTC vs.
Revision 1.25 by root, Sun Dec 17 23:10:34 2006 UTC

27 27
28#include <global.h> 28#include <global.h>
29#include <funcpoint.h> 29#include <funcpoint.h>
30#include <material.h> 30#include <material.h>
31 31
32#include <sys/time.h>
33#include <time.h>
32#include <glib.h> 34#include <glib.h>
33 35
34/* 36/*
35 * The random functions here take luck into account when rolling random 37 * The random functions here take luck into account when rolling random
36 * dice or numbers. This function has less of an impact the larger the 38 * dice or numbers. This function has less of an impact the larger the
97 diff = max - min + 1; 99 diff = max - min + 1;
98 ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ 100 ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */
99 101
100 if (max < 1 || diff < 1) 102 if (max < 1 || diff < 1)
101 { 103 {
102#ifndef WIN32
103 LOG (llevError, "Calling random_roll with min=%lld max=%lld\n", min, max);
104#else
105 LOG (llevError, "Calling random_roll with min=%I64d max=%I64d\n", min, max); 104 LOG (llevError, "Calling random_roll with min=%" PRId64 " max=%" PRId64 "\n", min, max);
106#endif
107 return (min); /* avoids a float exception */ 105 return (min); /* avoids a float exception */
108 } 106 }
109 107
110 /* Don't know of a portable call to get 64 bit random values. 108 /* Don't know of a portable call to get 64 bit random values.
111 * So make a call to get two 32 bit random numbers, and just to 109 * So make a call to get two 32 bit random numbers, and just to
258 if (op->material & M_ICE && MAP_TEMP (m) > 32) 256 if (op->material & M_ICE && MAP_TEMP (m) > 32)
259 destroy = 1; 257 destroy = 1;
260 } 258 }
261 /* adjust overall chance below */ 259 /* adjust overall chance below */
262 if (destroy && rndm (0, 1)) 260 if (destroy && rndm (0, 1))
263 { 261 op->destroy ();
264 remove_ob (op);
265 free_object (op);
266 }
267 } 262 }
268} 263}
269 264
270/* convert materialname to materialtype_t */ 265/* convert materialname to materialtype_t */
271 266
562 assert (!rc_next); 557 assert (!rc_next);
563 assert (!refcnt); 558 assert (!refcnt);
564} 559}
565#endif 560#endif
566 561
567void *alloc (int s) throw (std::bad_alloc) 562void *salloc_ (int n) throw (std::bad_alloc)
568{ 563{
569 void *p = g_slice_alloc (s); 564 void *ptr = g_slice_alloc (n);
570 565
571 if (!p) 566 if (!ptr)
572 throw std::bad_alloc (); 567 throw std::bad_alloc ();
573 568
574 return p; 569 return ptr;
570}
571
572void *salloc_ (int n, void *src) throw (std::bad_alloc)
573{
574 void *ptr = salloc_ (n);
575
576 if (src)
577 memcpy (ptr, src, n);
578 else
579 memset (ptr, 0, n);
580
581 return ptr;
575} 582}
576 583
577void assign (char *dst, const char *src, int maxlen) 584void assign (char *dst, const char *src, int maxlen)
578{ 585{
579 if (!src) 586 if (!src)
596 } 603 }
597 else 604 else
598 memcpy (dst, src, len + 1); 605 memcpy (dst, src, len + 1);
599} 606}
600 607
608tstamp now ()
609{
610 struct timeval tv;
601 611
612 gettimeofday (&tv, 0);
613 return tstamp (tv.tv_sec) + tstamp (tv.tv_usec) * tstamp (1e-6);
614}
615

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines