author  lovelacer 
Tue, 17 Jan 2012 09:01:31 0500  
changeset 6580  6155187bf599 
parent 6492  71db3c0daa0a 
child 6601  5965e2927b3d 
permissions  rwrr 
4  1 
(* 
1066  2 
* Hedgewars, a free turn based strategy game 
4976  3 
* Copyright (c) 20042011 Andrey Korotaev <unC0Rr@gmail.com> 
4  4 
* 
183  5 
* This program is free software; you can redistribute it and/or modify 
6 
* it under the terms of the GNU General Public License as published by 

7 
* the Free Software Foundation; version 2 of the License 

4  8 
* 
183  9 
* This program is distributed in the hope that it will be useful, 
10 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 

11 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

12 
* GNU General Public License for more details. 

4  13 
* 
183  14 
* You should have received a copy of the GNU General Public License 
15 
* along with this program; if not, write to the Free Software 

16 
* Foundation, Inc., 59 Temple Place  Suite 330, Boston, MA 021111307, USA 

4  17 
*) 
18 

2630  19 
{$INCLUDE "options.inc"} 
4850  20 
{$IF GLunit = GL}{$DEFINE GLunit:=GL,GLext}{$ENDIF} 
2630  21 

4  22 
unit uWorld; 
23 
interface 

4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4248
diff
changeset

24 
uses SDLh, uGears, uConsts, uFloat, uRandom, uTypes; 
3697  25 

3038  26 
procedure initModule; 
27 
procedure freeModule; 

2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

28 

b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

29 
procedure InitWorld; 
6394
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

30 
procedure ResetWorldTex; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

31 

2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

32 
procedure DrawWorld(Lag: LongInt); 
3692  33 
procedure DrawWorldStereo(Lag: LongInt; RM: TRenderMode); 
2905  34 
procedure ShowMission(caption, subcaption, text: ansistring; icon, time : LongInt); 
2786  35 
procedure HideMission; 
6011
519f8a58c021
Fix a bunch of warnings (also improves speed a bit in 32 bit code)
unC0Rr
parents:
5862
diff
changeset

36 
procedure ShakeCamera(amount: LongInt); 
5682
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

37 
procedure InitCameraBorders; 
3638
33ee433749ba
touch overlay reworked, improvements to zoom and confirmation
koda
parents:
3629
diff
changeset

38 
procedure MoveCamera; 
5521  39 
procedure onFocusStateChanged; 
4  40 

41 
implementation 

4359  42 
uses 
43 
uStore, 

44 
uMisc, 

45 
uIO, 

46 
uLocale, 

47 
uSound, 

48 
uAmmos, 

49 
uVisualGears, 

50 
uChat, 

51 
uLandTexture, 

52 
GLunit, 

4374  53 
uVariables, 
4375  54 
uUtils, 
4378  55 
uTextures, 
4380  56 
uRender, 
5191
c7000a6b397b
 Implement a thin wrapper over real cursor, which eliminates need in SDL_WarpMouse outside game window
unc0rr
parents:
5149
diff
changeset

57 
uCaptions, 
5521  58 
uCursor, 
6016
85410eef7ba4
disable the followgear vertical offset for small screen devices
koda
parents:
6011
diff
changeset

59 
uCommands, 
85410eef7ba4
disable the followgear vertical offset for small screen devices
koda
parents:
6011
diff
changeset

60 
uMobile 
4359  61 
; 
4  62 

2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

63 
var cWaveWidth, cWaveHeight: LongInt; 
3434  64 
AMSlotSize, AMxOffset, AMyOffset, AMWidth, AMxShift, SlotsNum: LongInt; 
2699
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

65 
tmpSurface: PSDL_Surface; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

66 
fpsTexture: PTexture; 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

67 
timeTexture: PTexture; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

68 
FPS: Longword; 
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

69 
CountTicks: Longword; 
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

70 
SoundTimerTicks: Longword; 
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

71 
prevPoint: TPoint; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

72 
amSel: TAmmoType = amNothing; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

73 
missionTex: PTexture; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

74 
missionTimer: LongInt; 
4850  75 
stereoDepth: GLfloat; 
3692  76 

4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

77 
const cStereo_Sky = 0.0500; 
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

78 
cStereo_Horizon = 0.0250; 
6302
db8bdbb34e03
Spread flakes out over 5 layers now (far back, mid distance, just behind land, just in front of lands and hog, near distance). Spread clouds out over 3 layers (far back, mid distance, just behind land). Add a flatten clouds option, use
nemo
parents:
6296
diff
changeset

79 
cStereo_MidDistance = 0.0175; 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

80 
cStereo_Water_distant = 0.0125; 
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

81 
cStereo_Land = 0.0075; 
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

82 
cStereo_Water_near = 0.0025; 
6289
95ffd59d0f4a
Increase rarity of near flakes (don't want them intruding in game much). Also fix stereo. Near flakes were being drawn far.
nemo
parents:
6276
diff
changeset

83 
cStereo_Outside = 0.0400; 
4  84 

6492  85 

86 
// helper functions to create the goal/game mode string 

87 
function AddGoal(s: ansistring; gf: longword; si: TGoalStrId; i: LongInt): ansistring; 

88 
var t: ansistring; 

89 
begin 

90 
if (GameFlags and gf) <> 0 then 

91 
begin 

92 
t:= inttostr(i); 

93 
s:= s + format(trgoal[si], t) + '' 

94 
end; 

95 
AddGoal:= s; 

96 
end; 

97 

98 
function AddGoal(s: ansistring; gf: longword; si: TGoalStrId): ansistring; 

99 
begin 

100 
if (GameFlags and gf) <> 0 then 

101 
s:= s + trgoal[si] + ''; 

102 
AddGoal:= s; 

103 
end; 

104 

4  105 
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

106 
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

107 
cp: PClan; 
2863  108 
g: ansistring; 
4  109 
begin 
3764  110 
missionTimer:= 0; 
2786  111 

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

112 
if (GameFlags and gfRandomOrder) <> 0 then // shuffle them up a bit 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

113 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

114 
for i:= 0 to ClansCount * 4 do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

115 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

116 
t:= GetRandom(ClansCount); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

117 
if t <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

118 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

119 
cp:= ClansArray[0]; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

120 
ClansArray[0]:= ClansArray[t]; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

121 
ClansArray[t]:= cp; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

122 
ClansArray[t]^.ClanIndex:= t; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

123 
ClansArray[0]^.ClanIndex:= 0; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

124 
if (LocalClan = t) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

125 
LocalClan:= 0 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

126 
else if (LocalClan = 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

127 
LocalClan:= t 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

128 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

129 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

130 
CurrentTeam:= ClansArray[0]^.Teams[0]; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

131 
end; 
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

132 

2908  133 
// if special game flags/settings are changed, add them to the game mode notice window and then show it 
2863  134 
g:= ''; // no text/things to note yet 
2908  135 

4883
7cddc9201a1d
added dummy for tardis and ugly icons for tardis and structure
Henek
parents:
4850
diff
changeset

136 
// add custom goals from lua script if there are any 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

137 
if LuaGoals <> '' then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

138 
g:= LuaGoals + ''; 
4883
7cddc9201a1d
added dummy for tardis and ugly icons for tardis and structure
Henek
parents:
4850
diff
changeset

139 

2958  140 
// check different game flags (goals/game modes first for now) 
141 
g:= AddGoal(g, gfKing, gidKing); // king? 

5022
d2a2f6c9b236
some final work and buggfix for Tag Team, it is now playable
Henek
parents:
4976
diff
changeset

142 
g:= AddGoal(g, gfTagTeam, gidTagTeam); // tag team mode? 
2958  143 

144 
// other important flags 

145 
g:= AddGoal(g, gfForts, gidForts); // forts? 

146 
g:= AddGoal(g, gfLowGravity, gidLowGravity); // low gravity? 

147 
g:= AddGoal(g, gfInvulnerable, gidInvulnerable); // invulnerability? 

148 
g:= AddGoal(g, gfVampiric, gidVampiric); // vampirism? 

149 
g:= AddGoal(g, gfKarma, gidKarma); // karma? 

150 
g:= AddGoal(g, gfPlaceHog, gidPlaceHog); // placement? 

151 
g:= AddGoal(g, gfArtillery, gidArtillery); // artillery? 

152 
g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land? 

153 
g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo? 

4132  154 
g:= AddGoal(g, gfResetHealth, gidResetHealth); 
155 
g:= AddGoal(g, gfAISurvival, gidAISurvival); 

156 
g:= AddGoal(g, gfInfAttack, gidInfAttack); 

157 
g:= AddGoal(g, gfResetWeps, gidResetWeps); 

158 
g:= AddGoal(g, gfPerHogAmmo, gidPerHogAmmo); 

2958  159 

2908  160 
// modified damage modificator? 
161 
if cDamagePercent <> 100 then 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

162 
g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent); 
2908  163 

3107  164 
// fade in 
165 
ScreenFade:= sfFromBlack; 

166 
ScreenFadeValue:= sfMax; 

167 
ScreenFadeSpeed:= 1; 

168 

2908  169 
// modified mine timers? 
4482  170 
if cMinesTime <> 3000 then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

171 
begin 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

172 
if cMinesTime = 0 then 
4003
ca0600ab38bf
disable gfMines and update variable names (landadds > minesnum, cLandAdditions > cLandMines)
koda
parents:
3976
diff
changeset

173 
g:= AddGoal(g, gfAny, gidNoMineTimer) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

174 
else if cMinesTime < 0 then 
4003
ca0600ab38bf
disable gfMines and update variable names (landadds > minesnum, cLandAdditions > cLandMines)
koda
parents:
3976
diff
changeset

175 
g:= AddGoal(g, gfAny, gidRandomMineTimer) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

176 
else 
4482  177 
g:= AddGoal(g, gfAny, gidMineTimer, cMinesTime div 1000); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

178 
end; 
2908  179 

2863  180 
// if the string has been set, show it for (default timeframe) seconds 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

181 
if g <> '' then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

182 
ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0); 
2863  183 

