hedgewars/uWorld.pas
author koda
Thu, 17 Jun 2010 19:57:51 +0200
changeset 3513 f589230fa21b
parent 3483 54ff8cbabaa6
child 3523 6592fbb969da
permissions -rw-r--r--
now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive) add rotation for iphone build too make the ifrontend work again with 3.0 sdk reworked openalbridge following most of an old implementation by Smaxx and making it more modular -- now sources are limited but the memory extension and cleanup is todo nil'd many variables in engine that were causing intialization problems
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 1045
diff changeset
     2
 * Hedgewars, a free turn based strategy game
3236
4ab3917d7d44 Update (c) lines to 2010 as unc0rr requested - they all had varying values so I just took the first year mentioned, then tacked on -2010
nemo
parents: 3204
diff changeset
     3
 * Copyright (c) 2004-2010 Andrey Korotaev <unC0Rr@gmail.com>
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    12
 * GNU General Public License for more details.
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    15
 * along with this program; if not, write to the Free Software
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    17
 *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2619
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2619
diff changeset
    20
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    21
unit uWorld;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    22
interface
2704
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
    23
uses SDLh, uGears, uConsts, uFloat, uRandom;
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2619
diff changeset
    24
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    25
2699
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    26
var FollowGear: PGear;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    27
    WindBarWidth: LongInt;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    28
    bShowAmmoMenu: boolean;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    29
    bSelected: boolean;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    30
    bShowFinger: boolean;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    31
    Frames: Longword;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    32
    WaterColor, DeepWaterColor: TSDL_Color;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    33
    WorldDx: LongInt;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    34
    WorldDy: LongInt;
3248
8d4c61f6f30c - Added SkyOffset, HorizontOffset as global vars
palewolf
parents: 3240
diff changeset
    35
    SkyOffset: LongInt;
8d4c61f6f30c - Added SkyOffset, HorizontOffset as global vars
palewolf
parents: 3240
diff changeset
    36
    HorizontOffset: LongInt;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    37
{$IFDEF COUNTTICKS}
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    38
    cntTicks: LongWord;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    39
{$ENDIF}
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
    40
    cOffsetY: LongInt;
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
    41
    
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 3032
diff changeset
    42
procedure initModule;
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 3032
diff changeset
    43
procedure freeModule;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    44
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    45
procedure InitWorld;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    46
procedure DrawWorld(Lag: LongInt);
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
    47
procedure AddCaption(s: shortstring; Color: Longword; Group: TCapGroup);
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
    48
procedure ShowMission(caption, subcaption, text: ansistring; icon, time : LongInt);
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
    49
procedure HideMission;
3032
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
    50
procedure ShakeCamera(amount: LongWord);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    51
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    52
implementation
3407
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
    53
uses    uStore, uMisc, uTeams, uIO, uKeys, uLocale, uSound, uAmmos, uVisualGears, uChat, uLandTexture, uLand, GLunit;
1807
795f97007833 Split land texture into small ones:
unc0rr
parents: 1806
diff changeset
    54
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    55
type TCaptionStr = record
762
5ecf042f6113 More sprites are visible
unc0rr
parents: 760
diff changeset
    56
                   Tex: PTexture;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    57
                   EndTime: LongWord;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    58
                   end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    59
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
    60
var cWaveWidth, cWaveHeight: LongInt;
2699
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    61
    Captions: array[TCapGroup] of TCaptionStr;
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
    62
    AMSlotSize, AMxOffset, AMyOffset, AMWidth, AMxShift, SlotsNum: LongInt;
2699
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    63
    tmpSurface: PSDL_Surface;
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
    64
    fpsTexture: PTexture;
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
    65
    timeTexture: PTexture;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    66
    FPS: Longword;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    67
    CountTicks: Longword;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    68
    SoundTimerTicks: Longword;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
    69
    prevPoint: TPoint;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
    70
    amSel: TAmmoType = amNothing;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
    71
    missionTex: PTexture;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
    72
    missionTimer: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    73
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    74
procedure InitWorld;
2704
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
    75
var i, t: LongInt;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
    76
    cp: PClan;
2863
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
    77
    g: ansistring;
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
    78
2904
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    79
    // helper functions to create the goal/game mode string
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
    80
    function AddGoal(s: ansistring; gf: longword; si: TGoalStrId; i: LongInt): ansistring;
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
    81
    var t: ansistring;
2904
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    82
    begin
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    83
        if (GameFlags and gf) <> 0 then
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    84
            begin
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    85
            t:= inttostr(i);
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    86
            s:= s + format(trgoal[si], t) + '|'
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    87
            end;
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    88
        AddGoal:= s;
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    89
    end;
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    90
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
    91
    function AddGoal(s: ansistring; gf: longword; si: TGoalStrId): ansistring;
2863
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
    92
    begin
2904
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    93
        if (GameFlags and gf) <> 0 then
209a0c573917 Engine:
smxx
parents: 2903
diff changeset
    94
            s:= s + trgoal[si] + '|';
2863
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
    95
        AddGoal:= s;
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
    96
    end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    97
begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
    98
    missionTimer:= 0;
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
    99
2704
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   100
if (GameFlags and gfRandomOrder) <> 0 then  // shuffle them up a bit
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   101
   begin
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   102
   for i:= 0 to ClansCount * 4 do
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   103
      begin
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   104
      t:= GetRandom(ClansCount);
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   105
      if t <> 0 then
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   106
         begin
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   107
         cp:= ClansArray[0];
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   108
         ClansArray[0]:= ClansArray[t];
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   109
         ClansArray[t]:= cp;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   110
         ClansArray[t]^.ClanIndex:= t;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   111
         ClansArray[0]^.ClanIndex:= 0;
2856
cc70797a0b75 Adjust LocalClan when shuffling, set to -1 in case all local clans are bots.
nemo
parents: 2855
diff changeset
   112
         if (LocalClan = t) then LocalClan:= 0
cc70797a0b75 Adjust LocalClan when shuffling, set to -1 in case all local clans are bots.
nemo
parents: 2855
diff changeset
   113
         else if (LocalClan = 0) then LocalClan:= t
2704
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   114
         end;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   115
      end;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   116
   CurrentTeam:= ClansArray[0]^.Teams[0];
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   117
   end;
51cda17b7c3b Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents: 2699
diff changeset
   118
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   119
// if special game flags/settings are changed, add them to the game mode notice window and then show it
2863
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
   120
g:= ''; // no text/things to note yet
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   121
2958
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   122
// check different game flags (goals/game modes first for now)
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   123
g:= AddGoal(g, gfKing, gidKing); // king?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   124
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   125
// other important flags
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   126
g:= AddGoal(g, gfForts, gidForts); // forts?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   127
g:= AddGoal(g, gfLowGravity, gidLowGravity); // low gravity?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   128
g:= AddGoal(g, gfInvulnerable, gidInvulnerable); // invulnerability?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   129
g:= AddGoal(g, gfVampiric, gidVampiric); // vampirism?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   130
g:= AddGoal(g, gfKarma, gidKarma); // karma?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   131
g:= AddGoal(g, gfPlaceHog, gidPlaceHog); // placement?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   132
g:= AddGoal(g, gfArtillery, gidArtillery); // artillery?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   133
g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   134
g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo?
e6f7620da87e Engine:
smxx
parents: 2948
diff changeset
   135
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   136
// modified damage modificator?
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   137
if cDamagePercent <> 100 then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   138
    g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent);
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   139
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   140
// fade in
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   141
ScreenFade:= sfFromBlack;
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   142
ScreenFadeValue:= sfMax;
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   143
ScreenFadeSpeed:= 1;
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   144
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   145
// modified mine timers?
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   146
if cMinesTime <> 3000 then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   147
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   148
    if cMinesTime = 0 then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   149
        g:= AddGoal(g, gfMines, gidNoMineTimer)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   150
    else if cMinesTime < 0 then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   151
        g:= AddGoal(g, gfMines, gidRandomMineTimer)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   152
    else
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   153
        g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   154
    end;
2908
bd1909984a09 Engine:
smxx
parents: 2905
diff changeset
   155
2863
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
   156
// if the string has been set, show it for (default timeframe) seconds
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
   157
if g <> '' then ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0);
9eb53b1f1842 Engine:
smxx
parents: 2857
diff changeset
   158
1825
c929f9111141 Nemo's patch allowing different water sprites size
unc0rr
parents: 1812
diff changeset
   159
cWaveWidth:= SpritesData[sprWater].Width;
2268
053eb81e60ee little experiment to see if this improve appearance of laser/ufo/cake/laser guided missile - of course, can't actually see it until unc0rr restores waves
nemo
parents: 2226
diff changeset
   160
//cWaveHeight:= SpritesData[sprWater].Height;
053eb81e60ee little experiment to see if this improve appearance of laser/ufo/cake/laser guided missile - of course, can't actually see it until unc0rr restores waves
nemo
parents: 2226
diff changeset
   161
cWaveHeight:= 32;
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   162
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
   163
