[RELEASE] Telescope OXP v1.15

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6310
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Re: [RELEASE] Telescope OXP v1.11

Post by Diziet Sma »

Layne wrote:First off, I love the /idea/ of this oxp, being able to read off the ships in a cluster around you without having to continually spin your ship, lock on, spin, lock on, rinse, repeat. It's good to have a 'scanner' display of the ships near you on an easy-to-read MFD.
Since you're primarily interested in ships, and not other objects, you can do something similar (without the MFD display, though) using the Military Targeting System. I especially like that I can designate which particular ships I'm interested in identifying/targeting (such as hostiles/police/offenders/fugitives, etc).
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied

Layne
---- E L I T E ----
---- E L I T E ----
Posts: 355
Joined: Sat Mar 28, 2015 11:14 pm

Re: [RELEASE] Telescope OXP v1.11

Post by Layne »

Diziet Sma wrote: Since you're primarily interested in ships, and not other objects, you can do something similar (without the MFD display, though) using the Military Targeting System. I especially like that I can designate which particular ships I'm interested in identifying/targeting (such as hostiles/police/offenders/fugitives, etc).
A very interesting oxp that I wouldn't have otherwise found!

It's not bad, but what I'm looking for is less for combat targeting and more ambiance. I have a lot of interesting 'frosting' oxps that add taxis, liners, tugs, etc and I like to know who I'm passing by as I see a blip on my radar. Is that someone I want to look closer at? Are they eye-candy? I like the scanning mfd from the telescope as a way of knowing who is in the neighborhood. Still, I will hang onto this military targeting system for future use, and I thank you much and many, Diziet, for the link.

There's a lot of interesting oxps that don't seem to have wiki entries or big announcements. I've spent several weeks tracking down things.

(EDIT:) Actually, when combined with the existing Combat MFD, this is fairly close to what I was looking for. Very nice, in-deed.
Reports of my death have been greatly underestimated.

User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2560
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: [RELEASE] Telescope OXP v1.11

Post by Norby »

Layne wrote:Is there some way to turn off scanning of large system objects?
The fastest solution if you comment out the 812. and 850. line with // in ManagedAddOns/oolite.oxp.Norby.Telescope.oxz/Scripts/telescope.js like this:

Code: Select all

//   if(st && st[0]) ws.$Telescope_ListAdd(st); //add to the list
In this way you will not see the planets in MFD list. If you want keep in the list but not in the scanner then you can set the color of lollipops to black in Config/effectdata.plist.

Duggan
---- E L I T E ----
---- E L I T E ----
Posts: 490
Joined: Sat Dec 31, 2011 2:58 pm

Re: [RELEASE] Telescope OXP v1.11

Post by Duggan »

Hello Norby,

You know I love you and want you to have my children ( No...Please... take them) however.. And I know I have raised this point before... I am doing asteroid blasting... collecting splinters and ore processing them onboard.

However ...(I know..it was another "However") I am constantly being retargeted to the nearest moon/ship/planet/base as opposed to the next splinter/asteroid.....What gives man :)
Flying Python Class Cruiser, Chapter & Verse IV

User avatar
Day
---- E L I T E ----
---- E L I T E ----
Posts: 527
Joined: Tue Mar 03, 2015 11:35 am
Location: Paris

Re: [RELEASE] Telescope OXP v1.11

Post by Day »

Duggan wrote:You know I love you and want you to have my children ( No...Please... take them)
ROTFL

cag
Dangerous
Dangerous
Posts: 90
Joined: Fri Mar 17, 2017 1:49 am

Re: [RELEASE] Telescope OXP v1.11

Post by cag »

Having profiled some of my code, I discoverd unexpected culprits wasting time & killing my frame rate:
- WorldScriptsGetProperty
- ShipGetProperty
- EntityGetProperty
These 3 were consistently appearing near the top of the profile's listing, WorldScriptsGetProperty by
far the worst, accounting from 20 - 60 % of the total time. And many of them were unnecessary or
repeats.