1825  184 
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

185 
//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

186 
cWaveHeight:= 32; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

187 

5682
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

188 
InitCameraBorders(); 
5191
c7000a6b397b
 Implement a thin wrapper over real cursor, which eliminates need in SDL_WarpMouse outside game window
unc0rr
parents:
5149
diff
changeset

189 
uCursor.init(); 
2197  190 
prevPoint.X:= 0; 
74  191 
prevPoint.Y:= cScreenHeight div 2; 
1760  192 
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

193 
WorldDy:=  (LAND_HEIGHT  (playHeight div 2)) + (cScreenHeight div 2); 
3434  194 
AMSlotSize:= 33; 
195 
{$IFDEF IPHONEOS} 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

196 
if isPhone() then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

197 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

198 
AMxOffset:= 30 + cScreenHeight div 2; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

199 
AMyOffset:= 10; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

200 
end 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

201 
else 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

202 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

203 
AMxOffset:= AMSlotSize + cScreenHeight div 2; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

204 
AMyOffset:= 10 + cScreenWidth div 3; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

205 
end; 
3434  206 
AMWidth:= (cMaxSlotAmmoIndex + 1) * AMSlotSize + AMxOffset; 
207 
{$ELSE} 

208 
AMxOffset:= 10; 

209 
AMyOffset:= 60; 

210 
AMWidth:= (cMaxSlotAmmoIndex + 2) * AMSlotSize + AMxOffset; 

211 
{$ENDIF} 

212 
AMxShift:= AMWidth; 

3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

213 
SkyOffset:= 0; 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

214 
HorizontOffset:= 0; 
161  215 
end; 
216 

5682
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

217 
procedure InitCameraBorders; 
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

218 
begin 
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

219 
cGearScrEdgesDist:= min(2 * cScreenHeight div 5, 2 * cScreenWidth div 5); 
06d5f561f772
some camera adjustments (should also fix cam flickering on lowerst res)
sheepluva
parents:
5675
diff
changeset

220 
end; 
3405  221 

6394
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

222 
// for uStore texture resetting 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

223 
procedure ResetWorldTex; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

224 
begin 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

225 
FreeTexture(fpsTexture); 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

226 
fpsTexture:= nil; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

227 
FreeTexture(timeTexture); 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

228 
timeTexture:= nil; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

229 
FreeTexture(missionTex); 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

230 
missionTex:= nil; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

231 
end; 
f0a9042e7387
yay, finally osx (and likely windows) fullscreen switch works like on linux! ALL textures had to be destroyed and recreated only after the new window got created. In other news, the new window must be cleaned with glClear to skip a first frame of garbage and AddProgress is only called the first time.
koda
parents:
6380
diff
changeset

232 

956  233 
procedure ShowAmmoMenu; 
161  234 
const MENUSPEED = 15; 
3434  235 
const BORDERSIZE = 2; 
236 
var x, y, i, t, g: LongInt; 

237 
Slot, Pos, STurns: LongInt; 

2855
7e6adeb57427
Show the ammo menu of the last local nonbot team when not local turn. needs testing
nemo
parents:
2851
diff
changeset

238 
Ammo: PHHAmmo; 
161  239 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

240 
if (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

241 
or ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) then 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

242 
bShowAmmoMenu:= false; 
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

243 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

244 
if bShowAmmoMenu then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

245 
// show ammo menu 
3434  246 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

247 
FollowGear:= nil; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

248 
if AMxShift = AMWidth then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

249 
prevPoint.X:= 0; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

250 
if (cReducedQuality and rqSlowMenu) <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

251 
AMxShift:= 0 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

252 
else 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

253 
if AMxShift > MENUSPEED then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

254 
dec(AMxShift, MENUSPEED) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

255 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

256 
AMxShift:= 0; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

257 
end 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

258 
else 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

259 
// hide ammo menu 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

260 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

261 
if AMxShift = 0 then 
3434  262 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

263 
CursorPoint.X:= cScreenWidth shr 1; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

264 
CursorPoint.Y:= cScreenHeight shr 1; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

265 
prevPoint:= CursorPoint; 
3434  266 
end; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

267 
if (cReducedQuality and rqSlowMenu) <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

268 
AMxShift:= AMWidth+2 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

269 
else 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

270 
if AMxShift < (AMWidth  MENUSPEED) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

271 
inc(AMxShift, MENUSPEED) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

272 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

273 
AMxShift:= AMWidth; 
3434  274 
end; 
3697  275 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

276 
// give the assigned ammo to hedgehog 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

277 
Ammo:= nil; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

278 
if (CurrentTeam <> nil) and (CurrentHedgehog <> nil) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

279 
and (not CurrentTeam^.ExtDriven) and (CurrentHedgehog^.BotLevel = 0) then 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

280 
Ammo:= CurrentHedgehog^.Ammo 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

281 
else if (LocalAmmo <> 1) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

282 
Ammo:= GetAmmoByNum(LocalAmmo); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

283 
Pos:= 1; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

284 
if Ammo = nil then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

285 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

286 
bShowAmmoMenu:= false; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

287 
exit 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

288 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

289 
SlotsNum:= 0; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

290 
x:= (cScreenWidth shr 1)  AMWidth + AMxShift; 
3434  291 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

292 
{$IFDEF IPHONEOS} 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

293 
Slot:= cMaxSlotIndex; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

294 
x:= x  cOffsetY; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

295 
y:= AMyOffset; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

296 
dec(y, BORDERSIZE); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

