diff --git a/GameVersion.cpp b/GameVersion.cpp index a54192a5..0081ff7a 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -15,9 +15,9 @@ #ifdef JA2EDITOR #ifdef JA2UB - CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7966 (Development Build)" }; #else - CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7966 (Development Build)" }; #endif // ------------------------------ @@ -27,11 +27,11 @@ //DEBUG BUILD VERSION #ifdef JA2UB - CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7966 (Development Build)" }; #elif defined (JA113DEMO) - CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7966 (Development Build)" }; #else - CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7966 (Development Build)" }; #endif #elif defined CRIPPLED_VERSION @@ -46,16 +46,16 @@ //RELEASE BUILD VERSION #ifdef JA2UB - CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7966 (Development Build)" }; #elif defined (JA113DEMO) - CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7966 (Development Build)" }; #else - CHAR16 zVersionLabel[256] = { L"Release v1.13.7933 (Development Build)" }; + CHAR16 zVersionLabel[256] = { L"Release v1.13.7966 (Development Build)" }; #endif #endif -CHAR8 czVersionNumber[16] = { "Build 15.07.25" }; //YY.MM.DD +CHAR8 czVersionNumber[16] = { "Build 15.08.12" }; //YY.MM.DD CHAR16 zTrackingNumber[16] = { L"Z" }; // SAVE_GAME_VERSION is defined in header, change it there diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index 05f9b1a3..34324e2d 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -146,6 +146,7 @@ void StartBombMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo ); // added by Flugente void StartTacticalFunctionSelectionMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo, INT8 bLevel ); void CleanWeapons( BOOLEAN fEntireTeam ); +void UpdateGear(); void Strip( SOLDIERTYPE * pSoldier ); void StartCorpseMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo, INT8 bLevel ); @@ -4950,33 +4951,40 @@ void StartTacticalFunctionSelectionMessageBox( SOLDIERTYPE * pSoldier, INT32 sGr gsTempGridNo = sGridNo; // sevenfm: reorganized buttons order for new dialog - wcscpy( gzUserDefinedButton[0], TacticalStr[ FILL_CANTEEN_STR ] ); - wcscpy( gzUserDefinedButton[2], TacticalStr[ CLEAN_ONE_GUN_STR ] ); - wcscpy( gzUserDefinedButton[3], TacticalStr[ CLEAN_ALL_GUNS_STR ] ); - - if ( gpTempSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) - wcscpy( gzUserDefinedButton[1], TacticalStr[ TAKE_OFF_DISGUISE_STR ] ); - else - wcscpy( gzUserDefinedButton[1], TacticalStr[ TAKE_OFF_CLOTHES_STR ] ); + // fill canteens + wcscpy( gzUserDefinedButton[0], TacticalStr[FILL_CANTEEN_STR] ); + // remove covert property/clothes + if ( gpTempSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER) ) + wcscpy( gzUserDefinedButton[1], TacticalStr[TAKE_OFF_DISGUISE_STR] ); + else + wcscpy( gzUserDefinedButton[1], TacticalStr[TAKE_OFF_CLOTHES_STR] ); + + // clean weapons - in realtime of the entire team, in turnbased only for the selected merc + wcscpy( gzUserDefinedButton[2], (gTacticalStatus.uiFlags & INCOMBAT) ? TacticalStr[CLEAN_ONE_GUN_STR] : TacticalStr[CLEAN_ALL_GUNS_STR] ); + + wcscpy( gzUserDefinedButton[3], TacticalStr[IMPROVEGEARBUTTON_STR] ); + + // order militia to drop/pick up gear if ( gGameExternalOptions.fMilitiaUseSectorInventory ) { - wcscpy( gzUserDefinedButton[4], TacticalStr[ MILITIA_DROP_EQ_STR ] ); - wcscpy( gzUserDefinedButton[5], TacticalStr[ MILITIA_PICK_UP_EQ_STR ] ); + wcscpy( gzUserDefinedButton[4], TacticalStr[MILITIA_DROP_EQ_STR] ); + wcscpy( gzUserDefinedButton[5], TacticalStr[MILITIA_PICK_UP_EQ_STR] ); } else { - wcscpy( gzUserDefinedButton[4], TacticalStr[ UNUSED_STR ] ); - wcscpy( gzUserDefinedButton[5], TacticalStr[ UNUSED_STR ] ); + wcscpy( gzUserDefinedButton[4], TacticalStr[UNUSED_STR] ); + wcscpy( gzUserDefinedButton[5], TacticalStr[UNUSED_STR] ); } // if disguised, allow testing our disguise - if ( gpTempSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) - wcscpy( gzUserDefinedButton[6], TacticalStr[ SPY_SELFTEST_STR ] ); + if ( gpTempSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER) ) + wcscpy( gzUserDefinedButton[6], TacticalStr[SPY_SELFTEST_STR] ); else - wcscpy( gzUserDefinedButton[6], TacticalStr[ UNUSED_STR ] ); + wcscpy( gzUserDefinedButton[6], TacticalStr[UNUSED_STR] ); wcscpy( gzUserDefinedButton[7], TacticalStr[ UNUSED_STR ] ); + DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ FUNCTION_SELECTION_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS, TacticalFunctionSelectionMessageBoxCallBack, NULL, MSG_BOX_DEFAULT_BUTTON_1 ); } @@ -5020,6 +5028,169 @@ void CleanWeapons( BOOLEAN fEntireTeam ) } } +// Flugente: on a key press, we loop over each team members' inventory and exchange it with world items that have a higher status +// however, we ignore items that have inseparable attachments +// the goal is to simulate the player manually changing items, as that is rather tedious +OBJECTTYPE* GetBetterSectorObject( UINT16 usItem, INT16 status, UINT8& arIndex ) +{ + OBJECTTYPE* pBestObj = NULL; + + INT16 beststatus = status; + UINT32 slot = 0; + BOOLEAN found = FALSE; + + for ( UINT32 uiCount = 0; uiCount < guiNumWorldItems; ++uiCount ) // ... for all items in the world ... + { + if ( gWorldItems[uiCount].fExists && gWorldItems[uiCount].usFlags & WORLD_ITEM_REACHABLE && + !(gWorldItems[uiCount].usFlags & WORLD_ITEM_ARMED_BOMB) && gWorldItems[uiCount].bVisible == VISIBLE && + gWorldItems[uiCount].object.usItem == usItem ) + { + OBJECTTYPE* pObj = &(gWorldItems[uiCount].object); + + if ( pObj != NULL && pObj->exists() ) + { + for ( UINT8 i = 0; i < pObj->ubNumberOfObjects; ++i ) + { + if ( (*pObj)[i]->data.objectStatus > beststatus ) + { + // ignore if there are inseparable attachments - we wouldn't be able to change those by hand + attachmentList::iterator iterend = (*pObj)[i]->attachments.end( ); + for ( attachmentList::iterator iter = (*pObj)[i]->attachments.begin( ); iter != iterend; ++iter ) + { + if ( iter->exists() && Item[iter->usItem].inseparable ) + { + continue; + } + } + + beststatus = (*pObj)[i]->data.objectStatus; + slot = uiCount; + arIndex = i; + found = TRUE; + } + } + } + } + } + + if ( found ) + { + OBJECTTYPE* pObj = &(gWorldItems[slot].object); + + return pObj; + } + + return NULL; +} + +void UpdateGear() +{ + if ( gTacticalStatus.uiFlags & INCOMBAT ) + return; + + // no functionality if not in tactical or in combat, or nobody is here + if ( (guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != MSG_BOX_SCREEN) ) + return; + + UINT16 bMercID, bLastTeamID; + SOLDIERTYPE* pSoldier = NULL; + + bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + + // loop through all mercs + for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier ) + { + //if the merc is in this sector + if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ) ) + { + // loop over inventory + INT8 invsize = (INT8)pSoldier->inv.size( ); // remember inventorysize, so we don't call size() repeatedly + + for ( INT8 bLoop = 0; bLoop < invsize; ++bLoop ) // ... for all items in our inventory ... + { + if ( pSoldier->inv[bLoop].exists( ) ) + { + OBJECTTYPE* pObj = &(pSoldier->inv[bLoop]); // ... get pointer for this item ... + + if ( pObj != NULL ) // ... if pointer is not obviously useless ... + { + for ( INT16 i = 0; i < pObj->ubNumberOfObjects; ++i ) // ... there might be multiple items here (item stack), so for each one ... + { + // we could improve our gear by changing this object with another one + if ( (*pObj)[i]->data.objectStatus < 100 ) + { + // ignore if there are inseparable attachments - we wouldn't be able to change those by hand + attachmentList::iterator iterend = (*pObj)[i]->attachments.end( ); + for ( attachmentList::iterator iter = (*pObj)[i]->attachments.begin( ); iter != iterend; ++iter ) + { + if ( iter->exists( ) && Item[iter->usItem].inseparable ) + { + continue; + } + } + + // see if we can find a better object in this sector + UINT8 index = 0; + OBJECTTYPE* pObj_Better = GetBetterSectorObject( pObj->usItem, (*pObj)[i]->data.objectStatus, index ); + + if ( pObj_Better ) + { + // WARNING! The correct way of doing this would be to exchange both objects + // we are not doing this here on purpose, as we want to save time + // instead, we switch status and a few other properties + // Only do this if you know what you are doing - in the wrong location, we could do odd things to global pointers. Consider yourself warned! + + // tmp data + INT16 objectStatus = (*pObj)[i]->data.objectStatus; + INT8 bTrap = (*pObj)[i]->data.bTrap; + UINT8 fUsed = (*pObj)[i]->data.fUsed; + UINT8 ubImprintID = (*pObj)[i]->data.ubImprintID; + FLOAT bTemperature = (*pObj)[i]->data.bTemperature; + UINT8 ubDirection = (*pObj)[i]->data.ubDirection; + UINT32 ubWireNetworkFlag = (*pObj)[i]->data.ubWireNetworkFlag; + INT8 bDefuseFrequency = (*pObj)[i]->data.bDefuseFrequency; + INT16 sRepairThreshold = (*pObj)[i]->data.sRepairThreshold; + FLOAT bDirtLevel = (*pObj)[i]->data.bDirtLevel; + UINT64 sObjectFlag = (*pObj)[i]->data.sObjectFlag; + + // set data on our object + (*pObj)[i]->data.objectStatus = (*pObj_Better)[index]->data.objectStatus; + (*pObj)[i]->data.bTrap = (*pObj_Better)[index]->data.bTrap; + (*pObj)[i]->data.fUsed = (*pObj_Better)[index]->data.fUsed; + (*pObj)[i]->data.ubImprintID = (*pObj_Better)[index]->data.ubImprintID; + (*pObj)[i]->data.bTemperature = (*pObj_Better)[index]->data.bTemperature; + (*pObj)[i]->data.ubDirection = (*pObj_Better)[index]->data.ubDirection; + (*pObj)[i]->data.ubWireNetworkFlag = (*pObj_Better)[index]->data.ubWireNetworkFlag; + (*pObj)[i]->data.bDefuseFrequency = (*pObj_Better)[index]->data.bDefuseFrequency; + (*pObj)[i]->data.sRepairThreshold = (*pObj_Better)[index]->data.sRepairThreshold; + (*pObj)[i]->data.bDirtLevel = (*pObj_Better)[index]->data.bDirtLevel; + (*pObj)[i]->data.sObjectFlag = (*pObj_Better)[index]->data.sObjectFlag; + + // set data on world object + (*pObj_Better)[index]->data.objectStatus = objectStatus; + (*pObj_Better)[index]->data.bTrap = bTrap; + (*pObj_Better)[index]->data.fUsed = fUsed; + (*pObj_Better)[index]->data.ubImprintID = ubImprintID; + (*pObj_Better)[index]->data.bTemperature = bTemperature; + (*pObj_Better)[index]->data.ubDirection = ubDirection; + (*pObj_Better)[index]->data.ubWireNetworkFlag = ubWireNetworkFlag; + (*pObj_Better)[index]->data.bDefuseFrequency = bDefuseFrequency; + (*pObj_Better)[index]->data.sRepairThreshold = sRepairThreshold; + (*pObj_Better)[index]->data.bDirtLevel = bDirtLevel; + (*pObj_Better)[index]->data.sObjectFlag = sObjectFlag; + + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[IMPROVEGEARDESCRIBE_STR], pSoldier->GetName( ), Item[pObj->usItem].szItemName ); + } + } + } + } + } + } + } + } +} + // undisguise or take off custom clothes void Strip( SOLDIERTYPE * pSoldier ) { @@ -5175,14 +5346,13 @@ void TacticalFunctionSelectionMessageBoxCallBack( UINT8 ubExitValue ) case 2: // undisguise or take off custom clothes Strip(gpTempSoldier); - break; + break; case 3: - // clean weapons of selected merc - CleanWeapons(FALSE); + // clean weapons - in realtime of the entire team, in turnbased only for the selected merc + CleanWeapons( gTacticalStatus.uiFlags & INCOMBAT ); break; case 4: - // clean weapons of entire team - CleanWeapons(TRUE); + UpdateGear(); break; case 5: // militia drops all gear taken from sector inventory @@ -5199,6 +5369,8 @@ void TacticalFunctionSelectionMessageBoxCallBack( UINT8 ubExitValue ) if ( gpTempSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) gpTempSoldier->SpySelfTest(); break; + + case 8: default: break; } diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 4155a928..ee97e98a 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -22880,6 +22880,8 @@ BOOLEAN ApplyConsumable( SOLDIERTYPE* pSoldier, OBJECTTYPE *pObj, BOOLEAN fForce UINT16 statusused = min( portionsize, (*pObj)[0]->data.objectStatus ); if ( !statusused ) return FALSE; + + INT16 apcost = 0; // if we check for APs, do so - if we don't have enough, stop if ( fUseAPs ) @@ -22887,7 +22889,6 @@ BOOLEAN ApplyConsumable( SOLDIERTYPE* pSoldier, OBJECTTYPE *pObj, BOOLEAN fForce // an object can be consumed in several ways (like food that is also a drug), but each consumption might have a different AP cost. // as it would be very odd if an effect does not happen because the corresponding AP cost could not be met, we analyze the item first and determine the AP cost. // We then either apply everything or nothing - UINT16 apcost = 0; if ( HasItemFlag( pObj->usItem, CAMO_REMOVAL ) && gGameExternalOptions.fCamoRemoving ) { @@ -23015,6 +23016,8 @@ BOOLEAN ApplyConsumable( SOLDIERTYPE* pSoldier, OBJECTTYPE *pObj, BOOLEAN fForce if ( fUseAPs ) { + DeductPoints( pSoldier, (INT16)apcost, 0, false ); + // Dirty fInterfacePanelDirty = DIRTYLEVEL2; } diff --git a/Utils/Text.h b/Utils/Text.h index 50eb0c88..8bfe7b55 100644 --- a/Utils/Text.h +++ b/Utils/Text.h @@ -1122,6 +1122,9 @@ enum ATTEMPT_BANDAGE_DURING_TRAVEL, + IMPROVEGEARBUTTON_STR, + IMPROVEGEARDESCRIBE_STR, + TEXT_NUM_TACTICAL_STR }; diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index dacd62c3..b7cf48bc 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -3390,6 +3390,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"无法把物品转移到主手上", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9227,7 +9230,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9569,7 +9572,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index 8c28f87b..847de141 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -3388,6 +3388,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Cannot take item to main hand", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9238,7 +9241,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9580,7 +9583,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index 6cd0ef5c..bfc4d18a 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -3389,6 +3389,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Cannot take item to main hand", L"Attempting to bandage travelling mercs...", + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9277,7 +9280,7 @@ STR16 szDynamicDialogueText[40][17] = L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9619,7 +9622,7 @@ STR16 szDynamicDialogueText[40][17] = L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 97335db8..8c147839 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -3393,6 +3393,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Vous ne pouvez pas prendre d'objet avec la main principale", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9224,7 +9227,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9566,7 +9569,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index 024defd5..4369063a 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -3360,7 +3360,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = // added by Flugente: decide what to do with prisoners L"Sie haben kein Gefängnis für die Gefangenen und müssen diese nun laufen lassen", L"Wohin mit den Gefangenen?", - L"Entlassen", + L"Freilassen", L"Was möchten Sie tun?", L"Kapitulation fordern", L"Kapitulation anbieten", @@ -3375,12 +3375,12 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Stolperdraht deaktivieren", L"Stolperdraht freilegen", L"Kein Zünder/Fernzünder gefunden!", - L"Diese Bombe ist bereis scharf!", + L"Diese Bombe ist bereits scharf!", L"Sicher", L"Fast sicher", L"Riskant", L"Gefährlich", - L"Hohe Gefahr!", + L"Höchst gefährlich!", L"Mask", // TODO.Translate L"NVG", @@ -3395,6 +3395,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Cannot take item to main hand", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9055,7 +9058,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9397,7 +9400,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index b6d7ca4c..28017204 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -3383,6 +3383,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Cannot take item to main hand", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9233,7 +9236,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9575,7 +9578,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 1465d1bc..8d37b9f2 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -3398,6 +3398,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Cannot take item to main hand", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9250,7 +9253,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9592,7 +9595,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!", diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index c50b2b8a..8a431c26 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -3389,6 +3389,9 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Невозможно взять предмет в руку", L"Attempting to bandage travelling mercs...", //TODO.Translate + + L"Improve gear", + L"%s changed %s for superior version", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. @@ -9277,7 +9280,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is angry with $CAUSE$ because $CAUSE_GENDER$ spoke to you. What do you do?", L"Nono, $CAUSE$, speak up... What did $VICTIM$ do?", L"Yeah, mind your own business, $CAUSE$!", - L"This isn't girls college, keep your snickerin to yourself, &CAUSE$.", + L"This isn't girls college, keep your snickering to yourself, $CAUSE$.", L"Yeah. Man up!", L"I'm not sure wether it was the correct way, but $CAUSE_GENDER$ does have a point...", L"This again? Keep your bickering to yourself, we have no time for this!", @@ -9619,7 +9622,7 @@ STR16 szDynamicDialogueText[40][17] = // TODO.Translate L"$VICTIM$ is wasted and wants to be $VICTIM$'s buddy. What do you do?", L"Relax, it's just a bit of booze.", L"Hey keep it down over there, okay?", - L"You're just as drunk. Beat it, &CAUSE$!", + L"You're just as drunk. Beat it, $CAUSE$!", L"Leave alcohol to the big ones, okay?", L"Later, ok?", L"We might've won this battle, but not this godamn war. So move it, soldier!",