hedgewars/uAIActions.pas
author unC0Rr
Fri, 22 Nov 2024 17:29:48 +0100
branchtransitional_engine
changeset 16070 fc5258d7ecb2
parent 16068 a236360669cc
permissions -rw-r--r--
Make AI less annoying
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
71
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 883
diff changeset
     2
 * Hedgewars, a free turn based strategy game
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10108
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
71
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
71
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
    12
 * GNU General Public License for more details.
71
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 165
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: 10017
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
71
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
    17
 *)
5f56c6979496 - Changed falling damage scoring
unc0rr
parents: 70
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2599
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2599
diff changeset
    20
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    21
unit uAIActions;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    22
interface
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 3407
diff changeset
    23
uses uFloat, uTypes;
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2599
diff changeset
    24
3165
3ec07a7d8456 just some very sane stuff for the iphone port (plus some macro on pascal files)
koda
parents: 2630
diff changeset
    25
const MAXACTIONS     = 96;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    26
    aia_none       = 0;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    27
    aia_Left       = 1;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    28
    aia_Right      = 2;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    29
    aia_Timer      = 3;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    30
    aia_attack     = 4;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    31
    aia_Up         = 5;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    32
    aia_Down       = 6;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    33
    aia_Switch     = 7;
15624
30ad3fd974f1 Teach AI to set minimum mine bounce for improved aiming
Wuzzy <Wuzzy2@mail.ru>
parents: 15412
diff changeset
    34
    aia_Precise    = 8;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    35
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    36
    aia_Weapon     = $8000;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    37
    aia_WaitXL     = $8001;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    38
    aia_WaitXR     = $8002;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    39
    aia_LookLeft   = $8003;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    40
    aia_LookRight  = $8004;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    41
    aia_AwareExpl  = $8005;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    42
    aia_HJump      = $8006;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    43
    aia_LJump      = $8007;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    44
    aia_Skip       = $8008;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    45
    aia_Wait       = $8009;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    46
    aia_Put        = $800A;
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
    47
    aia_waitAngle  = $800B;
7416
2f2f78fc65a3 AI uses cake! Known issues: AI could damage itself for no reason, could let cake go looping in a hole with exit closed by AI hog.
unc0rr
parents: 7197
diff changeset
    48
    aia_waitAmmoXY = $800C;
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
    49
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    50
    aim_push       = $8000;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    51
    aim_release    = $8001;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    52
    ai_specmask    = $8000;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    53
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
    54
type TAction = record
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    55
        Action: Longword;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    56
        X, Y, Param: LongInt;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    57
        Time: Longword;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    58
        end;
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
    59
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    60
    TActions = record
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    61
        Count, Pos: Longword;
14528
184df3900ec4 - Bots activate extra time if needed
unc0rr
parents: 11046
diff changeset
    62
        ticks: Longword;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    63
        actions: array[0..Pred(MAXACTIONS)] of TAction;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    64
        Score: LongInt;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    65
        isWalkingToABetterPlace: boolean;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
    66
        end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    67
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 369
diff changeset
    68
procedure AddAction(var Actions: TActions; Action: Longword; Param: LongInt; TimeDelta: Longword; X, Y: LongInt);
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
    69
procedure ProcessAction(var Actions: TActions; Me: PGear);
369
2aed85310727 AI compiles, but doesn't work
unc0rr
parents: 351
diff changeset
    70
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    71
implementation
15412
7a3d70c364fd Fix build
unc0rr
parents: 15411
diff changeset
    72
uses uAIMisc, uAI, uAmmos, uVariables, uCommands, uConsts, uUtils, uIO{$IFDEF TRACEAIACTIONS}, uConsole{$ENDIF};
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    73
7028
0f60591f3a16 old typed const moved to their proper unit
koda
parents: 6982
diff changeset
    74
var PrevX: LongInt = 0;
0f60591f3a16 old typed const moved to their proper unit
koda
parents: 6982
diff changeset
    75
    timedelta: Longword = 0;
0f60591f3a16 old typed const moved to their proper unit
koda
parents: 6982
diff changeset
    76
