FSXA The purpose of DEFAULT_VIEW setting?

#1
What exactly is the purpose of the DEFAULT_VIEW switch in [PANELS] section of the fsx.CFG?

I know the definition and its UI linkage within FSX - it is supposed to kick in VC (DEFAULT_VIEW = 0) or 2D panel (DEFAULT_VIEW = 1)...

But this does not do anything for me. I saved my FLT with VC view active, and changing this switch manually or through UI does not change anything for me.

So, what is under what circumstances is this switch behaving properly?
 

Heretic

Resource contributor
#2
Could be that you also need to set an appropriate hotkey.

In the camera.cfg that's located in the same folder as the fsx.cfg, set the "HotkeySelect=" line for the VC camera to "1" and delete the value in the same line in the section for the 2D view. This will at least map the VC view to the F9 key.
 
#3
Could be that you also need to set an appropriate hotkey.

In the camera.cfg that's located in the same folder as the fsx.cfg, set the "HotkeySelect=" line for the VC camera to "1" and delete the value in the same line in the section for the 2D view. This will at least map the VC view to the F9 key.
Yes, I have that- I think that is the default behavior. (F9 VC, F10 2D, F11 outside)...

As per my other post, the goal is to have a FLT situation with the outside view, and S-cycling into a VC (not 2D cockpit) - and that is not possible without first "waking up" cockpit group by hitting F9.

The problem is - the 2D view is the default, go-to view for FSX. Even if the camera.cfg file is missing or corrupt, it will go to this default, 2D cockpit view. The only way to avoid it is to "hide" it from S-cycling by setting "CycleHidden=Yes" to it (I tried deleting it from camera.cfg but FSX freaks out). However, since VC is the memeber of the cockpit group, this also hides the VC from the S-cycle. I am then forced to use F9 key to "wake up" VC ...
 
#4
The 2D view is not the default view for FSX. All of my flights load into the VC by default in FSX and Prepar3D. Only FS9 loads the 2D display by default. You can set FSX up to load into the 2D panel first, but it's default behavior is to go into the VC view. Do you have a custom default flight? If it was saved with the 2D visible, that will be what the sim shows first.
 
#5
I specified that 2D view is the "default go-to view" for FSX, which means the lowest-level, common denominator view.

If you remove all the global, system wide cameras (in Camera.cfg), AND all the cameras specific to aircraft (in aircraft.cfg), FSX will by default go into an "internal", hard-coded in-cockpit, 2D view.

The fact that your flights load with VC cameras is because you have [camera.n] entry/entries in either of those files...
 

n4gix

Resource contributor
#6
I specified that 2D view is the "default go-to view" for FSX, which means the lowest-level, common denominator view.
That is simply not correct behavior, Misho... Whatever view you have active when you open the "default flight" will be the view that is always loaded. Check your "default flight" and set the view to the VC, then re-save it as the "default flight." Now every aircraft should open in the VC view.
 
#7
Thanks Bill - What you specify is true, but again, I am talking about a very basic, lowest-common-denominator case.
To quickly replicate what I'm talking about: (make backup copies of all the files that are about to be changed):

AppData\Roaming\Microsoft\FSX\Cameras.cfg: completely blank out the file and save.
AppData\Roaming\Microsoft\FSX\FSX.cfg: change entry "SITUATION=<whatever>" to "SITUATION=" . This will be later filled automatically with "FLIGHTS\OTHER\FLTSIM". Also, set "SHOW_OPENING_SCREEN=0"
Microsoft Flight Simulator X\Flights\other\FLTSIM.FLT: remove any "CurrentCamera=" and "[Camera.n.n]" from the file, and save
Microsoft Flight Simulator X\SimObjects\Airplanes\Aircreation_582SL\Aircraft.cfg: remove any "[CameraDefinition.n]" entries

So, what has now been taken away is, for a default FLTSIM.FLT, to read any camera entries. When you start FSX, it will load the DEFAULT.FLT flight, and the only view available (from the UI or cycling S and A) will be a 2D panel. And, this 2D view isn't specified anywhere in cfg or flt files - it is an internal, hard-coded fall-back view. (the structure of this view IS specified in panel.cfg, but that's where a window is defined, not a view)