At first, I reduced it by using local variables and that helped a bit but it wasn't until I read up
on closures that real savings were obtained. There are some things that do not change throughout the
game, like settings a player can set by editing the .js file; they are essentially constants. But
every time we use them, it's a WorldScriptsGetProperty and that's very expensive. Another constant
is functions; they do not change but every call is, you guessed it, a WorldScriptsGetProperty.

So, as an experiment, I converted the 3 frame callbacks into closures

Code: Select all

						before		after		diff
 Telescope_VFCB					1.455 ms	0.593 ms	0.862
 Telescope_VFCB2				1.182 ms	0.507 ms	0.675
 Telescope_VFCBVisualTarget			0.665 ms	0.615 ms	0.05
										=====
										1.587 ms
A frame rate of 60 Hz has only 16.7 ms between frames. 10% of that is being used on unnecessary ops.
And this is just one oxp. Every oxp does this! Even my docked fps is only 40, compared w/ 200 with
no oxp's loaded (200 is maxx set by animation_timer_interval; I don't know my hardware's abs. max.)

Basically all I did was wrap each of the 3 fcb functions into a closure and loaded in these constants with an
initialize call in startUp.

Code: Select all

	this._VFCB2 = function() {
		var ws = worldScripts.telescope;
		var ps = player.ship;
		var $TelescopeSniperRingSize = ws.$TelescopeSniperRingSize;
		var wide = oolite.gameSettings.gameWindow.height / oolite.gameSettings.gameWindow.width; //widescreen correction
		var sniperRing = null; //if this ring guided around the crosshair then the far target is lined up correctly
		
		function clearSniperRing() { ...
		function sniperRingFCB() { ...
		
		return {  sniperRingFCB: sniperRingFCB,
			clearSniperRing: clearSniperRing };	
	}
In startUp:

Code: Select all

	var sr = ws._VFCB2();						// initialize closure's environment
	ws.$Telescope_VFCB2 = sr.sniperRingFCB;				// export 2 functions
	ws._clearSniperRing = sr.clearSniperRing;
clearSniperRing is just the 2nd half of Telescope_VClearM(). It made sense to store the effect, TelescopeSniperRing, inside
the closure (as sniperRing), as it wasn't widely referenced.

This was just a quick and dirty test as proof of concept. While I tried to minimize changes to the code, I'm sure Murphy
will introduce a bug or two. These 3 closures gained me ~9 fps.

I know you're not planning any updates to telescope but I thought this may be useful in your current projects. I should point
out that it's probably better to introduce closures after you've got the kinks worked out in your oxp. Any variables you store
inside the closure are not available via the debug console!
"Better to be thought a fool, boy, than to open your trap and remove all doubt." - Grandma [over time, just "Shut your trap... fool"]
"The only stupid questions are the ones you fail to ask." - Dad
How do I...? Nevermind.

User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2560
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: [RELEASE] Telescope OXP v1.11

Post by Norby »

Thank you for the detailed improvements, these are really good ideas.

I do not plan to develop this project further but if you could send me the complete source of your optimized version then I will publish it.

Moreover I have no problem if any of my projects would be continued by a new maintainer. I always use CC license which allow takeover.

cag
Dangerous
Dangerous
Posts: 90
Joined: Fri Mar 17, 2017 1:49 am

Re: [RELEASE] Telescope OXP v1.11

Post by cag »

Ok, here you go.
https://www.dropbox.com/s/sung0mwceqhus ... g.zip?dl=0
I can't say for sure I didn't introduce any bugs but there's only one way to find out . . .
"Better to be thought a fool, boy, than to open your trap and remove all doubt." - Grandma [over time, just "Shut your trap... fool"]
"The only stupid questions are the ones you fail to ask." - Dad
How do I...? Nevermind.

User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2560
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: [RELEASE] Telescope OXP v1.14

Post by Norby »

Telescope v1.14 is available in the manager, with serious speed improvements and a fix for targeting boulders by cag, many thanks to him! :)
Also thanks for the grammar fixes in the readme what I applied in the wiki as well.

cag
Dangerous
Dangerous
Posts: 90
Joined: Fri Mar 17, 2017 1:49 am

Re: [RELEASE] Telescope OXP v1.14

Post by cag »

Quick, before anyone notices, I've got an update:
https://www.dropbox.com/s/jaro5d1msro27 ... g.zip?dl=0
I fixed a couple of silly (but ugly) mistakes and added a couple of tweaks.
"Better to be thought a fool, boy, than to open your trap and remove all doubt." - Grandma [over time, just "Shut your trap... fool"]
"The only stupid questions are the ones you fail to ask." - Dad
How do I...? Nevermind.

User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2560
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: [RELEASE] Telescope OXP v1.15

Post by Norby »

Thank you again! Telescope v1.15 is in the manager.

Fleurghber
Dangerous
Dangerous
Posts: 93
Joined: Sat Oct 07, 2017 1:24 pm

Re: [RELEASE] Telescope OXP v1.15

Post by Fleurghber »

Can anyone explain this?

"Opening log for Oolite version 1.86 (x86-64) under Mac OS X Version 10.9.5 (Build 13F1911) at 2018-03-17 12:46:47 pm +0000.
Machine type: iMac14,1, 8192 MiB memory, 4 x x86 (Haswell) @ 2700 MHz.
Build options: OpenAL, new planets.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

12:46:47.544 [dataCache.rebuild.pathsChanged]: Cache is stale (search paths have changed). Rebuilding from scratch.
12:46:47.570 [system]: Invalid color System, labelColor (warning given only once)
12:46:47.650 [rendering.opengl.version]: OpenGL renderer version: 2.1.0 ("2.1 INTEL-8.28.37"). Vendor: "Intel Inc.". Renderer: "Intel Iris Pro OpenGL Engine".
12:46:47.650 [rendering.opengl.extensions]: OpenGL extensions (128):
GL_EXT_texture_compression_dxt1, GL_EXT_rescale_normal, GL_EXT_transform_feedback, GL_EXT_blend_func_separate, GL_EXT_framebuffer_sRGB, GL_ATI_texture_env_combine3, GL_ARB_draw_elements_base_vertex, GL_EXT_debug_label, GL_EXT_geometry_shader4, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_NV_texgen_reflection, GL_NV_blend_square, GL_ARB_texture_compression_rgtc, GL_EXT_stencil_wrap, GL_ARB_texture_env_crossbar, GL_EXT_framebuffer_blit, GL_ATI_separate_stencil, GL_APPLE_vertex_point_size, GL_EXT_texture_rectangle, GL_APPLE_specular_vector, GL_EXT_packed_depth_stencil, GL_EXT_blend_color, GL_ARB_fragment_program_shadow, GL_EXT_texture_env_add, GL_EXT_provoking_vertex, GL_EXT_texture_array, GL_ARB_texture_env_combine, GL_ARB_point_sprite, GL_ARB_multisample, GL_EXT_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_EXT_texture_lod_bias, GL_APPLE_pixel_buffer, GL_ARB_vertex_program, GL_EXT_bgra, GL_APPLE_fence, GL_APPLE_ycbcr_422, GL_EXT_timer_query, GL_EXT_vertex_array_bgra, GL_ARB_depth_clamp, GL_IBM_rasterpos_clip, GL_ARB_pixel_buffer_object, GL_SGIS_generate_mipmap, GL_EXT_framebuffer_multisample_blit_scaled, GL_ARB_shader_texture_lod, GL_ARB_texture_float, GL_ARB_texture_rectangle, GL_ARB_vertex_shader, GL_NV_texture_barrier, GL_ARB_provoking_vertex, GL_ARB_texture_env_add, GL_APPLE_object_purgeable, GL_ARB_texture_env_dot3, GL_APPLE_rgb_422, GL_NV_depth_clamp, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_cube_map, GL_APPLE_element_array, GL_ATI_texture_float, GL_ARB_window_pos, GL_ARB_sync, GL_ARB_vertex_buffer_object, GL_APPLE_texture_range, GL_NV_conditional_render, GL_EXT_stencil_two_side, GL_ARB_texture_compression, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_ARB_texture_border_clamp, GL_EXT_draw_buffers2, GL_ARB_shading_language_100, GL_EXT_blend_equation_separate, GL_ARB_vertex_blend, GL_EXT_blend_subtract, GL_EXT_packed_float, GL_APPLE_aux_depth_stencil, GL_APPLE_row_bytes, GL_NV_light_max_exponent, GL_EXT_abgr, GL_EXT_texture_filter_anisotropic, GL_ARB_vertex_array_bgra, GL_ARB_draw_buffers, GL_ARB_transpose_matrix, GL_ARB_color_buffer_float, GL_EXT_gpu_program_parameters, GL_APPLE_client_storage, GL_ARB_texture_non_power_of_two, GL_ARB_multitexture, GL_EXT_gpu_shader4, GL_APPLE_flush_render, GL_ARB_framebuffer_object, GL_APPLE_vertex_program_evaluators, GL_APPLE_transform_hint, GL_EXT_texture_compression_s3tc, GL_APPLE_flush_buffer_range, GL_EXT_texture_integer, GL_SGIS_texture_edge_clamp, GL_NV_fog_distance, GL_ARB_occlusion_query, GL_ARB_fragment_shader, GL_ARB_texture_rg, GL_ARB_fragment_program, GL_ARB_seamless_cube_map, GL_ARB_shader_objects, GL_EXT_draw_range_elements, GL_APPLE_vertex_array_object, GL_ARB_depth_texture, GL_EXT_texture_sRGB, GL_ARB_half_float_vertex, GL_APPLE_vertex_array_range, GL_ARB_shadow, GL_EXT_multi_draw_arrays, GL_ARB_half_float_pixel, GL_APPLE_packed_pixels, GL_ARB_point_parameters, GL_EXT_debug_marker, GL_EXT_texture_sRGB_decode, GL_EXT_clip_volume_hint, GL_SGIS_texture_lod, GL_EXT_fog_coord, GL_EXT_texture_shared_exponent, GL_ATI_texture_mirror_once, GL_APPLE_float_pixels, GL_EXT_framebuffer_multisample, GL_ARB_depth_buffer_float, GL_ARB_draw_instanced
12:46:47.657 [rendering.opengl.shader.support]: Shaders are supported.
12:46:47.666 [dataCache.rebuild.pathsChanged]: Cache is stale (search paths have changed). Rebuilding from scratch.
12:46:47.667 [searchPaths.dumpAll]: Resource paths:
~/Desktop/Games and things/Elite family/Oolite-1.86/Oolite.app/Contents/Resources
~/Library/Application Support/Oolite/Managed AddOns
~/Library/Application Support/Oolite/AddOns
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.Norby.Telescope.oxz
12:46:47.677 [shipData.load.begin]: Loading ship data.
12:46:47.708 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_prototype_boa_normalmapped-player is too high, using 7200.0.
12:46:47.708 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_prototype_boa_normalmapped-player is too high, using 7200.0.
12:46:47.708 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_prototype_boa_normalmapped-player is too high, using 7200.0.
12:46:47.708 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_prototype_boa_normalmapped-player is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_green_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_green_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_green_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_green_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_blue_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_blue_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_blue_channel is too high, using 7200.0.
12:46:47.709 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_blue_channel is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_alpha_channel is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_alpha_channel is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_alpha_channel is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_alpha_channel is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_Template is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_Template is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_Template is too high, using 7200.0.
12:46:47.710 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_Template is too high, using 7200.0.
12:46:47.711 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_red_channel is too high, using 7200.0.
12:46:47.711 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_red_channel is too high, using 7200.0.
12:46:47.711 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_red_channel is too high, using 7200.0.
12:46:47.711 [shipData.load.warning.turret.badWeaponRange]: ----- WARNING: ball turret weapon range of 7500 for subentity of ship griff_NPC_prototype_boa_decals_from_red_channel is too high, using 7200.0.
12:46:48.210 [startup.complete]: ========== Loading complete in 0.61 seconds. ==========
12:46:50.062 [exit.context]: Exiting: Exit Game selected on start screen.

Closing log at 2018-03-17 12:46:50 pm +0000."

another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 5522
Joined: Wed Feb 28, 2007 7:54 am

Re: [RELEASE] Telescope OXP v1.15

Post by another_commander »

It is a harmless warning. A long time ago, turret range had been set arbitrarily to 7500m in the game code. At some point, we switched turret range to be dependent on the turret shot's speed and lifetime. This brought the recalculated turret range to 7200m, which is close enough to the original to not really matter gameplaywise. However, OXPs containing turrets that were written before this change were setting them to 7500m, which was now out of range. That's all that this warning is letting you know, feel free to ignore it.

User avatar
Milo
Above Average
Above Average
Posts: 18
Joined: Mon Sep 17, 2018 5:01 pm

Re: [RELEASE] Telescope OXP v1.15

Post by Milo »

Hi. Thanks for this great mod. I want to report an error I've run into with version 1.15:

Exception: TypeError: name is undefined
Active script: telescope 1.15
telescope.js, line 1519:
if( name.indexOf("Exhibition]") > -1 ) return; //do not show ships in exhibition of Gallery OXP

This gets spammed in the JS console when I don't have a valid target. I fixed my local copy by changing lines 1519-1523 in Scripts/telescope.js to this (putting the !name and !who checks before the indexOf check):

Code: Select all

	if( !name || name.length === 0 ) name = "(Lost target)";
	else if( !who || !who.isPlanet && !who.isSun && ( !who.isValid || !ws.$Telescope_InRange( who ) ) )
//		name = "(Lost "+name+")";
		return;
	else if( name.indexOf("Exhibition]") > -1 ) return; //do not show ships in exhibition of Gallery OXP
Some unrelated feedback, but when I have weapons turned off, the automatic re-targeting to whatever is most centered causes problems with the ILS mod because ILS automatically steers towards the docking buoy, and then the telescope mod changes the target to the buoy which interrupts ILS (the target switch away from the station also happens fast so it's hard to hit shift-L quickly enough to request docking permission). I'm testing a revision on line 1925 that I'm hoping will prevent it from changing the target when I have a station targeted:

Code: Select all

			} else if( (pst === null || !pst.isValid || !pst.isStation) && telescopeGravLock !== 0 ) // no target, in grav mode and not disabled
(after some testing, this seems to be sort-of working ... the target stuck with the station and didn't switch me to the buoy when I was close and had ILS active, so that part is good, but the target did not stick to the station while I was further away, and I'm not sure why)
Last edited by Milo on Mon Sep 17, 2018 6:22 pm, edited 5 times in total.

User avatar
Milo
Above Average
Above Average
Posts: 18
Joined: Mon Sep 17, 2018 5:01 pm

Re: [RELEASE] Telescope OXP v1.15

Post by Milo »

Another error report. I'm not sure exactly what the circumstances were here, but this showed up a couple of times while I had weapons turned off.

Exception: Error: Cannot set property target of instance of PlayerShip to invalid value [Waypoint position: (166156, 21123.8, -1.99878e+006) scanClass: CLASS_NO_DRAW status: STATUS_EFFECT].
Active script: telescope 1.15
telescope.js, line 1679:
if( !who.isPlanet && !who.isSun ) ps.target = who;
Exception: TypeError: name is undefined

Post Reply