cGearScrEdgesDist:= Min(cScreenWidth div 2 - 100, cScreenHeight div 2 - 50);
74
42257fee61ae - Unicode support for team and hedgehogs names
unc0rr
parents: 71
diff changeset
   164
SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2);
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
   165
prevPoint.X:= 0;
74
42257fee61ae - Unicode support for team and hedgehogs names
unc0rr
parents: 71
diff changeset
   166
prevPoint.Y:= cScreenHeight div 2;
1760
55a1edd97911 Fix nemo's large land patch
unc0rr
parents: 1753
diff changeset
   167
WorldDx:=  - (LAND_WIDTH div 2) + cScreenWidth div 2;
2139
5a083e71a71d Properly decrement sniper rifle if timed out. Try to get camera position straight for once.
nemo
parents: 2119
diff changeset
   168
WorldDy:=  - (LAND_HEIGHT - (playHeight div 2)) + (cScreenHeight div 2);
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   169
AMSlotSize:= 33;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   170
{$IFDEF IPHONEOS}
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   171
AMxOffset:= 10;
3464
cdb0ddeb38ba unbreak build (everyone saw this coming)
koda
parents: 3463
diff changeset
   172
AMyOffset:= 10 + 123;   // moved downwards
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   173
AMWidth:= (cMaxSlotAmmoIndex + 1) * AMSlotSize + AMxOffset;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   174
{$ELSE}
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   175
AMxOffset:= 10;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   176
AMyOffset:= 60;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   177
AMWidth:= (cMaxSlotAmmoIndex + 2) * AMSlotSize + AMxOffset;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   178
{$ENDIF}
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   179
AMxShift:= AMWidth;
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   180
SkyOffset:= 0;
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   181
HorizontOffset:= 0;
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   182
end;
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   183
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   184
956
19003f7fc174 Get rid of unused Surface parameter
unc0rr
parents: 942
diff changeset
   185
procedure ShowAmmoMenu;
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   186
const MENUSPEED = 15;
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   187
const BORDERSIZE = 2;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   188
var x, y, i, t, g: LongInt;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   189
    Slot, Pos, STurns: LongInt;