15624
30ad3fd974f1 Teach AI to set minimum mine bounce for improved aiming
Wuzzy <Wuzzy2@mail.ru>
parents: 15412
diff changeset
    77
const ActionIdToStr: array[0..8] of string[16] = (
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    78
{aia_none}           '',
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    79
{aia_Left}           'left',
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    80
{aia_Right}          'right',
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    81
{aia_Timer}          'timer',
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    82
{aia_attack}         'attack',
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    83
{aia_Up}             'up',
6393
701eb3f3556a Make AI use switcher when:
unc0rr
parents: 5419
diff changeset
    84
{aia_Down}           'down',
15624
30ad3fd974f1 Teach AI to set minimum mine bounce for improved aiming
Wuzzy <Wuzzy2@mail.ru>
parents: 15412
diff changeset
    85
{aia_Switch}         'switch',
30ad3fd974f1 Teach AI to set minimum mine bounce for improved aiming
Wuzzy <Wuzzy2@mail.ru>
parents: 15412
diff changeset
    86
{aia_Precise}        'precise'
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
    87
                     );
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    88
80
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    89
{$IFDEF TRACEAIACTIONS}
7901
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
    90
const SpecActionIdToStr: array[$8000..$800C] of string[16] = (
80
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    91
{aia_Weapon}             'aia_Weapon',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    92
{aia_WaitX}              'aia_WaitX',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    93
{aia_WaitY}              'aia_WaitY',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    94
{aia_LookLeft}           'aia_LookLeft',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    95
{aia_LookRight}          'aia_LookRight',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    96
{aia_AwareExpl}          'aia_AwareExpl',
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
    97
{aia_HJump}              'aia_HJump',
144
e6084b0c9316 - Fix 'new team' regression
unc0rr
parents: 143
diff changeset
    98
{aia_LJump}              'aia_LJump',
193
56885ea29202 Fix bots regressions
unc0rr
parents: 183
diff changeset
    99
{aia_Skip}               'aia_Skip',
7901
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
   100
{aia_Wait}               'aia_Wait',
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
   101
{aia_Put}                'aia_Put',
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
   102
{aia_waitAngle}          'aia_waitAngle',
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
   103
{aia_waitAmmoXY}         'aia_waitAmmoXY'
80
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   104
);
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   105
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   106
procedure DumpAction(Action: TAction; Me: PGear);
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   107
begin
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   108
if (Action.Action and ai_specmask) = 0 then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   109
    WriteLnToConsole('AI action: '+ActionIdToStr[Action.Action])
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   110
else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   111
    begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   112
    WriteLnToConsole('AI action: '+SpecActionIdToStr[Action.Action]);
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   113
    if (Action.Action = aia_WaitXL) or (Action.Action = aia_WaitXR) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   114
        WriteLnToConsole('AI action Wait X = '+IntToStr(Action.Param)+', current X = '+IntToStr(hwRound(Me^.X)))
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   115
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   116
    else if (Action.Action = aia_AwareExpl) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   117
        WriteLnToConsole('Aware X = ' + IntToStr(Action.X) + ', Y = ' + IntToStr(Action.Y));
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   118
    end
80
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   119
end;
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   120
{$ENDIF}
3c3dc6a148ca - Fixed bug with hedgehog under water using rope
unc0rr
parents: 75
diff changeset
   121
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 369
diff changeset
   122
procedure AddAction(var Actions: TActions; Action: Longword; Param: LongInt; TimeDelta: Longword; X, Y: LongInt);
16068
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   123
var t: Longword;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   124
begin
16068
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   125
if ((Action = aia_LookLeft) or (Action = aia_LookRight)) and (Actions.Count > 0) then
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   126
    begin
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   127
    t:= Actions.actions[Actions.Count - 1].Action;
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   128
    if ((t = aia_LookLeft) or (t = aia_LookRight)) then
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   129
        begin
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   130
        dec(Actions.Count)
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   131
        end;
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   132
    end;
a236360669cc Start on AI implementation in rust
unC0Rr
parents: 15624
diff changeset
   133
