1 | /* |
1 | /* |
2 | * static char *rcsid_utils_c = |
2 | * static char *rcsid_utils_c = |
3 | * "$Id: utils.C,v 1.2 2006/08/29 08:01:36 root Exp $"; |
3 | * "$Id: utils.C,v 1.4 2006/09/04 11:07:59 root Exp $"; |
4 | */ |
4 | */ |
5 | |
5 | |
6 | /* |
6 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
7 | CrossFire, A Multiplayer game for X-windows |
8 | |
8 | |
… | |
… | |
31 | */ |
31 | */ |
32 | |
32 | |
33 | #include <global.h> |
33 | #include <global.h> |
34 | #include <funcpoint.h> |
34 | #include <funcpoint.h> |
35 | #include <material.h> |
35 | #include <material.h> |
|
|
36 | |
|
|
37 | #include <glib.h> |
36 | |
38 | |
37 | /* |
39 | /* |
38 | * The random functions here take luck into account when rolling random |
40 | * The random functions here take luck into account when rolling random |
39 | * dice or numbers. This function has less of an impact the larger the |
41 | * dice or numbers. This function has less of an impact the larger the |
40 | * difference becomes in the random numbers. IE, the effect is lessened |
42 | * difference becomes in the random numbers. IE, the effect is lessened |
… | |
… | |
284 | if (!IS_ARMOR(op)) |
286 | if (!IS_ARMOR(op)) |
285 | return; |
287 | return; |
286 | |
288 | |
287 | mt = name_to_material(op->materialname); |
289 | mt = name_to_material(op->materialname); |
288 | if (!mt) { |
290 | if (!mt) { |
289 | LOG(llevError, "archetype '%s>%s' uses nonexistent material '%s'\n", op->arch->name, op->name, op->materialname); |
291 | LOG(llevError, "archetype '%s>%s' uses nonexistent material '%s'\n", &op->arch->name, &op->name, &op->materialname); |
290 | return; |
292 | return; |
291 | } |
293 | } |
292 | |
294 | |
293 | for (j=0; j < NROFATTACKS; j++) |
295 | for (j=0; j < NROFATTACKS; j++) |
294 | if (op->resist[j] == 0 && change->resist[j] != 0) { |
296 | if (op->resist[j] == 0 && change->resist[j] != 0) { |
… | |
… | |
336 | lmt = nmt; |
338 | lmt = nmt; |
337 | } |
339 | } |
338 | |
340 | |
339 | if (lmt != NULL) { |
341 | if (lmt != NULL) { |
340 | #ifndef NEW_MATERIAL_CODE |
342 | #ifndef NEW_MATERIAL_CODE |
341 | op->materialname = add_string(lmt->name); |
343 | op->materialname = lmt->name; |
342 | return; |
344 | return; |
343 | #else |
345 | #else |
344 | |
346 | |
345 | if (op->stats.dam && IS_WEAPON(op)) { |
347 | if (op->stats.dam && IS_WEAPON(op)) { |
346 | op->stats.dam += lmt->damage; |
348 | op->stats.dam += lmt->damage; |
… | |
… | |
480 | strcat(input, p); |
482 | strcat(input, p); |
481 | } |
483 | } |
482 | else strcpy(input, tmp); |
484 | else strcpy(input, tmp); |
483 | return; |
485 | return; |
484 | } |
486 | } |
|
|
487 | |
|
|
488 | //TODO: overhead due to specifying size twice |
|
|
489 | void * |
|
|
490 | zero_initialised::operator new (size_t s) |
|
|
491 | { |
|
|
492 | return g_slice_alloc0 (s); |
|
|
493 | } |
|
|
494 | |
|
|
495 | void * |
|
|
496 | zero_initialised::operator new [] (size_t s) |
|
|
497 | { |
|
|
498 | return g_slice_alloc0 (s); |
|
|
499 | } |
|
|
500 | |
|
|
501 | void |
|
|
502 | zero_initialised::operator delete (void *p, size_t s) |
|
|
503 | { |
|
|
504 | g_slice_free1 (s, p); |
|
|
505 | } |
|
|
506 | |
|
|
507 | void |
|
|
508 | zero_initialised::operator delete [] (void *p, size_t s) |
|
|
509 | { |
|
|
510 | g_slice_free1 (s, p); |
|
|
511 | } |
|
|
512 | |