mirror of
https://github.com/1dot13/source.git
synced 2026-08-19 14:20:30 +02:00
*** MERGED source code from development trunk revision 4890 up to latest current revision 5105 ***
Development Trunk (now obsolete): https://ja2svn.dyndns.org/source/ja2/branches/Wanne/JA2%201.13%20MP A detailed list of all the features (changes) is visible in the history log of the development trunk: INFO: There will be no further development in the development source trunk, so is obsolete from now on! This commit contains the following features (bugfixes are not listed): - New Feature: Show merc ranks in Strategy Screen before merc name o Toggle on/off in the ingame options screen o For each experience level (0-10) there are defined rank names in the language specific text files o Additional language text that is not translated yet is marked with // TODO.Translate - New Feature: Faster Bobby Ray Shipments o This feature is selectable in the ja2_options.ini o When activated Bobby Ray shipments will be really fast -> Overnight Express: 5 - 7 hours -> Air Service: 10, 12 or 14 hours -> Standard Service: 15, 18 or 21 hours o In a multiplayer game, this feature is disabled (because shipment arrive immediately in the destination sector) - New Feature: AP cost for manipulating the merc inventory o This feature is selectable in the start new game screen o For example, putting a weapon from hand in the backpack costs APs o The AP costs are defined in the APBPConstants.ini o In a multiplayer game, this feature is disabled - New Feature: Added possibility to set individual Gear Kit names o Set individual names in the optional new tag <mGearKitName> inside the <GEARKIT> root element (File: TableData\MercStartingGear.xml) - New Feature: Externalized the maximum purchase amount (JA2 vanilla: 10) for Bobby Rays purchases per shipment o Define the max. amount in the ja2_options.ini: BOBBY_RAY_MAX_PURCHASE_AMOUNT, Range: 10 - 100) o Nice scrolling bars to scroll through all the purchases - New Feature: Now it is possible to walk on "water" tiles or handle those tiles like "normal" tiles o (instead of showing the swimming animation and counting the APs for swimming), when the soldier is located on the second level (level > 0) - New Feature: Externalized AIM Veterans laptop site o Add maximum of 4 pages o Add new AIM to veterans page, and remove AIM from veterans page. o New XML file: OldAIMArchive.xml (language specific XML files: *.OldAIMArchive.xml) - New Feature: Added possibility to choose from 254 IMP faces o Modified IMPPortraits.xml o Added new GameDir folder "IMPFaces" which contains the IMP face portraits o Moved IMP faces in the new "IMPFaces" folder - New Feature: ARSP - All Resolution Support Project o See here: http://www.ja-galaxy-forum.com/board/ubbthreads.php?ubb=showflat&Number=298698&page=1 o Support any kind of screen resolution. This works by choosing the matching full supported resolution (640x480, 800x600, 1024x768) and then centering the graphics o See ja2.ini for defining the screen resolution - New Feature: AI Turn Speed Up (FF-MOD) o see here: http://www.ja-galaxy-forum.com/board/ubbthreads.php?ubb=showflat&Number=298699#Post298699 o When this feature is activated it allows fast enemy turns o New entry in ja2.ini to enable this feature: HIGHSPEED_TIMER = TRUE o Turn on/off auto fast turns in ingame options o New ja2_options.ini settings for fine tuning: [Clock Settings] ini block - New Feature: "Lock" / "Release" mouse cursor in tactical windowed mode, so the mouse can stay within window boundary o This is very helpful for doing scrolling with the mouse (by moving the mouse to the window edge) in windowed mode o You can toggle on/off the feature by pressing CTRL + Z. It is also possible to press CTRL + Y. So the user can decide which fits better :) o Whenever you toggle on/off a screen message appears on the tactical log to notify the player - New Feature: Weapon overheating o Basically, every shot fired from a gun increases its temperature. On higher temperatures, the gun jams more frequently o On/off toggle in the ingame options o Graphical thermometer indication on the weapon picture o New ja2_options.ini section with a few options, Section: [Tactical Weapon Overheating Settings] o XML changes (New Tags) --> AmmoTypes.xml: <temperatureModificator> --> Items.xml: <barrel>, <usOverheatingCooldownFactor> --> Weapons.xml: <usOverheatingJamThreshold>, <usOverheatingDamageThreshold>, <usOverheatingSingleShotTemperature> o Added a few barells to Items.xml (end of the file) o more infos: http://www.ja-galaxy-forum.com/board/ubbthreads.php?ubb=showflat&Number=301059&page=1 - New Feature: Resting weapons on a surfaces o You can now rest your weapon on crates, low walls, rocks, debris, open windows etc. while you are crouched. Resting will give yu the superior gun handling modifiers from PRONE position. o A little 'A' on your gun indicates if you are resting it or not. o Both settings can be turned on and off in Ja2_Options.ini under 'Tactical Gameplay Settings' - New Feature: Externalized option on whether mercs can exit sector using grid exit in turn based mode o new ja2_options.ini property: GRID_EXIT_IN_TURNBASED o This ini setting does not affect leaving sectors on map edges - Rework/Update: Ammo boxes and Ammo crates o Ammo crate items added for remaining calibers. Tweaked prices to correspond to magazines, tweaked capacities and weights to be reasonable (~800 or less). o Shift-R reload now looks at both boxes and crates in sector items and merc's inventory to reload, and tops off magazines in inventory as well. Only possible outside of combat. o Ctrl-Shift-A still creates crates as per usual, with some fixes to ensure all ammo is caught on the first press. o Shift-A now creates ammo boxes in the same loop. They mostly behave like crates, but fit in mercs inventories. o Ammo boxes are available to purchase at BR and tony, sam, etc. Individual magazines/drums/etc are no longer available. o Removed ammo crate xml tag. Added ubMagType tag to Magazines array. This allows us to differentiate between magazines, bullets, boxes and crates. o Changed ammo filtering in BR's to display boxes appropriately. Added back the "Mag:" display (changed text to "Size:") o Added ja2set.dat.xml file (WF map version in WF maps folder) to be used instead of ja2set.dat file (ja2.ini setting added) For now, if you want to play vanilla instead, just change the setting in the ini (see comments in file). o Added P4-P9Items image files (up to 5k images each) and tileslots. 1.13 core items will continue to use Guns and P1-P3Items for the foreseeable future. P4-P9 can be used by customizers/modders to avoid conflicts with Guns/P1-P3 items. TODO: Need to discuss a strategy for this in the forums. o Added in Ambient/0.bad and 32.bad to avoid an exception in the code. o Updated the XML Editor o Standardized the text on all the ammo items. - New Multiplayer Feature: Sharing same FOV (field of view) in a coop/team-dm (for friendly teams) game o You will also see enemies, that your teammate sees git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5108 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -35,24 +35,24 @@ void CreateLoadingScreenProgressBar()
|
||||
// Special case->show small image centered
|
||||
if (bShowSmallImage == TRUE)
|
||||
{
|
||||
if (iResolution > 0)
|
||||
if (iResolution >= _800x600)
|
||||
{
|
||||
CreateProgressBar(0, iScreenWidthOffset + 162, iScreenHeightOffset + 427, iScreenWidthOffset + 480, iScreenHeightOffset + 443);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iResolution == 0)
|
||||
if (iResolution >= _640x480 && iResolution < _800x600)
|
||||
{
|
||||
CreateProgressBar(0, 162, 427, 480, 443);
|
||||
}
|
||||
else if (iResolution == 1)
|
||||
else if (iResolution < _1024x768)
|
||||
{
|
||||
CreateProgressBar(0, 202, 533, 600, 554);
|
||||
CreateProgressBar(0, (202 + (SCREEN_WIDTH - 800)/2), 533 + ((SCREEN_HEIGHT - 600) / 2), 600 + ((SCREEN_WIDTH - 800) / 2), 554 + ((SCREEN_HEIGHT - 600) / 2));
|
||||
}
|
||||
else if (iResolution == 2)
|
||||
else
|
||||
{
|
||||
CreateProgressBar(0, 259, 683, 767, 708);
|
||||
CreateProgressBar(0, 259 + ((SCREEN_WIDTH - 1024) / 2), 683 + ((SCREEN_HEIGHT - 768) / 2), 767 + ((SCREEN_WIDTH - 1024) / 2), 708 + ((SCREEN_HEIGHT - 768) / 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -302,8 +302,8 @@ bool Loc::ExportStrings()
|
||||
ExportSection(props, L"MoneyWithdrawMessage", Loc::gzMoneyWithdrawMessageText, 0, TEXT_NUM_MONEY_WITHDRAW);
|
||||
|
||||
ExportSection(props, L"Copyright", Loc::gzCopyrightText, 0, 1);
|
||||
ExportSection(props, L"OptionsToggle", Loc::zOptionsToggleText, 0, 48);
|
||||
ExportSection(props, L"OptionsScreenHelp", Loc::zOptionsScreenHelpText, 0, 48);
|
||||
ExportSection(props, L"OptionsToggle", Loc::zOptionsToggleText, 0, 49);
|
||||
ExportSection(props, L"OptionsScreenHelp", Loc::zOptionsScreenHelpText, 0, 49);
|
||||
ExportSection(props, L"GIOScreen", Loc::gzGIOScreenText, 0, TEXT_NUM_GIO_TEXT);
|
||||
ExportSection(props, L"MPJScreen", Loc::gzMPJScreenText, 0, TEXT_NUM_MPJ_TEXT);
|
||||
ExportSection(props, L"MPJHelpText", Loc::gzMPJHelpText, 0, 10);
|
||||
|
||||
@@ -73,6 +73,14 @@ CIniReader::CIniReader(const STR8 szFileName)
|
||||
rev_order.pop();
|
||||
}
|
||||
}
|
||||
// check for override file
|
||||
{
|
||||
CHAR8 OvrFileName[256], Drive[128], Dir[128], Name[128], Ext[128];
|
||||
_splitpath(szFileName, Drive, Dir, Name, Ext);
|
||||
_makepath(OvrFileName, Drive, Dir, Name, "Override");
|
||||
if(getVFS()->fileExists(OvrFileName))
|
||||
m_oProps.initFromIniFile(vfs::Path(OvrFileName));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
#ifdef PRECOMPILEDHEADERS
|
||||
#include "Utils All.h"
|
||||
#else
|
||||
#include "KeyMap.h"
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
// Enumeration support
|
||||
typedef struct EnumLookupType {
|
||||
int value;
|
||||
const STR name;
|
||||
} EnumLookupType;
|
||||
|
||||
static const STR EnumToString(int value, const EnumLookupType *table);
|
||||
static int StringToEnum(const STR value, const EnumLookupType *table);
|
||||
static int EnumToIndex(int value, const EnumLookupType *table);
|
||||
static inline STR Trim(STR&p);
|
||||
|
||||
static EnumLookupType gKeyTable[] =
|
||||
{
|
||||
{VK_LBUTTON, "LBUTTON"},
|
||||
{VK_RBUTTON, "RBUTTON"},
|
||||
{VK_CANCEL, "CANCEL"},
|
||||
{VK_MBUTTON, "MBUTTON"},
|
||||
#if(_WIN32_WINNT >= 0x0500)
|
||||
{VK_XBUTTON1, "XBUTTON1"},
|
||||
{VK_XBUTTON2, "XBUTTON2"},
|
||||
#endif /* _WIN32_WINNT >= 0x0500 */
|
||||
{VK_BACK, "BACK"},
|
||||
{VK_TAB, "TAB"},
|
||||
{VK_CLEAR, "CLEAR"},
|
||||
{VK_RETURN, "RETURN"},
|
||||
{VK_SHIFT, "SHIFT"},
|
||||
{VK_CONTROL, "CONTROL"},
|
||||
{VK_MENU, "MENU"},
|
||||
{VK_PAUSE, "PAUSE"},
|
||||
{VK_CAPITAL, "CAPITAL"},
|
||||
{VK_KANA, "KANA"},
|
||||
{VK_HANGEUL, "HANGEUL"},
|
||||
{VK_HANGUL, "HANGUL"},
|
||||
{VK_JUNJA, "JUNJA"},
|
||||
{VK_FINAL, "FINAL"},
|
||||
{VK_HANJA, "HANJA"},
|
||||
{VK_KANJI, "KANJI"},
|
||||
{VK_ESCAPE, "ESCAPE"},
|
||||
{VK_CONVERT, "CONVERT"},
|
||||
{VK_NONCONVERT, "NONCONVERT"},
|
||||
{VK_ACCEPT, "ACCEPT"},
|
||||
{VK_MODECHANGE, "MODECHANGE"},
|
||||
{VK_SPACE, "SPACE"},
|
||||
{VK_PRIOR, "PRIOR"},
|
||||
{VK_NEXT, "NEXT"},
|
||||
{VK_END, "END"},
|
||||
{VK_HOME, "HOME"},
|
||||
{VK_LEFT, "LEFT"},
|
||||
{VK_UP, "UP"},
|
||||
{VK_RIGHT, "RIGHT"},
|
||||
{VK_DOWN, "DOWN"},
|
||||
{VK_SELECT, "SELECT"},
|
||||
{VK_PRINT, "PRINT"},
|
||||
{VK_EXECUTE, "EXECUTE"},
|
||||
{VK_SNAPSHOT, "SNAPSHOT"},
|
||||
{VK_INSERT, "INSERT"},
|
||||
{VK_DELETE, "DELETE"},
|
||||
{VK_HELP, "HELP"},
|
||||
|
||||
{ '0', "0"},
|
||||
{ '1', "1"},
|
||||
{ '2', "2"},
|
||||
{ '3', "3"},
|
||||
{ '4', "4"},
|
||||
{ '5', "5"},
|
||||
{ '6', "6"},
|
||||
{ '7', "7"},
|
||||
{ '8', "8"},
|
||||
{ '9', "9"},
|
||||
{ ':', ":"},
|
||||
{ ';', ";"},
|
||||
{ '<', "<"},
|
||||
{ '=', "="},
|
||||
{ '>', ">"},
|
||||
{ '?', "?"},
|
||||
{ 'A', "A"},
|
||||
{ 'B', "B"},
|
||||
{ 'C', "C"},
|
||||
{ 'D', "D"},
|
||||
{ 'E', "E"},
|
||||
{ 'F', "F"},
|
||||
{ 'G', "G"},
|
||||
{ 'H', "H"},
|
||||
{ 'I', "I"},
|
||||
{ 'J', "J"},
|
||||
{ 'K', "K"},
|
||||
{ 'L', "L"},
|
||||
{ 'M', "M"},
|
||||
{ 'N', "N"},
|
||||
{ 'O', "O"},
|
||||
{ 'P', "P"},
|
||||
{ 'Q', "Q"},
|
||||
{ 'R', "R"},
|
||||
{ 'S', "S"},
|
||||
{ 'T', "T"},
|
||||
{ 'U', "U"},
|
||||
{ 'V', "V"},
|
||||
{ 'W', "W"},
|
||||
{ 'X', "X"},
|
||||
{ 'Y', "Y"},
|
||||
{ 'Z', "Z"},
|
||||
|
||||
{VK_LWIN, "LWIN"},
|
||||
{VK_RWIN, "RWIN"},
|
||||
{VK_APPS, "APPS"},
|
||||
{VK_SLEEP, "SLEEP"},
|
||||
{VK_NUMPAD0, "NUMPAD0"},
|
||||
{VK_NUMPAD1, "NUMPAD1"},
|
||||
{VK_NUMPAD2, "NUMPAD2"},
|
||||
{VK_NUMPAD3, "NUMPAD3"},
|
||||
{VK_NUMPAD4, "NUMPAD4"},
|
||||
{VK_NUMPAD5, "NUMPAD5"},
|
||||
{VK_NUMPAD6, "NUMPAD6"},
|
||||
{VK_NUMPAD7, "NUMPAD7"},
|
||||
{VK_NUMPAD8, "NUMPAD8"},
|
||||
{VK_NUMPAD9, "NUMPAD9"},
|
||||
{VK_MULTIPLY, "MULTIPLY"},
|
||||
{VK_ADD, "ADD"},
|
||||
{VK_SEPARATOR, "SEPARATOR"},
|
||||
{VK_SUBTRACT, "SUBTRACT"},
|
||||
{VK_DECIMAL, "DECIMAL"},
|
||||
{VK_DIVIDE, "DIVIDE"},
|
||||
{VK_F1, "F1"},
|
||||
{VK_F2, "F2"},
|
||||
{VK_F3, "F3"},
|
||||
{VK_F4, "F4"},
|
||||
{VK_F5, "F5"},
|
||||
{VK_F6, "F6"},
|
||||
{VK_F7, "F7"},
|
||||
{VK_F8, "F8"},
|
||||
{VK_F9, "F9"},
|
||||
{VK_F10, "F10"},
|
||||
{VK_F11, "F11"},
|
||||
{VK_F12, "F12"},
|
||||
{VK_F13, "F13"},
|
||||
{VK_F14, "F14"},
|
||||
{VK_F15, "F15"},
|
||||
{VK_F16, "F16"},
|
||||
{VK_F17, "F17"},
|
||||
{VK_F18, "F18"},
|
||||
{VK_F19, "F19"},
|
||||
{VK_F20, "F20"},
|
||||
{VK_F21, "F21"},
|
||||
{VK_F22, "F22"},
|
||||
{VK_F23, "F23"},
|
||||
{VK_F24, "F24"},
|
||||
{VK_NUMLOCK, "NUMLOCK"},
|
||||
{VK_SCROLL, "SCROLL"},
|
||||
{VK_OEM_NEC_EQUAL, "OEM_NEC_EQUAL"},
|
||||
{VK_OEM_FJ_JISHO, "OEM_FJ_JISHO"},
|
||||
{VK_OEM_FJ_MASSHOU, "OEM_FJ_MASSHOU"},
|
||||
{VK_OEM_FJ_TOUROKU, "OEM_FJ_TOUROKU"},
|
||||
{VK_OEM_FJ_LOYA, "OEM_FJ_LOYA"},
|
||||
{VK_OEM_FJ_ROYA, "OEM_FJ_ROYA"},
|
||||
{VK_LSHIFT, "LSHIFT"},
|
||||
{VK_RSHIFT, "RSHIFT"},
|
||||
{VK_LCONTROL, "LCONTROL"},
|
||||
{VK_RCONTROL, "RCONTROL"},
|
||||
{VK_LMENU, "LMENU"},
|
||||
{VK_RMENU, "RMENU"},
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0500)
|
||||
{VK_BROWSER_BACK, "BROWSER_BACK"},
|
||||
{VK_BROWSER_FORWARD, "BROWSER_FORWARD"},
|
||||
{VK_BROWSER_REFRESH, "BROWSER_REFRESH"},
|
||||
{VK_BROWSER_STOP, "BROWSER_STOP"},
|
||||
{VK_BROWSER_SEARCH, "BROWSER_SEARCH"},
|
||||
{VK_BROWSER_FAVORITES, "BROWSER_FAVORITES"},
|
||||
{VK_BROWSER_HOME, "BROWSER_HOME"},
|
||||
|
||||
{VK_VOLUME_MUTE, "VOLUME_MUTE"},
|
||||
{VK_VOLUME_DOWN, "VOLUME_DOWN"},
|
||||
{VK_VOLUME_UP, "VOLUME_UP"},
|
||||
{VK_MEDIA_NEXT_TRACK, "MEDIA_NEXT_TRACK"},
|
||||
{VK_MEDIA_PREV_TRACK, "MEDIA_PREV_TRACK"},
|
||||
{VK_MEDIA_STOP, "MEDIA_STOP"},
|
||||
{VK_MEDIA_PLAY_PAUSE, "MEDIA_PLAY_PAUSE"},
|
||||
{VK_LAUNCH_MAIL, "LAUNCH_MAIL"},
|
||||
{VK_LAUNCH_MEDIA_SELECT, "LAUNCH_MEDIA_SELECT"},
|
||||
{VK_LAUNCH_APP1, "LAUNCH_APP1"},
|
||||
{VK_LAUNCH_APP2, "LAUNCH_APP2"},
|
||||
|
||||
#endif /* _WIN32_WINNT >= 0x0500 */
|
||||
|
||||
{VK_OEM_1, "OEM_1"},
|
||||
{VK_OEM_PLUS, "OEM_PLUS"},
|
||||
{VK_OEM_COMMA, "OEM_COMMA"},
|
||||
{VK_OEM_MINUS, "OEM_MINUS"},
|
||||
{VK_OEM_PERIOD, "OEM_PERIOD"},
|
||||
{VK_OEM_2, "OEM_2"},
|
||||
{VK_OEM_3, "OEM_3"},
|
||||
{VK_OEM_4, "OEM_4"},
|
||||
{VK_OEM_5, "OEM_5"},
|
||||
{VK_OEM_6, "OEM_6"},
|
||||
{VK_OEM_7, "OEM_7"},
|
||||
{VK_OEM_8, "OEM_8"},
|
||||
{VK_OEM_AX, "OEM_AX"},
|
||||
{VK_OEM_102, "OEM_102"},
|
||||
{VK_ICO_HELP, "ICO_HELP"},
|
||||
{VK_ICO_00, "ICO_00"},
|
||||
#if(WINVER >= 0x0400)
|
||||
{VK_PROCESSKEY, "PROCESSKEY"},
|
||||
#endif /* WINVER >= 0x0400 */
|
||||
{VK_ICO_CLEAR, "ICO_CLEAR"},
|
||||
#if(_WIN32_WINNT >= 0x0500)
|
||||
{VK_PACKET, "PACKET"},
|
||||
#endif /* _WIN32_WINNT >= 0x0500 */
|
||||
{VK_OEM_RESET, "OEM_RESET"},
|
||||
{VK_OEM_JUMP, "OEM_JUMP"},
|
||||
{VK_OEM_PA1, "OEM_PA1"},
|
||||
{VK_OEM_PA2, "OEM_PA2"},
|
||||
{VK_OEM_PA3, "OEM_PA3"},
|
||||
{VK_OEM_WSCTRL, "OEM_WSCTRL"},
|
||||
{VK_OEM_CUSEL, "OEM_CUSEL"},
|
||||
{VK_OEM_ATTN, "OEM_ATTN"},
|
||||
{VK_OEM_FINISH, "OEM_FINISH"},
|
||||
{VK_OEM_COPY, "OEM_COPY"},
|
||||
{VK_OEM_AUTO, "OEM_AUTO"},
|
||||
{VK_OEM_ENLW, "OEM_ENLW"},
|
||||
{VK_OEM_BACKTAB, "OEM_BACKTAB"},
|
||||
{VK_ATTN, "ATTN"},
|
||||
{VK_CRSEL, "CRSEL"},
|
||||
{VK_EXSEL, "EXSEL"},
|
||||
{VK_EREOF, "EREOF"},
|
||||
{VK_PLAY, "PLAY"},
|
||||
{VK_ZOOM, "ZOOM"},
|
||||
{VK_NONAME, "NONAME"},
|
||||
{VK_PA1, "PA1"},
|
||||
{VK_OEM_CLEAR, "OEM_CLEAR"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Enumeration Support
|
||||
const STR EnumToString(int value, const EnumLookupType *table) {
|
||||
for (const EnumLookupType *itr = table; itr->name != NULL; ++itr) {
|
||||
if (itr->value == value) return itr->name;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int StringToEnum(const STR value, const EnumLookupType *table) {
|
||||
if (NULL == value || 0 == *value)
|
||||
return 0;
|
||||
|
||||
for (const EnumLookupType *itr = table; itr->name != NULL; ++itr) {
|
||||
if (0 == _stricmp(value, itr->name))
|
||||
return itr->value;
|
||||
}
|
||||
STR end = NULL;
|
||||
return (int)strtol(value, &end, 0);
|
||||
}
|
||||
|
||||
int EnumToIndex(int value, const EnumLookupType *table) {
|
||||
int i = 0;
|
||||
for (const EnumLookupType *itr = table; itr->name != NULL; ++itr, ++i) {
|
||||
if (itr->value == value) return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline STR Trim(STR &p) {
|
||||
while(isspace(*p)) *p++ = 0;
|
||||
TCHAR *e = p + strlen(p) - 1;
|
||||
while (e > p && isspace(*e)) *e-- = 0;
|
||||
return p;
|
||||
}
|
||||
|
||||
// Checks VK for each byte in the integer, all must be true to return TRUE.
|
||||
extern BOOLEAN IsKeyPressed(int value)
|
||||
{
|
||||
if (!value)
|
||||
return 0;
|
||||
|
||||
BOOLEAN ok = 0;
|
||||
UINT8* ptr = (UINT8*)&value;
|
||||
int len = sizeof(int) / sizeof(UINT8);
|
||||
for (int i=0;i<len && ptr[i];++i)
|
||||
{
|
||||
if ( 0 != GetAsyncKeyState( (INT32)ptr[i] ) )
|
||||
ok = 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
extern int ParseKeyString(const STR value)
|
||||
{
|
||||
STRING512 buffer;
|
||||
strncpy(buffer, value, _countof(buffer));
|
||||
buffer[_countof(buffer)-1] = 0;
|
||||
int iresult = 0;
|
||||
int idx = 0;
|
||||
UINT8* ptr = (UINT8*)&iresult;
|
||||
const STR sDelims = "|+";
|
||||
for ( STR key = strtok(buffer, sDelims); key != NULL; key = strtok(NULL, sDelims) )
|
||||
{
|
||||
Trim(key);
|
||||
int ichr = StringToEnum(key, gKeyTable);
|
||||
if (ichr > 0 && ichr <= 0xFF)
|
||||
ptr[idx++] = (UINT8)ichr;
|
||||
}
|
||||
return iresult;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
#include <Types.h>
|
||||
|
||||
extern int ParseKeyString(const STR value);
|
||||
extern BOOLEAN IsKeyPressed(int value);
|
||||
@@ -101,7 +101,7 @@ UINT32 MapUtilScreenHandle(void)
|
||||
INT32 cnt, iX, iY, iSubX1, iSubY1, iSubX2, iSubY2, iWindowX, iWindowY, iCount;
|
||||
FLOAT dX, dY, dStartX, dStartY;
|
||||
|
||||
while(DequeueEvent(&InputEvent) == TRUE)
|
||||
while(DequeueSpecificEvent(&InputEvent, KEY_DOWN|KEY_UP) == TRUE)
|
||||
{
|
||||
if(InputEvent.usParam == ESC)
|
||||
{
|
||||
|
||||
+26
-6
@@ -437,6 +437,8 @@ enum
|
||||
MSG_SAVE_AUTOSAVE_ENDTURN_SLOT, // 102
|
||||
MSG_SAVE_NORMAL_SLOT, // 103
|
||||
|
||||
MSG_WINDOWED_MODE_LOCK_MOUSE, // 104
|
||||
MSG_WINDOWED_MODE_RELEASE_MOUSE, // 105
|
||||
|
||||
TEXT_NUM_MSG,
|
||||
};
|
||||
@@ -606,6 +608,9 @@ extern STR16 gzItemDescGenIndexes[ 4 ];
|
||||
// HEADROCK HAM 4: Added list of condition strings
|
||||
extern STR16 gConditionDesc[ 9 ];
|
||||
|
||||
// Flugente FTW1: Added list of temperature descriptions
|
||||
extern STR16 gTemperatureDesc[ 11 ];
|
||||
|
||||
extern CHAR16 gMoneyStatsDesc[][ 13 ];
|
||||
// HEADROCK: Altered value to 16 //WarmSteel - And I need 17.
|
||||
extern CHAR16 gWeaponStatsDesc[][ 17 ];
|
||||
@@ -623,15 +628,15 @@ extern STR16 szUDBGenWeaponsStatsTooltipText[ 22 ];
|
||||
extern STR16 szUDBGenWeaponsStatsExplanationsTooltipText[ 22 ];
|
||||
extern STR16 szUDBGenArmorStatsTooltipText[ 3 ];
|
||||
extern STR16 szUDBGenArmorStatsExplanationsTooltipText[ 3 ];
|
||||
extern STR16 szUDBGenAmmoStatsTooltipText[ 3 ];
|
||||
extern STR16 szUDBGenAmmoStatsExplanationsTooltipText[ 3 ];
|
||||
extern STR16 szUDBGenAmmoStatsTooltipText[ 4 ]; // Flugente Overheating Weapons: 3->4
|
||||
extern STR16 szUDBGenAmmoStatsExplanationsTooltipText[ 4 ];
|
||||
extern STR16 szUDBGenExplosiveStatsTooltipText[ 18 ];
|
||||
extern STR16 szUDBGenExplosiveStatsExplanationsTooltipText[ 18 ];
|
||||
extern STR16 szUDBGenSecondaryStatsTooltipText[ 26 ];
|
||||
extern STR16 szUDBGenSecondaryStatsExplanationsTooltipText[ 26 ];
|
||||
extern STR16 szUDBAdvStatsTooltipText[ 48 ];
|
||||
extern STR16 szUDBAdvStatsExplanationsTooltipText[ 48 ];
|
||||
extern STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[ 48 ];
|
||||
extern STR16 szUDBAdvStatsTooltipText[ 56 ]; // Flugente Overheating Weapons: 48->56
|
||||
extern STR16 szUDBAdvStatsExplanationsTooltipText[ 56 ]; // Flugente Overheating Weapons: 48->56
|
||||
extern STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[ 52 ]; // Flugente Overheating Weapons: 48->52
|
||||
|
||||
// Headrock: End Externs
|
||||
extern STR16 sKeyDescriptionStrings[2];
|
||||
@@ -753,6 +758,7 @@ enum
|
||||
EXIT_GUI_GOTO_SECTOR_STR,
|
||||
EXIT_GUI_GOTO_MAP_STR,
|
||||
CANNOT_LEAVE_SECTOR_FROM_SIDE_STR,
|
||||
CANNOT_LEAVE_IN_TURN_MODE_STR,
|
||||
MERC_IS_TOO_FAR_AWAY_STR,
|
||||
REMOVING_TREETOPS_STR,
|
||||
SHOWING_TREETOPS_STR,
|
||||
@@ -1131,7 +1137,8 @@ enum
|
||||
BOBBYR_GUNS_SUB_TOTAL,
|
||||
BOBBYR_GUNS_PERCENT_FUNCTIONAL,
|
||||
|
||||
BOBBYR_MORE_THEN_10_PURCHASES,
|
||||
BOBBYR_MORE_THEN_10_PURCHASES_A,
|
||||
BOBBYR_MORE_THEN_10_PURCHASES_B,
|
||||
BOBBYR_MORE_NO_MORE_IN_STOCK,
|
||||
BOBBYR_NO_MORE_STOCK,
|
||||
TEXT_NUM_BOBBYR_GUNS,
|
||||
@@ -1747,6 +1754,15 @@ enum
|
||||
GIO_SQUAD_SIZE_8_TEXT,
|
||||
GIO_SQUAD_SIZE_10_TEXT,
|
||||
|
||||
//GIO_FAST_BR_TITLE_TEXT,
|
||||
|
||||
//Inventory AP Cost
|
||||
GIO_INVENTORY_AP_TITLE_TEXT,
|
||||
|
||||
GIO_NCTH_TITLE_TEXT,
|
||||
GIO_IIS_TITLE_TEXT,
|
||||
GIO_OVERHEATING_TITLE_TEXT,
|
||||
|
||||
////////////////////////////////////
|
||||
TEXT_NUM_GIO_TEXT
|
||||
};
|
||||
@@ -2077,6 +2093,8 @@ enum
|
||||
MSG113_ENEMY_FOUND_DEAD_BODY,
|
||||
MSG113_AMMO_SPEC_STRING,
|
||||
|
||||
MSG113_INVENTORY_APS_INSUFFICIENT,
|
||||
|
||||
TEXT_NUM_MSG113,
|
||||
};
|
||||
|
||||
@@ -2118,6 +2136,8 @@ enum
|
||||
ADDTEXT_16BPP_REQUIRED,
|
||||
};
|
||||
extern STR16 Additional113Text[];
|
||||
extern STR16 ranks[];
|
||||
extern STR16 ranks[];
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+524
-103
@@ -14,6 +14,7 @@
|
||||
#include "worlddef.h"
|
||||
#include "renderworld.h"
|
||||
#include "interface control.h"
|
||||
#include "keymap.h"
|
||||
#endif
|
||||
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
@@ -21,6 +22,14 @@
|
||||
#endif
|
||||
|
||||
#include "Soldier Control.h"
|
||||
#include "connect.h"
|
||||
|
||||
// Base resolution of callback timer
|
||||
static INT32 BASETIMESLICE = 10;
|
||||
const INT32 FASTFORWARDTIMESLICE = 1000;
|
||||
const UINT32 FREQUENCY_CONST = 1000000;
|
||||
static INT32 MIN_NOTIFY_TIME = 16000;
|
||||
static INT32 UPDATETIMESLICE = 10000;
|
||||
|
||||
INT32 giClockTimer = -1;
|
||||
INT32 giTimerDiag = 0;
|
||||
@@ -29,35 +38,48 @@ UINT32 guiBaseJA2Clock = 0;
|
||||
UINT32 guiBaseJA2NoPauseClock = 0;
|
||||
|
||||
BOOLEAN gfPauseClock = FALSE;
|
||||
BOOLEAN gfHispeedClockMode = FALSE;
|
||||
|
||||
const inline UINT32 TIME_US_TO_MS(UINT32 value) { return value / 1000; }
|
||||
const inline UINT32 TIME_MS_TO_US(UINT32 value) { return value * 1000; }
|
||||
|
||||
UINT32 giFastForwardPeriod = FASTFORWARDTIMESLICE;
|
||||
BOOLEAN giFastForwardMode = FALSE;
|
||||
INT32 giFastForwardKey = 0;
|
||||
UINT32 guiTimeSlice = 0;
|
||||
FLOAT gfClockSpeedPercent = 1.0;
|
||||
LARGE_INTEGER gliPerfFreq = {0};
|
||||
LARGE_INTEGER gliPerfCount = {0};
|
||||
LARGE_INTEGER gliPerfCountNext = {0};
|
||||
|
||||
INT32 giTimerIntervals[ NUMTIMERS ] =
|
||||
{
|
||||
5, // Tactical Overhead
|
||||
20, // NEXTSCROLL
|
||||
200, // Start Scroll
|
||||
200, // Animate tiles
|
||||
1000, // FPS Counter
|
||||
80, // PATH FIND COUNTER
|
||||
150, // CURSOR TIMER
|
||||
250, // RIGHT CLICK FOR MENU
|
||||
300, // LEFT
|
||||
30, // SLIDING TEXT
|
||||
200, // TARGET REFINE TIMER
|
||||
150, // CURSOR/AP FLASH
|
||||
60, // FADE MERCS OUT
|
||||
160, // PANEL SLIDE
|
||||
1000, // CLOCK UPDATE DELAY
|
||||
20, // PHYSICS UPDATE
|
||||
100, // FADE ENEMYS
|
||||
20, // STRATEGIC OVERHEAD
|
||||
40,
|
||||
500, // NON GUN TARGET REFINE TIMER
|
||||
250, // IMPROVED CURSOR FLASH
|
||||
500, // 2nd CURSOR FLASH
|
||||
400, // RADARMAP BLINK AND OVERHEAD MAP BLINK SHOUDL BE THE SAME
|
||||
400,
|
||||
10, // Music Overhead
|
||||
100, // Rubber band start delay
|
||||
5, // Tactical Overhead
|
||||
20, // NEXTSCROLL
|
||||
200, // Start Scroll
|
||||
200, // Animate tiles
|
||||
1000, // FPS Counter
|
||||
80, // PATH FIND COUNTER
|
||||
150, // CURSOR TIMER
|
||||
250, // RIGHT CLICK FOR MENU
|
||||
300, // LEFT
|
||||
30, // SLIDING TEXT
|
||||
200, // TARGET REFINE TIMER
|
||||
150, // CURSOR/AP FLASH
|
||||
60, // FADE MERCS OUT
|
||||
160, // PANEL SLIDE
|
||||
1000, // CLOCK UPDATE DELAY
|
||||
20, // PHYSICS UPDATE
|
||||
100, // FADE ENEMYS
|
||||
20, // STRATEGIC OVERHEAD
|
||||
40,
|
||||
500, // NON GUN TARGET REFINE TIMER
|
||||
250, // IMPROVED CURSOR FLASH
|
||||
500, // 2nd CURSOR FLASH
|
||||
400, // RADARMAP BLINK AND OVERHEAD MAP BLINK SHOUDL BE THE SAME
|
||||
400,
|
||||
10, // Music Overhead
|
||||
100, // Rubber band start delay
|
||||
};
|
||||
|
||||
// TIMER COUNTERS
|
||||
@@ -73,6 +95,16 @@ CUSTOMIZABLE_TIMER_CALLBACK gpCustomizableTimerCallback = NULL;
|
||||
|
||||
// Clock Callback event ID
|
||||
MMRESULT gTimerID;
|
||||
TIMECAPS gtc;
|
||||
|
||||
HANDLE ghClockThread;
|
||||
DWORD gdwClockThreadId;
|
||||
HANDLE ghClockThreadShutdown;
|
||||
|
||||
HANDLE ghNotifyThread;
|
||||
DWORD gdwNotifyThreadId;
|
||||
HANDLE ghNotifyThreadEvent;
|
||||
HANDLE ghNotifyThreadShutdownComplete;
|
||||
|
||||
// GLOBALS FOR CALLBACK
|
||||
UINT32 gCNT;
|
||||
@@ -97,13 +129,28 @@ extern INT32 giFlashContractBaseTime;
|
||||
extern UINT32 guiFlashCursorBaseTime;
|
||||
extern INT32 giPotCharPathBaseTime;
|
||||
|
||||
typedef void (*TIMER_NOTIFY_CALLBACK) ( INT32 timer, PTR state );
|
||||
struct TIMER_NOTIFY_ITEM
|
||||
{
|
||||
TIMER_NOTIFY_CALLBACK callback;
|
||||
PTR state;
|
||||
};
|
||||
typedef std::list<TIMER_NOTIFY_ITEM> TIMER_NOTIFY_ITEM_LIST;
|
||||
typedef TIMER_NOTIFY_ITEM_LIST::iterator TIMER_NOTIFY_ITEM_ITERATOR;
|
||||
static TIMER_NOTIFY_ITEM_LIST glNotifyCallbacks;
|
||||
static CRITICAL_SECTION gcsNotifyLock;
|
||||
|
||||
static bool HasTimerNotifyCallbacks( );
|
||||
static void BroadcastTimerNotify(INT32 );
|
||||
static BOOLEAN UpdateTimeCounter( INT32 &counter, INT32 &iTimeLeft );
|
||||
static BOOLEAN UpdateCounter( INT32 counter, INT32 &iTimeLeft);
|
||||
static void UpdateTimer();
|
||||
|
||||
UINT32 InitializeJA2TimerCallback( UINT32 uiDelay, LPTIMECALLBACK TimerProc, UINT32 uiUser );
|
||||
|
||||
// CALLBACKS
|
||||
void CALLBACK FlashItem( UINT uiID, UINT uiMsg, DWORD uiUser, DWORD uiDw1, DWORD uiDw2 );
|
||||
|
||||
|
||||
void CALLBACK TimeProc( UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2 )
|
||||
{
|
||||
static BOOLEAN fInFunction = FALSE;
|
||||
@@ -113,87 +160,183 @@ void CALLBACK TimeProc( UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2
|
||||
{
|
||||
fInFunction = TRUE;
|
||||
|
||||
guiBaseJA2NoPauseClock += BASETIMESLICE;
|
||||
BOOLEAN timerDone = FALSE;
|
||||
BOOLEAN tickTime = FALSE;
|
||||
INT32 iTimeLeft = 0;
|
||||
|
||||
|
||||
if ( !gfPauseClock )
|
||||
// Use QPC to check if BASETIMESLICE (in ms) has passed
|
||||
if (IsHiSpeedClockMode())
|
||||
{
|
||||
guiBaseJA2Clock += BASETIMESLICE;
|
||||
|
||||
for ( gCNT = 0; gCNT < NUMTIMERS; gCNT++ )
|
||||
// Only advance time when sufficient time has passed to exceed next time
|
||||
QueryPerformanceCounter(&gliPerfCount);
|
||||
if (gliPerfCount.QuadPart > gliPerfCountNext.QuadPart)
|
||||
{
|
||||
UPDATECOUNTER( gCNT );
|
||||
INT32 iNext = IsFastForwardMode() ? giFastForwardPeriod : UPDATETIMESLICE;
|
||||
gliPerfCountNext.QuadPart = gliPerfCount.QuadPart + (iNext * gliPerfFreq.QuadPart) / FREQUENCY_CONST;
|
||||
iTimeLeft = iNext;
|
||||
timerDone = IsFastForwardMode();
|
||||
tickTime = TRUE;
|
||||
}
|
||||
|
||||
// Update some specialized countdown timers...
|
||||
UPDATETIMECOUNTER( giTimerAirRaidQuote );
|
||||
UPDATETIMECOUNTER( giTimerAirRaidDiveStarted );
|
||||
UPDATETIMECOUNTER( giTimerAirRaidUpdate );
|
||||
UPDATETIMECOUNTER( giTimerTeamTurnUpdate );
|
||||
|
||||
if ( gpCustomizableTimerCallback )
|
||||
{
|
||||
UPDATETIMECOUNTER( giTimerCustomizable );
|
||||
}
|
||||
|
||||
#ifndef BOUNDS_CHECKER
|
||||
|
||||
// If mapscreen...
|
||||
if( guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN )
|
||||
{
|
||||
// IN Mapscreen, loop through player's team.....
|
||||
for ( gCNT = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; gCNT <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; gCNT++ )
|
||||
{
|
||||
gPSOLDIER = MercPtrs[ gCNT ];
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.PortraitFlashCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.PanelAnimateCounter );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set update flags for soldiers
|
||||
////////////////////////////
|
||||
for ( gCNT = 0; gCNT < guiNumMercSlots; gCNT++ )
|
||||
{
|
||||
gPSOLDIER = MercSlots[ gCNT ];
|
||||
// When using millisecond timer, advance time everytime this function is called
|
||||
tickTime = TRUE;
|
||||
timerDone = !IsFastForwardMode();
|
||||
}
|
||||
if (tickTime)
|
||||
{
|
||||
guiBaseJA2NoPauseClock += BASETIMESLICE;
|
||||
|
||||
if ( gPSOLDIER != NULL )
|
||||
if ( !gfPauseClock )
|
||||
{
|
||||
guiBaseJA2Clock += BASETIMESLICE;
|
||||
|
||||
for ( gCNT = 0; gCNT < NUMTIMERS; gCNT++ )
|
||||
{
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.UpdateCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.DamageCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.ReloadCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.FlashSelCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.BlinkSelCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.PortraitFlashCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.AICounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.FadeCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.NextTileCounter );
|
||||
UPDATETIMECOUNTER( gPSOLDIER->timeCounters.PanelAnimateCounter );
|
||||
#ifdef JA2UB
|
||||
UPDATETIMECOUNTER( gPSOLDIER->GetupFromJA25StartCounter );
|
||||
#endif
|
||||
timerDone |= UpdateCounter( gCNT, iTimeLeft );
|
||||
}
|
||||
|
||||
// Update some specialized countdown timers...
|
||||
timerDone |= UpdateTimeCounter( giTimerAirRaidQuote, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( giTimerAirRaidDiveStarted, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( giTimerAirRaidUpdate, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( giTimerTeamTurnUpdate, iTimeLeft );
|
||||
|
||||
if ( gpCustomizableTimerCallback )
|
||||
{
|
||||
timerDone |= UpdateTimeCounter( giTimerCustomizable, iTimeLeft );
|
||||
}
|
||||
|
||||
#ifndef BOUNDS_CHECKER
|
||||
|
||||
// If mapscreen...
|
||||
if( guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN )
|
||||
{
|
||||
// IN Mapscreen, loop through player's team.....
|
||||
for ( gCNT = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; gCNT <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; gCNT++ )
|
||||
{
|
||||
gPSOLDIER = MercPtrs[ gCNT ];
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.PortraitFlashCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.PanelAnimateCounter, iTimeLeft );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set update flags for soldiers
|
||||
////////////////////////////
|
||||
for ( gCNT = 0; gCNT < guiNumMercSlots; gCNT++ )
|
||||
{
|
||||
gPSOLDIER = MercSlots[ gCNT ];
|
||||
|
||||
if ( gPSOLDIER != NULL )
|
||||
{
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.UpdateCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.DamageCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.ReloadCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.FlashSelCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.BlinkSelCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.PortraitFlashCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.AICounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.FadeCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.NextTileCounter, iTimeLeft );
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->timeCounters.PanelAnimateCounter, iTimeLeft );
|
||||
#ifdef JA2UB
|
||||
timerDone |= UpdateTimeCounter( gPSOLDIER->GetupFromJA25StartCounter, iTimeLeft );
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
if (timerDone)
|
||||
SetEvent(ghNotifyThreadEvent);
|
||||
fInFunction = FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOLEAN InitializeJA2Clock(void)
|
||||
static UINT32 MIN_TIMER(UINT32 timer, UINT32 other)
|
||||
{
|
||||
UINT32 value = TIME_MS_TO_US(timer);
|
||||
return ( value && value < other ? value : other );
|
||||
}
|
||||
|
||||
// Returns the smallest time interval for a counter currently in use
|
||||
UINT32 GetNextCounterDoneTime(void)
|
||||
{
|
||||
QueryPerformanceCounter(&gliPerfCount);
|
||||
INT32 time = (INT32)(((gliPerfCountNext.QuadPart - gliPerfCount.QuadPart) * FREQUENCY_CONST) / gliPerfFreq.QuadPart);
|
||||
return (UINT32)((time > 0) ? time : 0);
|
||||
}
|
||||
|
||||
// Function to test if there are any outstanding timers. Used in fast forward routines
|
||||
BOOLEAN IsTimerActive(void)
|
||||
{
|
||||
return GetNextCounterDoneTime() <= FASTFORWARDTIMESLICE ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
DWORD WINAPI JA2ClockThread( LPVOID lpParam )
|
||||
{
|
||||
__try
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
TimeProc(0, 0, 0, 0, 0);
|
||||
|
||||
DWORD dwResult = WaitForSingleObject(ghClockThreadShutdown, 0);
|
||||
if (dwResult == WAIT_OBJECT_0 || dwResult == WAIT_ABANDONED)
|
||||
break;
|
||||
YieldProcessor();
|
||||
|
||||
// Sleep for a couple of milliseconds if not in fast forward mode
|
||||
if (!IsFastForwardMode())
|
||||
Sleep( TIME_US_TO_MS( GetNextCounterDoneTime() ) );
|
||||
}
|
||||
}
|
||||
__except( EXCEPTION_EXECUTE_HANDLER )
|
||||
{
|
||||
// Unhandled exception just exit
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
||||
DWORD WINAPI JA2NotifyThread( LPVOID lpParam )
|
||||
{
|
||||
HANDLE waitHandles[] = {ghClockThreadShutdown, ghNotifyThreadEvent};
|
||||
for(;;)
|
||||
{
|
||||
DWORD dwResult = WaitForSingleObject(ghClockThreadShutdown, 0);
|
||||
if (dwResult == WAIT_OBJECT_0 || dwResult == WAIT_ABANDONED)
|
||||
break;
|
||||
|
||||
DWORD waitTime = (!IsFastForwardMode()) ? max(TIME_US_TO_MS(MIN_NOTIFY_TIME), TIME_US_TO_MS( GetNextCounterDoneTime() ) ) : 0;
|
||||
dwResult = WaitForMultipleObjectsEx(_countof(waitHandles), waitHandles, FALSE, waitTime, FALSE);
|
||||
if (dwResult == WAIT_OBJECT_0)
|
||||
break;
|
||||
if (dwResult >= WAIT_ABANDONED_0 && dwResult <= (WAIT_ABANDONED_0 + _countof(waitHandles)))
|
||||
break;
|
||||
if ( dwResult == WAIT_FAILED || dwResult == WAIT_TIMEOUT || (dwResult-WAIT_OBJECT_0) == 1)
|
||||
{
|
||||
if (HasTimerNotifyCallbacks())
|
||||
{
|
||||
BroadcastTimerNotify(-1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// unexpected failure
|
||||
}
|
||||
}
|
||||
SetEvent(ghNotifyThreadShutdownComplete);
|
||||
return 0L;
|
||||
}
|
||||
|
||||
BOOLEAN InitializeJA2Clock()
|
||||
{
|
||||
#ifdef CALLBACKTIMER
|
||||
|
||||
|
||||
MMRESULT mmResult;
|
||||
TIMECAPS tc;
|
||||
INT32 cnt;
|
||||
|
||||
// Init timer delays
|
||||
@@ -204,21 +347,48 @@ BOOLEAN InitializeJA2Clock(void)
|
||||
|
||||
|
||||
// First get timer resolutions
|
||||
mmResult = timeGetDevCaps( &tc, sizeof( tc ) );
|
||||
mmResult = timeGetDevCaps( >c, sizeof( gtc ) );
|
||||
|
||||
if ( mmResult != TIMERR_NOERROR )
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Could not get timer properties");
|
||||
}
|
||||
|
||||
// Set timer at lowest resolution. Could use middle of lowest/highest, we'll see how this performs first
|
||||
gTimerID = timeSetEvent( BASETIMESLICE, BASETIMESLICE, TimeProc, (DWORD)0, TIME_PERIODIC );
|
||||
|
||||
if ( !gTimerID )
|
||||
if ( !QueryPerformanceFrequency(&gliPerfFreq) )
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Could not create timer callback");
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Could not get performance frequency");
|
||||
}
|
||||
if ( !QueryPerformanceCounter(&gliPerfCount) )
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Could not get performance frequency");
|
||||
}
|
||||
|
||||
InitializeCriticalSection(&gcsNotifyLock);
|
||||
|
||||
if (IsHiSpeedClockMode())
|
||||
{
|
||||
ghClockThreadShutdown = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
ghNotifyThreadEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
|
||||
ghNotifyThreadShutdownComplete = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
ghClockThread = CreateThread(
|
||||
NULL, // default security attributes
|
||||
0, // use default stack size
|
||||
JA2ClockThread, // thread function
|
||||
NULL, // argument to thread function
|
||||
0, // use default creation flags
|
||||
&gdwClockThreadId);// returns the thread identifier
|
||||
ghNotifyThread = CreateThread(
|
||||
NULL, // default security attributes
|
||||
0, // use default stack size
|
||||
JA2NotifyThread, // thread function
|
||||
NULL, // argument to thread function
|
||||
0, // use default creation flags
|
||||
&gdwNotifyThreadId);// returns the thread identifier
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateTimer();
|
||||
}
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
@@ -226,24 +396,41 @@ BOOLEAN InitializeJA2Clock(void)
|
||||
|
||||
void ShutdownJA2Clock(void)
|
||||
{
|
||||
// Make sure we kill the timer
|
||||
if (IsHiSpeedClockMode())
|
||||
{
|
||||
SetEvent(ghClockThreadShutdown);
|
||||
WaitForSingleObject(ghNotifyThreadShutdownComplete, 2000);
|
||||
HANDLE waitHandles[] = {ghClockThread, ghNotifyThread};
|
||||
WaitForMultipleObjects(_countof(waitHandles), waitHandles, TRUE, 1000);
|
||||
CloseHandle(ghClockThreadShutdown);
|
||||
CloseHandle(ghClockThread);
|
||||
CloseHandle(ghNotifyThreadEvent);
|
||||
CloseHandle(ghNotifyThread);
|
||||
// During ungraceful shutdowns notify lock may be in use in notify thread
|
||||
if (TryEnterCriticalSection(&gcsNotifyLock))
|
||||
{
|
||||
LeaveCriticalSection(&gcsNotifyLock);
|
||||
DeleteCriticalSection(&gcsNotifyLock);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Make sure we kill the timer
|
||||
#ifdef CALLBACKTIMER
|
||||
|
||||
timeKillEvent( gTimerID );
|
||||
|
||||
timeKillEvent( gTimerID );
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UINT32 InitializeJA2TimerCallback( UINT32 uiDelay, LPTIMECALLBACK TimerProc, UINT32 uiUser )
|
||||
{
|
||||
MMRESULT mmResult;
|
||||
TIMECAPS tc;
|
||||
MMRESULT TimerID;
|
||||
|
||||
|
||||
// First get timer resolutions
|
||||
mmResult = timeGetDevCaps( &tc, sizeof( tc ) );
|
||||
mmResult = timeGetDevCaps( >c, sizeof( gtc ) );
|
||||
|
||||
if ( mmResult != TIMERR_NOERROR )
|
||||
{
|
||||
@@ -272,10 +459,10 @@ UINT32 InitializeJA2TimerID( UINT32 uiDelay, UINT32 uiCallbackID, UINT32 uiUser
|
||||
{
|
||||
switch( uiCallbackID )
|
||||
{
|
||||
case ITEM_LOCATOR_CALLBACK:
|
||||
case ITEM_LOCATOR_CALLBACK:
|
||||
|
||||
return( InitializeJA2TimerCallback( uiDelay, FlashItem, uiUser ) );
|
||||
break;
|
||||
return( InitializeJA2TimerCallback( uiDelay, FlashItem, uiUser ) );
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
@@ -359,3 +546,237 @@ void SetTileAnimCounter( INT32 iTime )
|
||||
{
|
||||
giTimerIntervals[ ANIMATETILES ] = iTime;
|
||||
}
|
||||
void SetFastForwardPeriod(DOUBLE value)
|
||||
{
|
||||
giFastForwardPeriod = (UINT32)(value);
|
||||
if (giFastForwardPeriod <= 1)
|
||||
giFastForwardPeriod = 1;
|
||||
}
|
||||
|
||||
void SetFastForwardKey(INT32 key)
|
||||
{
|
||||
giFastForwardKey = key;
|
||||
}
|
||||
|
||||
BOOLEAN IsFastForwardKeyPressed()
|
||||
{
|
||||
// WANNE: In a multiplayer game it is not allowed for the "pure" client to do fast forward
|
||||
// Only the server is allowed to do, because the AI is generated on the server
|
||||
if (is_networked)
|
||||
{
|
||||
if (!is_server) // It is not allowed when we are not the server
|
||||
return false;
|
||||
else if (gTacticalStatus.ubCurrentTeam != 1) // It is not allowed, when it is not the enemy turn!
|
||||
return false;
|
||||
}
|
||||
|
||||
return giFastForwardKey && IsKeyPressed(giFastForwardKey);
|
||||
}
|
||||
|
||||
void SetFastForwardMode(BOOLEAN enable)
|
||||
{
|
||||
giFastForwardMode = enable;
|
||||
UpdateTimer();
|
||||
}
|
||||
|
||||
BOOLEAN IsFastForwardMode()
|
||||
{
|
||||
return giFastForwardMode || IsFastForwardKeyPressed();
|
||||
}
|
||||
|
||||
LONGLONG GetJA2Microseconds()
|
||||
{
|
||||
return gliPerfCount.QuadPart * FREQUENCY_CONST / gliPerfFreq.QuadPart;
|
||||
}
|
||||
|
||||
void AddTimerNotifyCallback( TIMER_NOTIFY_CALLBACK callback, PTR state )
|
||||
{
|
||||
EnterCriticalSection(&gcsNotifyLock);
|
||||
BOOL addItem = TRUE;
|
||||
for (TIMER_NOTIFY_ITEM_ITERATOR itr = glNotifyCallbacks.begin(); itr != glNotifyCallbacks.end(); ++itr) {
|
||||
if ( callback == (*itr).callback && state == (*itr).state ){
|
||||
addItem = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (addItem)
|
||||
{
|
||||
TIMER_NOTIFY_ITEM item;
|
||||
item.callback = callback;
|
||||
item.state = state;
|
||||
glNotifyCallbacks.push_back(item);
|
||||
}
|
||||
LeaveCriticalSection(&gcsNotifyLock);
|
||||
}
|
||||
|
||||
void RemoveTimerNotifyCallback( TIMER_NOTIFY_CALLBACK callback, PTR state )
|
||||
{
|
||||
EnterCriticalSection(&gcsNotifyLock);
|
||||
for ( TIMER_NOTIFY_ITEM_ITERATOR itr = glNotifyCallbacks.begin(); itr != glNotifyCallbacks.end(); )
|
||||
{
|
||||
if ( callback == (*itr).callback && state == (*itr).state )
|
||||
itr = glNotifyCallbacks.erase(itr);
|
||||
else
|
||||
++itr;
|
||||
}
|
||||
LeaveCriticalSection(&gcsNotifyLock);
|
||||
}
|
||||
|
||||
void ClearTimerNotifyCallbacks()
|
||||
{
|
||||
// If we cannot get the lock it is likely due to exception while handling notification and we are shutting down
|
||||
if ( TryEnterCriticalSection(&gcsNotifyLock) )
|
||||
{
|
||||
glNotifyCallbacks.clear();
|
||||
LeaveCriticalSection(&gcsNotifyLock);
|
||||
}
|
||||
}
|
||||
|
||||
static bool HasTimerNotifyCallbacks( )
|
||||
{
|
||||
return !glNotifyCallbacks.empty();
|
||||
}
|
||||
|
||||
|
||||
// Call timer notify routine
|
||||
// Separate the callback notifies with normal try/catch
|
||||
// as SEH __try/__except are incompatible with C++ exceptions
|
||||
static void InnerTimerNotify(INT32 timer)
|
||||
{
|
||||
try
|
||||
{
|
||||
for (TIMER_NOTIFY_ITEM_ITERATOR itr = glNotifyCallbacks.begin(); itr != glNotifyCallbacks.end(); ++itr)
|
||||
{
|
||||
if ( NULL != (*itr).callback)
|
||||
(*itr).callback( timer, (*itr).state );
|
||||
}
|
||||
}
|
||||
catch (...) {}
|
||||
}
|
||||
static void BroadcastTimerNotify(INT32 timer)
|
||||
{
|
||||
EnterCriticalSection(&gcsNotifyLock);
|
||||
__try
|
||||
{
|
||||
__try { InnerTimerNotify(timer); }
|
||||
__except( EXCEPTION_EXECUTE_HANDLER )
|
||||
{ /* Not sure. exit? */ }
|
||||
}
|
||||
__finally
|
||||
{
|
||||
LeaveCriticalSection(&gcsNotifyLock);
|
||||
}
|
||||
}
|
||||
|
||||
BOOLEAN UpdateTimeCounter( INT32 &counter, INT32 &iTimeLeft)
|
||||
{
|
||||
if (counter == 0) {
|
||||
return FALSE;
|
||||
} else if ( ( counter - BASETIMESLICE ) < 0 ) {
|
||||
counter = 0;
|
||||
return TRUE;
|
||||
} else {
|
||||
counter -= BASETIMESLICE;
|
||||
if ( counter < iTimeLeft )
|
||||
iTimeLeft = counter;
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN UpdateCounter( INT32 counterIdx, INT32 &iTimeLeft )
|
||||
{
|
||||
INT32& counter = giTimerCounters[ counterIdx ];
|
||||
return UpdateTimeCounter(counter, iTimeLeft);
|
||||
}
|
||||
|
||||
BOOLEAN UpdateCounter( INT32 counterIdx )
|
||||
{
|
||||
INT32 iDummy = 0;
|
||||
return UpdateCounter(counterIdx, iDummy);
|
||||
}
|
||||
|
||||
void ResetCounter(INT32 counterIdx)
|
||||
{
|
||||
giTimerCounters[ counterIdx ] = giTimerIntervals[ counterIdx ];
|
||||
}
|
||||
|
||||
BOOLEAN CounterDone(INT32 counterIdx)
|
||||
{
|
||||
return ( giTimerCounters[ counterIdx ] == 0 ) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
void ResetTimerCounter(INT32 &timer, INT32 value)
|
||||
{
|
||||
timer = value;
|
||||
}
|
||||
|
||||
BOOLEAN TimeCounterDone(INT32 timer)
|
||||
{
|
||||
return ( timer == 0 ) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
void ZeroTimeCounter(INT32& timer)
|
||||
{
|
||||
timer = 0;
|
||||
}
|
||||
|
||||
BOOLEAN IsJA2TimerThread()
|
||||
{
|
||||
return (GetCurrentThreadId() == gdwClockThreadId);
|
||||
}
|
||||
|
||||
#ifndef GetJA2Clock
|
||||
UINT32 GetJA2Clock()
|
||||
{
|
||||
return guiBaseJA2Clock;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef GetJA2NoPauseClock
|
||||
UINT32 GetJA2NoPauseClock()
|
||||
{
|
||||
return guiBaseJA2NoPauseClock;
|
||||
}
|
||||
#endif
|
||||
|
||||
void SetHiSpeedClockMode(BOOLEAN enable)
|
||||
{
|
||||
gfHispeedClockMode = enable;
|
||||
}
|
||||
|
||||
BOOLEAN IsHiSpeedClockMode()
|
||||
{
|
||||
return gfHispeedClockMode;
|
||||
}
|
||||
|
||||
void SetNotifyFrequencyKey(INT32 value)
|
||||
{
|
||||
MIN_NOTIFY_TIME = value;
|
||||
}
|
||||
|
||||
void SetClockSpeedPercent(FLOAT value)
|
||||
{
|
||||
gfClockSpeedPercent = value;
|
||||
UPDATETIMESLICE = (UINT32)((FLOAT)TIME_MS_TO_US(BASETIMESLICE) * 100.0f / value);
|
||||
UpdateTimer();
|
||||
}
|
||||
|
||||
void UpdateTimer()
|
||||
{
|
||||
// Set timer at lowest resolution. Could use middle of lowest/highest, we'll see how this performs first
|
||||
if (!IsHiSpeedClockMode())
|
||||
{
|
||||
UINT uiTimeSlice = giFastForwardMode ? gtc.wPeriodMin : max(gtc.wPeriodMin, TIME_US_TO_MS(UPDATETIMESLICE));
|
||||
if (uiTimeSlice != guiTimeSlice)
|
||||
{
|
||||
guiTimeSlice = uiTimeSlice;
|
||||
if (gTimerID != 0) timeKillEvent(gTimerID);
|
||||
gTimerID = timeSetEvent( uiTimeSlice, uiTimeSlice, TimeProc, (DWORD)0, TIME_PERIODIC );
|
||||
if ( !gTimerID )
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Could not create timer callback");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+36
-36
@@ -54,9 +54,6 @@ enum
|
||||
NUMTIMERS
|
||||
};
|
||||
|
||||
// Base resultion of callback timer
|
||||
#define BASETIMESLICE 10
|
||||
|
||||
// TIMER INTERVALS
|
||||
extern INT32 giTimerIntervals[ NUMTIMERS ];
|
||||
// TIMER COUNTERS
|
||||
@@ -73,6 +70,7 @@ BOOLEAN InitializeJA2Clock( void );
|
||||
void ShutdownJA2Clock( void );
|
||||
|
||||
#define GetJA2Clock() guiBaseJA2Clock
|
||||
#define GetJA2NoPauseClock() guiBaseJA2NoPauseClock
|
||||
|
||||
UINT32 GetPauseJA2Clock( );
|
||||
|
||||
@@ -84,47 +82,49 @@ void PauseTime( BOOLEAN fPaused );
|
||||
void SetCustomizableTimerCallbackAndDelay( INT32 iDelay, CUSTOMIZABLE_TIMER_CALLBACK pCallback, BOOLEAN fReplace );
|
||||
void CheckCustomizableTimer( void );
|
||||
|
||||
void SetFastForwardPeriod(DOUBLE value);
|
||||
void SetFastForwardKey(INT32 key);
|
||||
BOOLEAN IsFastForwardKeyPressed();
|
||||
void SetFastForwardMode(BOOLEAN enable);
|
||||
BOOLEAN IsFastForwardMode();
|
||||
INT32 GetFastForwardLoopCount();
|
||||
void SetFastForwardLoopCount(INT32 value);
|
||||
|
||||
void SetNotifyFrequencyKey(INT32 value);
|
||||
void SetClockSpeedPercent(FLOAT value);
|
||||
|
||||
BOOLEAN IsTimerActive();
|
||||
BOOLEAN IsJA2TimerThread();
|
||||
|
||||
BOOLEAN IsHiSpeedClockMode();
|
||||
void SetHiSpeedClockMode(BOOLEAN enable);
|
||||
|
||||
//Don't modify this value
|
||||
extern UINT32 guiBaseJA2Clock;
|
||||
extern UINT32 guiBaseJA2NoPauseClock;
|
||||
extern CUSTOMIZABLE_TIMER_CALLBACK gpCustomizableTimerCallback;
|
||||
|
||||
// MACROS
|
||||
// CHeck if new counter < 0 | set to 0 | Decrement
|
||||
typedef void (*TIMER_NOTIFY_CALLBACK) ( INT32 timer, PTR state );
|
||||
void AddTimerNotifyCallback( TIMER_NOTIFY_CALLBACK callback, PTR state );
|
||||
void RemoveTimerNotifyCallback( TIMER_NOTIFY_CALLBACK callback, PTR state );
|
||||
void ClearTimerNotifyCallbacks();
|
||||
|
||||
#ifdef CALLBACKTIMER
|
||||
BOOLEAN UpdateCounter(INT32 iTimer);
|
||||
void ResetCounter(INT32 iTimer);
|
||||
BOOLEAN CounterDone(INT32 iTimer);
|
||||
void ResetTimerCounter(INT32 &timer, INT32 value);
|
||||
BOOLEAN TimeCounterDone(INT32 timer);
|
||||
void ZeroTimeCounter(INT32& timer);
|
||||
|
||||
#define UPDATECOUNTER( c ) ( ( giTimerCounters[ c ] - BASETIMESLICE ) < 0 ) ? ( giTimerCounters[ c ] = 0 ) : ( giTimerCounters[ c ] -= BASETIMESLICE )
|
||||
#define RESETCOUNTER( c ) ( giTimerCounters[ c ] = giTimerIntervals[ c ] )
|
||||
#define COUNTERDONE( c ) ( giTimerCounters[ c ] == 0 ) ? TRUE : FALSE
|
||||
|
||||
#define UPDATETIMECOUNTER( c ) ( ( c - BASETIMESLICE ) < 0 ) ? ( c = 0 ) : ( c -= BASETIMESLICE )
|
||||
#define RESETTIMECOUNTER( c, d ) ( c = d )
|
||||
|
||||
#ifdef BOUNDS_CHECKER
|
||||
#define TIMECOUNTERDONE( c, d ) ( TRUE )
|
||||
#else
|
||||
#define TIMECOUNTERDONE( c, d ) ( c == 0 ) ? TRUE : FALSE
|
||||
#endif
|
||||
|
||||
#define SYNCTIMECOUNTER( )
|
||||
#define ZEROTIMECOUNTER( c ) ( c = 0 )
|
||||
|
||||
#else
|
||||
|
||||
#define UPDATECOUNTER( c )
|
||||
#define RESETCOUNTER( c ) ( giTimerCounters[ c ] = giClockTimer )
|
||||
#define COUNTERDONE( c ) ( ( ( giClockTimer = GetJA2Clock() ) - giTimerCounters[ c ] ) > giTimerIntervals[ c ] ) ? TRUE : FALSE
|
||||
|
||||
#define UPDATETIMECOUNTER( c )
|
||||
#define RESETTIMECOUNTER( c, d ) ( c = giClockTimer )
|
||||
#define TIMECOUNTERDONE( c, d ) ( giClockTimer - c > d ) ? TRUE : FALSE
|
||||
#define SYNCTIMECOUNTER( ) ( giClockTimer = GetJA2Clock() )
|
||||
|
||||
#endif
|
||||
|
||||
#define UPDATECOUNTER( c ) UpdateCounter(c)
|
||||
#define RESETCOUNTER( c ) ResetCounter(c)
|
||||
#define COUNTERDONE( c ) CounterDone(c)
|
||||
#define UPDATETIMECOUNTER( c ) UpdateTimeCounter(c)
|
||||
#define RESETTIMECOUNTER( c, d ) ResetTimerCounter(c, d)
|
||||
#define TIMECOUNTERDONE(c, d) TimeCounterDone(c)
|
||||
#define SYNCTIMECOUNTER( )
|
||||
#define ZEROTIMECOUNTER(c) ZeroTimeCounter(c)
|
||||
|
||||
void SetTileAnimCounter( INT32 iTime );
|
||||
|
||||
|
||||
#endif
|
||||
@@ -103,6 +103,7 @@
|
||||
#include "vobject.h"
|
||||
#include "overhead types.h"
|
||||
#include "tactical save.h"
|
||||
#include "KeyMap.h"
|
||||
//#include <windows.h>
|
||||
//#include <windowsx.h>
|
||||
//#include <mmsystem.h>
|
||||
|
||||
@@ -42,10 +42,11 @@
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WIN32_WINNT=0x0500"
|
||||
MinimalRebuild="true"
|
||||
ExceptionHandling="1"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
@@ -106,7 +107,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WIN32_WINNT=0x0500"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -167,7 +168,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WIN32_WINNT=0x0500"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -229,7 +230,7 @@
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WIN32_WINNT=0x0500"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -294,7 +295,7 @@
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WIN32_WINNT=0x0500"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -426,6 +427,10 @@
|
||||
RelativePath=".\INIReader.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\KeyMap.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\LocalizedStrings.h"
|
||||
>
|
||||
@@ -664,6 +669,10 @@
|
||||
RelativePath=".\INIReader.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\KeyMap.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\LocalizedStrings.cpp"
|
||||
>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Version="9.00"
|
||||
Name="Utils"
|
||||
ProjectGUID="{DB40B90D-13F9-4FEC-8F1D-0506CC496586}"
|
||||
RootNamespace="Utils"
|
||||
@@ -113,7 +113,6 @@
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
@@ -178,7 +177,7 @@
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="0"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
@@ -296,7 +295,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
StringPooling="true"
|
||||
@@ -305,7 +304,7 @@
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
@@ -430,6 +429,10 @@
|
||||
RelativePath="INIReader.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\KeyMap.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\LocalizedStrings.h"
|
||||
>
|
||||
@@ -666,6 +669,10 @@
|
||||
RelativePath="INIReader.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\KeyMap.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\LocalizedStrings.cpp"
|
||||
>
|
||||
|
||||
+12
-10
@@ -37,6 +37,7 @@
|
||||
<ClInclude Include="Font Control.h" />
|
||||
<ClInclude Include="ImportStrings.h" />
|
||||
<ClInclude Include="INIReader.h" />
|
||||
<ClInclude Include="KeyMap.h" />
|
||||
<ClInclude Include="LocalizedStrings.h" />
|
||||
<ClInclude Include="maputility.h" />
|
||||
<ClInclude Include="MercTextBox.h" />
|
||||
@@ -87,6 +88,7 @@
|
||||
<ClCompile Include="Font Control.cpp" />
|
||||
<ClCompile Include="ImportStrings.cpp" />
|
||||
<ClCompile Include="INIReader.cpp" />
|
||||
<ClCompile Include="KeyMap.cpp" />
|
||||
<ClCompile Include="LocalizedStrings.cpp" />
|
||||
<ClCompile Include="MapUtility.cpp" />
|
||||
<ClCompile Include="MercTextBox.cpp" />
|
||||
@@ -197,24 +199,24 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>..\lib\VS2010\$(Configuration)\</OutDir>
|
||||
<IntDir>..\build\VS2010\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)\lib\VS2010\$(JA2Config)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)\build\VS2010\$(JA2Config)\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditorD|Win32'">
|
||||
<OutDir>..\lib\VS2010\$(Configuration)\</OutDir>
|
||||
<IntDir>..\build\VS2010\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)\lib\VS2010\$(JA2Config)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)\build\VS2010\$(JA2Config)\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<IntDir>..\build\VS2010\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>..\lib\VS2010\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)\build\VS2010\$(JA2Config)\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)\lib\VS2010\$(JA2Config)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditor|Win32'">
|
||||
<IntDir>..\build\VS2010\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>..\lib\VS2010\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)\build\VS2010\$(JA2Config)\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)\lib\VS2010\$(JA2Config)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Relese_WithDebugInfo|Win32'">
|
||||
<IntDir>..\build\VS2010\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>..\lib\VS2010\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)\build\VS2010\$(JA2Config)\$(ProjectName)_$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)\lib\VS2010\$(JA2Config)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
|
||||
@@ -156,6 +156,9 @@
|
||||
<ClInclude Include="XML_Language.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="KeyMap.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="_ChineseText.cpp">
|
||||
@@ -332,5 +335,8 @@
|
||||
<ClCompile Include="XML_Language.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="KeyMap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
+48
-8
@@ -215,7 +215,6 @@ itemStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
|
||||
strcmp(name, "Flare") == 0 ||
|
||||
strcmp(name, "MetalDetector") == 0 ||
|
||||
strcmp(name, "FingerPrintID") == 0 ||
|
||||
strcmp(name, "AmmoCrate") == 0 ||
|
||||
strcmp(name, "Cannon") == 0 ||
|
||||
strcmp(name, "RocketRifle") == 0 ||
|
||||
strcmp(name, "MedicalKit") == 0 ||
|
||||
@@ -251,6 +250,12 @@ itemStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
|
||||
strcmp(name, "RecoilModifierX") == 0 ||
|
||||
strcmp(name, "RecoilModifierY") == 0 ||
|
||||
strcmp(name, "PercentRecoilModifier") == 0 ||
|
||||
strcmp(name, "barrel") == 0 ||
|
||||
strcmp(name, "usOverheatingCooldownFactor") == 0 ||
|
||||
strcmp(name, "overheatTemperatureModificator") == 0 ||
|
||||
strcmp(name, "overheatCooldownModificator") == 0 ||
|
||||
strcmp(name, "overheatJamThresholdModificator") == 0 ||
|
||||
strcmp(name, "overheatDamageThresholdModificator") == 0 ||
|
||||
|
||||
strcmp(name, "fFlags") == 0 ))
|
||||
{
|
||||
@@ -563,7 +568,7 @@ itemEndElementHandle(void *userData, const XML_Char *name)
|
||||
else if(strcmp(name, "ItemSize") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.ItemSize = (UINT8) atol(pData->szCharData);
|
||||
pData->curItem.ItemSize = (UINT16) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "usPrice") == 0)
|
||||
{
|
||||
@@ -1093,11 +1098,6 @@ itemEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.fingerprintid = (BOOLEAN) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "AmmoCrate") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.ammocrate = (BOOLEAN) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "Rock") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
@@ -1246,6 +1246,38 @@ itemEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
}
|
||||
|
||||
// Flugente FTW 1.2
|
||||
else if(strcmp(name, "barrel") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.barrel = (BOOLEAN) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "usOverheatingCooldownFactor") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.usOverheatingCooldownFactor = (FLOAT) atof(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "overheatTemperatureModificator") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.overheatTemperatureModificator = (FLOAT) atof(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "overheatCooldownModificator") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.overheatCooldownModificator = (FLOAT) atof(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "overheatJamThresholdModificator") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.overheatJamThresholdModificator = (FLOAT) atof(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "overheatDamageThresholdModificator") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curItem.overheatDamageThresholdModificator = (FLOAT) atof(pData->szCharData);
|
||||
}
|
||||
|
||||
pData->maxReadDepth--;
|
||||
}
|
||||
|
||||
@@ -1790,7 +1822,6 @@ BOOLEAN WriteItemStats()
|
||||
FilePrintf(hFile,"\t\t<ContainsLiquid>%d</ContainsLiquid>\r\n", Item[cnt].containsliquid );
|
||||
FilePrintf(hFile,"\t\t<MetalDetector>%d</MetalDetector>\r\n", Item[cnt].metaldetector );
|
||||
FilePrintf(hFile,"\t\t<FingerPrintID>%d</FingerPrintID>\r\n", Item[cnt].fingerprintid );
|
||||
FilePrintf(hFile,"\t\t<AmmoCrate>%d</AmmoCrate>\r\n", Item[cnt].ammocrate );
|
||||
|
||||
// HEADROCK HAM 4: Print out new values
|
||||
FilePrintf(hFile,"\t\t<ScopeMagFactor>%d</ScopeMagFactor>\r\n", Item[cnt].scopemagfactor );
|
||||
@@ -1843,6 +1874,15 @@ BOOLEAN WriteItemStats()
|
||||
FilePrintf(hFile,"\t\t\t<AimLevels>%d</AimLevels>\r\n", Item[cnt].aimlevelsmodifier[2] );
|
||||
FilePrintf(hFile,"\t\t</PRONE_MODIFIERS>\r\n");
|
||||
|
||||
// Flugente FTW 1.2
|
||||
FilePrintf(hFile,"\t\t<barrel>%d</barrel>\r\n", Item[cnt].barrel );
|
||||
FilePrintf(hFile,"\t\t<usOverheatingCooldownFactor>%4.2f</usOverheatingCooldownFactor>\r\n", Item[cnt].usOverheatingCooldownFactor );
|
||||
FilePrintf(hFile,"\t\t<overheatTemperatureModificator>%4.2f</overheatTemperatureModificator>\r\n", Item[cnt].overheatTemperatureModificator );
|
||||
FilePrintf(hFile,"\t\t<overheatCooldownModificator>%4.2f</overheatCooldownModificator>\r\n", Item[cnt].overheatCooldownModificator );
|
||||
FilePrintf(hFile,"\t\t<overheatJamThresholdModificator>%4.2f</overheatJamThresholdModificator>\r\n", Item[cnt].overheatJamThresholdModificator );
|
||||
FilePrintf(hFile,"\t\t<overheatDamageThresholdModificator>%4.2f</overheatDamageThresholdModificator>\r\n", Item[cnt].overheatDamageThresholdModificator );
|
||||
|
||||
|
||||
FilePrintf(hFile,"\t</ITEM>\r\n");
|
||||
}
|
||||
FilePrintf(hFile,"</ITEMLIST>\r\n");
|
||||
|
||||
+88
-17
@@ -254,13 +254,13 @@ STR16 pEncyclopediaShortInventoryText[] =
|
||||
L"枪械",
|
||||
L"弹药",
|
||||
L"携行具",
|
||||
L"附件",
|
||||
L"杂项",
|
||||
|
||||
L"全部", //5
|
||||
L"枪械",
|
||||
L"弹药",
|
||||
L"携行具",
|
||||
L"附件",
|
||||
L"杂项",
|
||||
};
|
||||
|
||||
STR16 BoxFilter[] =
|
||||
@@ -290,7 +290,7 @@ STR16 BoxFilter[] =
|
||||
L"枪械",
|
||||
L"护甲",
|
||||
L"携行具",
|
||||
L"附件", //20
|
||||
L"杂项", //20
|
||||
|
||||
// Armour
|
||||
L"头盔",
|
||||
@@ -308,7 +308,7 @@ STR16 BoxFilter[] =
|
||||
L"工具",
|
||||
L"通讯等",
|
||||
L"携行具",
|
||||
L"附件", //34
|
||||
L"杂项", //34
|
||||
};
|
||||
//-----------
|
||||
|
||||
@@ -2873,6 +2873,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"前往分区",
|
||||
L"前往地图",
|
||||
L"你不能从这边离开这个分区。",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s太远了。",
|
||||
L"不显示树冠",
|
||||
L"显示树冠",
|
||||
@@ -4400,9 +4401,9 @@ STR16 BobbyRFilter[] =
|
||||
L"炸药", //"Bombs",
|
||||
L"医疗用品", //"Med. Kits",
|
||||
L"工具套装", //"Kits",
|
||||
L"通讯/夜视", //"Face Items",
|
||||
L"头部装备", //"Face Items",
|
||||
L"携行具", //"LBE Gear",
|
||||
L"附件/瞄准具", //"Misc.",
|
||||
L"杂项", //"Misc.",
|
||||
};
|
||||
|
||||
|
||||
@@ -4451,7 +4452,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"靠! 我们这里的在线订单一次只接受10件物品的订购。如果你想要订购更多东西(我们希望如此),请接受我们的歉意,再开一份订单。",
|
||||
L"靠! 我们这里的在线订单一次只接受" ,//First part
|
||||
L"件物品的订购。如果你想要订购更多东西(我们希望如此),请接受我们的歉意,再开一份订单。",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5062,10 +5064,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"属性进度条", //L"Stat Progress Bars", // Show progress towards stat increase //ham3.6
|
||||
L"替代战略地图颜色", // Change color scheme of Strategic Map
|
||||
L"替代子弹图像", // Show alternate bullet graphics (tracers)
|
||||
L"开启新的瞄准系统(NCTH)", // use NCTH
|
||||
//L"开启新的瞄准系统(NCTH)", // use NCTH
|
||||
L"显示佣兵军衔", // shows mercs ranks
|
||||
L"显示脸部装备图",
|
||||
L"显示脸部装备图标",
|
||||
L"禁止光标切换", // Disable Cursor Swap
|
||||
L"自动加速敌军回合", // Automatic fast forward through AI turns
|
||||
//L"武器过热",
|
||||
L"--作弊模式选项--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"强制 Bobby Ray 送货", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5167,10 +5172,12 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"打开时,显示各属性的增长进度。", // L"When ON, shows character progress towards gaining levels.", //ham3.6
|
||||
L"打开时, 战略地图将会根据探索状态显示不同的着色。",
|
||||
L"打开时, 当你射击时会显示间隔子弹图像。",
|
||||
L"打开时, 使用新命中率系统(NCTH)和光标。",
|
||||
//L"打开时, 使用新命中率系统(NCTH)和光标。",
|
||||
L"打开时,在战略界面的佣兵名旁显示军衔。",
|
||||
L"打开时, 显示佣兵脸部装备图。",
|
||||
L"打开时, 佣兵肖像右下角显示脸部装备图标",
|
||||
L"打开时,在交换位置和其它动作时光标不切换。键入 |x 可以快速切换。", // L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.",
|
||||
L"打开时,在交换位置和其它动作时光标不切换。键入 |x 可以快速切换。",
|
||||
//L"打开时,武器连续射击时温度逐渐升高引起过热。",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"强制 Bobby Ray 出货",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5268,6 +5275,12 @@ STR16 gzGIOScreenText[] =
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Bobby Ray 快速出货", //L"Faster Bobby Ray Shipments",
|
||||
L"战斗时取放物品消耗AP", //L"Inventory Manipulation Costs AP",
|
||||
// TODO: Translate
|
||||
L"新命中率系统(NCTH)", //L"New Chance to Hit System",
|
||||
L"改进的中断系统(IIS)", //L"Improved Interrupt System",
|
||||
L"武器过热", //L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5585,6 +5598,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary)
|
||||
L"鼠标已锁定,鼠标移动范围强制限制在游戏窗口内部区域。", // 104
|
||||
L"鼠标已释放,鼠标移动范围不再受限于游戏窗口内部区域。", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -5650,7 +5666,7 @@ STR16 gzLaptopHelpText[] =
|
||||
L"McGillicutty公墓",
|
||||
L"联合花卉服务公司",
|
||||
L"A.I.M指定保险代理人",
|
||||
//New Bookmarks // TODO.Translate
|
||||
//New Bookmarks
|
||||
L"",
|
||||
L"百科全书",
|
||||
L"简报室",
|
||||
@@ -5964,7 +5980,7 @@ STR16 gzLateLocalizedString[] =
|
||||
L"%s多打了%d发子弹!", //"%s fires %d more rounds than intended!",
|
||||
L"%s多打了1发子弹!", //"%s fires %d more round than intended!",
|
||||
|
||||
L"You need to close the item description box first!", // TODO.Translate
|
||||
L"你得先关闭物品信息界面!",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 3.5: Added sector name
|
||||
@@ -6069,7 +6085,8 @@ STR16 New113Message[] =
|
||||
L"%s 命根子中弹,痛苦的倒下了!",// L"%s is hit to groin and falls down in pain!",
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"注意: 敌人尸体被发现!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"AP不够!需要%d,你只有%d。", //L"Insufficient AP Points! Cost %d, you have %d.",
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6306,10 +6323,10 @@ STR16 MPClientMessage[] =
|
||||
L"点击 '准备' 进入战术画面。",// L"Press 'Ready' to enter tactical screen.",
|
||||
L"不能连接到服务器,因为你的版本 %S 和服务器端的版本 %S 不同。",
|
||||
L"你击毙了一个敌人。",
|
||||
L"无法启动游戏,因为所有小队都一样。", //L"Cannot start the game, because all teams are the same.", // TODO.Translate
|
||||
L"无法启动游戏,因为所有小队都一样。", //L"Cannot start the game, because all teams are the same.",
|
||||
L"The server has choosen New Inventory (NIV), but your screen resolution does not support NIV.",
|
||||
// 70 // TODO.Translate
|
||||
L"Could not save received file '%S'",
|
||||
// 70
|
||||
L"Could not save received file '%S'", // TODO.Translate
|
||||
L"%s's bomb was disarmed by %s",
|
||||
L"You loose, what a shame", // All over red rover
|
||||
L"Spectator mode disabled",
|
||||
@@ -6319,7 +6336,7 @@ STR16 MPClientMessage[] =
|
||||
L"Client failed to start. Terminating.",
|
||||
L"Client disconnected and shutdown.",
|
||||
L"Client is not running.",
|
||||
L"INFO: If the game is stuck (the opponents progress bar is not moving), notify the server to press ALT + E to give the turn back to you!", // TODO.Translate
|
||||
L"INFO: If the game is stuck (the opponents progress bar is not moving), notify the server to press ALT + E to give the turn back to you!",
|
||||
};
|
||||
|
||||
STR16 gszMPEdgesText[] =
|
||||
@@ -6843,6 +6860,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|侵|彻|力|(|穿|甲|弹|)",
|
||||
L"|翻|搅|力|(|开|花|弹|)",
|
||||
L"|爆|炸|力|(|炸|子|儿|)",
|
||||
L"\n \nA multiplier to the bullet's heat.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6850,6 +6868,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \n即子弹穿透目标护甲的能力。\n \n该值大于1时,被子弹命中的护甲的防护值会成比例减少。\n \n反之,当该值小于1时,\n则增加了目标护甲的防护值。\n \n该数值越高越好。",
|
||||
L"\n \n该值决定子弹打穿护甲击中身体时的伤害力\n加成。\n \n该值大于1时,子弹在穿过护甲后会增加伤害。\n \n当该值小于1时,子弹穿过护甲后会减少伤害。\n \n该数值越高越好。",
|
||||
L"\n \n该值是子弹在击中目标前已经造成的潜在伤害的倍率。\n \n大于1的数值可以增加伤害,\n反之则减少伤害。\n \n该数值越高越好。",
|
||||
L"\n \n子弹温度系数。\n \n该数值越低越好。",
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -7006,6 +7025,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|制|退|力|频|次",
|
||||
L"|命|中|率|修|正",
|
||||
L"|精|瞄|修|正",
|
||||
L"|单|发|射|击|温|度",
|
||||
L"|冷|却|参|数",
|
||||
L"|卡|壳|阈|值",
|
||||
L"|损|坏|阈|值",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7059,6 +7086,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \n这是射手在点射或者连发时,频繁评估\n制退力大小以应对后坐力的能力。\n \n较高的频率使连发的总体精度更高,此外,由于射手能\n正确制退后坐力,其长点射也更\n加准确。\n \n该数值越低越好。",
|
||||
L"\n \n当安装于远程武器上时,该物品修正武器的命\n中率。\n \n命中率的提高使该武器在精瞄时更容易命中\n目标。\n \n该数值越高越好。",
|
||||
L"\n \n当安装于远程武器上时,该物品修正武器的精\n瞄加成。\n \n精瞄加成的提高使该武器在精瞄时更容易命\n中远距离的目标。\n \n该数值越高越好。",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7111,6 +7146,11 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \n这是射手频繁估量制退力大小以应对后坐力的能力。\n \n如果武器缺乏点射和连发功能,则此能力无\n效。\n \n低修正值能提高连发的总体精度,此外,由于射手能\n正确制退后坐力,其长点射也更\n加准确。\n \n该数值越低越好。",
|
||||
L"\n \n由于所装的附件,弹药或其内置特性,这件武\n器的命中率得到了修正。\n \n命中率的提高使该武器在精瞄时\n更容易命中目标。\n \n该数值越高越好。",
|
||||
L"\n \n由于所装的附件,弹药或其内置特性,这件武\n器的精瞄加成得到了修正。\n \n精瞄加成的提高能够使该武器在精瞄时更容易命\n中远距离的目标。\n \n该数值越高越好。",
|
||||
L"\n \n单发射击所造成的温度。\n所使用的子弹类型对本值有影响。",
|
||||
L"\n \n每回合自动冷却所降低的温度值。",
|
||||
L"\n \n当武器温度超过卡壳阈值时,\n卡壳将更容易发生。",
|
||||
L"\n \n当武器温度超过损坏阈值时,\n武器将更容易损坏。",
|
||||
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7123,6 +7163,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] =
|
||||
{
|
||||
L"当前温度为: ",
|
||||
L"很低",
|
||||
L"低",
|
||||
L"中等",
|
||||
L"高",
|
||||
L"很高",
|
||||
L"危险",
|
||||
L"很危险",
|
||||
L"致命",
|
||||
L"未知",
|
||||
L"."
|
||||
};
|
||||
|
||||
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"列兵 ", //L"Pvt. ", //ExpLevel 1
|
||||
L"下士 ", //L"Pfc. ", //ExpLevel 2
|
||||
L"中士 ", //L"Cpl. " //ExpLevel 3
|
||||
L"上士 ", //L"Sgt. ", //ExpLevel 4
|
||||
L"少尉 ", //L"Lt. ", //ExpLevel 5
|
||||
L"中尉 ", //L"Cpt. ", //ExpLevel 6
|
||||
L"上尉 ", //L"Maj. ", //ExpLevel 7
|
||||
L"少校 ", //L"Lt.Col. ", //ExpLevel 8
|
||||
L"上校 ", //L"Col. ", //ExpLevel 9
|
||||
L"将军 " //L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
|
||||
+78
-5
@@ -2869,6 +2869,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Naar Sector", // L"Go to Sector",
|
||||
L"Naar Landk.", // L"Go to Map",
|
||||
L"Vanaf deze kant kun je de sector niet verlaten.", // L"You can't leave the sector from this side.",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s is te ver weg.", // L"%s is too far away.",
|
||||
L"Verwijder Boomtoppen", // L"Removing Treetops",
|
||||
L"Tonen Boomtoppen", // L"Showing Treetops",
|
||||
@@ -4450,7 +4451,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Verdraaid! Dit on-line bestelformulier accepteert maar 10 items per keer. Als je meer wil bestellen (en dat hopen we), plaats dan afzonderlijke orders en accepteer onze excuses.",
|
||||
L"Verdraaid! Dit on-line bestelformulier accepteert maar " ,//First part
|
||||
L" items per keer. Als je meer wil bestellen (en dat hopen we), plaats dan afzonderlijke orders en accepteer onze excuses.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5060,10 +5062,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Stat Progress Bars", // Show progress towards stat increase // TODO.Translate
|
||||
L"Alternate Strategy-Map Colors", // Change color scheme of Strategic Map
|
||||
L"Alternate bullet graphics", // Show alternate bullet graphics (tracers) // TODO.Translate
|
||||
L"Activate New CTH system", // use NCTH
|
||||
//L"Activate New CTH system", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Show Face gear graphics", // TODO.Translate
|
||||
L"Show Face gear icons",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate
|
||||
L"Uit te schakelen Cursor Swap", // Disable Cursor Swap
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5165,10 +5170,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, shows character progress towards gaining levels.", // TODO.Translate
|
||||
L"When ON, the Strategic Map will be colored differently based on exploration.",
|
||||
L"When ON, alternate bullet graphics will be shown when you shoot.", // TODO.Translate
|
||||
L"When ON, New CTH system and cursor is used.",
|
||||
//L"When ON, New CTH system and cursor is used.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate
|
||||
L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate
|
||||
L"Wanneer ingeschakeld, zal de cursor niet te schakelen tussen uitwisseling positie en andere acties. Druk op |x om snelle uitwisseling te starten.",
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Force all pending Bobby Ray shipments",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5262,11 +5270,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"New / Old",
|
||||
L"New / New",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5589,6 +5604,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6069,6 +6087,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
@@ -6836,6 +6855,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|A|r|m|o|r |P|i|e|r|c|i|n|g",
|
||||
L"|B|u|l|l|e|t |T|u|m|b|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6843,6 +6863,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the Protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet increases the\nprotection value of the armor instead.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6999,6 +7020,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|C|o|u|n|t|e|r|-|F|o|r|c|e |F|r|e|q|u|e|n|c|y",
|
||||
L"|T|o|-|H|i|t |B|o|n|u|s",
|
||||
L"|A|i|m |B|o|n|u|s",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7052,6 +7081,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7104,6 +7141,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7116,6 +7157,38 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
+81
-7
@@ -2872,6 +2872,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Go to Sector",
|
||||
L"Go to Map",
|
||||
L"You can't leave the sector from this side.",
|
||||
L"You can't leave in turn based mode.",
|
||||
L"%s is too far away.",
|
||||
L"Removing Treetops",
|
||||
L"Showing Treetops",
|
||||
@@ -4436,7 +4437,7 @@ STR16 BobbyRText[] =
|
||||
|
||||
L"Weight:", // Weight of all the items of the same type
|
||||
L"Cal:", // the caliber of the gun
|
||||
L"Mag:", // number of rounds of ammo the Magazine can hold
|
||||
L"Size:", // number of rounds of ammo the Magazine can hold
|
||||
L"Rng:", // The range of the gun
|
||||
L"Dam:", // Damage of the weapon
|
||||
L"ROF:", // Weapon's Rate Of Fire, acronym ROF
|
||||
@@ -4450,7 +4451,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Darn! This on-line order form will only accept 10 items per order. If you're looking to order more stuff (and we hope you are), kindly make a separate order and accept our apologies.",
|
||||
L"Darn! This on-line order form will only accept " ,//First part
|
||||
L" items per order. If you're looking to order more stuff (and we hope you are), kindly make a separate order and accept our apologies.", //Second part
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -4889,7 +4891,8 @@ STR16 zSaveLoadText[] =
|
||||
L"Loaded the game successfully",
|
||||
L"ERROR loading the game!",
|
||||
|
||||
L"The game version in the saved game file is different from the current version. It is most likely safe to continue. Continue?",
|
||||
L"The game version in the saved game file is different than the current version. It is most likely safe to continue. Continue?",
|
||||
|
||||
L"The saved game files may be invalidated. Do you want them all deleted?",
|
||||
|
||||
//Translators, the next two strings are for the same thing. The first one is for beta version releases and the second one
|
||||
@@ -5060,10 +5063,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Stat Progress Bars", // Show progress towards stat increase
|
||||
L"Alternate Strategy Map Colors", // Change color scheme of Strategic Map
|
||||
L"Alternate Bullet Graphics", // Show alternate bullet graphics (tracers)
|
||||
L"Use new Chance to Hit System", // use NCTH
|
||||
// L"Use new Chance to Hit System", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks
|
||||
L"Show Face Gear Graphics",
|
||||
L"Show Face Gear Icons",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5165,10 +5171,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, shows character progress towards gaining levels.",
|
||||
L"When ON, the strategic map will be colored differently based on exploration.",
|
||||
L"When ON, alternate bullet graphics will be shown when you shoot.",
|
||||
L"When ON, the new chance to hit system and cursor is used.",
|
||||
// L"When ON, the new chance to hit system and cursor is used.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"When ON, you will see the equipped face gear on the merc portraits.",
|
||||
L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.",
|
||||
L"When ON, AI turns will be much faster.",
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Force all pending Bobby Ray shipments",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5260,12 +5269,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"Old / Old",
|
||||
L"New / Old",
|
||||
L"New / New",
|
||||
|
||||
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5583,6 +5598,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary)
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6067,7 +6085,8 @@ STR16 New113Message[] =
|
||||
L"%s is hit to groin and falls down in pain!",
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.",
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6102,6 +6121,7 @@ STR16 New113HAMMessage[] =
|
||||
|
||||
};
|
||||
|
||||
// WANNE: This hardcoded text should not be used anymore in the game, because we now have those texts externalized in the "TableData\Email\EmailMercLevelUp.xml" file!
|
||||
// WANNE: This are the email texts, when one of the 4 new 1.13 MERC mercs have levelled up, that Speck sends
|
||||
// INFO: Do not replace the ± characters. They indicate the <B2> (-> Newline) from the edt files
|
||||
STR16 New113MERCMercMailTexts[] =
|
||||
@@ -6116,6 +6136,7 @@ STR16 New113MERCMercMailTexts[] =
|
||||
L"Please take note. Due to the improved performance of Biggens his fees for services rendered have undergone an increase. ± ± Speck T. Kline ± ",
|
||||
};
|
||||
|
||||
// WANNE: This hardcoded text should not be used anymore in the game, because we now have those texts externalized in the "TableData\Email\EmailMercAvailable.xml" file!
|
||||
// WANNE: This is email text (each 2 line), when we left a message on AIM and now the merc is back
|
||||
STR16 New113AIMMercMailTexts[] =
|
||||
{
|
||||
@@ -6832,6 +6853,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|A|r|m|o|r |P|i|e|r|c|i|n|g",
|
||||
L"|B|u|l|l|e|t |T|u|m|b|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n",
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6839,6 +6861,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the Protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet increases the\nprotection value of the armor instead.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6995,6 +7018,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|C|o|u|n|t|e|r|-|F|o|r|c|e |F|r|e|q|u|e|n|c|y",
|
||||
L"|T|o|-|H|i|t |B|o|n|u|s",
|
||||
L"|A|i|m |B|o|n|u|s",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e",
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7048,6 +7079,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.",
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7100,6 +7139,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7112,6 +7155,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] =
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
+76
-4
@@ -2871,6 +2871,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"GO",
|
||||
L"Carte",
|
||||
L"Vous ne pouvez pas quitter ce secteur par ce côté.",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s est trop loin.",
|
||||
L"Enlever cime des arbres",
|
||||
L"Afficher cime des arbres",
|
||||
@@ -4440,7 +4441,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Pas de chance ! Vous ne pouvez commander que 10 objets à la fois. Si vous désirez passer une commande plus importante, il vous faudra remplir un nouveau bon de commande.",
|
||||
L"Pas de chance ! Vous ne pouvez commander que " ,//First part
|
||||
L" objets à la fois. Si vous désirez passer une commande plus importante, il vous faudra remplir un nouveau bon de commande.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5050,10 +5052,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Afficher deviation balle", // Screen messages showing amount and direction of shot deviation.
|
||||
L"Couleur alternative map", // Change color scheme of Strategic Map
|
||||
L"Montrer tirs alternatifs", // Show alternate bullet graphics (tracers)
|
||||
L"Activé NCTH", // use NCTH
|
||||
//L"Activé NCTH", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Afficher équipments portrait",
|
||||
L"Afficher icones portraits",
|
||||
L"Désactiver échange curseur", // Disable Cursor Swap
|
||||
L"Désactiver échange curseur", // Disable Cursor Swap
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Forcer envois Bobby Ray", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5155,10 +5160,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"Si activé, montre la progression des caractères à travers le gain de niveaux.",
|
||||
L"Si activé, la carte stratégique sera coloré différemment selon l'exploration.",
|
||||
L"Si activé, le graphisme des tirs alternatifs sera affiché quand vous tirerez.",
|
||||
L"Si activé, le nouveau systéme NCTH (chance de toucher) \nainsi que le nouveau curseur seront utilisés.",
|
||||
//L"Si activé, le nouveau systéme NCTH (chance de toucher) \nainsi que le nouveau curseur seront utilisés.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"Si activé, vous verrez l'équipement du mercenaire à travers son portrait.",
|
||||
L"Si activé, vous verrez les icones correspondant à l'équipement porté en bas à droite du portrait.",
|
||||
L"Si activé, le curseur ne basculera pas entre changer de position et une autre action. Appuyez sur |x pour initier un échange rapide.",
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Forcer tous les envois en attente de Bobby Ray",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5250,11 +5258,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"Nouveau / Ancien",
|
||||
L"Nouveau / Nouveau",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5575,6 +5590,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6051,6 +6069,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Attention: Cadavre ennemi trouvé !!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6811,6 +6830,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|T|a|u|x |d|e |p|é|n|é|t|r|a|t|i|o|n",
|
||||
L"|C|u|l|b|u|t|e |d|e |b|a|l|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6818,6 +6838,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nCeci est la capacité de la balle à pénétrer\nl'armure de la cible.\n \nAvec une valeur supérieure à 1.0, la balle réduiera fortement\nla valeur de protection de l'armure touchée.\n \nValeur élevée recommandée.",
|
||||
L"\n \nDétermine le potentiel de la balle à faire des dégâts\nsur le corps après avoir traversée l'armure.\n \nAvec une valeur supérieure à 1.0, la balle fera de lourds dégâts\naprès pénétration\nAvec une valeur inférieure à 1.0, la balle fera des dégâts moindre\naprès pénétration.\n \nValeur élevée recommandée.",
|
||||
L"\n \nMultiplicateur de potentiel de dégâts juste avant\nl'impact de la balle.\n \nAvec une valeur supérieure à 1.0, la balle fera de lourds dégâts\nUne valeur inférieure à 1.0 fera des dégâts moindre.\n \nValeur élevée recommandée.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6974,6 +6995,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|F|r|é|q|u|e|n|c|e |C|o|n|t|r|e|-|f|o|r|c|e",
|
||||
L"|B|o|n|u|s |c|h|a|n|c|e |d|e |t|o|u|c|h|e|r",
|
||||
L"|B|o|n|u|s |d|e |v|i|s|é|e",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7027,6 +7056,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nFréquence de recalcule du tireur pour ajuster la force\nqu'il doit mettre pour contrer le recul de l'arme, lors d'un tir\nen mode Rafale ou Auto.\n \nUne fréquence faible rend la salve plus précise en supposant que\nle tireur puisse surmonter le recul correctement.\n \nValeur faible recommandée.",
|
||||
L"\n \nLorsque attaché à une arme de distance, cet objet\nmodifie sa chance de toucher la cible (CTH).\n \nAugmenter son CTH permet de toucher plus souvent\nune cible,en supposant que le tireur a bien visé.\n \nValeur élevée recommandée.",
|
||||
L"\n \nLorsque attaché à une arme de distance, cet objet\nmodifie ses bonus de visée.\n \nAugmenter les bonus de visées permet de toucher\nune cible à longue distance plus souvent, en supposant\nque le tireur a bien visé.\n \nValeur élevée recommandée.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7079,6 +7116,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nFréquence de recalcule du tireur pour ajuster la force\nqu'il doit mettre pour contrer le recul de l'arme, lors d'un tir\nen mode Rafale ou Auto.\n \nUne fréquence faible rend la salve plus précise en supposant que\nle tireur puisse surmonter le recul correctement.\n \nValeur faible recommandée.",
|
||||
L"\n \nLa chance de toucher la cible avec cette arme\na été modifié par une munition, un accessoire ou\nun attribut inhérent à l'arme.\n \nAugmenter la chance de toucher permet de toucher plus souvent\nune cible,en supposant que le tireur a bien visé.\n \nValeur élevée recommandée.",
|
||||
L"\n \nLes bonus de visée de cette arme ont été modifié\npar une munition, un accessoire ou un attribut inhérent à l'arme.\n \nAugmenter les bonus de visées permet de toucher\nune cible à longue distance plus souvent, en supposant\nque le tireur a bien visé.\n \nValeur élevée recommandée.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7091,6 +7132,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
+72
-4
@@ -2876,6 +2876,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Gehe zu Karte",
|
||||
|
||||
L"Sie können den Sektor von dieser Seite aus nicht verlassen.",
|
||||
L"Sie können den Sektor nicht verlassen im Rundenmodus.",
|
||||
L"%s ist zu weit weg.",
|
||||
L"Baumkronen entfernen",
|
||||
L"Baumkronen zeigen",
|
||||
@@ -4349,7 +4350,8 @@ STR16 BobbyRText[] =
|
||||
L"* %% funktionstüchtig", // if the item is damaged, displays the percent function of the item
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
L"Mist! Mit diesem Formular können Sie nur 10 Sachen bestellen. Wenn Sie mehr wollen (was wir sehr hoffen), füllen Sie bitte noch ein Formular aus.",
|
||||
L"Mist! Mit diesem Formular können Sie nur " ,//First part
|
||||
L" Sachen bestellen. Wenn Sie mehr wollen (was wir sehr hoffen), füllen Sie bitte noch ein Formular aus.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -4910,10 +4912,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Status Trainingsfortschritt", // Show progress towards stat increase
|
||||
L"Alternatives Kartenfarbschema", // Change color scheme of Strategic Map
|
||||
L"Alternative Projektil-Grafik", // Show alternate bullet graphics (tracers)
|
||||
L"Neues Zielsystem verwenden", // use NCTH
|
||||
//L"Neues Zielsystem verwenden", // use NCTH
|
||||
L"Söldnerrang anzeigen.", // shows mercs ranks
|
||||
L"Gesichtsequipment-Grafiken",
|
||||
L"Gesichtsequipment-Icons",
|
||||
L"Cursor-Wechsel deaktivieren", // Disable Cursor Swap
|
||||
L"Autom. schnelle Gegner-Züge", // Automatic fast forward through AI turns
|
||||
//L"Waffen können überhitzen",
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Erzwinge BR Lieferung", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5015,10 +5020,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"Wenn diese Funktion aktiviert ist, werden die Söldnerwerte visuell mit ihrem Trainingsfortschritt unterlegt.",
|
||||
L"Wenn diese Funktion aktiviert ist, wird die Strategische Karte entsprechend Ihres Erkundungsfortschrittes unterschiedlich eingefärbt.",
|
||||
L"Wenn diese Funktion aktiviert ist, werden geschossene Projektile visuell mit Tracer-Effekten dargestellt.",
|
||||
L"Wenn diese Funktion aktiviert ist, wird das neue Zielsystem und der neue Zielcursor verwendet.",
|
||||
//L"Wenn diese Funktion aktiviert ist, wird das neue Zielsystem und der neue Zielcursor verwendet.",
|
||||
L"Wenn diese Funktion aktiviert ist, werden die Ränge der Söldner in der Strategischen Karte vor dem Namen angezeigt.",
|
||||
L"Wenn diese Funktion aktiviert ist, sehen sie das Gesichtsequipment Ihrer Söldner direkt auf dem Portrait.",
|
||||
L"Wenn diese Funktion aktiviert ist, sehen sie Icons für das Gesichtsequipment in der rechten unteren Ecke des Portraits.",
|
||||
L"Wenn diese Funktion aktiviert ist, wird der Mauscursor nicht automatisch wechseln zwischen Personen-Positionswechsel und weiteren Aktionen.\nFür manuellen Positionswechsel drücken Sie |x.",
|
||||
L"Wenn diese Funktion aktiviert ist, werden gegnerische Züge schneller durchgeführt.",
|
||||
//L"Wenn diese Funktion aktiviert ist, können sich Waffen überhiten bei schneller Schussfolge.",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Force all pending Bobby Ray shipments",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5114,6 +5122,11 @@ STR16 gzGIOScreenText[] =
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Schneller Bobby Ray Lieferungen",
|
||||
L"Inventarzugriff kostet APs",
|
||||
L"Neues Zielsystem",
|
||||
L"Verbesserte Unterbrechungen",
|
||||
L"Waffen-Überhitzung",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5429,6 +5442,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSpielstand%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"Spielstand%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary)
|
||||
L"Mausberech begrenzen, damit Mauscursor innerhalb des Spielfensters bleibt.", // 104
|
||||
L"Mausbereich wieder freigeben, um uneingeschränkte Mausbewebung zu erhalten.", // 105
|
||||
};
|
||||
|
||||
CHAR16 ItemPickupHelpPopup[][40] =
|
||||
@@ -5794,7 +5810,7 @@ STR16 gzLateLocalizedString[] =
|
||||
L"%s feuert %d Schüsse mehr als beabsichtigt!",
|
||||
L"%s feuert einen Schuss mehr als beabsichtigt!",
|
||||
|
||||
L"Sie müssen zuerst das Gegenstandsbeschreibungsfenster schließen!", // TODO.Translate
|
||||
L"Sie müssen zuerst das Gegenstandsbeschreibungsfenster schließen!",
|
||||
};
|
||||
|
||||
STR16 gzCWStrings[] =
|
||||
@@ -5899,6 +5915,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Zu wenig APs! Es werden %d APs benötigt, Sie haben aber nur %d APs.",
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6663,6 +6680,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|R|ü|s|t|u|n|g|s|d|u|r|c|h|s|c|h|l|a|g",
|
||||
L"|K|u|g|e|l|s|t|u|r|z",
|
||||
L"|E|x|p|l|o|s|i|o|n |v|o|r |E|i|n|s|c|h|l|a|g",
|
||||
L"|T|e|m|p|e|r|a|t|u|r |M|o|d|i|f|i|k|a|t|o|r",
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6670,6 +6688,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nDas ist die Fähigkeit der Kugel, in die Rüstung\neines Ziels einzudringen.\n \nWenn der Wert grösser als 1.0 ist, reduziert die Kugel \nverhältnismäßig den Schutz jeglicher Rüstung auf die sie eintrifft.\n \nIst der Wert kleiner als 1.0, tritt die Kugel weniger tief in die Rüstung des Ziels ein.\n \nHöher ist besser.",
|
||||
L"\n \nBestimmt eine verhältnismäßige Zunahme des Schadenspotentials,\nsobald die Kugel die Rüstung des Ziels\ndurchbricht und den Körper dahinter trifft.\n \nWerte über 1.0 erhöhen, Werte unter 1.0 reduzieren das Schadenspotential\nder durchbrochenen Kugel.\n \nHöher ist besser.",
|
||||
L"\n \nEin Multiplikator zum Schadenspotential der Kugel,\nder vor dem Treffen des Zieles angewandt wird.\n \nWerte über 1.0 erhöhen, Werte unter 1.0 reduzieren den Schaden.\n \nHöher ist besser.",
|
||||
L"\n \nProzentuale zusätzliche Hitze\ndurch diese Munitionsart.\n \nNiedriger ist besser.",
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6826,6 +6845,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|G|e|g|e|n|w|i|r|k|e|n|-|H|ä|u|f|i|g|k|e|i|t",
|
||||
L"|T|r|e|f|f|e|r|b|o|n|u|s",
|
||||
L"|Z|i|e|l|b|o|n|u|s",
|
||||
L"|E|r|z|e|u|g|t|e |H|i|t|z|e",
|
||||
L"|A|b|k|ü|h|l|f|a|k|t|o|r",
|
||||
L"|L|a|d|e|h|e|m|m|u|n|g|s|s|c|h|r|a|n|k|e",
|
||||
L"|H|i|t|z|e|s|c|h|a|d|e|n|s|s|c|h|r|a|n|k|e",
|
||||
L"|M|o|d|i|f|i|k|a|t|o|r|-|E|r|z|e|u|g|t|e |H|i|t|z|e",
|
||||
L"|M|o|d|i|f|i|k|a|t|o|r|-|A|b|k|ü|h|l|f|a|k|t|o|r",
|
||||
L"|M|o|d|i|f|i|k|a|t|o|r|-|L|a|d|e|h|e|m|m|u|n|g|s|s|c|h|r|a|n|k|e",
|
||||
L"|M|o|d|i|f|i|k|a|t|o|r|-|H|i|t|z|e|s|c|h|a|d|e|n|s|s|c|h|r|a|n|k|e",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -6879,6 +6906,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nDie Fähigkeit des Schützen einzuschätzen\nwieviel Kraft er während Feuerstoß-/Autofeuersalven\nbenötigt um den Rückstoß auszugleichen.\n \nNiedriger ist besser.",
|
||||
L"\n \nDieser Gegenstand beeinflusst die Trefferchance\n, wenn er getragen oder an einen\ngetragenen Gegenstand angebracht wird.\n \nHöher ist besser.",
|
||||
L"\n \nDieser Gegenstand beeinflusst den Zielbonus\n, wenn er getragen oder an einen\ngetragenen Gegenstand angebracht wird.\n \nHöher ist besser.",
|
||||
L"\n \nEin Schuss erzeugt soviel Hitze. Munitionstypen und Anbauten können diesen Wert verändern.\n \nNiedriger ist besser.",
|
||||
L"\n \nIn jedem Zug wird die Temperatur um diesen Wert gesenkt.\n \nHöher ist besser.",
|
||||
L"\n \nWenn die Temperatur diesen Wert überschreitet, kommt es leichter zu Ladehemmungen.\n \nHöher ist besser.",
|
||||
L"\n \nWenn die Temperatur diesen Wert überschreitet, wird der Gegenstand leichter beschädigt.\n \nHöher ist besser.",
|
||||
L"\n \nErzeugte Hitze wird um diesen Prozentsatz erhöht.\n \nNiedriger ist besser.",
|
||||
L"\n \nAbkühlung wird um diesen Prozentsatz erhöht.\n \nHöher ist besser.",
|
||||
L"\n \nLadehemmungsschranke wird um diesen Prozentsatz erhöht.\n \nHöher ist besser.",
|
||||
L"\n \nHitzeschadensschranke wird um diesen Prozentsatz erhöht.\n \nHöher is besser.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -6931,6 +6966,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nDas ist die Fähigkeit des Schützen Rückstöße\ngenauer auszugleichen.\n \nDies hat keine Wirkung bei Einzelschüssen!\n \nEin hoher Wert hilft dem Schützen die Mündung der Waffe\nbei Salven genauer auf das Ziel zu richten.\n \nNiedriger ist besser.",
|
||||
L"\n \nDer Treffer Modifikator wird verändert durch\nMunition, Erweiterungen oder eingebauter Attribute.\n \nEin erhöhter Treffer Modifikator erlaubt es entfernte Ziele\n öfter zu treffen sofern\nanständig gezielt wird.\n \nHöher ist besser.",
|
||||
L"\n \nDer Zielbonus wird verändert durch\nMunition, Erweiterungen oder eingebauter Attribute.\n \nEin erhöhter Zielbonus erlaubt es entfernte Ziele\n öfter zu treffen sofern\nanständig gezielt wird.\n \nHöher ist besser.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -6943,6 +6982,35 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Rekr. ", //ExpLevel 1
|
||||
L"Gfr. ", //ExpLevel 2
|
||||
L"Kpl. ", //ExpLevel 3
|
||||
L"Zgf. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Hptm. ", //ExpLevel 6
|
||||
L"Mjr. ", //ExpLevel 7
|
||||
L"Bgdr. ", //ExpLevel 8
|
||||
L"GenLt. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
|
||||
+77
-5
@@ -2864,6 +2864,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Vai nel settore",
|
||||
L"Vai alla mappa",
|
||||
L"Non puoi uscire dal settore da questa parte.",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s è troppo lontano.",
|
||||
L"Rimuovi le fronde degli alberi",
|
||||
L"Mostra le fronde degli alberi",
|
||||
@@ -4438,7 +4439,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Darn! Quest'ordine qui accetterà solo 10 oggetti. Se avete intenzione di ordinare più merce (ed è quello che speriamo), fate un ordine a parte e accettate le nostre scuse.",
|
||||
L"Darn! Quest'ordine qui accetterà solo " ,//First part
|
||||
L" oggetti. Se avete intenzione di ordinare più merce (ed è quello che speriamo), fate un ordine a parte e accettate le nostre scuse.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5046,10 +5048,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Stat Progress Bars", // Show progress towards stat increase // TODO.Translate
|
||||
L"Alternate Strategy-Map Colors", // Change color scheme of Strategic Map
|
||||
L"Alternate bullet graphics", // Show alternate bullet graphics (tracers) // TODO.Translate
|
||||
L"Activate New CTH system", // use NCTH
|
||||
//L"Activate New CTH system", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Show Face gear graphics", // TODO.Translate
|
||||
L"Show Face gear icons",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate
|
||||
L"Disabilita Swap Cursore", // Disable Cursor Swap
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5151,10 +5156,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, shows character progress towards gaining levels.", // TODO.Translate
|
||||
L"When ON, the Strategic Map will be colored differently based on exploration.",
|
||||
L"When ON, alternate bullet graphics will be shown when you shoot.", // TODO.Translate
|
||||
L"When ON, New CTH system and cursor is used.",
|
||||
//L"When ON, New CTH system and cursor is used.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate
|
||||
L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate
|
||||
L"Se attivato, il cursore non si alternerà tra la posizione di scambio e altre azioni. Premere |x per avviare lo scambio rapido.",
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Force all pending Bobby Ray shipments",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5249,11 +5257,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"New / Old",
|
||||
L"New / New",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5576,6 +5591,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6059,6 +6077,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
@@ -6825,6 +6844,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|A|r|m|o|r |P|i|e|r|c|i|n|g",
|
||||
L"|B|u|l|l|e|t |T|u|m|b|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6832,6 +6852,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the Protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet increases the\nprotection value of the armor instead.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6988,6 +7009,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|C|o|u|n|t|e|r|-|F|o|r|c|e |F|r|e|q|u|e|n|c|y",
|
||||
L"|T|o|-|H|i|t |B|o|n|u|s",
|
||||
L"|A|i|m |B|o|n|u|s",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7041,6 +7070,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7093,6 +7130,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7105,6 +7146,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
+75
-3
@@ -2879,6 +2879,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Idź do sektora",
|
||||
L"Otwórz mapę",
|
||||
L"Nie można opuŚcić sektora z tej strony.",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s jest zbyt daleko.",
|
||||
L"Usuń korony drzew",
|
||||
L"Pokaż korony drzew",
|
||||
@@ -4446,7 +4447,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Przepraszamy za to utrudnienie, ale na jednym zamówieniu może się znajdować tylko 10 pozycji! JeŚli potrzebujesz więcej, złóż kolejne zamówienie.",
|
||||
L"Przepraszamy za to utrudnienie, ale na jednym zamówieniu może się znajdować tylko " ,//First part
|
||||
L" pozycji! JeŚli potrzebujesz więcej, złóż kolejne zamówienie.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5057,10 +5059,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Stat Progress Bars", // Show progress towards stat increase // TODO.Translate
|
||||
L"Alternate Strategy-Map Colors", // Change color scheme of Strategic Map
|
||||
L"Alternate bullet graphics", // Show alternate bullet graphics (tracers) // TODO.Translate
|
||||
L"Activate New CTH system", // use NCTH
|
||||
//L"Activate New CTH system", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Show Face gear graphics", // TODO.Translate
|
||||
L"Show Face gear icons",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5162,10 +5167,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"Gdy WŁ¥CZONE, pokazuje postęp w doŚwiadczeniu postaci.",
|
||||
L"When ON, the Strategic Map will be colored differently based on exploration.",
|
||||
L"Gdy WŁ¥CZONE, zastępuje starą animację pocisku nową.",
|
||||
L"When ON, New CTH system and cursor is used.",
|
||||
//L"When ON, New CTH system and cursor is used.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate
|
||||
L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"WymuŚ wszystkie oczekiwane dostawy od Bobby Ray's.",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5257,11 +5265,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"Nowe / Stare",
|
||||
L"Nowe / Nowe",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5583,6 +5598,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6065,6 +6083,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6834,6 +6853,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|A|r|m|o|r |P|i|e|r|c|i|n|g",
|
||||
L"|B|u|l|l|e|t |T|u|m|b|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6841,6 +6861,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the Protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet increases the\nprotection value of the armor instead.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6997,6 +7018,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|C|o|u|n|t|e|r|-|F|o|r|c|e |F|r|e|q|u|e|n|c|y",
|
||||
L"|T|o|-|H|i|t |B|o|n|u|s",
|
||||
L"|A|i|m |B|o|n|u|s",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7050,6 +7079,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7102,6 +7139,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7114,6 +7155,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
//Ja25 UB
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
|
||||
+75
-3
@@ -2872,6 +2872,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Идти в сектор",
|
||||
L"Идти на карту",
|
||||
L"Этот сектор отсюда покинуть нельзя.",
|
||||
L"You can't leave in turn based mode.", // TODO.Translate
|
||||
L"%s слишком далеко.",
|
||||
L"Скрыть кроны деревьев",
|
||||
L"Показать кроны деревьев",
|
||||
@@ -4437,7 +4438,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Чёрт! В эту форму можно внести не более 10 позиций для одного заказа. Если вы хотите заказать больше (а мы надеемся, вы хотите), то заполните еще один заказ и примите наши извинения за неудобства.",
|
||||
L"Чёрт! В эту форму можно внести не более " ,//First part
|
||||
L" позиций для одного заказа. Если вы хотите заказать больше (а мы надеемся, вы хотите), то заполните еще один заказ и примите наши извинения за неудобства.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5040,10 +5042,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Подсветить навык к повышению", //Stat Progress Bars // Show progress towards stat increase
|
||||
L"Новая расцветка стратег. карты", //Alternate Strategy-Map Colors //Change color scheme of Strategic Map
|
||||
L"Заметная летящая пуля", // Show alternate bullet graphics (tracers)
|
||||
L"Новая система прицеливания", // use NCTH
|
||||
//L"Новая система прицеливания", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Показать снаряжение на голове", //Show Face gear graphics
|
||||
L"Показать иконки снаряжения",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Читерские настройки--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Ускорить доставку Бобби Рэя", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5145,10 +5150,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"Если включено, навык, \nкоторый вскоре повысится будет подсвечен.",
|
||||
L"Если включено, необследованные сектрора \nна стратегической карте будут чёрно-белыми.",
|
||||
L"Если включено, летящая пуля будет более заметной.",
|
||||
L"Если включено, будет задействована новая система прицеливания \nи новый курсор прицеливания.",
|
||||
//L"Если включено, будет задействована новая система прицеливания \nи новый курсор прицеливания.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"Если включено, на портрете наёмника будет отображено одетое головное снаряжение.",
|
||||
L"Если включено, в правом нижнем углу \nна портрете наёмника будут отображены иконки \nодетого головного снаряжения.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Выберите этот пункт чтобы груз Бобби Рэя прибыл немедленно.",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5241,11 +5249,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"новый / старая",
|
||||
L"новый / новая",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5563,6 +5578,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6042,6 +6060,7 @@ STR16 New113Message[] =
|
||||
/////
|
||||
L"Внимание: враг обнаружил труп!!!",
|
||||
L"%s [%d патр.]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 New113HAMMessage[] =
|
||||
@@ -6802,6 +6821,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|П|р|о|н|з|и|т|е|л|ь|н|о|с|т|ь |ч|е|р|е|з |б|р|о|н|ю",
|
||||
L"|П|а|д|е|н|и|е |п|а|т|р|о|н|ы",
|
||||
L"|П|р|е|д|в|а|р|и|т|е|л|ь|н|о|е |в|л|и|я|н|и|е |в|з|р|ы|в|а",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6809,6 +6829,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the Protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet increases the\nprotection value of the armor instead.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -6965,6 +6986,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|Ч|а|с|т|о|т|а |к|о|н|т|р|-|с|и|л|ы",
|
||||
L"|Б|о|н|у|с| |п|о|п|а|д|а|н|и|я",
|
||||
L"|Б|о|ну|с |п|р|и|ц|е|л|и|в|а|н|и|я",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7018,6 +7047,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7070,6 +7107,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7082,6 +7123,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
@@ -2873,6 +2873,7 @@ CHAR16 TacticalStr[][ MED_STRING_LENGTH ] =
|
||||
L"Go to Sector",
|
||||
L"Go to Map",
|
||||
L"You can't leave the sector from this side.",
|
||||
L"You can't leave in turn based mode.",
|
||||
L"%s is too far away.",
|
||||
L"Removing Treetops",
|
||||
L"Showing Treetops",
|
||||
@@ -4451,7 +4452,8 @@ STR16 BobbyRText[] =
|
||||
|
||||
//Popup that tells the player that they can only order 10 items at a time
|
||||
|
||||
L"Darn! This on-line order form will only accept 10 items per order. If you're looking to order more stuff (and we hope you are), kindly make a separate order and accept our apologies.",
|
||||
L"Darn! This on-line order form will only accept " ,//First part
|
||||
L" items per order. If you're looking to order more stuff (and we hope you are), kindly make a separate order and accept our apologies.",
|
||||
|
||||
// A popup that tells the user that they are trying to order more items then the store has in stock
|
||||
|
||||
@@ -5061,10 +5063,13 @@ STR16 zOptionsToggleText[] =
|
||||
L"Stat Progress Bars", // Show progress towards stat increase // TODO.Translate
|
||||
L"Alternate Strategy-Map Colors", // Change color scheme of Strategic Map
|
||||
L"Alternate bullet graphics", // Show alternate bullet graphics (tracers) // TODO.Translate
|
||||
L"Activate New CTH system", // use NCTH
|
||||
//L"Activate New CTH system", // use NCTH
|
||||
L"Show Merc Ranks", // shows mercs ranks // TODO.Translate
|
||||
L"Show Face gear graphics", // TODO.Translate
|
||||
L"Show Face gear icons",
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate
|
||||
L"Disable Cursor Swap", // Disable Cursor Swap
|
||||
L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate
|
||||
//L"Weapons Overheating", // TODO.Translate
|
||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||
@@ -5166,10 +5171,13 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, shows character progress towards gaining levels.", // TODO.Translate
|
||||
L"When ON, the Strategic Map will be colored differently based on exploration.",
|
||||
L"When ON, alternate bullet graphics will be shown when you shoot.", // TODO.Translate
|
||||
L"When ON, New CTH system and cursor is used.",
|
||||
//L"When ON, New CTH system and cursor is used.",
|
||||
L"When ON, ranks will be displayed before merc names in the strategic view.", // TODO.Translate
|
||||
L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate
|
||||
L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.",
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate
|
||||
L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.",
|
||||
L"When ON, AI turns will be much faster.", // TODO.Translate
|
||||
//L"When ON, weapons can be overheated when firing.", // TODO.Translate
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||
L"Force all pending Bobby Ray shipments",
|
||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||
@@ -5264,11 +5272,18 @@ STR16 gzGIOScreenText[] =
|
||||
L"New / Old",
|
||||
L"New / New",
|
||||
|
||||
// TODO.Translate
|
||||
// Squad Size
|
||||
L"Max. Squad Size",
|
||||
L"6",
|
||||
L"8",
|
||||
L"10",
|
||||
//L"Faster Bobby Ray Shipments",
|
||||
L"Inventory Manipulation Costs AP",
|
||||
|
||||
L"New Chance to Hit System",
|
||||
L"Improved Interrupt System",
|
||||
L"Weapon Overheating",
|
||||
};
|
||||
|
||||
STR16 gzMPJScreenText[] =
|
||||
@@ -5591,6 +5606,9 @@ STR16 pMessageStrings[] =
|
||||
L"AutoSaveGame%02d.sav", // 101
|
||||
L"Auto%02d.sav", // 102
|
||||
L"SaveGame%02d.sav", //103
|
||||
// Lock / release mouse in windowed mode (window boundary) // TODO.Translate
|
||||
L"Locking mouse cursor to stay within window boundary.", // 104
|
||||
L"Releasing mouse cursor to move outside window boundary.", // 105
|
||||
};
|
||||
|
||||
|
||||
@@ -6072,6 +6090,7 @@ STR16 New113Message[] =
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
L"Warning: enemy corpse found!!!",
|
||||
L"%s [%d rnds]\n%s %1.1f %s",
|
||||
L"Insufficient AP Points! Cost %d, you have %d.", // TODO.Translate
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
@@ -6839,6 +6858,7 @@ STR16 szUDBGenAmmoStatsTooltipText[]=
|
||||
L"|A|r|m|o|r |P|i|e|r|c|i|n|g",
|
||||
L"|B|u|l|l|e|t |T|u|m|b|l|e",
|
||||
L"|P|r|e|-|I|m|p|a|c|t |E|x|p|l|o|s|i|o|n",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|i|o|n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
@@ -6846,6 +6866,7 @@ STR16 szUDBGenAmmoStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the bullet's ability to penetrate\na target's armor.\n \nWhen above 1.0, the bullet proportionally\nreduces the protection value of any\narmor it hits.\n \nWhen below 1.0, the bullet has a minor impact on the protection value of the armor.\n \nHigher is better.",
|
||||
L"\n \nDetermines a proportional increase of damage\npotential once the bullet gets through the\ntarget's armor and hits the bodypart behind it.\n \nWhen above 1.0, the bullet's damage\nincreases after penetrating the armor.\n \nWhen below 1.0, the bullet's damage\npotential decreases after passing through armor.\n \nHigher is better.",
|
||||
L"\n \nA multiplier to the bullet's damage potential\nthat is applied immediately before hitting the\ntarget.\n \nValues above 1.0 indicate an increase in damage,\nvalues below 1.0 indicate a decrease.\n \nHigher is better.",
|
||||
L"\n \nAdditional heat generated by this ammunition.\n \nLower is better.", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szUDBGenExplosiveStatsTooltipText[]=
|
||||
@@ -7002,6 +7023,14 @@ STR16 szUDBAdvStatsTooltipText[]=
|
||||
L"|C|o|u|n|t|e|r|-|F|o|r|c|e |F|r|e|q|u|e|n|c|y",
|
||||
L"|T|o|-|H|i|t |B|o|n|u|s",
|
||||
L"|A|i|m |B|o|n|u|s",
|
||||
L"|S|i|n|g|l|e |S|h|o|t |T|e|m|p|e|r|a|t|u|r|e", // TODO.Translate
|
||||
L"|C|o|o|l|d|o|w|n |F|a|c|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d",
|
||||
L"|T|e|m|p|e|r|a|t|u|r|e |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|C|o|o|l|d|o|w|n |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|J|a|m |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
L"|D|a|m|a|g|e |T|r|e|s|h|o|l|d |M|o|d|i|f|i|c|a|t|o|r",
|
||||
};
|
||||
|
||||
// Alternate tooltip text for weapon Advanced Stats. Just different wording, nothing spectacular.
|
||||
@@ -7055,6 +7084,14 @@ STR16 szUDBAdvStatsExplanationsTooltipText[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil, during Burst\nor Autofire volleys.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's CTH value.\n \nIncreased CTH allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nWhen attached to a ranged weapon, this item\nmodifies the weapon's Aim Bonus.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nAmmunition types and attachments can\naffect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will jam more frequently.\n \nHigher is better.",
|
||||
L"\n \nIf an item's temperature is above this,\nit will be damaged more easily.\n \nHigher is better.",
|
||||
L"\n \nA gun's single shot temperature is\nincreased by this percentage.\n \nLower is better.",
|
||||
L"\n \nA gun's cooldown factor is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's jam threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
L"\n \nA gun's damage threshold is\nincreased by this percentage.\n \nHigher is better.",
|
||||
};
|
||||
|
||||
STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
@@ -7107,6 +7144,10 @@ STR16 szUDBAdvStatsExplanationsTooltipTextForWeapons[]=
|
||||
L"\n \nThis is the shooter's ability to\nfrequently reasses how much counter-force they\nneed to apply against a gun's recoil.\n \nNaturally, this has no effect if the weapon lacks\nboth Burst and Auto-Fire modes.\n \nLower frequency makes volleys more accurate on the whole,\nand also makes longer volleys more accurate assuming\nthe shooter can overcome recoil correctly.\n \nLower is better.",
|
||||
L"\n \nThis weapon's to-hit is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased To-Hit allows the gun to hit targets\nmore often, assuming it is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nThis weapon's Aim Bonus is being modified by\nan ammo, attachment, or built-in attributes.\n \nIncreased Aim Bonus allows the gun to hit\ntargets at longer ranges more often, assuming\nit is also well-aimed.\n \nHigher is better.",
|
||||
L"\n \nA single shot causes this much heat.\nThe type of ammunition can affect this value.\n \nLower is better.", // TODO.Translate
|
||||
L"\n \nEvery turn, the temperature is lowered\nby this amount.\nWeapon attachments can affect this.\n \nHigher is better.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will jam more frequently.",
|
||||
L"\n \nIf a gun's temperature is above this,\nit will be damaged more easily.",
|
||||
};
|
||||
|
||||
// HEADROCK HAM 4: Text for the new CTH indicator.
|
||||
@@ -7119,6 +7160,37 @@ STR16 gzNCTHlabels[]=
|
||||
// HEADROCK HAM 4: End new UDB texts and tooltips
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
// Flugente FTW 1: Temperature-based text similar to HAM 4's condition-based text.
|
||||
STR16 gTemperatureDesc[] = // TODO.Translate
|
||||
{
|
||||
L"Temperature is ",
|
||||
L"very low",
|
||||
L"low",
|
||||
L"medium",
|
||||
L"high",
|
||||
L"very high",
|
||||
L"dangerous",
|
||||
L"CRITICAL",
|
||||
L"DRAMATIC",
|
||||
L"unknown",
|
||||
L"."
|
||||
};
|
||||
|
||||
// TODO.Translate
|
||||
CHAR16* ranks[] =
|
||||
{ L"", //ExpLevel 0
|
||||
L"Pvt. ", //ExpLevel 1
|
||||
L"Pfc. ", //ExpLevel 2
|
||||
L"Cpl. ", //ExpLevel 3
|
||||
L"Sgt. ", //ExpLevel 4
|
||||
L"Lt. ", //ExpLevel 5
|
||||
L"Cpt. ", //ExpLevel 6
|
||||
L"Maj. ", //ExpLevel 7
|
||||
L"Lt.Col. ", //ExpLevel 8
|
||||
L"Col. ", //ExpLevel 9
|
||||
L"Gen. " //ExpLevel 10
|
||||
};
|
||||
|
||||
STR16 gzNewLaptopMessages[]=
|
||||
{
|
||||
L"Ask about our special offer!",
|
||||
|
||||
+4
-3
@@ -1045,7 +1045,8 @@ void MapScreenMessage( UINT16 usColor, UINT8 ubPriority, STR16 pStringA, ... )
|
||||
}
|
||||
|
||||
// HEADROCK HAM 3.6: Allow for longer lines.
|
||||
MAP_LINE_WIDTH = (SCREEN_WIDTH - 330);
|
||||
// Lejardo ARSProject
|
||||
MAP_LINE_WIDTH = (INTERFACE_WIDTH - 330);
|
||||
|
||||
pStringWrapperHead=LineWrap(uiFont, MAP_LINE_WIDTH, &usLineWidthIfWordIsWiderThenWidth, DestString);
|
||||
pStringWrapper=pStringWrapperHead;
|
||||
@@ -1142,7 +1143,7 @@ void DisplayStringsInMapScreenMessageList( void )
|
||||
//SetFontDestBuffer( FRAME_BUFFER, (SCREEN_WIDTH - 509), (SCREEN_HEIGHT - 114), (SCREEN_WIDTH - 233), (SCREEN_HEIGHT - 114) + 101, FALSE );
|
||||
// CHRISL: Use this setup if we want message box on the left side
|
||||
// HEADROCK HAM 3.6: Message window now as wide as possible. The money screen has been moved to the right side.
|
||||
SetFontDestBuffer( FRAME_BUFFER, 17, (SCREEN_HEIGHT - 114), (SCREEN_WIDTH - 330), (SCREEN_HEIGHT - 114) + 101, FALSE );
|
||||
SetFontDestBuffer( FRAME_BUFFER, (SCREEN_WIDTH - INTERFACE_WIDTH)/2 + 17, (SCREEN_HEIGHT - 114), (SCREEN_WIDTH - INTERFACE_WIDTH)/2 + (INTERFACE_WIDTH - 330), (SCREEN_HEIGHT - 114) + 101, FALSE );
|
||||
|
||||
SetFont( MAP_SCREEN_MESSAGE_FONT ); // no longer supports variable fonts
|
||||
SetFontBackground( FONT_BLACK );
|
||||
@@ -1176,7 +1177,7 @@ void DisplayStringsInMapScreenMessageList( void )
|
||||
// CHRISL: Change X parameter to dynamically generate from right edge of screen
|
||||
//mprintf_coded( (SCREEN_WIDTH - 506), sY, gMapScreenMessageList[ ubCurrentStringIndex ]->pString16 );
|
||||
// CHRISL: Use this line if we want to display from the left edge
|
||||
mprintf_coded( 20, sY, gMapScreenMessageList[ ubCurrentStringIndex ]->pString16 );
|
||||
mprintf_coded( (SCREEN_WIDTH - INTERFACE_WIDTH)/2 + 20, sY, gMapScreenMessageList[ ubCurrentStringIndex ]->pString16 );
|
||||
|
||||
sY = sY + usSpacing;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user