2855
7e6adeb57427 Show the ammo menu of the last local non-bot team when not local turn. needs testing
nemo
parents: 2851
diff changeset
   190
    Ammo: PHHAmmo;
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   191
begin
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   192
if  (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or ((CurAmmoGear^.Ammo^.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) then bShowAmmoMenu:= false;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   193
if bShowAmmoMenu then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   194
   begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   195
   FollowGear:= nil;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   196
   if AMxShift = AMWidth then prevPoint.X:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   197
   if cReducedQuality then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   198
       AMxShift:= 0
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   199
   else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   200
       if AMxShift > MENUSPEED then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   201
      	   dec(AMxShift, MENUSPEED)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   202
       else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   203
           AMxShift:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   204
   end else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   205
   begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   206
   if AMxShift = 0 then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   207
      begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   208
      CursorPoint.X:= cScreenWidth shr 1;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   209
      CursorPoint.Y:= cScreenHeight shr 1;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   210
      prevPoint:= CursorPoint;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   211
      SDL_WarpMouse(CursorPoint.X  + cScreenWidth div 2, cScreenHeight - CursorPoint.Y)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   212
      end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   213
   if cReducedQuality then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   214
       AMxShift:= AMWidth
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   215
   else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   216
       if AMxShift < (AMWidth - MENUSPEED) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   217
           inc(AMxShift, MENUSPEED)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   218
       else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   219
           AMxShift:= AMWidth;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   220
   end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   221
Ammo:= nil;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   222
if (CurrentTeam <> nil) and (CurrentHedgehog <> nil) and (not CurrentTeam^.ExtDriven) and (CurrentHedgehog^.BotLevel = 0) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   223
   Ammo:= CurrentHedgehog^.Ammo
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   224
else if (LocalAmmo <> -1) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   225
   Ammo:= GetAmmoByNum(LocalAmmo);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   226
Pos:= -1;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   227
if Ammo = nil then
2971
c65929077646 Ensure ammo menu is flagged false if no ammo
nemo
parents: 2970
diff changeset
   228
    begin
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   229
    bShowAmmoMenu:= false;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   230
    exit
2971
c65929077646 Ensure ammo menu is flagged false if no ammo
nemo
parents: 2970
diff changeset
   231
    end;
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   232
SlotsNum:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   233
x:= (cScreenWidth shr 1) - AMWidth + AMxShift;
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   234
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   235
{$IFDEF IPHONEOS}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   236
Slot:= cMaxSlotIndex;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   237
x:= x - cOffsetY;
3464
cdb0ddeb38ba unbreak build (everyone saw this coming)
koda
parents: 3463
diff changeset
   238
y:= AMyOffset;
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   239
dec(y, BORDERSIZE);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   240
DrawSprite(sprAMCorners, x - BORDERSIZE, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   241
for i:= 0 to cMaxSlotAmmoIndex do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   242
	DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   243
DrawSprite(sprAMCorners, x + AMWidth - AMxOffset, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   244
inc(y, BORDERSIZE);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   245
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   246
for i:= 0 to cMaxSlotIndex do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   247
    if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   248
        begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   249
        if (cScreenHeight - CursorPoint.Y >= y) and (cScreenHeight - CursorPoint.Y < y + AMSlotSize) then Slot:= i;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   250
        inc(SlotsNum);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   251
        DrawSprite(sprAMBorderVertical, x - BORDERSIZE, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   252
        t:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   253
        g:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   254
        while (t <= cMaxSlotAmmoIndex) and (Ammo^[i, t].Count > 0) do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   255
            begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   256
            DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   257
            if (Ammo^[i, t].AmmoType <> amNothing) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   258
                begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   259
                STurns:= Ammoz[Ammo^[i, t].AmmoType].SkipTurns - CurrentTeam^.Clan^.TurnNumber;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   260
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   261
                if STurns >= 0 then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   262
                    begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   263
                    DrawSprite(sprAMAmmosBW, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)-1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   264
                    if STurns < 100 then DrawSprite(sprTurnsLeft, x + (g + 1) * AMSlotSize - 16, y + AMSlotSize - 16, STurns);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   265
                    end else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   266
                    DrawSprite(sprAMAmmos, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)-1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   267
                if (Slot = i)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   268
                and (CursorPoint.X >= x + g * AMSlotSize)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   269
                and (CursorPoint.X < x + (g + 1) * AMSlotSize) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   270
                    begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   271
                    if (STurns < 0) then DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   272
                    Pos:= t;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   273
                    end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   274
                inc(g)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   275
                end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   276
                inc(t)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   277
            end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   278
        for g:= g to cMaxSlotAmmoIndex do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   279
            DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   280
        DrawSprite(sprAMBorderVertical, x + AMWidth - AMxOffset, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   281
        inc(y, AMSlotSize);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   282
        end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   283
        
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   284
DrawSprite(sprAMCorners, x - BORDERSIZE, y, 2);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   285
for i:= 0 to cMaxSlotAmmoIndex do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   286
	DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   287
DrawSprite(sprAMCorners, x + AMWidth - AMxOffset, y, 3);
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   288
{$ELSE}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   289
Slot:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   290
y:= cScreenHeight - AMyOffset;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   291
DrawSprite(sprAMCorners, x - BORDERSIZE, y, 2);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   292
for i:= 0 to cMaxSlotAmmoIndex + 1 do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   293
	DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   294
DrawSprite(sprAMCorners, x + AMWidth - AMxOffset, y, 3);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   295
dec(y, AMSlotSize);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   296
DrawSprite(sprAMBorderVertical, x - BORDERSIZE, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   297
for i:= 0 to cMaxSlotAmmoIndex do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   298
	DrawSprite(sprAMSlot, x + i * AMSlotSize, y, 2);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   299
DrawSprite(sprAMSlot, x + (cMaxSlotAmmoIndex + 1) * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   300
DrawSprite(sprAMBorderVertical, x + AMWidth - AMxOffset, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   301
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   302
for i:= cMaxSlotIndex downto 0 do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   303
    if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   304
        begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   305
        if (cScreenHeight - CursorPoint.Y >= y - AMSlotSize) and (cScreenHeight - CursorPoint.Y < y) then Slot:= i;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   306
        dec(y, AMSlotSize);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   307
        inc(SlotsNum);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   308
        DrawSprite(sprAMBorderVertical, x - BORDERSIZE, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   309
        DrawSprite(sprAMSlot, x, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   310
        DrawSprite(sprAMSlotKeys, x, y + 1, i);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   311
        t:= 0;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   312
        g:= 1;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   313
        while (t <= cMaxSlotAmmoIndex) and (Ammo^[i, t].Count > 0) do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   314
            begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   315
            DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   316
            if (Ammo^[i, t].AmmoType <> amNothing) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   317
                begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   318
                STurns:= Ammoz[Ammo^[i, t].AmmoType].SkipTurns - CurrentTeam^.Clan^.TurnNumber;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   319
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   320
                if STurns >= 0 then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   321
                    begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   322
                    DrawSprite(sprAMAmmosBW, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)-1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   323
                    if STurns < 100 then DrawSprite(sprTurnsLeft, x + (g + 1) * AMSlotSize - 16, y + AMSlotSize - 16, STurns);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   324
                    end else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   325
                    DrawSprite(sprAMAmmos, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)-1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   326
                if (Slot = i)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   327
                and (CursorPoint.X >= x + g * AMSlotSize)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   328
                and (CursorPoint.X < x + (g + 1) * AMSlotSize) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   329
                    begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   330
                    if (STurns < 0) then DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   331
                    Pos:= t;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   332
                    end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   333
                inc(g)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   334
                end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   335
                inc(t)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   336
            end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   337
        for g:= g to cMaxSlotAmmoIndex + 1 do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   338
            DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   339
        DrawSprite(sprAMBorderVertical, x + AMWidth - AMxOffset, y, 1);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   340
        end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   341
        
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   342
dec(y, BORDERSIZE);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   343
DrawSprite(sprAMCorners, x - BORDERSIZE, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   344
for i:= 0 to cMaxSlotAmmoIndex + 1 do
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   345
	DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 0);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   346
DrawSprite(sprAMCorners, x + AMWidth - AMxOffset, y, 1);
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   347
{$ENDIF}
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   348
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   349
if (Pos >= 0) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   350
    begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   351
    if (Ammo^[Slot, Pos].Count > 0) and (Ammo^[Slot, Pos].AmmoType <> amNothing) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   352
        if (amSel <> Ammo^[Slot, Pos].AmmoType) or (WeaponTooltipTex = nil) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   353
            begin
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   354
            amSel:= Ammo^[Slot, Pos].AmmoType;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   355
            RenderWeaponTooltip(amSel)
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   356
            end;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   357
            
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   358
        {$IFNDEF IPHONEOS}
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   359
        DrawTexture(cScreenWidth div 2 - (AMWidth - 10) + AMxShift, cScreenHeight - AMyOffset - 25, Ammoz[Ammo^[Slot, Pos].AmmoType].NameTex);
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   360
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   361
        if Ammo^[Slot, Pos].Count < AMMO_INFINITE then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   362
            DrawTexture(cScreenWidth div 2 + AMxOffset - 45, cScreenHeight - AMyOffset - 25, CountTexz[Ammo^[Slot, Pos].Count]);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   363
        {$ENDIF}
1529
3bc916b419cd Don't hide ammo menu when user clicks on not yet available weapon
unc0rr
parents: 1439
diff changeset
   364
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   365
        if bSelected and (Ammoz[Ammo^[Slot, Pos].AmmoType].SkipTurns - CurrentTeam^.Clan^.TurnNumber < 0) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   366
            begin
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   367
            bShowAmmoMenu:= false;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   368
            SetWeapon(Ammo^[Slot, Pos].AmmoType);
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   369
            bSelected:= false;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   370
            FreeWeaponTooltip;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   371
            exit
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   372
            end;
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   373
    end
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   374
else
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   375
    FreeWeaponTooltip;
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   376
{$IFDEF IPHONEOS}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   377
if (WeaponTooltipTex <> nil) and (AMxShift = 0) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   378
    ShowWeaponTooltip(x - WeaponTooltipTex^.w - 3, AMyOffset - 1);
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   379
{$ELSE}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   380
if (WeaponTooltipTex <> nil) and (AMxShift = 0) then
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   381
    ShowWeaponTooltip(x - WeaponTooltipTex^.w - 3, min(y + 1, cScreenHeight - WeaponTooltipTex^.h - 40));
3395
095273ad0e08 adding a somewhat working autoration for ipad (uStore.pas and uWorld.pas got mixed in the last two commits)
koda
parents: 3390
diff changeset
   382
{$ENDIF}
961
a9a349b2b3fa Use turnsleft sprites to indicate turns left to activate ammo
unc0rr
parents: 956
diff changeset
   383
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   384
bSelected:= false;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   385
if AMxShift = 0 then DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8)
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   386
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   387
162
4822f6face35 Ammo menu now works!
unc0rr
parents: 161
diff changeset
   388
procedure MoveCamera; forward;
4822f6face35 Ammo menu now works!
unc0rr
parents: 161
diff changeset
   389
3104
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   390
procedure DrawWater(Alpha: byte; OffsetY: LongInt);
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   391
var VertexBuffer: array [0..3] of TVertex2f;
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   392
    r: TSDL_Rect;
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   393
    lw, lh: GLfloat;
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   394
begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   395
    WaterColorArray[0].a := Alpha;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   396
    WaterColorArray[1].a := Alpha;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   397
    WaterColorArray[2].a := Alpha;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   398
    WaterColorArray[3].a := Alpha;
2269
00f5704f5f39 add extra semi-opaque layer of water to discolour objects in the water.
nemo
parents: 2268
diff changeset
   399
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   400
    lw:= cScreenWidth / cScaleFactor;
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   401
    lh:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 + 16;
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   402
    
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   403
    // Water
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   404
    r.y:= OffsetY + WorldDy + cWaterLine;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   405
    if WorldDy < trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   406
    begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   407
        if r.y < 0 then
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   408
            r.y:= 0;
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   409
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   410
        glDisable(GL_TEXTURE_2D);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   411
        VertexBuffer[0].X:= -lw;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   412
        VertexBuffer[0].Y:= r.y;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   413
        VertexBuffer[1].X:= lw;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   414
        VertexBuffer[1].Y:= r.y;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   415
        VertexBuffer[2].X:= lw;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   416
        VertexBuffer[2].Y:= lh;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   417
        VertexBuffer[3].X:= -lw;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   418
        VertexBuffer[3].Y:= lh;
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   419
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   420
        glEnableClientState (GL_COLOR_ARRAY);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   421
        glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]);
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   422
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   423
        glEnableClientState(GL_VERTEX_ARRAY);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   424
        glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
2171
8208946331ba Smaxx refactor of LoadImage to use flags, iphone changes by koda (mostly use of rgba instead of rgb)
nemo
parents: 2162
diff changeset
   425
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   426
        glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   427
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   428
        glDisableClientState(GL_VERTEX_ARRAY);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   429
        glDisableClientState(GL_COLOR_ARRAY);
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   430
3407
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   431
        glColor4ub($FF, $FF, $FF, $FF); // must not be Tint() as color array seems to stay active and color reset is required
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   432
        glEnable(GL_TEXTURE_2D);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   433
    end;
1915
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   434
end;
c357f5b55320 patch by nemo:
unc0rr
parents: 1911
diff changeset
   435
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   436
procedure DrawWaves(Dir, dX, dY: LongInt; tnt: Byte);
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   437
var VertexBuffer, TextureBuffer: array [0..3] of TVertex2f;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   438
    lw, waves, shift: GLfloat;
2288
c01b8258918d Move water waves rendering to a separate procedure
unc0rr
parents: 2287
diff changeset
   439
begin
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   440
lw:= cScreenWidth / cScaleFactor;
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   441
waves:= lw * 2 / cWaveWidth;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   442
3407
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   443
Tint(LongInt(tnt) * WaterColorArray[2].r div 255 + 255 - tnt,
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   444
     LongInt(tnt) * WaterColorArray[2].g div 255 + 255 - tnt,
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   445
     LongInt(tnt) * WaterColorArray[2].b div 255 + 255 - tnt,
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   446
     255
3089
8ad00781be08 First go at water depth
palewolf
parents: 3045
diff changeset
   447
);
8ad00781be08 First go at water depth
palewolf
parents: 3045
diff changeset
   448
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   449
glBindTexture(GL_TEXTURE_2D, SpritesData[sprWater].Texture^.id);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   450
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   451
VertexBuffer[0].X:= -lw;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   452
VertexBuffer[0].Y:= cWaterLine + WorldDy + dY;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   453
VertexBuffer[1].X:= lw;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   454
VertexBuffer[1].Y:= VertexBuffer[0].Y;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   455
VertexBuffer[2].X:= lw;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   456
VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprWater].Height;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   457
VertexBuffer[3].X:= -lw;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   458
VertexBuffer[3].Y:= VertexBuffer[2].Y;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   459
2374
d584bb4b836e Fix water position when zooming
unc0rr
parents: 2373
diff changeset
   460
shift:= - lw / cWaveWidth;
2495
b6b9523e06bf Fix warning
unc0rr
parents: 2447
diff changeset
   461
TextureBuffer[0].X:= shift + (( - WorldDx + LongInt(RealTicks shr 6) * Dir + dX) mod cWaveWidth) / (cWaveWidth - 1);
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   462
TextureBuffer[0].Y:= 0;
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   463
TextureBuffer[1].X:= TextureBuffer[0].X + waves;
2447
08d623a494e6 Smaxx's updated german translation + texture gap fixes + updated room list
koda
parents: 2434
diff changeset
   464
TextureBuffer[1].Y:= TextureBuffer[0].Y;
08d623a494e6 Smaxx's updated german translation + texture gap fixes + updated room list
koda
parents: 2434
diff changeset
   465
TextureBuffer[2].X:= TextureBuffer[1].X;
2553
7d8d62a5566e Smaxx: fix water sprites rendering
unc0rr
parents: 2495
diff changeset
   466
TextureBuffer[2].Y:= SpritesData[sprWater].Texture^.ry;
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   467
TextureBuffer[3].X:= TextureBuffer[0].X;
2447
08d623a494e6 Smaxx's updated german translation + texture gap fixes + updated room list
koda
parents: 2434
diff changeset
   468
TextureBuffer[3].Y:= TextureBuffer[2].Y;
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   469
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   470
glEnableClientState(GL_VERTEX_ARRAY);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   471
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   472
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   473
glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   474
glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   475
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   476
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   477
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   478
glDisableClientState(GL_VERTEX_ARRAY);
3390
1d4926d10a9e Engine:
smxx
parents: 3381
diff changeset
   479
Tint($FF, $FF, $FF, $FF);
2292
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   480
87af4ad0ec98 New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents: 2290
diff changeset
   481
{for i:= -1 to cWaterSprCount do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   482
    DrawSprite(sprWater,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   483
        i * cWaveWidth + ((WorldDx + (RealTicks shr 6) * Dir + dX) mod cWaveWidth) - (cScreenWidth div 2),
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   484
        cWaterLine + WorldDy + dY,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   485
        0)}
2288
c01b8258918d Move water waves rendering to a separate procedure
unc0rr
parents: 2287
diff changeset
   486
end;
c01b8258918d Move water waves rendering to a separate procedure
unc0rr
parents: 2287
diff changeset
   487
3089
8ad00781be08 First go at water depth
palewolf
parents: 3045
diff changeset
   488
procedure DrawRepeated(spr, sprL, sprR: TSprite; Shift, OffsetY: LongInt);
2426
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
   489
var i, w, sw: LongInt;
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
   490
begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   491
    sw:= round(cScreenWidth / cScaleFactor);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   492
    if (SpritesData[sprL].Texture = nil) or (SpritesData[sprR].Texture = nil) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   493
    begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   494
        w:= SpritesData[spr].Width;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   495
        i:= Shift mod w;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   496
        if i > 0 then dec(i, w);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   497
        dec(i, w * (sw div w + 1));
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   498
        repeat
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   499
            DrawSprite(spr, i, WorldDy + LAND_HEIGHT + OffsetY - SpritesData[spr].Height, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   500
            inc(i, w)
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   501
        until i > sw
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   502
    end
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   503
    else
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   504
    begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   505
        w:= SpritesData[spr].Width;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   506
        dec(Shift, w div 2);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   507
        DrawSprite(spr, Shift, WorldDy + LAND_HEIGHT + OffsetY - SpritesData[spr].Height, 0);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   508
    
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   509
        i:= Shift - SpritesData[sprL].Width;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   510
        while i >= -sw - SpritesData[sprL].Width do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   511
        begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   512
            DrawSprite(sprL, i, WorldDy + LAND_HEIGHT + OffsetY - SpritesData[sprL].Height, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   513
            dec(i, SpritesData[sprL].Width);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   514
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   515
        
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   516
        i:= Shift + w;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   517
        while i <= sw do
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   518
        begin
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   519
            DrawSprite(sprR, i, WorldDy + LAND_HEIGHT + OffsetY - SpritesData[sprR].Height, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   520
            inc(i, SpritesData[sprR].Width)
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   521
        end
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   522
    end
2426
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
   523
end;
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
   524
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
   525
956
19003f7fc174 Get rid of unused Surface parameter
unc0rr
parents: 942
diff changeset
   526
procedure DrawWorld(Lag: LongInt);
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 351
diff changeset
   527
var i, t: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   528
    r: TSDL_Rect;
107
b08ce0293a51 - Many type fixes
unc0rr
parents: 97
diff changeset
   529
    tdx, tdy: Double;
175
d226d976d836 - Some improvements to volume control
unc0rr
parents: 174
diff changeset
   530
    grp: TCapGroup;
174
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   531
    s: string[15];
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2786
diff changeset
   532
    highlight: Boolean;
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   533
    offset, offsetX, offsetY, ScreenBottom: LongInt;
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   534
    scale: GLfloat;
3113
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   535
    VertexBuffer: array [0..3] of TVertex2f;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   536
begin
3444
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   537
if not isPaused then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   538
    begin
3444
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   539
    if ZoomValue < zoom then
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   540
        begin
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   541
        zoom:= zoom - 0.002 * Lag;
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   542
        if ZoomValue > zoom then zoom:= ZoomValue
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   543
        end else
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   544
    if ZoomValue > zoom then
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   545
        begin
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   546
        zoom:= zoom + 0.002 * Lag;
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   547
        if ZoomValue < zoom then zoom:= ZoomValue
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   548
        end
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   549
    end
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   550
else
9d501dc22f71 * no zooming when game is paused
sheepluva
parents: 3434
diff changeset
   551
    ZoomValue:= zoom;
2376
ece7b87f1334 Strip trailing spaces
nemo
parents: 2375
diff changeset
   552
770
0138f1b5a804 - Add alpha-channel to all sprites left
unc0rr
parents: 764
diff changeset
   553
// Sky
756
2b307457fd68 Respect alpha channel
unc0rr
parents: 755
diff changeset
   554
glClear(GL_COLOR_BUFFER_BIT);
777
86177328b094 Solve problem with crosshairs
unc0rr
parents: 775
diff changeset
   555
//glPushMatrix;
86177328b094 Solve problem with crosshairs
unc0rr
parents: 775
diff changeset
   556
//glScalef(1.0, 1.0, 1.0);
756
2b307457fd68 Respect alpha channel
unc0rr
parents: 755
diff changeset
   557
281
5b483aa9f2ab Pause support (mouse cursor is released when the game is paused)
unc0rr
parents: 244
diff changeset
   558
if not isPaused then MoveCamera;
162
4822f6face35 Ammo menu now works!
unc0rr
parents: 161
diff changeset
   559
1812
3d4692e825e7 'Reduce quality' patch by nemo
unc0rr
parents: 1807
diff changeset
   560
if not cReducedQuality then
3d4692e825e7 'Reduce quality' patch by nemo
unc0rr
parents: 1807
diff changeset
   561
    begin
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   562
    // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   563
    ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   564
    offsetY:= 10 * min(0, -145 - ScreenBottom);
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   565
    SkyOffset:= offsetY div 35 + cWaveHeight;
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   566
    HorizontOffset:= SkyOffset;
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   567
    if ScreenBottom > SkyOffset then
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   568
        HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   569
1812
3d4692e825e7 'Reduce quality' patch by nemo
unc0rr
parents: 1807
diff changeset
   570
    // background
3248
8d4c61f6f30c - Added SkyOffset, HorizontOffset as global vars
palewolf
parents: 3240
diff changeset
   571
    DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
8d4c61f6f30c - Added SkyOffset, HorizontOffset as global vars
palewolf
parents: 3240
diff changeset
   572
    DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   573
1812
3d4692e825e7 'Reduce quality' patch by nemo
unc0rr
parents: 1807
diff changeset
   574
    DrawVisualGears(0);
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   575
    
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   576
    // Waves
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   577
    DrawWater(255, SkyOffset); 
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   578
    DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 64);
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   579
    DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 48);
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   580
    DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 32);
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   581
    DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 24);
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   582
    end
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   583
else
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   584
    DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   585
762
5ecf042f6113 More sprites are visible
unc0rr
parents: 760
diff changeset
   586
DrawLand(WorldDx, WorldDy);
1911
6283bd8a960b use glVertexPointer to render water
unc0rr
parents: 1906
diff changeset
   587
3104
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   588
DrawWater(255, 0);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   589
1660
0eaa6cf36276 shutup tiyuri
unc0rr
parents: 1595
diff changeset
   590
// Attack bar
3483
54ff8cbabaa6 Engine:
smxx
parents: 3464
diff changeset
   591
// TODO: Add weapon offset
1660
0eaa6cf36276 shutup tiyuri
unc0rr
parents: 1595
diff changeset
   592
if CurrentTeam <> nil then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   593
    case AttackBar of
1660
0eaa6cf36276 shutup tiyuri
unc0rr
parents: 1595
diff changeset
   594
(*        1: begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   595
        r:= StuffPoz[sPowerBar];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   596
        {$WARNINGS OFF}
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   597
        r.w:= (CurrentHedgehog^.Gear^.Power * 256) div cPowerDivisor;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   598
        {$WARNINGS ON}
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   599
        DrawSpriteFromRect(r, cScreenWidth - 272, cScreenHeight - 48, 16, 0, Surface);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   600
        end;*)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   601
        2: with CurrentHedgehog^ do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   602
                begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   603
                tdx:= hwSign(Gear^.dX) * Sin(Gear^.Angle * Pi / cMaxAngle);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   604
                tdy:= - Cos(Gear^.Angle * Pi / cMaxAngle);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   605
                for i:= (Gear^.Power * 24) div cPowerDivisor downto 0 do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   606
                    DrawSprite(sprPower,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   607
                            hwRound(Gear^.X) + round(WorldDx + tdx * (24 + i * 2)) - 16,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   608
                            hwRound(Gear^.Y) + round(WorldDy + tdy * (24 + i * 2)) - 12,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   609
                            i)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   610
                end
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   611
        end;
1660
0eaa6cf36276 shutup tiyuri
unc0rr
parents: 1595
diff changeset
   612
2713
71250942e95b Palewolf's smoke traces for fire.
nemo
parents: 2712
diff changeset
   613
DrawVisualGears(1);
71250942e95b Palewolf's smoke traces for fire.
nemo
parents: 2712
diff changeset
   614
956
19003f7fc174 Get rid of unused Surface parameter
unc0rr
parents: 942
diff changeset
   615
DrawGears;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   616
2713
71250942e95b Palewolf's smoke traces for fire.
nemo
parents: 2712
diff changeset
   617
DrawVisualGears(2);
1045
ea195268734f Testing explosion particles implementation
unc0rr
parents: 1023
diff changeset
   618
3104
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   619
DrawWater(cWaterOpacity, 0);
2269
00f5704f5f39 add extra semi-opaque layer of water to discolour objects in the water.
nemo
parents: 2268
diff changeset
   620
5
0dafbd19a04c Show wind speed on bar
unc0rr
parents: 4
diff changeset
   621
// Waves
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   622
DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 12);
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   623
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   624
if not cReducedQuality then
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   625
    begin
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   626
    //DrawWater(cWaterOpacity, - offsetY div 40);
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   627
    DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   628
    DrawWater(cWaterOpacity, - offsetY div 20);
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   629
    DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
3265
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   630
    DrawWater(cWaterOpacity, - offsetY div 10);
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   631
    DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   632
    end
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   633
else
5fe62296fdea - Parallax effect for horizont when water is out of sight
palewolf
parents: 3249
diff changeset
   634
    DrawWaves(-1, 50, - (cWaveHeight shr 1), 0);
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   635
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   636
2288
c01b8258918d Move water waves rendering to a separate procedure
unc0rr
parents: 2287
diff changeset
   637
{$WARNINGS OFF}
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   638
// Target
3104
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   639
if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   640
    begin
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   641
    with PHedgehog(CurrentHedgehog)^ do
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   642
        begin
3110
c8d7c852e26a Engine:
smxx
parents: 3107
diff changeset
   643
        if (Ammo^[CurSlot, CurAmmo].AmmoType = amBee) then
c8d7c852e26a Engine:
smxx
parents: 3107
diff changeset
   644
            DrawRotatedF(sprTargetBee, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360)
c8d7c852e26a Engine:
smxx
parents: 3107
diff changeset
   645
        else
3104
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   646
            DrawRotatedF(sprTargetP, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360);
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   647
        end;
6cdc45b3b8a6 - Bee sprites for target and HH hand
palewolf
parents: 3093
diff changeset
   648
    end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   649
{$WARNINGS ON}
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   650
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   651
{$IFDEF IPHONEOS}
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   652
scale:= 1.5;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   653
{$ELSE}
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   654
scale:= 2.0;
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   655
{$ENDIF}
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   656
SetScale(scale);
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   657
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   658
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   659
// Turn time
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2786
diff changeset
   660
{$IFDEF IPHONEOS}
3025
01682ec58eb0 update project for ipad target
koda
parents: 2999
diff changeset
   661
offsetX:= cScreenHeight - 13;
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2786
diff changeset
   662
{$ELSE}
3025
01682ec58eb0 update project for ipad target
koda
parents: 2999
diff changeset
   663
offsetX:= 48;
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2786
diff changeset
   664
{$ENDIF}
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   665
offsetY:= cOffsetY;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   666
if TurnTimeLeft <> 0 then
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   667
   begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   668
   i:= Succ(Pred(TurnTimeLeft) div 1000);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   669
   if i>99 then t:= 112
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   670
      else if i>9 then t:= 96
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   671
                  else t:= 80;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   672
   DrawSprite(sprFrame, -(cScreenWidth shr 1) + t + offsetY, cScreenHeight - offsetX, 1);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   673
   while i > 0 do
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   674
         begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   675
         dec(t, 32);
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   676
         DrawSprite(sprBigDigit, -(cScreenWidth shr 1) + t + offsetY, cScreenHeight - offsetX, i mod 10);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   677
         i:= i div 10
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   678
         end;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   679
   DrawSprite(sprFrame, -(cScreenWidth shr 1) + t - 4 + offsetY, cScreenHeight - offsetX, 0);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   680
   end;
79
29b477319854 - New test map
unc0rr
parents: 75
diff changeset
   681
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   682
{$IFNDEF IPHONEOS}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   683
// Timetrial
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   684
if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   685
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   686
    if TimeTrialStopTime = 0 then i:= RealTicks - TimeTrialStartTime else i:= TimeTrialStopTime - TimeTrialStartTime;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   687
    t:= 272;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   688
    // right frame
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   689
    DrawSprite(sprFrame, -cScreenWidth div 2 + t, 8, 1);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   690
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   691
    // 1 ms
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   692
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10); 
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   693
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   694
    i:= i div 10;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   695
    // 10 ms
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   696
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   697
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   698
    i:= i div 10;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   699
    // 100 ms
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   700
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   701
    dec(t, 16);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   702
    // Point
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   703
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, 11);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   704
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   705
    i:= i div 10;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   706
    // 1 s
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   707
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   708
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   709
    i:= i div 10;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   710
    // 10s
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   711
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 6);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   712
    dec(t, 16);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   713
    // Point
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   714
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, 10);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   715
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   716
    i:= i div 6;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   717
    // 1 m
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   718
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   719
    dec(t, 32);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   720
    i:= i div 10;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   721
    // 10 m
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   722
    DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   723
    // left frame
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   724
    DrawSprite(sprFrame, -cScreenWidth div 2 + t - 4, 8, 0);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   725
    end;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   726
{$ENDIF}
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   727
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   728
// Captions
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   729
{$IFDEF IPHONEOS}
2803
1f446fc5c8ec allow to compile engine as library with HWLIBRARY symbol
koda
parents: 2786
diff changeset
   730
offset:= 40;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   731
{$ELSE}
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   732
if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then offset:= 48
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   733
else offset:= 8;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   734
{$ENDIF}
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
   735
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   736
    for grp:= Low(TCapGroup) to High(TCapGroup) do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   737
        with Captions[grp] do
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   738
            if Tex <> nil then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   739
            begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   740
                DrawCentered(0, offset, Tex);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   741
                inc(offset, Tex^.h + 2);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   742
                if EndTime <= RealTicks then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   743
                begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   744
                    FreeTexture(Tex);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   745
                    Tex:= nil;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   746
                    EndTime:= 0
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   747
                end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   748
            end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   749
47
8daf1ee0b9a3 Show team health bars, without sorting yet
unc0rr
parents: 39
diff changeset
   750
// Teams Healths
547
b81a055f2d06 Convert teams list to array
unc0rr
parents: 526
diff changeset
   751
for t:= 0 to Pred(TeamsCount) do
b81a055f2d06 Convert teams list to array
unc0rr
parents: 526
diff changeset
   752
   with TeamsArray[t]^ do
47
8daf1ee0b9a3 Show team health bars, without sorting yet
unc0rr
parents: 39
diff changeset
   753
      begin
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   754
      highlight:= bShowFinger and (CurrentTeam = TeamsArray[t]) and ((RealTicks mod 1000) < 500);
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   755
      
2747
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   756
      if highlight then
3445
1ce844170014 Engine:
smxx
parents: 3444
diff changeset
   757
         Tint(Clan^.Color);
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   758
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   759
      // draw name
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   760
      DrawTexture(-NameTagTex^.w - 16, cScreenHeight + DrawHealthY, NameTagTex);
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   761
      
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   762
      // draw flag
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   763
      DrawTexture(-14, cScreenHeight + DrawHealthY, FlagTex);
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   764
      
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   765
      // draw health bar
690
e9d35e319328 Finally, get rid of large stupid StoreSurface
unc0rr
parents: 689
diff changeset
   766
      r.x:= 0;
e9d35e319328 Finally, get rid of large stupid StoreSurface
unc0rr
parents: 689
diff changeset
   767
      r.y:= 0;
547
b81a055f2d06 Convert teams list to array
unc0rr
parents: 526
diff changeset
   768
      r.w:= 2 + TeamHealthBarWidth;
764
7513452b1d51 Now game looks almost like it did before switching to OpenGL
unc0rr
parents: 762
diff changeset
   769
      r.h:= HealthTex^.h;
2747
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   770
      DrawFromRect(14, cScreenHeight + DrawHealthY, @r, HealthTex);
690
e9d35e319328 Finally, get rid of large stupid StoreSurface
unc0rr
parents: 689
diff changeset
   771
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   772
      // draw health bar's right border
83
207c85fbef51 - First hedgehog in team has first turn in team
unc0rr
parents: 82
diff changeset
   773
      inc(r.x, cTeamHealthWidth + 2);
207c85fbef51 - First hedgehog in team has first turn in team
unc0rr
parents: 82
diff changeset
   774
      r.w:= 3;
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   775
      DrawFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY, @r, HealthTex);
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   776
      // if highlighted, draw flag and other contents again to keep their colors
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   777
      // this approach should be faster than drawing all borders one by one tinted or not
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   778
      if highlight then
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   779
         begin
