
Wednesday rolls around again so quickly. Has it really been a week already? Of course it has. My week so far; well let’s see: My Mother has been on UK breakfast TV and radio this week talking about continuing to live life with a smile on her face whilst dying of bone cancer. (http://www.dyingmatters.org) My dog, Sally came on heat - there is blood everywhere and taking her for a walk has become an absurd cross between a Monty Python sketch and Close Protection duty. (We really don’t want puppies) And on top of that I’ve been trying to drum up more real world work. Oh yeah and I managed to break the RKSL website again thanks to another bungled security update. I really should know better by now. It will get finished one day I promise.
This spot is meant to be about updates, well there have been some updates and we have also tried to explain who we are and what we’re all doing. And of course where we’re planning to take RKSL. But just incase you haven’t already guessed this update business is a rather chaotic and unplanned affair. Often written mere minutes before publication and usually about...
Wednesday rolls around again so quickly. Has it really been a week already? Of course it has. My week so far; well let’s see: My Mother has been on UK breakfast TV and radio this week talking about continuing to live life with a smile on her face whilst dying of bone cancer. (http://www.dyingmatters.org) My dog, Sally came on heat - there is blood everywhere and taking her for a walk has become an absurd cross between a Monty Python sketch and Close Protection duty. (We really don’t want puppies) And on top of that I’ve been trying to drum up more real world work. Oh yeah and I managed to break the RKSL website again thanks to another bungled security update. I really should know better by now. It will get finished one day I promise.
Jean Coverdale is my Mum.
This spot is meant to be about updates, well there have been some updates and we have also tried to explain who we are and what we’re all doing. And of course where we’re planning to take RKSL. But just incase you haven’t already guessed this update business is a rather chaotic and unplanned affair. Often written mere minutes before publication and usually about whatever we’re focused on at that very moment. Apart from CBFASI’s, he the only one that submitted it 3 days early.
So as usual my cunning plan has come to naught and I‘ve decided to postpone my planned topic for another day and write something useful. I was asked by Icebreakr to explain how the HUD parallax setup works and I thought i'd try and kill two birds with one stone. And it does fit in with an earlier article about the new v2.x Typhoon’s HUD. The response to the article was quite telling really. Most PM’s emails etc were following a common theme. “How did you do that parallax thing?” So many people have asked me about and I confess I’ve gotten a bit tired of replying to the same question so I thought I’d write a short-ish Tutorial.
So here is the problem: “To parallax or not to parallax that is the question”
This is an issue that blights many a user made addon. When you fly around in planes your pilot’s viewpoint moves around the cockpit under the influence of virtual G forces. A few people have (strongly?) suggested that this effect has been a bit over done making it hard to aim. Thanks to parallax this movement means that any static HUD aiming symbology is actually useless. The solution in both the real and virtual worlds is to add parallax correction to the HUD.
At this point I should explain that while Suma and his minions have been fantastic in both adding this and giving us the option to disable it. The way the HUDs work in the ArmAverse isn’t accurate compared to real world equivalents. With parallax enabled the movement of the in-game ‘pilot’, due to g-forces forcing him around the HUD always follows the pilot’s eye. And while it is immersive and allows you aim accurately in game – which is really all that matters – it’s not really how parallax corrected HUDs work. In BIS’ defence there really isn’t another way to fix it without disabling the g-induced movement. Or instigating a far more complex way of controlling user movement.
So we have two options:
- Enable parallax for the entire HUD. Which BIS have done.
- Split the HUD into two layers: Static and Parallax.
Option 1 I find a bit disconcerting. I’ll go so far as to say I absolutelywithoutadoubtfrikkinghateit. (Say all of that in one breath through clenched teeth rapidly without moving your lips – hence no spaces).
I wouldn’t say it like that myself but I thought I’d see if you would. I bet you tried it didn’t you.
Personally I prefer option 2. Its just more of an elegant solution since you can see all the relevant flight info and have the parallax adjusted aiming cues.
CLASS MFD is your friend.
It really is. You can do an awful lot with it. But its one of those really annoying and obsessive friends that demands your full attention while interacting with it.
And if you don’t know what I’m talking about. You probably don’t know too many geeks or nerds. So I suspect your life is horribly empty and you should go out and meet some. Maybe go to university, hang around with the engineers and computer science geeks. I’d suggest avoiding biology students though. They tend to be a bit weird and grow things in your fridge right next to the tuna salad you made a few days ago. However it can be rather amusing when the flat-mate – the one you don’t really like too much - eats the biologist’s microbiology homework. Ok the smell of carrot and penicillin infested vomit after was really frikking horrible but it was funny and food stopped mysteriously disappearing in the middle of the night. At least for a few weeks. Oh and avoid Civil Engineers too. They are just weird, concrete sniffers with an almost sexual attraction to building sites. I mean who gets a ‘stiffy’ at the sight of a tower crane? Very, very strange people.
So CLASS MFD what is it?
Well it’s found in the config.cpp of aircraft mostly and its used for drawing the HUDs on the like of the Harrier and A-10 etc. If you look at the code in the config it’s a bit daunting. Actually pretty damn scary until someone explains it to you. After that its really not scary at all. Just fiddly. And if this fiddly stuff gives you as stiffy… seek help. Now!
I’m only going to focus on making a multilayered HUD today. Just like I’ve already done for the new Typhoon, so that you can enjoy accurate aim points via the HUD on your own custom aircraft. Now I could – and will eventually write – a comprehensive tutorial about modifying and creating custom huds using class mfd. But it can be a complex and very detailed process if you aren’t technically inclined. But I can’t really be arsed at the moment so it’s not going to be today.
Its square, not a rectangle a SQUARE!!!!!
Back to business then. The entire thing is based on a square. The top left corner is 0,0 and the lower right corner 1,1. The numerous (pardon the pun) values are just absolute and relative coordinates. If you don’t know what those are then stop reading here and go find out. If you don’t it might get a bit confusing from this point on.
The square is defined by 3 points located in the memory LoD:
topLeft = "HUD LH";
topRight = "HUD PH";
bottomLeft = "HUD LD";
If your points aren’t a proper square, its called a rectangle. And if you use a rectangle your HUD will get a bit squished and will look bloody stupid. The best way to create the points is to create 1x1 plane in O2 with the centre in the middle of your HUD plate then scale it down to suit. Now BIS coding monkeys being very clever monkeys indeed – I’m going to pay for that I know – have already made provision for rectangular HUD plates. Eg real F-18A/C/D HUD projects are actually rectangular. So the very nice people at BIS – is that better? – have included a way to turn your square HUD space into a rectangle without distorting the display if so needed.
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0;
If you enter 0.1 in both the borderleft and right it will only draw content in X0.1 and X0.9 but will draw the full height in Y. This is useful for several reasons, Its quick way of trimming the hud into shape if it starts to go outside of your modelled HUD plate. And potentially more importantly because it can also be used within subgroups to prevent overdrawing. For example the Pitch ladders and artificial horizon obscuring the Speed and Altitude ladders. But that’s a more advanced application. We’ll have to come back to that another day.
Talking of other days, I mentioned earlier that my dog Sally has just come into heat. Its attracting a lot of unwanted attention. Have you ever had the feeling that you are being followed? You know that slightly paranoid feeling that you are being watched, maybe stalked?
Well when you have a bitch in heat on a lead walking through a village every dog – and I do mean every dog – watches you. They say that “a dog's sense of smell is about 1000 to 10000000 times more sensitive than a human's (depending on the breed)”. Imagine how bad a fart smells to your dog if its bad enough o make everyone leave the room? Anyway, bitches in heat give off pheromones. The olfactory equivalent of a short tight dress and stilettos I guess. Oh my Sally must pump this stuff out.
Our regular 3km evening circuit attracted a lot of dogs. It started with the odd bit of barking in people yards as we walked by. Then graduated to a border collie following us about 20m back. Then another joined him. We start walking faster now. An Irish setter ran over from the other side of the field followed by its screaming owner. I started jogging. The dogs started jogging. The Setter’s owner was running now. Still screaming. A neighbour’s black Labrador jumps his fence and starts to lollop over. 200m until the safety of home with its 5ft fences. Jogging just that little bit faster. Sally is starting to slow down, im almost dragging her now. The first collie is next to us. The Setter is closing fast with his owner in trail. The second Collie is no longer in sight. I stop quickly and scoop Sally up, holding her high upon my chest. She doesn’t struggle, and seems just as freaked out by the attention as I am. Then it happens. All the dogs are barking the 2nd collie has reappeared from the opposite direction and we’re surrounded. And to add to the horror the setter locks onto my leg…and starts humping. The owner, whilst seemingly on the verge of a heart attack is screaming for it to stop and the Labrador strikes…not me but the Setter. Its turning into a doggy orgy. The collies are barking, the lab is humping the setter who has just released my leg. I’m not sure if it’s the resistance I’m putting up (I usually get kissed before I get f@%ked, and my type is typically human and considerably less hairy), from the surprise of being mounted by the Lab or the frantic calls of the owner. Either way I leg it the final 100m to my house Sally in my arms. Seconds later I’m in the house looking out the window, with Sally stood paws on the window sill peering out into the twilight with me watching her fan club.
Eventually I had to go out and take the dogs home again. Needless to say we’ve changed out nightly walking route.
Anyway. Back to topic.
Just make life a bit easier I’ve already extracted the class MFD from the Harrier config. This comes from the latest stable 1.6 patch. Not a beta.
Now if you spend a few moments looking through the code you won’t see any mention of parallax anywhere. This is because the default condition set in the base class is that parallax is set to ‘OFF’. What we are going to do is split this HUD into separate planes. One without parallax enabled that will hold all the static stuff like the compass, speed and altitude ladders etc. The other, will have parallax enabled and contain all the targeting markers etc.
The first layer we’re going to call “statichud”, the second “parallaxhud”.
class MFD
{
class statichud
{
enableParallax = 0;
...
};
class parallaxhud
{
enableParallax = 1;
...
};
};
The key thing is the enableParallax = line. O for static 1 for Parallax. You can also use true and false.
The next job is to split out the elements we want to keep in the static group. These are the compass, altitude and speed ladders, ammo counter etc. So going back to the original config we need to find the “class bones” and “class draw” sections.
class MFD
{
class statichud
{
enableParallax = 0;
class Pos10Vector
{
type = "vector";
pos0[] = {0.485,0.4};
pos10[] = {1.225,1.1};
};
topLeft = "HUD LH";
topRight = "HUD PH";
bottomLeft = "HUD LD";
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0;
color[] = {0,1,0,0.1};
class bones
{
};
class draw
{
};
};
class parallaxhud
{
enableParallax = 1;
class Pos10Vector
{
type = "vector";
pos0[] = {0.485,0.4};
pos10[] = {1.225,1.1};
};
topLeft = "HUD LH";
topRight = "HUD PH";
bottomLeft = "HUD LD";
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0;
color[] = {0,1,0,0.1};
class bones
{
};
class draw
{
};
};
};
Here comes the Coords
Class Bones is all about defining anchor points for relative coordinates to draw from. Class Draw use the anchors defined by the bones to draw the lines you see on the HUD.
So in the static Plane we are going to keep:
- PlaneW – this is the little aeroplane icon in the centre of your HUD.
- HorizonT – Pitch ladders/Artificial Horizon
- PlaneHeading – known in the real world as the VVI – Velocity Vector Indicator. You try to match this to the PlaneW icon to keep straight and level.
- Static – these are some drawn lines and borders using absolute co-ordinates.
- AltScale – Altimeter ladder scale. The position of this is defined by the ‘pos’ array and the size of the numbers by the ‘right’ and ‘down’ arrays. The size of the scale is controlled by ‘bottom’ and ‘top’ values. Have a play around and see what you get.
- SpeedScale – as above really. You should also note that none of these scales reference anything in the ‘class bones’ section.
- Gear – Adds a nice ‘GEAR’ word on the hud when the landing gear is down.
- Flaps – Same as above but its for the flaps.
- Weapons – States the name of the currently selected weapon
- Ammo – current ammo count for the current weapon.
- VspeedNumber – Vertical speed number in text.
- HeadingScale – aka compass.
- ILS – Instrument landing system/glideslope indicator etc.
The parallax plane is left with all the weapons related stuff:
- WeaponAim - Main aiming anchor point
- Targets - the boxes drawn around any visible target.
- Mgun - Only visible when Machine gun/cannon is selected. - uses relative coords from the Weaponaim anchor.
- Bomb - Only visible when bombs are selected. - uses relative coords from 3 sources.
- AAMissile - eg AIM-9
- ATMissile - eg Maverick
- Rockets - FFAR, CRV7 etc
Parallax Adjusted HUD
class MFD
{
class statichud
{
enableParallax = 0;
class Pos10Vector
{
type = "vector";
pos0[] = {0.485,0.4};
pos10[] = {1.225,1.1};
};
topLeft = "HUD LH";
topRight = "HUD PH";
bottomLeft = "HUD LD";
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0;
color[] = {0,1,0,0.1};
class bones
{
class PlaneW
{
type = "fixed";
pos[] = {0.485,0.4};
};
class Velocity: Pos10Vector
{
type = "vector";
source = "velocity";
pos0[] = {0.5,0.4};
pos10[] = {1.24,1.1};
};
class ILS_H
{
type = "ils";
pos0[] = {0.5,0.4};
pos3[] = {0.722,0.4};
};
class ILS_W: ILS_H
{
pos3[] = {0.5,0.61};
};
class Level0: Pos10Vector
{
pos0[] = {0.5,0.4};
pos10[] = {1.24,1.1};
type = "horizon";
angle = 0;
};
class LevelP5: Level0
{
angle = 5;
};
class LevelM5: Level0
{
angle = -5;
};
class LevelP10: Level0
{
angle = 10;
};
class LevelM10: Level0
{
angle = -10;
};
class LevelP15: Level0
{
angle = 15;
};
class LevelM15: Level0
{
angle = -15;
};
class LevelP20: Level0
{
angle = 20;
};
class LevelM20: Level0
{
angle = -20;
};
class LevelP25: Level0
{
angle = 25;
};
class LevelM25: Level0
{
angle = -25;
};
class LevelP30: Level0
{
angle = 30;
};
class LevelM30: Level0
{
angle = -30;
};
class LevelP35: Level0
{
angle = 35;
};
class LevelM35: Level0
{
angle = -35;
};
class LevelP40: Level0
{
angle = 40;
};
class LevelM40: Level0
{
angle = -40;
};
class LevelP45: Level0
{
angle = 45;
};
class LevelM45: Level0
{
angle = -45;
};
class LevelP50: Level0
{
angle = 50;
};
class LevelM50: Level0
{
angle = -50;
};
};
class draw
{
alpha = 0.4;
color[] = {0.0,0.3,0.05};
condition = "on";
class PlaneW
{
clipTL[] = {0.0,1.0};
clipBR[] = {1.0,0.0};
type = "line";
points[] =
{
{ "PlaneW",{ -0.08,0 },1 },
{ "PlaneW",{ -0.03,0 },1 },
{ "PlaneW",{ -0.015,0.0283784 },1 },
{ "PlaneW",{ 0.0,0 },1 },
{ "PlaneW",{ 0.015,0.0283784 },1 },
{ "PlaneW",{ 0.03,0 },1 },
{ "PlaneW",{ 0.08,0 },1 }
};
};
class Horizont
{
clipTL[] = {0.0,0.0};
clipBR[] = {1.0,1.0};
class Dimmed
{
class Level0
{
type = "line";
points[] =
{
{ "Level0",{ -0.2,0 },1 },
{ "Level0",{ -0.05,0 },1 },
{ },
{ "Level0",{ 0.05,0 },1 },
{ "Level0",{ 0.2,0 },1 }
};
};
class VALM_1_0
{
type = "text";
source = "static";
text = 0;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"Level0",{ -0.23,-0.025 },1};
right[] = {"Level0",{ -0.13,-0.025 },1};
down[] = {"Level0",{ -0.23,0.025 },1};
};
class VALM_2_0: VALM_1_0
{
align = "right";
pos[] = {"Level0",{ 0.22,-0.025 },1};
right[] = {"Level0",{ 0.32,-0.025 },1};
down[] = {"Level0",{ 0.22,0.025 },1};
};
class LevelM5: Level0
{
type = "line";
points[] =
{
{ "LevelM5",{ -0.2,-0.03 },1 },
{ "LevelM5",{ -0.2,0 },1 },
{ "LevelM5",{ -0.15,0 },1 },
{ },
{ "LevelM5",{ -0.1,0 },1 },
{ "LevelM5",{ -0.05,0 },1 },
{ },
{ "LevelM5",{ 0.05,0 },1 },
{ "LevelM5",{ 0.1,0 },1 },
{ },
{ "LevelM5",{ 0.15,0 },1 },
{ "LevelM5",{ 0.2,0 },1 },
{ "LevelM5",{ 0.2,-0.03 },1 }
};
};
class VALM_1_5
{
type = "text";
source = "static";
text = -5;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM5",{ -0.23,-0.085 },1};
right[] = {"LevelM5",{ -0.13,-0.085 },1};
down[] = {"LevelM5",{ -0.23,-0.035 },1};
};
class VALM_2_5: VALM_1_5
{
align = "right";
pos[] = {"LevelM5",{ 0.22,-0.085 },1};
right[] = {"LevelM5",{ 0.32,-0.085 },1};
down[] = {"LevelM5",{ 0.22,-0.035 },1};
};
class LevelP5: Level0
{
type = "line";
points[] =
{
{ "LevelP5",{ -0.2,0.03 },1 },
{ "LevelP5",{ -0.2,0 },1 },
{ "LevelP5",{ -0.05,0 },1 },
{ },
{ "LevelP5",{ 0.05,0 },1 },
{ "LevelP5",{ 0.2,0 },1 },
{ "LevelP5",{ 0.2,0.03 },1 }
};
};
class VALP_1_5
{
type = "text";
source = "static";
text = "5";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP5",{ -0.23,0.035 },1};
right[] = {"LevelP5",{ -0.13,0.035 },1};
down[] = {"LevelP5",{ -0.23,0.085 },1};
};
class VALP_2_5: VALP_1_5
{
align = "right";
pos[] = {"LevelP5",{ 0.22,0.035 },1};
right[] = {"LevelP5",{ 0.32,0.035 },1};
down[] = {"LevelP5",{ 0.22,0.085 },1};
};
class LevelM10: Level0
{
type = "line";
points[] =
{
{ "LevelM10",{ -0.2,-0.03 },1 },
{ "LevelM10",{ -0.2,0 },1 },
{ "LevelM10",{ -0.15,0 },1 },
{ },
{ "LevelM10",{ -0.1,0 },1 },
{ "LevelM10",{ -0.05,0 },1 },
{ },
{ "LevelM10",{ 0.05,0 },1 },
{ "LevelM10",{ 0.1,0 },1 },
{ },
{ "LevelM10",{ 0.15,0 },1 },
{ "LevelM10",{ 0.2,0 },1 },
{ "LevelM10",
{ 0.2,-0.03 },1 }
};
};
class VALM_1_10
{
type = "text";
source = "static";
text = -10;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM10",{ -0.23,-0.085 },1};
right[] = {"LevelM10",{ -0.13,-0.085 },1};
down[] = {"LevelM10",{ -0.23,-0.035 },1};
};
class VALM_2_10: VALM_1_10
{
align = "right";
pos[] = {"LevelM10",{ 0.22,-0.085 },1};
right[] = {"LevelM10",{ 0.32,-0.085 },1};
down[] = {"LevelM10",{ 0.22,-0.035 },1};
};
class LevelP10: Level0
{
type = "line";
points[] =
{
{ "LevelP10",{ -0.2,0.03 },1 },
{ "LevelP10",{ -0.2,0 },1 },
{ "LevelP10",{ -0.05,0 },1 },
{ },
{ "LevelP10",{ 0.05,0 },1 },
{ "LevelP10",{ 0.2,0 },1 },
{ "LevelP10",{ 0.2,0.03 },1 }
};
};
class VALP_1_10
{
type = "text";
source = "static";
text = "10";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP10",{ -0.23,0.035 },1};
right[] = {"LevelP10",{ -0.13,0.035 },1};
down[] = {"LevelP10",{ -0.23,0.085 },1};
};
class VALP_2_10: VALP_1_10
{
align = "right";
pos[] = {"LevelP10",{ 0.22,0.035 },1};
right[] = {"LevelP10",{ 0.32,0.035 },1};
down[] = {"LevelP10",{ 0.22,0.085 },1};
};
class LevelM15: Level0
{
type = "line";
points[] =
{
{ "LevelM15",{ -0.2,-0.03 },1 },
{ "LevelM15",{ -0.2,0 },1 },
{ "LevelM15",{ -0.15,0 },1 },
{ },
{ "LevelM15",{ -0.1,0 },1 },
{ "LevelM15",{ -0.05,0 },1 },
{ },
{ "LevelM15",{ 0.05,0 },1 },
{ "LevelM15",{ 0.1,0 },1 },
{ },
{ "LevelM15",{ 0.15,0 },1 },
{ "LevelM15",{ 0.2,0 },1 },
{ "LevelM15",{ 0.2,-0.03 },1 }
};
};
class VALM_1_15
{
type = "text";
source = "static";
text = -15;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM15",{ -0.23,-0.085 },1};
right[] = {"LevelM15",{ -0.13,-0.085 },1};
down[] = {"LevelM15",{ -0.23,-0.035 },1};
};
class VALM_2_15: VALM_1_15
{
align = "right";
pos[] = {"LevelM15",{ 0.22,-0.085 },1};
right[] = {"LevelM15",{ 0.32,-0.085 },1};
down[] = {"LevelM15",{ 0.22,-0.035 },1};
};
class LevelP15: Level0
{
type = "line";
points[] =
{
{ "LevelP15",{ -0.2,0.03 },1 },
{ "LevelP15",{ -0.2,0 },1 },
{ "LevelP15",{ -0.05,0 },1 },
{ },
{ "LevelP15",{ 0.05,0 },1 },
{ "LevelP15",{ 0.2,0 },1 },
{ "LevelP15",{ 0.2,0.03 },1 }
};
};
class VALP_1_15
{
type = "text";
source = "static";
text = "15";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP15",{ -0.23,0.035 },1};
right[] = {"LevelP15",{ -0.13,0.035 },1};
down[] = {"LevelP15",{ -0.23,0.085 },1};
};
class VALP_2_15: VALP_1_15
{
align = "right";
pos[] = {"LevelP15",{ 0.22,0.035 },1};
right[] = {"LevelP15",{ 0.32,0.035 },1};
down[] = {"LevelP15",{ 0.22,0.085 },1};
};
class LevelM20: Level0
{
type = "line";
points[] =
{
{ "LevelM20",{ -0.2,-0.03 },1 },
{ "LevelM20",{ -0.2,0 },1 },
{ "LevelM20",{ -0.15,0 },1 },
{ },
{ "LevelM20",{ -0.1,0 },1 },
{ "LevelM20",{ -0.05,0 },1 },
{ },
{ "LevelM20",{ 0.05,0 },1 },
{ "LevelM20",{ 0.1,0 },1 },
{ },
{ "LevelM20",{ 0.15,0 },1 },
{ "LevelM20",{ 0.2,0 },1 },
{ "LevelM20",{ 0.2,-0.03 },1 }
};
};
class VALM_1_20
{
type = "text";
source = "static";
text = -20;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM20", { -0.23,-0.085 },1};
right[] = {"LevelM20", { -0.13,-0.085 },1};
down[] = {"LevelM20", { -0.23,-0.035 },1};
};
class VALM_2_20: VALM_1_20
{
align = "right";
pos[] = {"LevelM20",{ 0.22,-0.085 },1};
right[] = {"LevelM20",{ 0.32,-0.085 },1};
down[] = {"LevelM20",{ 0.22,-0.035 },1};
};
class LevelP20: Level0
{
type = "line";
points[] =
{
{ "LevelP20",{ -0.2,0.03 },1 },
{ "LevelP20",{ -0.2,0 },1 },
{ "LevelP20",{ -0.05,0 },1 },
{ },
{ "LevelP20",{ 0.05,0 },1 },
{ "LevelP20",{ 0.2,0 },1 },
{ "LevelP20",{ 0.2,0.03 },1 }
};
};
class VALP_1_20
{
type = "text";
source = "static";
text = "20";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP20",{ -0.23,0.035 },1};
right[] = {"LevelP20",{ -0.13,0.035 },1};
down[] = {"LevelP20",{ -0.23,0.085 },1};
};
class VALP_2_20: VALP_1_20
{
align = "right";
pos[] = {"LevelP20",{ 0.22,0.035 },1};
right[] = {"LevelP20",{ 0.32,0.035 },1};
down[] = {"LevelP20", { 0.22,0.085 },1};
};
class LevelM25: Level0
{
type = "line";
points[] =
{
{ "LevelM25",{ -0.2,-0.03 },1 },
{ "LevelM25",{ -0.2,0 },1 },
{ "LevelM25",{ -0.15,0 },1 },
{ },
{ "LevelM25",{ -0.1,0 },1 },
{ "LevelM25",{ -0.05,0 },1 },
{ },
{ "LevelM25",{ 0.05,0 },1 },
{ "LevelM25",{ 0.1,0 },1 },
{ },
{ "LevelM25",{ 0.15,0 },1 },
{ "LevelM25",{ 0.2,0 },1 },
{ "LevelM25",{ 0.2,-0.03 },1 }
};
};
class VALM_1_25
{
type = "text";
source = "static";
text = -25;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM25",{ -0.23,-0.085 },1};
right[] = {"LevelM25",{ -0.13,-0.085 },1};
down[] = {"LevelM25",{ -0.23,-0.035 },1};
};
class VALM_2_25: VALM_1_25
{
align = "right";
pos[] = {"LevelM25",{ 0.22,-0.085 },1};
right[] = {"LevelM25",{ 0.32,-0.085 },1};
down[] = {"LevelM25",{ 0.22,-0.035 },1};
};
class LevelP25: Level0
{
type = "line";
points[] =
{
{ "LevelP25",{ -0.2,0.03 },1 },
{ "LevelP25",{ -0.2,0 },1 },
{ "LevelP25",{ -0.05,0 },1 },
{ },
{ "LevelP25",{ 0.05,0 },1 },
{ "LevelP25",{ 0.2,0 },1 },
{ "LevelP25",{ 0.2,0.03 },1 }
};
};
class VALP_1_25
{
type = "text";
source = "static";
text = "25";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP25",{ -0.23,0.035 },1};
right[] = {"LevelP25",{ -0.13,0.035 },1};
down[] = {"LevelP25",{ -0.23,0.085 },1};
};
class VALP_2_25: VALP_1_25
{
align = "right";
pos[] = {"LevelP25",{ 0.22,0.035 },1};
right[] = {"LevelP25",{ 0.32,0.035 },1};
down[] = {"LevelP25",{ 0.22,0.085 },1};
};
class LevelM30: Level0
{
type = "line";
points[] =
{
{ "LevelM30",{ -0.2,-0.03 },1 },
{ "LevelM30",{ -0.2,0 },1 },
{ "LevelM30",{ -0.15,0 },1 },
{ },
{ "LevelM30",{ -0.1,0 },1 },
{ "LevelM30",{ -0.05,0 },1 },
{ },
{ "LevelM30",{ 0.05,0 },1 },
{ "LevelM30",{ 0.1,0 },1 },
{ },
{ "LevelM30",{ 0.15,0 },1 },
{ "LevelM30",{ 0.2,0 },1 },
{ "LevelM30",{ 0.2,-0.03 },1 }
};
};
class VALM_1_30
{
type = "text";
source = "static";
text = -30;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM30",{ -0.23,-0.085 },1};
right[] = {"LevelM30",{ -0.13,-0.085 },1};
down[] = {"LevelM30",{ -0.23,-0.035 },1};
};
class VALM_2_30: VALM_1_30
{
align = "right";
pos[] = {"LevelM30",{ 0.22,-0.085 },1};
right[] = {"LevelM30",{ 0.32,-0.085 },1};
down[] = {"LevelM30",{ 0.22,-0.035 },1};
};
class LevelP30: Level0
{
type = "line";
points[] =
{
{ "LevelP30",{ -0.2,0.03 },1 },
{ "LevelP30",{ -0.2,0 },1 },
{ "LevelP30",{ -0.05,0 },1 },
{ },
{ "LevelP30",{ 0.05,0 },1 },
{ "LevelP30",{ 0.2,0 },1 },
{ "LevelP30",{ 0.2,0.03 },1 }
};
};
class VALP_1_30
{
type = "text";
source = "static";
text = "30";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP30",{ -0.23,0.035 },1};
right[] = {"LevelP30",{ -0.13,0.035 },1};
down[] = {"LevelP30",{ -0.23,0.085 },1};
};
class VALP_2_30: VALP_1_30
{
align = "right";
pos[] = {"LevelP30",{ 0.22,0.035 },1};
right[] = {"LevelP30",{ 0.32,0.035 },1};
down[] = {"LevelP30",{ 0.22,0.085 },1};
};
class LevelM35: Level0
{
type = "line";
points[] =
{
{ "LevelM35",{ -0.2,-0.03 },1 },
{ "LevelM35",{ -0.2,0 },1 },
{ "LevelM35",{ -0.15,0 },1 },
{ },
{ "LevelM35",{ -0.1,0 },1 },
{ "LevelM35",{ -0.05,0 },1 },
{ },
{ "LevelM35",{ 0.05,0 },1 },
{ "LevelM35",{ 0.1,0 },1 },
{ },
{ "LevelM35",{ 0.15,0 },1 },
{ "LevelM35",{ 0.2,0 },1 },
{ "LevelM35",{ 0.2,-0.03 },1 }
};
};
class VALM_1_35
{
type = "text";
source = "static";
text = -35;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM35",{ -0.23,-0.085 },1};
right[] = {"LevelM35",{ -0.13,-0.085 },1};
down[] = {"LevelM35",{ -0.23,-0.035 },1};
};
class VALM_2_35: VALM_1_35
{
align = "right";
pos[] = {"LevelM35",{ 0.22,-0.085 },1};
right[] = {"LevelM35",{ 0.32,-0.085 },1};
down[] = {"LevelM35",{ 0.22,-0.035 },1};
};
class LevelP35: Level0
{
type = "line";
points[] =
{
{ "LevelP35",{ -0.2,0.03 },1 },
{ "LevelP35",{ -0.2,0 },1 },
{ "LevelP35",{ -0.05,0 },1 },
{ },
{ "LevelP35",{ 0.05,0 },1 },
{ "LevelP35",{ 0.2,0 },1 },
{ "LevelP35",{ 0.2,0.03 },1 }
};
};
class VALP_1_35
{
type = "text";
source = "static";
text = "35";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP35",{ -0.23,0.035 },1};
right[] = {"LevelP35",{ -0.13,0.035 },1};
down[] = {"LevelP35",{ -0.23,0.085 },1};
};
class VALP_2_35: VALP_1_35
{
align = "right";
pos[] = {"LevelP35",{ 0.22,0.035 },1};
right[] = {"LevelP35",{ 0.32,0.035 },1};
down[] = {"LevelP35",{ 0.22,0.085 },1};
};
class LevelM40: Level0
{
type = "line";
points[] =
{
{ "LevelM40",{ -0.2,-0.03 },1 },
{ "LevelM40",{ -0.2,0 },1 },
{ "LevelM40",{ -0.15,0 },1 },
{ },
{ "LevelM40",{ -0.1,0 },1 },
{ "LevelM40",{ -0.05,0 },1 },
{ },
{ "LevelM40",{ 0.05,0 },1 },
{ "LevelM40",{ 0.1,0 },1 },
{ },
{ "LevelM40",{ 0.15,0 },1 },
{ "LevelM40",{ 0.2,0 },1 },
{ "LevelM40",{ 0.2,-0.03 },1 }
};
};
class VALM_1_40
{
type = "text";
source = "static";
text = -40;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM40",{ -0.23,-0.085 },1};
right[] = {"LevelM40",{ -0.13,-0.085 },1};
down[] = {"LevelM40",{ -0.23,-0.035 },1};
};
class VALM_2_40: VALM_1_40
{
align = "right";
pos[] = {"LevelM40",{ 0.22,-0.085 },1};
right[] = {"LevelM40",{ 0.32,-0.085 },1};
down[] = {"LevelM40",{ 0.22,-0.035 },1};
};
class LevelP40: Level0
{
type = "line";
points[] =
{
{ "LevelP40",{ -0.2,0.03 },1 },
{ "LevelP40",{ -0.2,0 },1 },
{ "LevelP40",{ -0.05,0 },1 },
{ },
{ "LevelP40",{ 0.05,0 },1 },
{ "LevelP40",{ 0.2,0 },1 },
{ "LevelP40",{ 0.2,0.03 },1 }
};
};
class VALP_1_40
{
type = "text";
source = "static";
text = "40";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP40",{ -0.23,0.035 },1};
right[] = {"LevelP40",{ -0.13,0.035 },1};
down[] = {"LevelP40",{ -0.23,0.085 },1};
};
class VALP_2_40: VALP_1_40
{
align = "right";
pos[] = {"LevelP40",{ 0.22,0.035 },1};
right[] = {"LevelP40",{ 0.32,0.035 },1};
down[] = {"LevelP40",{ 0.22,0.085 },1};
};
class LevelM45: Level0
{
type = "line";
points[] =
{
{ "LevelM45",{ -0.2,-0.03 },1 },
{ "LevelM45",{ -0.2,0 },1 },
{ "LevelM45",{ -0.15,0 },1 },
{ },
{ "LevelM45",{ -0.1,0 },1 },
{ "LevelM45",{ -0.05,0 },1 },
{ },
{ "LevelM45",{ 0.05,0 },1 },
{ "LevelM45",{ 0.1,0 },1 },
{ },
{ "LevelM45",{ 0.15,0 },1 },
{ "LevelM45",{ 0.2,0 },1 },
{ "LevelM45",{ 0.2,-0.03 },1 }
};
};
class VALM_1_45
{
type = "text";
source = "static";
text = -45;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM45",{ -0.23,-0.085 },1};
right[] = {"LevelM45",{ -0.13,-0.085 },1};
down[] = {"LevelM45",{ -0.23,-0.035 },1};
};
class VALM_2_45: VALM_1_45
{
align = "right";
pos[] = {"LevelM45",{ 0.22,-0.085 },1};
right[] = {"LevelM45",{ 0.32,-0.085 },1};
down[] = {"LevelM45",{ 0.22,-0.035 },1};
};
class LevelP45: Level0
{
type = "line";
points[] =
{
{ "LevelP45",{ -0.2,0.03 },1 },
{ "LevelP45",{ -0.2,0 },1 },
{ "LevelP45",{ -0.05,0 },1 },
{ },
{ "LevelP45",{ 0.05,0 },1 },
{ "LevelP45",{ 0.2,0 },1 },
{ "LevelP45",{ 0.2,0.03 },1 }
};
};
class VALP_1_45
{
type = "text";
source = "static";
text = "45";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP45", { -0.23,0.035 },1};
right[] = {"LevelP45", { -0.13,0.035 },1};
down[] = {"LevelP45", { -0.23,0.085 },1};
};
class VALP_2_45: VALP_1_45
{
align = "right";
pos[] = {"LevelP45",{ 0.22,0.035 },1};
right[] = {"LevelP45",{ 0.32,0.035 },1};
down[] = {"LevelP45",{ 0.22,0.085 },1};
};
class LevelM50: Level0
{
type = "line";
points[] =
{
{ "LevelM50",{ -0.2,-0.03 },1 },
{ "LevelM50",{ -0.2,0 },1 },
{ "LevelM50",{ -0.15,0 },1 },
{ },
{ "LevelM50",{ -0.1,0 },1 },
{ "LevelM50",{ -0.05,0 },1 },
{ },
{ "LevelM50",{ 0.05,0 },1 },
{ "LevelM50",{ 0.1,0 },1 },
{ },
{ "LevelM50",{ 0.15,0 },1 },
{ "LevelM50",{ 0.2,0 },1 },
{ "LevelM50",{ 0.2,-0.03 },1 }
};
};
class VALM_1_50
{
type = "text";
source = "static";
text = -50;
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelM50",{ -0.23,-0.085 },1};
right[] = {"LevelM50",{ -0.13,-0.085 },1};
down[] = {"LevelM50",{ -0.23,-0.035 },1};
};
class VALM_2_50: VALM_1_50
{
align = "right";
pos[] = {"LevelM50",{ 0.22,-0.085 },1};
right[] = {"LevelM50",{ 0.32,-0.085 },1};
down[] = {"LevelM50",{ 0.22,-0.035 },1};
};
class LevelP50: Level0
{
type = "line";
points[] =
{
{ "LevelP50",{ -0.2,0.03 },1 },
{ "LevelP50",{ -0.2,0 },1 },
{ "LevelP50",{ -0.05,0 },1 },
{ },
{ "LevelP50",{ 0.05,0 },1 },
{ "LevelP50",{ 0.2,0 },1 },
{ "LevelP50",{ 0.2,0.03 },1 }
};
};
class VALP_1_50
{
type = "text";
source = "static";
text = "50";
align = "left";
scale = 1;
sourceScale = 1;
pos[] = {"LevelP50",{ -0.23,0.035 },1};
right[] = {"LevelP50",{ -0.13,0.035 },1};
down[] = {"LevelP50",{ -0.23,0.085 },1};
};
class VALP_2_50: VALP_1_50
{
align = "right";
pos[] = {"LevelP50",{ 0.22,0.035 },1};
right[] = {"LevelP50",{ 0.32,0.035 },1};
down[] = {"LevelP50",{ 0.22,0.085 },1};
};
};
};
class PlaneHeading
{
clipTL[] = {0.0,1.0};
clipBR[] = {1.0,0.0};
type = "line";
points[] =
{
{ "Velocity",{ 0,-0.0189189 },1 },
{ "Velocity",{ 0.014,-0.0132432 },1 },
{ "Velocity",{ 0.02,0 },1 },
{ "Velocity",{ 0.014,0.0132432 },1 },
{ "Velocity",{ 0,0.0189189 },1 },
{ "Velocity",{ -0.014,0.0132432 },1 },
{ "Velocity",{ -0.02,0 },1 },
{ "Velocity",{ -0.014,-0.0132432 },1 },
{ "Velocity",{ 0,-0.0189189 },1 },
{ },
{ "Velocity",{ 0.04,0 },1 },
{ "Velocity",{ 0.02,0 },1 },
{ },
{ "Velocity",{ -0.04,0 },1 },
{ "Velocity",{ -0.02,0 },1 },
{ },
{ "Velocity",{ 0,-0.0378378 },1 },
{ "Velocity",{ 0,-0.0189189 },1 },
{ }
};
};
class Static
{
clipTL[] = {0.0,0.1};
clipBR[] = {1.0,0.0};
type = "line";
points[] =
{
{{ 0.21,0.52 },1 },
{{ 0.19,0.5 },1 },
{{ 0.21,0.48 },1 },
{},
{{ 0.18,0.2 },1 },
{{ 0.18,0.85 },1 },
{},
{{ 0.79,0.52 },1 },
{{ 0.81,0.5 },1 },
{{ 0.79,0.48 },1 },
{},
{{ 0.82,0.2 },1 },
{{ 0.82,0.85 },1 },
{},
{{ 0.52,"0.08+0.01" },1 },
{{ 0.5,"0.06+0.01" },1 },
{{ 0.48,"0.08+0.01" },1 },
{ },
{{ 0.2,"0.055+0.01" },1 },
{{ 0.8,"0.055+0.01" },1 },
{}
};
};
class AltScale
{
type = "scale";
scale = 1;
source = "altitudeASL";
sourceScale = 1;
align = "right";
pos[] = {0.86,0.82};
right[] = {0.94,0.82};
down[] = {0.86,0.87};
lineXleft = 0.825;
lineYright = 0.835;
lineXleftMajor = 0.825;
lineYrightMajor = 0.845;
bottom = 0.2;
top = 0.85;
center = 0.5;
step = 20;
StepSize = "(0.85- 0.2)/20";
horizontal = 0;
min = "none";
max = "none";
numberEach = 5;
majorLineEach = 5;
};
class SpeedScale
{
type = "scale";
scale = 1;
source = "speed";
sourceScale = 3.6;
align = "right";
pos[] = {0.06,"0.82-0.85+0.2"};
right[] = {0.14,"0.82-0.85+0.2"};
down[] = {0.06,"0.87-0.85+0.2"};
lineXleft = "0.18 + 0.82 - 0.825";
lineYright = "0.18 + 0.82 - 0.835";
lineXleftMajor = "0.18 + 0.82 - 0.825";
lineYrightMajor = "0.18 + 0.82 - 0.845";
bottom = 0.85;
center = 0.5;
top = 0.2;
step = 20;
StepSize = "(0.85- 0.2)/20";
horizontal = 0;
min = "none";
max = "none";
numberEach = 5;
majorLineEach = 5;
};
class Gear
{
condition = "ils";
class text
{
type = "text";
source = "static";
text = "GEAR";
align = "right";
scale = 0.5;
sourceScale = 1;
pos[] = {{ 0.84,0.88 },1};
right[] = {{ 0.9,0.88 },1};
down[] = {{ 0.84,0.92 },1};
};
};
class Flaps
{
condition = "flaps";
class text
{
type = "text";
source = "static";
text = "FLAPS";
align = "right";
scale = 0.5;
sourceScale = 1;
pos[] = {{ 0.84,0.93 },1};
right[] = {{ 0.9,0.93 },1};
down[] = {{ 0.84,0.97 },1};
};
};
class weapons
{
type = "text";
source = "weapon";
align = "right";
scale = 0.5;
sourceScale = 1;
pos[] = {{ 0.1,0.88 },1};
right[] = {{ 0.16,0.88 },1};
down[] = {{ 0.1,0.92 },1};
};
class ammo
{
type = "text";
source = "ammo";
align = "right";
scale = 0.5;
sourceScale = 1;
pos[] = {{ 0.1,0.93 },1};
right[] = {{ 0.16,0.93 },1};
down[] = {{ 0.1,0.97 },1};
};
class VspeedNumber
{
type = "text";
align = "right";
scale = 1;
source = "vspeed";
sourceScale = 1;
pos[] = {{ 0.86,"0.52-0.4" },1};
right[] = {{ 0.94,"0.52-0.4" },1};
down[] = {{ 0.86,"0.57-0.4" },1};
};
class HeadingScale
{
type = "scale";
scale = 1;
source = "Heading";
sourceScale = 1;
align = "center";
pos[] = {"0.21-0.01",0.0};
right[] = {"0.29-0.01",0.0};
down[] = {"0.21-0.01",0.05};
lineXleft = 0.06;
lineYright = 0.05;
lineXleftMajor = 0.06;
lineYrightMajor = 0.04;
bottom = 0.8;
center = 0.5;
top = 0.2;
step = "18/9";
StepSize = "(0.80- 0.2)/20";
horizontal = 1;
min = "none";
max = "none";
numberEach = 5;
majorLineEach = 5;
};
class ILS
{
condition = "ils";
class Glideslope
{
clipTL[] = {0.0,0.0};
clipBR[] = {1.0,1.0};
class ILS
{
type = "line";
points[] =
{
{ "ILS_W",{ -0.24,0 },1 },
{ "ILS_W",{ 0.24,0 },1 },
{ },
{ "ILS_W",{ 0,0.0227027 },1 },
{ "ILS_W",{ 0,-0.0227027 },1 },
{ },
{ "ILS_W",{ 0.12,0.0227027 },1 },
{ "ILS_W",{ 0.12,-0.0227027 },1 },
{ },
{ "ILS_W",{ 0.24,0.0227027 },1 },
{ "ILS_W",{ 0.24,-0.0227027 },1 },
{ },
{ "ILS_W",{ -0.12,0.0227027 },1 },
{ "ILS_W",{ -0.12,-0.0227027 },1 },
{ },
{ "ILS_W",{ -0.24,0.0227027 },1 },
{ "ILS_W",{ -0.24,-0.0227027 },1 },
{ },
{ "ILS_H",{ 0,-0.227027 },1 },
{ "ILS_H",{ 0,0.227027 },1 },
{ },
{ "ILS_H",{ 0.024,0 },1 },
{ "ILS_H",{ -0.024,0 },1 },
{ },
{ "ILS_H",{ 0.024,0.113514 },1 },
{ "ILS_H",{ -0.024,0.113514 },1 },
{ },
{ "ILS_H",{ 0.024,0.227027 },1 },
{ "ILS_H",{ -0.024,0.227027 },1 },
{ },
{ "ILS_H",{ 0.024,-0.113514 },1 },
{ "ILS_H",{ -0.024,-0.113514 },1 },
{ },
{ "ILS_H",{ 0.024,-0.227027 },1 },
{ "ILS_H",{ -0.024,-0.227027 },1 }
};
};
};
};
};
};
class parallaxhud
{
enableParallax = 1;
class Pos10Vector
{
type = "vector";
pos0[] = {0.485,0.4};
pos10[] = {1.225,1.1};
};
topLeft = "HUD LH";
topRight = "HUD PH";
bottomLeft = "HUD LD";
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0;
color[] = {0,1,0,0.1};
class bones
{
class WeaponAim: Pos10Vector
{
source = "weapon";
};
class Target: Pos10Vector
{
source = "target";
};
class Velocity: Pos10Vector
{
type = "vector";
source = "velocity";
pos0[] = {0.5,0.4};
pos10[] = {1.24,1.1};
};
};
class draw
{
class RadarTargets
{
type = "radar";
pos0[] = {0.485,0.4};
pos10[] = {1.225,1.1};
points[] =
{
{{ -0.05,-0.0472973 },1 },
{{ 0.05,-0.0472973 },1 },
{{ 0.05,0.0472973 },1 },
{{ -0.05,0.0472973 },1 },
{{ -0.05,-0.0472973 },1 }
};
};
class MGun
{
condition = "mgun";
class Circle
{
type = "line";
points[] =
{
{ "WeaponAim",{ 0.01,0 },1 },
{ "WeaponAim",{ -0.01,0 },1 },
{ },
{ "WeaponAim",{ 0,0.00945946 },1 },
{ "WeaponAim",{ 0,-0.00945946 },1 },
{ },
{ "WeaponAim",{ 0,-0.0662162 },1 },
{ "WeaponAim",{ 0.049,-0.0463514 },1 },
{ "WeaponAim",{ 0.07,0 },1 },
{ "WeaponAim",{ 0.049,0.0463514 },1 },
{ "WeaponAim",{ 0,0.0662162 },1 },
{ "WeaponAim",{ -0.049,0.0463514 },1 },
{ "WeaponAim",{ -0.07,0 },1 },
{ "WeaponAim",{ -0.049,-0.0463514 },1 },
{ "WeaponAim",{ 0,-0.0662162 },1 },
{ },
{ "WeaponAim",{ 0,-0.132432 },1 },
{ "WeaponAim",{ 0.07,-0.115216 },1 },
{ "WeaponAim",{ 0.1218,-0.0662162 },1 },
{ "WeaponAim",{ 0.14,0 },1 },
{ "WeaponAim",{ 0.1218,0.0662162 },1 },
{ "WeaponAim",{ 0.07,0.115216 },1 },
{ "WeaponAim",{ 0,0.132432 },1 },
{ "WeaponAim",{ -0.07,0.115216 },1 },
{ "WeaponAim",{ -0.1218,0.0662162 },1 },
{ "WeaponAim",{ -0.14,0 },1 },
{ "WeaponAim",{ -0.1218,-0.0662162 },1 },
{ "WeaponAim",{ -0.07,-0.115216 },1 },
{ "WeaponAim",{ 0,-0.132432 },1 },
{ },
{ "WeaponAim",{ 0,-0.132432 },1 },
{ "WeaponAim",{ 0,-0.151351 },1 },
{ },
{ "WeaponAim",{ -0.07,-0.11469 },1 },
{ "WeaponAim",{ -0.08,-0.131074 },1 },
{ },
{ "WeaponAim",{ -0.121244,-0.0662162 },1 },
{ "WeaponAim",{ -0.138564,-0.0756757 },1 },
{ },
{ "WeaponAim",{ -0.14,5.78881e-009 },1 },
{ "WeaponAim",{ -0.16,6.61578e-009 },1 },
{ },
{ "WeaponAim",{ -0.121244,0.0662162 },1 },
{ "WeaponAim",{ -0.138564,0.0756757 },1 },
{ },
{ "WeaponAim",{ -0.07,0.11469 },1 },
{ "WeaponAim",{ -0.08,0.131074 },1 },
{ },
{ "WeaponAim",{ 1.22392e-008,0.132432 },1 },
{ "WeaponAim",{ 1.39876e-008,0.151351 },1 },
{ },
{ "WeaponAim",{ 0.07,0.11469 },1 },
{ "WeaponAim",{ 0.08,0.131074 },1 },
{ },
{ "WeaponAim",{ 0.121244,0.0662162 },1 },
{ "WeaponAim",{ 0.138564,0.0756757 },1 },
{ },
{ "WeaponAim",{ 0.14,-1.57924e-009 },1 },
{ "WeaponAim",{ 0.16,-1.80485e-009 },1 },
{ },
{ "WeaponAim",{ 0.121244,-0.0662162 },1 },
{ "WeaponAim",{ 0.138564,-0.0756757 },1 },
{ },
{ "WeaponAim",{ 0.07,-0.11469 },1 },
{ "WeaponAim",{ 0.08,-0.131074 },1 },
{ }
};
};
};
class Bomb
{
condition = "bomb";
class Circle
{
type = "line";
points[] =
{
{ "WeaponAim",{ 0,-0.0945946 },1 },
{ "WeaponAim",{ 0.05,-0.0822973 },1 },
{ "WeaponAim",{ 0.087,-0.0472973 },1 },
{ "WeaponAim",{ 0.1,0 },1 },
{ "WeaponAim",{ 0.087,0.0472973 },1 },
{ "WeaponAim",{ 0.05,0.0822973 },1 },
{ "WeaponAim",{ 0,0.0945946 },1 },
{ "WeaponAim",{ -0.05,0.0822973 },1 },
{ "WeaponAim",{ -0.087,0.0472973 },1 },
{ "WeaponAim",{ -0.1,0 },1 },
{ "WeaponAim",{ -0.087,-0.0472973 },1 },
{ "WeaponAim",{ -0.05,-0.0822973 },1 },
{ "WeaponAim",{ 0,-0.0945946 },1 },
{ },
{ "Velocity",0.001,"WeaponAim",{ 0.0,0.0 },1 },
{ "Velocity",{ 0.0,0.0 },1 },
{ },
{ "Target",{ 0,-0.0662162 },1 },
{ "Target",{ 0.07,0 },1 },
{ "Target",{ 0,0.0662162 },1 },
{ "Target",{ -0.07,0 },1 },
{ "Target",{ 0,-0.0662162 },1 }
};
};
};
class AAMissile
{
condition = "AAmissile";
class Circle
{
type = "line";
points[] =
{
{ "WeaponAim",{ 0,-0.236486 },1 },
{ "WeaponAim",{ 0.125,-0.205743 },1 },
{ "WeaponAim",{ 0.2175,-0.118243 },1 },
{ "WeaponAim",{ 0.25,0 },1 },
{ "WeaponAim",{ 0.2175,0.118243 },1 },
{ "WeaponAim",{ 0.125,0.205743 },1 },
{ "WeaponAim",{ 0,0.236486 },1 },
{ "WeaponAim",{ -0.125,0.205743 },1 },
{ "WeaponAim",{ -0.2175,0.118243 },1 },
{ "WeaponAim",{ -0.25,0 },1 },
{ "WeaponAim",{ -0.2175,-0.118243 },1 },
{ "WeaponAim",{ -0.125,-0.205743 },1 },
{ "WeaponAim",{ 0,-0.236486 },1 },
{ },
{ "Target",{ 0,-0.0662162 },1 },
{ "Target",{ 0.07,0 },1 },
{ "Target",{ 0,0.0662162 },1 },
{ "Target",{ -0.07,0 },1 },
{ "Target",{ 0,-0.0662162 },1 }
};
};
};
class ATMissile
{
condition = "ATmissile";
class Circle
{
type = "line";
points[] =
{
{ "WeaponAim",{ 0,-0.17027 },1 },
{ "WeaponAim",{ 0.09,-0.148135 },1 },
{ "WeaponAim",{ 0.1566,-0.0851351 },1 },
{ "WeaponAim",{ 0.18,0 },1 },
{ "WeaponAim",{ 0.1566,0.0851351 },1 },
{ "WeaponAim",{ 0.09,0.148135 },1 },
{ "WeaponAim",{ 0,0.17027 },1 },
{ "WeaponAim",{ -0.09,0.148135 },1 },
{ "WeaponAim",{ -0.1566,0.0851351 },1 },
{ "WeaponAim",{ -0.18,0 },1 },
{ "WeaponAim",{ -0.1566,-0.0851351 },1 },
{ "WeaponAim",{ -0.09,-0.148135 },1 },
{ "WeaponAim",{ 0,-0.17027 },1 },
{ },
{ "Target",{ 0,-0.0662162 },1 },
{ "Target",{ 0.07,0 },1 },
{ "Target",{ 0,0.0662162 },1 },
{ "Target",{ -0.07,0 },1 },
{ "Target",{ 0,-0.0662162 },1 }
};
};
};
class Rockets
{
condition = "Rocket";
class Circle
{
type = "line";
points[] =
{
{ "WeaponAim",{ 0.01,0 },1 },
{ "WeaponAim",{ -0.01,0 },1 },
{ },
{ "WeaponAim",{ 0,0.00945946 },1 },
{ "WeaponAim",{ 0,-0.00945946 },1 },
{ },
{ "WeaponAim",{ 0,-0.113514 },1 },
{ "WeaponAim",{ 0.06,-0.0987568 },1 },
{ "WeaponAim",{ 0.1044,-0.0567568 },1 },
{ "WeaponAim",{ 0.12,0 },1 },
{ "WeaponAim",{ 0.1044,0.0567568 },1 },
{ "WeaponAim",{ 0.06,0.0987568 },1 },
{ "WeaponAim",{ 0,0.113514 },1 },
{ "WeaponAim",{ -0.06,0.0987568 },1 },
{ "WeaponAim",{ -0.1044,0.0567568 },1 },
{ "WeaponAim",{ -0.12,0 },1 },
{ "WeaponAim",{ -0.1044,-0.0567568 },1 },
{ "WeaponAim",{ -0.06,-0.0987568 },1 },
{ "WeaponAim",{ 0,-0.113514 },1 },
{ }
};
};
};
};
};
};
Pastebin link – RKSL Parallax Adjusted HUD example
Copy and paste that into your own aircraft’s config and you should now have a properly parallax enabled plane.
Ok so its not really a WIP update but maybe it will be helpful. :?
- Read more...
- 0 comments
- 658 views