Spacecraft Arrow Freighter for Orbiter2016. Merry Christmas!

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
211
Reaction score
240
Points
58
Location
On my chair
Good to know. There are several things to fix in the code. It's a miracle it works as it is. :LOL:


New version attached on this post. Changes:
*Added HELP button functionality. If you make it to page 13, there is a message to Dan (I am not crying, just got some Martian dust in my eye).
*Fixed the annoying blinking of the Systems display (not very visible at >300 frame rate, but annoying if you lock the frame-rate at 60 fps).
*Systems display (right panel) now updates at 10hz instead of 1hz.
You don't need the previous version, all files and new source code are included here.
If you have the version from post #1, simply overwrite all the files.


Next. I'll start working to get some EVA functionality.

BTW, if anyone can record a quick video of the VC, showing the frame-rate and trying out all the buttons, I'd be grateful.
:cheers:
So, I take it you're reimplementing this from scratch? What kind of license are you considering for it in the long run?
If you want I can have a look at porting it to XRSound and removing the GDI stuff.
Awesome work in any case:hailprobe:
 

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
So, I take it you're reimplementing this from scratch? What kind of license are you considering for it in the long run?
If you want I can have a look at porting it to XRSound and removing the GDI stuff.
Awesome work in any case:hailprobe:
Thanks!

Almost from scratch. Started with an SC3 ini file and converted to dll with Artlav's SC3→dll. A few years back, Artlav was kind enough to provide a version which also included the source code for the created dll.
With that starting point, I kept building upon it, until I had something semi-stable with enough features to share.

License: My intention is to be open to anyone to use as they please, as long as they never charge anything for it and share their code. So... MIT ?
// ==============================================================================================================================
//
// Copyright (C) 2022 Dimitris Gatsoulis
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
// files (the "Software"), to use, copy, modify, merge, publish, distribute, interact with the Software and sublicense
// copies of the Software, subject to the following conditions:
//
// a) You do not sell, rent or auction the Software.
// b) You do not collect distribution fees.
// c) You do not remove or alter any copyright notices contained within the Software.
// d) This copyright notice must be included in all copies or substantial portions of the Software.
//
// If the Software is distributed in an object code form then in addition to conditions above:
// e) It must inform that the source code is available and how to obtain it.
// f) It must display "NO WARRANTY" and "DISCLAIMER OF LIABILITY" statements on behalf of all contributors like the one below.
//
// The accompanying materials such as artwork, if any, are provided under the terms of this license unless otherwise noted.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// ==============================================================================================================================
This will be added in the next version I upload.

About the XRSound: Yeah, it is on my todo list, since it is now included (I think) with OpenOrbiter. If you could help with that, it would be great.
Need to check though if any OrbiterSound sound files are used, or if the ones used are only the ones included in the UCGO/Arrow 2010 version.
 

n72.75

Move slow and try not to break too much.
Orbiter Contributor
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
2,647
Reaction score
1,318
Points
128
Location
Saco, ME
Website
mwhume.space
Preferred Pronouns
he/him
License: My intention is to be open to anyone to use as they please, as long as they never charge anything for it and share their code. So... MIT ?

MIT license doesn't prevent people from selling the software, or making it less permissive.

The MIT license is the "do anything" license.

Preventing people from selling it is not something you will find in any open source license, and is somewhat antithetical to the open source ideology. (But I understand why you want to)

You're best bet is to start with something like a MIT or Apachee license and add a few extra clauses of your own. Also make sure you clarify distinctions between your software and Dan's mesh. As long as you're following the terms of Dan's license, which I believe you are, you're fine.


