Author SHA1 Message Date
Marco Antonio J. Costaandmajcosta 3d3e1bbfc6 refactor Translate()
it returns true but no consumers use it. its return type is void, then
2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 738225d2a2 move ImportStrings to i18n 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 4be9b106f4 give more local functions internal linkage 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta af4eeb09f4 make local-only functions static 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 15821498a3 text declarations go into text.h 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 54bdce6c46 cleanup: dead code removal 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 433de0e67b use exhaustive switch instead of if statements 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 30e5d8f91c i18n: we already have one Language enum, no need for two 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 506ea842b8 i18n: pull some TUs that do not belong in Utils 2026-07-21 18:39:50 -03:00
Marco Antonio J. Costaandmajcosta 9adc1ad998 node20 is deprecated, clear the warnings
bump action versions and change the MSVC action to a composite one that doesn't use node at all

also remove msbuild which we don't need
2026-07-21 14:45:04 -03:00
Marco Antonio J. Costaandmajcosta 8d1877d26d read language from Language.ini file
to avoid having to ship a whole ja2.ini for languages that
currently don't

command-line /language:german still works, but INI file is
prioritized

format:

```
[Language]
LANGUAGE = ITALIAN
```
2026-07-21 14:42:52 -03:00
Marco Antonio J. Costaandmajcosta d03989051a remove Languages from CI
no need anymore
2026-07-21 11:23:08 -03:00
Marco Antonio J. Costaandmajcosta 5da2ee8bf6 better initialization of language defaults 2026-07-21 09:46:41 -03:00
Marco Antonio J. Costaandmajcosta aa0aac2bfe remove unused includes 2026-07-21 09:46:41 -03:00
ee098125e6 Strip dead per-language .slf entries from gGameLibaries
InitializeFileDatabase, the only reader of gGameLibaries[], is called
nowhere in the tree — VFS replaced this legacy loader. Delete the
7 #ifdef GERMAN/POLISH/DUTCH/ITALIAN/RUSSIAN/FRENCH/CHINESE entries
outright rather than runtime-selecting them.

