mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- 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
This commit is contained in:
+194
-182
@@ -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 )
|
||||
|
||||
+10
-5
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
+58
-14
@@ -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 )
|
||||
|
||||
@@ -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 ) ) )
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
+18
-8
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
+14
-3
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
+17
-7
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user