bool chippersat::clbkLoadVC (int id)
{
SetCameraOffset (_V(0,-1.75,-1.5)); SetCameraDefaultDirection (_V(0,-1,0));
SetCameraRotationRange (RAD*180, RAD*180, RAD*180, RAD*180);
SetCameraShiftRange (_V(0,0,0.1), _V(-0.2,0,0), _V(0.2,0,0));
return 1;
static VCMFDSPEC mfds_left = {1, 23};
static VCMFDSPEC mfds_right = {1, 24};
static VCHUDSPEC hud_pilot = {1, 52,{-0.600,2.441,16.5381},0.38};
ReleaseSurfaces();
switch (id) {
case 0:
// MFDs on the front panel
oapiVCRegisterMFD (MFD_LEFT, &mfds_left);
oapiVCRegisterMFD (MFD_RIGHT, &mfds_right);
oapiVCRegisterHUD (&hud_pilot);
// MFD1 butto
tex1 = oapiGetTextureHandle (vcmesh_tpl,13);
oapiVCRegisterArea (AID_MFD1_LBUTTONS, _R( 8 ,9, 32,218), PANEL_REDRAW_MOUSE|PANEL_REDRAW_USER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY, PANEL_MAP_BACKGROUND,tex1);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD1_LBUTTONS,
_V(-0.873975f, 2.07783f, 16.3458f),
_V(-0.898166f, 2.07693f, 16.3477f),
_V(-0.873975f, 1.95705f, 16.2895f),
_V(-0.898166f, 1.95616f, 16.2914f));
oapiVCRegisterArea (AID_MFD1_RBUTTONS, _R( 49,9, 73,218), PANEL_REDRAW_MOUSE|PANEL_REDRAW_USER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY, PANEL_MAP_BACKGROUND,tex1);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD1_RBUTTONS,
_V(-0.691069f, 2.08459f, 16.3313f),
_V(-0.715260f, 2.08370f, 16.3332f),
_V(-0.691069f, 1.96381f, 16.2750f),
_V(-0.715260f, 1.96292f, 16.2769f));
oapiVCRegisterArea (AID_MFD1_BBUTTONS,PANEL_REDRAW_NEVER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD1_BBUTTONS,
_V(-0.833854424f,1.94565778f,16.28032296f),
_V(-0.755381769f,1.948559073f,16.27410013f),
_V(-0.833854424f,1.935458958f,16.27556799f),
_V(-0.755381769f,1.938360251f,16.26934516f));
//MFD2 buttons
oapiVCRegisterArea (AID_MFD2_LBUTTONS, _R(90 ,9,114,218), PANEL_REDRAW_MOUSE|PANEL_REDRAW_USER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY, PANEL_MAP_BACKGROUND,tex1);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD2_LBUTTONS,
_V(-0.424380f, 2.09445f, 16.3101f),
_V(-0.448571f, 2.09356f, 16.3120f),
_V(-0.424380f, 1.97367f, 16.2538f),
_V(-0.448571f, 1.97278f, 16.2557f));
oapiVCRegisterArea (AID_MFD2_RBUTTONS, _R( 131,9, 155,218), PANEL_REDRAW_MOUSE|PANEL_REDRAW_USER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY, PANEL_MAP_BACKGROUND,tex1);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD2_RBUTTONS,
_V(-0.241474f, 2.10121f, 16.2956f),
_V(-0.265665f, 2.10032f, 16.2975f),
_V(-0.241474f, 1.98044f, 16.2393f),
_V(-0.265665f, 1.97954f, 16.2412f));
oapiVCRegisterArea (AID_MFD2_BBUTTONS,PANEL_REDRAW_NEVER,PANEL_MOUSE_LBDOWN|PANEL_MOUSE_ONREPLAY);
oapiVCSetAreaClickmode_Quadrilateral(AID_MFD2_BBUTTONS,
_V(-0.384259211f,2.015958238f,16.26969654f),
_V(-0.305786556f,2.018859532f,16.26347371f),
_V(-0.384259211f,1.952081406f,16.23991538f),
_V(-0.305786556f,1.954982699f,16.23369255f));
};
InitPanel(-1);// VC is -1
return true;
}
bool chippersat::clbkVCMouseEvent (int id, int event, VECTOR3 &p)
{
static int ctrl = 3;
float th_level;
int mode,pmode;
int mfd;
int mx,my;
switch (id) {
case AID_MFD1_LBUTTONS:
case AID_MFD1_RBUTTONS:
case AID_MFD2_LBUTTONS:
case AID_MFD2_RBUTTONS:
my=(int)(p.y*209);
if (my%39 < 20) {
mfd = (id <= AID_MFD1_RBUTTONS ? MFD_LEFT : MFD_RIGHT);
int bt = my/39 + (id == AID_MFD1_LBUTTONS || id == AID_MFD2_LBUTTONS ? 0 : 6);
oapiProcessMFDButton (mfd, bt, event);
return true;
}
break;
case AID_MFD1_BBUTTONS:
case AID_MFD2_BBUTTONS:
mfd = (id == AID_MFD1_BBUTTONS ? MFD_LEFT : MFD_RIGHT);
mx=(int)(p.x * 133.0f);
if (mx < 32) oapiToggleMFD_on (mfd);
else if (mx >= 50 && mx < 82) oapiSendMFDKey (mfd, OAPI_KEY_F1);
else if (mx >= 100) oapiSendMFDKey (mfd, OAPI_KEY_GRAVE);
return true;
}
return false;
}
// --------------------------------------------------------------
// Draw the virtual cockpit instruments
// --------------------------------------------------------------
bool chippersat::clbkVCRedrawEvent (int id, int event, SURFHANDLE surf)
{
switch (id) {
case AID_MFD1_LBUTTONS:
RedrawPanel_MFDButton (surf, MFD_LEFT, 0);
return true;
case AID_MFD1_RBUTTONS:
RedrawPanel_MFDButton (surf, MFD_LEFT, 1);
return true;
case AID_MFD2_LBUTTONS:
RedrawPanel_MFDButton (surf, MFD_RIGHT, 0);
return true;
case AID_MFD2_RBUTTONS:
RedrawPanel_MFDButton (surf, MFD_RIGHT, 1);
return true;
}
return false;
};