hedgewars/GearDrawing.inc
author nemo
Sun, 10 Oct 2010 20:16:17 -0400
changeset 3951 c9a63db3e603
parent 3909 4ba25a3d15af
child 3963 6090d2a2472e
permissions -rw-r--r--
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     1
procedure DrawHH(Gear: PGear);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     2
var i, t: LongInt;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     3
    amt: TAmmoType;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     4
    hx, hy, cx, cy, tx, ty, sx, sy, m: LongInt;  // hedgehog, crosshair, temp, sprite, direction
3483
54ff8cbabaa6 Engine:
smxx
parents: 3482
diff changeset
     5
    dx, dy, ax, ay, aAngle, dAngle, hAngle, lx, ly: real;  // laser, change
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     6
    defaultPos, HatVisible: boolean;
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
     7
    VertexBuffer: array [0..1] of TVertex2f;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
     8
    HH: PHedgehog;
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
     9
    CurWeapon: PAmmo;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    10
begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    11
HH:= PHedgehog(Gear^.Hedgehog);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    12
if HH^.Unplaced then exit;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    13
m:= 1;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    14
if ((Gear^.State and gstHHHJump) <> 0) and not cArtillery then m:= -1;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    15
if (Gear^.State and gstHHDeath) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    16
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    17
    DrawSprite(sprHHDeath, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 26 + WorldDy, Gear^.Pos);
3863
95040bd7ace4 Engine:
smaxx
parents: 3854
diff changeset
    18
    Tint(HH^.Team^.Clan^.Color);
95040bd7ace4 Engine:
smaxx
parents: 3854
diff changeset
    19
    DrawSprite(sprHHDeath, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 26 + WorldDy, Gear^.Pos + 8);
95040bd7ace4 Engine:
smaxx
parents: 3854
diff changeset
    20
    Tint($FF, $FF, $FF, $FF);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    21
    exit
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    22
    end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    23
else if (Gear^.State and gstHHGone) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    24
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    25
    DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    26
    exit
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    27
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    28
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    29
defaultPos:= true;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    30
HatVisible:= false;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    31
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    32
sx:= hwRound(Gear^.X) + 1 + WorldDx;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    33
sy:= hwRound(Gear^.Y) - 3 + WorldDy;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    34
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    35
if HH^.Effects[hePoisoned] then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    36
    begin