297 
DrawSprite(sprAMCorners, x  BORDERSIZE, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

298 
for i:= 0 to cMaxSlotAmmoIndex do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

299 
DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

300 
DrawSprite(sprAMCorners, x + AMWidth  AMxOffset, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

301 
inc(y, BORDERSIZE); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

302 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

303 
for i:= 0 to cMaxSlotIndex do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

304 
if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then 
3434  305 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

306 
if (cScreenHeight  CursorPoint.Y >= y) and (cScreenHeight  CursorPoint.Y <= y + AMSlotSize) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

307 
Slot:= i; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

308 
inc(SlotsNum); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

309 
DrawSprite(sprAMBorderVertical, x  BORDERSIZE, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

310 
t:= 0; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

311 
g:= 0; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

312 
while (t <= cMaxSlotAmmoIndex) and (Ammo^[i, t].Count > 0) do 
3434  313 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

314 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

315 
if (Ammo^[i, t].AmmoType <> amNothing) then 
3434  316 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

317 
STurns:= Ammoz[Ammo^[i, t].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

318 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

319 
if STurns >= 0 then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

320 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

321 
DrawSprite(sprAMAmmosBW, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

322 
if STurns < 100 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

323 
DrawSprite(sprTurnsLeft, x + (g + 1) * AMSlotSize  16, y + AMSlotSize  16, STurns); 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

324 
end 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

325 
else 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

326 
DrawSprite(sprAMAmmos, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

327 
if (Slot = i) and (CursorPoint.X >= x + g * AMSlotSize) and 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

328 
(CursorPoint.X <= x + (g + 1) * AMSlotSize) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

329 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

330 
if (STurns < 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

331 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 0); 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

332 
Pos:= t; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

333 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

334 
inc(g) 
3434  335 
end; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

336 
inc(t) 
3434  337 
end; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

338 
for g:= g to cMaxSlotAmmoIndex do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

339 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

340 
DrawSprite(sprAMBorderVertical, x + AMWidth  AMxOffset, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

341 
inc(y, AMSlotSize); 
3434  342 
end; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

343 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

344 
DrawSprite(sprAMCorners, x  BORDERSIZE, y, 2); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

345 
for i:= 0 to cMaxSlotAmmoIndex do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

346 
DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 1); 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

347 
DrawSprite(sprAMCorners, x + AMWidth  AMxOffset, y, 3); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

348 
{$ELSE} 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

349 
Slot:= 0; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

350 
y:= cScreenHeight  AMyOffset; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

351 
DrawSprite(sprAMCorners, x  BORDERSIZE, y, 2); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

352 
for i:= 0 to cMaxSlotAmmoIndex + 1 do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

353 
DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

354 
DrawSprite(sprAMCorners, x + AMWidth  AMxOffset, y, 3); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

355 
dec(y, AMSlotSize); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

356 
DrawSprite(sprAMBorderVertical, x  BORDERSIZE, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

357 
for i:= 0 to cMaxSlotAmmoIndex do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

358 
DrawSprite(sprAMSlot, x + i * AMSlotSize, y, 2); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

359 
DrawSprite(sprAMSlot, x + (cMaxSlotAmmoIndex + 1) * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

360 
DrawSprite(sprAMBorderVertical, x + AMWidth  AMxOffset, y, 1); 
3697  361 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

362 
for i:= cMaxSlotIndex downto 0 do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

363 
if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

364 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

365 
if (cScreenHeight  CursorPoint.Y >= y  AMSlotSize) and (cScreenHeight  CursorPoint.Y <= y) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

366 
Slot:= i; 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

367 
dec(y, AMSlotSize); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

368 
inc(SlotsNum); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

369 
DrawSprite(sprAMBorderVertical, x  BORDERSIZE, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

370 
DrawSprite(sprAMSlot, x, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

371 
DrawSprite(sprAMSlotKeys, x, y + 1, i); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

372 
t:= 0; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

373 
g:= 1; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

374 
while (t <= cMaxSlotAmmoIndex) and (Ammo^[i, t].Count > 0) do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

375 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

376 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

377 
if (Ammo^[i, t].AmmoType <> amNothing) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

378 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

379 
STurns:= Ammoz[Ammo^[i, t].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

380 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

381 
if STurns >= 0 then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

382 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

383 
DrawSprite(sprAMAmmosBW, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

384 
if STurns < 100 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

385 
DrawSprite(sprTurnsLeft, x + (g + 1) * AMSlotSize  16, y + AMSlotSize  16, STurns); 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

386 
end else 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

387 
DrawSprite(sprAMAmmos, x + g * AMSlotSize, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

388 
if (Slot = i) and (CursorPoint.X >= x + g * AMSlotSize) and 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

389 
(CursorPoint.X <= x + (g + 1) * AMSlotSize) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

390 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

391 
if (STurns < 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

392 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 0); 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

393 
Pos:= t; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

394 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

395 
inc(g) 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

396 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

397 
inc(t) 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

398 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

399 
for g:= g to cMaxSlotAmmoIndex + 1 do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

400 
DrawSprite(sprAMSlot, x + g * AMSlotSize, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

401 
DrawSprite(sprAMBorderVertical, x + AMWidth  AMxOffset, y, 1); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

402 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

403 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

404 
dec(y, BORDERSIZE); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

405 
DrawSprite(sprAMCorners, x  BORDERSIZE, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

406 
for i:= 0 to cMaxSlotAmmoIndex + 1 do 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

407 
DrawSprite(sprAMBorderHorizontal, x + i * AMSlotSize, y, 0); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

408 
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

409 
{$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

410 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

411 
if (Pos >= 0) then 
3967  412 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

413 
if (Ammo^[Slot, Pos].Count > 0) and (Ammo^[Slot, Pos].AmmoType <> amNothing) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

414 
begin 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

415 
if (amSel <> Ammo^[Slot, Pos].AmmoType) or (WeaponTooltipTex = nil) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

416 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

417 
amSel:= Ammo^[Slot, Pos].AmmoType; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

418 
RenderWeaponTooltip(amSel) 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

419 
end; 
3697  420 

3629
86212d2b116a
redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents:
3611
diff
changeset

421 
{$IFDEF IPHONEOS} 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

422 
DrawTexture(cScreenWidth div 2  (AMWidth  10) + AMxShift, AMyOffset  25, Ammoz[Ammo^[Slot, Pos].AmmoType].NameTex); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

423 
if Ammo^[Slot, Pos].Count < AMMO_INFINITE then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

424 
DrawTexture(cScreenWidth div 2  (AMWidth  10) + 163, AMyOffset  25, CountTexz[Ammo^[Slot, Pos].Count]); 
3629
86212d2b116a
redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents:
3611
diff
changeset

425 
{$ELSE} 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

426 
DrawTexture(cScreenWidth div 2  (AMWidth  10) + AMxShift, cScreenHeight  AMyOffset  25, Ammoz[Ammo^[Slot, Pos].AmmoType].NameTex); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

427 
if Ammo^[Slot, Pos].Count < AMMO_INFINITE then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

428 
DrawTexture(cScreenWidth div 2 + AMxOffset  45, cScreenHeight  AMyOffset  25, CountTexz[Ammo^[Slot, Pos].Count]); 
3629
86212d2b116a
redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents:
3611
diff
changeset

429 
{$ENDIF} 
1529
3bc916b419cd
Don't hide ammo menu when user clicks on not yet available weapon
unc0rr
parents:
1439
diff
changeset

430 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

431 
if bSelected and (Ammoz[Ammo^[Slot, Pos].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber < 0) then 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

432 
begin 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

433 
bShowAmmoMenu:= false; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

434 
SetWeapon(Ammo^[Slot, Pos].AmmoType); 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

435 
bSelected:= false; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

436 
FreeWeaponTooltip; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

437 
exit 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

438 
end; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

439 
end 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

440 
end 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

441 
else 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

442 
FreeWeaponTooltip; 
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

443 

1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

444 
if (WeaponTooltipTex <> nil) and (AMxShift = 0) then 
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

445 
{$IFDEF IPHONEOS} 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

446 
ShowWeaponTooltip(WeaponTooltipTex^.w div 2, 100); 
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

447 
{$ELSE} 
6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

448 
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

449 
{$ENDIF} 
961
a9a349b2b3fa
Use turnsleft sprites to indicate turns left to activate ammo
unc0rr
parents:
956
diff
changeset

450 

6276
1e2f8da1860a
while formatting the ammomenu code i found out that it's simpler to move than i thought, and fixed a small glitch when animation was disabled
koda
parents:
6250
diff
changeset

451 
bSelected:= false; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

452 
if AMxShift = 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

453 
DrawSprite(sprArrow, CursorPoint.X, cScreenHeight  CursorPoint.Y, (RealTicks shr 6) mod 8) 
4  454 
end; 
455 

3104  456 
procedure DrawWater(Alpha: byte; OffsetY: LongInt); 
1915  457 
var VertexBuffer: array [0..3] of TVertex2f; 
458 
r: TSDL_Rect; 

2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

459 
lw, lh: GLfloat; 
1915  460 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

461 
if SuddenDeathDmg then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

462 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

463 
SDWaterColorArray[0].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

464 
SDWaterColorArray[1].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

465 
SDWaterColorArray[2].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

466 
SDWaterColorArray[3].a := Alpha 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

467 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

468 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

469 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

470 
WaterColorArray[0].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

471 
WaterColorArray[1].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

472 
WaterColorArray[2].a := Alpha; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

473 
WaterColorArray[3].a := Alpha 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

474 
end; 
2269
00f5704f5f39
add extra semiopaque layer of water to discolour objects in the water.
nemo
parents:
2268
diff
changeset

475 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

476 
lw:= cScreenWidth / cScaleFactor; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

477 
lh:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 + 16; 
3697  478 

3405  479 
// Water 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

480 
r.y:= OffsetY + WorldDy + cWaterLine; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

481 
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

482 
begin 
3405  483 
if r.y < 0 then 
484 
r.y:= 0; 

1915  485 

3405  486 
glDisable(GL_TEXTURE_2D); 
487 
VertexBuffer[0].X:= lw; 

488 
VertexBuffer[0].Y:= r.y; 

489 
VertexBuffer[1].X:= lw; 

490 
VertexBuffer[1].Y:= r.y; 

491 
VertexBuffer[2].X:= lw; 

492 
VertexBuffer[2].Y:= lh; 

493 
VertexBuffer[3].X:= lw; 

494 
VertexBuffer[3].Y:= lh; 

1915  495 

3641  496 
glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
497 
glEnableClientState(GL_COLOR_ARRAY); 

4748  498 
if SuddenDeathDmg then 
499 
glColorPointer(4, GL_UNSIGNED_BYTE, 0, @SDWaterColorArray[0]) 

500 
else 

501 
glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]); 

1915  502 

3405  503 
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

504 

3405  505 
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); 
1915  506 

3405  507 
glDisableClientState(GL_COLOR_ARRAY); 
3641  508 
glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
3407  509 
glColor4ub($FF, $FF, $FF, $FF); // must not be Tint() as color array seems to stay active and color reset is required 
3405  510 
glEnable(GL_TEXTURE_2D); 
511 
end; 

1915  512 
end; 
513 

3376  514 
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

515 
var VertexBuffer, TextureBuffer: array [0..3] of TVertex2f; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

516 
lw, waves, shift: GLfloat; 
4748  517 
sprite: TSprite; 
2288  518 
begin 
4748  519 
if SuddenDeathDmg then 
520 
sprite:= sprSDWater 

521 
else 

522 
sprite:= sprWater; 

523 

524 
cWaveWidth:= SpritesData[sprite].Width; 

525 

3463  526 
lw:= cScreenWidth / cScaleFactor; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

527 
waves:= lw * 2 / cWaveWidth; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

528 

4748  529 
if SuddenDeathDmg then 
530 
Tint(LongInt(tnt) * SDWaterColorArray[2].r div 255 + 255  tnt, 

531 
LongInt(tnt) * SDWaterColorArray[2].g div 255 + 255  tnt, 

532 
LongInt(tnt) * SDWaterColorArray[2].b div 255 + 255  tnt, 

533 
255 

534 
) 

535 
else 

536 
Tint(LongInt(tnt) * WaterColorArray[2].r div 255 + 255  tnt, 

537 
LongInt(tnt) * WaterColorArray[2].g div 255 + 255  tnt, 

538 
LongInt(tnt) * WaterColorArray[2].b div 255 + 255  tnt, 

539 
255 

540 
); 

3089  541 

4748  542 
glBindTexture(GL_TEXTURE_2D, SpritesData[sprite].Texture^.id); 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

543 

87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

544 
VertexBuffer[0].X:= lw; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

545 
VertexBuffer[0].Y:= cWaterLine + WorldDy + dY; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

546 
VertexBuffer[1].X:= lw; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

547 
VertexBuffer[1].Y:= VertexBuffer[0].Y; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

548 
VertexBuffer[2].X:= lw; 
4748  549 
VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprite].Height; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

550 
VertexBuffer[3].X:= lw; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

551 
VertexBuffer[3].Y:= VertexBuffer[2].Y; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

552 

2374  553 
shift:=  lw / cWaveWidth; 
2495  554 
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

555 
TextureBuffer[0].Y:= 0; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

556 
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

557 
TextureBuffer[1].Y:= TextureBuffer[0].Y; 
08d623a494e6
Smaxx's updated german translation + texture gap fixes + updated room list
koda
parents:
2434
diff
changeset

558 
TextureBuffer[2].X:= TextureBuffer[1].X; 
4748  559 
TextureBuffer[2].Y:= SpritesData[sprite].Texture^.ry; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

560 
TextureBuffer[3].X:= TextureBuffer[0].X; 
2447
08d623a494e6
Smaxx's updated german translation + texture gap fixes + updated room list
koda
parents:
2434
diff
changeset

561 
TextureBuffer[3].Y:= TextureBuffer[2].Y; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

562 

87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

563 

87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

564 
glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

565 
glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

566 
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

567 

3390  568 
Tint($FF, $FF, $FF, $FF); 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

569 

87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

570 
{for i:= 1 to cWaterSprCount do 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

571 
DrawSprite(sprWater, 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

572 
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

573 
cWaterLine + WorldDy + dY, 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

574 
0)} 
2288  575 
end; 
576 

3089  577 
procedure DrawRepeated(spr, sprL, sprR: TSprite; Shift, OffsetY: LongInt); 
3537
8f5b3108f29c
New approach to the lowres problem. Basically, we already have a 1024 minimum, and the tallest maps are restricting themselves to 2048 maximum. All backgrounds are scaled down 50%, then scaled up on draw. Saves memory, and backgrounds are already deliberately fuzzed for depth of field anyway.
nemo
parents:
3523
diff
changeset

578 
var i, w, h, lw, lh, rw, rh, sw: LongInt; 
2426  579 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

580 
sw:= round(cScreenWidth / cScaleFactor); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

581 
if (SpritesData[sprL].Texture = nil) and (SpritesData[spr].Texture <> nil) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

582 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

583 
w:= SpritesData[spr].Width * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

584 
h:= SpritesData[spr].Height * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

585 
i:= Shift mod w; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

586 
if i > 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

587 
dec(i, w); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

588 
dec(i, w * (sw div w + 1)); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

589 
repeat 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

590 
DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY  h, SpritesData[spr].Texture, SpritesData[spr].Texture^.Scale); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

591 
inc(i, w) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

592 
until i > sw 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

593 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

594 
else if SpritesData[spr].Texture <> nil then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

595 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

596 
w:= SpritesData[spr].Width * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

597 
h:= SpritesData[spr].Height * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

598 
lw:= SpritesData[sprL].Width * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

599 
lh:= SpritesData[sprL].Height * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

600 
if SpritesData[sprR].Texture <> nil then 
5285
af4dc03dd60d
Make sky, horizon, flakes and clouds optional, replace repeated strips of skyL/skyR with 2x2 transparent PNGs instead of larger images of variable dimensions, remove a number of empty unused images
nemo
parents:
5191
diff
changeset

601 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

602 
rw:= SpritesData[sprR].Width * SpritesData[spr].Texture^.Scale; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

603 
rh:= SpritesData[sprR].Height * SpritesData[spr].Texture^.Scale 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

604 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

605 
dec(Shift, w div 2); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

606 
DrawTexture(Shift, WorldDy + LAND_HEIGHT + OffsetY  h, SpritesData[spr].Texture, SpritesData[spr].Texture^.Scale); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

607 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

608 
i:= Shift  lw; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

609 
while i >= sw  lw do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

610 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

611 
DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY  lh, SpritesData[sprL].Texture, SpritesData[sprL].Texture^.Scale); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

612 
dec(i, lw); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

613 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

614 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

615 
i:= Shift + w; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

616 
if SpritesData[sprR].Texture <> nil then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

617 
while i <= sw do 
6135
2172330ad52a
Use SkyL if SkyR is not included. Saves a bit of texture memory and removes some redundant files.
nemo
parents:
6131
diff
changeset

618 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

619 
DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY  rh, SpritesData[sprR].Texture, SpritesData[sprR].Texture^.Scale); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

620 
inc(i, rw) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

621 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

622 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

623 
while i <= sw do 
5285
af4dc03dd60d
Make sky, horizon, flakes and clouds optional, replace repeated strips of skyL/skyR with 2x2 transparent PNGs instead of larger images of variable dimensions, remove a number of empty unused images
nemo
parents:
5191
diff
changeset

624 
begin 
3537
8f5b3108f29c
New approach to the lowres problem. Basically, we already have a 1024 minimum, and the tallest maps are restricting themselves to 2048 maximum. All backgrounds are scaled down 50%, then scaled up on draw. Saves memory, and backgrounds are already deliberately fuzzed for depth of field anyway.
nemo
parents:
3523
diff
changeset

625 
DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY  lh, SpritesData[sprL].Texture, SpritesData[sprL].Texture^.Scale); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

626 
inc(i, lw) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

627 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

628 
end 
2426  629 
end; 
630 

631 

956  632 
procedure DrawWorld(Lag: LongInt); 
4  633 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

634 
if not isPaused then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

635 
begin 
3523  636 
if ZoomValue < zoom then 
3444  637 
begin 
3523  638 
zoom:= zoom  0.002 * Lag; 
3697  639 
if ZoomValue > zoom then 
3523  640 
zoom:= ZoomValue 
3697  641 
end 
3774  642 
else 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

643 
if ZoomValue > zoom then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

644 
begin 
3523  645 
zoom:= zoom + 0.002 * Lag; 
646 
if ZoomValue < zoom then 

647 
zoom:= ZoomValue 

3611  648 
end 
3444  649 
end 
3611  650 
else 
651 
ZoomValue:= zoom; 

2376  652 

3611  653 
// Sky 
654 
glClear(GL_COLOR_BUFFER_BIT); 

655 
//glPushMatrix; 

656 
//glScalef(1.0, 1.0, 1.0); 

756  657 

3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

658 
if not isPaused then 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

659 
MoveCamera; 
162  660 

3696  661 
if cStereoMode = smNone then 
662 
begin 

3692  663 
glClear(GL_COLOR_BUFFER_BIT); 
664 
DrawWorldStereo(Lag, rmDefault) 

3696  665 
end 
4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

666 
{$IFNDEF S3D_DISABLED} 
3696  667 
else if (cStereoMode = smAFR) then 
668 
begin 

669 
AFRToggle:= not AFRToggle; 

670 
glClear(GL_COLOR_BUFFER_BIT); 

671 
if AFRToggle then 

672 
DrawWorldStereo(Lag, rmLeftEye) 

673 
else 

674 
DrawWorldStereo(Lag, rmRightEye) 

675 
end 

676 
else if (cStereoMode = smHorizontal) or (cStereoMode = smVertical) then 

677 
begin 

3692  678 
// create left fb 
679 
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framel); 

680 
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); 

681 
DrawWorldStereo(Lag, rmLeftEye); 

682 

683 
// create right fb 

684 
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framer); 

685 
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); 

686 
DrawWorldStereo(0, rmRightEye); 

687 

688 
// detatch drawing from fbs 

689 
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 

690 
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); 

691 
SetScale(cDefaultZoomLevel); 

692 

693 
// draw left frame 

694 
glBindTexture(GL_TEXTURE_2D, texl); 

695 
glBegin(GL_QUADS); 

3696  696 
if cStereoMode = smHorizontal then 
697 
begin 

698 
glTexCoord2f(0.0, 0.0); 

699 
glVertex2d(cScreenWidth / 2, cScreenHeight); 

700 
glTexCoord2f(1.0, 0.0); 

701 
glVertex2d(0, cScreenHeight); 

702 
glTexCoord2f(1.0, 1.0); 

703 
glVertex2d(0, 0); 

704 
glTexCoord2f(0.0, 1.0); 

705 
glVertex2d(cScreenWidth / 2, 0); 

706 
end 

707 
else 

708 
begin 

709 
glTexCoord2f(0.0, 0.0); 

710 
glVertex2d(cScreenWidth / 2, cScreenHeight / 2); 

711 
glTexCoord2f(1.0, 0.0); 

712 
glVertex2d(cScreenWidth / 2, cScreenHeight / 2); 

713 
glTexCoord2f(1.0, 1.0); 

714 
glVertex2d(cScreenWidth / 2, 0); 

715 
glTexCoord2f(0.0, 1.0); 

716 
glVertex2d(cScreenWidth / 2, 0); 

717 
end; 

3692  718 
glEnd(); 
719 

720 
// draw right frame 

721 
glBindTexture(GL_TEXTURE_2D, texr); 

722 
glBegin(GL_QUADS); 

3696  723 
if cStereoMode = smHorizontal then 
724 
begin 

725 
glTexCoord2f(0.0, 0.0); 

726 
glVertex2d(0, cScreenHeight); 

727 
glTexCoord2f(1.0, 0.0); 

728 
glVertex2d(cScreenWidth / 2, cScreenHeight); 

729 
glTexCoord2f(1.0, 1.0); 

730 
glVertex2d(cScreenWidth / 2, 0); 

731 
glTexCoord2f(0.0, 1.0); 

732 
glVertex2d(0, 0); 

733 
end 

734 
else 

735 
begin 

736 
glTexCoord2f(0.0, 0.0); 

737 
glVertex2d(cScreenWidth / 2, cScreenHeight); 

738 
glTexCoord2f(1.0, 0.0); 

739 
glVertex2d(cScreenWidth / 2, cScreenHeight); 

740 
glTexCoord2f(1.0, 1.0); 

741 
glVertex2d(cScreenWidth / 2, cScreenHeight / 2); 

742 
glTexCoord2f(0.0, 1.0); 

743 
glVertex2d(cScreenWidth / 2, cScreenHeight / 2); 

744 
end; 

3692  745 
glEnd(); 
746 
SetScale(zoom); 

3696  747 
end 
748 
else 

749 
begin 

750 
// clear scene 

751 
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); 

752 
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); 

753 
// draw left eye in red channel only 

754 
if cStereoMode = smGreenRed then 

755 
glColorMask(GL_FALSE, GL_TRUE, GL_FALSE, GL_TRUE) 

756 
else if cStereoMode = smBlueRed then 

757 
glColorMask(GL_FALSE, GL_FALSE, GL_TRUE, GL_TRUE) 

758 
else if cStereoMode = smCyanRed then 

759 
glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE) 

760 
else 

761 
glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_TRUE); 