After the above steps, you have no choice in choosing any views - this is all that's available and there is no way of choosing anything else...
1539902597072.png


That's the view I was talking about.

Granted - it is unlikely a casual user will ever be faced with this situation, but I was just trying to make a point how a 2D view cannot be completely supressed from FSX.

My original question still stands: I cannot create a setup which will allow me to:

  • Load a FLT situation that starts in a non-cockpit view (Outside, Custom or Aircraft)
  • S-cycle into a VC cockpit WITHOUT ever seeing a 2D cockpit

The closest I can get to is, set "CycleHidden=Yes" on my default 2D view in Cameras.CFG, and when the sim starts (in an outside view) hit "F9" (that's my HotKeySelect setting for VC) to get to VC. This "wakes up" the cockpit viewing group which has been hidden with "CycleHidden". After that, I can S-cycle through and get to VC, as I wanted.

I know, I'm splitting hairs :rolleyes:, but my users might not be aware that they need to "wake up" the cockpit view using F9, and I'd like to avoid that.
 
Last edited:

ddawson

Resource contributor
#9
Once upon a time, I wrote a gauge that would allow the user to skip either the 2D or the VC view.
You watch for either the Next View or the Previous View commands and check what the current view is when they occur.
The same gauge could also for the view to either VC or 2D on panel load.
 
#10
Once upon a time, I wrote a gauge that would allow the user to skip either the 2D or the VC view.
You watch for either the Next View or the Previous View commands and check what the current view is when they occur.
The same gauge could also for the view to either VC or 2D on panel load.
Did you use SimConnect for that, and used SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D/SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL?

I have that going as well, for a different purpose, but that was the next avenue I was going to try...

Still - no clear answer to the post's original question... :rolleyes: the purpose of DEFAULT_VIEW setting...
 

ddawson

Resource contributor
#11
Didn't use SimConnect, although I'm sure you could.

Code:
void FSAPI Event_Handler ( ID32 event_in, SINT32 evdata, PVOID userdata )
{
    switch (event_in)
        {
        case KEY_VIEW_MODE:
            event_logged = 0;
        break;

        case KEY_VIEW_MODE_REV:
            event_logged = 1;
        break;
        }
}


void FSAPI no_2d_callback(PGAUGEHDR pgauge, int service_id, UINT32 extra_data)
{
switch(service_id)
{
case PANEL_SERVICE_PRE_UPDATE:
    execute_calculator_code ( "(P:ACTIVE VIEW MODE,enum)", &event_view[1], NULL, NULL);
    if ( event_view[1] == 1 && _2d_delay == 0 )
        {
        skip_required = 1;
        _2d_delay = 1;
        }
    else _2d_delay = 0;
break;

case PANEL_SERVICE_POST_UPDATE:
    if ( skip_required == 1 )
        {
        if ( event_logged == 0 ) send_key_event(KEY_VIEW_MODE, 0);
        else send_key_event(KEY_VIEW_MODE_REV, 0);
        skip_required = 0;
        }
break;

}
}
 
#12
Yep - thanks Doug! I implemented SimConnect version:

Code:
                case EVENT_VIEWCHANGED:
                    TB_PRINTF("VIEW_CHANGED Event:\n");
                    switch (evt->dwData)
                    {
                        case SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D:
                            if (CFGPrefs->bSupress2DCockpit)
                            {
                                // Supress 2D view:
                                hr = SimConnect_TransmitClientEvent(hSimConnect, 0, EVENT_NEXT_SUB_VIEW, 0, SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
                                TB_PRINTF("COCKPIT 2D [SUPRESSED]\n");
                            }
                            else
                            {
                                SystemVars->nViewMode = FSXVIEW_COCKPIT_2D;
                                TB_PRINTF("COCKPIT 2D\n");
                            }
                            break;
                        case SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL:
                            {
                                SystemVars->nViewMode = FSXVIEW_COCKPIT_3D;
                               ...
This assumes there is a VC view (and there is, by default) but I'll still insert a check, bcz this might give me infinite loop :rolleyes:
 
Top