diff --git a/GameVersion.cpp b/GameVersion.cpp index 46053e3e..01ff9e2f 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -23,12 +23,12 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - INT16 zVersionLabel[256] = { L"Release v1.13.541" }; + INT16 zVersionLabel[256] = { L"Release v1.13.542" }; #endif -INT8 czVersionNumber[16] = { "Build 06.09.20" }; +INT8 czVersionNumber[16] = { "Build 06.09.22" }; INT16 zTrackingNumber[16] = { L"Z" }; diff --git a/JA2.suo b/JA2.suo index f7ded1e2..90f9aa23 100644 Binary files a/JA2.suo and b/JA2.suo differ diff --git a/JA2.vcproj b/JA2.vcproj index 23db1d90..e8b1b0fb 100644 --- a/JA2.vcproj +++ b/JA2.vcproj @@ -43,7 +43,7 @@ "); + #ifdef ENGLISH + wcscpy(pString, L"Rooftop Sniping: "); + #endif + + #ifdef RUSSIAN + wcscpy(pString, L"Rooftop Sniping: "); + #endif #ifdef GERMAN - wcscpy(pString, L"Scharfschütze: "); + wcscpy(pString, L"Dach-Treffer Bonus: "); #endif // add to list @@ -3964,10 +3970,16 @@ void HandleIMPCharProfileResultsMessage( void) // read one record from email file //LoadEncryptedDataFromFile( "BINARYDATA\\Impass.edt", pString, MAIL_STRING_SIZE * ( IMP_SKILLS_SPECIAL_CAMOUFLAGED ), MAIL_STRING_SIZE ); - wcscpy(pString, L"Camouflaged: "); + #ifdef ENGLISH + wcscpy(pString, L"Camouflage: "); + #endif + + #ifdef RUSSIAN + wcscpy(pString, L"Camouflage: "); + #endif #ifdef GERMAN - wcscpy(pString, L"Tarnung: "); + wcscpy(pString, L"Getarnt: "); #endif // add to list diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index 2425bbba..29562bc6 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -504,7 +504,18 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, UINT16 usGridNo, INT8 bLevel, UINT16 us sAPCost = CalcTotalAPsToAttack( pSoldier, sTargetGridNo, TRUE, 0 ); if((__min(pSoldier->bDoAutofire,pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft) - startAuto) > 0 && pSoldier->bTeam == OUR_TEAM) - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, gzLateLocalizedString[ 62 ], pSoldier->name, __min(pSoldier->bDoAutofire,pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft) - startAuto ); + { + // More than 1 round + if (__min(pSoldier->bDoAutofire,pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft) - startAuto > 1) + { + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, gzLateLocalizedString[ 62 ], pSoldier->name, __min(pSoldier->bDoAutofire,pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft) - startAuto ); + } + // 1 round + else + { + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, gzLateLocalizedString[ 63 ], pSoldier->name, __min(pSoldier->bDoAutofire,pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft) - startAuto ); + } + } //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Chance:%d.%d, AvgAps=%f, APs=%d", chanceToMisfire/(diceSides/100),chanceToMisfire%(diceSides/100), avgAPadded,sAPCost-startAPcost); diff --git a/Tactical/Interface.cpp b/Tactical/Interface.cpp index 7b2be6ff..2fc3df4f 100644 --- a/Tactical/Interface.cpp +++ b/Tactical/Interface.cpp @@ -1807,7 +1807,8 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID ) //jones extern void SoldierTooltip(SOLDIERTYPE*); - SoldierTooltip(pSoldier); + if ( gGameExternalOptions.gfAllowSoldierToolTips ) + SoldierTooltip(pSoldier); SetFont( TINYFONT1 ); SetFontBackground( FONT_MCOLOR_BLACK ); diff --git a/Tactical/Inventory Choosing.cpp b/Tactical/Inventory Choosing.cpp index e97653e4..97185009 100644 --- a/Tactical/Inventory Choosing.cpp +++ b/Tactical/Inventory Choosing.cpp @@ -3003,6 +3003,8 @@ UINT16 PickARandomItem(UINT8 typeIndex, UINT8 maxCoolness, BOOLEAN getMatchingCo usItem = gArmyItemChoices[ typeIndex ].bItemNo[ uiChoice ]; // WANNE + pickItem = FALSE; + if (usItem >= 0 && Item[usItem].ubCoolness <= maxCoolness && ItemIsLegal(usItem)) { // On day diff --git a/Tactical/SoldierTooltips.cpp b/Tactical/SoldierTooltips.cpp index 9e31467a..450dc731 100644 --- a/Tactical/SoldierTooltips.cpp +++ b/Tactical/SoldierTooltips.cpp @@ -402,11 +402,9 @@ void DrawMouseTooltip() extern void DisplayTooltipString( STR16 pStringA, INT16 sX, INT16 sY ); extern void j_log(PTR,...); -// if (!gGameExternalOptions.gfAllowSoldierToolTips) return; - - iX = mouseTT.iX;iY = mouseTT.iY; - iW = (INT32)GetWidthOfString( mouseTT.FastHelpText ) + 10; - iH = (INT32)( GetNumberOfLinesInHeight( mouseTT.FastHelpText ) * (GetFontHeight(FONT10ARIAL)+1) + 8 ); + iX = mouseTT.iX;iY = mouseTT.iY; + iW = (INT32)GetWidthOfString( mouseTT.FastHelpText ) + 10; + iH = (INT32)( GetNumberOfLinesInHeight( mouseTT.FastHelpText ) * (GetFontHeight(FONT10ARIAL)+1) + 8 ); if(1)//draw at cursor { diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index e09aae7a..0281d179 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -3573,7 +3573,9 @@ UINT32 CalcChanceToHitGun(SOLDIERTYPE *pSoldier, UINT16 sGridNo, UINT8 ubAimTime if (pSoldier->bShock) iChance -= (pSoldier->bShock * AIM_PENALTY_PER_SHOCK); - if ( Item[ usInHand ].usItemClass == IC_GUN ) + // WANNE NEW: Changed this, because RPGs are not in the calculation, only guns + //if ( Item[ usInHand ].usItemClass == IC_GUN ) + if ( Item[ usInHand ].usItemClass == IC_GUN || Item[ usInHand ].usItemClass == IC_LAUNCHER) { iMaxRange = GunRange( pInHand ); } diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index f0e47fd1..2acf55a7 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -4110,6 +4110,10 @@ STR16 gzLateLocalizedString[] = L"John en Mary escorteren?", L"Schakelaar geactiveerd.", + + L"%s's armour attachment has been smashed!", + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index e366f96a..1dfe5ccc 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -4111,10 +4111,11 @@ STR16 gzLateLocalizedString[] = L"Escort John and Mary?", // 60 - L"Switch Activated.", + L"Switch Activated.", L"%s's armour attachment has been smashed!", - L"%s fires %d more rounds than intended!" + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; STR16 gzCWStrings[] = diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 3b424963..805ada5b 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -4091,6 +4091,10 @@ STR16 gzLateLocalizedString[] = L"Escorter John et Mary ?", L"Interrupteur activé.", + + L"%s's armour attachment has been smashed!", + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; #endif //FRENCH diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index 00b84fc1..f708d170 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -288,8 +288,8 @@ UINT16 Message[][STRING_LENGTH] = L"Wenn Sie zu Skyriders Heli wollen, müssen Sie Söldner einem FAHRZEUG/HELIKOPTER ZUWEISEN.", L"%s hat nur Zeit, EINE Waffe zu laden", L"Spielzug Bloodcats", - L"automatic", - L"no full auto", + L"automatisch", + L"nicht komplett automatisch", L"genau", L"ungenau", L"kein Einzelschuss", @@ -596,20 +596,20 @@ STR16 pAssignMenuStrings[] = //lal STR16 pMilitiaControlMenuStrings[] = { - L"Attack", // set militia to aggresive - L"Hold Position", // set militia to stationary - L"Retreat", // retreat militia - L"Come to me", // retreat militia - L"Get down", // retreat militia - L"Take cover", - L"All: Attack", - L"All: Hold Position", - L"All: Retreat", - L"All: Come to me", - L"All: Get down", - L"All: Take cover", + L"Angreifen", // set militia to aggresive + L"Position halten", // set militia to stationary + L"Rückzug", // retreat militia + L"An meine Position", // retreat militia + L"Auf den Boden", // retreat militia + L"In Deckung gehen", + L"Alle: Angreifen", + L"Alle: Position halten", + L"Alle: Rückzug", + L"Alle: An meine Position", + L"All: Auf den Boden", + L"All: In Deckung gehen", //L"All: Find items", - L"Cancel", // cancel this menu + L"Abbrechen", // cancel this menu }; //STR16 pTalkToAllMenuStrings[] = @@ -1132,7 +1132,7 @@ STR16 pVehicleStrings[] = L"Hummer", // a hummer jeep/truck -- military vehicle L"Ice Cream Truck", L"Jeep", - L"Tank", + L"Panzer", L"Helikopter", }; @@ -1152,7 +1152,7 @@ STR16 zVehicleName[] = L"Hummer", //a military jeep. This is a brand name. L"Truck", // Ice cream truck L"Jeep", - L"Tank", + L"Panzer", L"Heli", //an abbreviation for Helicopter }; @@ -1168,18 +1168,18 @@ UINT16 TacticalStr[][ MED_STRING_LENGTH ] = // The %s is a string from pDoorTrapStrings - L"Das Schloß hat %s.", - L"Es gibt kein Schloß.", + L"Das Schloss hat %s.", + L"Es gibt kein Schloss.", L"Erfolg!", L"Fehlschlag.", L"Erfolg!", L"Fehlschlag.", - L"Das Schloß hat keine Falle.", + L"Das Schloss hat keine Falle.", L"Erfolg!", // The %s is a merc name L"%s hat nicht den richtigen Schlüssel.", - L"Die Falle am Schloß ist entschärft.", - L"Das Schloß hat keine Falle.", + L"Die Falle am Schloss ist entschärft.", + L"Das Schloss hat keine Falle.", L"Geschl.", L"TÜR", L"FALLE AN", @@ -1352,8 +1352,8 @@ UINT16 TacticalStr[][ MED_STRING_LENGTH ] = L"Automatische Erste Hilfe nicht möglich", L"Weg blockiert für %s", L"Ihre von Deidrannas Truppe gefangenen Soldaten sind hier inhaftiert", - L"Schloß getroffen", - L"Schloß zerstört", + L"Schloss getroffen", + L"Schloss zerstört", L"Noch jemand an der Tür.", L"Gesundh.: %d/%d\nTank: %d/%d", L"%s kann %s nicht sehen.", // Cannot see person trying to talk to @@ -3902,8 +3902,11 @@ STR16 gzLateLocalizedString[] = //59 L"John und Mary eskortieren?", - L"Switch Activated.", + L"Schalter aktiviert.", + L"%s's Rüstungsverstärkung wurde zertrümmert!", + L"%s feuert %d Schüsse mehr als beabsichtigt!", + L"%s feuert %d Schuss mehr als beabsichtigt!", }; STR16 gzCWStrings[] = diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index 5070bee8..9544d763 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -4089,6 +4089,10 @@ STR16 gzLateLocalizedString[] = L"Accompagnate John e Mary?", L"Interruttore attivato.", + + L"%s's armour attachment has been smashed!", + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; diff --git a/Utils/_Ja25EnglishText.cpp b/Utils/_Ja25EnglishText.cpp index f46a3307..d3a43277 100644 --- a/Utils/_Ja25EnglishText.cpp +++ b/Utils/_Ja25EnglishText.cpp @@ -15,7 +15,7 @@ STR16 zNewTacticalMessages[]= { - L"Range to target: %d tiles, Brightness = %d/%d", + L"Range to target: %d tiles, Brightness: %d/%d", L"Attaching the transmitter to your laptop computer.", L"You cannot afford to hire %s", L"For a limited time, the above fee covers the cost of the entire mission and includes the equipment listed below.", diff --git a/Utils/_Ja25GermanText.cpp b/Utils/_Ja25GermanText.cpp index 41265618..fde182c3 100644 --- a/Utils/_Ja25GermanText.cpp +++ b/Utils/_Ja25GermanText.cpp @@ -15,14 +15,14 @@ STR16 zNewTacticalMessages[]= { - L"Entfernung zum Ziel: %d Felder, Helligkeit = %d/%d", + L"Entfernung zum Ziel: %d Felder, Helligkeit: %d/%d", L"Verbinden Sie den Transmitter mit Ihrem Laptop-Computer.", L"Sie haben nicht genug Geld, um %s anzuheuern", L"Das obenstehende Honorar deckt für einen begrenzten Zeitraum die Kosten der Gesamtmission, und schließt untenstehendes Equipment mit ein.", L"Engagieren Sie %s jetzt und nutzen Sie den Vorteil unseres beispiellosen 'Ein Betrag für alles'-Honorars. Das persönliche Equipment des Söldners ist gratis in diesem Preis mit inbegriffen.", L"Honorar", L"Da ist noch jemand im Sektor...", - L"Waffen-Rchwt.: %d Felder, Entf. zum Ziel: %d Felder", + L"Waffen-Rchwt.: %d Felder, Trefferwahrsch.: %d Prozent", L"Deckung anzeigen", L"Sichtfeld", L"Neue Rekruten können dort nicht hinkommen.", @@ -30,7 +30,7 @@ STR16 zNewTacticalMessages[]= L"%s hört das Geräusch knirschenden Metalls unter Jerry hervordringen. Es klingt grässlich - die Antenne ihres Laptop-Computers ist zerstört.", //the %s is the name of a merc. @@@ Modified L"Nach Ansehen des Hinweises, den Commander Morris hinterließ, erkennt %s eine einmalige Gelegenheit. Der Hinweis enthält Koordinaten für den Start von Raketen gegen verschiedene Städte in Arulco. Aber er enthält auch die Koordinaten des Startpunktes - der Raketenanlage.", L"Das Kontroll-Board studierend, entdeckt %s, dass die Zahlen umgedreht werden könnten, so dass die Raketen diese Anlage selbst zerstören. %s muss nun einen Fluchtweg finden. Der Aufzug scheint die schnellstmögliche Route zu bieten...", //!!! The original reads: L"Noticing the control panel %s, figures the numbers can be reversed..." That sounds odd for me, but I think the comma is placed one word too late... (correct?) -L"Dies ist ein IRON MAN-Spiel, und es kann nicht gespeichert werden, wenn sich Gegner in der Nähe befinden.", + L"Dies ist ein IRON MAN-Spiel, und es kann nicht gespeichert werden, wenn sich Gegner in der Nähe befinden.", L"(Kann während Kampf nicht speichern)", L"Der Name der aktuellen Kampagne enthält mehr als 30 Buchstaben.", L"Die aktuelle Kampagne kann nicht gefunden werden.", diff --git a/Utils/_Ja25RussianText.cpp b/Utils/_Ja25RussianText.cpp index 81d8d6a1..28e60d5a 100644 --- a/Utils/_Ja25RussianText.cpp +++ b/Utils/_Ja25RussianText.cpp @@ -15,7 +15,7 @@ STR16 zNewTacticalMessages[]= { - L"Range to target: %d tiles, Brightness = %d/%d", + L"Range to target: %d tiles, Brightness: %d/%d", L"Attaching the transmitter to your laptop computer.", L"You cannot afford to hire %s", L"For a limited time, the above fee covers the cost of the entire mission and includes the equipment listed below.", diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index e827a403..af27e8de 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -4085,6 +4085,10 @@ STR16 gzLateLocalizedString[] = L"Eskortowaæ Johna i Mary?", L"Prze³¹cznik aktywowany.", + + L"%s's armour attachment has been smashed!", + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index 70f8ba4a..a4f991fe 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -4103,7 +4103,8 @@ STR16 gzLateLocalizedString[] = L"Âûêëþ÷àòåëü íàæàò.", L"%s's armour attachment has been smashed!", - L"%s fires %d more rounds than intended!" + L"%s fires %d more rounds than intended!", + L"%s fires %d more round than intended!", }; STR16 gzCWStrings[] =