- Messages
- 162
- Country
This piece of code:
and the msg queue part:
Code works correctly but as were on FSX/P3D returned data struct are void.
SDK reports on SimConnect::SimConnect status of Simulation variables:
this makes a collimated gunsight almost impossible.
any ideas ?
tia
/Mario
Code:
bool Gunsight::InitEyePoint(void) {
HRESULT hr = S_FALSE;
if(this->hSimConnect == (HANDLE) NULL)
this->hSimConnect = GetConnection();
if (this->hSimConnect) {
hr = SimConnect_AddToDataDefinition(this->hSimConnect, DEFINITION_EYEPOINT_ANGLE,
"STRUCT EYEPOINT DYNAMIC ANGLE", "radians", SIMCONNECT_DATATYPE_XYZ, 0, SIMCONNECT_UNUSED);
if (hr == S_OK)
hr = SimConnect_AddToDataDefinition(this->hSimConnect, DEFINITION_EYEPOINT_OFFSET,
"STRUCT EYEPOINT DYNAMIC OFFSET", "feet", SIMCONNECT_DATATYPE_XYZ, 0, SIMCONNECT_UNUSED);
if(hr == S_OK)
hr = SimConnect_AddToDataDefinition(this->hSimConnect, DEFINITION_EYEPOINT_POSITION,
"EYEPOINT POSITION", "feet", SIMCONNECT_DATATYPE_XYZ, 0, SIMCONNECT_UNUSED);
if (hr == S_OK)
hr = SimConnect_RequestDataOnSimObject(hSimConnect,
EYEPOINT_ANGLE_REQUEST, DEFINITION_EYEPOINT_ANGLE, SIMCONNECT_OBJECT_ID_USER, GUNSIGHT_EYEPOINT_REFRESH);
if (hr == S_OK)
hr = SimConnect_RequestDataOnSimObject(hSimConnect, EYEPOINT_OFFSET_REQUEST, DEFINITION_EYEPOINT_OFFSET,
SIMCONNECT_OBJECT_ID_USER, GUNSIGHT_EYEPOINT_REFRESH);
if (hr == S_OK)
hr = SimConnect_RequestDataOnSimObject(hSimConnect, EYEPOINT_POSITION_REQUEST, DEFINITION_EYEPOINT_POSITION,
SIMCONNECT_OBJECT_ID_USER, GUNSIGHT_EYEPOINT_REFRESH);
}
return hr == S_OK;
}
Code:
/*
* POV answers with void struct
* collimating gunsight almost impossible
*/
case EYEPOINT_ANGLE_REQUEST:
{
SIMCONNECT_DATA_XYZ* angle = (SIMCONNECT_DATA_XYZ*)&pObjData->dwData;
memcpy( &myGunsight->pov_Angle, angle, sizeof(SIMCONNECT_DATA_XYZ));
myGunsight->CollimateAngle();
}
break;
case EYEPOINT_POSITION_REQUEST:
{
SIMCONNECT_DATA_XYZ* position = (SIMCONNECT_DATA_XYZ*)&pObjData->dwData;
memcpy(&myGunsight->pov_Position, position, sizeof(SIMCONNECT_DATA_XYZ));
myGunsight->CollimateOffset()
}
break;
case EYEPOINT_OFFSET_REQUEST:
{
SIMCONNECT_DATA_XYZ* offset = (SIMCONNECT_DATA_XYZ*)&pObjData->dwData;
memcpy(&myGunsight->pov_Angle, offset, sizeof(SIMCONNECT_DATA_XYZ));
myGunsight->CollimateOffset();
}
break;
SDK reports on SimConnect::SimConnect status of Simulation variables:
Code:
STRUCT EYEPOINT DYNAMIC ANGLE SIMCONNECT_DATA_XYZ N Responded
STRUCT EYEPOINT DYNAMIC OFFSET SIMCONNECT_DATA_XYZ N Responded
EYEPOINT POSITION SIMCONNECT_DATA_XYZ N Responded
any ideas ?
tia
/Mario