1
0
Fork 0
Commit graph

5321 commits

Author SHA1 Message Date
ehofman
0d576e1925 Vivian Meazza:
Testing revealed that the code was not reading y-offset - a
typo in the original code, and roll was in the wrong sense. All readily
fixable, and it now works.
2004-09-07 19:10:10 +00:00
ehofman
d158c8168d Make use of a pointer to a structure to pass multiple parameters around. 2004-09-07 09:53:23 +00:00
ehofman
fed4a2c25a Vivian Meazza:
I've added another parameter to the submodel - wind.

It's activated by the entry <wind>true</wind> in the ../submodel.xml file.
If true, the submodel is affected by the local wind, otherwise not. The
parameter defaults to false. This is useful for exhausts and smoke, and
possibly all objects.
2004-09-05 09:45:34 +00:00
ehofman
30f3bd5096 Add the missing buoyancy patch. 2004-09-01 21:05:04 +00:00
ehofman
1853012d90 Vivian Meazza:
Attached are the modified files to add buoyancy as a parameter for a
ballistic object. It may be set by adding

<buoyancy>x</buoyancy> to the submodel .xml file, where x is the appropriate
value (ft per sec2):

	32   neutral buoyancy - contrails
	>32  positive buoyancy - exhaust plumes
	(0   non-op - default value)

If <buoyancy>x</buoyancy> is not used, then there is no effect on the
current ballistic model
2004-09-01 08:32:54 +00:00
ehofman
d2d27f2d76 Tie the count into the property tree instead of using snprintf every frame. Add the life-timer to the property tree under sim/time/elapsed-sec for AI object animation (blending and/or scaling). 2004-08-30 11:13:29 +00:00
ehofman
fdab44652e David Culp: This is n idea from Vivian, it allows setting the count to a negative number which will give unlimited submodels (as long as the trigger is true). This is useful for contrails. 2004-08-30 09:15:04 +00:00
ehofman
af284e4bb9 David Culp: Here are small changes that allow one to set a life-span for submodels. 2004-08-30 09:11:59 +00:00
ehofman
cfc05f5f0d David Culp:
Silly me.  I was starting the timer at zero, so the first tracer didn't fly
until 0.25 seconds after pulling the trigger.  Now the timer starts at the
same value as "delay", so the first round comes out immediately.

Also, I've added an optional configuration attribute that allows you to change
the ballistics of the submodel.  This allows parachutes, or anything else
that has ballistics different from a bullet.  The attribute is called "eda",
which is the equivalent drag area.  Default value is 0.007, which gives the
same ballistics as the current tracers.  Increasing this value gives more
drag.  A value of 2.0 looks good for a parachute.


math stuff
########################################################################
The deceleration of the ballictic object is now given by:

[ (rho) (Cd) ] / [ (1/2) (m) ] * A * (V * V)

where rho is sea-level air density, and Cd and m are fixed, bullet-like
values. So the calculation is:

0.0116918 * A * (V * V)

The value "A" is what I'm calling the "eda" (equivalent drag area).
########################################################################


A parachute model will have to be built so that the parachutist's feet
are in the forward x-direction.
Here is the submodel.xml config I use for "parachutes":

  <submodel>
    <name>flares</name>
    <model>Models/Geometry/flare.ac</model>
    <trigger>systems/submodels/submodel[0]/trigger</trigger>
    <speed>0.0</speed>
    <repeat>true</repeat>
    <delay>0.85</delay>
    <count>4</count>
    <x-offset>0.0</x-offset>
    <y-offset>0.0</y-offset>
    <z-offset>-4.0</z-offset>
    <yaw-offset>0.0</yaw-offset>
    <pitch-offset>0.0</pitch-offset>
    <eda>2.0</eda>
  </submodel>