3390
1d4926d10a9e Engine:
smxx
parents: 3381
diff changeset
   780
         Tint($FF, $FF, $FF, $FF);
690
e9d35e319328 Finally, get rid of large stupid StoreSurface
unc0rr
parents: 689
diff changeset
   781
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   782
         // draw name
2747
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   783
         r.x:= 2;
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   784
         r.y:= 2;
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   785
         r.w:= NameTagTex^.w - 4;
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   786
         r.h:= NameTagTex^.h - 4;
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   787
         DrawFromRect(-NameTagTex^.w - 14, cScreenHeight + DrawHealthY + 2, @r, NameTagTex);
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   788
         // draw flag
2747
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   789
         r.w:= 22;
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   790
         r.h:= 15;
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   791
         DrawFromRect(-12, cScreenHeight + DrawHealthY + 2, @r, FlagTex);
2839
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   792
         // draw health bar
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   793
         r.w:= TeamHealthBarWidth + 1;
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   794
         r.h:= HealthTex^.h - 4;
95977f876122 Engine:
smxx
parents: 2803
diff changeset
   795
         DrawFromRect(16, cScreenHeight + DrawHealthY + 2, @r, HealthTex);
2747
7889a3a9724f Server:
smxx
parents: 2735
diff changeset
   796
         end;
