… | |
… | |
429 | return strdup ("[NULLOBJ]"); |
429 | return strdup ("[NULLOBJ]"); |
430 | |
430 | |
431 | object_freezer freezer; |
431 | object_freezer freezer; |
432 | op->write (freezer); |
432 | op->write (freezer); |
433 | return freezer.as_string (); |
433 | return freezer.as_string (); |
|
|
434 | } |
|
|
435 | |
|
|
436 | char * |
|
|
437 | object::as_string () |
|
|
438 | { |
|
|
439 | return dump_object (this); |
434 | } |
440 | } |
435 | |
441 | |
436 | /* |
442 | /* |
437 | * get_nearest_part(multi-object, object 2) returns the part of the |
443 | * get_nearest_part(multi-object, object 2) returns the part of the |
438 | * multi-object 1 which is closest to the second object. |
444 | * multi-object 1 which is closest to the second object. |
… | |
… | |
2541 | return splay (tmp); |
2547 | return splay (tmp); |
2542 | |
2548 | |
2543 | return 0; |
2549 | return 0; |
2544 | } |
2550 | } |
2545 | |
2551 | |
|
|
2552 | void |
|
|
2553 | object::force_set_timer (int duration) |
|
|
2554 | { |
|
|
2555 | this->duration = 1; |
|
|
2556 | this->speed_left = -1.f; |
|
|
2557 | |
|
|
2558 | this->set_speed (duration ? 1.f / duration : 0.f); |
|
|
2559 | } |
|
|
2560 | |
2546 | object * |
2561 | object * |
2547 | object::force_add (shstr_tmp name, int duration) |
2562 | object::force_add (shstr_tmp name, int duration) |
2548 | { |
2563 | { |
2549 | if (object *force = force_find (name)) |
2564 | if (object *force = force_find (name)) |
2550 | force->destroy (); |
2565 | force->destroy (); |
2551 | |
2566 | |
2552 | object *force = get_archetype (FORCE_NAME); |
2567 | object *force = get_archetype (FORCE_NAME); |
2553 | |
2568 | |
2554 | force->slaying = name; |
2569 | force->slaying = name; |
2555 | force->stats.food = 1; |
|
|
2556 | force->speed_left = -1.f; |
|
|
2557 | |
2570 | |
2558 | force->set_speed (duration ? 1.f / duration : 0.f); |
2571 | force->force_set_timer (duration); |
2559 | force->flag [FLAG_IS_USED_UP] = true; |
2572 | |
2560 | force->flag [FLAG_APPLIED] = true; |
2573 | force->flag [FLAG_APPLIED] = true; |
2561 | |
2574 | |
2562 | return insert (force); |
2575 | return insert (force); |
2563 | } |
2576 | } |
2564 | |
2577 | |