hedgewars/VGSHandlers.inc
author nemo
Sun, 20 Jun 2010 22:35:10 -0400
changeset 3526 a1d2180fef42
parent 3466 78d9fa9a700e
child 3587 eca835df4106
permissions -rw-r--r--
Replace SHA1 with adler32. For simple purposes of checking to see if players are playing the same map, this should be quite adequate and runs 15 times faster.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3441
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     1
(*
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     3
 * Copyright (c) 2004-2010 Andrey Korotaev <unC0Rr@gmail.com>
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     4
 *
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     8
 *
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    12
 * GNU General Public License for more details.
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    13
 *
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    17
 *)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    18
procedure doStepFlake(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    19
var sign: hwFloat;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    20
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    21
sign:= _1;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    22
with Gear^ do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    23
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    24
    inc(FrameTicks, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    25
    if FrameTicks > vobFrameTicks then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    26
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    27
        dec(FrameTicks, vobFrameTicks);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    28
        inc(Frame);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    29
        if Frame = vobFramesCount then Frame:= 0
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    30
        end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    31
    X:= X + (cWindSpeed * 200 + dX + tdX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    32
    Y:= Y + (dY + tdY + cGravity * vobFallSpeed) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    33
    Angle:= Angle + dAngle * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    34
  
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    35
    if (hwRound(X) >= -cScreenWidth - 64) and
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    36
       (hwRound(X) <= cScreenWidth + LAND_WIDTH) and
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    37
       (hwRound(Y) <= (LAND_HEIGHT + 75)) and 
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    38
       (Timer > 0) and (Timer-Steps > 0) then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    39
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    40
        sign.isNegative:=tdX.isNegative;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    41
        tdX:= tdX - _0_005*Steps*sign;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    42
        if (sign.isNegative and (tdX > _0)) or (not sign.isNegative and (tdX < _0)) then tdX:= _0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    43
        sign.isNegative:=tdY.isNegative;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    44
        tdY:= tdY - _0_005*Steps*sign;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    45
        if (sign.isNegative and (tdY > _0)) or (not sign.isNegative and (tdY < _0)) then tdY:= _0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    46
        dec(Timer, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    47
        end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    48
    else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    49
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    50
        if hwRound(X) < -cScreenWidth - 64 then X:= int2hwFloat(cScreenWidth + LAND_WIDTH) else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    51
        if hwRound(X) > cScreenWidth + LAND_WIDTH then X:= int2hwFloat(-cScreenWidth - 64);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    52
        // if hwRound(Y) < (LAND_HEIGHT - 1024 - 75) then Y:= Y + int2hwFloat(25); // For if flag is set for flakes rising upwards?
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    53
        if hwRound(Y) > (LAND_HEIGHT + 75) then Y:= Y - int2hwFloat(1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    54
        Timer:= 0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    55
        tdX:= _0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    56
        tdY:= _0
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    57
        end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    58
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    59
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    60
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    61
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    62
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    63
procedure doStepBeeTrace(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    64
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    65
if Gear^.FrameTicks > Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    66
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    67
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    68
    DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    69
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    70
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    71
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    72
procedure doStepCloud(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    73
var i: Longword;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    74
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    75
Gear^.X:= Gear^.X + (cWindSpeed * 200 + Gear^.dX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    76
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    77
for i:= 0 to Steps - 1 do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    78
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    79
    if hwRound(Gear^.Y) > LAND_HEIGHT-1184 then // TODO - configure in theme
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    80
        Gear^.dY:= Gear^.dY - _1div50000
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    81
    else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    82
        Gear^.dY:= Gear^.dY + _1div50000;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    83
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    84
    Gear^.Y:= Gear^.Y + Gear^.dY
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    85
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    86
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    87
if hwRound(Gear^.X) < -cScreenWidth - 256 then Gear^.X:= int2hwFloat(cScreenWidth + LAND_WIDTH) else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    88
if hwRound(Gear^.X) > cScreenWidth + LAND_WIDTH then Gear^.X:= int2hwFloat(-cScreenWidth - 256)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    89
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    90
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    91
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    92
procedure doStepExpl(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    93
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    94
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    95
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    96
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    97
//Gear^.dY:= Gear^.dY + cGravity;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    98
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
    99
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   100
    if Gear^.Frame = 0 then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   101
    else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   102
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   103
        dec(Gear^.Frame);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   104
        Gear^.FrameTicks:= cExplFrameTicks
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   105
        end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   106
    else dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   107
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   108
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   109
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   110
procedure doStepEgg(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   111
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   112
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   113
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   114
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   115
Gear^.dY:= Gear^.dY + cGravity * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   116
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   117
Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   118
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   119
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   120
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   121
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   122
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   123
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   124
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   125
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   126
procedure doStepFire(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   127
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   128
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   129
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   130
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;// + cGravity * (Steps * Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   131
Gear^.dY:= Gear^.dY + cGravity * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   132
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   133
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   134
       DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   135
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   136
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   137
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   138
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   139
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   140
procedure doStepShell(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   141
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   142
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   143
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   144
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   145
Gear^.dY:= Gear^.dY + cGravity * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   146
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   147
Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   148
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   149
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   150
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   151
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   152
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   153
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   154
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   155
procedure doStepSmallDamage(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   156
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   157
Gear^.Y:= Gear^.Y - _0_02 * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   158
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   159
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   160
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   161
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   162
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   163
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   164
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   165
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   166
procedure doStepBubble(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   167
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   168
    Gear^.X:= Gear^.X + (cWindSpeed * 100 + Gear^.dX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   169
    Gear^.Y:= Gear^.Y - cDrownSpeed * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   170
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   171
    if (Gear^.FrameTicks <= Steps) or (hwRound(Gear^.Y) < cWaterLine) then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   172
        DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   173
    else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   174
        dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   175
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   176
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   177
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   178
procedure doStepHealth(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   179
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   180
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   181
Gear^.Y:= Gear^.Y - Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   182
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   183
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   184
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   185
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   186
    dec(Gear^.FrameTicks, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   187
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   188
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   189
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   190
procedure doStepSteam(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   191
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   192
    Gear^.X:= Gear^.X + (cWindSpeed * 100 + Gear^.dX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   193
    Gear^.Y:= Gear^.Y - cDrownSpeed * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   194
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   195
    if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   196
        if Gear^.Frame = 0 then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   197
        else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   198
            begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   199
            if Random(2) = 0 then dec(Gear^.Frame);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   200
            Gear^.FrameTicks:= cExplFrameTicks
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   201
            end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   202
        else dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   203
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   204
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   205
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   206
procedure doStepAmmo(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   207
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   208
    Gear^.Y:= Gear^.Y - cDrownSpeed * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   209
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   210
    Gear^.scale:= Gear^.scale + 0.0025 * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   211
    Gear^.alpha:= Gear^.alpha - 0.0015 * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   212
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   213
    if Gear^.alpha < 0 then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   214
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   215
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   216
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   217
procedure doStepSmoke(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   218
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   219
    Gear^.X:= Gear^.X + (cWindSpeed + Gear^.dX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   220
    Gear^.Y:= Gear^.Y - (cDrownSpeed + Gear^.dY) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   221
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   222
    Gear^.dX := Gear^.dX + (cWindSpeed * _0_3 * Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   223
    //Gear^.dY := Gear^.dY - (cDrownSpeed * _0_995);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   224
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   225
    if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   226
        if Gear^.Frame = 0 then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   227
        else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   228
            begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   229
            if Random(2) = 0 then dec(Gear^.Frame);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   230
            Gear^.FrameTicks:= cExplFrameTicks
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   231
            end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   232
        else dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   233
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   234
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   235
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   236
procedure doStepDust(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   237
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   238
    Gear^.X:= Gear^.X + (cWindSpeed + (cWindSpeed * _0_03 * Steps) + Gear^.dX) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   239
    Gear^.Y:= Gear^.Y - (Gear^.dY) * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   240
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   241
    Gear^.dX := Gear^.dX - (Gear^.dX * _0_005 * Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   242
    Gear^.dY := Gear^.dY - (cDrownSpeed * _0_001 * Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   243
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   244
    if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   245
        if Gear^.Frame = 0 then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   246
        else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   247
            begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   248
            dec(Gear^.Frame);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   249
            Gear^.FrameTicks:= cExplFrameTicks
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   250
            end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   251
        else dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   252
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   253
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   254
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   255
procedure doStepSplash(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   256
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   257
  if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   258
      DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   259
  else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   260
      dec(Gear^.FrameTicks, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   261
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   262
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   263
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   264
procedure doStepDroplet(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   265
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   266
  Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   267
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   268
  Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   269
  Gear^.dY:= Gear^.dY + cGravity * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   270
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   271
  if hwRound(Gear^.Y) > cWaterLine then begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   272
    DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   273
    PlaySound(TSound(ord(sndDroplet1) + Random(3)));
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   274
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   275
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   276
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   277
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   278
procedure doStepSmokeRing(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   279
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   280
inc(Gear^.Timer, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   281
if Gear^.Timer >= Gear^.FrameTicks then DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   282
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   283
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   284
    Gear^.scale := 1.25 * (-power(2, -10 * Int(Gear^.Timer)/Gear^.FrameTicks) + 1) + 0.4;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   285
    Gear^.alpha := 1 - power(Gear^.Timer / 350, 4);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   286
    if Gear^.alpha < 0 then Gear^.alpha:= 0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   287
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   288
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   289
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   290
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   291
procedure doStepFeather(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   292
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   293
Gear^.X:= Gear^.X + Gear^.dX * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   294
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   295
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   296
Gear^.dY:= Gear^.dY + cGravity * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   297
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   298
Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   299
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   300
if Gear^.FrameTicks <= Steps then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   301
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   302
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   303
    dec(Gear^.FrameTicks, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   304
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   305
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   306
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   307
const cSorterWorkTime = 640;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   308
var thexchar: array[0..cMaxTeams] of
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   309
            record
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   310
            dy, ny, dw: LongInt;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   311
            team: PTeam;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   312
            SortFactor: QWord;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   313
            end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   314
    currsorter: PVisualGear = nil;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   315
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   316
procedure doStepTeamHealthSorterWork(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   317
var i, t: LongInt;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   318
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   319
for t:= 1 to Steps do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   320
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   321
    dec(Gear^.Timer);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   322
    if (Gear^.Timer and 15) = 0 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   323
        for i:= 0 to Pred(TeamsCount) do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   324
            with thexchar[i] do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   325
                begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   326
                {$WARNINGS OFF}
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   327
                team^.DrawHealthY:= ny + dy * LongInt(Gear^.Timer) div 640;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   328
                team^.TeamHealthBarWidth:= team^.NewTeamHealthBarWidth + dw * LongInt(Gear^.Timer) div cSorterWorkTime;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   329
                {$WARNINGS ON}
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   330
                end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   331
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   332
    if (Gear^.Timer = 0) or (currsorter <> Gear) then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   333
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   334
        if currsorter = Gear then currsorter:= nil;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   335
        DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   336
        exit
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   337
        end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   338
    end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   339
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   340
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   341
procedure doStepTeamHealthSorter(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   342
var i: Longword;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   343
    b: boolean;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   344
    t: LongInt;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   345
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   346
Steps:= Steps; // avoid compiler hint
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   347
for t:= 0 to Pred(TeamsCount) do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   348
    with thexchar[t] do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   349
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   350
        dy:= TeamsArray[t]^.DrawHealthY;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   351
        dw:= TeamsArray[t]^.TeamHealthBarWidth - TeamsArray[t]^.NewTeamHealthBarWidth;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   352
        team:= TeamsArray[t];
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   353
        SortFactor:= TeamsArray[t]^.Clan^.ClanHealth;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   354
        SortFactor:= (SortFactor shl  3) + TeamsArray[t]^.Clan^.ClanIndex;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   355
        SortFactor:= (SortFactor shl 30) + TeamsArray[t]^.TeamHealth;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   356
        end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   357
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   358
if TeamsCount > 1 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   359
    repeat
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   360
    b:= true;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   361
    for t:= 0 to TeamsCount - 2 do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   362
        if (thexchar[t].SortFactor > thexchar[Succ(t)].SortFactor) then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   363
            begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   364
            thexchar[cMaxTeams]:= thexchar[t];
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   365
            thexchar[t]:= thexchar[Succ(t)];
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   366
            thexchar[Succ(t)]:= thexchar[cMaxTeams];
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   367
            b:= false
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   368
            end
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   369
    until b;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   370
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   371
t:= - 4;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   372
for i:= 0 to Pred(TeamsCount) do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   373
    with thexchar[i] do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   374
        begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   375
        dec(t, team^.HealthTex^.h + 2);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   376
        ny:= t;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   377
        dy:= dy - ny
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   378
        end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   379
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   380
Gear^.Timer:= cSorterWorkTime;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   381
Gear^.doStep:= @doStepTeamHealthSorterWork;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   382
currsorter:= Gear;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   383
//doStepTeamHealthSorterWork(Gear, Steps)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   384
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   385
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   386
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   387
procedure doStepSpeechBubbleWork(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   388
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   389
if Gear^.Timer > Steps then dec(Gear^.Timer, Steps) else Gear^.Timer:= 0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   390
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   391
if (PHedgehog(Gear^.Hedgehog)^.Gear <> nil) then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   392
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   393
    Gear^.X:= PHedgehog(Gear^.Hedgehog)^.Gear^.X + int2hwFloat(Gear^.Tex^.w div 2  - Gear^.FrameTicks);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   394
    Gear^.Y:= PHedgehog(Gear^.Hedgehog)^.Gear^.Y - int2hwFloat(16 + Gear^.Tex^.h);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   395
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   396
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   397
if Gear^.Timer = 0 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   398
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   399
    if PHedgehog(Gear^.Hedgehog)^.SpeechGear = Gear then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   400
        PHedgehog(Gear^.Hedgehog)^.SpeechGear:= nil;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   401
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   402
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   403
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   404
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   405
procedure doStepSpeechBubble(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   406
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   407
Steps:= Steps; // avoid compiler hint
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   408
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   409
with PHedgehog(Gear^.Hedgehog)^ do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   410
    if SpeechGear <> nil then SpeechGear^.Timer:= 0;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   411
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   412
PHedgehog(Gear^.Hedgehog)^.SpeechGear:= Gear;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   413
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   414
Gear^.Timer:= max(Length(Gear^.Text) * 150, 3000);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   415
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   416
Gear^.Tex:= RenderSpeechBubbleTex(Gear^.Text, Gear^.FrameTicks, fnt16);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   417
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   418
case Gear^.FrameTicks of
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   419
    1: Gear^.FrameTicks:= SpritesData[sprSpeechTail].Width-28;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   420
    2: Gear^.FrameTicks:= SpritesData[sprThoughtTail].Width-20;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   421
    3: Gear^.FrameTicks:= SpritesData[sprShoutTail].Width-10;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   422
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   423
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   424
Gear^.doStep:= @doStepSpeechBubbleWork;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   425
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   426
Gear^.Y:= Gear^.Y - int2hwFloat(Gear^.Tex^.h)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   427
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   428
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   429
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   430
procedure doStepHealthTagWork(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   431
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   432
if Steps > Gear^.Timer then
3459
c552aa44108d hey sheepluva, how about just this? lets you have an anonymous one too.
nemo
parents: 3443
diff changeset
   433
    DeleteVisualGear(Gear)
3441
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   434
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   435
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   436
    dec(Gear^.Timer, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   437
    Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   438
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   439
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   440
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   441
procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   442
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   443
if hwRound(Gear^.Y) < cWaterLine + 10 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   444
    DeleteVisualGear(Gear)
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   445
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   446
    Gear^.Y:= Gear^.Y - _0_08 * Steps;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   447
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   448
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   449
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   450
procedure doStepHealthTag(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   451
var s: shortstring;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   452
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   453
s:= '';
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   454
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   455
Gear^.dY:= -_0_08;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   456
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   457
str(Gear^.State, s);
3459
c552aa44108d hey sheepluva, how about just this? lets you have an anonymous one too.
nemo
parents: 3443
diff changeset
   458
if Gear^.Hedgehog <> nil then
c552aa44108d hey sheepluva, how about just this? lets you have an anonymous one too.
nemo
parents: 3443
diff changeset
   459
    Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16)
c552aa44108d hey sheepluva, how about just this? lets you have an anonymous one too.
nemo
parents: 3443
diff changeset
   460
else
c552aa44108d hey sheepluva, how about just this? lets you have an anonymous one too.
nemo
parents: 3443
diff changeset
   461
    Gear^.Tex:= RenderStringTex(s, cWhiteColor, fnt16);
3441
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   462
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   463
if hwRound(Gear^.Y) < cWaterLine then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   464
    Gear^.doStep:= @doStepHealthTagWork
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   465
else
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   466
    Gear^.doStep:= @doStepHealthTagWorkUnderWater;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   467
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   468
Gear^.Y:= Gear^.Y - int2hwFloat(Gear^.Tex^.h);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   469
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   470
if Steps > 1 then Gear^.doStep(Gear, Steps-1);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   471
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   472
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   473
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   474
procedure doStepSmokeTrace(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   475
var i: Longword;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   476
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   477
inc(Gear^.Timer, Steps );
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   478
if Gear^.Timer > 64 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   479
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   480
    dec(Gear^.State, Gear^.Timer div 65);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   481
    Gear^.Timer:= Gear^.Timer mod 65;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   482
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   483
for i:= 1 to Steps do
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   484
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   485
    Gear^.dX:= Gear^.dX + cWindSpeed;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   486
    Gear^.X:= Gear^.X + Gear^.dX;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   487
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   488
if Gear^.State = 0 then DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   489
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   490
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   491
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   492
procedure doStepExplosionWork(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   493
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   494
inc(Gear^.Timer, Steps);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   495
if Gear^.Timer > 75 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   496
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   497
    inc(Gear^.State, Gear^.Timer div 76);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   498
    Gear^.Timer:= Gear^.Timer mod 76;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   499
    if Gear^.State > 5 then DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   500
    end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   501
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   502
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   503
procedure doStepExplosion(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   504
var i: LongWord;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   505
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   506
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   507
for i:= 0 to 31 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFire);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   508
for i:= 0 to 8 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   509
for i:= 0 to 8 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart2);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   510
Gear^.doStep:= @doStepExplosionWork;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   511
if Steps > 1 then Gear^.doStep(Gear, Steps-1);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   512
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   513
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   514
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   515
////////////////////////////////////////////////////////////////////////////////
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   516
procedure doStepBigExplosionWork(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   517
var maxMovement: LongInt;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   518
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   519
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   520
inc(Gear^.Timer, Steps);
3466
78d9fa9a700e Comment out the desyncing block, with a suggestion for possible fix
nemo
parents: 3459
diff changeset
   521
(*
78d9fa9a700e Comment out the desyncing block, with a suggestion for possible fix
nemo
parents: 3459
diff changeset
   522
FIXME - This block desyncs due to the way WorldDx is important for various things network related.
78d9fa9a700e Comment out the desyncing block, with a suggestion for possible fix
nemo
parents: 3459
diff changeset
   523
One possible solution is, instead of using WorldDx, to use straight gl/SDL calls to jitter the screen a bit.
3441
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   524
if (Gear^.Timer and 5) = 0 then
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   525
    begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   526
    maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250));
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   527
    ShakeCamera(maxMovement);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   528
    end;
3466
78d9fa9a700e Comment out the desyncing block, with a suggestion for possible fix
nemo
parents: 3459
diff changeset
   529
*)
3441
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   530
if Gear^.Timer > 250 then DeleteVisualGear(Gear);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   531
end;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   532
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   533
procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   534
var i: LongWord;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   535
gX,gY: LongInt;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   536
begin
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   537
gX:= hwRound(Gear^.X);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   538
gY:= hwRound(Gear^.Y);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   539
AddVisualGear(gX, gY, vgtSmokeRing);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   540
for i:= 0 to 46 do AddVisualGear(gX, gY, vgtFire);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   541
for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   542
for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart2);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   543
Gear^.doStep:= @doStepBigExplosionWork;
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   544
if Steps > 1 then Gear^.doStep(Gear, Steps-1);
f31225f99a06 some file that tried to escape...
sheepluva
parents:
diff changeset
   545
end;