47
8daf1ee0b9a3 Show team health bars, without sorting yet
unc0rr
parents: 39
diff changeset
   797
      end;
8daf1ee0b9a3 Show team health bars, without sorting yet
unc0rr
parents: 39
diff changeset
   798
5
0dafbd19a04c Show wind speed on bar
unc0rr
parents: 4
diff changeset
   799
// Lag alert
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   800
if isInLag then DrawSprite(sprLag, 32 - (cScreenWidth shr 1), 32, (RealTicks shr 7) mod 12);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   801
5
0dafbd19a04c Show wind speed on bar
unc0rr
parents: 4
diff changeset
   802
// Wind bar
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   803
{$IFDEF IPHONEOS}
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   804
    offsetX:= cScreenHeight - 13;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   805
    offsetY:= (cScreenWidth shr 1) + 74;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   806
{$ELSE}
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   807
    offsetX:= 30;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   808
    offsetY:= 180;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   809
{$ENDIF}
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   810
    DrawSprite(sprWindBar, (cScreenWidth shr 1) - offsetY, cScreenHeight - offsetX, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   811
    if WindBarWidth > 0 then
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   812
    begin
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   813
        {$WARNINGS OFF}
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   814
        r.x:= 8 - (RealTicks shr 6) mod 8;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   815
        {$WARNINGS ON}
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   816
        r.y:= 0;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   817
        r.w:= WindBarWidth;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   818
        r.h:= 13;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   819
        DrawSpriteFromRect(sprWindR, r, (cScreenWidth shr 1) - offsetY + 77, cScreenHeight - offsetX + 2, 13, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   820
    end
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   821
    else
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   822
        if WindBarWidth < 0 then
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   823
        begin
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   824
            {$WARNINGS OFF}
3407
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   825
            r.x:= (Longword(WindBarWidth) + RealTicks shr 6) mod 8;
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   826
            {$WARNINGS ON}
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   827
            r.y:= 0;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   828
            r.w:= - WindBarWidth;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   829
            r.h:= 13;
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   830
            DrawSpriteFromRect(sprWindL, r, (cScreenWidth shr 1) - offsetY + 74 + WindBarWidth, cScreenHeight - offsetX + 2, 13, 0);
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3395
diff changeset
   831
        end;
5
0dafbd19a04c Show wind speed on bar
unc0rr
parents: 4
diff changeset
   832
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   833
// AmmoMenu
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
   834
if (AMxShift < AMWidth) or bShowAmmoMenu then ShowAmmoMenu;
161
d8870bbf960e - AmmoMenu
unc0rr
parents: 154
diff changeset
   835
2287
e34b5363ae91 Better handle pointing with mouse cursor on zoom
unc0rr
parents: 2285
diff changeset
   836
// Cursor
e34b5363ae91 Better handle pointing with mouse cursor on zoom
unc0rr
parents: 2285
diff changeset
   837
if isCursorVisible and bShowAmmoMenu then
e34b5363ae91 Better handle pointing with mouse cursor on zoom
unc0rr
parents: 2285
diff changeset
   838
   DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8);
942
b41af014d85e Stub for chat implementation
unc0rr
parents: 883
diff changeset
   839
2287
e34b5363ae91 Better handle pointing with mouse cursor on zoom
unc0rr
parents: 2285
diff changeset
   840
DrawChat;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   841
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   842
if fastUntilLag then DrawCentered(0, (cScreenHeight shr 1), SyncTexture);
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
   843
if isPaused then DrawCentered(0, (cScreenHeight shr 1), PauseTexture);
281
5b483aa9f2ab Pause support (mouse cursor is released when the game is paused)
unc0rr
parents: 244
diff changeset
   844
3304
8690a3aa93b5 Engine:
smxx
parents: 3265
diff changeset
   845
if not isFirstFrame and ((missionTimer <> 0) or isPaused or fastUntilLag or (GameState = gsConfirm)) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   846
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   847
    if missionTimer > 0 then dec(missionTimer, Lag);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   848
    if missionTimer < 0 then missionTimer:= 0; // avoid subtracting below 0
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   849
    if missionTex <> nil then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   850
        DrawCentered(0, min((cScreenHeight shr 1) + 100, cScreenHeight - 48 - missionTex^.h), missionTex);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   851
    end;
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
   852
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   853
// fps
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   854
{$IFDEF IPHONEOS}
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   855
offsetX:= 8;
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   856
{$ELSE}
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   857
offsetX:= 10;
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   858
{$ENDIF}
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   859
offsetY:= cOffsetY;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   860
inc(Frames);
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   861
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   862
if cShowFPS or (GameType = gmtDemo) then inc(CountTicks, Lag);
2851
a9a5ce1d9f23 oops. forgot the free. also drop the speed check.
nemo
parents: 2850
diff changeset
   863
if (GameType = gmtDemo) and (CountTicks >= 1000) then
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   864
   begin
3407
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   865
   i:=GameTicks div 1000;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   866
   t:= i mod 60;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   867
   s:= inttostr(t);
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   868
   if t < 10 then s:= '0' + s;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   869
   i:= i div 60;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   870
   t:= i mod 60;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   871
   s:= inttostr(t) + ':' + s;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   872
   if t < 10 then s:= '0' + s;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   873
   s:= inttostr(i div 60) + ':' + s;
dcc129c4352e Engine:
smxx
parents: 3405
diff changeset
   874
   
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   875
   if timeTexture <> nil then
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   876
        FreeTexture(timeTexture);
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   877
    timeTexture:= nil;
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   878
    
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   879
   tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels);
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   880
   tmpSurface:= doSurfaceConversion(tmpSurface);
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   881
   timeTexture:= Surface2Tex(tmpSurface, false);
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   882
   SDL_FreeSurface(tmpSurface)
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   883
   end;
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   884
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   885
if timeTexture <> nil then
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   886
   DrawTexture((cScreenWidth shr 1) - 20 - timeTexture^.w - offsetY, offsetX + timeTexture^.h+5, timeTexture);
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   887
298
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   888
if cShowFPS then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   889
   begin
