 |
Some elements of the Cockpit editing guide by Mekhazzio were retained in this guide but most of this is new. You can download Xis' excellent cockpits from his site at http://www.ozemail.com.au/~xis
The Graphics
All the default graphics are stored in .\zips\CPData.zip. Filename format is
xx_yy, x being the resolution and y being the view. 6_10 is 640x480 res view
10'o'clock (to the left). 12'o'clock view has three graphics, for straight ahead,
center and down.
The graphics are 256 color (8-bit). The very first entry in the palette (pure
blue) is used for masking transparencies while the last 48 are always drawn
at full brightness (for luminescent gauges and the like at nighttime). When
bringing down a 16-bit image to use, make sure you exclude the fullbright colors
and touch up the dials later by hand or your graphic will look horrible at night.
The cockpit itself is drawn with the information in the appropriate ...dat file
for the resolution (10_ckpit.dat for 1024x768). You can change the graphics
all you want as long as you stick within the template defined in the ...dat. To
add, remove or reposition a switch, dial, gauge, etc, you will have to do so
in the .dat file.
The Dat File
Editing the .dat file wrongly can cause Falcon to do Really Weird Things, ranging
from just looking weird to locking Windows up, so be wary when doing major edits
to avoid certain pitfalls, always back up your original .dat file before attempting
any editing.
The .dat file is split into five main areas:
- The Manager, which is found at the very top
- The Sound File entries
- The 9XXX objects - Imortant and often overlooked
- The Button Manager
- The Panels -each Panel also has its mini-manager, or totals.
The Manager
The numbers in The Manager should always correspond to how many totals are defined.
This must always be updated when you add or remove any objects etc.. The only
total that is not a straight forward "add-up" is the numobjects. This
is calculated on the number of individual objects created / called by yourself,
then four is added to this total, why four? Well remeber the 9XXX section ive
just mentioned above? These four objects are defined straight away in the .dat
file, therefore if you had a new virgin.dat file with no panels the numobjects
in the Manager when equal four. If I then added a new panel and one new object,
the Manager would equal five and the panels mini-manager would equal one, thats
easy to follow, but if within my new panel, I added one of the 9XXX objects,
my panels mini-manager would equal two, but the Mangers numobjects would still
only equal five, you have to remember it the number of individual objects.
#0 Manager
numsurfaces = 97;
numpanels = 62;
numcursors = 0;
numobjects = 178;
numbuttons = 102;
numbuttonviews = 239;
numsounds = 15;
mouseborder = 15;
hudfont=2;
dedfont=2
mfdfont=2;
popupfont=2;
saboxfont=2;
kneefont=2;
generalfont=2;
labelfont=2;
hud = 289 272 768 751;
templatefile = 1040 1224 10_tmplt.gif;
dogeometry;
#end
numsurfaces = the total number of surfaces you define throught the ...dat file.
Surfaces are used to mask the 3D world and improve FPS
numpanels = the total number of panels/views your cockpit has.
numcursors = not really used, it is possible to have more than one cursor defined
in F4, but it not worth the hassle :)
numobjects = the total number of Individual object defined, ie Dials, Ligths,
anything but buttons (switches)
numbuttons = the total number of buttons defined in the fourth section of the
.dat file, this will always be 102 with F4, unless your using an eRazor EXE
which can have more defined due to new addtions.
numsounds = the total number of sounds defined in the second section of the
.dat file, always 15 by default, it is possible to use new sounds.
mouseborder = the point at which your cursor changes at the edge of your screen
in pixels.
xfont = the size of font used on various text readouts, there are three options,
0, 1 and 2. Zero being the smallest possible and 2 being the largest.
hud = the Y, X position of the HUD as seen in the Hud only view, 1 Key, do not
play with this, not recommended.
templatefile = the size and name of the template file. This is the file that
allows you to have moving switches etc.. note: This can be increased in size
if needed.
dogeometry = this tells F4 to draw the 3D aircraft model so that you can see
the wings/munitions from within your 2D cockpit.
The Sound Files
By default, F4 has 15 available sounds, these are hardcoded in the exe. You
can change the sounds themselves using any sound editing software, and it is
possible to increase the number of sounds available within the cockpit, but
there are not many more available that are really worth all the effort.
// TOGGLLIL.wav
#0 Sound
entry = 115;
#end
//Toffllil.wav refers to the WAV file used, this is just a comment, anything
in the .dat file with // infront of it is just text, it doesnt actually do anything,
just makes things easier for us to read.
#0 Sound entry = 115; = #0 defines the number that your giving the sound file,
this is used later on with buttons etc.. Sound etnry = 115 refers back to the
hardcoded list in F4, this list actually calls the sound, 115 equals the toggllil.wav
file.
#end = the end of the definition of the sound file.
Below is the full list of sound files available within F4, ive added in numbers
along the edge to make life easier, as you can see from this list, the Toggllil.wav
file is number 115.
Full listing of default sounds from 1.08US.exe:
//0 L007a4174: .string "sounds\none.wav"
L007a4184: .string "sounds\biggun1.wav"
L007a4198: .string "sounds\biggun2.wav"
L007a41ac: .string "sounds\bombdrop.wav"
L007a41c0: .string "sounds\engheli.wav"
//5 L007a41d4: .string "sounds\eject.wav"
L007a41e8: .string "sounds\growl.wav"
L007a41fc: .string "sounds\growlock.wav"
L007a4210: .string "sounds\grndhit1.wav"
L007a4224: .string "sounds\grndhit2.wav"
//10 L007a4238: .string "sounds\missile1.wav"
L007a424c: .string "sounds\missile2.wav"
L007a4260: .string "sounds\missile3.wav"
L007a4274: .string "sounds\dirtdart.wav"
L007a4288: .string "sounds\h2odart.wav"
//15 L007a429c: .string "sounds\lawndart.wav"
L007a42b0: .string "sounds\prop.wav"
L007a42c0: .string "sounds\tank.wav"
L007a42d0: .string "sounds\truck1.wav"
L007a42e4: .string "sounds\truck2.wav"
//20 L007a42f8: .string "sounds\ricco1.wav"
L007a430c: .string "sounds\ricco2.wav"
L007a4320: .string "sounds\ricco3.wav"
L007a4334: .string "sounds\ricco4.wav"
L007a4348: .string "sounds\ricco5.wav"
//25 L007a435c: .string "sounds\vulstart.wav"
L007a4370: .string "sounds\vulloop.wav"
L007a4384: .string "sounds\vulend.wav"
L007a4398: .string "sounds\boomg1.wav"
L007a43ac: .string "sounds\boomg2.wav"
//30 L007a43c0: .string "sounds\boomg3.wav"
L007a43d4: .string "sounds\boomg4.wav"
L007a43e8: .string "sounds\boomg5.wav"
L007a43fc: .string "sounds\enginea.wav"
L007a4410: .string "sounds\engineb.wav"
//35 L007a4424: .string "sounds\f16ext.wav"
L007a4438: .string "sounds\f16int.wav"
L007a444c: .string "sounds\twi\mig21.wav"
L007a4464: .string "sounds\geardn.wav"
L007a4478: .string "sounds\burnere.wav"
//40 L007a448c: .string "sounds\burneri.wav"
L007a44a0: .string "sounds\twi\mig23.wav"
L007a44b8: .string "sounds\touchdn.wav"
L007a44cc: .string "sounds\booma1.wav"
L007a44e0: .string "sounds\booma2.wav"
//45 L007a44f4: .string "sounds\booma3.wav"
L007a4508: .string "sounds\booma4.wav"
L007a451c: .string "sounds\booma5.wav"
L007a4530: .string "sounds\flaps.wav"
L007a4544: .string "sounds\mcgun.wav"
//50 L007a4558: .string "sounds\jammer.wav"
L007a456c: .string "sounds\vulstrte.wav"
L007a4580: .string "sounds\twi\mig25.wav"
L007a4598: .string "sounds\twi\mig31.wav"
L007a45b0: .string "sounds\impacta1.wav"
//55 L007a45c4: .string "sounds\impacta2.wav"
L007a45d8: .string "sounds\impacta3.wav"
L007a45ec: .string "sounds\impacta4.wav"
L007a4600: .string "sounds\impacta5.wav"
L007a4614: .string "sounds\twslock.wav"
//60 L007a4628: .string "sounds\twslnch.wav"
L007a463c: .string "sounds\twslncir.wav"
L007a4650: .string "sounds\twssrch.wav"
L007a4664: .string "sounds\warning.wav"
L007a4678: .string "sounds\caution.wav"
//65 L007a468c: .string "sounds\altitude.wav"
L007a46a0: .string "sounds\bingo.wav"
L007a46b4: .string "sounds\lock.wav"
L007a46c4: .string "sounds\pullup.wav"
L007a46d8: .string "sounds\None.wav"
//70 L007a46e8: .string "sounds\iff.wav"
L007a46f8: .string "sounds\vulloope.wav"
L007a470c: .string "sounds\vulende.wav"
L007a4720: .string "sounds\twi\a50.wav"
L007a4734: .string "sounds\twi\chaparal.wav"
//75 L007a474c: .string "sounds\twi\f5.wav"
L007a4760: .string "sounds\twi\f22.wav"
L007a4774: .string "sounds\twi\2s6.wav"
L007a4788: .string "sounds\twi\adats.wav"
L007a47a0: .string "sounds\twi\ah66.wav"
//80 L007a47b4: .string "sounds\twi\av8b.wav"
L007a47c8: .string "sounds\twi\e2c.wav"
L007a47dc: .string "sounds\twi\e3.wav"
L007a47f0: .string "sounds\twi\f4.wav"
L007a4804: .string "sounds\twi\f14.wav"
//85 L007a4818: .string "sounds\twi\f15.wav"
L007a482c: .string "sounds\twi\hawk.wav"
L007a4840: .string "sounds\twi\hercules.wav"
L007a4858: .string "sounds\twi\j5.wav"
L007a486c: .string "sounds\twi\j7.wav"
//90 L007a4880: .string "sounds\twi\launch.wav"
L007a4898: .string "sounds\twi\lav_adv.wav"
L007a48b0: .string "sounds\twi\patriot.wav"
L007a48c8: .string "sounds\twi\sa2.wav"
L007a48dc: .string "sounds\twi\sa3.wav"
//95 L007a48f0: .string "sounds\twi\sa4.wav"
L007a4904: .string "sounds\twi\sa5.wav"
L007a4918: .string "sounds\twi\sa6.wav"
L007a492c: .string "sounds\twi\sa8.wav"
L007a4940: .string "sounds\twi\sa9.wav"
//100 L007a4954: .string "sounds\twi\sa10.wav"
L007a4968: .string "sounds\twi\sa13.wav"
L007a497c: .string "sounds\twi\slotback.wav"
L007a4994: .string "sounds\twi\su15.wav"
L007a49a8: .string "sounds\diveloop.wav"
//105 L007a49bc: .string "sounds\fireloop.wav"
L007a49d0: .string "sounds\chute.wav"
L007a49e4: .string "sounds\splish.wav"
L007a49f8: .string "sounds\rcktloop.wav"
L007a4a0c: .string "sounds\impactg1.wav"
//110 L007a4a20: .string "sounds\impactg2.wav"
L007a4a34: .string "sounds\impactg3.wav"
L007a4a48: .string "sounds\impactg4.wav"
L007a4a5c: .string "sounds\impactg5.wav"
L007a4a70: .string "sounds\impactg6.wav"
//115 L007a4a84: .string "sounds\cockpit\toggllil.wav"
L007a4aa0: .string "sounds\cockpit\chngview.wav"
L007a4abc: .string "sounds\cockpit\ejectlvr.wav"
L007a4ad8: .string "sounds\cockpit\geardwn.wav"
L007a4af4: .string "sounds\cockpit\gearup.wav"
//120 L007a4b10: .string "sounds\cockpit\icp1.wav"
L007a4b28: .string "sounds\cockpit\ICP2.wav"
L007a4b40: .string "sounds\cockpit\icpmntry.wav"
L007a4b5c: .string "sounds\cockpit\jettison.wav"
L007a4b78: .string "sounds\cockpit\knobbig.wav"
//125 L007a4b94: .string "sounds\cockpit\knoblil.wav"
L007a4bb0: .string "sounds\cockpit\mfd.wav"
L007a4bc8: .string "sounds\cockpit\momntary.wav"
L007a4be4: .string "sounds\cockpit\navknob.wav"
L007a4c00: .string "sounds\cockpit\togglbig.wav"
//130 L007a4c1c: .string "sounds\cockpit\chaflare.wav"
L007a4c38: .string "sounds\airbrake.wav"
L007a4c4c: .string "sounds\bind.wav"
L007a4c5c: .string "sounds\gearup.wav"
L007a4c70: .string "sounds\jettison.wav"
//135 L007a4c84: .string "sounds\scream.wav"
L007a4c98: .string "sounds\stall.wav"
L007a4cac: .string "sounds\wind.wav"
L007a4cbc: .string "sounds\flare.wav"
L007a4cd0: .string "sounds\brakend.wav"
//140 L007a4ce4: .string "sounds\brakloop.wav"
L007a4cf8: .string "sounds\brakstrt.wav"
L007a4d0c: .string "sounds\brakwind.wav"
L007a4d20: .string "sounds\flapend.wav"
L007a4d34: .string "sounds\flaploop.wav"
//145 L007a4d48: .string "sounds\flapstrt.wav"
L007a4d5c: .string "sounds\gearcend.wav"
L007a4d70: .string "sounds\gearcst.wav"
L007a4d84: .string "sounds\gearloop.wav"
L007a4d98: .string "sounds\gearost.wav"
//150 L007a4dac: .string "sounds\gearoend.wav"
L007a4dc0: .string "sounds\cockpit\ugh.wav"
L007a4dd8: .string "sounds\twi\Barlock.wav"
L007a4df0: .string "sounds\twi\Firecan.wav"
L007a4e08: .string "sounds\twi\flatface.wav"
//155 L007a4e20: .string "sounds\twi\longtrak.wav"
L007a4e38: .string "sounds\twi\lowblow.wav"
L007a4e50: .string "sounds\twi\MPQ54.wav"
L007a4e68: .string "sounds\twi\MSQ48.wav"
L007a4e80: .string "sounds\twi\MSQ50.wav"
//160 L007a4e98: .string "sounds\twi\spoonrst.wav"
L007a4eb0: .string "sounds\twi\Tps63.wav"
L007a4ec8: .string "sounds\twi\f16.wav"
L007a4edc: .string "sounds\twi\spy1a.wav"
L007a4ef4: .string "sounds\twi\gundish.wav"
//165 L007a4f0c: .string "sounds\twi\amraam.wav"
L007a4f24: .string "sounds\twi\phoenix.wav"
L007a4f3c: .string "sounds\cockpit\lspdtone.wav"
L007a4f58: .string "sounds\tlscrape.wav"
L007a4f6c: .string "sounds\rumble.wav"
//170 L007a4f80: .string "sounds\rumbshrt.wav"
L007a4f94: .string "sounds\thump2.wav"
L007a4fa8: .string "sounds\TireSqueal.wav"
L007a4fc0: .string "sounds\hit1.wav"
L007a4fd0: .string "sounds\hit2.wav"
//175 L007a4fe0: .string "sounds\hit3.wav"
L007a4ff0: .string "sounds\hit4.wav"
L007a5000: .string "sounds\hit5.wav"
L007a5010: .string "sounds\GroundCrunch.wav"
//179 L007a5028: .string "sounds\c130.wav"
Therefore if we wanted to add the "Jammer WAV" to the ECM switch, the following
has to be done. The Jammer WAV file is entry 50, in the list. First a new entry
has to be made in the WAV section of the DAT file, in this case for the Jammer:
// JAMMER.wav
#15 Sound
entry = 50;
#end
The Manager at the top of the .dat file then has to be updated to show this
increase:
numsounds = 15; is now changed to: numsounds = 16;
And finally the switch itself has to be updated, this is found at the top of
the .dat file, where the Buttons are defined:
// ECM Switch
#1072 Button
states = 2;
cursorid = 9;
callbackslot = 69;
initstate = 1;
delay = -1;
numbuttonviews = 1;
sound1 = 15;
#end
The sound1= has to be changed to match the new entry, in this case 15.
The 9XXX Numbers
These refer to the graphical ADI and text altitude readouts your see within
your 2D cockpit, the ones stuck in the right and left hand corners. Remember,
as I pointed out earlier, these can be added to any view, but when doing so,
do not add them onto the Managers total again. The indivual panels mini-manager
has to be ammended though.
The Button Manager
This is where all the buttons available to use within your panels are defined,
unless your using an eRazor EXE there is always 102 available, a typical entry
is defined as:
// MPO Switch
#1007 Button
states = 2;
cursorid = 9;
callbackslot = 7;
initstate = 0;
delay = -1;
numbuttonviews = 1;
sound1 = 0;
#end
// MPO Switch is the text comment to make things easier for us to read, does
not affect F4 if this isnt there etc..
#1007 Button = this is the number you will use within your panel when calling/using
this button.
states = the number of alternate views the switch has, in this case, on and
off, therefore two states.
cursorid = the shape of the cursor when your mouse hovers over the button.
callbackslot = this refers back to the internal workings of F4, this is what
makes the button actually do something useful, you cannot change this.
initstate = the postion that the switch is set too when starting F4, ie on or
off.
delay = the way in which the switch graphically works, -1 means the switch will
stay depressed down / toggled on. 0 means the swich will return to the original
position after clicking on it, like a telephone button.
numbuttonviews = Very Important, this is the number of views/panels that the
switch is used in
sound = the sound file associated with the switch.
Note: The reference numbers (# numbers) are unique to each type. That is, you
can have a #100 ButtonView and a #100 Light, but make sure there's only one
#100 ButtonView in the entire file.
The Panels
Note: all coordinates are given in Y X (not X Y as is usual). Rectangular fields
are defined by their upper left and lower right corners, in that order: Y1 X1
Y2 X2
The panels refer back to your Gif files, ie the views you see in your 2D cockpit.
The example below shows a the basics of a typical panel, it includes the two
basic cockpit components, a Light (object) the Button (switch) and the 9XXX
numbers.
//------------------------------------------------// // Begin Panel #500
// 1000 View (10_10.gif)
#1 Buffer
filename = 10_10.gif;
buffersize = 1024 768;
#end
#501 Surface
srcloc = 241 969 291 1023;
filename = 10_10.gif;
#end
#502 Surface
srcloc = 292 909 363 968;
filename = 10_10.gif;
#end
// Autopilot Switch
#520 ButtonView states = 2;
parentbutton = 1076;
destloc = opaque 655 931 690 963;
srcloc = 441 527 476 559;
srcloc = 441 527 476 559;
persistant = 0;
#end
//Front landing gear
#522 Light states = 3;
cyclebits = 0x0010;
callbackslot = 129;
initstate = 0;
destloc = opaque 748 846 767 869;
srcloc = 293 369 312 392;
srcloc = 293 344 312 367;
srcloc = 293 369 312 392;
persistant = 0;
// 1000 View Panel
#500 Panel pantilt = -45.0 18.0;
masktop = 768;
numsurfaces = 2;
surfaces = 501 0 transparent 241 969 291 1023;
surfaces = 502 0 opaque 292 909 363 968;
offset = 0 0;
numobjects = 3;
objects = 522 9902 9006;
numbuttonviews = 1;
buttonviews = 520;
cursorid = 0;
mousebounds = 400 0 767 1023;
adjpanels = 1400 0 1100 100 600 900 900 -1;
#end
// End Panel #500 //------------------------------------------------//
Surfaces
At the very top of this example, we see Surfaces defined, these are areas that
you dont really see from within your 2D cockpit, but theyre very important for
FPS
You have to imagine flying Falcon 4 in a 3D world, your cockpit just masks
over this world - the 3D world is always there. The use of surfaces basically
tells the engine how much to render in your 2D cockpit views, therefore masking
is very important for higher FPS. If you had no surfaces defined, you would
only see the 3D world.
There are two kinds of Surfaces, Transparent and Opaque, opaque always being
the prefered surface to use. The surface is a large rectangular box, it uses
the Y,X format like everything else. To add new surfaces, you have to imagine
your GIF file as a painters easel, over the top of your lovely rendered cockpit,
your are going to draw imaginary boxes. These boxes cannot overlap - so therefore
exact placement is required. In areas where there is a large expanse of cockpit,
you can draw an imaginary Opaque surface. In areas where your cockpit is at
an angle, and therefore you see the the blue transparent colour, you have to
use a Transparent surface. In areas of your GIF where you see only the blue
transparent colour, you do not need to define any surface at all.
A Button View
// Autopilot Switch - This is just text to remind us what the button does
#520 ButtonView - The # number for this individual button, the number can be
anything, but you can only define one #520 number, 520 being used here because
it is the 20th entry in Panel 500
states = 2; - The number of positions the button has
parentbutton = 1076; - This refers back to the Button Manager, and ulitmately
the Callbackslot
destloc = opaque 655 931 690 963; - The X,Y position on your GIF file where
the button is positioned
srcloc = 441 527 476 559; - The X,Y position on the Template File of your button
in State 1 (this is never used though!, State 1 will always use your GIF file)
srcloc = 441 527 476 559; - The X,Y position on the Template File of your button
in State 2
persistant = 0; - An unknown command, just leave it as is.
#end
A Object (Light)
//Front landing gear - This is just text to remind us what the button does
#522 - The # number for this individual light
Light states = 3; - The number of states the light has
cyclebits = 0x0010; - The refers back to the speed that the light works
callbackslot = 129; - Refers back to the all important Callbackslot, remember
there is no Light Manager, like the Button one
initstate = 0; - The initial state the light is in, when entering the cockpit
destloc = opaque 748 846 767 869; - The X,Y position on the Template File of
your light
srcloc = 293 369 312 392; - The X,Y position on the Template File of your light
in its initial state.
srcloc = 293 344 312 367; - The X,Y position on the Template File of your light
in its second state.
srcloc = 293 369 312 392; - The X,Y position on the Template File of your light
in its third state.
persistant = 0; - An unknown command, just leave it as is.
The Panels Mini-Manager
// 1000 View Panel - Just text to remind us, what position the view is, ie 10
o Clock
#500 Panel - The # number for the panel, this is used when setting out how you
change view via your hatswitch or keyboard.
pantilt = -45.0 18.0; - The Horizontal and Vertical view of your head in relation
to the 3D world, in this case 45 degrees left, 18 above the horizon line
masktop = 768; - Very important, this is position of the lowest part that your
cockpit covers up the 3D world, if it covers up all, use 1, never 0, if your
cockpit needs does not fully cover up all the the 3D world, it will be 768 in
the case of a 1024x768 cockpit
numsurfaces = 2; - The number of surfaces you defined
surfaces = 501 0 transparent 241 969 291 1023; - Surface 1
surfaces = 502 0 opaque 292 909 363 968; - Surface 2
offset = 0 0; - Not used, but you can offset your cockpit in pixels, ie move
it over left or right, no recommend to use!
numobjects = 3; - The number of object your panel uses
objects = 522 9902 9006; - The # numbers of the panels, in this case we have
added in two of the 9XXX numbers, remember, in this case, we would only add
one to the Manager, not 3, as we have only defined one new individual object.
numbuttonviews = 1; - The number of buttons your panel has
buttonviews = 520; - The #number of the buttons
cursorid = 0; - Not used
mousebounds = 400 0 767 1023; - Doesnt seem to do anything!! Leave as is.
adjpanels = 1400 0 1100 100 600 900 900 -1; - The adjacent panels to this view,
starting from the Up view, then rotating clockwise, these numbers affect how
your hatswitch works
#end
// End Panel #500 //------------------------------------------------//
Oddities
These are other items you will find defined throught the .dat file
Chevron
---------
Draws the chevrons that point to the HUD when you pan away from 2d graphic.
Contains:
pantilt - Y X tilt of the camera.
pantiltlabel - the type of 9XXX used
DED
---------
Contains:
destloc - the Y,X position of the DED
callbackslot = -1;
Dial
---------
Renders a rotating needle.
Contains:
cyclebits
persistant
callbackslot
numendpoints // Defines how many points & values (?)
points // Needle ranges (?)
values // Corresponding numerical values for each point (used with callbackslot?)
radius0 // Always 0
radius1 // Length of needle
radius2 // Width of needle
srcloc // Unknown. Always same as destloc.
destloc
color0 // Unknown. Always black.
color1 // Primary needle color, in BGR hexadecimal 0xFFbbggrr)
color2 // Secondary needle color (shading)
Digits
---------
Displays static digits (as opposed to a scrolling tape Indicator)
Contains:
numdigits // Self-explanatory
callbackslot
cyclebits
srcloc // Need ten of these. Starts with 0
destloc // Need as many as numdigits
HSI
------
Horizontal Situation Indicator. The navigation thingie.
Contains:
callbackslot = 8;
destloc // Three of these. One each for compass background, course lines and
heading caret I assume
warnflag // ???
srcloc // Two of these. One is compass background, other is.. ??
cyclebits
persistant
Indicator
------------
Displays a scrolling tape
Contains:
numtapes // Self-explanatory
callbackslot
cyclebits
orientation // "vertical" or "horizontal"
maxval // Maximum numerical value (Used with callbackslot?)
minval // Minmum numerical value. Tape does not loop back on itself naturally,
the graphic must duplicate on either side.
maxpos // Source coordinate to go with maxval. Y if vertical, X if horizontal.
minpos // the opposite
srcloc // the tape graphic source
destloc // need one for as many numtapes
persistant
Kneeview
-----------
The briefing/map kneeboard overlay.
Contains:
cyclebits = 0x1000; // Unknown
destloc
LiftLine
-----------
Designates to draw lift line in this panel (if enabled in graphics settings).
See Chevron.
Contains:
pantilt
pantiltlabel
Please comment on this article in the Article
Feedback Forum
|
 |
 |
|
 |