2004-08-26 16:25:54 +00:00
ehofman
065d4d8da1 David Culp, Vivian Meazza:
Last night I sent these new files to Vivian to fix a problem he found.  Since
we can have more than one submodel we need more than one "count" property.
The new code creates a property systems/submodels/submodel[n]/count for each
submodel.  Vivian is using this count property for his sound.
2004-08-26 12:27:39 +00:00
ehofman
c4aa3fa661 David Culp:
Here is an update for the submodel system.  This will allow submodels to be
defined for any aircraft, and there are no default submodels.  To use this
submodel system you need to set up a binding (slight change in property name
from last one, but you can use any property name you like, as long as it
matches the name in the submodels.xml file, see below):

 <button n="0">
  <desc>Trigger</desc>
  <binding>
   <command>property-assign</command>
   <property>/systems/submodels/trigger</property>
   <value type="bool">true</value>
  </binding>
  <mod-up>
   <binding>
    <command>property-assign</command>
    <property>/systems/submodels/trigger</property>
    <value type="bool">false</value>
   </binding>
  </mod-up>
 </button>


Then in your *-set.xml file you need to define a path to the configuration
file (similar to the way the electrical system is now done):

<sim>
 ...
  <systems>
   <electrical>
    <path>Aircraft/Generic/generic-electrical.xml</path>
   </electrical>
   <submodels>
    <serviceable type="bool">true</serviceable>
    <path>Aircraft/FW190/submodels.xml</path>
   </submodels>
  </systems>
 ...
</sim>


Then you put the submodel configuration file in your aircraft's directory.
I've attached a file, submodels.xml, that can be used to define a gun that
works just like the former one did.


There are two things remaining to be done.  One is to change the function
SubmodelSystem::transform() to properly position the submodel.  This will
require some complicated matrix code that I might borrow from Yasim.
2004-08-26 08:38:43 +00:00
ehofman
5a8f277b88 Include multipass clouds by default, enable it by specifying --prop:/sim/rendering/multi-pass-clouds=true 2004-08-24 09:34:42 +00:00
ehofman
2a610d77e7 Move the atexit() handler over to bootstrap.cxx (which makes libMain.a behave like a real library) and fix a segmentation fault when running 'fgfs -h'. The exit handler tried to change the (still uninitialized) mouse cursor causing a core dump. 2004-08-24 08:40:41 +00:00
ehofman
83ca912de2 Fix another one of those mistakes. I really shouldn't mess with code from others (without looking at it closely) :-( 2004-08-23 17:40:46 +00:00
ehofman
c4c67480ff Fix a mistake and make it possible to activate the submodel subsystem again. 2004-08-23 17:33:36 +00:00
ehofman
be6936be80 Vivian Meazza:
Well here's some tracer stuff. If fiddled around with submodel.cxx. It now
does what it says - you need to put this:

<!-- trial gun system -->
    <systems>
      <submodel>
        <serviceable type="bool">true</serviceable>
        <amount type="int">120</amount>
      </submodel>
    </systems>

In the *-set.xml file NOT within <sim></sim>. Trouble is it still defaults
to serviceable=true, but it also defaults to amount=0. Unless this bit of
code is included it wont run, so other models can't fire inappropriate
tracer. Revised submodel.cxx file attached.

I've changed to a non-billboard solution. I tried to make the viewing angle
of the tracer less than 180 degs, but failed. Close enough I think. It's
still a bit big, but a reasonable compromise. .AC file attached.

I remain concerned about the tracer colour. In practice, red is better (and
it's what I am used to) but David seems set on white, and I don't want to
upset him. I'm going to adjust the texture a bit more tomorrow.
2004-08-23 17:22:55 +00:00
ehofman
7aa1cd9b5a I forgot a small patch. 2004-08-22 17:04:37 +00:00
ehofman
161912ea4c David Culp:
Right now the code is not very configurable, and there is only one submodel per airplane possible. It is implemented as an SGSubSystem, just like the electrics, vacuum, etc. systems.  To make it work you need to make a release binding like this (for my joystick trigger):

 <button n="0">
  <desc>Trigger</desc>
  <binding>
   <command>property-assign</command>
   <property>/systems/submodel/trigger</property>
   <value type="bool">true</value>
  </binding>
  <mod-up>
   <binding>
    <command>property-assign</command>
    <property>/systems/submodel/trigger</property>
    <value type="bool">false</value>
   </binding>
  </mod-up>
 </button>

Then, each airplane that uses the system should have something like this added to its *-set.xml file (note that this does *not* go within the <sim></sim> tags):

 <systems>
   <submodel>
    <serviceable type="bool">true</serviceable>
    <amount type="int">70</amount>
   </submodel>
 </systems>


Future improvements will include:
1)  more configurability, so the user can create multiple submodels, and can assign them different locations, and pitch and yaw adjustments, and nitial velocity.