298
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   890
   if CountTicks >= 1000 then
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   891
      begin
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   892
      FPS:= Frames;
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   893
      Frames:= 0;
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   894
      CountTicks:= 0;
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   895
      s:= inttostr(FPS) + ' fps';
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   896
      if fpsTexture <> nil then
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   897
        FreeTexture(fpsTexture);
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   898
    fpsTexture:= nil;
2665
50b4e544c163 complete transition of longword->sdl_color for TTF bindings
koda
parents: 2630
diff changeset
   899
      tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels);
2670
1b327b7515ed regression, powerpc colors working again
koda
parents: 2665
diff changeset
   900
      tmpSurface:= doSurfaceConversion(tmpSurface);
2290
bf87ca44782e Selectively enable clamping - seeing if this helps avoid weird flake problems while still fixing vertical lines in waves and sky
nemo
parents: 2288
diff changeset
   901
      fpsTexture:= Surface2Tex(tmpSurface, false);
759
8da05b316d81 Enable back fps counter
unc0rr
parents: 757
diff changeset
   902
      SDL_FreeSurface(tmpSurface)
298
112e61bd2cc2 Render FPS value to its own surface one time a second
unc0rr
parents: 295
diff changeset
   903
      end;
759
8da05b316d81 Enable back fps counter
unc0rr
parents: 757
diff changeset
   904
   if fpsTexture <> nil then
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
   905
      DrawTexture((cScreenWidth shr 1) - 60 - offsetY, offsetX, fpsTexture);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   906
   end;
