A possible solution?

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

Moderators: another_commander, winston

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

A possible solution?

Post by Fleurghber »

At last I've been able to adjust certain OXZs which have been giving me trouble for a while. I may not be the only one with this problem, so you might like to try this method and see if it helps.

When the OXZ is flagged in the latest.log as being defective in some way, change the ending from .oxz to .zip, and open it. This should create a folder with the same name.

Change the original file's name back to end with .oxz, so you have an unmodified copy if this doesn't work, but don't put it back in the Managed Addons folder just yet.

There should now be a folder with the same name: open this folder, locate the apparently defective file and open it.

Just what you do next may involve some trial and error: each file is different, but as a rule of thumb, all lines within a given pair of brackets should end the same way (with or without a comma, semicolon, or whatever). I used BBEdit.

Save the corrected file.

Highlight all files in the top-level folder (but not the folder itself), and drag them together, onto the zip folder icon in StuffIt Destinations. This will create a new Zip file, which should be given the same name as the original OXZ (but without .oxz or .zip at the end: the program will do this itself).

Change the end of this file's name from .zip to .oxz, put it in the Managed Addons folder, and test as before.

So far, I've been able to do this for the following OXZs:

"Opening log for Oolite version 1.86 (x86-64) under Mac OS X Version 10.9.5 (Build 13F1911) at 2018-03-21 07:30:53 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.

19:30:53.732 [dataCache.rebuild.datesChanged]: Cache is stale (modification dates have changed). Rebuilding from scratch.
19:30:53.759 [system]: Invalid color System, labelColor (warning given only once)
19:30:53.932 [rendering.opengl.version]: OpenGL renderer version: 2.1.0 ("2.1 INTEL-8.28.37"). Vendor: "Intel Inc.". Renderer: "Intel Iris Pro OpenGL Engine".
19:30:53.932 [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
19:30:53.939 [rendering.opengl.shader.support]: Shaders are supported.
19:30:53.950 [dataCache.rebuild.datesChanged]: Cache is stale (modification dates have changed). Rebuilding from scratch.
19:30:53.950 [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.CaptMurphy.Fleurghber.unofficial.BreakableTorusDrive.oxz
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.Lone_Wolf.Fleurghber.unofficial.ETTHomingBeacon.oxz
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.Norby.Fleurghber.unofficial.Andromeda.oxz
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.QCS.Fleurghber.unofficial.QHTI_AuxEnergyGenerators.oxz
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.QCS.Fleurghber.unofficial.QTHI_AntiZap.oxz
~/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.smivs.Fleurghber.unofficial.ExtraFuelTanks.oxz
19:30:53.961 [shipData.load.begin]: Loading ship data.
19:30:54.468 [startup.complete]: ========== Loading complete in 0.63 seconds. ==========
19:30:56.165 [exit.context]: Exiting: Exit Game selected on start screen.

Closing log at 2018-03-21 07:30:56 pm +0000."

The one OXZ so far which I haven't been able to cure by this method is Liners: the problem appears to be in Config/shipdata.plist, "liners_drone"… subentities = (…); [lines 159-200 in my copy]. Any thoughts on why this one is different?

(with thanks to other Commanders involved for their help and patience)
Fleurghber
Dangerous
Dangerous
Posts: 93
Joined: Sat Oct 07, 2017 1:24 pm

Re: A possible solution?

Post by Fleurghber »

Now I've managed to fix Liners too:

Basically, in shipdata.plist, the lines which read

color = { hue = 0 };

(167, 174, 181, 188 and 195 in my copy) should read

color = { hue = 0; };

Works for me, anyway.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6547
Joined: Wed Feb 28, 2007 7:54 am

Re: A possible solution?

Post by another_commander »

Just a quick comment to say that tampering with the Managed AddOns folder should generally be avoided, unless you know exactly what you are doing.

You can still extract the contents of an OXZ into AddOns by selecting the OXZ in the list of installed AddOns and pressing "x". This will extract the OXZ inside your AddOns folder, in unzipped form, with an initial extension .off. Now, if you can modify the unzipped OXZ and you can enable its use by changing the extension to .oxp. Before doing that, remember to remove the original OXZ using the in-game Manager, otherwise your modifications will not be loaded (and you will get a message about this, if both the unzipped OXP and the same managed one are detected).

The overall idea is: Leave managed OXPs to the Manager, modify freely inside your AddOns folder.
Fleurghber
Dangerous
Dangerous
Posts: 93
Joined: Sat Oct 07, 2017 1:24 pm

Re: A possible solution?

Post by Fleurghber »

Yes, I should add in that context, whatever you call your OXZ, don't change the "identifier" string in the manifest.plist, as the manifest.plist and/or requires.plist of other OXZs check for it.
cag
Deadly
Deadly
Posts: 197
Joined: Fri Mar 17, 2017 1:49 am

Re: A possible solution?

Post by cag »

@another_commander

Do you know (or know who to ask) if this is a Mac issue? Many of the oxp's Fleurghber has had problems with load fine on Windows 10. At a guess, I'd say the plist library used to build the Mac version is less forgiving than those used for Windows & Linux.

I've run all the oxz's on
http://www.oolite.org/oxps/
and found found quite a few missing ';'s errors that don't show up in my logs:
https://bb.oolite.space/viewtopic.php?f=4&t=19514

How does one go about updating those oxp's that are not currently maintained? I don't think it's reasonable to expect the average player to edit oxp's.
"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.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6547
Joined: Wed Feb 28, 2007 7:54 am

Re: A possible solution?

Post by another_commander »

@cag: Yes, the strict semicolon parsing is a Mac thing. Windows and Linux use GNUstep to parse plists and that apparently is more relaxed syntax-wise than whatever it is that the Mac uses. Most likely the reason why these errors had not been reported for so long was that the OXPs were developed on Linux or Windows machines and were run mostly by people on Windows and Linux. As soon as we got some Mac users diving into the expansions, the issue came up.

To update unmaintained OXPs, you will most likely need to check that they have a license attached and, if they do (they should, otherwise they should not be uploaded to the Manager), get in touch somehow with the original author and obtain their permission to take custody of their work. Sometimes the license may allow you to do modifications freely provided you give credit to the original author, but it is considered good form to request permission in any case,
Post Reply