2) sound?

3) a more accurate calculation of the submodels location at any pitch/roll/yaw.

4) a way to pre-load the model, so the AI code doesn't have to parse the model every time it creates an instance.

I think that's all of it.
2004-08-22 16:22:18 +00:00
ehofman
72b201d96c David Culp:
The AIBase code was updated to fix an uninitialized pointer, and the
AIBallistic code has an improved FDM.
2004-08-21 12:24:54 +00:00
ehofman
4d9a30addc Add the real-weather-fetch options. 2004-08-21 12:00:12 +00:00
ehofman
97114e3159 Disable weather fetching if there are 3 errors within a 3 second period. This also solves the problem where FlightGear 'hangs' when real-weather fetching is enabled, but no network connection is present. 2004-08-21 11:43:48 +00:00
ehofman
4df8f790d5 IRIX users want pretty colors too. 2004-08-19 12:22:52 +00:00
ehofman
5c18572c64 Melchior FRANZ:
All necessary elements for an ADF gauge had been migrated from
Cockpit/kr_87.cxx to Instrumentation/adf.cxx. Migrating the sound
related elements was apparently planned, but not done yet. This
intermediate state broke the ident morse sound: it couldn't get
turned off and it always indicated "SF", regardless of the tuned-in
frequency. The following patches continue the migration:


adf-radio.diff     => Base/Aircraft/Instruments/adf-radio.xml:
---------------------------------------------------------------
* sets maximum volume to 1 (rather than 2); Not only is 1
  loud enough (and 2 unpleasantly noisy), it also prevents
  the knob from being turned to non-existant positions.  :-)
* fixes wrong use of /instrumentation/adf/ident
* the voice/ident selector(?) remains unchanged, but as it's
  not switched to "IDENT", there'll be no ident sound by default
  this is consistent with other sounds and DME.


radiostack.diff    => src/Cockpit/radiostack.[ch]xx:
---------------------------------------------------------------
* comment out use of FGKR_87 class. kr_87.[ch]xx is now no
  longer used. kr-87adf.xml would no longer work, either, but
  isn't used anywhere, anyway. Future adf radios have to use
  the adf instrument, using xml/Nasal for specific hardware
  implementation details.


adf.diff           => src/Instrumentation/adf.[ch]xx:
---------------------------------------------------------------
* adds ident morse sound capability using two new input
  properties:
  - /instrumentation/adf/volume-norm  (double)
  - /instrumentation/adf/ident-audible  (bool)
2004-08-19 11:54:57 +00:00
ehofman
02d721f8c9 The next version of the two hourly metar update from Melchior: add proxy handling. 2004-08-17 12:26:37 +00:00
ehofman
f2199a4f57 Some code cleanups, and add a number of command line options. 2004-08-17 08:45:45 +00:00
ehofman
d88f31fda2 Show the mouse cursor again, just before exiting. This could prevent an X windows crash for certain harware setups. 2004-08-15 16:53:11 +00:00
ehofman
5cd465354c Melchior FRANZ:
this was always only meant to be a test program for the metar lib, but now
that people are referring to it as a means to get metar reports, I think a
usage info is desirable. The list of test ids, on the other hand, isn't
necessary any more. This can still be handled by a Makefile or the commandline.
I'm all for keeping this tool in cvs, however. And also the not-used stuff
therein is a welcome source for how to use the SGMetar class.
2004-08-15 14:37:42 +00:00
ehofman
827cfded73 iFrederic Bouvier: Postpone rendering the scene until the scenery is loaded. This means that the splash screen remains a bit longer, but the scenery loading time is cut in half. 2004-08-15 11:25:15 +00:00
ehofman
4675058851 Replave libmk4.so.0 by libopenal.so.0 2004-08-08 11:32:28 +00:00
ehofman
3f881f549e Updates. 2004-08-07 12:26:22 +00:00
curt
887793655a Add condition lever (for turbo props) to FGNetCtrls class. 2004-08-06 18:09:23 +00:00
ehofman
d74cfcc798 Reffer to /usr/locla/share/FlightGear now. 2004-08-06 08:55:41 +00:00
curt
7857ef0381 Tweaks for 0.9.5 release. 2004-07-29 21:54:15 +00:00
curt
f9af52b588 Tweaks for 0.9.5-pre3 release. 2004-07-27 21:40:37 +00:00
curt
7ec5cbff7b Default bump mapped clouds to off for the official release. They can still
be turned back on via the rendering options dialog box.
2004-07-27 20:40:33 +00:00
curt
85fe50dcc5 Add support for a turbo prop condition lever.
Add support in the aircraft config file for a low idle and high idle n2.
2004-07-27 20:39:56 +00:00
curt
e5f0163ce0 Change condition lever position from an "int" to a "double". 2004-07-27 20:39:01 +00:00
ehofman
99a7850cc7 Add a few else statements to make the checking work correct. Thanks Tiago Gusmao for detecting this. 2004-07-27 16:35:34 +00:00
ehofman
2bc09e5268 Get rid of the double comma's for the file section of the generic protocol also. 2004-07-25 18:47:18 +00:00
ehofman
dddc4d4b16 Fix a problem where the protocol file could not be found when using the generic protocol over TCP/IP. 2004-07-25 16:38:33 +00:00
ehofman
009afccb37 Reduce the log-level of the airport not found
message.
2004-07-23 18:58:42 +00:00
ehofman
1a87ef23f5 Jim Wilson:
This is a workaround for an issue where the xml dialogs were shrinking on
subsequent pops.

