From fb3d410dd9cdd5ce91938c219da59c1224259e7c Mon Sep 17 00:00:00 2001 From: Flugente Date: Sun, 20 Jan 2013 05:12:19 +0000 Subject: [PATCH] - a few dialogue box button texts can now be easily changed - Fix: improved bomb defusal git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5795 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- MessageBoxScreen.cpp | 376 ++++++++++++++++--------------- MessageBoxScreen.h | 15 +- Strategic/Merc Contract.cpp | 4 +- Strategic/mapscreen.cpp | 2 +- Tactical/Handle Items.cpp | 72 ++++-- Tactical/Interface Items.cpp | 21 +- Tactical/Overhead.cpp | 6 +- TileEngine/Explosion Control.cpp | 4 + Utils/Text.h | 11 + Utils/_ChineseText.cpp | 26 ++- Utils/_DutchText.cpp | 24 +- Utils/_EnglishText.cpp | 17 +- Utils/_FrenchText.cpp | 24 +- Utils/_GermanText.cpp | 24 +- Utils/_ItalianText.cpp | 24 +- Utils/_PolishText.cpp | 24 +- Utils/_RussianText.cpp | 24 +- Utils/_TaiwaneseText.cpp | 24 +- 18 files changed, 455 insertions(+), 267 deletions(-) diff --git a/MessageBoxScreen.cpp b/MessageBoxScreen.cpp index 55ba137a..4e3778b6 100644 --- a/MessageBoxScreen.cpp +++ b/MessageBoxScreen.cpp @@ -78,6 +78,9 @@ extern STR16 pUpdatePanelButtons[]; CHAR16 gzUserDefinedButton1[ 128 ]; CHAR16 gzUserDefinedButton2[ 128 ]; +// Flugente: made an array for user-defined buttons +CHAR16 gzUserDefinedButton[ NUM_CUSTOM_BUTTONS ][ 128 ]; + INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UINT16 usFlags, MSGBOX_CALLBACK ReturnCallback, SGPRect *pCenteringRect ) { VSURFACE_DESC vs_desc; @@ -179,6 +182,18 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN usCursor = CURSOR_LAPTOP_SCREEN; break; + case MSG_BOX_BASIC_MEDIUM_BUTTONS: + ubMercBoxBackground = DIALOG_MERC_POPUP_BACKGROUND; + ubMercBoxBorder = DIALOG_MERC_POPUP_BORDER; + + // Add button images + gMsgBox.iButtonImages = LoadButtonImage( "INTERFACE\\PreferencesButtons.sti", -1,0,-1,1,-1 ); + ubFontColor = FONT_MCOLOR_WHITE; + ubFontShadowColor = DEFAULT_SHADOW; + usCursor = CURSOR_NORMAL; + + break; + default: ubMercBoxBackground = BASIC_MERC_POPUP_BACKGROUND; ubMercBoxBorder = BASIC_MERC_POPUP_BORDER; @@ -217,9 +232,11 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN // Flugente: increase the height of the display box under certain conditions UINT16 heightincrease = 0; - if ( usFlags & MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS ) + if ( usFlags & MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS ) + heightincrease = 120; + if ( usFlags & MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS ) heightincrease = 50; - if ( usFlags & MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS ) + if ( usFlags & MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS ) heightincrease = 90; // Init message box @@ -361,30 +378,38 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN ForceButtonUnDirty( gMsgBox.uiButton[i] ); } } + // Create four numbered buttons + else if ( usFlags & MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS ) + { + sButtonX = (usTextBoxWidth - 115)/ 2; + sButtonY = usTextBoxHeight - MSGBOX_BUTTON_HEIGHT - 130 - MSGBOX_SMALL_BUTTON_WIDTH - MSGBOX_SMALL_BUTTON_X_SEP; + + for ( INT8 j = 0; j < 4; ++j) + { + sButtonY += 35; + gMsgBox.uiButton[j] = CreateIconAndTextButton( gMsgBox.iButtonImages, gzUserDefinedButton[j], FONT12ARIAL, + ubFontColor, ubFontShadowColor, + ubFontColor, ubFontShadowColor, + TEXT_CJUSTIFIED, + (INT16)(gMsgBox.sX + sButtonX ), (INT16)(gMsgBox.sY + sButtonY ), BUTTON_TOGGLE ,MSYS_PRIORITY_HIGHEST, + DEFAULT_MOVE_CALLBACK, (GUI_CALLBACK)NumberedMsgBoxCallback ); + MSYS_SetBtnUserData( gMsgBox.uiButton[j], 0, j+1); + SetButtonCursor(gMsgBox.uiButton[j], usCursor); + ForceButtonUnDirty( gMsgBox.uiButton[j] ); + } + } // Create eight numbered buttons - else if ( usFlags & MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS ) + else if ( usFlags & MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS ) { sBlankSpace = usTextBoxWidth - MSGBOX_SMALL_BUTTON_WIDTH * 4 - MSGBOX_SMALL_BUTTON_X_SEP * 3; sButtonX = sBlankSpace / 2; sButtonY = usTextBoxHeight - MSGBOX_BUTTON_HEIGHT - 10 - heightincrease; - - STR16 eightstr[8] = { - L"1", - L"2", - L"3", - L"4", - L"A", - L"B", - L"C", - L"D", - }; - sButtonY -= MSGBOX_SMALL_BUTTON_WIDTH - MSGBOX_SMALL_BUTTON_X_SEP; for ( INT8 i = 0; i < 2; ++i) { // new row - sButtonY += MSGBOX_SMALL_BUTTON_WIDTH;// + MSGBOX_SMALL_BUTTON_X_SEP; + sButtonY += MSGBOX_SMALL_BUTTON_WIDTH; // begin from the front sButtonX = sBlankSpace / 2 - MSGBOX_SMALL_BUTTON_WIDTH - MSGBOX_SMALL_BUTTON_X_SEP; @@ -394,7 +419,7 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN INT8 k = 4*i + j; sButtonX += MSGBOX_SMALL_BUTTON_WIDTH + MSGBOX_SMALL_BUTTON_X_SEP; - gMsgBox.uiButton[k] = CreateIconAndTextButton( gMsgBox.iButtonImages, eightstr[k], FONT12ARIAL, + gMsgBox.uiButton[k] = CreateIconAndTextButton( gMsgBox.iButtonImages, gzUserDefinedButton[k], FONT12ARIAL, ubFontColor, ubFontShadowColor, ubFontColor, ubFontShadowColor, TEXT_CJUSTIFIED, @@ -402,40 +427,16 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN DEFAULT_MOVE_CALLBACK, (GUI_CALLBACK)NumberedMsgBoxCallback ); MSYS_SetBtnUserData( gMsgBox.uiButton[k], 0, k+1); SetButtonCursor(gMsgBox.uiButton[k], usCursor); + ForceButtonUnDirty( gMsgBox.uiButton[k] ); } } - - for ( INT8 i = 7; i >= 0; --i) - { - ForceButtonUnDirty( gMsgBox.uiButton[i] ); - } } // Create sixteen numbered buttons - else if ( usFlags & MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS ) + else if ( usFlags & MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS ) { sBlankSpace = usTextBoxWidth - MSGBOX_SMALL_BUTTON_WIDTH * 4 - MSGBOX_SMALL_BUTTON_X_SEP * 3; sButtonX = sBlankSpace / 2; sButtonY = usTextBoxHeight - MSGBOX_BUTTON_HEIGHT - 10 - heightincrease - 6; - - STR16 sixteenstr[16] = { - L"1-A", - L"1-B", - L"1-C", - L"1-D", - L"2-A", - L"2-B", - L"2-C", - L"2-D", - L"3-A", - L"3-B", - L"3-C", - L"3-D", - L"4-A", - L"4-B", - L"4-C", - L"4-D", - }; - sButtonY -= MSGBOX_SMALL_BUTTON_WIDTH - MSGBOX_SMALL_BUTTON_X_SEP; for ( INT8 i = 0; i < 4; ++i) @@ -449,9 +450,9 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN for ( INT8 j = 0; j < 4; ++j) { INT8 k = 4*i + j; - + sButtonX += MSGBOX_SMALL_BUTTON_WIDTH + MSGBOX_SMALL_BUTTON_X_SEP; - gMsgBox.uiButton[k] = CreateIconAndTextButton( gMsgBox.iButtonImages, sixteenstr[k], FONT12ARIAL, + gMsgBox.uiButton[k] = CreateIconAndTextButton( gMsgBox.iButtonImages, gzUserDefinedButton[k], FONT12ARIAL, ubFontColor, ubFontShadowColor, ubFontColor, ubFontShadowColor, TEXT_CJUSTIFIED, @@ -459,13 +460,9 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN DEFAULT_MOVE_CALLBACK, (GUI_CALLBACK)NumberedMsgBoxCallback ); MSYS_SetBtnUserData( gMsgBox.uiButton[k], 0, k+1); SetButtonCursor(gMsgBox.uiButton[k], usCursor); + ForceButtonUnDirty( gMsgBox.uiButton[k] ); } } - - for ( INT8 i = 15; i >= 0; --i) - { - ForceButtonUnDirty( gMsgBox.uiButton[i] ); - } } else if (usFlags & MSG_BOX_FLAG_INPUTBOX) { @@ -703,7 +700,7 @@ INT32 DoMessageBox( UINT8 ubStyle, const STR16 zString, UINT32 uiExitScreen, UIN } - if ( usFlags & MSG_BOX_FLAG_GENERIC ) + if ( usFlags & MSG_BOX_FLAG_GENERIC_TWO_BUTTONS ) { sButtonX = ( usTextBoxWidth - ( MSGBOX_BUTTON_WIDTH + MSGBOX_BUTTON_WIDTH + MSGBOX_BUTTON_X_SEP ) ) / 2; sButtonY = usTextBoxHeight - MSGBOX_BUTTON_HEIGHT - 10; @@ -971,14 +968,21 @@ UINT32 ExitMsgBox( INT8 ubExitCode ) RemoveButton( gMsgBox.uiButton[i] ); } } - else if ( gMsgBox.usFlags & MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS ) + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS ) + { + for (UINT8 i = 0; i < 4; ++i) + { + RemoveButton( gMsgBox.uiButton[i] ); + } + } + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS ) { for (UINT8 i = 0; i < 8; ++i) { RemoveButton( gMsgBox.uiButton[i] ); } } - else if ( gMsgBox.usFlags & MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS ) + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS ) { for (UINT8 i = 0; i < 16; ++i) { @@ -1024,7 +1028,7 @@ UINT32 ExitMsgBox( INT8 ubExitCode ) RemoveButton( gMsgBox.uiOKButton ); } - if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC ) + if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_TWO_BUTTONS ) { RemoveButton( gMsgBox.uiYESButton ); RemoveButton( gMsgBox.uiNOButton ); @@ -1211,14 +1215,21 @@ UINT32 MessageBoxScreenHandle( ) MarkAButtonDirty( gMsgBox.uiButton[i] ); } } - else if ( gMsgBox.usFlags & MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS ) + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS ) + { + for (UINT8 i = 0; i < 4; ++i) + { + MarkAButtonDirty( gMsgBox.uiButton[i] ); + } + } + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS ) { for (UINT8 i = 0; i < 8; ++i) { MarkAButtonDirty( gMsgBox.uiButton[i] ); } } - else if ( gMsgBox.usFlags & MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS ) + else if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS ) { for (UINT8 i = 0; i < 16; ++i) { @@ -1262,7 +1273,7 @@ UINT32 MessageBoxScreenHandle( ) MarkAButtonDirty( gMsgBox.uiOKButton ); } - if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC ) + if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_TWO_BUTTONS ) { MarkAButtonDirty( gMsgBox.uiYESButton ); MarkAButtonDirty( gMsgBox.uiNOButton ); @@ -1309,142 +1320,143 @@ UINT32 MessageBoxScreenHandle( ) while (DequeueSpecificEvent(&InputEvent, KEY_DOWN|KEY_UP|KEY_REPEAT)) { if( !HandleTextInput( &InputEvent ) && InputEvent.usEvent == KEY_DOWN ) + { + if( ( InputEvent.usParam == ESC ) || ( InputEvent.usParam == 'n') ) { - if( ( InputEvent.usParam == ESC ) || ( InputEvent.usParam == 'n') ) + if ( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) { - if ( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) - { - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_NO; - } - //OJW - 20090208 - Input Box - else if( gMsgBox.usFlags & MSG_BOX_FLAG_INPUTBOX ) - { // Exit messagebox gMsgBox.bHandled = MSG_BOX_RETURN_NO; - memset(gszMsgBoxInputString,0,sizeof(CHAR16)*255); - } } - - if( InputEvent.usParam == ENTER ) + //OJW - 20090208 - Input Box + else if( gMsgBox.usFlags & MSG_BOX_FLAG_INPUTBOX ) { - if ( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_NO; + memset(gszMsgBoxInputString,0,sizeof(CHAR16)*255); + } + } + + if( InputEvent.usParam == ENTER ) + { + if ( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) + { + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_YES; + } + else if( gMsgBox.usFlags & MSG_BOX_FLAG_OK ) + { + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_OK; + } + else if( gMsgBox.usFlags & MSG_BOX_FLAG_CONTINUESTOP ) + { + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_OK; + } + //OJW - 20090208 - Input Box + else if( gMsgBox.usFlags & MSG_BOX_FLAG_INPUTBOX ) + { + // retrieve the string from the text box + Get16BitStringFromField( 0, gszMsgBoxInputString, 255 ); // these indexes are based on the order created + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_OK; + } + } + + if( InputEvent.usParam == 'o' ) + { + if( gMsgBox.usFlags & MSG_BOX_FLAG_OK ) + { + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_OK; + } + } + if( InputEvent.usParam == 'y' ) + { + if( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) + { + // Exit messagebox + gMsgBox.bHandled = MSG_BOX_RETURN_YES; + } + } + + // box with four buttons + UINT32 four[8] = { + '1', + '2', + '3', + '4', + }; + + for ( INT8 i = 0; i < 4; ++i ) + { + if( InputEvent.usParam == four[i] ) + { + if ( gMsgBox.usFlags & MSG_BOX_FLAG_FOUR_NUMBERED_BUTTONS ) { // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_YES; - } - else if( gMsgBox.usFlags & MSG_BOX_FLAG_OK ) - { - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_OK; - } - else if( gMsgBox.usFlags & MSG_BOX_FLAG_CONTINUESTOP ) - { - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_OK; - } - //OJW - 20090208 - Input Box - else if( gMsgBox.usFlags & MSG_BOX_FLAG_INPUTBOX ) - { - // retrieve the string from the text box - Get16BitStringFromField( 0, gszMsgBoxInputString, 255 ); // these indexes are based on the order created - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_OK; - } - } - if( InputEvent.usParam == 'o' ) - { - if( gMsgBox.usFlags & MSG_BOX_FLAG_OK ) - { - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_OK; - } - } - if( InputEvent.usParam == 'y' ) - { - if( gMsgBox.usFlags & MSG_BOX_FLAG_YESNO ) - { - // Exit messagebox - gMsgBox.bHandled = MSG_BOX_RETURN_YES; - } - } - - // box with four buttons - UINT32 four[8] = { - '1', - '2', - '3', - '4', - }; - - for ( INT8 i = 0; i < 4; ++i ) - { - if( InputEvent.usParam == four[i] ) - { - if ( gMsgBox.usFlags & MSG_BOX_FLAG_FOUR_NUMBERED_BUTTONS ) - { - // Exit messagebox - gMsgBox.bHandled = 1; - } - } - } - - // box with eight buttons - UINT32 eighttxt[8] = { - '1', - '2', - '3', - '4', - 'A', - 'B', - 'C', - 'D', - }; - - for ( INT8 i = 0; i < 8; ++i ) - { - if( InputEvent.usParam == eighttxt[i] ) - { - if ( gMsgBox.usFlags & MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS ) - { - // Exit messagebox - gMsgBox.bHandled = 1; - } - } - } - - // box with sixteen buttons - UINT32 sixteentxt[16] = { - '1-A', - '1-B', - '1-C', - '1-D', - '2-A', - '2-B', - '2-C', - '2-D', - '3-A', - '3-B', - '3-C', - '3-D', - '4-A', - '4-B', - '4-C', - '4-D', - }; - - for ( INT8 i = 0; i < 16; ++i ) - { - if( InputEvent.usParam == sixteentxt[i] ) - { - if ( gMsgBox.usFlags & MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS ) - { - // Exit messagebox - gMsgBox.bHandled = 1; - } + gMsgBox.bHandled = 1; } } } + + // box with eight buttons + UINT32 eighttxt[8] = { + '1', + '2', + '3', + '4', + 'A', + 'B', + 'C', + 'D', + }; + + for ( INT8 i = 0; i < 8; ++i ) + { + if( InputEvent.usParam == eighttxt[i] ) + { + if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS ) + { + // Exit messagebox + gMsgBox.bHandled = 1; + } + } + } + + // box with sixteen buttons + UINT32 sixteentxt[16] = { + '1-A', + '1-B', + '1-C', + '1-D', + '2-A', + '2-B', + '2-C', + '2-D', + '3-A', + '3-B', + '3-C', + '3-D', + '4-A', + '4-B', + '4-C', + '4-D', + }; + + for ( INT8 i = 0; i < 16; ++i ) + { + if( InputEvent.usParam == sixteentxt[i] ) + { + if ( gMsgBox.usFlags & MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS ) + { + // Exit messagebox + gMsgBox.bHandled = 1; + } + } + } + } } if ( gMsgBox.bHandled ) diff --git a/MessageBoxScreen.h b/MessageBoxScreen.h index 5aa86eeb..630b6d29 100644 --- a/MessageBoxScreen.h +++ b/MessageBoxScreen.h @@ -15,12 +15,13 @@ #define MSG_BOX_FLAG_CONTINUESTOP 0x0100 // continue stop box #define MSG_BOX_FLAG_OKSKIP 0x0200 // Displays ok or skip (meanwhile) buttons #define MSG_BOX_FLAG_GENERICCONTRACT 0x0400 // displays contract buttoin + 2 user-defined text buttons -#define MSG_BOX_FLAG_GENERIC 0x0800 // 2 user-defined text buttons +#define MSG_BOX_FLAG_GENERIC_TWO_BUTTONS 0x0800 // 2 user-defined text buttons // OJW - Adding text chatbox -#define MSG_BOX_FLAG_INPUTBOX 0x1000 // has a text input field -// Flugente - added boxes for simultaneous defuse/detonate mechanism -#define MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS 0x2000 // Displays eight numbered buttons, 1-4, 10, 20, 30, 40. Numbers 1-4 respond to the normal detonate mechanism, rest to defusing -#define MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS 0x4000 // Displays sixteen numbered buttons, 1-16, for setting up a tripwire network and choosing both a detonation and defusing frequency +#define MSG_BOX_FLAG_INPUTBOX 0x1000 // has a text input field +// Flugente - added boxes with multiple buttons that can be renamed easily +#define MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS 0x2000 // Displays four numbered buttons with definable labels +#define MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS 0x4000 // Displays eight numbered buttons with definable labels +#define MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS 0x8000 // Displays sixteen numbered buttons with definable labels // message box return codes #define MSG_BOX_RETURN_OK 1 // ENTER or on OK button @@ -39,12 +40,16 @@ enum MSG_BOX_BASIC_SMALL_BUTTONS, MSG_BOX_IMP_STYLE, MSG_BOX_LAPTOP_DEFAULT, + MSG_BOX_BASIC_MEDIUM_BUTTONS, }; typedef void (*MSGBOX_CALLBACK)( UINT8 bExitValue ); +// Flugente: made an array for user-defined buttons +#define NUM_CUSTOM_BUTTONS 16 +extern CHAR16 gzUserDefinedButton[ NUM_CUSTOM_BUTTONS ][ 128 ]; typedef struct { diff --git a/Strategic/Merc Contract.cpp b/Strategic/Merc Contract.cpp index c5b8b7f6..063d0f60 100644 --- a/Strategic/Merc Contract.cpp +++ b/Strategic/Merc Contract.cpp @@ -1223,7 +1223,7 @@ void NotifyPlayerOfMercDepartureAndPromptEquipmentPlacement( SOLDIERTYPE *pSoldi if( fInSector == FALSE ) { // set up for mapscreen - DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, ( UINT16 )( ( fAddRehireButton ? MSG_BOX_FLAG_GENERICCONTRACT : MSG_BOX_FLAG_GENERIC ) ), MercDepartEquipmentBoxCallBack ); + DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, ( UINT16 )( ( fAddRehireButton ? MSG_BOX_FLAG_GENERICCONTRACT : MSG_BOX_FLAG_GENERIC_TWO_BUTTONS ) ), MercDepartEquipmentBoxCallBack ); } else { @@ -1236,7 +1236,7 @@ void NotifyPlayerOfMercDepartureAndPromptEquipmentPlacement( SOLDIERTYPE *pSoldi if( fInSector == FALSE ) { // set up for all otherscreens - DoMessageBox( MSG_BOX_BASIC_STYLE, sString, guiCurrentScreen, ( UINT16 ) ( MSG_BOX_FLAG_USE_CENTERING_RECT | ( fAddRehireButton ? MSG_BOX_FLAG_GENERICCONTRACT : MSG_BOX_FLAG_GENERIC ) ), MercDepartEquipmentBoxCallBack, &pCenteringRect ); + DoMessageBox( MSG_BOX_BASIC_STYLE, sString, guiCurrentScreen, ( UINT16 ) ( MSG_BOX_FLAG_USE_CENTERING_RECT | ( fAddRehireButton ? MSG_BOX_FLAG_GENERICCONTRACT : MSG_BOX_FLAG_GENERIC_TWO_BUTTONS ) ), MercDepartEquipmentBoxCallBack, &pCenteringRect ); } else { diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index 65140993..7f573c30 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -15451,7 +15451,7 @@ void CreateBullsEyeOrChopperSelectionPopup( void ) wcscpy( gzUserDefinedButton2, pHelicopterEtaStrings[ 9 ] ); // do a BULLSEYE/CHOPPER message box - DoScreenIndependantMessageBox( pHelicopterEtaStrings[ 7 ], MSG_BOX_FLAG_GENERIC, BullsEyeOrChopperSelectionPopupCallback ); + DoScreenIndependantMessageBox( pHelicopterEtaStrings[ 7 ], MSG_BOX_FLAG_GENERIC_TWO_BUTTONS, BullsEyeOrChopperSelectionPopupCallback ); } diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index f8890a46..98e89c7f 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -4543,27 +4543,33 @@ INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo ) void StartCorpseMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo, INT8 bLevel ) { gpTempSoldier = pSoldier; - - // determine what is possible with this corpse - BOOLEAN fDecapitate = TRUE; - BOOLEAN fTakeClothes = TRUE; - BOOLEAN fTakeCorpse = TRUE; - - if ( fDecapitate && fTakeClothes ) - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CORPSE_SELECTION_STR ], GAME_SCREEN, MSG_BOX_FLAG_FOUR_NUMBERED_BUTTONS, CorpseMessageBoxCallBack, NULL ); + + wcscpy( gzUserDefinedButton[0], TacticalStr[ DECAPITATE_STR ] ); + wcscpy( gzUserDefinedButton[1], TacticalStr[ GUT_STR ] ); + wcscpy( gzUserDefinedButton[2], TacticalStr[ TAKE_CLOTHES_STR ] ); + wcscpy( gzUserDefinedButton[3], TacticalStr[ TAKE_BODY_STR ] ); + DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ CORPSE_SELECTION_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS, CorpseMessageBoxCallBack, NULL ); } void StartBombMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo ) { //DBrot: More Rooms - //UINT8 ubRoom; UINT16 usRoom; gpTempSoldier = pSoldier; gsTempGridNo = sGridNo; if (Item[ pSoldier->inv[HANDPOS].usItem].remotetrigger ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_BOMB_OR_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_EIGHT_NUMBERED_BUTTONS, BombMessageBoxCallBack, NULL ); + wcscpy( gzUserDefinedButton[0], L"1" ); + wcscpy( gzUserDefinedButton[1], L"2" ); + wcscpy( gzUserDefinedButton[2], L"3" ); + wcscpy( gzUserDefinedButton[3], L"4" ); + wcscpy( gzUserDefinedButton[4], L"A" ); + wcscpy( gzUserDefinedButton[5], L"B" ); + wcscpy( gzUserDefinedButton[6], L"C" ); + wcscpy( gzUserDefinedButton[7], L"D" ); + + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_BOMB_OR_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_EIGHT_BUTTONS, BombMessageBoxCallBack, NULL ); } else if (pSoldier->inv[HANDPOS].usItem == REMOTETRIGGER) { @@ -4603,13 +4609,30 @@ void StartBombMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo ) } else if ( HasAttachmentOfClass( &(pSoldier->inv[HANDPOS]), AC_DEFUSE ) ) { + wcscpy( gzUserDefinedButton[0], L"1-A" ); + wcscpy( gzUserDefinedButton[1], L"1-B" ); + wcscpy( gzUserDefinedButton[2], L"1-C" ); + wcscpy( gzUserDefinedButton[3], L"1-D" ); + wcscpy( gzUserDefinedButton[4], L"2-A" ); + wcscpy( gzUserDefinedButton[5], L"2-B" ); + wcscpy( gzUserDefinedButton[6], L"2-C" ); + wcscpy( gzUserDefinedButton[7], L"2-D" ); + wcscpy( gzUserDefinedButton[8], L"3-A" ); + wcscpy( gzUserDefinedButton[9], L"3-B" ); + wcscpy( gzUserDefinedButton[10], L"3-C" ); + wcscpy( gzUserDefinedButton[11], L"3-D" ); + wcscpy( gzUserDefinedButton[12], L"4-A" ); + wcscpy( gzUserDefinedButton[13], L"4-B" ); + wcscpy( gzUserDefinedButton[14], L"4-C" ); + wcscpy( gzUserDefinedButton[15], L"4-D" ); + if ( HasAttachmentOfClass( &(pSoldier->inv[ HANDPOS ] ), (AC_DETONATOR ) ) ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS, BombMessageBoxCallBack, NULL ); + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS, BombMessageBoxCallBack, NULL ); } else if ( HasAttachmentOfClass( &(pSoldier->inv[ HANDPOS ] ), (AC_REMOTEDET) ) ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_REMOTE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS, BombMessageBoxCallBack, NULL ); + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_REMOTE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS, BombMessageBoxCallBack, NULL ); } else { @@ -4626,7 +4649,24 @@ void StartBombMessageBox( SOLDIERTYPE * pSoldier, INT32 sGridNo ) } else if ( Item[ (&(pSoldier->inv[HANDPOS]))->usItem ].tripwire == 1 ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_TRIPWIRE_NETWORK ], GAME_SCREEN, MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS, BombMessageBoxCallBack, NULL ); + wcscpy( gzUserDefinedButton[0], L"1-A" ); + wcscpy( gzUserDefinedButton[1], L"1-B" ); + wcscpy( gzUserDefinedButton[2], L"1-C" ); + wcscpy( gzUserDefinedButton[3], L"1-D" ); + wcscpy( gzUserDefinedButton[4], L"2-A" ); + wcscpy( gzUserDefinedButton[5], L"2-B" ); + wcscpy( gzUserDefinedButton[6], L"2-C" ); + wcscpy( gzUserDefinedButton[7], L"2-D" ); + wcscpy( gzUserDefinedButton[8], L"3-A" ); + wcscpy( gzUserDefinedButton[9], L"3-B" ); + wcscpy( gzUserDefinedButton[10], L"3-C" ); + wcscpy( gzUserDefinedButton[11], L"3-D" ); + wcscpy( gzUserDefinedButton[12], L"4-A" ); + wcscpy( gzUserDefinedButton[13], L"4-B" ); + wcscpy( gzUserDefinedButton[14], L"4-C" ); + wcscpy( gzUserDefinedButton[15], L"4-D" ); + + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_TRIPWIRE_NETWORK ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS, BombMessageBoxCallBack, NULL ); } } @@ -4639,7 +4679,11 @@ void StartTacticalFunctionSelectionMessageBox( SOLDIERTYPE * pSoldier, INT32 sGr gpTempSoldier = pSoldier; gsTempGridNo = sGridNo; - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ FUNCTION_SELECTION_STR ], GAME_SCREEN, MSG_BOX_FLAG_FOUR_NUMBERED_BUTTONS, TacticalFunctionSelectionMessageBoxCallBack, NULL ); + wcscpy( gzUserDefinedButton[0], TacticalStr[ FILL_CANTEEN_STR ] ); + wcscpy( gzUserDefinedButton[1], TacticalStr[ CLEAN_ONE_GUN_STR ] ); + wcscpy( gzUserDefinedButton[2], TacticalStr[ CLEAN_ALL_GUNS_STR ] ); + wcscpy( gzUserDefinedButton[3], TacticalStr[ TAKE_OFF_CLOTHES_STR ] ); + DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ FUNCTION_SELECTION_STR ], GAME_SCREEN, MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS, TacticalFunctionSelectionMessageBoxCallBack, NULL ); } void CleanWeapons( BOOLEAN fCleanAll ) diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index daa94de9..cc83f3d3 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -13049,13 +13049,30 @@ void TransformationMenuPopup_Arm( OBJECTTYPE* pObj ) } else if ( HasAttachmentOfClass( gpItemDescObject, (AC_DEFUSE ) ) ) { + wcscpy( gzUserDefinedButton[0], L"1-A" ); + wcscpy( gzUserDefinedButton[1], L"1-B" ); + wcscpy( gzUserDefinedButton[2], L"1-C" ); + wcscpy( gzUserDefinedButton[3], L"1-D" ); + wcscpy( gzUserDefinedButton[4], L"2-A" ); + wcscpy( gzUserDefinedButton[5], L"2-B" ); + wcscpy( gzUserDefinedButton[6], L"2-C" ); + wcscpy( gzUserDefinedButton[7], L"2-D" ); + wcscpy( gzUserDefinedButton[8], L"3-A" ); + wcscpy( gzUserDefinedButton[9], L"3-B" ); + wcscpy( gzUserDefinedButton[10], L"3-C" ); + wcscpy( gzUserDefinedButton[11], L"3-D" ); + wcscpy( gzUserDefinedButton[12], L"4-A" ); + wcscpy( gzUserDefinedButton[13], L"4-B" ); + wcscpy( gzUserDefinedButton[14], L"4-C" ); + wcscpy( gzUserDefinedButton[15], L"4-D" ); + if ( HasAttachmentOfClass( gpItemDescObject, (AC_DETONATOR ) ) ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], screen, MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS, BombInventoryMessageBoxCallBack, NULL ); + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], screen, MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS, BombInventoryMessageBoxCallBack, NULL ); } else if ( HasAttachmentOfClass( gpItemDescObject, (AC_REMOTEDET ) ) ) { - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_REMOTE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], screen, MSG_BOX_FLAG_SIXTEEN_NUMBERED_BUTTONS, BombInventoryMessageBoxCallBack, NULL ); + DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ CHOOSE_REMOTE_DETONATE_AND_REMOTE_DEFUSE_FREQUENCY_STR ], screen, MSG_BOX_FLAG_GENERIC_SIXTEEN_BUTTONS, BombInventoryMessageBoxCallBack, NULL ); } } else if ( HasAttachmentOfClass( gpItemDescObject, (AC_DETONATOR ) ) ) diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 097fd53a..f6965874 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -10213,5 +10213,9 @@ void HandleSurrenderOffer( SOLDIERTYPE* pSoldier ) prisonerdialoguetargetID = pSoldier->ubID; // open a dialogue box and see wether we really want to offer this, or just talk - DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, TacticalStr[ PRISONER_OFFER_SURRENDER ], guiCurrentScreen, ( UINT8 )MSG_BOX_FLAG_FOUR_NUMBERED_BUTTONS, PrisonerSurrenderMessageBoxCallBack, NULL ); + wcscpy( gzUserDefinedButton[0], TacticalStr[ PRISONER_DEMAND_SURRENDER_STR ] ); + wcscpy( gzUserDefinedButton[1], TacticalStr[ PRISONER_OFFER_SURRENDER_STR ] ); + wcscpy( gzUserDefinedButton[2], TacticalStr[ PRISONER_TALK_STR ] ); + wcscpy( gzUserDefinedButton[3], TacticalStr[ PRISONER_TALK_STR ] ); + DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ PRISONER_OFFER_SURRENDER ], guiCurrentScreen, MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS, PrisonerSurrenderMessageBoxCallBack, NULL ); } diff --git a/TileEngine/Explosion Control.cpp b/TileEngine/Explosion Control.cpp index 6ff499d8..2df5dce3 100644 --- a/TileEngine/Explosion Control.cpp +++ b/TileEngine/Explosion Control.cpp @@ -4229,6 +4229,10 @@ void SetOffBombsByFrequency( UINT8 ubID, INT8 bFrequency ) // set back ubWireNetworkFlag and bDefuseFrequency, but not the direction... bomb is still aimed, it is just turned off (*pObj)[0]->data.ubWireNetworkFlag = 0; (*pObj)[0]->data.bDefuseFrequency = 0; + (*pObj)[0]->data.misc.bDelay = 0; + (*pObj)[0]->data.misc.bFrequency = 0; + (*pObj)[0]->data.misc.ubBombOwner = NOBODY; + (*pObj)[0]->data.misc.bDetonatorType = 0; //create a new item: copy the old item OBJECTTYPE newbombitem( *pObj ); diff --git a/Utils/Text.h b/Utils/Text.h index e1609375..0821b516 100644 --- a/Utils/Text.h +++ b/Utils/Text.h @@ -930,11 +930,22 @@ enum MERC_VITAL_STATS_WITH_POISON_AND_FOOD_POPUPTEXT, FUNCTION_SELECTION_STR, + FILL_CANTEEN_STR, + CLEAN_ONE_GUN_STR, + CLEAN_ALL_GUNS_STR, + TAKE_OFF_CLOTHES_STR, CORPSE_SELECTION_STR, + DECAPITATE_STR, + GUT_STR, + TAKE_CLOTHES_STR, + TAKE_BODY_STR, WEAPON_CLEANING_STR, PRISONER_NO_PRISONS_STR, PRISONER_DECIDE_STR, PRISONER_OFFER_SURRENDER, + PRISONER_DEMAND_SURRENDER_STR, + PRISONER_OFFER_SURRENDER_STR, + PRISONER_TALK_STR, TEXT_NUM_TACTICAL_STR }; diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index 2d6d3a58..184453b4 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -2907,20 +2907,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"生命: %d/%d\n精力: %d/%d\n士气: %s\n口渴: %d%s\n饥饿: %d%s", L"生命: %d/%d\n毒性: %d/%d\n精力: %d/%d\n士气: %s\n口渴: %d%s\n饥饿: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - 装满水壶 2 - 清理枪支污垢 3 - 清理所有枪支污垢 4 - 脱掉衣服", //L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - 砍掉头颅 2 - 取出内脏 3 - 脱掉衣服 4 - 拿起尸体", //L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", // Flugente: weapon cleaning - L"%s 清理了 %s", //L"%s cleaned %s", + L"%s cleaned %s", // added by Flugente: decide what to do with prisoners - L"你现在没有可用的监狱关押这些俘虏,你不得不放他们走。", //L"You have no prison for these prisoners, you have to let them go", - L"Yes - 将俘虏送入监狱 No - 放俘虏离开这里", //L"Yes - Send prisoners to jail No - Let them go", - L"劝说敌人投降?", //L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"You have no prison for these prisoners, you have to let them go", + L"Yes - Send prisoners to jail No - Let them go", + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index c6627d4a..d600181a 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -2904,20 +2904,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index 5a7708bc..86e4182f 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -2907,10 +2907,18 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", // Flugente: weapon cleaning L"%s cleaned %s", @@ -2918,7 +2926,10 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 968af1e7..f292d02f 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -2911,20 +2911,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index f3886ca4..53c915c3 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -2909,20 +2909,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Gesundheit: %d/%d\nAusdauer: %d/%d\nMoral: %s\nWasser: %d%s\nEssen: %d%s", L"Ges.: %d/%d\nGift: %d/%d\nAusd.: %d/%d\nMoral: %s\nWasser: %d%s\nEssen: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index 2606854c..27391038 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -2899,20 +2899,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 96d179cc..d50847b8 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -2914,20 +2914,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index 745072c1..8b5feb6f 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -2907,20 +2907,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface. diff --git a/Utils/_TaiwaneseText.cpp b/Utils/_TaiwaneseText.cpp index daac7188..4690dc32 100644 --- a/Utils/_TaiwaneseText.cpp +++ b/Utils/_TaiwaneseText.cpp @@ -2908,20 +2908,30 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] = L"Health: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", L"Health: %d/%d\nPoison: %d/%d\nEnergy: %d/%d\nMorale: %s\nWater: %d%s\nFood: %d%s", - // added by Flugente: selection of a function to call in tactical - L"1 - Fill Canteens 2 - Clean one gun 3 - Clean all guns 4 - Take off clothes", // TODO.Translate + // added by Flugente: selection of a function to call in tactical // TODO.Translate + L"What do you want to do?", + L"Fill canteens", + L"Clean gun", + L"Clean all guns", + L"Take off clothes", // added by Flugente: decide what to do with the corpses - L"1 - Decapitate 2 - Gut 3 - Take Clothes 4 - Take Body", // TODO.Translate + L"What do you want to do with the body?", + L"Decapitate", + L"Gut", + L"Take Clothes", + L"Take Body", - // Flugente: weapon cleaning // TODO.Translate + // Flugente: weapon cleaning L"%s cleaned %s", - // added by Flugente: decide what to do with prisoners // TODO.Translate + // added by Flugente: decide what to do with prisoners L"You have no prison for these prisoners, you have to let them go", L"Yes - Send prisoners to jail No - Let them go", - L"Ask enemy for surrender?", - L"1 - Ask enemy for surrender 2 - Surrender to enemy 3,4 - Talk", // TODO.Translate + L"What do you want to do?", + L"Demand surrender", + L"Offer surrender", + L"Talk", }; //Varying helptext explains (for the "Go to Sector/Map" checkbox) what will happen given different circumstances in the "exiting sector" interface.