7433
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   134
if Actions.Count < MAXACTIONS then
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   135
    with Actions do
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   136
        begin
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   137
        actions[Count].Action:= Action;
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   138
        actions[Count].Param:= Param;
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   139
        actions[Count].X:= X;
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   140
        actions[Count].Y:= Y;
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   141
        if Count > 0 then
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   142
            actions[Count].Time:= TimeDelta
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   143
        else
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   144
            actions[Count].Time:= GameTicks + TimeDelta;
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   145
        inc(Count);
c7fff3e61d49 - Implement AI land marks which only used to tracks visited areas on the map for now. Significantly reduces wasting of cpu time by AI checking same place several times (10x or even more in rare cases)
unc0rr
parents: 7416
diff changeset
   146
        end
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   147
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   148
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   149
procedure CheckHang(Me: PGear; fromLeft: boolean);
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   150
var newX: LongInt;
6474
42e9773eedfd - Improve renderer a bit, disallow nested functions
unc0rr
parents: 6395
diff changeset
   151
begin
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   152
newX:= hwRound(Me^.X);
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   153
if newX <> PrevX then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   154
    begin
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   155
    if (newX < PrevX) = fromLeft then
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   156
        begin
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   157
        FreeActionsList
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   158
        end;
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   159
    
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   160
    PrevX:= newX;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   161
    timedelta:= 0
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   162
    end else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   163
        begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   164
        inc(timedelta);
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   165
        if timedelta > 900 then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   166
            begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   167
            timedelta:= 0;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   168
            FreeActionsList
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   169
            end
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   170
        end
6474
42e9773eedfd - Improve renderer a bit, disallow nested functions
unc0rr
parents: 6395
diff changeset
   171
end;
42e9773eedfd - Improve renderer a bit, disallow nested functions
unc0rr
parents: 6395
diff changeset
   172
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
   173
procedure ProcessAction(var Actions: TActions; Me: PGear);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   174
var s: shortstring;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   175
begin
194
88652abdce9a Fixed weird bots behavior
unc0rr
parents: 193
diff changeset
   176
repeat
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
   177
if Actions.Pos >= Actions.Count then exit;
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   178
64
9df467527ae5 - Start AI rewrite
unc0rr
parents: 17
diff changeset
   179
with Actions.actions[Actions.Pos] do
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   180
    begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   181
    if Time > GameTicks then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   182
        exit;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   183
    {$IFDEF TRACEAIACTIONS}
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   184
    DumpAction(Actions.actions[Actions.Pos], Me);
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   185
    {$ENDIF}
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   186
    if (Action and ai_specmask) <> 0 then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   187
        case Action of
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   188
            aia_Weapon:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   189
                SetWeapon(TAmmoType(Param));
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   190
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   191
            aia_WaitXL:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   192
                if hwRound(Me^.X) = Param then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   193
                    begin
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   194
                    Action:= aia_LookLeft;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   195
                    Time:= GameTicks;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   196
                    exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   197
                    end
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   198
                    else if hwRound(Me^.X) < Param then
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   199
                        begin
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   200
                        //OutError('AI: WaitXL assert (' + IntToStr(hwRound(Me^.X)) + ' < ' + IntToStr(Param) + ')', false);
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   201
                        FreeActionsList;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   202
                        exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   203
                        end
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   204
                    else
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   205
                        begin
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   206
                        CheckHang(Me, false);
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   207
                        exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   208
                        end;
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   209
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   210
            aia_WaitXR:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   211
                if hwRound(Me^.X) = Param then
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   212
                    begin
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   213
                    Action:= aia_LookRight;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   214
                    Time:= GameTicks;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   215
                    exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   216
                    end
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   217
                    else if hwRound(Me^.X) > Param then
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   218
                        begin
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   219
                        //OutError('AI: WaitXR assert (' + IntToStr(hwRound(Me^.X)) + ' > ' + IntToStr(Param) + ')', false);
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   220
                        FreeActionsList;
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   221
                        exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   222
                        end
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   223
                    else
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   224
                        begin