Andy Ross says:

That looks like it should be fine for a release-time workaround.  The
2 pixel border on dialogs is at best a minor feature, and probably
invisible since the sub-frames all have their own padding.

Clearly the right fix would be to find out where the code is getting
confused by the previous layout.  In principle, the layout should be
idempotent: if you don't change the layout constraints, it shouldn't
change its layout.  There's still a bug in there somewhere.
2004-07-23 07:36:32 +00:00
ehofman
ef84402da1 How on earth???? Replace "and" by && and "or" by || to match C++ more closely........ 2004-07-23 07:33:24 +00:00
ehofman
025a1e2491 Durk Talsma:
I've included the latest fixes to the Traffic Manager/AI flightplan generation
code. Most of the code changes are in AIFllightplan.cxx. This is the code
that runs without depending on predefined FlightPlans in
#FG_ROOT/Data/AI/Flightplans.i

As suggested by Dave, I've also added a new property in
preferences.xml: /sim/traffic-manager/enabled, which is used to control
whether or not the traffic manager is active.

I'm still working on a few more 737 traffic patterns, those are going to take
a little longer, so I didn't want to wait sending in this code.

Finally, I haven't put much effort into ensuring "aeronautical correctness" in
this version yet. The code works on my system, but what the AI plane do may
actaully be quite rediculous. But I'd like to leave that for the next
version.
2004-07-22 18:50:29 +00:00
ehofman
9d972d86bf Jim Wilson: This patch prevents FDM execution until intial scenery load completes making
midair starts in the KSFO area possible again.
2004-07-22 16:42:14 +00:00
curt
517a7a3e5a Updates for v0.9.5-pre2. 2004-07-21 21:49:54 +00:00
ehofman
73e70fdb29 Fix a numeric_limits problem for older stdc++ libraries. 2004-07-21 06:56:59 +00:00
curt
77e21b26d2 Curt:
Stub in hooks for Propeller feathering controls and the turbo prop "condition"
lever.

I added a line in FGFDM.cpp to force control properties to exist if they
don't already.  This way you can specify anything you want and find them
in the property browser, otherwise no one else may create them and you are
stuck.

In PropEngine::solve() the code original sets _running = true at the
beginning and then sets running = false at the end.  I changed this to
save the current value at the start, set to true, solve(), and then
restore the original value at the end.  That way if we start off with
_running = true, we don't have to hack up the calc() routine which wasn't
using the value anyway.

Finally I added some very initial support to shut down a turbine engine
(_running = false) when the condition lever goes to zero.
2004-07-20 22:17:58 +00:00
curt
abb0221c74 Make distance penalty math for opposite oriented navaids more correct. 2004-07-20 00:59:17 +00:00
curt
d5a5c9bb0e Ed Sirett submitted a patch to consider antenna orientation when searching
for localizers.  I further hacked this to support GS and DME transmitters
(although Robin's DME transmitter data doesn't convey orientation
unfortunately.)
2004-07-19 18:02:00 +00:00