762 
DrawWorldStereo(Lag, rmLeftEye); 

763 
// draw right eye in selected channel(s) only 

764 
if cStereoMode = smRedGreen then 

765 
glColorMask(GL_FALSE, GL_TRUE, GL_FALSE, GL_TRUE) 

766 
else if cStereoMode = smRedBlue then 

767 
glColorMask(GL_FALSE, GL_FALSE, GL_TRUE, GL_TRUE) 

768 
else if cStereoMode = smRedCyan then 

769 
glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE) 

770 
else 

771 
glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_TRUE); 

772 
DrawWorldStereo(Lag, rmRightEye); 

773 
end 

4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

774 
{$ENDIF} 
3692  775 
end; 
776 

777 
procedure ChangeDepth(rm: TRenderMode; d: GLfloat); 

778 
begin 

4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

779 
{$IFDEF S3D_DISABLED} 
4850  780 
rm:= rm; d:= d; // avoid hint 
4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

781 
exit; 
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

782 
{$ELSE} 
3696  783 
d:= d / 5; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

784 
if rm = rmDefault then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

785 
exit 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

786 
else if rm = rmLeftEye then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

787 
d:= d; 
3692  788 
stereoDepth:= stereoDepth + d; 
789 
glMatrixMode(GL_PROJECTION); 