3392
9d5d01b52ae8 Engine:
smxx
parents: 3390
diff changeset
    37
    Tint($00, $FF, $40, $40);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    38
    DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 2, 0, 0, sx, sy, 0, 1, 22, 22, (RealTicks shr 36) mod 360);
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
    39
    Tint($FF, $FF, $FF, $FF)
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    40
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    41
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    42
if ((Gear^.State and gstWinner) <> 0) and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    43
   ((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    44
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    45
    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    46
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    47
            2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    48
            0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    49
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    50
    defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    51
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    52
if (Gear^.State and gstDrowning) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    53
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    54
    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    55
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    56
            1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    57
            7,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    58
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    59
    defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    60
    end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    61
if (Gear^.State and gstLoser) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    62
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    63
    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    64
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    65
            2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    66
            3,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    67
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    68
    defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    69
    end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    70
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    71
if (Gear^.State and gstHHDriven) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    72
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    73
    if ((Gear^.State and gstHHThinking) = 0) and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    74
       (ShowCrosshair  or ((CurAmmoGear <> nil) and (CurAmmoGear^.Kind = gtRope))) and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    75
       ((Gear^.State and (gstAttacked or gstAnimation)) = 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    76
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    77
(* These calculations are a little complex for a few reasons:
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    78
   1: I need to draw the laser from weapon origin to nearest land
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    79
   2: I need to start the beam outside the hedgie for attractiveness.
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    80
   3: I need to extend the beam beyond land.
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    81
   This routine perhaps should be pushed into uStore or somesuch instead of continuuing the increase in size of this function.
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    82
*)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    83
        dx:= hwSign(Gear^.dX) * m * Sin(Gear^.Angle * pi / cMaxAngle);
3483
54ff8cbabaa6 Engine:
smxx
parents: 3482
diff changeset
    84
        dy:= -Cos(Gear^.Angle * pi / cMaxAngle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    85
        if cLaserSighting then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    86
            begin
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
    87
            lx:= GetLaunchX(HH^.CurAmmoType, hwSign(Gear^.dX) * m, Gear^.Angle);
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
    88
            ly:= GetLaunchY(HH^.CurAmmoType, Gear^.Angle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
    89
3496
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    90
            // ensure we start outside the hedgehog (he's solid after all)
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    91
            while abs(lx * lx + ly * ly) < (Gear^.radius * Gear^.radius) do
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    92
                begin
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    93
                lx:= lx + dx;
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    94
                ly:= ly + dy
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    95
                end;
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    96
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    97
            // add hog's position
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    98
            lx:= lx + hwRound(Gear^.X);
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
    99
            ly:= ly + hwRound(Gear^.Y);
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
   100
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
   101
            // decrease number of iterations required
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   102
            ax:= dx * 4;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   103
            ay:= dy * 4;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   104
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   105
            tx:= round(lx);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   106
            ty:= round(ly);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   107
            hx:= tx;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   108
            hy:= ty;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   109
            while ((ty and LAND_HEIGHT_MASK) = 0) and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   110
                ((tx and LAND_WIDTH_MASK) = 0) and
3496
8fb007d36c09 Engine:
smxx
parents: 3485
diff changeset
   111
                (Land[ty, tx] = 0) do // TODO: check for constant variable instead
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   112
                begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   113
                lx:= lx + ax;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   114
                ly:= ly + ay;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   115
                tx:= round(lx);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   116
                ty:= round(ly)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   117
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   118
            // reached edge of land. assume infinite beam. Extend it way out past camera
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   119
            if ((ty and LAND_HEIGHT_MASK) <> 0) or ((tx and LAND_WIDTH_MASK) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   120
                begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   121
                tx:= round(lx + ax * (LAND_WIDTH div 4));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   122
                ty:= round(ly + ay * (LAND_WIDTH div 4));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   123
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   124
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   125
            //if (abs(lx-tx)>8) or (abs(ly-ty)>8) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   126
                begin
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   127
                glDisable(GL_TEXTURE_2D);
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   128
                glEnable(GL_LINE_SMOOTH);
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   129
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   130
                glLineWidth(1.0);
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   131
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   132
                Tint($FF, $00, $00, $C0);
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   133
                VertexBuffer[0].X:= hx + WorldDx;
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   134
                VertexBuffer[0].Y:= hy + WorldDy;
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   135
                VertexBuffer[1].X:= tx + WorldDx;
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   136
                VertexBuffer[1].Y:= ty + WorldDy;
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   137
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   138
                glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   139
                glDrawArrays(GL_LINES, 0, Length(VertexBuffer));
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   140
                Tint($FF, $FF, $FF, $FF);
3393
595655a09b26 Engine:
smxx
parents: 3392
diff changeset
   141
                glEnable(GL_TEXTURE_2D);
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   142
                glDisable(GL_LINE_SMOOTH);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   143
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   144
            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   145
        // draw crosshair
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   146
        cx:= Round(hwRound(Gear^.X) + dx * 80 + GetLaunchX(HH^.CurAmmoType, hwSign(Gear^.dX) * m, Gear^.Angle));
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   147
        cy:= Round(hwRound(Gear^.Y) + dy * 80 + GetLaunchY(HH^.CurAmmoType, Gear^.Angle));
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   148
        DrawRotatedTex(HH^.Team^.CrosshairTex,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   149
                12, 12, cx + WorldDx, cy + WorldDy, 0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   150
                hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   151
        end;
3483
54ff8cbabaa6 Engine:
smxx
parents: 3482
diff changeset
   152
    hx:= hwRound(Gear^.X) + 8 * hwSign(Gear^.dX) + WorldDx;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   153
    hy:= hwRound(Gear^.Y) - 2 + WorldDy;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   154
    aangle:= Gear^.Angle * 180 / cMaxAngle - 90;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   155
    if CurAmmoGear <> nil then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   156
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   157
        case CurAmmoGear^.Kind of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   158
            gtShotgunShot: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   159
                    if (CurAmmoGear^.State and gstAnimation <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   160
                        DrawRotated(sprShotgun, hx, hy, hwSign(Gear^.dX), aangle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   161
                    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   162
                        DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   163
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   164
            gtDEagleShot: DrawRotated(sprDEagle, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   165
            gtSniperRifleShot: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   166
                    if (CurAmmoGear^.State and gstAnimation <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   167
                        DrawRotatedF(sprSniperRifle, hx, hy, 1, hwSign(Gear^.dX), aangle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   168
                    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   169
                        DrawRotatedF(sprSniperRifle, hx, hy, 0, hwSign(Gear^.dX), aangle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   170
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   171
            gtBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   172
            gtRCPlane: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   173
                DrawRotated(sprHandPlane, hx, hy, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   174
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   175
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   176
            gtRope: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   177
                if Gear^.X < CurAmmoGear^.X then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   178
                    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   179
                    dAngle:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   180
                    hAngle:= 180;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   181
                    i:= 1
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   182
                    end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   183
                    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   184
                    dAngle:= 180;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   185
                    hAngle:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   186
                    i:= -1
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   187
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   188
                sx:= hwRound(Gear^.X) + WorldDx;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   189
                sy:= hwRound(Gear^.Y) + WorldDy;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   190
               if ((Gear^.State and gstWinner) = 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   191
                   begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   192
                   DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   193
                           i,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   194
                           1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   195
                           0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   196
                           DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + dAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   197
                   with HH^ do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   198
                       if (HatTex <> nil) then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   199
                           begin
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   200
                           DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, sx, sy, 0, i, 32, 32,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   201
                               i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
3854
d390b0f29b0b Unbreak Team hats, shrink some hat sizes
nemo
parents: 3836
diff changeset
   202
                           if HatTex^.w > 64 then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   203
                               begin
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   204
                               Tint(HH^.Team^.Clan^.Color);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   205
                               DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, sx, sy, 32, i, 32, 32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   206
                                   i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   207
                               Tint($FF, $FF, $FF, $FF)
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   208
                               end
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   209
                           end
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   210
                   end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   211
                DrawAltWeapon(Gear, sx, sy);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   212
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   213
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   214
            gtBlowTorch: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   215
                DrawRotated(sprBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   216
                DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   217
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   218
                        3,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   219
                        HH^.visStepPos div 2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   220
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   221
                with HH^ do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   222
                    if (HatTex <> nil) then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   223
                        begin
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   224
                        DrawTextureF(HatTex,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   225
                            1,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   226
                            sx,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   227
                            hwRound(Gear^.Y) - 8 + WorldDy,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   228
                            0,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   229
                            hwSign(Gear^.dX),
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   230
                            32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   231
                            32);
3854
d390b0f29b0b Unbreak Team hats, shrink some hat sizes
nemo
parents: 3836
diff changeset
   232
                        if HatTex^.w > 64 then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   233
                            begin
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   234
                            Tint(HH^.Team^.Clan^.Color);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   235
                            DrawTextureF(HatTex,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   236
                                1,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   237
                                sx,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   238
                                hwRound(Gear^.Y) - 8 + WorldDy,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   239
                                32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   240
                                hwSign(Gear^.dX),
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   241
                                32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   242
                                32);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   243
                            Tint($FF, $FF, $FF, $FF)
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   244
                            end
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   245
                        end;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   246
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   247
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   248
            gtShover: DrawRotated(sprHandBaseball, hx, hy, hwSign(Gear^.dX), aangle + 180);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   249
            gtFirePunch: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   250
                DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   251
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   252
                        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   253
                        4,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   254
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   255
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   256
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   257
            gtPickHammer: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   258
                defaultPos:= false;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   259
                dec(sy,20);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   260
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   261
            gtTeleport: defaultPos:= false;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   262
            gtWhip: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   263
                DrawRotatedF(sprWhip,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   264
                        sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   265
                        sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   266
                        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   267
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   268
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   269
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   270
                end;
3717
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   271
            gtHammer: begin
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   272
                DrawRotatedF(sprHammer,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   273
                        sx,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   274
                        sy,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   275
                        1,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   276
                        hwSign(Gear^.dX),
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   277
                        0);
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   278
                defaultPos:= false
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   279
                end;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   280
            gtKamikaze: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   281
                if CurAmmoGear^.Pos = 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   282
                    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   283
                            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   284
                            1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   285
                            6,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   286
                            0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   287
                else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   288
                    DrawRotatedF(sprKamikaze,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   289
                            hwRound(Gear^.X) + WorldDx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   290
                            hwRound(Gear^.Y) + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   291
                            CurAmmoGear^.Pos - 1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   292
                            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   293
                            aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   294
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   295
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   296
            gtSeduction: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   297
                if CurAmmoGear^.Pos >= 6 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   298
                    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   299
                            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   300
                            2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   301
                            2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   302
                            0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   303
                else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   304
                    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   305
                    DrawRotatedF(sprDress,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   306
                            hwRound(Gear^.X) + WorldDx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   307
                            hwRound(Gear^.Y) + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   308
                            CurAmmoGear^.Pos,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   309
                            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   310
                            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   311
                    DrawSprite(sprCensored, hwRound(Gear^.X) - 32 + WorldDx, hwRound(Gear^.Y) - 20 + WorldDy, 0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   312
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   313
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   314
                end;
3485
ab91c56a9050 Engine (Henek):
smxx
parents: 3483
diff changeset
   315
            gtFlamethrower: begin
ab91c56a9050 Engine (Henek):
smxx
parents: 3483
diff changeset
   316
                DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
ab91c56a9050 Engine (Henek):
smxx
parents: 3483
diff changeset
   317
                if CurAmmoGear^.Tex <> nil then DrawCentered(sx, sy - 40, CurAmmoGear^.Tex)
ab91c56a9050 Engine (Henek):
smxx
parents: 3483
diff changeset
   318
                end;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   319
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   320
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   321
        case CurAmmoGear^.Kind of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   322
            gtShotgunShot,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   323
            gtDEagleShot,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   324
            gtSniperRifleShot,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   325
            gtShover: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   326
                DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   327
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   328
                        0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   329
                        4,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   330
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   331
                defaultPos:= false;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   332
                HatVisible:= true
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   333
            end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   334
        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   335
    end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   336
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   337
    if ((Gear^.State and gstHHJumping) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   338
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   339
    DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   340
        hwSign(Gear^.dX)*m,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   341
        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   342
        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   343
        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   344
    HatVisible:= true;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   345
    defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   346
    end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   347
3894
9abce5468583 Engine:
smaxx
parents: 3863
diff changeset
   348
    if (Gear^.Message and (gmLeft or gmRight) <> 0) and (not isCursorVisible) then
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   349
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   350
        DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   351
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   352
            0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   353
            HH^.visStepPos div 2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   354
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   355
        defaultPos:= false;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   356
        HatVisible:= true
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   357
        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   358
    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   359
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   360
    if ((Gear^.State and gstAnimation) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   361
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   362
        if (TWave(Gear^.Tag) < Low(TWave)) or (TWave(Gear^.Tag) > High(TWave)) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   363
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   364
            Gear^.State:= Gear^.State and not gstAnimation;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   365
            end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   366
        else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   367
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   368
            DrawRotatedF(Wavez[TWave(Gear^.Tag)].Sprite,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   369
                    sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   370
                    sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   371
                    Gear^.Pos,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   372
                    hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   373
                    0.0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   374
            defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   375
            end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   376
        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   377
    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   378
    if ((Gear^.State and gstAttacked) = 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   379
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   380
        if HH^.Timer > 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   381
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   382
            // There must be a tidier way to do this. Anyone?
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   383
            if aangle <= 90 then aangle:= aangle+360;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   384
            if Gear^.dX > _0 then aangle:= aangle-((aangle-240)*HH^.Timer/10)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   385
            else aangle:= aangle+((240-aangle)*HH^.Timer/10);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   386
            dec(HH^.Timer)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   387
            end;
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   388
        amt:= CurrentHedgehog^.CurAmmoType;
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   389
        CurWeapon:= GetAmmoEntry(HH^);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   390
        case amt of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   391
            amBazooka: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   392
            amMortar: DrawRotated(sprHandMortar, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   393
            amMolotov: DrawRotated(sprHandMolotov, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   394
            amBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   395
            amDrill: DrawRotated(sprHandDrill, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   396
            amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   397
            amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   398
            amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   399
            amSineGun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   400
            amPortalGun: if (CurWeapon^.Timer and 2) <> 0 then // Add a new Hedgehog value instead of abusing timer?
3396
e5b3e5f2818e More portal changes. Allows for a multishoot utility. Hopefully not breaking anything.
nemo
parents: 3393
diff changeset
   401
                            DrawRotatedF(sprPortalGun, hx, hy, 0, hwSign(Gear^.dX), aangle)
e5b3e5f2818e More portal changes. Allows for a multishoot utility. Hopefully not breaking anything.
nemo
parents: 3393
diff changeset
   402
                      else
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   403
                            DrawRotatedF(sprPortalGun, hx, hy, 1+(CurWeapon^.Timer and 1), hwSign(Gear^.dX), aangle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   404
            amSniperRifle: DrawRotatedF(sprSniperRifle, hx, hy, 0, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   405
            amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   406
            amCake: DrawRotated(sprHandCake, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   407
            amGrenade: DrawRotated(sprHandGrenade, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   408
            amWatermelon: DrawRotated(sprHandMelon, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   409
            amSkip: DrawRotated(sprHandSkip, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   410
            amClusterBomb: DrawRotated(sprHandCluster, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   411
            amDynamite: DrawRotated(sprHandDynamite, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   412
            amHellishBomb: DrawRotated(sprHandHellish, hx, hy, hwSign(Gear^.dX), aangle);
3475
95345f98da19 Engine:
smxx
parents: 3461
diff changeset
   413
            amGasBomb: DrawRotated(sprHandCheese, hx, hy, hwSign(Gear^.dX), aangle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   414
            amMine: DrawRotated(sprHandMine, hx, hy, hwSign(Gear^.dX), aangle);
3710
411f5c2b5292 Engine:
smaxx
parents: 3641
diff changeset
   415
            amSMine: DrawRotated(sprHandSMine, hx, hy, hwSign(Gear^.dX), aangle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   416
            amSeduction: DrawRotated(sprHandSeduction, hx, hy, hwSign(Gear^.dX), aangle);
3482
106d1f983b48 Engine:
smxx
parents: 3481
diff changeset
   417
            amVampiric: DrawRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   418
            amRCPlane: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   419
                DrawRotated(sprHandPlane, hx, hy, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   420
                defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   421
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   422
            amGirder: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   423
                DrawRotated(sprHandConstruction, hx, hy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   424
                DrawSpriteClipped(sprGirder,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   425
                                  sx-256,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   426
                                  sy-256,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   427
                                  LongInt(topY)+WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   428
                                  LongInt(rightX)+WorldDx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   429
                                  cWaterLine+WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   430
                                  LongInt(leftX)+WorldDx)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   431
                end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   432
            amBee: DrawRotatedF(sprHandBee, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
3481
c385a7dad025 Engine:
smxx
parents: 3476
diff changeset
   433
            amFlamethrower: DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   434
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   435
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   436
        case amt of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   437
            amAirAttack,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   438
            amMineStrike: DrawRotated(sprHandAirAttack, sx, hwRound(Gear^.Y) + WorldDy, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   439
            amPickHammer: DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   440
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   441
                        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   442
                        2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   443
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   444
            amTeleport: DrawRotatedF(sprTeleport, sx, sy, 0, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   445
            amKamikaze: DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   446
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   447
                        1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   448
                        5,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   449
                        0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   450
            amWhip: DrawRotatedF(sprWhip,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   451
                        sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   452
                        sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   453
                        0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   454
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   455
                        0);
3717
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   456
            amHammer: DrawRotatedF(sprHammer,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   457
                        sx,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   458
                        sy,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   459
                        0,
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   460
                        hwSign(Gear^.dX),
d88719b0f0dc Engine:
smaxx
parents: 3713
diff changeset
   461
                        0);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   462
        else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   463
            DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   464
                hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   465
                0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   466
                4,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   467
                0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   468
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   469
            HatVisible:= true;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   470
            (* with HH^ do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   471
                if (HatTex <> nil)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   472
                and (HatVisibility > 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   473
                    DrawTextureF(HatTex,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   474
                        HatVisibility,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   475
                        sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   476
                        hwRound(Gear^.Y) - 8 + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   477
                        0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   478
                        hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   479
                        32,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   480
                        32); *)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   481
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   482
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   483
        case amt of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   484
            amBaseballBat: DrawRotated(sprHandBaseball,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   485
                    hwRound(Gear^.X) + 1 - 4 * hwSign(Gear^.dX) + WorldDx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   486
                    hwRound(Gear^.Y) + 6 + WorldDy, hwSign(Gear^.dX), aangle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   487
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   488
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   489
        defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   490
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   491
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   492
end else // not gstHHDriven
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   493
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   494
    if (Gear^.Damage > 0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   495
    and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > _0_003) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   496
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   497
        DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   498
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   499
            2,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   500
            1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   501
            Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   502
        defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   503
        end else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   504
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   505
    if ((Gear^.State and gstHHJumping) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   506
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   507
        DrawHedgehog(sx, sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   508
            hwSign(Gear^.dX)*m,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   509
            1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   510
            1,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   511
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   512
        defaultPos:= false
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   513
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   514
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   515
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   516
with HH^ do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   517
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   518
    if defaultPos then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   519
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   520
        DrawRotatedF(sprHHIdle,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   521
            sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   522
            sy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   523
            (RealTicks div 128 + Gear^.Pos) mod 19,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   524
            hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   525
            0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   526
        HatVisible:= true;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   527
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   528
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   529
    if HatVisible then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   530
        if HatVisibility < 1.0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   531
            HatVisibility:= HatVisibility + 0.2
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   532
        else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   533
    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   534
        if HatVisibility > 0.0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   535
            HatVisibility:= HatVisibility - 0.2;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   536
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   537
    if (HatTex <> nil)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   538
    and (HatVisibility > 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   539
        if DefaultPos then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   540
            begin
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   541
            DrawTextureF(HatTex,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   542
                HatVisibility,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   543
                sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   544
                hwRound(Gear^.Y) - 8 + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   545
                (RealTicks div 128 + Gear^.Pos) mod 19,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   546
                hwSign(Gear^.dX),
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   547
                32,
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   548
                32);
3854
d390b0f29b0b Unbreak Team hats, shrink some hat sizes
nemo
parents: 3836
diff changeset
   549
            if HatTex^.w > 64 then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   550
                begin
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   551
                Tint(HH^.Team^.Clan^.Color);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   552
                DrawTextureF(HatTex,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   553
                    HatVisibility,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   554
                    sx,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   555
                    hwRound(Gear^.Y) - 8 + WorldDy,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   556
                    (RealTicks div 128 + Gear^.Pos) mod 19 + 32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   557
                    hwSign(Gear^.dX),
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   558
                    32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   559
                    32);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   560
                Tint($FF, $FF, $FF, $FF)
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   561
                end
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   562
            end
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   563
        else
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   564
            begin
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   565
            DrawTextureF(HatTex,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   566
                HatVisibility,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   567
                sx,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   568
                hwRound(Gear^.Y) - 8 + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   569
                0,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   570
                hwSign(Gear^.dX)*m,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   571
                32,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   572
                32);
3854
d390b0f29b0b Unbreak Team hats, shrink some hat sizes
nemo
parents: 3836
diff changeset
   573
            if HatTex^.w > 64 then
3445
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   574
                begin
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   575
                Tint(HH^.Team^.Clan^.Color);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   576
                DrawTextureF(HatTex,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   577
                    HatVisibility,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   578
                    sx,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   579
                    hwRound(Gear^.Y) - 8 + WorldDy,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   580
                    32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   581
                    hwSign(Gear^.dX)*m,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   582
                    32,
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   583
                    32);
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   584
                Tint($FF, $FF, $FF, $FF)
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   585
                end
1ce844170014 Engine:
smxx
parents: 3440
diff changeset
   586
            end
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   587
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   588
if (Gear^.State and gstHHDriven) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   589
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   590
(*    if (CurAmmoGear = nil) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   591
        begin
3836
833c0f32e326 Change all use of curslot/idx to CurAmmoType to try and avoid some bugs with use of last weapon.
nemo
parents: 3751
diff changeset
   592
        amt:= CurrentHedgehog^.CurAmmoType;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   593
        case amt of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   594
            amJetpack: DrawSprite(sprJetpack, sx-32, sy-32, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   595
            end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   596
        end; *)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   597
    if CurAmmoGear <> nil then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   598
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   599
        case CurAmmoGear^.Kind of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   600
            gtJetpack: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   601
                       DrawSprite(sprJetpack, sx-32, sy-32, 0);
3909
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   602
                       if cWaterLine > hwRound(Gear^.Y) + Gear^.Radius then
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   603
                           begin
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   604
                           if (CurAmmoGear^.MsgParam and gmUp) <> 0 then DrawSprite(sprJetpack, sx-32, sy-28, 1);
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   605
                           if (CurAmmoGear^.MsgParam and gmLeft) <> 0 then DrawSprite(sprJetpack, sx-28, sy-28, 2);
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   606
                           if (CurAmmoGear^.MsgParam and gmRight) <> 0 then DrawSprite(sprJetpack, sx-36, sy-28, 3)
4ba25a3d15af remove windspeed from bubbles, remove initial dY from bubbles, apply dY/dX to bubbles, correct offsets on flying saucer flame graphics, add bubbles when flying saucer thrusts underwater, make flying saucer sink more slowly underwater
nemo
parents: 3894
diff changeset
   607
                           end;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   608
                       if CurAmmoGear^.Tex <> nil then DrawCentered(sx, sy - 40, CurAmmoGear^.Tex);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   609
                       DrawAltWeapon(Gear, sx, sy)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   610
                       end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   611
            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   612
        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   613
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   614
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   615
with HH^ do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   616
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   617
    if ((Gear^.State and not gstWinner) = 0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   618
        or (bShowFinger and ((Gear^.State and gstHHDriven) <> 0)) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   619
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   620
        t:= hwRound(Gear^.Y) - cHHRadius - 12 + WorldDy;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   621
        if (cTagsMask and htTransparent) <> 0 then
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   622
            Tint($FF, $FF, $FF, $80);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   623
        if ((cTagsMask and htHealth) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   624
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   625
            dec(t, HealthTagTex^.h + 2);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   626
            DrawCentered(hwRound(Gear^.X) + WorldDx, t, HealthTagTex)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   627
            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   628
        if (cTagsMask and htName) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   629
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   630
            dec(t, NameTagTex^.h + 2);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   631
            DrawCentered(hwRound(Gear^.X) + WorldDx, t, NameTagTex)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   632
            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   633
        if (cTagsMask and htTeamName) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   634
            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   635
            dec(t, Team^.NameTagTex^.h + 2);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   636
            DrawCentered(hwRound(Gear^.X) + WorldDx, t, Team^.NameTagTex)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   637
            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   638
        if (cTagsMask and htTransparent) <> 0 then
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   639
            Tint($FF, $FF, $FF, $FF)
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   640
        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   641
    if (Gear^.State and gstHHDriven) <> 0 then // Current hedgehog
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   642
        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   643
        if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   644
            DrawSprite(sprFinger, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 64 + WorldDy,
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   645
                        GameTicks div 32 mod 16);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   646
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   647
        if (Gear^.State and gstDrowning) = 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   648
            if (Gear^.State and gstHHThinking) <> 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   649
                DrawSprite(sprQuestion, hwRound(Gear^.X) - 10 + WorldDx, hwRound(Gear^.Y) - cHHRadius - 34 + WorldDy, (RealTicks shr 9) mod 8)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   650
        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   651
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   652
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   653
if HH^.Effects[hePoisoned] then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   654
    begin
3392
9d5d01b52ae8 Engine:
smxx
parents: 3390
diff changeset
   655
    Tint($00, $FF, $40, $80);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   656
    DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 1.5, 0, 0, sx, sy, 0, 1, 22, 22, 360 - (RealTicks shr 37) mod 360);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   657
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   658
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   659
if Gear^.Invulnerable then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   660
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   661
    Tint($FF, $FF, $FF, max($40, floor($FF * abs(1 - ((RealTicks div 2 + Gear^.uid * 491) mod 1500) / 750))));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   662
    DrawSprite(sprInvulnerable, sx - 24, sy - 24, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   663
    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   664
if cVampiric and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   665
   (CurrentHedgehog^.Gear <> nil) and
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   666
   (CurrentHedgehog^.Gear = Gear) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   667
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   668
    Tint($FF, $FF, $FF, max($40, floor($FF * abs(1 - (RealTicks mod 1500) / 750))));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   669
    DrawSprite(sprVampiric, sx - 24, sy - 24, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   670
    end;
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   671
    Tint($FF, $FF, $FF, $FF)
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   672
end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   673
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   674
procedure DrawGears;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   675
var Gear, HHGear: PGear;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   676
    i: Longword;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   677
    startX, endX, startY, endY: LongInt;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   678
begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   679
Gear:= GearsList;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   680
while Gear<>nil do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   681
    begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   682
    case Gear^.Kind of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   683
       gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
3475
95345f98da19 Engine:
smxx
parents: 3461
diff changeset
   684
       gtGasBomb: DrawRotated(sprCheese, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
3476
1ec68b8d3bd1 Henek adds a flamethrower, updates some translations, and tweaks how fire works.
nemo
parents: 3475
diff changeset
   685
       gtMolotov: DrawRotated(sprMolotov, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   686
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   687
       gtRCPlane: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   688
                  if (Gear^.Tag = -1) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   689
                     DrawRotated(sprPlane, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, -1,  DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   690
                  else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   691
                     DrawRotated(sprPlane, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy,0,DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   692
                  if ((TrainingFlags and tfRCPlane) <> 0) and (TrainingTargetGear <> nil) and ((Gear^.State and gstDrowning) = 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   693
                     DrawRotatedf(sprFinger, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, GameTicks div 32 mod 16, 0, DxDy2Angle(Gear^.X - TrainingTargetGear^.X, TrainingTargetGear^.Y - Gear^.Y));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   694
                  end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   695
       gtBall: DrawRotatedf(sprBalls, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tag,0, Gear^.DirAngle);
3428
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   696
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   697
       gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   698
                 or (Gear^.IntersectGear = nil) or (Gear^.IntersectGear^.IntersectGear <> Gear) // not linked&backlinked?
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   699
                 or ((Gear^.IntersectGear^.Tag and 1) = 0) then // linked portal still moving?
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   700
                      DrawRotatedf(sprPortal, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tag, hwSign(Gear^.dX), Gear^.DirAngle)
46a2694867bc portal:
sheepluva
parents: 3422
diff changeset
   701
                 else DrawRotatedf(sprPortal, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 4 + Gear^.Tag div 2, hwSign(Gear^.dX), Gear^.DirAngle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   702
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   703
       gtDrill: DrawRotated(sprDrill, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   704
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   705
        gtHedgehog: DrawHH(Gear);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   706
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   707
    gtAmmo_Grenade: DrawRotated(sprGrenade, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   708
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   709
           gtGrave: DrawTextureF(PHedgehog(Gear^.Hedgehog)^.Team^.GraveTex, 1, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 7+Gear^.uid) and 7, 1, 32, 32);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   710
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   711
             gtBee: DrawRotatedF(sprBee, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 5) mod 2, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   712
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   713
      gtPickHammer: DrawSprite(sprPHammer, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 50 + LongInt(((GameTicks shr 5) and 1) * 2) + WorldDy, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   714
            gtRope: DrawRope(Gear);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   715
            gtMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   716
                           DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   717
                       else if Gear^.Health <> 0 then DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   718
                       else DrawRotated(sprMineDead, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
3710
411f5c2b5292 Engine:
smaxx
parents: 3641
diff changeset
   719
           gtSMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
411f5c2b5292 Engine:
smaxx
parents: 3641
diff changeset
   720
                           DrawRotated(sprSMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
411f5c2b5292 Engine:
smaxx
parents: 3641
diff changeset
   721
                       else if Gear^.Health <> 0 then DrawRotated(sprSMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
411f5c2b5292 Engine:
smaxx
parents: 3641
diff changeset
   722
                       else DrawRotated(sprMineDead, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   723
            gtCase: case Gear^.Pos of
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   724
                         posCaseAmmo  : begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   725
                                        i:= (GameTicks shr 6) mod 64;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   726
                                        if i > 18 then i:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   727
                                        DrawSprite(sprCase, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   728
                                        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   729
                         posCaseHealth: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   730
                                        i:= ((GameTicks shr 6) + 38) mod 64;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   731
                                        if i > 13 then i:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   732
                                        DrawSprite(sprFAid, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   733
                                        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   734
                         posCaseUtility: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   735
                                        i:= (GameTicks shr 6) mod 70;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   736
                                        if i > 23 then i:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   737
                                        i:= i mod 12;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   738
                                        DrawSprite(sprUtility, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   739
                                        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   740
                         end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   741
      gtExplosives: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   742
                    if ((Gear^.State and gstDrowning) <> 0) then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   743
                        DrawSprite(sprExplosivesRoll, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, 0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   744
                    else if Gear^.State and gstAnimation = 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   745
                        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   746
                        i:= (GameTicks shr 6 + Gear^.uid*3) mod 64;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   747
                        if i > 18 then i:= 0;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   748
                        DrawSprite(sprExplosives, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   749
                        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   750
                    else if Gear^.State and gsttmpFlag = 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   751
                        DrawRotatedF(sprExplosivesRoll, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) +4 + WorldDy, 0, 0, Gear^.DirAngle)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   752
                    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   753
                        DrawRotatedF(sprExplosivesRoll, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) +4 + WorldDy, 1, 0, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   754
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   755
        gtDynamite: DrawSprite2(sprDynamite, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 25 + WorldDy, Gear^.Tag and 1, Gear^.Tag shr 1);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   756
     gtClusterBomb: DrawRotated(sprClusterBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   757
         gtCluster: DrawSprite(sprClusterParticle, hwRound(Gear^.X) - 8 + WorldDx, hwRound(Gear^.Y) - 8 + WorldDy, 0);
3751
a70c61c076ae Engine:
smaxx
parents: 3717
diff changeset
   758
           gtFlame: DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, 1, 16, 16);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   759
       gtParachute: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   760
                    DrawSprite(sprParachute, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 48 + WorldDy, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   761
                    DrawAltWeapon(Gear, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   762
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   763
       gtAirAttack: if Gear^.Tag > 0 then DrawSprite(sprAirplane, hwRound(Gear^.X) - SpritesData[sprAirplane].Width div 2 + WorldDx, hwRound(Gear^.Y) - SpritesData[sprAirplane].Height div 2 + WorldDy, 0)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   764
                                     else DrawSprite(sprAirplane, hwRound(Gear^.X) - SpritesData[sprAirplane].Width div 2 + WorldDx, hwRound(Gear^.Y) - SpritesData[sprAirplane].Height div 2 + WorldDy, 1);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   765
         gtAirBomb: DrawRotated(sprAirBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   766
        gtTeleport: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   767
                    HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   768
                    if not PHedgehog(Gear^.Hedgehog)^.Unplaced then DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(Gear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   769
                    DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   770
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   771
        gtSwitcher: DrawSprite(sprSwitch, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 56 + WorldDy, (GameTicks shr 6) mod 12);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   772
          gtTarget: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   773
                    Tint($FF, $FF, $FF, floor($FF * Gear^.Timer / 1000));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   774
                    DrawSprite(sprTarget, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   775
                    Tint($FF, $FF, $FF, $FF);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   776
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   777
          gtMortar: DrawRotated(sprMortar, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   778
          gtCake: if Gear^.Pos = 6 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   779
                     DrawRotatedf(sprCakeWalk, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   780
                  else
3508
a7ca07614a2d correct cake sit-down animation so that it doesn't sit down in mid-air anymore
sheepluva
parents: 3496
diff changeset
   781
                     DrawRotatedf(sprCakeDown, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 5 - Gear^.Pos, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   782
       gtSeduction: if Gear^.Pos >= 14 then DrawSprite(sprSeduction, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   783
      gtWatermelon: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 0, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   784
      gtMelonPiece: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 1, 0, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   785
     gtHellishBomb: DrawRotated(sprHellishBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   786
           gtBirdy: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   787
                    if Gear^.State and gstAnimation = gstAnimation then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   788
                        begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   789
                        if Gear^.State and gstTmpFlag = 0 then // Appearing
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   790
                            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   791
                            endX:= hwRound(Gear^.X);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   792
                            endY:= hwRound(Gear^.Y);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   793
                            if Gear^.Tag < 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   794
                                startX:= max(LAND_WIDTH + 1024, endX + 2048)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   795
                            else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   796
                                startX:= max(-LAND_WIDTH - 1024, endX - 2048);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   797
                            startY:= endY - 256;
3407
dcc129c4352e Engine:
smxx
parents: 3396
diff changeset
   798
                            DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + floor((endX - startX) * (-power(2, -10 * LongInt(Gear^.Timer)/2000) + 1)), startY + WorldDy + floor((endY - startY) * sqrt(1 - power((LongInt(Gear^.Timer)/2000)-1, 2))), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   799
                            end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   800
                        else // Disappearing
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   801
                            begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   802
                            startX:= hwRound(Gear^.X);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   803
                            startY:= hwRound(Gear^.Y);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   804
                            if Gear^.Tag > 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   805
                                endX:= max(LAND_WIDTH + 1024, startX + 2048)
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   806
                            else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   807
                                endX:= max(-LAND_WIDTH - 1024, startX - 2048);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   808
                            endY:= startY + 256;
3407
dcc129c4352e Engine:
smxx
parents: 3396
diff changeset
   809
                            DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + floor((endX - startX) * power(2, 10 * (LongInt(Gear^.Timer)/2000 - 1))) + hwRound(Gear^.dX * Gear^.Timer), startY + WorldDy + floor((endY - startY) * cos(LongInt(Gear^.Timer)/2000 * (Pi/2)) - (endY - startY)) + hwRound(Gear^.dY * Gear^.Timer), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   810
                            end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   811
                        end
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   812
                    else
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   813
                        DrawTextureF(SpritesData[sprBirdy].Texture, 1, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   814
                    end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   815
             gtEgg: DrawRotatedTextureF(SpritesData[sprEgg].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 16, 16, Gear^.DirAngle);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   816
           gtPiano: begin
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   817
                    if (Gear^.State and gstDrowning) = 0 then
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   818
                        begin
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   819
                        Tint($FF, $FF, $FF, $10);
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   820
                        for i:= 8 downto 1 do
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   821
                            DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128, 0);
3390
1d4926d10a9e Engine:
smxx
parents: 3387
diff changeset
   822
                        Tint($FF, $FF, $FF, $FF)
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   823
                        end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   824
                    DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 128, 128, 0);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   825
                    end;
3712
de2026031833 Engine:
smaxx
parents: 3710
diff changeset
   826
     gtPoisonCloud: begin
3713
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   827
                    if Gear^.Timer < 1020 then
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   828
                        Tint($C0, $C0, $00, Gear^.Timer div 8)
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   829
                    else if Gear^.Timer > 3980 then
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   830
                        Tint($C0, $C0, $00, (5000 - Gear^.Timer) div 8)
3712
de2026031833 Engine:
smaxx
parents: 3710
diff changeset
   831
                    else
3713
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   832
                        Tint($C0, $C0, $00, $C0);
f8778904600d Engine:
smaxx
parents: 3712
diff changeset
   833
                    DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
3712
de2026031833 Engine:
smaxx
parents: 3710
diff changeset
   834
                    Tint($FF, $FF, $FF, $FF)
de2026031833 Engine:
smaxx
parents: 3710
diff changeset
   835
                    end;
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   836
         end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   837
      if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(hwRound(Gear^.X) + 8 + WorldDx, hwRound(Gear^.Y) + 8 + WorldDy, Gear^.Tex);
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   838
      Gear:= Gear^.NextGear
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   839
      end;
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents:
diff changeset
   840
end;