misha.physics
Well-known member
- Joined
- Dec 22, 2021
- Messages
- 1,481
- Reaction score
- 2,225
- Points
- 128
- Location
- Lviv
- Preferred Pronouns
- he/him
I have an aircraft mesh with two square meshgroups located in XY plane. I would like to use them as displays for two default MFDs in virtual 3D cockpit, that will be synchronized with two ones in generic glass cockpit. There are two vessel examples based on Lua with MFDs in VC, namely Delta-glider and Atlantis. There are far fewer Lua scripts for Atlantis, so I thought it will be easier to take it as an example. It looks like the main "Atlantis.lua" script contains all code for MFDs implementations, maybe the following piece, but I am not sure:
So, maybe anyone could help me somehow to implement two default MFDs for my mesh (two square meshgroups for MFD displays)? I hope this will be a good example for future vessels based on Lua.
C++:
----------------------------------------------------------------
-- Respond to MFD mode change
----------------------------------------------------------------
function clbk_MFDmode(mfd, mode)
oapi.VC_trigger_redrawarea(-1, AID_CDR1_BUTTONS + mfd - MFDID.LEFT)
end
----------------------------------------------------------------
-- Load generic glass cockpit mode
----------------------------------------------------------------
function clbk_loadgenericcockpit()
vi:set_cameraoffset(_V(-0.67, 2.55, 14.4))
vi:set_cameradefaultdirection(_V(0, 0, 1))
return true
end
----------------------------------------------------------------
-- register VC buttons for the 2 commander MFDs
-- (accessible from commander position only)
----------------------------------------------------------------
local function registerVC_CdrMFD()
-- activate MFD function buttons
oapi.VC_set_areaclickmode_quadrilateral(AID_CDR1_BUTTONS, _V(-0.9239,2.0490,15.0595), _V(-0.7448,2.0490,15.0595), _V(-0.9239,2.0280,15.0595), _V(-0.7448,2.0280,15.0595))
oapi.VC_set_areaclickmode_quadrilateral(AID_CDR2_BUTTONS, _V(-0.6546,2.0490,15.0595), _V(-0.4736,2.0490,15.0595), _V(-0.6546,2.0280,15.0595), _V(-0.4736,2.0280,15.0595))
-- D. Beachy: register+activate MFD power buttons
local powerButtonRadius = 0.0075 -- radius of power button on each MFD
oapi.VC_register_area(AID_CDR1_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_CDR2_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_spherical(AID_CDR1_PWR, _V(-0.950, 2.060, 15.060), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_CDR2_PWR, _V(-0.680, 2.060, 15.060), powerButtonRadius)
-- register+activate MFD brightness buttons
oapi.VC_register_area(AID_CDR1_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_CDR2_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_quadrilateral(AID_CDR1_BRT, _V(-0.729,2.0675,15.060), _V(-0.714,2.0675,15.060), _V(-0.729,2.0525,15.060), _V(-0.714,2.0525,15.060))
oapi.VC_set_areaclickmode_quadrilateral(AID_CDR2_BRT, _V(-0.459,2.0675,15.060), _V(-0.444,2.0675,15.060), _V(-0.459,2.0525,15.060), _V(-0.444,2.0525,15.060))
end
----------------------------------------------------------------
-- register VC buttons for the 2 pilot MFDs
-- (accessible from pilot position only)
----------------------------------------------------------------
local function registerVC_PltMFD()
-- activate MFD function buttons
oapi.VC_set_areaclickmode_quadrilateral(AID_PLT1_BUTTONS, _V(0.4759,2.0490,15.0595), _V(0.6568,2.0490,15.0595), _V(0.4759,2.0280,15.0595), _V(0.6568,2.0280,15.0595))
oapi.VC_set_areaclickmode_quadrilateral(AID_PLT2_BUTTONS, _V(0.7461,2.0490,15.0595), _V(0.9271,2.0490,15.0595), _V(0.7461,2.0280,15.0595), _V(0.9271,2.0280,15.0595))
-- D. Beachy: register+activate MFD power buttons
local powerButtonRadius = 0.0075 -- radius of power button on each MFD
oapi.VC_register_area(AID_PLT1_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_PLT2_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_spherical(AID_PLT1_PWR, _V( 0.450, 2.060, 15.060), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_PLT2_PWR, _V( 0.720, 2.060, 15.060), powerButtonRadius)
-- register+activate MFD brightness buttons
oapi.VC_register_area(AID_PLT1_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_PLT2_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_quadrilateral(AID_PLT1_BRT, _V(0.671,2.0675,15.060), _V(0.686,2.0675,15.060), _V(0.671,2.0525,15.060), _V(0.686,2.0525,15.060))
oapi.VC_set_areaclickmode_quadrilateral(AID_PLT2_BRT, _V(0.941,2.0675,15.060), _V(0.956,2.0675,15.060), _V(0.941,2.0525,15.060), _V(0.956,2.0525,15.060))
end
----------------------------------------------------------------
-- register VC buttons for the 5 MFDs on the central panel
-- (accessible from commander and pilot positions)
----------------------------------------------------------------
local function registerVC_CntMFD()
-- activate MFD function buttons
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD1_BUTTONS, _V(-0.3579,2.1451,15.0863), _V(-0.1770,2.1451,15.0863), _V(-0.3579,2.1241,15.0863), _V(-0.1770,2.1241,15.0863))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD2_BUTTONS, _V(-0.3579,1.9143,15.0217), _V(-0.1770,1.9143,15.0217), _V(-0.3579,1.8933,15.0217), _V(-0.1770,1.8933,15.0217))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD3_BUTTONS, _V(-0.0888,2.0288,15.0538), _V(0.0922,2.0288,15.0538), _V(-0.0888,2.0078,15.0538), _V(0.0922,2.0078,15.0538))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD4_BUTTONS, _V(0.1795,2.1451,15.0863), _V(0.3604,2.1451,15.0863), _V(0.1795,2.1241,15.0863), _V(0.3604,2.1241,15.0863))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD5_BUTTONS, _V(0.1795,1.9143,15.0217), _V(0.3604,1.9143,15.0217), _V(0.1795,1.8933,15.0217), _V(0.3604,1.8933,15.0217))
-- D. Beachy: register+activate MFD power buttons
local powerButtonRadius = 0.0075 -- radius of power button on each MFD
oapi.VC_register_area(AID_MFD1_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD2_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD3_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD4_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD5_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_spherical(AID_MFD1_PWR, _V(-0.383, 2.153, 15.090), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_MFD2_PWR, _V(-0.383, 1.922, 15.023), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_MFD3_PWR, _V(-0.114, 2.037, 15.058), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_MFD4_PWR, _V( 0.155, 2.153, 15.090), powerButtonRadius)
oapi.VC_set_areaclickmode_spherical(AID_MFD5_PWR, _V( 0.155, 1.922, 15.023), powerButtonRadius)
-- register+activate MFD brightness buttons
oapi.VC_register_area(AID_MFD1_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD2_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD3_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD4_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_register_area(AID_MFD5_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD1_BRT, _V(-0.162,2.1605,15.090), _V(-0.147,2.1605,15.090), _V(-0.162,2.1455,15.090), _V(-0.147,2.1455,15.090))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD2_BRT, _V(-0.162,1.9295,15.023), _V(-0.147,1.9295,15.023), _V(-0.162,1.9145,15.023), _V(-0.147,1.9145,15.023))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD3_BRT, _V(0.107,2.0445,15.058), _V(0.122,2.0445,15.058), _V(0.107,2.0295,15.058), _V(0.122,2.0295,15.058))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD4_BRT, _V(0.376,2.1605,15.090), _V(0.391,2.1605,15.090), _V(0.376,2.1455,15.090), _V(0.391,2.1455,15.090))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFD5_BRT, _V(0.376,1.9295,15.023), _V(0.391,1.9295,15.023), _V(0.376,1.9145,15.023), _V(0.391,1.9145,15.023))
end
----------------------------------------------------------------
-- register VC buttons for the aft MFD at the starbord panel
-- (accessible from payload control position only)
----------------------------------------------------------------
local function registerVC_AftMFD()
-- register+activate aft MFD function buttons
local tex1 = oapi.get_texturehandle(hOrbiterVCMesh, 7)
oapi.VC_register_area(AID_MFDA_BUTTONS, _R(0,127,255,140), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_set_areaclickmode_quadrilateral(AID_MFDA_BUTTONS, _V(1.3862,2.2570,13.8686), _V(1.3862,2.2570,13.6894), _V(1.3678,2.2452,13.8686), _V(1.3678,2.2452,13.6894))
-- register+activate MFD power button
local powerButtonRadius = 0.0075 -- radius of power button on each MFD
oapi.VC_register_area(AID_MFDA_PWR, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_spherical(AID_MFDA_PWR, _V(1.3929,2.2632,13.8947), powerButtonRadius)
-- register+activate MFD brightness buttons
oapi.VC_register_area(AID_MFDA_BRT, PANEL_REDRAW.NEVER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY))
oapi.VC_set_areaclickmode_quadrilateral(AID_MFDA_BRT, _V(1.4024,2.2675,13.6736), _V(1.4024,2.2675,13.6586), _V(1.3893,2.2590,13.6736), _V(1.3893,2.2590,13.6586))
end
----------------------------------------------------------------
-- Load virtual cockpit mode
----------------------------------------------------------------
function clbk_loadVC(id)
local huds = { -- common HUD specs
nmesh = mesh_vc,
ngroup = GRP_VC.VirtualHUD,
hudcnt = _V(0,0,0), -- hudcnt (to be filled)
size = 0.176558
}
local mfds = { -- common MFD specs
pos = _R(0,0,0,0),
nmesh = mesh_vc,
ngroup = 0, -- ngroup (to be filled)
flag = MFD_SHOWMODELABELS,
nbt1 = 5,
nbt2 = 0,
bt_yofs = 512/6,
bt_ydist = 512/7
}
local mfdgrp = {
GRP_VC.CDR1,GRP_VC.CDR2,GRP_VC.PLT1,GRP_VC.PLT2,
GRP_VC.MFD1, GRP_VC.MFD2, GRP_VC.MFD3, GRP_VC.MFD4, GRP_VC.MFD5,
GRP_VC.MFD_aft
}
local ok = false
-- register MFD function buttons
-- this needs to be done globally, so that the labels are correctly updated from all VC positions
local tex1 = oapi.get_texturehandle(hOrbiterVCMesh, 7)
-- commander MFD function buttons
oapi.VC_register_area(AID_CDR1_BUTTONS, _R(0,1,255,14), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_CDR2_BUTTONS, _R(0,15,255,28), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
-- pilot MFD function buttons
oapi.VC_register_area(AID_PLT1_BUTTONS, _R(0,29,255,42), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_PLT2_BUTTONS, _R(0,43,255,56), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
-- central console MFD function buttons
oapi.VC_register_area(AID_MFD1_BUTTONS, _R(0, 57,255, 70), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_MFD2_BUTTONS, _R(0, 71,255, 84), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_MFD3_BUTTONS, _R(0, 85,255, 98), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_MFD4_BUTTONS, _R(0, 99,255,112), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
oapi.VC_register_area(AID_MFD5_BUTTONS, _R(0,113,255,126), PANEL_REDRAW.USER, bit.bor(PANEL_MOUSE.LBDOWN, PANEL_MOUSE.LBUP, PANEL_MOUSE.LBPRESSED, PANEL_MOUSE.ONREPLAY), PANEL_MAP.BACKGROUND, tex1)
if id == 0 then -- commander position
vi:set_cameraoffset(_V(-0.67,2.55,14.4))
vi:set_cameradefaultdirection(_V(0,0,1))
vi:set_cameramovement(_V(0,0,0.3), 0, 0, _V(-0.3,0,0), 75*RAD, -5*RAD, _V(0.3,0,0), -20*RAD, -27*RAD)
huds.hudcnt = _V(-0.671257, 2.523535, 14.969)
oapi.VC_set_neighbours(-1, 1, -1, 2)
registerVC_CdrMFD() -- activate commander MFD controls
registerVC_CntMFD() -- activate central panel MFD controls
ok = true
elseif id == 1 then -- pilot position
vi:set_cameraoffset(_V(0.67,2.55,14.4))
vi:set_cameradefaultdirection(_V(0,0,1))
vi:set_cameramovement(_V(0,0,0.3), 0, 0, _V(-0.3,0,0), 20*RAD, -27*RAD, _V(0.3,0,0), -75*RAD, -5*RAD)
huds.hudcnt = _V(0.671257, 2.523535, 14.969)
oapi.VC_set_neighbours(0, -1, -1, 2)
registerVC_PltMFD() -- activate pilot MFD controls
registerVC_CntMFD() -- activate central panel MFD controls
ok = true
elseif id == 2 then -- payload view position
vi:set_cameraoffset(_V(0.4,3.15,13.0))
vi:set_cameradefaultdirection(_V(0,0,-1))
vi:set_cameramovement(_V(0,-0.1,-0.1), 0, 80.0*RAD, _V(0.3,-0.3,0.15), 60.0*RAD, -50.0*RAD, _V(-0.8,0,0), 0, 0)
oapi.VC_set_neighbours(1, 0, -1, 0)
registerVC_AftMFD() -- activate aft MFD controls
plop.register_VC() -- register panel R13L interface
ok = true
end
if ok then
-- register the HUDs (synced)
oapi.VC_registerHUD(huds)
-- register all MFD displays
for i=0, 9 do
mfds.ngroup = mfdgrp[i + 1]
oapi.register_mfd(MFDID.LEFT + i, mfds)
end
-- update panel R13L
plop.update_VC()
end
return ok
end
----------------------------------------------------------------
-- Respond to virtual cockpit mouse event
----------------------------------------------------------------
VCME_sel_counting = false
VCME_sel_t0 = 0.0
function clbk_VCmouseevent(id, event, p)
-- handle MFD selection buttons
local case_selection = {
[AID_CDR1_BUTTONS] = true,
[AID_CDR2_BUTTONS] = true,
[AID_PLT1_BUTTONS] = true,
[AID_PLT2_BUTTONS] = true,
[AID_MFD1_BUTTONS] = true,
[AID_MFD2_BUTTONS] = true,
[AID_MFD3_BUTTONS] = true,
[AID_MFD4_BUTTONS] = true,
[AID_MFD5_BUTTONS] = true,
[AID_MFDA_BUTTONS] = true
}
if case_selection[id] then
local mfd = id - AID_CDR1_BUTTONS + MFDID.LEFT
local bt = p.x * 5.99
if bt < 5 then
oapi.process_mfdbutton(mfd, bt, event)
else
if bit.allset(event, PANEL_MOUSE.LBDOWN) then
VCME_sel_t0 = oapi.get_systime()
VCME_sel_counting = true
elseif bit.allset(event, PANEL_MOUSE.LBUP) and VCME_sel_counting then
oapi.send_mfdkey(mfd, OAPI_KEY.F2)
VCME_sel_counting = false
elseif bit.allset(event, PANEL_MOUSE.LBPRESSED) and VCME_sel_counting and (oapi.get_systime() - VCME_sel_t0 >= 1.0) then
oapi.send_mfdkey(mfd, OAPI_KEY.F1)
VCME_sel_counting = false
end
end
return true
end
-- D. Beachy: handle power buttons
local case_pwr = {
[AID_CDR1_PWR] = true,
[AID_CDR2_PWR] = true,
[AID_PLT1_PWR] = true,
[AID_PLT2_PWR] = true,
[AID_MFD1_PWR] = true,
[AID_MFD2_PWR] = true,
[AID_MFD3_PWR] = true,
[AID_MFD4_PWR] = true,
[AID_MFD5_PWR] = true,
[AID_MFDA_PWR] = true
}
if case_pwr[id] then
local mfd = id - AID_CDR1_PWR + MFDID.LEFT
oapi.send_mfdkey(mfd, OAPI_KEY.ESCAPE)
return true
end
-- handle MFD brightness buttons
local case_brt = {
[AID_CDR1_BRT] = true,
[AID_CDR2_BRT] = true,
[AID_PLT1_BRT] = true,
[AID_PLT2_BRT] = true,
[AID_MFD1_BRT] = true,
[AID_MFD2_BRT] = true,
[AID_MFD3_BRT] = true,
[AID_MFD4_BRT] = true,
[AID_MFD5_BRT] = true,
[AID_MFDA_BRT] = true
}
if case_brt[id] then
local mfd = id - AID_CDR1_BRT
if bit.allset(event, PANEL_MOUSE.LBDOWN) then
brt_up = (p.x >= 0.5)
brt_t0 = oapi.get_systime()
brt_brt0 = mfdbright[mfd]
elseif bit.allset(event, PANEL_MOUSE.LBPRESSED) then
local dt = oapi.get_systime() - brt_t0
local brt
local dbrt = dt * 0.2
if brt_up then
brt = math.min(1.0, brt_brt0 + dbrt)
else
brt = math.max(0.25, brt_brt0 - dbrt)
end
mfdbright[mfd] = brt
if vis then
local hMesh = vi:get_devmesh(vis, mesh_vc)
local mat = {
diffuse = _COLOUR4(0,0,0,0),
ambient = _COLOUR4(0,0,0,0),
specular = _COLOUR4(0,0,0,0),
emissive = _COLOUR4(brt,brt,brt,1.0),
power = 0
}
oapi.set_material(hMesh, 10 + mfd, mat)
end
end
return false
end
-- handle panel R13L events (payload bay operations)
if id == AID_R13L then
return plop.VC_mouse_event(id, event, p)
end
return false
end
----------------------------------------------------------------
-- Respond to virtual cockpit area redraw request
----------------------------------------------------------------
function clbk_VCredrawevent(id, event, surf)
local case_selection = {
[AID_CDR1_BUTTONS] = true,
[AID_CDR2_BUTTONS] = true,
[AID_PLT1_BUTTONS] = true,
[AID_PLT2_BUTTONS] = true,
[AID_MFD1_BUTTONS] = true,
[AID_MFD2_BUTTONS] = true,
[AID_MFD3_BUTTONS] = true,
[AID_MFD4_BUTTONS] = true,
[AID_MFD5_BUTTONS] = true,
[AID_MFDA_BUTTONS] = true
}
if case_selection[id] then
local mfd = id - AID_CDR1_BUTTONS + MFDID.LEFT
redraw_panel_MFD_button(surf, mfd)
return true
else
if id >= AID_R13L_MIN and id <= AID_R13L_MAX then
return plop.VC_redraw_event(id, event, surf)
end
end
return false
end