790 
glTranslatef(d, 0, 0); 

4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

791 
glMatrixMode(GL_MODELVIEW); 
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

792 
{$ENDIF} 
3692  793 
end; 
794 

795 
procedure ResetDepth(rm: TRenderMode); 

796 
begin 

4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

797 
{$IFDEF S3D_DISABLED} 
4850  798 
rm:= rm; // avoid hint 
4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

799 
exit; 
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

800 
{$ELSE} 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

801 
if rm = rmDefault then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

802 
exit; 
3692  803 
glMatrixMode(GL_PROJECTION); 
804 
glTranslatef(stereoDepth, 0, 0); 

805 
glMatrixMode(GL_MODELVIEW); 

806 
stereoDepth:= 0; 

4347
0ddb100fea61
add a S3D_DISABLED symbol to disable/enable stereo rendering at compilation time
koda
parents:
4345
diff
changeset

807 
{$ENDIF} 
3692  808 
end; 
809 

810 
procedure DrawWorldStereo(Lag: LongInt; RM: TRenderMode); 

811 
var i, t: LongInt; 

812 
r: TSDL_Rect; 

813 
tdx, tdy: Double; 

814 
s: string[15]; 

815 
highlight: Boolean; 

5380
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

816 
smallScreenOffset, offsetX, offsetY, screenBottom: LongInt; 
3692  817 
VertexBuffer: array [0..3] of TVertex2f; 
818 
begin 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

819 
if (cReducedQuality and rqNoBackground) = 0 then 
1812  820 
begin 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

821 
// Offsets relative to camera  spare them to wimpier cpus, no bg or flakes for them anyway 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

822 
ScreenBottom:= (WorldDy  trunc(cScreenHeight/cScaleFactor)  (cScreenHeight div 2) + cWaterLine); 
4374  823 
offsetY:= 10 * Min(0, 145  ScreenBottom); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

824 
SkyOffset:= offsetY div 35 + cWaveHeight; 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

825 
HorizontOffset:= SkyOffset; 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

826 
if ScreenBottom > SkyOffset then 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

827 
HorizontOffset:= HorizontOffset + ((ScreenBottomSkyOffset) div 20); 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

828 

3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

829 
// background 
3688  830 
ChangeDepth(RM, cStereo_Sky); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

831 
if SuddenDeathDmg then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

832 
Tint(SDTint, SDTint, SDTint, $FF); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

833 
DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset); 
3688  834 
ChangeDepth(RM, cStereo_Horizon); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

835 
DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

836 
if SuddenDeathDmg then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

837 
Tint($FF, $FF, $FF, $FF); 
3611  838 
end; 
4  839 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

840 
DrawVisualGears(0); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

841 
ChangeDepth(RM, cStereo_MidDistance); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

842 
DrawVisualGears(4); 
3697  843 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

844 
if (cReducedQuality and rq2DWater) = 0 then 
3611  845 
begin 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

846 
// Waves 
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

847 
DrawWater(255, SkyOffset); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

848 
ChangeDepth(RM, cStereo_Water_distant); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

849 
DrawWaves( 1, 0  WorldDx div 32,  cWaveHeight + offsetY div 35, 64); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

850 
ChangeDepth(RM, cStereo_Water_distant); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

851 
DrawWaves( 1, 25 + WorldDx div 25,  cWaveHeight + offsetY div 38, 48); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

852 
ChangeDepth(RM, cStereo_Water_distant); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

853 
DrawWaves( 1, 75  WorldDx div 19,  cWaveHeight + offsetY div 45, 32); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

854 
ChangeDepth(RM, cStereo_Water_distant); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

855 
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

856 
end 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

857 
else 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

858 
DrawWaves(1, 100,  (cWaveHeight + (cWaveHeight shr 1)), 0); 
4  859 

4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

860 
changeDepth(RM, cStereo_Land); 
6302
db8bdbb34e03
Spread flakes out over 5 layers now (far back, mid distance, just behind land, just in front of lands and hog, near distance). Spread clouds out over 3 layers (far back, mid distance, just behind land). Add a flatten clouds option, use
nemo
parents:
6296
diff
changeset

861 
DrawVisualGears(5); 
3611  862 
DrawLand(WorldDx, WorldDy); 
1911  863 

3611  864 
DrawWater(255, 0); 
4  865 

1660  866 
// Attack bar 
5862  867 
if CurrentTeam <> nil then 
3611  868 
case AttackBar of 
1660  869 
(* 1: begin 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

870 
r:= StuffPoz[sPowerBar]; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

871 
{$WARNINGS OFF} 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

872 
r.w:= (CurrentHedgehog^.Gear^.Power * 256) div cPowerDivisor; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

873 
{$WARNINGS ON} 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

874 
DrawSpriteFromRect(r, cScreenWidth  272, cScreenHeight  48, 16, 0, Surface); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

875 
end;*) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

876 
2: with CurrentHedgehog^ do 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

877 
begin 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

878 
tdx:= hwSign(Gear^.dX) * Sin(Gear^.Angle * Pi / cMaxAngle); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

879 
tdy:=  Cos(Gear^.Angle * Pi / cMaxAngle); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

880 
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