(Don't take legal advice from me. I am not a lawyer.)
 

Tycho

Member
Joined
Feb 2, 2010
Messages
261
Reaction score
11
Points
18
Location
Orion Arm, Milky Way Galaxy
This is excellent; thank you, dgatsoulis (and Dan and Fred18). Works beautifully for me thus far and, I have to say, the microtextures and high-resolution elevation maps available in Orbiter 2016 look even more incredible from the flight deck of the Arrow. Incredibly immersive, which is why love this vessel in particular.
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
211
Reaction score
240
Points
58
Location
On my chair
Did a trial run for porting to sketchpad, I had to comment a "RoundRect" command because it showed over the "AUTOPILOT ON" text (also the sketchpad API has no such function). The oapiCreateFont function is not as rich as the WinAPI one (you cannot specify a width, only a height) so it may break some text alignments.
Barring linux bugs, it looks like this (you can notice some UTF8 encoding issue for the '°' sign):
skp.png
I'll PM you some patches if you want, the XRSound stuff is partially done (multiple ambiance sounds are not handled directly by XRSound, I think one must specify a directory containing several samples for it to work so it would require changing the sound files hierarchy). I also had to rewrite the getSubdirs using c++ std::filesystem instead of WinAPI, I don't know if it'll compile on your end.
Cheers
 

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
I'll PM you some patches if you want, the XRSound stuff is partially done (multiple ambiance sounds are not handled directly by XRSound, I think one must specify a directory containing several samples for it to work so it would require changing the sound files hierarchy). I also had to rewrite the getSubdirs using c++ std::filesystem instead of WinAPI, I don't know if it'll compile on your end.
Cheers
Thank you very much. I appreciate all the improvements you are able to provide.
When you can, please send me the patch and I'll have a look. I am currently working on the EVA (just EVA not full crew yet).
 
Joined
May 16, 2021
Messages
16
Reaction score
2
Points
3
Location
Cles
Merry Christmas to all the members of the Orbiter Forum community!
As a small token of appreciation, I'd like to gift you all the Arrow Freighter for Orbiter2016! Source code included!

Prerequisites:

1.Download and install the D3D9 client from here: http://users.kymp.net/~p501474a/D3D9Client/
2.Download and install the UCGO 3.0 + UMmu 3.0 - 2014 edition addon from Dan's Orbiter Page: http://orbiter.dansteph.com/forum/index.php?page=download
3.Download and install the OrbiterSound 5.0 for Orbiter 2016 addon from the same page.
4.Drop by Dan's forum and send him a thanks for his all his wonderful work all these years!
5.Download and install the GeneralVehicle addon from here: https://www.orbiter-forum.com/resources/generalvehicle.3158/
6.Send a thanks to Fred18!
7.Download and install the zip file attached to this post.
8.Run one of the 3 scenarios that start with "Arrow_"

Notes:
I've tried to add as many of the systems I could from the 2010 version. (RoofScreens, Maneuver Security, Countdown, systems display, Azure Rover (with GeneralVehicle), ChangeSkin, etc.).
The Crew and Cargo stuff have not been implemented yet, but I do plan on adding them. Will be posting updates here.
In the VC, any button/functionality that hasn't been implemented yet, returns a "Sorry, this feature is not available at the moment" audio message.
This is a work in progress. Expect CTDs and other bugs.
Added feature: You can change the cover of the book in the VC, by clicking on it.

Keys:
[VC]
Alt-Ctrl-UpArrow to move to the front windows
Alt-Ctrl-DownArrow to return to cockpit.
Ctrl-DownArrow to go to the Captain's cabin.
Alt-Ctrl-UpArrow in the captain's cabit to move to the window
Ctrl-UpArrow to return to the VC.
[/VC]

G - Gear up/down
B - Bay open/close
U - Rover lift extend/retract
C - Crew lift extend/retract
W - Start/Stop Gravity wheel
J - Attach/detach Azure Rover (needs to be within 20 meters from the rover lift).

I hope you all have a wonderful holiday season, filled with joy, laughter, and of course, plenty of space exploration!
Hello Dimitri,
today I was anxious to play with you Christmas gift (the original one not the 26/12 update) and i found some small issue:
  • gravity wheel was working on the ground and i stop it, after in moon orbit does not work any more also if I push start;
  • in a random way when I open a mission with or without your 26/12 update, the main desk with Hover, engine indicator and so on it appears in the right way (with the current value of % engine) or without any value like a "frozen default image",
Attached the last quicksave in orbit on the moon
I hope will help you to improve this wonderful dream vessel!
thank you very much
 

Attachments

  • Arrow_ground_moon 0001 0001 0001.scn
    3.7 KB · Views: 11

pushkin

Donator
Donator
Joined
Feb 13, 2013
Messages
42
Reaction score
55
Points
33
The docking ports don't have a frequency transmitter making it nearly impossible to dock without eyeballing it in external view. Not sure if you were already aware of this so that's why I'm posting it.
 

Attachments

  • arrow dock.jpg
    arrow dock.jpg
    49.6 KB · Views: 22

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
Hello Dimitri,
today I was anxious to play with you Christmas gift (the original one not the 26/12 update) and i found some small issue:
  • gravity wheel was working on the ground and i stop it, after in moon orbit does not work any more also if I push start;
  • in a random way when I open a mission with or without your 26/12 update, the main desk with Hover, engine indicator and so on it appears in the right way (with the current value of % engine) or without any value like a "frozen default image",
Attached the last quicksave in orbit on the moon
I hope will help you to improve this wonderful dream vessel!
thank you very much

Thanks for the report! The wheel only works if the Arrow is not in "maneuver security" mode (Main display: Vessel maneuver security: OFF). If you have set it to ON, then the wheel is stowed and won't work until the maneuver security is set to OFF again. Please check and let me know.

The "normal" Wheel behaviour is: When you press it, (either W or the VC button) the wheel starts rotating slowly and it picks up speed for ~20 seconds until it reaches its full speed. When you press it again to stop, it slowly slows down and then it goes into "stow" mode, until it stops.

About the main display freezing: Happens to me also. I think I know where the bug is and I will try to fix it on the next update.

The docking ports don't have a frequency transmitter making it nearly impossible to dock without eyeballing it in external view. Not sure if you were already aware of this so that's why I'm posting it.
Thanks for the report. Forgot to assign frequencies, will do on the next update.
BTW, it is incorrect that you can only dock by eyeballing it. Eventhough there is no frequency to set in the COM-NAV, there is nothing stopping you from targeting the dock with DockMFD. (TGT→Name_of_ship→#Dock)
1672680162283.png
 

pushkin

Donator
Donator
Joined
Feb 13, 2013
Messages
42
Reaction score
55
Points
33
Thanks for the report! The wheel only works if the Arrow is not in "maneuver security" mode (Main display: Vessel maneuver security: OFF). If you have set it to ON, then the wheel is stowed and won't work until the maneuver security is set to OFF again. Please check and let me know.

The "normal" Wheel behaviour is: When you press it, (either W or the VC button) the wheel starts rotating slowly and it picks up speed for ~20 seconds until it reaches its full speed. When you press it again to stop, it slowly slows down and then it goes into "stow" mode, until it stops.

About the main display freezing: Happens to me also. I think I know where the bug is and I will try to fix it on the next update.


Thanks for the report. Forgot to assign frequencies, will do on the next update.
BTW, it is incorrect that you can only dock by eyeballing it. Eventhough there is no frequency to set in the COM-NAV, there is nothing stopping you from targeting the dock with DockMFD. (TGT→Name_of_ship→#Dock)
Oh, I should have tested that. My bad. I figured that wouldn't work if there was no frequency available. I'm used to putting the frequencies in the nav receiver stack before docking.
 

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
Crew and cargo have been implemented. Here are some screenshots:
1677364245886.png

1677364383562.png

1677365318607.png

The cargo and crew are persistent across scenarios and I have also added an option for vessels other than the Arrow to keep track of their crew by adding a single line in their cfg file. I have also intergrated my previous XR2 crew addon to fully support the crew of the Arrow vessels (all based on Fred18's GeneralVehicle.)

1677364845878.png

1677364951979.png

I have some testing to do and then we can probably go for a closed beta. After that the documentation and a public release with all the source code included.
Stay tuned...
 

Cougar

Member
Joined
Nov 13, 2010
Messages
45
Reaction score
5
Points
8
Absolutely stunning work, Dimitris!
Thank you very much!!!
How far has the BETA come by now?
Is there maybe a Pre-BETA to test for us which you could release already?
Waiting for it is so hard...
 

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
Absolutely stunning work, Dimitris!
Thank you very much!!!
How far has the BETA come by now?
Is there maybe a Pre-BETA to test for us which you could release already?
Waiting for it is so hard...
Thanks for the kind words. Here is a quick status report:

Crew progress:
Crew addition/removal/ingress/egress/oxygen use//helmet removal/death conditions [lack of o2 or hard surface impact]
Fully implemented and tested. There are a couple of bugs, but I'll work on them later.

Cargo progress:
Done:
CargoWater. (Just eye candy for now, cannot be used by crew).
Space fuel, barel fuel and oxygen. (Can also be used by the Arrow, pressing the "Use Fuel" or "Use O2" buttons).
CargoLights, CargoSolar. (Fully animated unpacking/packing).
BaseConnect, BaseControl, BaseMain, CargoTank. (Fully animated unpacking/packing).
Cargo Mass added to the Arrow's mass.

Currently working on:
Adding breathable areas and testing with the mmus (remove helmet without dying inside a fully inflated base module).
CargoSpaceFoodR34, CargoSpaceTrashR34. (eye candy)
Usable CargoTurbopacks (animated unpacking/spawn/remove/animated repacking).
CargoFlags (animated unpacking/spawn/remove/animated repacking).

RL permitting, we should have something by this weekend.
 

dgatsoulis

ele2png user
Donator
Joined
Dec 2, 2009
Messages
1,924
Reaction score
339
Points
98
Location
Sparta
Ok, so I have the latest version with crew and cargo ready.
I did some testing on my own, so I think we can go ahead with a test release.

Requirenents:
Step 1: Clean Orbiter2016 installation with no addons installed. (I don't want to have to chase any bugs that may be caused by other addons).
Step 2: Download and install the D3D9 client from here: https://www.orbiter-forum.com/resources/d3d9-for-orbiter-2016.5493/
Step 3: Download and install the UCGO 3.0 + UMmu 3.0 - 2014 edition addon from Dan's Orbiter Page: http://orbiter.dansteph.com/forum/index.php?page=download
Step 4: Download and install the OrbiterSound 5.0 for Orbiter 2016 addon from the same page.
Step 5: Download and install the GeneralVehicle addon from here: https://www.orbiter-forum.com/resources/generalvehicle.3158/
Step 6: Download and install the XRSound Official 2.0 addon from here: https://www.orbiter-forum.com/resources/xrsound-official.5455/
Step 7: Download and install the Sound Bridge OS addon from here: https://www.orbiter-forum.com/resources/sound-bridge-os.1377/
Step 8: Download and install the XR2 Official 1.10 addon from here: https://www.orbiter-forum.com/resources/xr2-official.5457/

Activate BOTH OrbiterSound5.0 and XRSound in the modules tab.
Once you have these requirements, download and install the latest Arrow from here: https://www.mediafire.com/file/y6csp2itluwaarg/Arrow_10032023.zip/file
---------------------------EDIT--------------------------------
Patch for bugs reported so far (unzip in your Orbiter root directory after everything is installed):
---------------------------EDIT--------------------------------




Arrow keys:
Gears - G
Bay door - B
Gravity Wheel - W
Rover Lift - U
Crew Lift - C
HUD toggle - keyboard 0
Attach/detach Azure Rover - J
Move to front windows - ALT-CTRL-UP_ARROW
Return to default position - ALT-CTRL-DOWN_ARROW
Move to left display - ALT-CTRL-LEFT_ARROW
Move to right display - ALT-CTRL-RIGHT_ARROW
Go to captain's cabin - CTRL-DOWN_ARROW
Return from captain's cabin to VC - CTRL-UP_ARROW

All the VC buttons are self-explanatory. The ones not working return a "Sorry, this feature is not available at the moment" message.
You can click on the book in the VC to change its cover.

The Arrow needs at least one crew member to operate it. You will get a message to press the ADD button in the Crew section of the right display panel (VC).
Enter a number following the prompt of the dialog box. You can select a full random crew by entering 43. Enter -1 to remove all crew.
Press ADD again to confirm your choice.

Azure Rover buttons:
Move Forward - Numpad 8
Turn Left - Numpad 4
Turn Right - Numpad 6
Brake/Stop - Numpad 2
Reverse - CTRL-Numpad 2
Attach/detach to/from Rover Lift - J (need to be within 10 meters from the lift).
Operate the Rover Lift - Enter (need to be already attached to it).
EVA crew member - CTRL-E (at least one crew member needs to have already entered the Rover).

MMU buttons:
(landed/on ground)
Move Forward - UP_ARROW
Turn Left - LEFT_ARROW
Turn Right - RIGHT_ARROW
Brake/Stop - DOWN_ARROW
Move Backward- CTRL-DOWN_ARROW
The autopilots cannot be engaged

(in flight)
Normal use of RCS Thrusters and orientation autopilots
With a turbopack attached you can use the default hover thrust controls

(both landed and in flight)
Attach/detach cargo - C
Pack/Unpack cargo - Enter (the same key will turn on/off an unpacked cargo light).
Attach/detach Turbopack - G
Toggle helmet - F --attention, results in death if you are in an airless environment.
Toggle suit light - PAGE_UP
Enter docking port/airlock - CTRL-E

The MMu will die if:
You are in an airless environment without a helmet (androids excluded [Bishop or Mr Data]).
After a hard surface impact (vertical speed more than 10 meters/sec).

XR2 Crew:
You need to run the crew.lua script. You can do that in the following ways:
1. By editing a scenario file:
Open a scenario file with a text editor and enter the line "Script crew" (without the quotes) in the BEGIN_ENVIRONMENT - END_ENVIRONMENT section.
Example:
BEGIN_ENVIRONMENT
System Sol
Date MJD 59952.418220
Script crew
Help CurrentState_img
END_ENVIRONMENT
Save and exit. The script will run as soon as you launch that scenario.

2. From the Lua Console window:
Activate the LuaConsole in the modules tab. In game, access it by pressing the function button in the top menu bar and select Lua Console Window in the menu popup.
Once it's open, type run('crew') and press enter. (with the quotes and parentheses).

3. From LuaMFD:
Activate LuaMFD in the modules tab. In game, open an MFD and select Terminal MFD. Press the INP button, type run('crew') and press enter. (with the quotes and parentheses).

Once the script is running, you can do the following when the focus vessel is an XR2:
Press Backspace to toggle the crew helmets.
Press CTRL-E to access the crew menu (The nose cone and the outer airlock door need to be open. You get an audio msg if they are not).
Follow the on screen instructions to add/remove/EVA/Ingress etc.

Other notes:
Breathable areas:
The cargo "base" modules have breathable areas, so you can remove the helmet if you are inside an inflated one. If you go out without your helmet you will die.
Making a vessel "accept" crew.
You can add the line "MaxCrew = x" in the config file of any vessel with a docking port. x = an integer from 1 to 42. i.e: MaxCrew = 5
This will turn the vessel into one that can "accept" crew that tries to enter it by pressing CTRL-E.
You can even do this while the scenario is running.
EVAs ("exiting" from a vessel) for vessels other than the Arrow, XR2 and Azure rover have not been implemented yet.

There are a few more things that I want to add to the Arrow, but for now I am a bit burned out developing it, so I'll take a little break. If the testing phase goes ok, without any major bugs, I'll release the source code for everything in the coming weeks.
Have fun, happy testing.
 
Last edited:
Top