This patch adds 'short_contact_list(contact,ships,others)' and 'contact_info_string(contact)'. It also modularizes the system damage code, and adds code to destroy the ship if the engine is destroyed through stress.
This patch also corrects a SEGV in 0.8.3 when stressing the engine if warnings were enabled, and implements a wide-ranging change to the object destruction code to prevent accessing freed memory objects. Please note that this code is very new, and has only been lightly tested. It is possible that there may be cases in the code where an object flagged 'REMOVED' is still listed in functions such as sensor reports, etc. I have tried to catch all of these cases, but I may have missed some.
Also corrected in this patch is a flaw in the range updating code in S70905 which manifests itself as dropping all huge objects from the sensor lists when a non-huge object was removed from space. This was fixed by adding a check to prevent the huge object list being orphaned.
This code is provided as a service to the community using the Portable Space Code. By using this code, you agree that the author is not responsible in any way for any damage caused.