Update to 1.1.9
This commit is contained in:
@@ -356,32 +356,32 @@ extern "C" MSFS_CALLBACK void module_init(void) {
|
||||
log(stdout, "Data definitions created.\n");
|
||||
|
||||
// SimConnect Requests
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_EMPTY_WEIGHT, DATA_DEFINITION_EMPTY_WEIGHT, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_EMPTY_WEIGHT, DATA_DEFINITION_EMPTY_WEIGHT, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request empty weight, terminating.\n");
|
||||
return;
|
||||
}
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_PAYLOAD_PAX, DATA_DEFINITION_PAYLOAD_PAX, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_PAYLOAD_PAX, DATA_DEFINITION_PAYLOAD_PAX, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request payload pax, terminating.\n");
|
||||
return;
|
||||
}
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_PAYLOAD_F, DATA_DEFINITION_PAYLOAD_F, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_PAYLOAD_F, DATA_DEFINITION_PAYLOAD_F, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request payload f, terminating.\n");
|
||||
return;
|
||||
}
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_FUEL, DATA_DEFINITION_FUEL, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_FUEL, DATA_DEFINITION_FUEL, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request fuel, terminating.\n");
|
||||
return;
|
||||
}
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_GSX, DATA_DEFINITION_GSX, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_GSX, DATA_DEFINITION_GSX, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request GSX, terminating.\n");
|
||||
return;
|
||||
}
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_USER_DATA, DATA_DEFINITION_USER_DATA, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND);
|
||||
hr = SimConnect_RequestDataOnSimObject(simConnect, DATA_REQUEST_USER_DATA, DATA_DEFINITION_USER_DATA, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
if (hr != S_OK) {
|
||||
log(stderr, "Could not request user data, terminating.\n");
|
||||
return;
|
||||
@@ -924,6 +924,12 @@ void CALLBACK MyDispatchProc(SIMCONNECT_RECV* pData, DWORD cbData, void* pContex
|
||||
liveFPayloadData->lowerForward + liveFPayloadData->lowerRear + liveFPayloadData->leftAux +
|
||||
liveFPayloadData->rightAux;
|
||||
|
||||
if (UserData->isCargo && AircraftLoaded && abs(liveFPayloadData->total - TO_POUNDS(UserData->isImperial, targetFPayloadData->total)) > 100) {
|
||||
log(stdout, "F AC loaded, Payload mismatch, resetting target\n");
|
||||
|
||||
load(targetFPayloadData, simConnect, UserData->isImperial);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case DATA_REQUEST_PAYLOAD_PAX: {
|
||||
@@ -939,6 +945,15 @@ void CALLBACK MyDispatchProc(SIMCONNECT_RECV* pData, DWORD cbData, void* pContex
|
||||
livePaxPayloadData->forwardCargo + livePaxPayloadData->rearCargo + livePaxPayloadData->leftAux +
|
||||
livePaxPayloadData->rightAux;
|
||||
|
||||
double curr = livePaxPayloadData->total;
|
||||
double target = TO_POUNDS(UserData->isImperial, targetPaxPayloadData->total);
|
||||
double diff = livePaxPayloadData->total - TO_POUNDS(UserData->isImperial, targetPaxPayloadData->total);
|
||||
if (!UserData->isCargo && AircraftLoaded && abs(livePaxPayloadData->total - TO_POUNDS(UserData->isImperial, targetPaxPayloadData->total)) > 100) {
|
||||
log(stdout, "PAX AC loaded, Payload mismatch, resetting target\n");
|
||||
|
||||
load(targetPaxPayloadData, simConnect, UserData->isImperial);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case DATA_REQUEST_FUEL: {
|
||||
@@ -974,6 +989,8 @@ void CALLBACK MyDispatchProc(SIMCONNECT_RECV* pData, DWORD cbData, void* pContex
|
||||
case GSX_SERVICE_ACTIVE: {
|
||||
GSXData->loadingState = LOADING_STATE_BOARDING;
|
||||
|
||||
AircraftLoaded = false;
|
||||
|
||||
double cargoBoarded = GSXData->cargoBoarded;
|
||||
if (UserData->isCargo) {
|
||||
fPayloadData_t localPayload = {};
|
||||
@@ -1014,6 +1031,8 @@ void CALLBACK MyDispatchProc(SIMCONNECT_RECV* pData, DWORD cbData, void* pContex
|
||||
case GSX_SERVICE_FINISHED: {
|
||||
GSXData->loadingState = LOADING_STATE_BOARDED;
|
||||
|
||||
AircraftLoaded = true;
|
||||
|
||||
if (UserData->isCargo) {
|
||||
fPayloadData_t localPayload = {};
|
||||
memcpy(&localPayload, targetFPayloadData, sizeof(localPayload));
|
||||
@@ -1041,6 +1060,8 @@ void CALLBACK MyDispatchProc(SIMCONNECT_RECV* pData, DWORD cbData, void* pContex
|
||||
|
||||
GSXData->loadingState = LOADING_STATE_DEBOARDING;
|
||||
|
||||
AircraftLoaded = false;
|
||||
|
||||
double cargoDeboarded = GSXData->cargoDeboarded;
|
||||
if (UserData->isCargo) {
|
||||
fPayloadData_t localPayload = {};
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
/******************************** Constants ********************************/
|
||||
// Module identification
|
||||
#define MODULE_NAME "[KHOFMANN TFDi MD-11 Load Manager] "
|
||||
#define VERSION_STRING "1.7"
|
||||
#define VERSION_STRING "1.13"
|
||||
// COMM BUS
|
||||
#define COMM_BUS_LIVE_DATA_EVENT "khofmann_tfdi_md-11_load_manager_live_data"
|
||||
#define COMM_BUS_UPDATE_TARGET_EVENT "khofmann_tfdi_md-11_load_manager_update_target"
|
||||
|
||||
Reference in New Issue
Block a user