881 
DrawSprite(sprPower, 
4159
64e677349124
REmove stupid int64 conversions, provide real fixes to compiler hints
unc0rr
parents:
4132
diff
changeset

882 
hwRound(Gear^.X) + GetLaunchX(CurAmmoType, hwSign(Gear^.dX), Gear^.Angle) + LongInt(round(WorldDx + tdx * (24 + i * 2)))  16, 
64e677349124
REmove stupid int64 conversions, provide real fixes to compiler hints
unc0rr
parents:
4132
diff
changeset

883 
hwRound(Gear^.Y) + GetLaunchY(CurAmmoType, Gear^.Angle) + LongInt(round(WorldDy + tdy * (24 + i * 2)))  16, 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

884 
i) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

885 
end 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

886 
end; 
1660  887 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

888 
DrawVisualGears(1); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

889 
DrawGears; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

890 
DrawVisualGears(6); 
4  891 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

892 
if SuddenDeathDmg then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

893 
DrawWater(cSDWaterOpacity, 0) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

894 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

895 
DrawWater(cWaterOpacity, 0); 
2269
00f5704f5f39
add extra semiopaque layer of water to discolour objects in the water.
nemo
parents:
2268
diff
changeset

896 

3611  897 
// Waves 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

898 
ChangeDepth(RM, cStereo_Water_near); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

899 
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

900 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

901 
if (cReducedQuality and rq2DWater) = 0 then 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

902 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

903 
//DrawWater(cWaterOpacity,  offsetY div 40); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

904 
ChangeDepth(RM, cStereo_Water_near); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

905 
DrawWaves(1, 50 + WorldDx div 6,  cWaveHeight  offsetY div 40, 8); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

906 
if SuddenDeathDmg then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

907 
DrawWater(cSDWaterOpacity,  offsetY div 20) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

908 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

909 
DrawWater(cWaterOpacity,  offsetY div 20); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

910 
ChangeDepth(RM, cStereo_Water_near); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

911 
DrawWaves( 1, 75  WorldDx div 4,  cWaveHeight  offsetY div 20, 2); 
4792
68f9b331014a
sudden death changes: only change visual bit on health decrease and support for water transparancy change and clouds number change
Henek
parents:
4748
diff
changeset

912 
if SuddenDeathDmg then 
68f9b331014a
sudden death changes: only change visual bit on health decrease and support for water transparancy change and clouds number change
Henek
parents:
4748
diff
changeset

913 
DrawWater(cSDWaterOpacity,  offsetY div 10) 
68f9b331014a
sudden death changes: only change visual bit on health decrease and support for water transparancy change and clouds number change
Henek
parents:
4748
diff
changeset

914 
else 
68f9b331014a
sudden death changes: only change visual bit on health decrease and support for water transparancy change and clouds number change
Henek
parents:
4748
diff
changeset

915 
DrawWater(cWaterOpacity,  offsetY div 10); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

916 
ChangeDepth(RM, cStereo_Water_near); 
3594
aeca3d8f1b29
turn cReducedQuality into a LongInt and provide a series of quality flags (and best of all, this is still compatible with current frontend)
koda
parents:
3582
diff
changeset

917 
DrawWaves( 1, 25 + WorldDx div 3,  cWaveHeight  offsetY div 10, 0); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

918 
end 
3611  919 
else 
920 
DrawWaves(1, 50,  (cWaveHeight shr 1), 0); 

2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

921 

4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

922 
// everything after this ChangeDepth will be drawn outside the screen 
4818
202eef454354
rename "frame alternate" to "wiggle" as it's more appropriate
koda
parents:
4816
diff
changeset

923 
// note: negative parallax gears should last very little for a smooth stereo effect 
202eef454354
rename "frame alternate" to "wiggle" as it's more appropriate
koda
parents:
4816
diff
changeset

924 
ChangeDepth(RM, cStereo_Outside); 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

925 
DrawVisualGears(2); 
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

926 

c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

927 
// everything after this ResetDepth will be drawn at screen level (depth = 0) 
4818
202eef454354
rename "frame alternate" to "wiggle" as it's more appropriate
koda
parents:
4816
diff
changeset

928 
// note: everything that needs to be readable should be on this level 
4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

929 
ResetDepth(RM); 
4818
202eef454354
rename "frame alternate" to "wiggle" as it's more appropriate
koda
parents:
4816
diff
changeset

930 
DrawVisualGears(3); 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

931 

2288  932 
{$WARNINGS OFF} 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

933 
// Target 
3104  934 
if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then 
935 
begin 

936 
with PHedgehog(CurrentHedgehog)^ do 

937 
begin 

5372
7283bc768228
Change bee pos sprite, make aiming napalm a little easier, adjust napalm flames to be more centred on the target
nemo
parents:
5302
diff
changeset

938 
if CurAmmoType = amBee then 
3110  939 
DrawRotatedF(sprTargetBee, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360) 
940 
else 

5372
7283bc768228
Change bee pos sprite, make aiming napalm a little easier, adjust napalm flames to be more centred on the target
nemo
parents:
5302
diff
changeset

941 
DrawRotatedF(sprTargetP, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360) 
7283bc768228
Change bee pos sprite, make aiming napalm a little easier, adjust napalm flames to be more centred on the target
nemo
parents:
5302
diff
changeset

942 
end 
3104  943 
end; 
4  944 
{$WARNINGS ON} 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

945 

3523  946 
// this scale is used to keep the various widgets at the same dimension at all zoom levels 
947 
SetScale(cDefaultZoomLevel); 

2724  948 

949 
// Turn time 

5326  950 
{$IFDEF MOBILE} 
3025  951 
offsetX:= cScreenHeight  13; 
2803
1f446fc5c8ec
allow to compile engine as library with HWLIBRARY symbol
koda
parents:
2786
diff
changeset

952 
{$ELSE} 
3025  953 
offsetX:= 48; 
2803
1f446fc5c8ec
allow to compile engine as library with HWLIBRARY symbol
koda
parents:
2786
diff
changeset

954 
{$ENDIF} 
3463  955 
offsetY:= cOffsetY; 
3890
e4b7b30232fd
Extend time limit to 9999, remove ready timer if time is over 999 and stop drawing time if it is over 999 (draws wrong over 999 anyway)  this has the effect of allowing an "unlimited" time appearance if turns are over a quarter hour or so. This can be used to add an unlimited time scheme or button to ipad
nemo
parents:
3836
diff
changeset

956 
if ((TurnTimeLeft <> 0) and (TurnTimeLeft < 1000000)) or (ReadyTimeLeft <> 0) then 
3774  957 
begin 
958 
if ReadyTimeLeft <> 0 then 

959 
i:= Succ(Pred(ReadyTimeLeft) div 1000) 

960 
else 

961 
i:= Succ(Pred(TurnTimeLeft) div 1000); 

962 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

963 
if i>99 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

964 
t:= 112 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

965 
else if i>9 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

966 
t:= 96 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

967 
else 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

968 
t:= 80; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

969 
DrawSprite(sprFrame, (cScreenWidth shr 1) + t + offsetY, cScreenHeight  offsetX, 1); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

970 
while i > 0 do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

971 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

972 
dec(t, 32); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

973 
DrawSprite(sprBigDigit, (cScreenWidth shr 1) + t + offsetY, cScreenHeight  offsetX, i mod 10); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

974 
i:= i div 10 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

975 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

976 
DrawSprite(sprFrame, (cScreenWidth shr 1) + t  4 + offsetY, cScreenHeight  offsetX, 0); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

977 
end; 
79  978 

4  979 
// Captions 
4393  980 
DrawCaptions; 
4  981 

5941
db4751cb4f53
make the fire button appear only on android for now, I'll make it depend on a variable later on
Xeli
parents:
5936
diff
changeset

982 
{$IFDEF ANDROID} 
5828
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5824
diff
changeset

983 
// Draw buttons Related to the Touch interface 
667fb58d7f18
Changed firebutton, parameters in uTouch might need to be tweaked some more
Xeli
parents:
5824
diff
changeset

984 
DrawTexture(Round(cScreenWidth*0.5 + cScreenHeight*0.02),Round((cScreenHeight*0.98)(spritesData[sprFireButton].Height*0.4) ),spritesData[sprFireButton].Texture, 0.4); 
5941
db4751cb4f53
make the fire button appear only on android for now, I'll make it depend on a variable later on
Xeli
parents:
5936
diff
changeset

985 
{$ENDIF} 
47  986 
// Teams Healths 
6011
519f8a58c021
Fix a bunch of warnings (also improves speed a bit in 32 bit code)
unC0Rr
parents:
5862
diff
changeset

987 
if TeamsCount * 20 > Longword(cScreenHeight) div 7 then // take up less screen on small displays 
5380
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

988 
begin 
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

989 
SetScale(1.5); 
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

990 
smallScreenOffset:= cScreenHeight div 6; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

991 
if TeamsCount * 20 > Longword(cScreenHeight) div 5 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

992 
Tint($FF,$FF,$FF,$80); 
5380
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

993 
end 
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

994 
else smallScreenOffset:= 0; 
547  995 
for t:= 0 to Pred(TeamsCount) do 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

996 
with TeamsArray[t]^ do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

997 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