174
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   907
2850
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   908
if CountTicks >= 1000 then CountTicks:= 0;
f6f8db825ce7 A little clock for convenience in finding things in demos
nemo
parents: 2839
diff changeset
   909
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   910
// lag warning (?)
174
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   911
inc(SoundTimerTicks, Lag);
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   912
if SoundTimerTicks >= 50 then
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   913
   begin
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   914
   SoundTimerTicks:= 0;
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   915
   if cVolumeDelta <> 0 then
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   916
      begin
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   917
      str(ChangeVolume(cVolumeDelta), s);
2619
bc2786a00fb8 fix wrong ttf blending in ppc
koda
parents: 2609
diff changeset
   918
      AddCaption(Format(trmsg[sidVolume], s), cWhiteColor, capgrpVolume)
174
0b2c5b22f644 Changeable volume
unc0rr
parents: 165
diff changeset
   919
      end
756
2b307457fd68 Respect alpha channel
unc0rr
parents: 755
diff changeset
   920
   end;
2b307457fd68 Respect alpha channel
unc0rr
parents: 755
diff changeset
   921
2724
601158aaa201 redo LANDSCAPE MODE in a saner way with lots of fps
koda
parents: 2716
diff changeset
   922
if GameState = gsConfirm then
3025
01682ec58eb0 update project for ipad target
koda
parents: 2999
diff changeset
   923
    DrawCentered(0, (cScreenHeight shr 1), ConfirmTexture);
2161
0c8634241fa4 Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents: 2152
diff changeset
   924
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   925
if ScreenFade <> sfNone then
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   926
    begin
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   927
    if not isFirstFrame then
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   928
        case ScreenFade of
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   929
            sfToBlack, sfToWhite:     if ScreenFadeValue + Lag * ScreenFadeSpeed < sfMax then
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   930
                                          inc(ScreenFadeValue, Lag * ScreenFadeSpeed)
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   931
                                      else
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   932
                                          ScreenFadeValue:= sfMax;
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   933
            sfFromBlack, sfFromWhite: if ScreenFadeValue - Lag * ScreenFadeSpeed > 0 then
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   934
                                          dec(ScreenFadeValue, Lag * ScreenFadeSpeed)
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   935
                                      else
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   936
                                          ScreenFadeValue:= 0;
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   937
            end;
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   938
    if ScreenFade <> sfNone then
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   939
        begin
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   940
        case ScreenFade of
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   941
            sfToBlack, sfFromBlack: Tint(0, 0, 0, ScreenFadeValue * 255 div 1000);
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   942
            sfToWhite, sfFromWhite: Tint($FF, $FF, $FF, ScreenFadeValue * 255 div 1000);
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   943
            end;
3113
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   944
        
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   945
        VertexBuffer[0].X:= -cScreenWidth;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   946
        VertexBuffer[0].Y:= cScreenHeight;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   947
        VertexBuffer[1].X:= -cScreenWidth;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   948
        VertexBuffer[1].Y:= 0;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   949
        VertexBuffer[2].X:= cScreenWidth;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   950
        VertexBuffer[2].Y:= 0;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   951
        VertexBuffer[3].X:= cScreenWidth;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   952
        VertexBuffer[3].Y:= cScreenHeight;
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   953
         
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   954
        glDisable(GL_TEXTURE_2D);
3113
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   955
        glEnableClientState(GL_VERTEX_ARRAY);
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   956
        glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   957
        glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
2829ea0dd47c * port fadeout to opengles
koda
parents: 3110
diff changeset
   958
        glDisableClientState(GL_VERTEX_ARRAY);
3376
faee68a28b82 Engine:
smxx
parents: 3304
diff changeset
   959
        glEnable(GL_TEXTURE_2D);
3390
1d4926d10a9e Engine:
smxx
parents: 3381
diff changeset
   960
        Tint($FF, $FF, $FF, $FF);
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   961
        if not isFirstFrame and ((ScreenFadeValue = 0) or (ScreenFadeValue = sfMax)) then ScreenFade:= sfNone
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   962
        end
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   963
    end;
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   964
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   965
SetScale(zoom);
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   966
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   967
// Cursor
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   968
if isCursorVisible then
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   969
   begin
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   970
   if not bShowAmmoMenu then
3204
65222383bf7d Engine:
smxx
parents: 3165
diff changeset
   971
     begin
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   972
     with CurrentHedgehog^ do
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   973
       if (Gear^.State and gstHHChooseTarget) <> 0 then
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   974
         begin
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   975
         i:= Ammo^[CurSlot, CurAmmo].Pos;
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   976
         with Ammoz[Ammo^[CurSlot, CurAmmo].AmmoType] do
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   977
           if PosCount > 1 then
3204
65222383bf7d Engine:
smxx
parents: 3165
diff changeset
   978
             DrawSprite(PosSprite, CursorPoint.X - (SpritesData[PosSprite].Width shr 1), cScreenHeight - CursorPoint.Y - (SpritesData[PosSprite].Height shr 1),i);
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   979
         end;
3204
65222383bf7d Engine:
smxx
parents: 3165
diff changeset
   980
     DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8)
65222383bf7d Engine:
smxx
parents: 3165
diff changeset
   981
     end
3123
b0a02930a1dc Engine:
smxx
parents: 3113
diff changeset
   982
   end;
3107
1fa539758c10 Engine:
smxx
parents: 3104
diff changeset
   983
isFirstFrame:= false
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   984
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   985
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
   986
procedure AddCaption(s: shortstring; Color: Longword; Group: TCapGroup);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   987
begin
2142
48ed98cfd119 Make code suck less
unc0rr
parents: 2139
diff changeset
   988
//if Group in [capgrpGameState] then WriteLnToConsole(s);
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   989
    if Captions[Group].Tex <> nil then 
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   990
        FreeTexture(Captions[Group].Tex);
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   991
    Captions[Group].Tex:= nil;
2142
48ed98cfd119 Make code suck less
unc0rr
parents: 2139
diff changeset
   992
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   993
    Captions[Group].Tex:= RenderStringTex(s, Color, fntBig);
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   994
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   995
    case Group of
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   996
        capgrpGameState: Captions[Group].EndTime:= RealTicks + 2200
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   997
    else
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
   998
        Captions[Group].EndTime:= RealTicks + 1400 + LongWord(Captions[Group].Tex^.w) * 3;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
   999
    end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1000
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1001
79
29b477319854 - New test map
unc0rr
parents: 75
diff changeset
  1002
procedure MoveCamera;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1003
const PrevSentPointTime: LongWord = 0;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2426
diff changeset
  1004
var EdgesDist,  wdy: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1005
begin
2970
011075f93746 Let's try this too (override following remote if in ammo menu)
nemo
parents: 2959
diff changeset
  1006
if (not (CurrentTeam^.ExtDriven and isCursorVisible and not bShowAmmoMenu)) and cHasFocus then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1007
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1008
    SDL_GetMouseState(@CursorPoint.X, @CursorPoint.Y);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1009
    CursorPoint.X:= CursorPoint.X - (cScreenWidth shr 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1010
    CursorPoint.Y:= cScreenHeight - CursorPoint.Y;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1011
    end;
678
5cf90dbcb309 Move map view also when we have no window focus
unc0rr
parents: 602
diff changeset
  1012
2762
2fbc8d35eb52 Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents: 2747
diff changeset
  1013
if (not PlacingHogs) and (FollowGear <> nil) and (not isCursorVisible) and (not fastUntilLag) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1014
    if abs(CursorPoint.X - prevPoint.X) + abs(CursorPoint.Y - prevpoint.Y) > 4 then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1015
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1016
        FollowGear:= nil;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1017
        prevPoint:= CursorPoint;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1018
        exit
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1019
        end
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1020
        else begin
2970
011075f93746 Let's try this too (override following remote if in ammo menu)
nemo
parents: 2959
diff changeset
  1021
        CursorPoint.X:= (prevPoint.X * 7 + hwRound(FollowGear^.X) + hwSign(FollowGear^.dX) * 100 + WorldDx) div 8;
011075f93746 Let's try this too (override following remote if in ammo menu)
nemo
parents: 2959
diff changeset
  1022
        CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight - (hwRound(FollowGear^.Y) + WorldDy)) div 8;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1023
        end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1024
2375
99f05a01a6a3 Don't allow to look too deep
unc0rr
parents: 2374
diff changeset
  1025
wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine - cVisibleWater;
99f05a01a6a3 Don't allow to look too deep
unc0rr
parents: 2374
diff changeset
  1026
