TwinFan / XPMP2

Multiplayer library for X-Plane 11/12 with instancing, TCAS override, and sound
https://twinfan.github.io/XPMP2/
Other
24 stars 16 forks source link

XP12 replaces some multiplayer datarefs #44

Closed TwinFan closed 2 years ago

TwinFan commented 2 years ago

Describe the bug

XP12 replaces some multiplayer dataRefs, resulting in Log.txt output like

Line 210: [LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_pitch' has been replaced. Please use the new name.
Line 212: [LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_roll' has been replaced. Please use the new name.
Line 214: [LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_yaw' has been replaced. Please use the new name.

That dataRef names always had that spelling mistake...and now they get replaced by array(!) dataRefs, which is unfortunately a totally different naming concept:

sim/multiplayer/controls/yoke_pitch_ratio   float[20]   y   [-1..1] The deflection of the axis controlling pitch.   
sim/multiplayer/controls/yoke_roll_ratio    float[20]   y   [-1..1] The deflection of the axis controlling roll.    
sim/multiplayer/controls/yoke_heading_ratio float[20]   y   [-1..1] The deflection of the axis controlling yaw. 

So instead of requesting plane%i_yolk_pitch for 20 different names we would now in XP12 need to deal with a (proper) array dataRef. So this is way more of a coding change than just replace one string by another. To make matters worse, most multiplayer dataRefs stay the old system (plane%i_...) while only those 3 change to a float array type.

For a plugin that runs under both XP11 and XP12, we would now need version-specific processing during runtime. I am actually considering to drop support for multiplayer/.../yoke... in XP12 altogether: TCAS override is always available in XP12, so there would be no need to provide yoke details via the old multiplayer dataRefs. To be verified.

To Reproduce

Run under XP12.

Expected behavior

No deprecation messages in log or to user.

Technical Info

Log.txt

Here output from a DEBUG version, in which even the error callback is informed...though this appears to be in no way fatal:

LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane1_yolk_pitch' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_pitch' has been replaced. Please use the new name.
LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane1_yolk_roll' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_roll' has been replaced. Please use the new name.
LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane1_yolk_yaw' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane1_yolk_yaw' has been replaced. Please use the new name.
LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane2_yolk_pitch' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane2_yolk_pitch' has been replaced. Please use the new name.
LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane2_yolk_roll' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane2_yolk_roll' has been replaced. Please use the new name.
LiveTraffic FATAL ERROR CALLBACK: Dataref 'sim/multiplayer/position/plane2_yolk_yaw' has been replaced. Please use the new name.
[LiveTraffic/win_x64/LiveTraffic.xpl]: Dataref 'sim/multiplayer/position/plane2_yolk_yaw' has been replaced. Please use the new name.