diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 96a7879e..cf3746a7 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -6660,10 +6660,13 @@ BOOLEAN PlaceObject( SOLDIERTYPE * pSoldier, INT8 bPos, OBJECTTYPE * pObj ) { if ( !CompatibleFaceItem( pObj->usItem, pSoldier->inv[ HEAD2POS ].usItem ) ) { - CHAR16 zTemp[ 150 ]; - - swprintf( zTemp, Message[ STR_CANT_USE_TWO_ITEMS ], ItemNames[ pObj->usItem ], ItemNames[ pSoldier->inv[ HEAD2POS ].usItem ] ); - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, zTemp ); + if (gpItemPointer) + { + CHAR16 zTemp[150]; + swprintf(zTemp, Message[STR_CANT_USE_TWO_ITEMS], ItemNames[pObj->usItem], ItemNames[pSoldier->inv[HEAD2POS].usItem]); + ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, zTemp); + } + return( FALSE ); } } @@ -6671,10 +6674,13 @@ BOOLEAN PlaceObject( SOLDIERTYPE * pSoldier, INT8 bPos, OBJECTTYPE * pObj ) { if ( !CompatibleFaceItem( pObj->usItem, pSoldier->inv[ HEAD1POS ].usItem ) ) { - CHAR16 zTemp[ 150 ]; - - swprintf( zTemp, Message[ STR_CANT_USE_TWO_ITEMS ], ItemNames[ pObj->usItem ], ItemNames[ pSoldier->inv[ HEAD1POS ].usItem ] ); - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, zTemp ); + if (gpItemPointer) + { + CHAR16 zTemp[150]; + swprintf(zTemp, Message[STR_CANT_USE_TWO_ITEMS], ItemNames[pObj->usItem], ItemNames[pSoldier->inv[HEAD1POS].usItem]); + ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, zTemp); + } + return( FALSE ); } } diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 85d926d0..8ecad709 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -6634,6 +6634,8 @@ void SwapGoggles(SOLDIERTYPE *pTeamSoldier) { if(CanItemFitInPosition(pTeamSoldier, &pTeamSoldier->inv[slotToUse], swapSlot, TRUE)) SwapObjs( pTeamSoldier, slotToUse, pGoggles, TRUE ); + else if (swapSlot == HELMETPOS) + SwapObjs(pTeamSoldier, slotToUse, pGoggles, TRUE); else if((pTeamSoldier->inv[HELMETPOS].exists()== true && pTeamSoldier->inv[HELMETPOS].AttachObject(pTeamSoldier, &pTeamSoldier->inv[slotToUse], FALSE)) || AutoPlaceObject(pTeamSoldier, &pTeamSoldier->inv[slotToUse], FALSE)) pGoggles->MoveThisObjectTo(pTeamSoldier->inv[slotToUse], 1, pTeamSoldier, slotToUse);