NPC.h: two commented-out #if defined(CRIPPLED_VERSION)||defined(RUSSIAN)
triplets. AimMembers.cpp: two commented-out #ifdef POLISH character-remap
switch blocks. All already-dead. Verify grep for language macros outside
i18n/ now returns only unrelated hits (filename literal, dev-tool CLI flag,
stray comment, historical prose) — no #ifdef guards left.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 09:46:41 -03:00
Marco Antonio J. Costaandmajcosta bada3ef31a cleanup: remove last remnants of language preprocessor definitions
good riddance
2026-07-21 09:46:41 -03:00
Marco Antonio J. Costaandmajcosta 00a805cc39 remove lying, outdated or superfluous comments
no more guards, no more cpp files included
2026-07-21 09:46:41 -03:00
fd2c74727e Make LANGUAGE switchable in runtime (#653)
squashed into a single commit because doing it in steps that all
compiled involved a lot of boilerplate that is pointless to commit to
the repository. GH still has the PR for reference.

g_lang, MAX_MESSAGES_ON_MAP_BOTTOM, and GetLanguagePrefix() were
compile-time constants selected by the ENGLISH/GERMAN/... build
define. They're now runtime, defaulting to the same per-exe value the
define used to pick, and overridable at startup from [Ja2 Settings]
LANGUAGE in Ja2.ini.

-

XMLTacticalMessages is filled at runtime from NewTacticalMessages.xml,
never from compiled-in per-language data: all 8 per-language definitions
were the identical all-zero { L"" }. Delete them and define one shared
buffer in Utils/XML_Language.cpp (the loader) instead of pointer-rebinding
it like the static tables — this drops 9 dead 800KB zero-buffers (8
namespaced copies in LanguageStrings.cpp plus the standalone one) and
leaves no bind-ordering hazard for the XML load path.

-

ExportStrings.cpp privately recompiled one language's full text table
by #including the raw _<LANG>Text.cpp inside namespace Loc, keyed off
the exe-level ENGLISH/GERMAN/... compile macro (whichever the build
happened to select). That's redundant with the pointer globals every
other subsystem already uses (Text.h / LanguageStrings.cpp).

Drop the private copy; the unqualified table names in Loc::ExportStrings
now resolve to the global pointer externs, which BindLanguageStrings has
already rebound to the runtime g_lang by the time this runs (EXPORT_STRINGS
ini flag, checked after GetRuntimeSettings in sgp.cpp). gs_Lang (used only
by Loc::Translate for the Polish/Russian byte remap on raw .edt exports) is
now derived from g_lang via ToLocLanguage, so the export always matches
whatever language is actually active instead of a compile-time pick.

-

Editor/popupmenu.cpp and Strategic/Scheduling.cpp kept their own
call-site extern of gszScheduleActions as CHAR16[NUM_SCHEDULE_ACTIONS][20]
after the real definition changed into a rebindable pointer
(CHAR16 (*)[20], LanguageStrings.cpp). MSVC decays the outer array
dimension when mangling globals, so both declarations produce the same
symbol (?gszScheduleActions@@3PAY0BE@_WA) and the mismatch linked
silently -- but the array-typed TUs then indexed the 4-byte pointer
slot itself as string data, so the editor schedule popup and the map
schedule message text read garbage.

-

add text.def to be single-source of truth on symbol names and use it
 .much simpler, less error prone if adding more strings

-

add pseudo interface for language state. MAX_SAGES_ON_BOTTOM must always
 change in lockstep with g_lang. this isn't foolproof but better

---------

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-21 05:33:03 -03:00
steph-pgandAsdow ba64ed53c6 Items can now be taken from non colapsed POWs 2026-07-02 19:16:55 +03:00
Asdow c61f57bd9b Whitespace adjustment 2026-06-22 00:21:31 +03:00
Asdow 4d5593ebcb Fix render misalignment at 960x540 resolution
Should also work for any custom resolution that suffers from the same issue
2026-06-22 00:21:31 +03:00
Asdow 601fabf401 Fix tile rendering misalignment at 1440x900 and 1600x900 resolutions
Shamelessly stolen from Stracciatella code
2026-06-22 00:21:31 +03:00
steph-pgandAsdow eb8ecb31f0 fix POWs in LOS keeps you in turnbased mode 2026-06-20 20:03:16 +03:00
Asdow 2801af552e Set moved item old entry to not existing 2026-06-20 17:11:37 +03:00
Asdow ef30192b29 Leave merc equipment to current sector in UB 2026-06-20 08:49:56 +03:00
Asdow 392ba66df3 Enable dismissing mercs in UB before game start
Jerry Melo complains about too many mercs if player has hired over 6 mercs and refuses to fly. This allows player to dismiss mercs until the pilot is happy.
2026-06-20 08:49:56 +03:00
Asdow d4dd5f07df Disable contract renewal in UB 2026-06-20 08:49:56 +03:00
76 changed files with 2183 additions and 2379 deletions
+166 -27
View File
@@ -9,11 +9,6 @@ on:
# allows to manually trigger a build
workflow_dispatch:
inputs:
build_all_languages:
description: build all languages
required: false
default: false
type: boolean
assemble_release:
description: create release
required: false
@@ -27,7 +22,6 @@ jobs:
workflow_setup:
runs-on: ubuntu-latest
outputs:
languages_json_array: ${{ steps.global_vars.outputs.languages_json_array }}
assemble_release: ${{ steps.global_vars.outputs.assemble_release }}
steps:
- id: global_vars
@@ -37,15 +31,6 @@ jobs:
full_release='${{ ( github.repository == '1dot13/source' && github.ref_name == 'master' ) || startsWith(github.ref, 'refs/tags/v') }}'
if [[ '${{ inputs.build_all_languages }}' == 'true' || ( '${{ inputs.build_all_languages }}' == '' && "$full_release" == 'true' ) ]]
then
languages_json_array='["Chinese", "German", "English", "French", "Polish", "Italian", "Dutch", "Russian"]';
else
# English + some other language for compilation testing
languages_json_array='["German", "English"]'
fi
echo "languages_json_array=$languages_json_array" >> $GITHUB_OUTPUT
if [[ '${{ inputs.assemble_release }}' == 'true' || ( '${{ inputs.assemble_release }}' == '' && "$full_release" == 'true' ) ]]
then
assemble_release='true'
@@ -154,39 +139,193 @@ jobs:
cat dist/versions.env
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: versions.env
path: dist/
build:
# every executable contains all languages and picks one at runtime, so one build serves every package
compile:
needs: [ workflow_setup ]
runs-on: windows-latest # required for the MSVC toolchain
strategy:
fail-fast: false
matrix:
language: ${{ fromJson(needs.workflow_setup.outputs.languages_json_array) }}
uses: ./.github/workflows/build_language.yml
with:
language: ${{ matrix.language }}
assemble: ${{ needs.workflow_setup.outputs.assemble_release == 'true' }}
# at least English and some other lang have to work
continue-on-error: ${{ matrix.language != 'English' && matrix.language != 'German' }}
application: [ja2, ja2mapeditor, ja2ub, ja2ubmapeditor]
steps:
- name: Checkout source
uses: actions/checkout@v7
- name: Download versions.env
uses: actions/download-artifact@v8
with:
name: versions.env
path: artifacts
- name: Restore versions.env
shell: bash
run: cat artifacts/versions.env >> $GITHUB_ENV
# TODO: Move this into CMake, just taking the GitHub Actions parameters as -D variables
- name: Update GameVersion.cpp
shell: bash
run: |
set -eux
GAME_VERSION=$(echo "$GAME_VERSION" | tr -cd '[:print:]' | tr -d '"\\')
GAME_BUILD=$(echo "$GAME_BUILD_INFORMATION" | tr -cd '[:print:]' | tr -d '"\\')
sed -i "s|@Version@|${GAME_VERSION:0:15}|" Ja2/GameVersion.cpp
sed -i "s|@Build@|${GAME_BUILD:0:255}|" Ja2/GameVersion.cpp
cat Ja2/GameVersion.cpp
- name: Prepare build properties
shell: bash
run: |
set -eux
touch CMakePresets.json
JA2Application=$(echo '${{ matrix.application }}' | tr '[:lower:]' '[:upper:]')
echo "
JA2Application=$JA2Application
" >> $GITHUB_ENV
- uses: egor-tensin/vs-shell@v2
with:
arch: x86
- name: Prepare build
run: |
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DApplications="$Env:JA2Application"
- name: Build
run: |
cmake --build build/ -- -v
- name: List build artifacts
shell: bash
run: |
find build/
- name: Upload
uses: actions/upload-artifact@v7
with:
name: ${{ matrix.application }}
path: build/*.exe
# only the game data differs per language, every package gets the same executables
assemble:
needs: [ workflow_setup, compile ]
if: needs.workflow_setup.outputs.assemble_release == 'true'
runs-on: windows-latest # required for case-insensitive filesystem handling
# at least English has to work
continue-on-error: ${{ matrix.language != 'English' }}
strategy:
fail-fast: false
matrix:
language: [Chinese, German, English, French, Polish, Italian, Dutch, Russian]
steps:
- name: Download versions.env
uses: actions/download-artifact@v8
with:
name: versions.env
path: artifacts
- name: Restore versions.env
shell: bash
run: cat artifacts/versions.env >> $GITHUB_ENV
- name: Checkout gamedir
uses: actions/checkout@v7
with:
repository: ${{ env.GAMEDIR_REPOSITORY }}
ref: ${{ env.GAMEDIR_COMMIT_SHA }}
path: gamedir
- name: Checkout gamedir-languages
if: matrix.language != 'English'
uses: actions/checkout@v7
with:
repository: ${{ env.GAMEDIR_LANGUAGES_REPOSITORY }}
ref: ${{ env.GAMEDIR_LANGUAGES_COMMIT_SHA }}
path: gamedir-languages
- name: Copy gamedir-languages files to gamedir
if: matrix.language != 'English'
shell: bash
run: |
set -eux
cp -a gamedir-languages/${{ matrix.language }}_Version/* gamedir/
- name: Download applications
uses: actions/download-artifact@v8
with:
pattern: ja2*
path: artifacts
- name: Copy application files to gamedir
shell: bash
run: |
set -eux
for APP in ja2 ja2mapeditor ja2ub ja2ubmapeditor
do
mv artifacts/${APP}/*.exe gamedir/${APP}.exe
done
- name: Create version information file
shell: bash
run: |
set -eux
# "-" separates words, "_" combines words, see double-click behavior
DIST_PREFIX='JA2_113'
DIST_NAME="${DIST_PREFIX}-${GAME_VERSION}-G${GAMEDIR_COMMIT_SHA:0:4}L${GAMEDIR_LANGUAGES_COMMIT_SHA:0:4}-${{ matrix.language }}"
echo "DIST_NAME=$DIST_NAME" >> $GITHUB_ENV
echo "If you encounter problems during gameplay, please provide the following version information:
Distribution Name: $DIST_NAME
Game Version: $GAME_VERSION
Language: ${{ matrix.language }}
Build Information: $GAME_BUILD_INFORMATION
Source Repository: $GITHUB_REPOSITORY
Source Commit SHA: $GITHUB_SHA
Source Commit Date: $SOURCE_COMMIT_DATETIME
Gamedir Repository: $GAMEDIR_REPOSITORY
Gamedir Commit SHA: $GAMEDIR_COMMIT_SHA
Gamedir Commit Date: $GAMEDIR_COMMIT_DATETIME
Gamedir Languages Repository: $GAMEDIR_LANGUAGES_REPOSITORY
Gamedir Languages Commit SHA: $GAMEDIR_LANGUAGES_COMMIT_SHA
Gamedir Languages Commit Date: $GAMEDIR_LANGUAGES_COMMIT_DATETIME
" > "gamedir/${DIST_PREFIX}-Version.txt"
cat "gamedir/${DIST_PREFIX}-Version.txt"
- name: Create release archive
shell: bash
run: |
set -eux
mkdir dist/
cd gamedir/
7z a -bb -xr'!.*' "../dist/${DIST_NAME}.7z" .
- name: Upload
uses: actions/upload-artifact@v7
with:
name: ${{ matrix.language }}_release
path: dist/
compression-level: 0
release:
needs: [ workflow_setup, build ]
needs: [ workflow_setup, assemble ]
if: needs.workflow_setup.outputs.assemble_release == 'true'
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: dist
pattern: '*_release'
merge-multiple: true
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
path: source
fetch-depth: 1
-206
View File
@@ -1,206 +0,0 @@
name: build language
on:
workflow_call:
inputs:
language:
description: 'any of Chinese German English French Polish Italian Dutch Russian'
required: true
default: 'English'
type: string
assemble:
description: 'assemble full package'
required: true
default: true
type: boolean
continue-on-error:
description: 'allows a language to fail, used when building all languages'
required: false
default: false
type: boolean
jobs:
compile:
runs-on: windows-latest # required for msbuild
continue-on-error: ${{ inputs.continue-on-error }}
strategy:
fail-fast: false
matrix:
application: [ja2, ja2mapeditor, ja2ub, ja2ubmapeditor]
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Download versions.env
uses: actions/download-artifact@v4
with:
name: versions.env
path: artifacts
- name: Restore versions.env
shell: bash
run: cat artifacts/versions.env >> $GITHUB_ENV
# TODO: Move this into CMake, just taking the GitHub Actions parameters as -D variables
- name: Update GameVersion.cpp
shell: bash
run: |
set -eux
INPUTS_LANGUAGE=${{ inputs.language }}
GAME_VERSION=$(echo "$GAME_VERSION" | tr -cd '[:print:]' | tr -d '"\\')
GAME_BUILD="${INPUTS_LANGUAGE:0:2} $GAME_BUILD_INFORMATION"
GAME_BUILD=$(echo "$GAME_BUILD" | tr -cd '[:print:]' | tr -d '"\\')
sed -i "s|@Version@|${GAME_VERSION:0:15}|" Ja2/GameVersion.cpp
sed -i "s|@Build@|${GAME_BUILD:0:255}|" Ja2/GameVersion.cpp
cat Ja2/GameVersion.cpp
- name: Prepare build properties
shell: bash
run: |
set -eux
touch CMakePresets.json
JA2Language=$(echo '${{ inputs.language }}' | tr '[:lower:]' '[:upper:]')
JA2Application=$(echo '${{ matrix.application }}' | tr '[:lower:]' '[:upper:]')
echo "
JA2Language=$JA2Language
JA2Application=$JA2Application
" >> $GITHUB_ENV
- uses: microsoft/setup-msbuild@v2
with:
msbuild-architecture: x86
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: Prepare build
run: |
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLanguages="$Env:JA2Language" -DApplications="$Env:JA2Application"
- name: Build
run: |
cmake --build build/ -- -v
- name: List build artifacts
shell: bash
run: |
find build/
- name: Upload
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.language }}_${{ matrix.application }}
path: build/*.exe
assemble:
needs: [ compile ]
if: inputs.assemble
runs-on: windows-latest # required for case-insensitive filesystem handling
continue-on-error: ${{ inputs.continue-on-error }}
steps:
- name: Download versions.env
uses: actions/download-artifact@v4
with:
name: versions.env
path: artifacts
- name: Restore versions.env
shell: bash
run: cat artifacts/versions.env >> $GITHUB_ENV
- name: Checkout gamedir
uses: actions/checkout@v4
with:
repository: ${{ env.GAMEDIR_REPOSITORY }}
ref: ${{ env.GAMEDIR_COMMIT_SHA }}
path: gamedir
- name: Checkout gamedir-languages
if: inputs.language != 'English'
uses: actions/checkout@v4
with:
repository: ${{ env.GAMEDIR_LANGUAGES_REPOSITORY }}
ref: ${{ env.GAMEDIR_LANGUAGES_COMMIT_SHA }}
path: gamedir-languages
- name: Copy gamedir-languages files to gamedir
if: inputs.language != 'English'
shell: bash
run: |
set -eux
cp -a gamedir-languages/${{ inputs.language }}_Version/* gamedir/
- name: Download ja2
uses: actions/download-artifact@v4
with:
name: ${{ inputs.language }}_ja2
path: artifacts/ja2
- name: Download ja2mapeditor
uses: actions/download-artifact@v4
with:
name: ${{ inputs.language }}_ja2mapeditor
path: artifacts/ja2mapeditor
- name: Download ja2ub
uses: actions/download-artifact@v4
with:
name: ${{ inputs.language }}_ja2ub
path: artifacts/ja2ub
- name: Download ja2ubmapeditor
uses: actions/download-artifact@v4
with:
name: ${{ inputs.language }}_ja2ubmapeditor
path: artifacts/ja2ubmapeditor
- name: Copy application files to gamedir
shell: bash
run: |
set -eux
for APP in ja2 ja2mapeditor ja2ub ja2ubmapeditor
do
mv artifacts/${APP}/*.exe gamedir/${APP}.exe
done
- name: Create version information file
shell: bash
run: |
set -eux
# "-" separates words, "_" combines words, see double-click behavior
DIST_PREFIX='JA2_113'
DIST_NAME="${DIST_PREFIX}-${GAME_VERSION}-G${GAMEDIR_COMMIT_SHA:0:4}L${GAMEDIR_LANGUAGES_COMMIT_SHA:0:4}-${{ inputs.language }}"
echo "DIST_NAME=$DIST_NAME" >> $GITHUB_ENV
echo "If you encounter problems during gameplay, please provide the following version information:
Distribution Name: $DIST_NAME
Game Version: $GAME_VERSION
Language: ${{ inputs.language }}
Build Information: $GAME_BUILD_INFORMATION
Source Repository: $GITHUB_REPOSITORY
Source Commit SHA: $GITHUB_SHA
Source Commit Date: $SOURCE_COMMIT_DATETIME
Gamedir Repository: $GAMEDIR_REPOSITORY
Gamedir Commit SHA: $GAMEDIR_COMMIT_SHA
Gamedir Commit Date: $GAMEDIR_COMMIT_DATETIME
Gamedir Languages Repository: $GAMEDIR_LANGUAGES_REPOSITORY
Gamedir Languages Commit SHA: $GAMEDIR_LANGUAGES_COMMIT_SHA
Gamedir Languages Commit Date: $GAMEDIR_LANGUAGES_COMMIT_DATETIME
" > "gamedir/${DIST_PREFIX}-Version.txt"
cat "gamedir/${DIST_PREFIX}-Version.txt"
- name: Create release archive
shell: bash
run: |
set -eux
mkdir dist/
cd gamedir/
7z a -bb -xr'!.*' "../dist/${DIST_NAME}.7z" .
- name: Upload
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.language }}_release
path: dist/
compression-level: 0
+27 -25
View File
@@ -27,7 +27,11 @@ if(ADDRESS_SANITIZER)
endif()
if(MSVC)
# TODO: fix the warnings here and turn them on
# https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warnings-c4000-through-c4199
add_compile_options("/wd4838") # silence implicit narrowing conversion warnings
# add_compile_options("/w14061")
# add_compile_options("/w14062")
endif()
# whether we are using MSBuild as a generator
@@ -102,15 +106,13 @@ foreach(lib IN LISTS Ja2_Libs)
add_subdirectory(${lib})
endforeach()
# language library relies on Application _and_ Language preprocessor definition. very bad.
# language library relies on Application preprocessor definition; compiled once per app
# with all 8 languages built in and selected at runtime (docs/plans/language-design.md).
add_subdirectory(i18n)
# simple function to validate Languages and Application choices
# simple function to validate the Application choice
include(cmake/ValidateOptions.cmake)
set(ValidLanguages CHINESE DUTCH ENGLISH FRENCH GERMAN ITALIAN POLISH RUSSIAN)
ValidateOptions("${ValidLanguages}" "Languages" "${Languages}" "LangTargets")
set(ValidApplications JA2 JA2MAPEDITOR JA2UB JA2UBMAPEDITOR)
ValidateOptions("${ValidApplications}" "Applications" "${Applications}" "ApplicationTargets")
@@ -136,28 +138,28 @@ foreach(app IN LISTS ApplicationTargets)
target_compile_definitions(${game_library} PRIVATE ${compilationFlags} ${debugFlags})
endforeach()
foreach(lang IN LISTS LangTargets)
# executable for an application/language combination, e.g. JA2_ENGLISH.exe
set(exe ${app}_${lang})
add_executable(${exe} WIN32
sgp/sgp.cpp
Ja2/Res/ja2.rc
)
target_link_libraries(${exe} PRIVATE ${Ja2_Libraries} $<IF:${usingMsBuild},legacy_stdio_definitions.lib,>)
target_link_options(${exe} PRIVATE $<IF:${usingMsBuild},/SAFESEH:NO,>)
target_compile_definitions(${exe} PRIVATE ${compilationFlags} ${debugFlags})
# executable for the application, e.g. JA2.exe
set(exe ${app})
add_executable(${exe} WIN32
sgp/sgp.cpp
Ja2/Res/ja2.rc
)
target_link_libraries(${exe} PRIVATE ${Ja2_Libraries} $<IF:${usingMsBuild},legacy_stdio_definitions.lib,>)
target_link_options(${exe} PRIVATE $<IF:${usingMsBuild},/SAFESEH:NO,>)
target_compile_definitions(${exe} PRIVATE ${compilationFlags} ${debugFlags})
# language library for an application, e.g. JA2MAPEDITOR_ENGLISH_i18n
set(language_library ${exe}_i18n)
add_library(${language_library})
target_sources(${language_library} PRIVATE ${i18nSrc})
target_compile_definitions(${language_library} PRIVATE ${compilationFlags} ${debugFlags} ${lang})
target_link_libraries(${exe} PRIVATE ${language_library})
# language library for the application, e.g. JA2MAPEDITOR_i18n — one per app, all 8
# languages compiled in, selected at runtime by BindLanguageStrings
set(language_library ${exe}_i18n)
add_library(${language_library})
target_sources(${language_library} PRIVATE ${i18nSrc})
target_compile_definitions(${language_library} PRIVATE ${compilationFlags} ${debugFlags})
target_compile_options(${language_library} PRIVATE /w14062)
target_link_libraries(${exe} PRIVATE ${language_library})
# go through all game libraries again and link them to the app/language executable
foreach(lib IN LISTS Ja2_Libs)
target_link_libraries(${exe} PRIVATE ${app}_${lib})
endforeach()
# go through all game libraries again and link them to the app executable
foreach(lib IN LISTS Ja2_Libs)
target_link_libraries(${exe} PRIVATE ${app}_${lib})
endforeach()
# for SGP only
+2 -2
View File
@@ -29,7 +29,7 @@ void IncreaseSelectionDensity();
void DecreaseSelectionDensity();
void RemoveCursors();
extern STR16 wszSelType[6];
extern STR16 *wszSelType;
extern BOOLEAN gfCurrentSelectionWithRightButton;
@@ -40,4 +40,4 @@ extern BOOLEAN gfCurrentSelectionWithRightButton;
#endif
#endif
#endif
+1 -1
View File
@@ -325,7 +325,7 @@ extern UINT8 gubCurrMercMode, gubPrevMercMode;
#define NUM_DIFF_LVLS 5
extern STR16 zDiffNames[NUM_DIFF_LVLS];
extern STR16 *zDiffNames;
extern INT16 sCurBaseDiff;
extern INT16 gsSelectedMercID;
extern INT32 gsSelectedMercGridNo;
+1 -1
View File
@@ -40,7 +40,7 @@ MOUSE_REGION popupRegion;
UINT16 gusEntryHeight;
BOOLEAN fWaitingForLButtonRelease = FALSE;
extern CHAR16 gszScheduleActions[ NUM_SCHEDULE_ACTIONS ][20];
extern CHAR16 (*gszScheduleActions)[20]; // NUM_SCHEDULE_ACTIONS entries
//Finds the string for any popup menu in JA2 -- the strings are stored
//in different ways in each instance.
+2
View File
@@ -8,8 +8,10 @@
#include "Campaign Types.h"
#include "environment.h"
#include <string_view>
#define GAME_INI_FILE "Ja2.ini"
constexpr std::string_view LANGUAGE_INI_FILE{"Language.ini"};
//If you add any options, MAKE sure you add the corresponding string to the Options Screen string array.
// look up : zOptionsScreenHelpText , zOptionsToggleText
//Also, define its initialization and add its load/save to INI lines in : InitGameSettings() , SaveGameSettings() , LoadGameSettings()
+1 -1
View File
@@ -174,7 +174,7 @@ private:
static VideoPlayer s_VP(VideoPlayer::VT_SMK | VideoPlayer::VT_BINK);
extern STR16 gzIntroScreen[];
extern STR16* gzIntroScreen;
extern HVSURFACE ghFrameBuffer;
enum
+1 -1
View File
@@ -89,7 +89,7 @@ extern BOOLEAN gfDontOverRideSaveBuffer; //this variable can be unset if u
extern void HandleTacticalUILoseCursorFromOtherScreen( );
extern STR16 pUpdatePanelButtons[];
extern STR16* pUpdatePanelButtons;
#define NUM_CHAT_TOGGLES 2
+1 -1
View File
@@ -69,7 +69,7 @@ BOOLEAN gfStartedFromMapScreen = FALSE;
BOOLEAN fRestoreBackgroundForMessageBox = FALSE;
BOOLEAN gfDontOverRideSaveBuffer = TRUE; //this variable can be unset if ur in a non gamescreen and DONT want the msg box to use the save buffer
extern void HandleTacticalUILoseCursorFromOtherScreen( );
extern STR16 pUpdatePanelButtons[];
extern STR16* pUpdatePanelButtons;
CHAR16 gzUserDefinedButton1[ 128 ];
CHAR16 gzUserDefinedButton2[ 128 ];
-76
View File
@@ -1468,31 +1468,6 @@ BOOLEAN LoadMercBioInfo(UINT8 ubIndex, STR16 pInfoString, STR16 pAddInfo)
//{
// if( pInfoString[i] > 33 )
// pInfoString[i] -= 1;
// #ifdef POLISH
// switch( pInfoString[ i ] )
// {
// case 260: pInfoString[ i ] = 165; break;
// case 262: pInfoString[ i ] = 198; break;
// case 280: pInfoString[ i ] = 202; break;
// case 321: pInfoString[ i ] = 163; break;
// case 323: pInfoString[ i ] = 209; break;
// case 211: pInfoString[ i ] = 211; break;
// case 346: pInfoString[ i ] = 338; break;
// case 379: pInfoString[ i ] = 175; break;
// case 377: pInfoString[ i ] = 143; break;
// case 261: pInfoString[ i ] = 185; break;
// case 263: pInfoString[ i ] = 230; break;
// case 281: pInfoString[ i ] = 234; break;
// case 322: pInfoString[ i ] = 179; break;
// case 324: pInfoString[ i ] = 241; break;
// case 243: pInfoString[ i ] = 243; break;
// case 347: pInfoString[ i ] = 339; break;
// case 380: pInfoString[ i ] = 191; break;
// case 378: pInfoString[ i ] = 376; break;
// }
// #endif
//}
DecodeString(pInfoString, SIZE_MERC_BIO_INFO);
@@ -1514,31 +1489,6 @@ BOOLEAN LoadMercBioInfo(UINT8 ubIndex, STR16 pInfoString, STR16 pAddInfo)
//{
// if( pAddInfo[i] > 33 )
// pAddInfo[i] -= 1;
// #ifdef POLISH
// switch( pAddInfo[ i ] )
// {
// case 260: pAddInfo[ i ] = 165; break;
// case 262: pAddInfo[ i ] = 198; break;
// case 280: pAddInfo[ i ] = 202; break;
// case 321: pAddInfo[ i ] = 163; break;
// case 323: pAddInfo[ i ] = 209; break;
// case 211: pAddInfo[ i ] = 211; break;
// case 346: pAddInfo[ i ] = 338; break;
// case 379: pAddInfo[ i ] = 175; break;
// case 377: pAddInfo[ i ] = 143; break;
// case 261: pAddInfo[ i ] = 185; break;
// case 263: pAddInfo[ i ] = 230; break;
// case 281: pAddInfo[ i ] = 234; break;
// case 322: pAddInfo[ i ] = 179; break;
// case 324: pAddInfo[ i ] = 241; break;
// case 243: pAddInfo[ i ] = 243; break;
// case 347: pAddInfo[ i ] = 339; break;
// case 380: pAddInfo[ i ] = 191; break;
// case 378: pAddInfo[ i ] = 376; break;
// }
// #endif
//}
DecodeString(pAddInfo, SIZE_MERC_BIO_INFO);
@@ -1560,8 +1510,6 @@ BOOLEAN DisplayMercsInventory(UINT8 ubMercID)
CHAR16 gzItemName[ 5000 ];
UINT8 ubItemCount=0;
UINT8 ubColumnCount=0;
const bool realisticGameStyle = gGameOptions.ubGameStyle != STYLE_SCIFI;
const bool reducedGuns = gGameOptions.fGunNut == false;
//if the mercs inventory has already been purchased, dont display the inventory
if ( (gMercProfiles[ ubMercID ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable )
@@ -1585,18 +1533,6 @@ BOOLEAN DisplayMercsInventory(UINT8 ubMercID)
{
usItem = gMercProfiles[ubMercID].inv[ i ];
if (realisticGameStyle && ItemIsOnlyInScifi(usItem))
{
gMercProfiles[ubMercID].inv[i] = 0;
continue;
}
if (reducedGuns && ItemIsOnlyInTonsOfGuns(usItem))
{
gMercProfiles[ubMercID].inv[i] = 0;
continue;
}
//if its a valid item AND we are only displaying less then 8 items
if( usItem && ubItemCount < WEAPONBOX_TOTAL_ITEMS )
{
@@ -1676,18 +1612,6 @@ BOOLEAN DisplayMercsInventory(UINT8 ubMercID)
{
usItem = gMercProfiles[ubMercID].inv[ i ];
if (realisticGameStyle && ItemIsOnlyInScifi(usItem))
{
gMercProfiles[ubMercID].inv[i] = 0;
continue;
}
if (reducedGuns && ItemIsOnlyInTonsOfGuns(usItem))
{
gMercProfiles[ubMercID].inv[i] = 0;
continue;
}
//if its a valid item AND we are only displaying less then 8 items
if( usItem && ubItemCount < WEAPONBOX_NUMBER )
{
+1 -1
View File
@@ -75,7 +75,7 @@ extern INT32 iAddExplosives ;
extern INT32 iAddMechanical ;
// pop up strings
extern STR16 pImpPopUpStrings[];
extern STR16* pImpPopUpStrings;
//extern BOOLEAN fIMPCompletedFlag;
+2 -2
View File
@@ -7,6 +7,6 @@ void RenderIMPPersonalityEntrance( void );
void ExitIMPPersonalityEntrance( void );
void HandleIMPPersonalityEntrance( void );
STR16 pSkillTraitBeginIMPStrings[];
extern STR16* pSkillTraitBeginIMPStrings;
#endif
#endif
+4 -4
View File
@@ -9,13 +9,13 @@ void PrintImpText( void );
void PrintIMPPersonalityQuizQuestionAndAnsers( void );
// buttons text
extern STR16 pImpButtonText[];
extern STR16* pImpButtonText;
// extra strings not found in IMP Text Document
extern STR16 pExtraIMPStrings[];
extern STR16* pExtraIMPStrings;
extern STR16 pSkillTraitBeginIMPStrings[]; // added - SANDRO
extern STR16* pSkillTraitBeginIMPStrings; // added - SANDRO
enum{
IMP_HOME_1,
@@ -145,4 +145,4 @@ enum{
};
#endif
#endif
+1 -1
View File
@@ -186,7 +186,7 @@ REPAIR_PASS_SLOTS_TYPE gRepairPassSlotList[ NUM_REPAIR_PASS_TYPES ] =
{ /* HEADROCK HAM B2.8: LBE Slot pass */ 0, 5, VESTPOCKPOS, LTHIGHPOCKPOS, RTHIGHPOCKPOS, CPACKPOCKPOS, BPACKPOCKPOS, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
};
extern STR16 sRepairsDoneString[];
extern STR16* sRepairsDoneString;
// PopUp Box Handles
INT32 ghAssignmentBox = -1;
@@ -1133,8 +1133,12 @@ void SaveSeenAndUnseenItems( void )
if(pipl->fExists && pipl->object.ubNumberOfObjects)
{
uiTotalNumberOfVisibleItems += pipl->object.ubNumberOfObjects;
if(i > uiNumberOfSeenItems)
if (i > uiNumberOfSeenItems)
{
pInventoryPoolList[uiNumberOfSeenItems] = *pipl;
pipl->fExists = FALSE;
}
uiNumberOfSeenItems++;
}
}
+1 -1
View File
@@ -194,7 +194,7 @@ INT32 iHeightOfInitFastHelpText = 0;
extern INT32 giMapContractButton;
extern INT32 giCharInfoButton[];
extern STR16 pUpdatePanelButtons[];
extern STR16* pUpdatePanelButtons;
// the list of soldiers that are moving
SOLDIERTYPE * pSoldierMovingList[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
+9
View File
@@ -904,7 +904,16 @@ BOOLEAN BeginStrategicRemoveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fAddRehireButto
else
{
if (!is_networked)
{
#ifdef JA2UB
// Leave equipment to merc's current sector by default in UB
HandleLeavingOfEquipmentInCurrentSector(pSoldier->ubID);
StrategicRemoveMerc(pSoldier);
pLeaveSoldier = NULL;
#else
NotifyPlayerOfMercDepartureAndPromptEquipmentPlacement( pSoldier, fAddRehireButton );
#endif
}
else
{
// WANNE - MP: Skip all the dialog boxes that appear. Just dismiss the merc
+1 -1
View File
@@ -49,7 +49,7 @@ extern "C" {
extern CHAR16 gzUserDefinedButton1[ 128 ];
extern CHAR16 gzUserDefinedButton2[ 128 ];
extern CHAR16 pTownNames[MAX_TOWNS][MAX_TOWN_NAME_LENGHT];
extern CHAR16 (*pTownNames)[MAX_TOWN_NAME_LENGHT];
static size_t MAX_BUTTON_LENGTH = 60;
static size_t MAX_BODY_LENGTH = 450;
+2 -2
View File
@@ -2,8 +2,8 @@
#define _QUEST_TEXT_H_
STR16 QuestDescText[];
STR16 FactDescText[];
extern STR16 *QuestDescText;
extern STR16 *FactDescText;
#endif
+1 -1
View File
@@ -31,7 +31,7 @@ class SOLDIERTYPE;
#ifdef JA2EDITOR
extern CHAR16 gszScheduleActions[ NUM_SCHEDULE_ACTIONS ][20];
extern CHAR16 (*gszScheduleActions)[20]; // NUM_SCHEDULE_ACTIONS entries
#endif
BOOLEAN GetEarliestMorningScheduleEvent( SCHEDULENODE *pSchedule, UINT32 * puiTime );
+1 -1
View File
@@ -180,7 +180,7 @@ INT16 sWorldSectorLocationOfFirstBattle = 0;
// preprocess sector for mercs in it
extern BOOLEAN fSectorsWithSoldiers[ MAP_WORLD_X * MAP_WORLD_X ][ 4 ];
extern CHAR16 pTownNames[MAX_TOWNS][MAX_TOWN_NAME_LENGHT];
extern CHAR16 (*pTownNames)[MAX_TOWN_NAME_LENGHT];
+10 -2
View File
@@ -613,8 +613,8 @@ extern BOOLEAN gfAutoAIAware;
extern void HandlePreBattleInterfaceStates();
// the title for the contract button on the character info panel in the upper left portion of the mapscreen
extern STR16 pContractButtonString[];
extern STR16 pBullseyeStrings[];
extern STR16* pContractButtonString;
extern STR16* pBullseyeStrings;
extern OBJECTTYPE *gpItemDescObject;
@@ -12748,6 +12748,10 @@ void HandleShadingOfLinesForContractMenu( void )
SOLDIERTYPE* pSoldier = gCharactersList[ bSelectedContractChar ].usSolID;
const bool multipleMercsSelected = (gSelectedSoldiers.size() > 0) ? true : false;
#ifdef JA2UB
// No contract renewal in UB
const bool atLeastOneAIMmerc = false;
#else
bool atLeastOneAIMmerc = false;
if (pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC)
{
@@ -12765,6 +12769,7 @@ void HandleShadingOfLinesForContractMenu( void )
}
}
}
#endif // JA2UB
// is guy in AIM? and well enough to talk and make such decisions?
if( (atLeastOneAIMmerc) && ( pSoldier->stats.bLife >= OKLIFE ) )
@@ -15372,7 +15377,10 @@ BOOLEAN CanExtendContractForCharSlot( INT16 bCharNumber )
// if a vehicle, in transit, or a POW
if( /*( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) ||*/
#ifndef JA2UB
// Allow contract box in UB before helicopter ride, so mercs can be dismissed if player has hired more than 6 mercs
( pSoldier->bAssignment == IN_TRANSIT ) ||
#endif
( pSoldier->bAssignment == ASSIGNMENT_POW ) )
{
// can't extend contracts at this time
+1 -1
View File
@@ -357,7 +357,7 @@ extern HVSURFACE ghFrameBuffer;
extern BOOLEAN gfOverrideSector;
extern BOOLEAN sBadSectorsList[WORLD_MAP_X][WORLD_MAP_X];
extern STR16 pBullseyeStrings[];
extern STR16* pBullseyeStrings;
extern void HandleRPCDescription( );
-1
View File
@@ -2,4 +2,3 @@
# priority (LOW,HIGH) and description
LOW readd the C4838 (https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4838) warning to CMakeLists.txt once they're all fixed in the code
HIGH get rid of ENGLISH, GERMAN, etc preprocessor definitions completely. that way i18n can be built just once and language can be changed in the options screen pending game restart (hotloading will likely require more work)
+1 -1
View File
@@ -7035,7 +7035,7 @@ UINT8 StealItems(SOLDIERTYPE* pSoldier,SOLDIERTYPE* pOpponent, UINT8* ubIndexRet
if ((pObject->exists() == true) && !ItemIsUndroppableByDefault(pObject->usItem)) // CHECK! Undroppable items cannot be stolen - SANDRO
{
// Is the enemy collapsed
if ( pOpponent->stats.bLife < OKLIFE || pOpponent->bCollapsed )
if ( pOpponent->stats.bLife < OKLIFE || pOpponent->bCollapsed || (pOpponent->usSoldierFlagMask & SOLDIER_POW) )
{
// We can steal any of his items in the inventory
fStealItem = TRUE;
+1 -2
View File
@@ -167,7 +167,6 @@ extern BOOLEAN KeyExistsInInventory( SOLDIERTYPE *pSoldier, UINT8 ubKeyID );
extern BOOLEAN KeyExistsInKeyRing( SOLDIERTYPE *pSoldier, UINT8 ubKeyID, UINT8 * pubPos );
extern BOOLEAN SoldierHasKey( SOLDIERTYPE *pSoldier, UINT8 ubKeyID );
extern STR16 sKeyDescriptionStrings[];
/**********************************
* Door utils add by Kris Morness *
**********************************/
@@ -281,4 +280,4 @@ void AttachStringToDoor( INT32 sGridNo );
void DropKeysInKeyRing( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, INT8 bVisible, BOOLEAN fAddToDropList, INT32 iDropListSlot, BOOLEAN fUseUnLoaded );
#endif
#endif
+1 -1
View File
@@ -6909,7 +6909,7 @@ BOOLEAN CheckForEndOfCombatMode( BOOLEAN fIncrementTurnsNotSeen )
for ( cnt = 0; cnt < guiNumMercSlots; cnt++ )
{
pTeamSoldier = MercSlots[ cnt ];
if ( pTeamSoldier && pTeamSoldier->stats.bLife >= OKLIFE && !pTeamSoldier->aiData.bNeutral )
if ( pTeamSoldier && pTeamSoldier->stats.bLife >= OKLIFE && !pTeamSoldier->aiData.bNeutral && !(pTeamSoldier->usSoldierFlagMask & SOLDIER_POW) )
{
if ( SoldierHasSeenEnemiesLastFewTurns( pTeamSoldier ) )
{
+1 -1
View File
@@ -4233,7 +4233,7 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
// give bonus for surprise, but not so much as struggle would still occur
iHitChance = CalcChanceToSteal( pSoldier, pTargetSoldier, pSoldier->aiData.bAimTime ) + 20;
}
else if ( pTargetSoldier->stats.bLife < OKLIFE || pTargetSoldier->bCollapsed )
else if (pTargetSoldier->stats.bLife < OKLIFE || pTargetSoldier->bCollapsed || pTargetSoldier->usSoldierFlagMask & SOLDIER_POW)
{
iHitChance = 100;
fSoldierCollapsed = TRUE;
+1 -1
View File
@@ -1180,7 +1180,7 @@ profileEndElementHandle(void *userData, const XML_Char *name)
#include <vfs/Core/vfs_file_raii.h> // added by Flugente for vfs-stuff
#include <iostream>
extern STR16 gzMercSkillTextNew[];
extern STR16* gzMercSkillTextNew;
void AnalyzeProfiles()
{
-5
View File
@@ -38,9 +38,6 @@
typedef struct
{
//SB: unify structure for all versions
// #if defined( CRIPPLED_VERSION ) || defined( RUSSIAN )
// UINT8 ubIdentifier[4];
// #endif
UINT16 fFlags;
@@ -74,9 +71,7 @@ typedef struct
INT16 sActionData; // special action value
//SB: unify structure for all versions
//#if !defined( CRIPPLED_VERSION ) && !defined( RUSSIAN )
UINT8 ubUnused[4];
//#endif
} _old_NPCQuoteInfo; // 32 bytes
+1 -1
View File
@@ -22,7 +22,7 @@ UINT32 guiFireAmbientLastUpdate = 0;
extern STR8 pVertStrings[];
extern STR8 pHortStrings[];
extern CHAR16 pTownNames[MAX_TOWNS][MAX_TOWN_NAME_LENGHT];
extern CHAR16 (*pTownNames)[MAX_TOWN_NAME_LENGHT];
UINT8 gubCurrentSteadyStateAmbience = SSA_NONE;
UINT8 gubCurrentSteadyStateSound = 0;
+22 -9
View File
@@ -8518,8 +8518,7 @@ void CalcRenderParameters(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
gsStartPointY_W = sRenderCenterY_W - sTempPosY_W;
// NOTE: Increase X map value by 1 tile to offset where on screen we are...
if ( gsStartPointX_W > 0 )
gsStartPointX_W += CELL_X_SIZE;
gsStartPointX_W += CELL_X_SIZE;
// d) screen start point is screen distances minus screen center
gsStartPointX_S = sLeft - VIEWPORT_XOFFSET_S;
@@ -8527,8 +8526,8 @@ void CalcRenderParameters(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
// STEP FOUR - Determine Start block
// a) Find start block
gsStartPointX_M = ( gsStartPointX_W ) / CELL_X_SIZE;
gsStartPointY_M = ( gsStartPointY_W ) / CELL_Y_SIZE;
gsStartPointX_M = floor( DOUBLE(gsStartPointX_W) / DOUBLE(CELL_X_SIZE) );
gsStartPointY_M = floor( DOUBLE(gsStartPointY_W) / DOUBLE(CELL_Y_SIZE) );
// STEP 5 - Determine Deltas for center and find screen values
//Make sure these coordinates are multiples of scroll steps
@@ -8564,7 +8563,7 @@ void CalcRenderParameters(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
gsLEndXS = sRight + LARGER_VIEWPORT_XOFFSET_S;
gsLEndYS = sBottom + LARGER_VIEWPORT_YOFFSET_S;
// STEP THREE - determine starting point in world coords
// STEP THREE - determine starting point in world coords
// a) Determine where in screen coords to start rendering
gsLStartPointX_S = ( ( gsVIEWPORT_END_X - gsVIEWPORT_START_X ) /2 ) - (sLeft - LARGER_VIEWPORT_XOFFSET_S);
gsLStartPointY_S = ( ( gsVIEWPORT_END_Y - gsVIEWPORT_START_Y ) /2 ) - (sTop - LARGER_VIEWPORT_YOFFSET_S);
@@ -8578,8 +8577,7 @@ void CalcRenderParameters(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
gsLStartPointY_W = sRenderCenterY_W - sTempPosY_W;
// NOTE: Increase X map value by 1 tile to offset where on screen we are...
if ( gsLStartPointX_W > 0 )
gsLStartPointX_W += CELL_X_SIZE;
gsLStartPointX_W += CELL_X_SIZE;
// d) screen start point is screen distances minus screen center
gsLStartPointX_S = sLeft - LARGER_VIEWPORT_XOFFSET_S;
@@ -8587,8 +8585,23 @@ void CalcRenderParameters(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
// STEP FOUR - Determine Start block
// a) Find start block
gsLStartPointX_M = ( gsLStartPointX_W ) / CELL_X_SIZE;
gsLStartPointY_M = ( gsLStartPointY_W ) / CELL_Y_SIZE;
gsLStartPointX_M = floor( DOUBLE(gsLStartPointX_W) / DOUBLE(CELL_X_SIZE) );
gsLStartPointY_M = floor( DOUBLE(gsLStartPointY_W) / DOUBLE(CELL_Y_SIZE) );
// Check and correct the difference between smaller and larger start blocks in tile coordinates.
// Regardless of resolution, the difference between the start blocks are constant 10 tiles in X- and 6 tiles in Y-direction.
// If the difference doesn't match, static world is rendered in the wrong place relative to dynamic world.
// Mainly evident in 960x540 resolution.
const auto ratioX_M = gsStartPointX_M - gsLStartPointX_M;
if ( ratioX_M != 10)
{
gsLStartPointX_M -= 10 - ratioX_M;
}
const auto ratioY_M = gsStartPointY_M - gsLStartPointY_M;
if ( ratioY_M != 6 )
{
gsLStartPointY_M -= 6 - ratioY_M;
}
// Adjust starting screen coordinates
gsLStartPointX_S -= sOffsetX_S;
-2
View File
@@ -8,10 +8,8 @@ set(UtilsSrc
"${CMAKE_CURRENT_SOURCE_DIR}/Encrypted File.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Event Pump.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Font Control.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ImportStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/INIReader.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/KeyMap.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LocalizedStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/MapUtility.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/MercTextBox.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/message.cpp"
-132
View File
@@ -96,137 +96,5 @@ void DecodeString(STR16 pDestString, UINT32 uiSeekAmount)
if( pDestString[i] > 33 )
pDestString[i] -= 1;
//#ifdef GERMAN
// //switch( pDestString[ i ] )
// //{
// // // ü
// // case 252: pDestString[i] = 252; break;
// // // Ü
// // case 220: pDestString[i] = 220; break;
// // // ä
// // case 228: pDestString[i] = 228; break;
// // // Ä
// // case 196: pDestString[i] = 196; break;
// // // ö
// // case 246: pDestString[i] = 246; break;
// // // Ö
// // case 214: pDestString[i] = 214; break;
// // // ß
// // case 223: pDestString[i] = 223; break;
// //}
//#endif
//#ifdef RUSSIAN
// switch( pDestString[ i ] )
// {
// //capital letters
// case 168: pDestString[ i ] = 1025; break; //U+0401 d0 81 CYRILLIC CAPITAL LETTER IO
// case 192: pDestString[ i ] = 1040; break; //U+0410 A d0 90 CYRILLIC CAPITAL LETTER A
// case 193: pDestString[ i ] = 1041; break;
// case 194: pDestString[ i ] = 1042; break;
// case 195: pDestString[ i ] = 1043; break;
// case 196: pDestString[ i ] = 1044; break;
// case 197: pDestString[ i ] = 1045; break;
// case 198: pDestString[ i ] = 1046; break;
// case 199: pDestString[ i ] = 1047; break;
// case 200: pDestString[ i ] = 1048; break;
// case 201: pDestString[ i ] = 1049; break;
// case 202: pDestString[ i ] = 1050; break;
// case 203: pDestString[ i ] = 1051; break;
// case 204: pDestString[ i ] = 1052; break;
// case 205: pDestString[ i ] = 1053; break;
// case 206: pDestString[ i ] = 1054; break;
// case 207: pDestString[ i ] = 1055; break;
// case 208: pDestString[ i ] = 1056; break;
// case 209: pDestString[ i ] = 1057; break;
// case 210: pDestString[ i ] = 1058; break;
// case 211: pDestString[ i ] = 1059; break;
// case 212: pDestString[ i ] = 1060; break;
// case 213: pDestString[ i ] = 1061; break;
// case 214: pDestString[ i ] = 1062; break;
// case 215: pDestString[ i ] = 1063; break;
// case 216: pDestString[ i ] = 1064; break;
// case 217: pDestString[ i ] = 1065; break;
// case 218: pDestString[ i ] = 1066; break;
// case 219: pDestString[ i ] = 1067; break;
// case 220: pDestString[ i ] = 1068; break;
// case 221: pDestString[ i ] = 1069; break;
// case 222: pDestString[ i ] = 1070; break;
// case 223: pDestString[ i ] = 1071; break; //U+042F d0 af CYRILLIC CAPITAL LETTER YA
// //small letters
// case 184: pDestString[ i ] = 1105; break; //U+0451 d1 91 CYRILLIC SMALL LETTER IO
//case 185: pDestString[ i ] = 8470; break; // ?
//case 178: pDestString[ i ] = 1030; break; // ?
//case 161: pDestString[ i ] = 1038; break; // í
//case 179: pDestString[ i ] = 1110; break; // ?
//case 162: pDestString[ i ] = 1118; break; // ó
//case 165: pDestString[ i ] = 1168; break; // Ń
//case 170: pDestString[ i ] = 1028; break; // Ź
//case 175: pDestString[ i ] = 1031; break; // ť
//case 180: pDestString[ i ] = 1169; break; // ?
//case 186: pDestString[ i ] = 1108; break; // ?
//case 191: pDestString[ i ] = 1111; break; // ?
// case 224: pDestString[ i ] = 1072; break; //U+0430 a d0 b0 CYRILLIC SMALL LETTER A
// case 225: pDestString[ i ] = 1073; break;
// case 226: pDestString[ i ] = 1074; break;
// case 227: pDestString[ i ] = 1075; break;
// case 228: pDestString[ i ] = 1076; break;
// case 229: pDestString[ i ] = 1077; break;
// case 230: pDestString[ i ] = 1078; break;
// case 231: pDestString[ i ] = 1079; break;
// case 232: pDestString[ i ] = 1080; break;
// case 233: pDestString[ i ] = 1081; break;
// case 234: pDestString[ i ] = 1082; break;
// case 235: pDestString[ i ] = 1083; break;
// case 236: pDestString[ i ] = 1084; break;
// case 237: pDestString[ i ] = 1085; break;
// case 238: pDestString[ i ] = 1086; break;
// case 239: pDestString[ i ] = 1087; break; //U+043F d0 bf CYRILLIC SMALL LETTER PE
// case 240: pDestString[ i ] = 1088; break; //U+0440 p d1 80 CYRILLIC SMALL LETTER ER
// case 241: pDestString[ i ] = 1089; break;
// case 242: pDestString[ i ] = 1090; break;
// case 243: pDestString[ i ] = 1091; break;
// case 244: pDestString[ i ] = 1092; break;
// case 245: pDestString[ i ] = 1093; break;
// case 246: pDestString[ i ] = 1094; break;
// case 247: pDestString[ i ] = 1095; break;
// case 248: pDestString[ i ] = 1096; break;
// case 249: pDestString[ i ] = 1097; break;
// case 250: pDestString[ i ] = 1098; break;
// case 251: pDestString[ i ] = 1099; break;
// case 252: pDestString[ i ] = 1100; break;
// case 253: pDestString[ i ] = 1101; break;
// case 254: pDestString[ i ] = 1102; break;
// case 255: pDestString[ i ] = 1103; break; //U+044F d1 8f CYRILLIC SMALL LETTER YA
// }
//#endif
//#ifdef POLISH
// switch( pDestString[ i ] )
// {
// case 165: pDestString[ i ] = 260; break;
// case 198: pDestString[ i ] = 262; break;
// case 202: pDestString[ i ] = 280; break;
// case 163: pDestString[ i ] = 321; break;
// case 209: pDestString[ i ] = 323; break;
// case 211: pDestString[ i ] = 211; break;
// case 338: pDestString[ i ] = 346; break;
// case 175: pDestString[ i ] = 379; break;
// case 143: pDestString[ i ] = 377; break;
// case 185: pDestString[ i ] = 261; break;
// case 230: pDestString[ i ] = 263; break;
// case 234: pDestString[ i ] = 281; break;
// case 179: pDestString[ i ] = 322; break;
// case 241: pDestString[ i ] = 324; break;
// case 243: pDestString[ i ] = 243; break;
// case 339: pDestString[ i ] = 347; break;
// case 191: pDestString[ i ] = 380; break;
// case 376: pDestString[ i ] = 378; break;
// }
//#endif
}
}
+5
View File
@@ -28,6 +28,11 @@ typedef enum
LANGUAGE_LOCATION zlanguageText[1000];
// Single shared buffer for all languages (declared in Text.h): filled at runtime from
// NewTacticalMessages.xml below, never from compiled-in per-language data, so it is not
// part of the BindLanguageStrings pointer-rebind scheme.
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS];
typedef struct
{
LANGUAGE_PARSE_STAGE curElement;
-1
View File
@@ -1,6 +1,5 @@
function(CopyUserPresetTemplate)
if(
NOT DEFINED Languages AND
NOT DEFINED Applications AND
NOT EXISTS "${CMAKE_SOURCE_DIR}/CMakePresets.json" AND
NOT EXISTS "${CMAKE_SOURCE_DIR}/CMakeUserPresets.json"
-2
View File
@@ -7,8 +7,6 @@
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
// Valid choices: ENGLISH;GERMAN;FRENCH;ITALIAN;POLISH;DUTCH;RUSSIAN;CHINESE. If empty (""), will configure all.
"Languages": "ENGLISH",
// Valid choices: JA2;JA2MAPEDITOR;JA2UB;JA2UBMAPEDITOR. If empty (""), will configure all.
"Applications": "JA2",
// For debugging: enter your desired gamedir. e.g. C:/Games/JA2
+3 -16
View File
@@ -1,23 +1,10 @@
set(i18nSrc
"${CMAKE_CURRENT_SOURCE_DIR}/language.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LanguageStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LocalizedStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Ja2 Libs.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ExportStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_ChineseText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_DutchText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_EnglishText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_FrenchText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_GermanText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_ItalianText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25ChineseText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25DutchText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25EnglishText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25FrenchText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25GermanText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25ItalianText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25PolishText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_Ja25RussianText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_PolishText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/_RussianText.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ImportStrings.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Multi Language Graphic Utils.cpp"
PARENT_SCOPE
)
+421 -452
View File
File diff suppressed because it is too large Load Diff
-28
View File
@@ -27,34 +27,6 @@ LibraryInitHeader gGameLibaries[ ] =
{ "TileSets.slf", TRUE, TRUE },
{ "LoadScreens.slf", TRUE, TRUE },
{ "Intro.slf", TRUE, TRUE },
#ifdef GERMAN
{ "German.slf", FALSE, TRUE },
#endif
#ifdef POLISH
{ "Polish.slf", FALSE, TRUE },
#endif
#ifdef DUTCH
{ "Dutch.slf", FALSE, TRUE },
#endif
#ifdef ITALIAN
{ "Italian.slf", FALSE, TRUE },
#endif
#ifdef RUSSIAN
{ "Russian.slf", FALSE, TRUE },
#endif
#ifdef FRENCH
{ "French.slf", FALSE, TRUE },
#endif
#ifdef CHINESE
{ "Chinese.slf", FALSE, TRUE },
#endif
};
+126
View File
@@ -0,0 +1,126 @@
#include "Text.h"
#include "Item Statistics.h"
#include <language.hpp>
#include <type_traits>
namespace lang_en {
#include "_EnglishText.cpp"
#include "_Ja25EnglishText.cpp"
}
namespace lang_de {
#include "_GermanText.cpp"
#include "_Ja25GermanText.cpp"
}
namespace lang_ru {
#include "_RussianText.cpp"
#include "_Ja25RussianText.cpp"
}
namespace lang_nl {
#include "_DutchText.cpp"
#include "_Ja25DutchText.cpp"
}
namespace lang_pl {
#include "_PolishText.cpp"
#include "_Ja25PolishText.cpp"
}
namespace lang_fr {
#include "_FrenchText.cpp"
#include "_Ja25FrenchText.cpp"
}
namespace lang_it {
#include "_ItalianText.cpp"
#include "_Ja25ItalianText.cpp"
}
namespace lang_zh {
#include "_ChineseText.cpp"
#include "_Ja25ChineseText.cpp"
}
namespace lang_default = lang_en;
// definitions (default language)
#define X(NAME) \
std::decay_t<decltype(lang_default::NAME)> NAME = lang_default::NAME;
#include "text.def"
#undef X
namespace {
auto bind_en() -> void {
#define X(NAME) NAME = lang_en::NAME;
#include "text.def"
#undef X
}
auto bind_de() -> void {
#define X(NAME) NAME = lang_de::NAME;
#include "text.def"
#undef X
}
auto bind_ru() -> void {
#define X(NAME) NAME = lang_ru::NAME;
#include "text.def"
#undef X
}
auto bind_nl() -> void {
#define X(NAME) NAME = lang_nl::NAME;
#include "text.def"
#undef X
}
auto bind_pl() -> void {
#define X(NAME) NAME = lang_pl::NAME;
#include "text.def"
#undef X
}
auto bind_fr() -> void {
#define X(NAME) NAME = lang_fr::NAME;
#include "text.def"
#undef X
}
auto bind_it() -> void {
#define X(NAME) NAME = lang_it::NAME;
#include "text.def"
#undef X
}
auto bind_zh() -> void {
#define X(NAME) NAME = lang_zh::NAME;
#include "text.def"
#undef X
}
} // namespace
auto BindLanguageStrings(i18n::Lang lang) -> void {
switch (lang) {
case i18n::Lang::en:
bind_en();
break;
case i18n::Lang::de:
bind_de();
break;
case i18n::Lang::ru:
bind_ru();
break;
case i18n::Lang::nl:
bind_nl();
break;
case i18n::Lang::pl:
bind_pl();
break;
case i18n::Lang::fr:
bind_fr();
break;
case i18n::Lang::it:
bind_it();
break;
case i18n::Lang::zh:
bind_zh();
break;
}
}
+1 -23
View File
@@ -1,20 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("CHINESE")
#if defined( CHINESE )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_ChineseText_public_symbol(void){;}
#if defined( CHINESE )
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -110,10 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
@@ -12297,5 +12277,3 @@ STR16 szRobotText[] =
L"机器人的额外装甲破坏了!", //L"The robot's extra armour plating was destroyed!",
L"机器人附加%s技能效果。", //L"The robot gains the benefit of the %s skill trait.",
};
#endif //CHINESE
+1 -25
View File
@@ -1,22 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("DUTCH")
#if defined( DUTCH )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_DutchText_public_symbol(void){;}
#ifdef DUTCH
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -112,10 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
STR16 pMenuStrings[] =
@@ -12307,5 +12285,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //DUTCH
+1 -24
View File
@@ -1,20 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("ENGLISH")
#if defined( ENGLISH )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_EnglishText_public_symbol(void);
#if defined( ENGLISH )
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -110,11 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
STR16 pMenuStrings[] =
@@ -12297,5 +12276,3 @@ STR16 szRobotText[] =
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //ENGLISH
+1 -23
View File
@@ -1,20 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("FRENCH")
#ifdef FRENCH
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_FrenchText_public_symbol(void){;}
#ifdef FRENCH
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -115,10 +99,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
@@ -12289,5 +12269,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //FRENCH
+1 -24
View File
@@ -1,21 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("GERMAN")
#ifdef GERMAN
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_GermanText_public_symbol(void){;}
#ifdef GERMAN
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
******************************************************************************************************
@@ -134,10 +117,6 @@ Remove any LOOTF comment that has been checked, except maybe for "alt." (alterna
07/2010 LootFragg
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
@@ -12212,5 +12191,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //GERMAN
+1 -23
View File
@@ -1,20 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("ITALIAN")
#if defined( ITALIAN )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_ItalianText_public_symbol(void){;}
#ifdef ITALIAN
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -110,10 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
STR16 pMenuStrings[] =
@@ -12298,5 +12278,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //ITALIAN
+1 -16
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("CHINESE")
#ifdef CHINESE
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25ChineseText_public_symbol(void){;}
#ifdef CHINESE
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -524,5 +511,3 @@ STR16 gzDisplayCoverText[]=
L"隐蔽难度", //L"Stealth difficulty",
L"陷阱等级", //L"Trap level",
};
#endif
+1 -17
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("DUTCH")
#ifdef DUTCH
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25DutchText_public_symbol(void){;}
#ifdef DUTCH
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -525,6 +512,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -16
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("ENGLISH")
#ifdef ENGLISH
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25EnglishText_public_symbol(void);
#ifdef ENGLISH
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -524,5 +511,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -17
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("FRENCH")
#ifdef FRENCH
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25FrenchText_public_symbol(void){;}
#ifdef FRENCH
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -525,6 +512,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -17
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("GERMAN")
#ifdef GERMAN
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25GermanText_public_symbol(void){;}
#ifdef GERMAN
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
//these strings match up with the defines in IMP Skill trait.cpp
STR16 gzIMPSkillTraitsText[]=
@@ -526,6 +513,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -17
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("ITALIAN")
#ifdef ITALIAN
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25ItalianText_public_symbol(void){;}
#ifdef ITALIAN
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -523,6 +510,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -18
View File
@@ -1,18 +1,4 @@
// WANNE: This pragma should not be needed anymore for Polish version, after we set the encoding to UTF8
// WANNE: Yes we need this here exclusivly in Polish version, because we do not have a codepage in the code like for other versions.
//#pragma setlocale("POLISH")
#ifdef POLISH
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25PolishText_public_symbol(void){;}
#ifdef POLISH
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -525,6 +511,3 @@ STR16 gzDisplayCoverText[]=
L"Stealth difficulty",
L"Trap level",
};
#endif
+1 -16
View File
@@ -1,17 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("RUSSIAN")
#ifdef RUSSIAN
#include "Text.h"
#include "FileMan.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_Ja25RussianText_public_symbol(void){;}
#ifdef RUSSIAN
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
// VERY TRUNCATED FILE COPIED FROM JA2.5 FOR ITS FEATURES FOR JA2 GOLD
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - New STOMP laptop strings
@@ -524,5 +511,3 @@ STR16 gzDisplayCoverText[]=
L"Сложность остаться незаметным", //Stealth difficulty
L"Уровень ловушки",
};
#endif
+1 -24
View File
@@ -1,21 +1,4 @@
// WANNE: This pragma should not be needed anymore for Polish version, after we set the encoding to UTF8
// WANNE: Yes we need this here exclusivly in Polish version, because we do not have a codepage in the code like for other versions.
//#pragma setlocale("POLISH")
#if defined( POLISH )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_PolishText_public_symbol(void){;}
#ifdef POLISH
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -111,10 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
@@ -12311,5 +12290,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //POLISH
+1 -23
View File
@@ -1,20 +1,4 @@
// WANNE: Yes, this should be disabled, otherwise we get weird behavior when running the game with a VS 2005 build!
//#pragma setlocale("RUSSIAN")
#if defined( RUSSIAN )
#include "Text.h"
#include "FileMan.h"
#include "Scheduling.h"
#include "EditorMercs.h"
#include "Item Statistics.h"
#endif
//suppress : warning LNK4221: no public symbols found; archive member will be inaccessible
void this_is_the_RussianText_public_symbol(void){;}
#ifdef RUSSIAN
/*
/*
******************************************************************************************************
** IMPORTANT TRANSLATION NOTES **
@@ -110,10 +94,6 @@ FAST HELP TEXT -- Explains how the syntax of fast help text works.
*/
CHAR16 XMLTacticalMessages[1000][MAX_MESSAGE_NAMES_CHARS] =
{
L"",
};
//Encyclopedia
@@ -12292,5 +12272,3 @@ STR16 szRobotText[] = // TODO: Translate
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //RUSSIAN
-24
View File
@@ -30,30 +30,6 @@
LIBRARY_LOADSCREENS,
LIBRARY_INTRO,
#ifdef GERMAN
LIBRARY_GERMAN_DATA,
#endif
#ifdef DUTCH
LIBRARY_DUTCH_DATA,
#endif
#ifdef POLISH
LIBRARY_POLISH_DATA,
#endif
#ifdef ITALIAN
LIBRARY_ITALIAN_DATA,
#endif
#ifdef RUSSIAN
LIBRARY_RUSSIAN_DATA,
#endif
#ifdef FRENCH
LIBRARY_FRENCH_DATA,
#endif
NUMBER_OF_LIBRARIES
};
@@ -7,30 +7,6 @@
namespace Loc
{
enum Language
{
Chinese,
Dutch,
English,
French,
German,
Italian,
Polish,
Russian,
};
static const wchar_t* LangSuffix [] = {
L"_cn",
L"_nl",
L"_en",
L"_fr",
L"_de",
L"_it",
L"_pl",
L"_ru",
L"_tw",
};
enum Topic
{
AIM_BIOGRAPHY,
+489 -504
View File
File diff suppressed because it is too large Load Diff
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -81,7 +81,7 @@ enum
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25GERMANTEXT__H_
#ifndef _JA25GERMANTEXT__H_
#define _JA25GERMANTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+36 -36
View File
@@ -1,49 +1,49 @@
#ifndef _JA25ENGLISHTEXT__H_
#ifndef _JA25ENGLISHTEXT__H_
#define _JA25ENGLISHTEXT__H_
extern STR16 gzIMPSkillTraitsText[];
extern STR16* gzIMPSkillTraitsText;
////////////////////////////////////////////////////////
// added by SANDRO
extern STR16 gzIMPSkillTraitsTextNewMajor[];
extern STR16 gzIMPSkillTraitsTextNewMinor[];
extern STR16* gzIMPSkillTraitsTextNewMajor;
extern STR16* gzIMPSkillTraitsTextNewMinor;
extern STR16 gzIMPMajorTraitsHelpTextsAutoWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsHeavyWeapons[];
extern STR16 gzIMPMajorTraitsHelpTextsSniper[];
extern STR16 gzIMPMajorTraitsHelpTextsRanger[];
extern STR16 gzIMPMajorTraitsHelpTextsGunslinger[];
extern STR16 gzIMPMajorTraitsHelpTextsMartialArts[];
extern STR16 gzIMPMajorTraitsHelpTextsSquadleader[];
extern STR16 gzIMPMajorTraitsHelpTextsTechnician[];
extern STR16 gzIMPMajorTraitsHelpTextsDoctor[];
extern STR16 gzIMPMajorTraitsHelpTextsCovertOps[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsRadioOperator[]; // added by Flugente
extern STR16 gzIMPMajorTraitsHelpTextsNone[];
extern STR16* gzIMPMajorTraitsHelpTextsAutoWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsHeavyWeapons;
extern STR16* gzIMPMajorTraitsHelpTextsSniper;
extern STR16* gzIMPMajorTraitsHelpTextsRanger;
extern STR16* gzIMPMajorTraitsHelpTextsGunslinger;
extern STR16* gzIMPMajorTraitsHelpTextsMartialArts;
extern STR16* gzIMPMajorTraitsHelpTextsSquadleader;
extern STR16* gzIMPMajorTraitsHelpTextsTechnician;
extern STR16* gzIMPMajorTraitsHelpTextsDoctor;
extern STR16* gzIMPMajorTraitsHelpTextsCovertOps; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsRadioOperator; // added by Flugente
extern STR16* gzIMPMajorTraitsHelpTextsNone;
extern STR16 gzIMPMinorTraitsHelpTextsAmbidextrous[];
extern STR16 gzIMPMinorTraitsHelpTextsMelee[];
extern STR16 gzIMPMinorTraitsHelpTextsThrowing[];
extern STR16 gzIMPMinorTraitsHelpTextsStealthy[];
extern STR16 gzIMPMinorTraitsHelpTextsNightOps[];
extern STR16 gzIMPMinorTraitsHelpTextsAthletics[];
extern STR16 gzIMPMinorTraitsHelpTextsBodybuilding[];
extern STR16 gzIMPMinorTraitsHelpTextsDemolitions[];
extern STR16 gzIMPMinorTraitsHelpTextsTeaching[];
extern STR16 gzIMPMinorTraitsHelpTextsScouting[];
extern STR16 gzIMPMinorTraitsHelpTextsSnitch[];
extern STR16 gzIMPMajorTraitsHelpTextsSurvival[]; // added by Flugente
extern STR16 gzIMPMinorTraitsHelpTextsNone[];
extern STR16* gzIMPMinorTraitsHelpTextsAmbidextrous;
extern STR16* gzIMPMinorTraitsHelpTextsMelee;
extern STR16* gzIMPMinorTraitsHelpTextsThrowing;
extern STR16* gzIMPMinorTraitsHelpTextsStealthy;
extern STR16* gzIMPMinorTraitsHelpTextsNightOps;
extern STR16* gzIMPMinorTraitsHelpTextsAthletics;
extern STR16* gzIMPMinorTraitsHelpTextsBodybuilding;
extern STR16* gzIMPMinorTraitsHelpTextsDemolitions;
extern STR16* gzIMPMinorTraitsHelpTextsTeaching;
extern STR16* gzIMPMinorTraitsHelpTextsScouting;
extern STR16* gzIMPMinorTraitsHelpTextsSnitch;
extern STR16* gzIMPMajorTraitsHelpTextsSurvival; // added by Flugente
extern STR16* gzIMPMinorTraitsHelpTextsNone;
extern STR16 gzIMPOldSkillTraitsHelpTexts[];
extern STR16* gzIMPOldSkillTraitsHelpTexts;
extern STR16 gzIMPNewCharacterTraitsHelpTexts[];
extern STR16* gzIMPNewCharacterTraitsHelpTexts;
extern STR16 gzIMPDisabilitiesHelpTexts[];
extern STR16* gzIMPDisabilitiesHelpTexts;
extern STR16 gzIMPProfileCostText[];
extern STR16* gzIMPProfileCostText;
extern STR16 zGioNewTraitsImpossibleText[];
extern STR16* zGioNewTraitsImpossibleText;
///////////////////////////////////////////////////////
enum
@@ -52,7 +52,7 @@ enum
IMM__SOFT_IRON_MAN_MODE_WARNING_TEXT,
IMM__EXTREME_IRON_MAN_MODE_WARNING_TEXT,
};
extern STR16 gzIronManModeWarningText[];
extern STR16* gzIronManModeWarningText;
// display cover message (for tactical usually, seperated)
// display cover terrain type info (used in cover information)
@@ -80,7 +80,7 @@ enum
DC_TTI__DETAILED_STEALTH,
DC_TTI__DETAILED_TRAP_LEVEL,
};
extern STR16 gzDisplayCoverText[];
extern STR16* gzDisplayCoverText;
#endif
+15 -2
View File
@@ -2,6 +2,8 @@
#include <types.h>
#include <string>
namespace i18n {
enum class Lang
{
@@ -16,8 +18,19 @@ enum class Lang
};
}
extern const i18n::Lang g_lang;
extern i18n::Lang g_lang;
extern const int MAX_MESSAGES_ON_MAP_BOTTOM;
/* Parses a LANGUAGE ini value (ENGLISH/GERMAN/...) into i18n::Lang; falls back
* to the build's compiled-in default (and logs) on unknown input. Called once
* at startup. */
auto SetLanguageFromName(std::string const& name) -> void;
extern int MAX_MESSAGES_ON_MAP_BOTTOM;
auto GetLanguagePrefix() -> const STR;
/* Rebinds every language table's global pointer to the given language's
* namespace (see LanguageStrings.cpp). Called once at startup, right after
* the LANGUAGE ini key resolves g_lang (sgp.cpp GetRuntimeSettings), before
* any UI reads a string. */
auto BindLanguageStrings(i18n::Lang lang) -> void;
+49 -48
View File
@@ -1,54 +1,55 @@
#include <language.hpp>
#include "DEBUG.H"
/* FIXME: The ugliest of ugly hacks. Getting rid of this and letting language
* (ideally text and voice separately) be set in the options menu would be
* ideal. */
const i18n::Lang g_lang{
#if defined(ENGLISH)
i18n::Lang::en
#elif defined(CHINESE)
i18n::Lang::zh
#elif defined(DUTCH)
i18n::Lang::nl
#elif defined(FRENCH)
i18n::Lang::fr
#elif defined(GERMAN)
i18n::Lang::de
#elif defined(ITALIAN)
i18n::Lang::it
#elif defined(POLISH)
i18n::Lang::pl
#elif defined(RUSSIAN)
i18n::Lang::ru
#endif
};
namespace {
constexpr auto RowsForLang(i18n::Lang lang) -> int {
return lang == i18n::Lang::zh ? 6 : 9;
}
constexpr i18n::Lang kBuildDefaultLang = i18n::Lang::en;
constexpr int kBuildDefaultMaxMessagesOnMapBottom = RowsForLang(kBuildDefaultLang);
} // namespace
const int MAX_MESSAGES_ON_MAP_BOTTOM{
#if defined(CHINESE) // zwwoooooo: Chinese fonts relatively high , so to reduce the number of rows
6
#else
9
#endif
};
i18n::Lang g_lang = kBuildDefaultLang;
int MAX_MESSAGES_ON_MAP_BOTTOM = kBuildDefaultMaxMessagesOnMapBottom;
auto ApplyLang(i18n::Lang lang = kBuildDefaultLang ) {
MAX_MESSAGES_ON_MAP_BOTTOM = RowsForLang(lang);
g_lang = lang;
}
auto SetLanguageFromName(std::string const& name) -> void {
static const struct { const STR name; i18n::Lang lang; } table[] = {
{ "ENGLISH", i18n::Lang::en },
{ "GERMAN", i18n::Lang::de },
{ "RUSSIAN", i18n::Lang::ru },
{ "DUTCH", i18n::Lang::nl },
{ "POLISH", i18n::Lang::pl },
{ "FRENCH", i18n::Lang::fr },
{ "ITALIAN", i18n::Lang::it },
{ "CHINESE", i18n::Lang::zh },
};
for (auto const& entry : table) {
if (_stricmp(name.c_str(), entry.name) == 0) {
ApplyLang(entry.lang);
return;
}
}
ApplyLang();
FastDebugMsg(String("SetLanguageFromName: unknown LANGUAGE value '%s', keeping build default", name.c_str()));
}
auto GetLanguagePrefix() -> const STR {
return
#if defined(ENGLISH)
""
#elif defined(CHINESE)
"Chinese."
#elif defined(DUTCH)
"Dutch."
#elif defined(FRENCH)
"French."
#elif defined(GERMAN)
"German."
#elif defined(ITALIAN)
"Italian."
#elif defined(POLISH)
"Polish."
#elif defined(RUSSIAN)
"Russian."
#endif
;
switch (g_lang) {
case i18n::Lang::en: return "";
case i18n::Lang::de: return "German.";
case i18n::Lang::ru: return "Russian.";
case i18n::Lang::nl: return "Dutch.";
case i18n::Lang::pl: return "Polish.";
case i18n::Lang::fr: return "French.";
case i18n::Lang::it: return "Italian.";
case i18n::Lang::zh: return "Chinese.";
}
return "";
}
+519
View File
@@ -0,0 +1,519 @@
X(pMenuStrings)
X(pLocationPageText)
X(pSectorPageText)
X(pEncyclopediaHelpText)
X(pEncyclopediaTypeText)
X(pEncyclopediaSkrotyText)
X(pEncyclopediaFilterLocationText)
X(pEncyclopediaSubFilterLocationText)
X(pEncyclopediaFilterCharText)
X(pEncyclopediaSubFilterCharText)
X(pEncyclopediaFilterItemText)
X(pEncyclopediaSubFilterItemText)
X(pEncyclopediaFilterQuestText)
X(pEncyclopediaSubFilterQuestText)
X(pEncyclopediaShortCharacterText)
X(pEncyclopediaHelpCharacterText)
X(pEncyclopediaShortInventoryText)
X(BoxFilter)
X(pOtherButtonsText)
X(pOtherButtonsHelpText)
X(QuestDescText)
X(FactDescText)
X(iEditorItemStatsButtonsText)
X(FaceDirs)
X(iEditorMercsToolbarText)
X(iEditorBuildingsToolbarText)
X(iEditorItemsToolbarText)
X(iEditorMapInfoToolbarText)
X(iEditorOptionsToolbarText)
X(iEditorTerrainToolbarText)
X(iEditorTaskbarInternalText)
X(iRenderMapEntryPointsAndLightsText)
X(iBuildTriggerNameText)
X(iRenderDoorLockInfoText)
X(iRenderEditorInfoText)
X(iUpdateBuildingsInfoText)
X(iRenderDoorEditingWindowText)
X(pInitEditorItemsInfoText)
X(pDisplayItemStatisticsTex)
X(pUpdateMapInfoText)
X(gszScheduleActions)
X(zDiffNames)
X(EditMercStat)
X(EditMercOrders)
X(EditMercAttitudes)
X(pDisplayEditMercWindowText)
X(pCreateEditMercWindowText)
X(pDisplayBodyTypeInfoText)
X(pUpdateMercsInfoText)
X(pRenderMercStringsText)
X(pClearCurrentScheduleText)
X(pCopyMercPlacementText)
X(pPasteMercPlacementText)
X(pEditModeShutdownText)
X(pHandleKeyboardShortcutsText)
X(pPerformSelectedActionText)
X(pWaitForHelpScreenResponseText)
X(pAutoLoadMapText)
X(pShowHighGroundText)
X(pUpdateItemStatsPanelText)
X(pSetupGameTypeFlagsText)
X(pSetupGunGUIText)
X(pSetupArmourGUIText)
X(pSetupExplosivesGUIText)
X(pSetupTriggersGUIText)
X(pCreateSummaryWindowText)
X(pRenderSectorInformationText)
X(pRenderItemDetailsText)
X(pRenderSummaryWindowText)
X(pUpdateSectorSummaryText)
X(pSummaryLoadMapCallbackText)
X(pReportErrorText)
X(pRegenerateSummaryInfoForAllOutdatedMapsText)
X(pSummaryUpdateCallbackText)
X(pApologizeOverrideAndForceUpdateEverythingText)
X(pDisplaySelectionWindowGraphicalInformationText)
X(pDisplaySelectionWindowButtonText)
X(wszSelType)
X(gzNewLaptopMessages)
X(zNewTacticalMessages)
X(gszAimPages)
X(zGrod)
X(pCreditsJA2113)
X(ShortItemNames)
X(ItemNames)
X(AmmoCaliber)
X(BobbyRayAmmoCaliber)
X(WeaponType)
X(Message)
X(TeamTurnString)
X(pMilitiaControlMenuStrings)
X(pTraitSkillsMenuStrings)
X(pTraitSkillsMenuDescStrings)
X(pTraitSkillsDenialStrings)
X(pSkillMenuStrings)
X(pSnitchMenuStrings)
X(pSnitchMenuDescStrings)
X(pSnitchToggleMenuStrings)
X(pSnitchToggleMenuDescStrings)
X(pSnitchSectorMenuStrings)
X(pSnitchSectorMenuDescStrings)
X(pPrisonerMenuStrings)
X(pPrisonerMenuDescStrings)
X(pSnitchPrisonExposedStrings)
X(pSnitchGatheringRumoursResultStrings)
X(pAssignMenuStrings)
X(pTrainingStrings)
X(pTrainingMenuStrings)
X(pAttributeMenuStrings)
X(pVehicleStrings)
X(pShortAttributeStrings)
X(pLongAttributeStrings)
X(pContractStrings)
X(pAssignmentStrings)
X(pConditionStrings)
X(pCountryNames)
X(pTownNames)
X(pPersonnelScreenStrings)
X(pPersonnelRecordsHelpTexts)
X(pPersonnelTitle)
X(pUpperLeftMapScreenStrings)
X(pTacticalPopupButtonStrings)
X(pSquadMenuStrings)
X(pDoorTrapStrings)
X(pLongAssignmentStrings)
X(pContractExtendStrings)
X(pMapScreenMouseRegionHelpText)
X(pPersonnelAssignmentStrings)
X(pNoiseVolStr)
X(pNoiseTypeStr)
X(pDirectionStr)
X(pRemoveMercStrings)
X(sTimeStrings)
X(pLandTypeStrings)
X(pGuardMenuStrings)
X(pOtherGuardMenuStrings)
X(pInvPanelTitleStrings)
X(pPOWStrings)
X(pMilitiaString)
X(pMilitiaButtonString)
X(pEpcMenuStrings)
X(pRepairStrings)
X(sPreStatBuildString)
X(sStatGainStrings)
X(pHelicopterEtaStrings)
X(pHelicopterRepairRefuelStrings)
X(sMapLevelString)
X(gsLoyalString)
X(gsUndergroundString)
X(gsTimeStrings)
X(sFacilitiesStrings)
X(pMapPopUpInventoryText)
X(pwTownInfoStrings)
X(pwMineStrings)
X(pwMiscSectorStrings)
X(pMapInventoryErrorString)
X(pMapInventoryStrings)
X(pMapScreenFastHelpTextList)
X(pMovementMenuStrings)
X(pUpdateMercStrings)
X(pMapScreenBorderButtonHelpText)
X(pMapScreenInvenButtonHelpText)
X(pMapScreenBottomFastHelp)
X(pMapScreenBottomText)
X(pMercDeadString)
X(pSenderNameList)
X(pTraverseStrings)
X(pNewMailStrings)
X(pDeleteMailStrings)
X(pEmailHeaders)
X(pEmailTitleText)
X(pFinanceTitle)
X(pFinanceSummary)
X(pFinanceHeaders)
X(pTransactionText)
X(pTransactionAlternateText)
X(pMoralStrings)
X(pSkyriderText)
X(pLeftEquipmentString)
X(pMapScreenStatusStrings)
X(pMapScreenPrevNextCharButtonHelpText)
X(pEtaString)
X(pShortVehicleStrings)
X(pTrashItemText)
X(pMapErrorString)
X(pMapPlotStrings)
X(pMiscMapScreenMouseRegionHelpText)
X(pMercHeLeaveString)
X(pMercSheLeaveString)
X(pImpPopUpStrings)
X(pImpButtonText)
X(pExtraIMPStrings)
X(pDayStrings)
X(pMercContractOverStrings)
X(pFilesTitle)
X(pFilesSenderList)
X(pHistoryLocations)
X(pHistoryHeaders)
X(pHistoryTitle)
X(pShowBookmarkString)
X(pWebPagesTitles)
X(pWebTitle)
X(pPersonnelString)
X(pErrorStrings)
X(pDownloadString)
X(pBookmarkTitle)
X(pBookMarkStrings)
X(pLaptopIcons)
X(gsAtmStartButtonText)
X(pPersonnelTeamStatsStrings)
X(pPersonnelCurrentTeamStatsStrings)
X(pPersonelTeamStrings)
X(pPersonnelDepartedStateStrings)
X(pMapHortIndex)
X(pMapVertIndex)
X(pMapDepthIndex)
X(pLaptopTitles)
X(pMilitiaConfirmStrings)
X(pDeliveryLocationStrings)
X(pSkillAtZeroWarning)
X(pIMPBeginScreenStrings)
X(pIMPFinishButtonText)
X(pIMPFinishStrings)
X(pIMPVoicesStrings)
X(pDepartedMercPortraitStrings)
X(pPersTitleText)
X(pPausedGameText)
X(zOptionsToggleText)
X(zOptionsScreenHelpText)
X(pDoctorWarningString)
X(pMilitiaButtonsHelpText)
X(pMapScreenJustStartedHelpText)
X(pLandMarkInSectorString)
X(gzMercSkillText)
X(gzMercSkillTextNew)
X(gzNonPersistantPBIText)
X(gzMiscString)
X(pBullseyeStrings)
X(wMapScreenSortButtonHelpText)
X(pNewNoiseStr)
X(pTauntUnknownVoice)
X(gzLateLocalizedString)
X(gzCWStrings)
X(gzTooltipStrings)
X(pSkillTraitBeginIMPStrings)
X(sgAttributeSelectionText)
X(pCharacterTraitBeginIMPStrings)
X(gzIMPCharacterTraitText)
X(gzIMPAttitudesText)
X(gzIMPColorChoosingText)
X(sColorChoiceExplanationTexts)
X(gzIMPDisabilityTraitText)
X(gzIMPDisabilityTraitEmailTextDeaf)
X(gzIMPDisabilityTraitEmailTextShortSighted)
X(gzIMPDisabilityTraitEmailTextHemophiliac)
X(gzIMPDisabilityTraitEmailTextAfraidOfHeights)
X(gzIMPDisabilityTraitEmailTextSelfHarm)
X(sEnemyTauntsFireGun)
X(sEnemyTauntsFireLauncher)
X(sEnemyTauntsThrow)
X(sEnemyTauntsChargeKnife)
X(sEnemyTauntsRunAway)
X(sEnemyTauntsSeekNoise)
X(sEnemyTauntsAlert)
X(sEnemyTauntsGotHit)
X(sEnemyTauntsNoticedMerc)
X(sSpecialCharacters)
X(gzFacilityErrorMessage)
X(gzFacilityAssignmentStrings)
X(gzFacilityRiskResultStrings)
X(gzNCTHlabels)
X(gzMapInventorySortingMessage)
X(gzMapInventoryFilterOptions)
X(gzMercCompare)
X(pAntiHackerString)
X(pMessageStrings)
X(gzMoneyAmounts)
X(gzProsLabel)
X(gzConsLabel)
X(gzItemDescTabButtonText)
X(gzItemDescTabButtonShortText)
X(gzItemDescGenHeaders)
X(gzItemDescGenIndexes)
X(gConditionDesc)
X(gTemperatureDesc)
X(gFoodDesc)
X(gzWeaponStatsFasthelpTactical)
X(gzMiscItemStatsFasthelp)
X(gzUDBButtonTooltipText)
X(gzUDBHeaderTooltipText)
X(gzUDBGenIndexTooltipText)
X(gzUDBAdvIndexTooltipText)
X(szUDBGenWeaponsStatsTooltipText)
X(szUDBGenWeaponsStatsExplanationsTooltipText)
X(szUDBGenArmorStatsTooltipText)
X(szUDBGenArmorStatsExplanationsTooltipText)
X(szUDBGenAmmoStatsTooltipText)
X(szUDBGenAmmoStatsExplanationsTooltipText)
X(szUDBGenExplosiveStatsTooltipText)
X(szUDBGenExplosiveStatsExplanationsTooltipText)
X(szUDBGenCommonStatsTooltipText)
X(szUDBGenCommonStatsExplanationsTooltipText)
X(szUDBGenSecondaryStatsTooltipText)
X(szUDBGenSecondaryStatsExplanationsTooltipText)
X(szUDBAdvStatsTooltipText)
X(szUDBAdvStatsExplanationsTooltipText)
X(szUDBAdvStatsExplanationsTooltipTextForWeapons)
X(sKeyDescriptionStrings)
X(gzHiddenHitCountStr)
X(zVehicleName)
X(pVehicleSeatsStrings)
X(szCovertTextStr)
X(gPowerPackDesc)
X(szCorpseTextStr)
X(szFoodTextStr)
X(szPrisonerTextStr)
X(szMTATextStr)
X(szInventoryArmTextStr)
X(pExitingSectorHelpText)
X(InsContractText)
X(InsInfoText)
X(MercAccountText)
X(MercAccountPageText)
X(MercInfo)
X(MercNoAccountText)
X(MercHomePageText)
X(sFuneralString)
X(sFloristText)
X(sOrderFormText)
X(sFloristGalleryText)
X(sFloristCards)
X(BobbyROrderFormText)
X(BobbyRText)
X(BobbyRFilter)
X(BobbyRaysFrontText)
X(AimSortText)
X(AimPolicyText)
X(AimMemberText)
X(CharacterInfo)
X(VideoConfercingText)
X(AimPopUpText)
X(AimLinkText)
X(AimHistoryText)
X(AimFiText)
X(AimAlumniText)
X(AimScreenText)
X(AimBottomMenuText)
X(zMarksMapScreenText)
X(gpStrategicString)
X(gpGameClockString)
X(SKI_Text)
X(SkiAtmText)
X(gzSkiAtmText)
X(SkiMessageBoxText)
X(zSaveLoadText)
X(zOptionsText)
X(z113FeaturesScreenText)
X(z113FeaturesToggleText)
X(z113FeaturesHelpText)
X(z113FeaturesPanelText)
X(gzGIOScreenText)
X(gzMPJHelpText)
X(gzMPJScreenText)
X(gzMPHScreenText)
X(gzMPSScreenText)
X(gzMPCScreenText)
X(gszMPEdgesText)
X(gszMPTeamNames)
X(gzMPChatToggleText)
X(gzMPChatboxText)
X(gzHelpScreenText)
X(gzLaptopHelpText)
X(gzMoneyWithdrawMessageText)
X(gzCopyrightText)
X(BrokenLinkText)
X(gzBobbyRShipmentText)
X(zGioDifConfirmText)
X(gzCreditNames)
X(gzCreditNameTitle)
X(gzCreditNameFunny)
X(New113Message)
X(New113MERCMercMailTexts)
X(MissingIMPSkillsDescriptions)
X(New113AIMMercMailTexts)
X(New113HAMMessage)
X(gzTransformationMessage)
X(NewInvMessage)
X(MPServerMessage)
X(MPClientMessage)
X(gszMPMapscreenText)
X(Additional113Text)
X(ranks)
X(gszPocketPopupText)
X(gLbeStatsDesc)
X(szBackgroundText_Flags)
X(szBackgroundText_Value)
X(szSoldierClassName)
X(szBackgroundTitleText)
X(szPersonalityTitleText)
X(szPersonalityDisplayText)
X(szPersonalityHelpText)
X(szRaceText)
X(szAppearanceText)
X(szRefinementText)
X(szRefinementTextTypes)
X(szNationalityText)
X(szNationalityTextAdjective)
X(szNationalityText_Special)
X(szCareLevelText)
X(szRacistText)
X(szSexistText)
X(szCampaignHistoryWebSite)
X(szCampaignHistoryDetail)
X(szCampaignHistoryTimeString)
X(szCampaignHistoryMoneyTypeString)
X(szCampaignHistoryConsumptionTypeString)
X(szCampaignHistoryResultString)
X(szCampaignHistoryImportanceString)
X(szCampaignHistoryWebpageString)
X(szCampaignStatsOperationPrefix)
X(szCampaignStatsOperationSuffix)
X(szMercCompareWebSite)
X(szMercCompareEventText)
X(szWHOWebSite)
X(szPMCWebSite)
X(szTacticalInventoryDialogString)
X(szTacticalCoverDialogString)
X(szTacticalCoverDialogPrintString)
X(szDynamicDialogueText_DOST_VICTIM_TO_INTERJECTOR_DENY)
X(szDynamicDialogueText_DOST_VICTIM_TO_INTERJECTOR_AGREE)
X(szDynamicDialogueText_DOST_SIDEWITH_VICTIM)
X(szDynamicDialogueText_DOST_SIDEWITH_CAUSE)
X(szDynamicDialogueText_DOST_INTERJECTOR_DIALOGUESELECTION_SHORTTEXT)
X(szDynamicDialogueText_GenderText)
X(szDiseaseText)
X(szSpyText)
X(szFoodText)
X(szIMPGearWebSiteText)
X(szIMPGearPocketText)
X(szMilitiaStrategicMovementText)
X(szEnemyHeliText)
X(szFortificationText)
X(szMilitiaWebSite)
X(szIndividualMilitiaBattleReportText)
X(szIndividualMilitiaTraitRequirements)
X(szIdividualMilitiaWebsiteText)
X(szIdividualMilitiaWebsiteFilterText_Dead)
X(szIdividualMilitiaWebsiteFilterText_Rank)
X(szIdividualMilitiaWebsiteFilterText_Origin)
X(szIdividualMilitiaWebsiteFilterText_Sector)
X(szNonProfileMerchantText)
X(szWeatherTypeText)
X(szSnakeText)
X(szSMilitiaResourceText)
X(szInteractiveActionText)
X(szLaptopStatText)
X(szGearTemplateText)
X(szIntelWebsiteText)
X(szIntelText)
X(szChatTextSpy)
X(szChatTextEnemy)
X(szMilitiaText)
X(szFactoryText)
X(szTurncoatText)
X(szRebelCommandText)
X(szRebelCommandHelpText)
X(szRebelCommandAdminActionsText)
X(szRebelCommandDirectivesText)
X(szRebelCommandAgentMissionsText)
X(szRobotText)
X(gzIMPSkillTraitsText)
X(gzIMPSkillTraitsTextNewMajor)
X(gzIMPSkillTraitsTextNewMinor)
X(gzIMPMajorTraitsHelpTextsAutoWeapons)
X(gzIMPMajorTraitsHelpTextsHeavyWeapons)
X(gzIMPMajorTraitsHelpTextsSniper)
X(gzIMPMajorTraitsHelpTextsRanger)
X(gzIMPMajorTraitsHelpTextsGunslinger)
X(gzIMPMajorTraitsHelpTextsMartialArts)
X(gzIMPMajorTraitsHelpTextsSquadleader)
X(gzIMPMajorTraitsHelpTextsTechnician)
X(gzIMPMajorTraitsHelpTextsDoctor)
X(gzIMPMajorTraitsHelpTextsCovertOps)
X(gzIMPMajorTraitsHelpTextsRadioOperator)
X(gzIMPMajorTraitsHelpTextsNone)
X(gzIMPMinorTraitsHelpTextsAmbidextrous)
X(gzIMPMinorTraitsHelpTextsMelee)
X(gzIMPMinorTraitsHelpTextsThrowing)
X(gzIMPMinorTraitsHelpTextsStealthy)
X(gzIMPMinorTraitsHelpTextsNightOps)
X(gzIMPMinorTraitsHelpTextsAthletics)
X(gzIMPMinorTraitsHelpTextsBodybuilding)
X(gzIMPMinorTraitsHelpTextsDemolitions)
X(gzIMPMinorTraitsHelpTextsTeaching)
X(gzIMPMinorTraitsHelpTextsScouting)
X(gzIMPMinorTraitsHelpTextsSnitch)
X(gzIMPMajorTraitsHelpTextsSurvival)
X(gzIMPMinorTraitsHelpTextsNone)
X(gzIMPOldSkillTraitsHelpTexts)
X(gzIMPNewCharacterTraitsHelpTexts)
X(gzIMPDisabilitiesHelpTexts)
X(gzIMPProfileCostText)
X(zGioNewTraitsImpossibleText)
X(gzIronManModeWarningText)
X(gzDisplayCoverText)
X(ItemPickupHelpPopup)
X(TacticalStr)
X(LargeTacticalStr)
X(zDialogActions)
X(zDealerStrings)
X(zTalkMenuStrings)
X(gMoneyStatsDesc)
X(gWeaponStatsDesc)
X(zHealthStr)
X(szDynamicDialogueText)
X(pContractButtonString)
X(pUpdatePanelButtons)
X(gzIntroScreen)
X(sRepairsDoneString)
-188
View File
@@ -763,194 +763,6 @@ INT16 GetIndex(CHAR16 siChar)
return 0;
}
//inshy: We don't need anymore ANSI convertation to UNICODE.
/*
CHAR16 GetUnicodeChar(CHAR16 siChar)
{
#ifdef GERMAN
//switch( siChar )
//{
// // ?
// case 252: siChar = 252; break;
// // ?
// case 220: siChar = 220; break;
// // ?
// case 228: siChar = 228; break;
// // ?
// case 196: siChar = 196; break;
// // ?
// case 246: siChar = 246; break;
// // ?
// case 214: siChar = 214; break;
// // ?
// case 223: siChar = 223; break;
//}
#endif
#ifdef RUSSIAN
switch( siChar )
{
//capital letters
case 168: siChar = 1025; break; //U+0401 d0 81 CYRILLIC CAPITAL LETTER IO
case 192: siChar = 1040; break; //U+0410 A d0 90 CYRILLIC CAPITAL LETTER A
case 193: siChar = 1041; break;
case 194: siChar = 1042; break;
case 195: siChar = 1043; break;
case 196: siChar = 1044; break;
case 197: siChar = 1045; break;
case 198: siChar = 1046; break;
case 199: siChar = 1047; break;
case 200: siChar = 1048; break;
case 201: siChar = 1049; break;
case 202: siChar = 1050; break;
case 203: siChar = 1051; break;
case 204: siChar = 1052; break;
case 205: siChar = 1053; break;
case 206: siChar = 1054; break;
case 207: siChar = 1055; break;
case 208: siChar = 1056; break;
case 209: siChar = 1057; break;
case 210: siChar = 1058; break;
case 211: siChar = 1059; break;
case 212: siChar = 1060; break;
case 213: siChar = 1061; break;
case 214: siChar = 1062; break;
case 215: siChar = 1063; break;
case 216: siChar = 1064; break;
case 217: siChar = 1065; break;
case 218: siChar = 1066; break;
case 219: siChar = 1067; break;
case 220: siChar = 1068; break;
case 221: siChar = 1069; break;
case 222: siChar = 1070; break;
case 223: siChar = 1071; break; //U+042F d0 af CYRILLIC CAPITAL LETTER YA
//small letters
case 185: siChar = 8470; break; // ?
case 178: siChar = 1030; break; // ?
case 161: siChar = 1038; break; // ?
case 179: siChar = 1110; break; // ?
case 162: siChar = 1118; break; // ?
case 165: siChar = 1168; break; // ?
case 170: siChar = 1028; break; // ?
case 175: siChar = 1031; break; // ?
case 180: siChar = 1169; break; // ?
case 186: siChar = 1108; break; // ?
case 191: siChar = 1111; break; // ?
case 184: siChar = 1105; break; //U+0451 d1 91 CYRILLIC SMALL LETTER IO
case 224: siChar = 1072; break; //U+0430 a d0 b0 CYRILLIC SMALL LETTER A
case 225: siChar = 1073; break;
case 226: siChar = 1074; break;
case 227: siChar = 1075; break;
case 228: siChar = 1076; break;
case 229: siChar = 1077; break;
case 230: siChar = 1078; break;
case 231: siChar = 1079; break;
case 232: siChar = 1080; break;
case 233: siChar = 1081; break;
case 234: siChar = 1082; break;
case 235: siChar = 1083; break;
case 236: siChar = 1084; break;
case 237: siChar = 1085; break;
case 238: siChar = 1086; break;
case 239: siChar = 1087; break; //U+043F d0 bf CYRILLIC SMALL LETTER PE
case 240: siChar = 1088; break; //U+0440 p d1 80 CYRILLIC SMALL LETTER ER
case 241: siChar = 1089; break;
case 242: siChar = 1090; break;
case 243: siChar = 1091; break;
case 244: siChar = 1092; break;
case 245: siChar = 1093; break;
case 246: siChar = 1094; break;
case 247: siChar = 1095; break;
case 248: siChar = 1096; break;
case 249: siChar = 1097; break;
case 250: siChar = 1098; break;
case 251: siChar = 1099; break;
case 252: siChar = 1100; break;
case 253: siChar = 1101; break;
case 254: siChar = 1102; break;
case 255: siChar = 1103; break; //U+044F d1 8f CYRILLIC SMALL LETTER YA
}
#endif
#ifdef POLISH
switch( siChar )
{
case 165: siChar = 260; break;
case 198: siChar = 262; break;
case 202: siChar = 280; break;
case 163: siChar = 321; break;
case 209: siChar = 323; break;
case 211: siChar = 211; break;
case 140: siChar = 346; break;
case 175: siChar = 379; break;
case 143: siChar = 377; break;
case 185: siChar = 261; break;
case 230: siChar = 263; break;
case 234: siChar = 281; break;
case 179: siChar = 322; break;
case 241: siChar = 324; break;
case 243: siChar = 243; break;
case 156: siChar = 347; break;
case 191: siChar = 380; break;
case 159: siChar = 378; break;
}
#endif
#ifdef FRENCH
switch( siChar )
{
//capital letters
//case 192: siChar = 192; break; //?
//case 194: siChar = 194; break; //?
//case 199: siChar = 199; break; //?
//case 200: siChar = 200; break; //?
//case 201: siChar = 201; break; //?
//case 202: siChar = 202; break; //?
//case 203: siChar = 203; break; //?
//case 206: siChar = 206; break; //?
//case 207: siChar = 207; break; //?
//case 212: siChar = 212; break; //?
//case 217: siChar = 217; break; //?
//case 219: siChar = 219; break; //?
case 143: siChar = 376; break; //?
//small letters
//case 224: siChar = 224; break; //?
//case 226: siChar = 226; break; //?
//case 231: siChar = 231; break; //?
//case 232: siChar = 232; break; //?
//case 233: siChar = 233; break; //?
//case 234: siChar = 234; break; //?
//case 235: siChar = 235; break; //?
//case 238: siChar = 238; break; //?
//case 239: siChar = 239; break; //?
//case 244: siChar = 244; break; //?
//case 249: siChar = 249; break; //?
//case 251: siChar = 251; break; //?
//case 255: siChar = 255; break; //ÿ
//inshy: italian letters
//case 204: siChar = 204; break; //I'
//case 236: siChar = 236; break; //i'
//case 210: siChar = 210; break; //O'
//case 242: siChar = 242; break; //o'
//inshy: French ligatures
//Ligature
//case 198: siChar = 198; break; //?
//case 140: siChar = 338; break; //?
//case 230: siChar = 230; break; //?
//case 156: siChar = 339; break; //?
}
#endif
return siChar;
}
*/
//*****************************************************************************
// SetFont
//
+19
View File
@@ -949,6 +949,25 @@ void GetRuntimeSettings( )
SGP_THROW_IFFALSE( setlocale(LC_ALL, loc.utf8().c_str()), _BS(L"invalid locale : ") << loc << _BS::wget );
}
vfs::PropertyContainer langProps;
langProps.initFromIniFile(std::string{LANGUAGE_INI_FILE});
auto langIni = langProps.getStringProperty("Language", L"LANGUAGE");
auto langCli = oProps.getStringProperty("Ja2 Settings", L"LANGUAGE");
std::string language{};
if(!langCli.empty())
{
language = langCli.utf8();
}
if (!langIni.empty()) {
language = langIni.utf8();
}
SetLanguageFromName(language);
// Rebind every language table pointer to the resolved g_lang. Unconditional:
// with no LANGUAGE key this binds the build default, matching the static
// lang_default initialization the pointers start with.
BindLanguageStrings(g_lang);
iResolution = (int)oProps.getIntProperty(L"Ja2 Settings", L"SCREEN_RESOLUTION", -1);
// WANNE: Always enable