998 
highlight:= bShowFinger and (CurrentTeam = TeamsArray[t]) and ((RealTicks mod 1000) < 500); 
3697  999 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1000 
if highlight then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1001 
Tint(Clan^.Color shl 8 or $FF); 
690  1002 

2839  1003 
// draw name 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1004 
DrawTexture(NameTagTex^.w  16, cScreenHeight + DrawHealthY + smallScreenOffset, NameTagTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1005 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1006 
// draw flag 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1007 
DrawTexture(14, cScreenHeight + DrawHealthY + smallScreenOffset, FlagTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1008 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1009 
// draw health bar 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1010 
r.x:= 0; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1011 
r.y:= 0; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1012 
r.w:= 2 + TeamHealthBarWidth; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1013 
r.h:= HealthTex^.h; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1014 
DrawFromRect(14, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1015 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1016 
// draw health bars right border 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1017 
inc(r.x, cTeamHealthWidth + 2); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1018 
r.w:= 3; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1019 
DrawFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1020 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1021 
// draw ai kill counter for gfAISurvival 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1022 
if (GameFlags and gfAISurvival) <> 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1023 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1024 
DrawTexture(TeamHealthBarWidth + 22, cScreenHeight + DrawHealthY + smallScreenOffset, AIKillsTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1025 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1026 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1027 
// if highlighted, draw flag and other contents again to keep their colors 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1028 
// this approach should be faster than drawing all borders one by one tinted or not 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1029 
if highlight then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1030 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1031 
if TeamsCount * 20 > Longword(cScreenHeight) div 5 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1032 
Tint($FF,$FF,$FF,$80) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1033 
else Tint($FF, $FF, $FF, $FF); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1034 

6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1035 
// draw name 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1036 
r.x:= 2; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1037 
r.y:= 2; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1038 
r.w:= NameTagTex^.w  4; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1039 
r.h:= NameTagTex^.h  4; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1040 
DrawFromRect(NameTagTex^.w  14, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, NameTagTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1041 
// draw flag 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1042 
r.w:= 22; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1043 
r.h:= 15; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1044 
DrawFromRect(12, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, FlagTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1045 
// draw health bar 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1046 
r.w:= TeamHealthBarWidth + 1; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1047 
r.h:= HealthTex^.h  4; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1048 
DrawFromRect(16, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1049 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1050 
end; 
5380
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

1051 
if smallScreenOffset <> 0 then 
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

1052 
begin 
5485  1053 
SetScale(cDefaultZoomLevel); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1054 
if TeamsCount * 20 > Longword(cScreenHeight) div 5 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1055 
Tint($FF,$FF,$FF,$FF); 
5380
6ba1e40a360c
Based on some user complaints on forum, try to reduce impact of teams on small displays.
nemo
parents:
5372
diff
changeset

1056 
end; 
47  1057 

5  1058 
// Lag alert 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1059 
if isInLag then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1060 
DrawSprite(sprLag, 32  (cScreenWidth shr 1), 32, (RealTicks shr 7) mod 12); 
4  1061 

5  1062 
// Wind bar 
5326  1063 
{$IFDEF MOBILE} 
3405  1064 
offsetX:= cScreenHeight  13; 
1065 
offsetY:= (cScreenWidth shr 1) + 74; 

2567  1066 
{$ELSE} 
3405  1067 
offsetX:= 30; 
1068 
offsetY:= 180; 

2567  1069 
{$ENDIF} 
3405  1070 
DrawSprite(sprWindBar, (cScreenWidth shr 1)  offsetY, cScreenHeight  offsetX, 0); 
1071 
if WindBarWidth > 0 then 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1072 
begin 
3405  1073 
{$WARNINGS OFF} 
1074 
r.x:= 8  (RealTicks shr 6) mod 8; 

1075 
{$WARNINGS ON} 

1076 
r.y:= 0; 

1077 
r.w:= WindBarWidth; 

1078 
r.h:= 13; 

1079 
DrawSpriteFromRect(sprWindR, r, (cScreenWidth shr 1)  offsetY + 77, cScreenHeight  offsetX + 2, 13, 0); 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1080 
end 
3405  1081 
else 
1082 
if WindBarWidth < 0 then 

1083 
begin 

1084 
{$WARNINGS OFF} 

3407  1085 
r.x:= (Longword(WindBarWidth) + RealTicks shr 6) mod 8; 
3405  1086 
{$WARNINGS ON} 
1087 
r.y:= 0; 

1088 
r.w:=  WindBarWidth; 

1089 
r.h:= 13; 

1090 
DrawSpriteFromRect(sprWindL, r, (cScreenWidth shr 1)  offsetY + 74 + WindBarWidth, cScreenHeight  offsetX + 2, 13, 0); 

1091 
end; 

5  1092 

161  1093 
// AmmoMenu 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1094 
if (AMxShift < AMWidth) or bShowAmmoMenu then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1095 
ShowAmmoMenu; 
161  1096 

2287  1097 
// Cursor 
1098 
if isCursorVisible and bShowAmmoMenu then 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1099 
DrawSprite(sprArrow, CursorPoint.X, cScreenHeight  CursorPoint.Y, (RealTicks shr 6) mod 8); 
942  1100 

4816
c2575faeac3d
use a different depth for different layers (land, water, explosions)
koda
parents:
4812
diff
changeset

1101 
// Chat 
2287  1102 
DrawChat; 
4  1103 

4976  1104 
// various captions 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1105 
if fastUntilLag then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1106 
DrawCentered(0, (cScreenHeight shr 1), SyncTexture); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1107 
if isPaused then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1108 
DrawCentered(0, (cScreenHeight shr 1), PauseTexture); 
3774  1109 
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

1110 
begin 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1111 
if (ReadyTimeLeft = 0) and (missionTimer > 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1112 
dec(missionTimer, Lag); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1113 
if missionTimer < 0 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1114 
missionTimer:= 0; // avoid subtracting below 0 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1115 
if missionTex <> nil then 
4374  1116 
DrawCentered(0, Min((cScreenHeight shr 1) + 100, cScreenHeight  48  missionTex^.h), missionTex); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1117 
end; 
2786  1118 

2724  1119 
// fps 
5326  1120 
{$IFDEF MOBILE} 
3463  1121 
offsetX:= 8; 
2724  1122 
{$ELSE} 
3463  1123 
offsetX:= 10; 
2724  1124 
{$ENDIF} 
3463  1125 
offsetY:= cOffsetY; 
3696  1126 
if (RM = rmDefault) or (RM = rmRightEye) then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1127 
begin 
3692  1128 
inc(Frames); 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

1129 

3692  1130 
if cShowFPS or (GameType = gmtDemo) then 
1131 
inc(CountTicks, Lag); 

1132 
if (GameType = gmtDemo) and (CountTicks >= 1000) then 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1133 
begin 
3692  1134 
i:=GameTicks div 1000; 
1135 
t:= i mod 60; 

1136 
s:= inttostr(t); 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1137 
if t < 10 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1138 
s:= '0' + s; 
3692  1139 
i:= i div 60; 
1140 
t:= i mod 60; 

1141 
s:= inttostr(t) + ':' + s; 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1142 
if t < 10 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1143 
s:= '0' + s; 
3692  1144 
s:= inttostr(i div 60) + ':' + s; 
3407  1145 

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

1146 

3692  1147 
tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels); 
1148 
tmpSurface:= doSurfaceConversion(tmpSurface); 

6380
1ff5ad1d771b
Remove a bunch of unnecessary nil checks. FreeTexture does its own nil check.
nemo
parents:
6302
diff
changeset

1149 
FreeTexture(timeTexture); 
3692  1150 
timeTexture:= Surface2Tex(tmpSurface, false); 
1151 
SDL_FreeSurface(tmpSurface) 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1152 
end; 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

1153 

3692  1154 
if timeTexture <> nil then 
1155 
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

1156 

3692  1157 
if cShowFPS then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1158 
begin 
3692  1159 
if CountTicks >= 1000 then 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1160 
begin 
3692  1161 
FPS:= Frames; 
1162 
Frames:= 0; 

1163 
CountTicks:= 0; 

1164 
s:= inttostr(FPS) + ' fps'; 

1165 
tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels); 

1166 
tmpSurface:= doSurfaceConversion(tmpSurface); 

6380
1ff5ad1d771b
Remove a bunch of unnecessary nil checks. FreeTexture does its own nil check.
nemo
parents:
6302
diff
changeset

1167 
FreeTexture(fpsTexture); 
3692  1168 
fpsTexture:= Surface2Tex(tmpSurface, false); 
1169 
SDL_FreeSurface(tmpSurface) 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1170 
end; 
3692  1171 
if fpsTexture <> nil then 
1172 
DrawTexture((cScreenWidth shr 1)  60  offsetY, offsetX, fpsTexture); 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1173 
end; 
174  1174 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1175 
if CountTicks >= 1000 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1176 
CountTicks:= 0; 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

1177 

3692  1178 
// lag warning (?) 
1179 
inc(SoundTimerTicks, Lag); 

1180 
end; 

1181 

174  1182 
if SoundTimerTicks >= 50 then 
1183 
begin 

1184 
SoundTimerTicks:= 0; 

1185 
if cVolumeDelta <> 0 then 

1186 
begin 

1187 
str(ChangeVolume(cVolumeDelta), s); 

2619  1188 
AddCaption(Format(trmsg[sidVolume], s), cWhiteColor, capgrpVolume) 
174  1189 
end 
756  1190 
end; 
1191 

2724  1192 
if GameState = gsConfirm then 
3025  1193 
DrawCentered(0, (cScreenHeight shr 1), ConfirmTexture); 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

1194 

3107  1195 
if ScreenFade <> sfNone then 
1196 
begin 

1197 
if not isFirstFrame then 

1198 
case ScreenFade of 

1199 
sfToBlack, sfToWhite: if ScreenFadeValue + Lag * ScreenFadeSpeed < sfMax then 

1200 
inc(ScreenFadeValue, Lag * ScreenFadeSpeed) 

1201 
else 

3123  1202 
ScreenFadeValue:= sfMax; 
3107  1203 
sfFromBlack, sfFromWhite: if ScreenFadeValue  Lag * ScreenFadeSpeed > 0 then 
1204 
dec(ScreenFadeValue, Lag * ScreenFadeSpeed) 

1205 
else 

3123  1206 
ScreenFadeValue:= 0; 
3107  1207 
end; 
1208 
if ScreenFade <> sfNone then 

1209 
begin 

1210 
case ScreenFade of 

3376  1211 
sfToBlack, sfFromBlack: Tint(0, 0, 0, ScreenFadeValue * 255 div 1000); 
1212 
sfToWhite, sfFromWhite: Tint($FF, $FF, $FF, ScreenFadeValue * 255 div 1000); 

3107  1213 
end; 
3697  1214 

3113  1215 
VertexBuffer[0].X:= cScreenWidth; 
1216 
VertexBuffer[0].Y:= cScreenHeight; 

1217 
VertexBuffer[1].X:= cScreenWidth; 

1218 
VertexBuffer[1].Y:= 0; 

1219 
VertexBuffer[2].X:= cScreenWidth; 

1220 
VertexBuffer[2].Y:= 0; 

1221 
VertexBuffer[3].X:= cScreenWidth; 

1222 
VertexBuffer[3].Y:= cScreenHeight; 

3697  1223 

3376  1224 
glDisable(GL_TEXTURE_2D); 
3641  1225 

3113  1226 
glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); 
1227 
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); 

3641  1228 

3376  1229 
glEnable(GL_TEXTURE_2D); 
3390  1230 
Tint($FF, $FF, $FF, $FF); 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1231 
if not isFirstFrame and ((ScreenFadeValue = 0) or (ScreenFadeValue = sfMax)) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1232 
ScreenFade:= sfNone 
3107  1233 
end 
1234 
end; 

1235 

3123  1236 
SetScale(zoom); 
1237 

1238 
// Cursor 

1239 
if isCursorVisible then 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1240 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1241 
if not bShowAmmoMenu then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1242 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1243 
with CurrentHedgehog^ do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1244 
if (Gear <> nil) and ((Gear^.State and gstHHChooseTarget) <> 0) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1245 
begin 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1246 
if (CurAmmoType = amNapalm) or (CurAmmoType = amMineStrike) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1247 
DrawLine(3000, topY300, 7000, topY300, 3.0, (Team^.Clan^.Color shr 16), (Team^.Clan^.Color shr 8) and $FF, Team^.Clan^.Color and $FF, $FF); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1248 
i:= GetAmmoEntry(CurrentHedgehog^)^.Pos; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1249 
with Ammoz[CurAmmoType] do 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1250 
if PosCount > 1 then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1251 
DrawSprite(PosSprite, CursorPoint.X  (SpritesData[PosSprite].Width shr 1), cScreenHeight  CursorPoint.Y  (SpritesData[PosSprite].Height shr 1),i); 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1252 
end; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1253 
DrawSprite(sprArrow, CursorPoint.X, cScreenHeight  CursorPoint.Y, (RealTicks shr 6) mod 8) 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1254 
end 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1255 
end; 
3107  1256 
isFirstFrame:= false 
4  1257 
end; 
1258 

79  1259 
procedure MoveCamera; 
5851
e6151aca2d7c
Focus camera on moving current hog (probably more important to player). Should make tumbler, sine gun play, attacking off rope and saucer more playable. Also fix a typo in prior offset, and compensate for zoom.
nemo
parents:
5848
diff
changeset

1260 
var EdgesDist, wdy, shs,z: LongInt; 
3638
33ee433749ba
touch overlay reworked, improvements to zoom and confirmation
koda
parents:
3629
diff
changeset

1261 
PrevSentPointTime: LongWord = 0; 
4  1262 
begin 
5502  1263 
{$IFNDEF MOBILE} 
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset

1264 
if (not (CurrentTeam^.ExtDriven and isCursorVisible and (not bShowAmmoMenu))) and cHasFocus and (GameState <> gsConfirm) then 
5191
c7000a6b397b
 Implement a thin wrapper over real cursor, which eliminates need in SDL_WarpMouse outside game window
unc0rr
parents:
5149
diff
changeset

1265 
uCursor.updatePosition(); 
3551  1266 
{$ENDIF} 
5852  1267 
z:= round(200/zoom); 
6453
11c578d30bd3
Countless imporvements to the parser and countless help to the parser in sources.
unc0rr
parents:
6415
diff
changeset

1268 
if not PlacingHogs and (FollowGear <> nil) and (not isCursorVisible) and (not bShowAmmoMenu) and (not fastUntilLag) then 
5851
e6151aca2d7c
Focus camera on moving current hog (probably more important to player). Should make tumbler, sine gun play, attacking off rope and saucer more playable. Also fix a typo in prior offset, and compensate for zoom.
nemo
parents:
5848
diff
changeset

1269 
if (not autoCameraOn) or ((abs(CursorPoint.X  prevPoint.X) + abs(CursorPoint.Y  prevpoint.Y)) > 4) then 
6296  1270 
begin 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1271 
FollowGear:= nil; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1272 
prevPoint:= CursorPoint; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1273 
exit 
6296  1274 
end 
3680  1275 
else 
6296  1276 
begin 
5852  1277 
CursorPoint.X:= (prevPoint.X * 7 + hwRound(FollowGear^.X) + hwSign(FollowGear^.dX) * z + WorldDx) div 8; 
6098  1278 
if isPhone() or (cScreenHeight < 600) or ((hwSign(FollowGear^.dY) * z) < 10) then 
6016
85410eef7ba4
disable the followgear vertical offset for small screen devices
koda
parents:
6011
diff
changeset

1279 
CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight  (hwRound(FollowGear^.Y) + WorldDy)) div 8 
85410eef7ba4
disable the followgear vertical offset for small screen devices
koda
parents:
6011
diff
changeset

1280 
else 
85410eef7ba4
disable the followgear vertical offset for small screen devices
koda
parents:
6011
diff
changeset

1281 
CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight  (hwRound(FollowGear^.Y) + hwSign(FollowGear^.dY) * z + WorldDy)) div 8; 
6296  1282 
end; 
4  1283 

2375  1284 
wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2  cWaterLine  cVisibleWater; 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1285 
if WorldDy < wdy then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1286 
WorldDy:= wdy; 
2375  1287 

6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1288 
if ((CursorPoint.X = prevPoint.X) and (CursorPoint.Y = prevpoint.Y)) then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1289 
exit; 
4  1290 

3434  1291 
if AMxShift < AMWidth then 
3680  1292 
begin 
5502  1293 
{$IFDEF MOBILE} 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1294 
if CursorPoint.X < cScreenWidth div 2 + AMxShift  AMWidth then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1295 
CursorPoint.X:= cScreenWidth div 2 + AMxShift  AMWidth; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1296 
if CursorPoint.X > cScreenWidth div 2 + AMxShift  AMxOffset then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1297 
CursorPoint.X:= cScreenWidth div 2 + AMxShift  AMxOffset; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1298 
if CursorPoint.Y < cScreenHeight  AMyOffset  SlotsNum * AMSlotSize then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1299 
CursorPoint.Y:= cScreenHeight  AMyOffset  SlotsNum * AMSlotSize; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1300 
if CursorPoint.Y > cScreenHeight  AMyOffset then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1301 
CursorPoint.Y:= cScreenHeight  AMyOffset; 
3463  1302 
{$ELSE} 
6580
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1303 
if CursorPoint.X < cScreenWidth div 2 + AMxShift  AMWidth + AMSlotSize then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1304 
CursorPoint.X:= cScreenWidth div 2 + AMxShift  AMWidth + AMSlotSize; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1305 
if CursorPoint.X > cScreenWidth div 2 + AMxShift  AMxOffset then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1306 
CursorPoint.X:= cScreenWidth div 2 + AMxShift  AMxOffset; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1307 
if CursorPoint.Y > AMyOffset + (SlotsNum + 1) * AMSlotSize then 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents:
6492
diff
changeset

1308 
CursorPoint.Y:= AMyOffset + (SlotsNum + 1) * AMSlotSize; 
6155187bf599
A partial reformatting of the pascal code to have consistent syntax. Things that are stil 