if WorldDy < wdy then WorldDy:= wdy;
99f05a01a6a3 Don't allow to look too deep
unc0rr
parents: 2374
diff changeset
  1027
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1028
if ((CursorPoint.X = prevPoint.X) and (CursorPoint.Y = prevpoint.Y)) then exit;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1029
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1030
if AMxShift < AMWidth then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1031
    begin
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
  1032
{$IFDEF IPHONEOS}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1033
    if CursorPoint.X < cScreenWidth div 2 + AMxShift - AMWidth then CursorPoint.X:= cScreenWidth div 2 + AMxShift - AMWidth;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1034
    if CursorPoint.X > cScreenWidth div 2 + AMxShift - AMxOffset then CursorPoint.X:= cScreenWidth div 2 + AMxShift - AMxOffset;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1035
    if CursorPoint.Y < cScreenHeight - AMyOffset - SlotsNum * AMSlotSize then CursorPoint.Y:= cScreenHeight - AMyOffset - SlotsNum * AMSlotSize;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1036
    if CursorPoint.Y > cScreenHeight - AMyOffset then CursorPoint.Y:= cScreenHeight - AMyOffset;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
  1037
{$ELSE}
3434
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1038
    if CursorPoint.X < cScreenWidth div 2 + AMxShift - AMWidth + AMSlotSize then CursorPoint.X:= cScreenWidth div 2 + AMxShift - AMWidth + AMSlotSize;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1039
    if CursorPoint.X > cScreenWidth div 2 + AMxShift - AMxOffset then CursorPoint.X:= cScreenWidth div 2 + AMxShift - AMxOffset;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1040
    if CursorPoint.Y > AMyOffset + (SlotsNum + 1) * AMSlotSize then CursorPoint.Y:= AMyOffset + (SlotsNum + 1) * AMSlotSize;
6af73e7f2438 Henek makes AmmoMenu more flexible
nemo
parents: 3407
diff changeset
  1041
    if CursorPoint.Y < AMyOffset + AMSlotSize then CursorPoint.Y:= AMyOffset + AMSlotSize;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
  1042
{$ENDIF}
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1043
    prevPoint:= CursorPoint;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1044
    if cHasFocus then SDL_WarpMouse(CursorPoint.X + cScreenWidth div 2, cScreenHeight - CursorPoint.Y);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1045
    exit
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1046
    end;
162
4822f6face35 Ammo menu now works!
unc0rr
parents: 161
diff changeset
  1047
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1048
if isCursorVisible then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1049
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1050
    if (not CurrentTeam^.ExtDriven) and (GameTicks >= PrevSentPointTime + cSendCursorPosTime) then
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1051
        begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1052
        SendIPCXY('P', CursorPoint.X - WorldDx, cScreenHeight - CursorPoint.Y - WorldDy);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1053
        PrevSentPointTime:= GameTicks
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1054
        end;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1055
    end;
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 308
diff changeset
  1056
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1057
if isCursorVisible or (FollowGear <> nil) then
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1058
   begin
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1059
   if isCursorVisible then EdgesDist:= cCursorEdgesDist
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1060
                      else EdgesDist:= cGearScrEdgesDist;
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1061
   if CursorPoint.X < - cScreenWidth div 2 + EdgesDist then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1062
         begin
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1063
         WorldDx:= WorldDx - CursorPoint.X - cScreenWidth div 2 + EdgesDist;
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1064
         CursorPoint.X:= - cScreenWidth div 2 + EdgesDist
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1065
         end else
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1066
      if CursorPoint.X > cScreenWidth div 2 - EdgesDist then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1067
         begin
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1068
         WorldDx:= WorldDx - CursorPoint.X + cScreenWidth div 2 - EdgesDist;
2198
6a3d40acba8b Bring back smoothness for camera movement
unc0rr
parents: 2197
diff changeset
  1069
         CursorPoint.X:= cScreenWidth div 2 - EdgesDist
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1070
         end;
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1071
      if CursorPoint.Y < EdgesDist then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1072
         begin
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1073
         WorldDy:= WorldDy + CursorPoint.Y - EdgesDist;
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1074
         CursorPoint.Y:= EdgesDist
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1075
         end else
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1076
      if CursorPoint.Y > cScreenHeight - EdgesDist then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1077
         begin
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1078
         WorldDy:= WorldDy + CursorPoint.Y - cScreenHeight + EdgesDist;
284
22ce72bd637f Let mouse cursor be closer to screen edges
unc0rr
parents: 282
diff changeset
  1079
         CursorPoint.Y:= cScreenHeight - EdgesDist
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1080
         end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1081
   end else
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 298
diff changeset
  1082
   if cHasFocus then
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 298
diff changeset
  1083
      begin
70
82d93eeecebe - Many AI improvements
unc0rr
parents: 69
diff changeset
  1084
      WorldDx:= WorldDx - CursorPoint.X + prevPoint.X;
2197
a02adcdaa939 Some work on camera
unc0rr
parents: 2178
diff changeset
  1085
      WorldDy:= WorldDy + CursorPoint.Y - prevPoint.Y;
2162
2bce91404d49 - Implement zoom-in and zoom-out
unc0rr
parents: 2161
diff changeset
  1086
      CursorPoint.X:= 0;
2bce91404d49 - Implement zoom-in and zoom-out
unc0rr
parents: 2161
diff changeset
  1087
      CursorPoint.Y:= cScreenHeight div 2;
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 298
diff changeset
  1088
      end;
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 308
diff changeset
  1089
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1090
prevPoint:= CursorPoint;
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2553
diff changeset
  1091
if cHasFocus then SDL_WarpMouse(CursorPoint.X + (cScreenWidth shr 1), cScreenHeight - CursorPoint.Y);
1760
55a1edd97911 Fix nemo's large land patch
unc0rr
parents: 1753
diff changeset
  1092
if WorldDy > LAND_HEIGHT + 1024 then WorldDy:= LAND_HEIGHT + 1024;
2375
99f05a01a6a3 Don't allow to look too deep
unc0rr
parents: 2374
diff changeset
  1093
if WorldDy < wdy then WorldDy:= wdy;
2426
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
  1094
if WorldDx < - LAND_WIDTH - 1024 then WorldDx:= - LAND_WIDTH - 1024;
9d674c5c828d - Fix camera area with different zoom levels
unc0rr
parents: 2413
diff changeset
  1095
if WorldDx > 1024 then WorldDx:= 1024;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1096
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1097
2905
f3c79f7193a9 Engine:
smxx
parents: 2904
diff changeset
  1098
procedure ShowMission(caption, subcaption, text: ansistring; icon, time : LongInt);
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1099
var r: TSDL_Rect;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1100
begin
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1101
r.w:= 32;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1102
r.h:= 32;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1103
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1104
if time = 0 then time:= 5000;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1105
missionTimer:= time;
3513
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
  1106
if missionTex <> nil then 
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
  1107
    FreeTexture(missionTex);
f589230fa21b now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive)
koda
parents: 3483
diff changeset
  1108
missionTex:= nil;
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1109
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1110
if icon > -1 then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1111
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1112
    r.x:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1113
    r.y:= icon * 32;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1114
    missionTex:= RenderHelpWindow(caption, subcaption, text, '', 0, MissionIcons, @r)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1115
    end
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1116
else
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1117
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1118
    r.x:= ((-icon - 1) shr 5) * 32;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1119
    r.y:= ((-icon - 1) mod 32) * 32;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1120
    missionTex:= RenderHelpWindow(caption, subcaption, text, '', 0, SpritesData[sprAMAmmos].Surface, @r)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1121
    end;
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1122
end;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1123
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1124
procedure HideMission;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1125
begin
3045
41732f986b4f Clean Augean stables
unc0rr
parents: 3038
diff changeset
  1126
    missionTimer:= 0;
41732f986b4f Clean Augean stables
unc0rr
parents: 3038
diff changeset
  1127
    if missionTex <> nil then FreeTexture(missionTex);
2786
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1128
end;
85f6425a4d74 Engine:
smxx
parents: 2765
diff changeset
  1129
3032
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1130
procedure ShakeCamera(amount: LongWord);
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1131
begin
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1132
    amount:= max(1, amount);
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1133
    WorldDx:= WorldDx - amount + LongInt(getRandom(1 + amount * 2));
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1134
    WorldDy:= WorldDy - amount + LongInt(getRandom(1 + amount * 2));
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1135
end;
9c190d3c165b Insert commit message here
palewolf
parents: 3025
diff changeset
  1136
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 3032
diff changeset
  1137
procedure initModule;
2699
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
  1138
begin
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1139
    fpsTexture:= nil;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1140
    FollowGear:= nil;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1141
    WindBarWidth:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1142
    bShowAmmoMenu:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1143
    bSelected:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1144
    bShowFinger:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1145
    Frames:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1146
    WorldDx:= -512;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1147
    WorldDy:= -256;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
  1148
    
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1149
    FPS:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1150
    CountTicks:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1151
    SoundTimerTicks:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1152
    prevPoint.X:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1153
    prevPoint.Y:= 0;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1154
    missionTimer:= 0;
3240
smxx
parents: 3236
diff changeset
  1155
    missionTex:= nil;
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3445
diff changeset
  1156
    cOffsetY:= 0;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1157
    
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2931
diff changeset
  1158
    FillChar(Captions, sizeof(Captions), 0)
2699
249adefa9c1c replace initialization/finalization statements with custom init functions
koda
parents: 2682
diff changeset
  1159
end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1160
3038
4e48c276a468 In pascal unit is a namespace
unc0rr
parents: 3032
diff changeset
  1161
procedure freeModule;
2716
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
  1162
begin
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
  1163
end;
b9ca1bfca24f complete the replacement of init/free wrappers for every unit
koda
parents: 2713
diff changeset
  1164
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
  1165
end.