hedgewars/uLocale.pas
author unC0Rr
Wed, 11 May 2022 13:48:55 +0200
changeset 15870 3d05bada4799
parent 14882 acb0526bf458
child 15990 79b1129b4d03
permissions -rw-r--r--
Implement appropriate routing of checker messages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 1063
diff changeset
     2
 * Hedgewars, a free turn based strategy game
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10249
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     4
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     8
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    12
 * GNU General Public License for more details.
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    13
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 10105
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    17
 *)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2457
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2457
diff changeset
    20
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    21
unit uLocale;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    22
interface
4361
64ea345ab655 Move variables from uConsts to uVariables
unc0rr
parents: 4246
diff changeset
    23
uses uTypes;
2863
9eb53b1f1842 Engine:
smxx
parents: 2747
diff changeset
    24
12461
e29a4238dc19 Increase maximum event string message count to 255
Wuzzy <almikes@aol.com>
parents: 11802
diff changeset
    25
const MAX_EVENT_STRINGS = 255;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    26
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
    27
procedure LoadLocale(FileName: shortstring);
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    28
function  GetEventString(e: TEventId): ansistring;
2140
75e5c4fcae2a Death messages thanks to Smaxx
nemo
parents: 2039
diff changeset
    29
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    30
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: shortstring; argCount: Byte): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    31
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    32
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    33
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    34
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    35
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    36
function Format(fmt: shortstring; arg1, arg2, arg3, arg4: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    37
function Format(fmt: shortstring; arg1, arg2, arg3: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    38
function Format(fmt: shortstring; arg1, arg2: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    39
function Format(fmt: shortstring; arg1: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    40
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: ansistring; argCount: Byte): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    41
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    42
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    43
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    44
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    45
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    46
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    47
function FormatA(fmt: ansistring; arg1, arg2, arg3: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    48
function FormatA(fmt: ansistring; arg1, arg2: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    49
function FormatA(fmt: ansistring; arg1: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
    50
7048
0a4c88935902 the ios port runs again, although with a few things to sort out
koda
parents: 6700
diff changeset
    51
{$IFDEF HWLIBRARY}
11790
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
    52
procedure LoadLocaleWrapper(path: pchar; userpath: pchar; filename: pchar); cdecl; export;
7048
0a4c88935902 the ios port runs again, although with a few things to sort out
koda
parents: 6700
diff changeset
    53
{$ENDIF}
0a4c88935902 the ios port runs again, although with a few things to sort out
koda
parents: 6700
diff changeset
    54
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    55
implementation
14882
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    56
uses SysUtils, uRandom, uUtils, uVariables, uDebug, uPhysFSLayer;
2142
48ed98cfd119 Make code suck less
unc0rr
parents: 2140
diff changeset
    57
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    58
var trevt: array[TEventId] of array [0..Pred(MAX_EVENT_STRINGS)] of ansistring;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
    59
    trevt_n: array[TEventId] of integer;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    60
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
    61
procedure LoadLocale(FileName: shortstring);
10127
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    62
var s: ansistring;
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
    63
    f: pfsFile;
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 351
diff changeset
    64
    a, b, c: LongInt;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
    65
    first: array[TEventId] of boolean;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
    66
    e: TEventId;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    67
begin
14882
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    68
{- TODO: Add support for localized decimal separator in Pas2C -}
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    69
{$IFNDEF PAS2C}
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    70
lDecimalSeparator:= FormatSettings.DecimalSeparator;
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    71
{$ENDIF}
acb0526bf458 Refactor decimal separator to make Pas2C happy
Wuzzy <Wuzzy2@mail.ru>
parents: 13988
diff changeset
    72
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    73
for e:= Low(TEventId) to High(TEventId) do
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    74
    first[e]:= true;
2140
75e5c4fcae2a Death messages thanks to Smaxx
nemo
parents: 2039
diff changeset
    75
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
    76
f:= pfsOpenRead(FileName);
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
    77
checkFails(f <> nil, 'Cannot load locale "' + FileName + '"', false);
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
    78
10249
b47ac2c19de3 get rid of fpc warnings/hints
sheepluva
parents: 10127
diff changeset
    79
s:= '';
b47ac2c19de3 get rid of fpc warnings/hints
sheepluva
parents: 10127
diff changeset
    80
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
    81
if f <> nil then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    82
    begin
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
    83
    while not pfsEof(f) do
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    84
        begin
8107
ee21b816394f Bring ansistrings back
unc0rr
parents: 8028
diff changeset
    85
        pfsReadLnA(f, s);
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    86
        if Length(s) = 0 then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    87
            continue;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    88
        if (s[1] < '0') or (s[1] > '9') then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    89
            continue;
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
    90
        checkFails(Length(s) > 6, 'Load locale: empty string', true);
10127
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    91
        {$IFNDEF PAS2C}
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    92
        val(s[1]+s[2], a, c);
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
    93
        checkFails(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true);
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
    94
        val(s[4]+s[5], b, c);
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
    95
        checkFails(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true);
10127
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    96
        {$ELSE}
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    97
        val(s[1]+s[2], a);
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    98
        val(s[4]+s[5], b);
7f29a65aa1e4 It compiles \o/
unc0rr
parents: 10123
diff changeset
    99
        {$ENDIF}
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
   100
        checkFails(s[3] = ':', 'Load locale: ":" expected', true);
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
   101
        checkFails(s[6] = '=', 'Load locale: "=" expected', true);
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
   102
        if not allOK then exit;
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   103
        Delete(s, 1, 6);
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   104
        case a of
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   105
            0: if (b >=0) and (b <= ord(High(TAmmoStrId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   106
                trammo[TAmmoStrId(b)]:= s;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   107
            1: if (b >=0) and (b <= ord(High(TMsgStrId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   108
                trmsg[TMsgStrId(b)]:= s;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   109
            2: if (b >=0) and (b <= ord(High(TEventId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   110
                begin
11532
bf86c6cb9341 Bye-bye TryDo
unc0rr
parents: 11200
diff changeset
   111
                checkFails(trevt_n[TEventId(b)] < MAX_EVENT_STRINGS, 'Too many event strings in ' + IntToStr(a) + ':' + IntToStr(b), false);
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   112
                if first[TEventId(b)] then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
   113
                    begin
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   114
                    trevt_n[TEventId(b)]:= 0;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   115
                    first[TEventId(b)]:= false;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
   116
                    end;
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   117
                trevt[TEventId(b)][trevt_n[TEventId(b)]]:= s;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   118
                inc(trevt_n[TEventId(b)]);
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   119
                end;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   120
            3: if (b >=0) and (b <= ord(High(TAmmoStrId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   121
                trammoc[TAmmoStrId(b)]:= s;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   122
            4: if (b >=0) and (b <= ord(High(TAmmoStrId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   123
                trammod[TAmmoStrId(b)]:= s;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   124
            5: if (b >=0) and (b <= ord(High(TGoalStrId))) then
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   125
                trgoal[TGoalStrId(b)]:= s;
13463
b587cdb03bac Add /help chat command for engine
Wuzzy <Wuzzy2@mail.ru>
parents: 13157
diff changeset
   126
            6: if (b >=0) and (b <= ord(High(TCmdHelpStrId))) then
b587cdb03bac Add /help chat command for engine
Wuzzy <Wuzzy2@mail.ru>
parents: 13157
diff changeset
   127
                trcmd[TCmdHelpStrId(b)]:= s;
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   128
           end;
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   129
       end;
8028
dc30104660d3 Engine loads fine with basic config
unc0rr
parents: 7069
diff changeset
   130
   pfsClose(f);
2722
d891285e500f IOResult is a special variable
nemo
parents: 2721
diff changeset
   131
   end;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   132
end;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   133
10122
cefede760264 Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents: 10116
diff changeset
   134
function GetEventString(e: TEventId): ansistring;
2140
75e5c4fcae2a Death messages thanks to Smaxx
nemo
parents: 2039
diff changeset
   135
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
   136
    if trevt_n[e] = 0 then // no messages for this event type?
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
   137
        GetEventString:= '*missing translation*'
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
   138
    else
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2908
diff changeset
   139
        GetEventString:= trevt[e][GetRandom(trevt_n[e])]; // Pick a random message and return it
2140
75e5c4fcae2a Death messages thanks to Smaxx
nemo
parents: 2039
diff changeset
   140
end;
75e5c4fcae2a Death messages thanks to Smaxx
nemo
parents: 2039
diff changeset
   141
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   142
// Format the string fmt.
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   143
// Take a shortstring with placeholders %1, %2, %3, ... %9. and replace
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   144
// them with the corresponding elements of an array with up to
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   145
// argCount. ArgCount must not be larger than 9.
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   146
// Each placeholder must be used exactly once and numbers MUST NOT be
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   147
// skipped (e.g. using %1 and %3 but not %2.
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   148
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: shortstring; argCount: Byte): shortstring;
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   149
var i, p: LongInt;
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   150
tempstr, curArg: shortstring;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   151
begin
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   152
tempstr:= fmt;
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   153
for i:=0 to argCount - 1 do
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   154
    begin
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   155
        case i of
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   156
            0: curArg:= arg1;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   157
            1: curArg:= arg2;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   158
            2: curArg:= arg3;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   159
            3: curArg:= arg4;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   160
            4: curArg:= arg5;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   161
            5: curArg:= arg6;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   162
            6: curArg:= arg7;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   163
            7: curArg:= arg8;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   164
            8: curArg:= arg9;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   165
        end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   166
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   167
        repeat
13157
c5453cbdeb87 uLocale: Fix broken Format function
Wuzzy <Wuzzy2@mail.ru>
parents: 13043
diff changeset
   168
        p:= Pos('%'+IntToStr(i+1), tempstr);
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   169
        if (p <> 0) then
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   170
            begin
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   171
            delete(tempstr, p, 2);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   172
            insert(curArg, tempstr, p);
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   173
            end;
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   174
        until (p = 0);
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   175
    end;
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   176
Format:= tempstr;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   177
end;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   178
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   179
// Same as Format, but for ansistring
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   180
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: ansistring; argCount: Byte): ansistring;
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   181
var i, p: LongInt;
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   182
tempstr, curArg: ansistring;
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
   183
begin
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   184
tempstr:= fmt;
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   185
for i:=0 to argCount - 1 do
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   186
    begin
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   187
        case i of
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   188
            0: curArg:= arg1;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   189
            1: curArg:= arg2;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   190
            2: curArg:= arg3;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   191
            3: curArg:= arg4;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   192
            4: curArg:= arg5;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   193
            5: curArg:= arg6;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   194
            6: curArg:= arg7;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   195
            7: curArg:= arg8;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   196
            8: curArg:= arg9;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   197
        end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   198
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   199
        repeat
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   200
        p:= Pos('%'+IntToStr(i+1), tempstr);
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   201
        if (p <> 0) then
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   202
            begin
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   203
            delete(tempstr, p, 2);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   204
            insert(curArg, tempstr, p);
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   205
            end;
13988
a04c86dc685f Allow duplicate placeholders in engine strings
Wuzzy <Wuzzy2@mail.ru>
parents: 13903
diff changeset
   206
        until (p = 0);
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   207
    end;
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   208
FormatA:= tempstr;
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   209
end;
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   210
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   211
// The following functions are just shortcuts of Format/FormatA, with fewer argument counts
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   212
function Format(fmt: shortstring; arg1: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   213
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   214
    Format:= Format(fmt, arg1, '', '', '', '', '', '', '', '', 1);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   215
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   216
function Format(fmt: shortstring; arg1, arg2: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   217
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   218
    Format:= Format(fmt, arg1, arg2, '', '', '', '', '', '', '', 2);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   219
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   220
function Format(fmt: shortstring; arg1, arg2, arg3: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   221
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   222
    Format:= Format(fmt, arg1, arg2, arg3, '', '', '', '', '', '', 3);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   223
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   224
function Format(fmt: shortstring; arg1, arg2, arg3, arg4: shortstring): shortstring;
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   225
begin
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   226
    Format:= Format(fmt, arg1, arg2, arg3, arg4, '', '', '', '', '', 4);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   227
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   228
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   229
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   230
    Format:= Format(fmt, arg1, arg2, arg3, arg4, arg5, '', '', '', '', 5);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   231
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   232
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   233
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   234
    Format:= Format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, '', '', '', 6);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   235
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   236
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   237
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   238
    Format:= Format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, '', '', 7);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   239
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   240
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   241
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   242
    Format:= Format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, '', 8);
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   243
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   244
function Format(fmt: shortstring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: shortstring): shortstring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   245
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   246
    Format:= Format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, 9);
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   247
end;
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   248
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   249
function FormatA(fmt: ansistring; arg1: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   250
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   251
    FormatA:= FormatA(fmt, arg1, ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), 1);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   252
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   253
function FormatA(fmt: ansistring; arg1, arg2: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   254
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   255
    FormatA:= FormatA(fmt, arg1, arg2, ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), 2);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   256
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   257
function FormatA(fmt: ansistring; arg1, arg2, arg3: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   258
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   259
    FormatA:= FormatA(fmt, arg1, arg2, arg3, ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), 3);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   260
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   261
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   262
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   263
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, ansistring(''), ansistring(''), ansistring(''), ansistring(''), ansistring(''), 4);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   264
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   265
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5: ansistring): ansistring;
13043
9119726e22bc Engine: Allow to use up to 9 placeholders in Format and FormatA
Wuzzy <Wuzzy2@mail.ru>
parents: 12461
diff changeset
   266
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   267
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, arg5, ansistring(''), ansistring(''), ansistring(''), ansistring(''), 5);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   268
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   269
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   270
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   271
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, arg5, arg6, ansistring(''), ansistring(''), ansistring(''), 6);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   272
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   273
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   274
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   275
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ansistring(''), ansistring(''), 7);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   276
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   277
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   278
begin
13898
8c702a4839ec bunch more of those shortstring/ansistrings
nemo
parents: 13857
diff changeset
   279
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ansistring(''), 8);
13857
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   280
end;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   281
function FormatA(fmt: ansistring; arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9: ansistring): ansistring;
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   282
begin
10a3b80130b5 Change syntax for Format/FormatA, remove array in function to be friendlier to Pas2C
Wuzzy <Wuzzy2@mail.ru>
parents: 13463
diff changeset
   283
    FormatA:= FormatA(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, 9);
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
   284
end;
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
   285
7048
0a4c88935902 the ios port runs again, although with a few things to sort out
koda
parents: 6700
diff changeset
   286
{$IFDEF HWLIBRARY}
11790
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
   287
procedure LoadLocaleWrapper(path: pchar; userpath: pchar; filename: pchar); cdecl; export;
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3774
diff changeset
   288
begin
11141
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   289
    PathPrefix := Strpas(path);
11790
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
   290
    UserPathPrefix := Strpas(userpath);
11141
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   291
 
11790
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
   292
    //normally this var set in preInit of engine
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
   293
    allOK := true;
ac93cfc17365 - Pass also userPath to LoadLocaleWrapper
antonc27 <antonc27@mail.ru>
parents: 11684
diff changeset
   294
    
11802
975c130c3901 - Don't forget to init uVaribles inside LoadLocaleWrapper call
antonc27 <antonc27@mail.ru>
parents: 11790
diff changeset
   295
    uVariables.initModule;
975c130c3901 - Don't forget to init uVaribles inside LoadLocaleWrapper call
antonc27 <antonc27@mail.ru>
parents: 11790
diff changeset
   296
 
11684
cfc3971de8ac Correctly call uPhysFSLayer.initModule
frd
parents: 11532
diff changeset
   297
    PathPrefix:= PathPrefix + #0;
cfc3971de8ac Correctly call uPhysFSLayer.initModule
frd
parents: 11532
diff changeset
   298
    UserPathPrefix:= UserPathPrefix + #0;
cfc3971de8ac Correctly call uPhysFSLayer.initModule
frd
parents: 11532
diff changeset
   299
    uPhysFSLayer.initModule(@PathPrefix[1], @UserPathPrefix[1]);
cfc3971de8ac Correctly call uPhysFSLayer.initModule
frd
parents: 11532
diff changeset
   300
    PathPrefix:= copy(PathPrefix, 1, length(PathPrefix) - 1);
cfc3971de8ac Correctly call uPhysFSLayer.initModule
frd
parents: 11532
diff changeset
   301
    UserPathPrefix:= copy(UserPathPrefix, 1, length(UserPathPrefix) - 1);
11141
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   302
 
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   303
    LoadLocale(Strpas(filename));
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   304
 
01e8e5a6a8c1 - Fix for crash on loading SingleWeaponViewController in Settings
antonc27 <antonc27@mail.ru>
parents: 10249
diff changeset
   305
    uPhysFSLayer.freeModule;
11802
975c130c3901 - Don't forget to init uVaribles inside LoadLocaleWrapper call
antonc27 <antonc27@mail.ru>
parents: 11790
diff changeset
   306
    uVariables.freeModule;
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3774
diff changeset
   307
end;
7048
0a4c88935902 the ios port runs again, although with a few things to sort out
koda
parents: 6700
diff changeset
   308
{$ENDIF}
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3774
diff changeset
   309
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   310
end.