16070
fc5258d7ecb2 Make AI less annoying
unC0Rr
parents: 16068
diff changeset
   225
                        CheckHang(Me, true);
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   226
                        exit
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   227
                        end;
15411
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   228
            aia_LookLeft: begin
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   229
                if (Me^.State and gstMoving) <> 0 then
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   230
                    exit;
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   231
            
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   232
                if not Me^.dX.isNegative then
15411
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   233
                begin
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   234
                    if (Me^.Message and gmLeft) = 0 then
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   235
                        ParseCommand('+left', true);
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   236
                    exit
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   237
                    end
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   238
                else
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   239
                    ParseCommand('-left', true);
15411
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   240
            end;
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   241
            aia_LookRight: begin
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   242
                if (Me^.State and gstMoving) <> 0 then
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   243
                    exit;
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   244
            
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   245
                if Me^.dX.isNegative then
15411
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   246
                begin
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   247
                    if (Me^.Message and gmRight) = 0 then
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   248
                        ParseCommand('+right', true);
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   249
                    exit
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   250
                    end
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   251
                else ParseCommand('-right', true);
15411
56f2c70723c8 Prevent AI from flooding +L/+R messages
unc0rr
parents: 14528
diff changeset
   252
            end;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   253
            aia_AwareExpl:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   254
                AwareOfExplosion(X, Y, Param);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   255
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   256
            aia_HJump:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   257
                ParseCommand('hjump', true);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   258
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   259
            aia_LJump:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   260
                ParseCommand('ljump', true);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   261
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   262
            aia_Skip:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   263
                ParseCommand('skip', true);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   264
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   265
            aia_Put:
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   266
                doPut(X, Y, true);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   267
7197
5a9775b97c7e - TestSniperRifle ftw (still needs some consts adjustments, because AI seems to love sniper rifle too much)
unc0rr
parents: 7132
diff changeset
   268
            aia_waitAngle:
7721
2b1ad418ba39 - Fix warnings and hints
unc0rr
parents: 7671
diff changeset
   269
                if LongInt(Me^.Angle) <> Abs(Param) then exit;
7416
2f2f78fc65a3 AI uses cake! Known issues: AI could damage itself for no reason, could let cake go looping in a hole with exit closed by AI hog.
unc0rr
parents: 7197
diff changeset
   270
2f2f78fc65a3 AI uses cake! Known issues: AI could damage itself for no reason, could let cake go looping in a hole with exit closed by AI hog.
unc0rr
parents: 7197
diff changeset
   271
            aia_waitAmmoXY:
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   272
                if (CurAmmoGear <> nil) and ((hwRound(CurAmmoGear^.X) <> X) or (hwRound(CurAmmoGear^.Y) <> Y)) then
7901
a86ccf3da9ca Update ai actions tracing subsystem
unc0rr
parents: 7721
diff changeset
   273
                    exit;
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   274
            end
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   275
        else
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   276
            begin
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   277
            s:= ActionIdToStr[Action];
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   278
            if (Param and ai_specmask) <> 0 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   279
                case Param of
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   280
                aim_push:
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   281
                s:= '+' + s;
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   282
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   283
                aim_release:
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   284
                s:= '-' + s;
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   285
            end
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   286
        else if Param <> 0 then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   287
            s:= s + ' ' + IntToStr(Param);
369
2aed85310727 AI compiles, but doesn't work
unc0rr
parents: 351
diff changeset
   288
        ParseCommand(s, true)
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   289
        end
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   290
    end;
66
9643d75baf1e Many AI improvements, bots do think in separate thread
unc0rr
parents: 64
diff changeset
   291
inc(Actions.Pos);
9643d75baf1e Many AI improvements, bots do think in separate thread
unc0rr
parents: 64
diff changeset
   292
if Actions.Pos <= Actions.Count then
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6535
diff changeset
   293
    inc(Actions.actions[Actions.Pos].Time, GameTicks);
194
88652abdce9a Fixed weird bots behavior
unc0rr
parents: 193
diff changeset
   294
until false
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   295
end;
369
2aed85310727 AI compiles, but doesn't work
unc0rr
parents: 351
diff changeset
   296
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   297
end.