FS2004 FS9 GPS: @g:messagesOff

#1
Hey all,

For the sake of understanding how the Message button works, I found some mysteries and wish to ask you all what or how this works.

The Message button in the 'fs9gps' system (same in FSX) has a timer built into it where if you hold the button down a moment, it turns off the Message window (bothersome blinker).

So I tried to desect it to see how it works. The Lady who created this gauge uses TONS of Macros. (Her name is Engauged). So I went through trying to decode the
layers of Macros, its all in Macros as though its written in a new language called Macro...

And I found that I couldnt find the roots of the components for the timer.

So I have a couple of questions;

1. Does anything starting with @ require a decoding of what it does? Usually a Macro is setup at the top of the page, but nothing defines this;
Code:
@g:messagesOff
Is this a read like an L:Var? No definition at the top required? The new Macro language?

2. I found this; No brackets. Can you do this without brackets?
Code:
(M:Event) 'LeftSingle' scmp 0 == if{ (@g:msgButtonDown) 0 ==
                                                        if{ 1 (>@g:msgButtonDown)
                                                            0 (>@g:msgButtonCount) } }

(M:Event) 'Leave' scmp 0 == if{ (@g:msgButtonDown) 1 ==
                                                       if{ 0 (>@g:msgButtonDown)
                                                              (@g:msgButtonCount) @MSGButtonDelay &lt;    <<<--  check that out
                                                                      if{ @MSGButton } } }
Could that be a typo? Or can you write @g: things without brackets and they work?

This is how its written in the fs9gps code mouse section. I broke it up to how I write things to try to understand it better.

// this is in the Macro section....

Code:
        <!-- check MSG button -->
        (@g:msgButtonDown) 0 != if{
            (@g:msgButtonCount) ++ d (>@g:msgButtonCount) @MSGButtonDelay == if{ @MSGToggle }
        }
// this is the mouse section bits...
Code:
            (M:Event) 'LeftSingle' scmp 0 == if{ (@g:msgButtonDown) 0 == if{ 1 (>@g:msgButtonDown) 0 (>@g:msgButtonCount) } }
                (M:Event) 'Leave' scmp 0 == if{ (@g:msgButtonDown) 1 == if{ 0 (>@g:msgButtonDown) (@g:msgButtonCount) @MSGButtonDelay &lt; if{ @MSGButton } } }
 

tgibson

Resource contributor
#2
Hi,

In your "check this out" line notice that the one without brackets (actually parentheses) does not have a g: after the @. This means it's a "normal" macro, which do not need parentheses.
 
#3
Ah so... Thanks Tom. I didnt even realize the g: was there. Shows how much I know about Macros. What does the g: signify? Is that talking to a C: gauge? Is it talking with the sim platform?

Bill
 
#5
The mystery gets richer! Thanks Tom!

Looked up the C: in the FSX SDK, its for a custom calling. I noticed that the compass rose and the GPS map are custom draws. So this must all be done in the platform and C: links to these in-sim items. Thats all I can guess as the SDK is vague in only saying that C: is 'Custom' and gives a sample of how its written in XML.
 
Top