… | |
… | |
374 | /* |
374 | /* |
375 | * get_nearest_part(multi-object, object 2) returns the part of the |
375 | * get_nearest_part(multi-object, object 2) returns the part of the |
376 | * multi-object 1 which is closest to the second object. |
376 | * multi-object 1 which is closest to the second object. |
377 | * If it's not a multi-object, it is returned. |
377 | * If it's not a multi-object, it is returned. |
378 | */ |
378 | */ |
379 | |
|
|
380 | object * |
379 | object * |
381 | get_nearest_part (object *op, const object *pl) |
380 | get_nearest_part (object *op, const object *pl) |
382 | { |
381 | { |
383 | object *tmp, *closest; |
382 | object *tmp, *closest; |
384 | int last_dist, i; |
383 | int last_dist, i; |
… | |
… | |
429 | } |
428 | } |
430 | |
429 | |
431 | /* |
430 | /* |
432 | * Sets the owner and sets the skill and exp pointers to owner's current |
431 | * Sets the owner and sets the skill and exp pointers to owner's current |
433 | * skill and experience objects. |
432 | * skill and experience objects. |
|
|
433 | * ACTUALLY NO! investigate! TODO |
434 | */ |
434 | */ |
435 | void |
435 | void |
436 | object::set_owner (object *owner) |
436 | object::set_owner (object *owner) |
437 | { |
437 | { |
|
|
438 | // allow objects which own objects |
438 | if (!owner) |
439 | if (owner) |
439 | return; |
|
|
440 | |
|
|
441 | /* next line added to allow objects which own objects */ |
|
|
442 | /* Add a check for ownercounts in here, as I got into an endless loop |
|
|
443 | * with the fireball owning a poison cloud which then owned the |
|
|
444 | * fireball. I believe that was caused by one of the objects getting |
|
|
445 | * freed and then another object replacing it. Since the ownercounts |
|
|
446 | * didn't match, this check is valid and I believe that cause is valid. |
|
|
447 | */ |
|
|
448 | while (owner->owner) |
440 | while (owner->owner) |
449 | owner = owner->owner; |
441 | owner = owner->owner; |
450 | |
442 | |
451 | this->owner = owner; |
443 | this->owner = owner; |
452 | } |
444 | } |
453 | |
445 | |
454 | int |
446 | int |