author  koda 
Sun, 02 May 2010 18:42:19 +0000  
changeset 3405  8fdb08497bf1 
parent 3395  095273ad0e08 
child 3407  dcc129c4352e 
permissions  rwrr 
4  1 
(* 
1066  2 
* Hedgewars, a free turn based strategy game 
3236
4ab3917d7d44
Update (c) lines to 2010 as unc0rr requested  they all had varying values so I just took the first year mentioned, then tacked on 2010
nemo
parents:
3204
diff
changeset

3 
* Copyright (c) 20042010 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"} 
20 

4  21 
unit uWorld; 
22 
interface 

2704
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

23 
uses SDLh, uGears, uConsts, uFloat, uRandom; 
2630  24 

4  25 

2699
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

26 
var FollowGear: PGear; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

27 
WindBarWidth: LongInt; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

28 
bShowAmmoMenu: boolean; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

29 
bSelected: boolean; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

30 
bShowFinger: boolean; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

31 
Frames: Longword; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

32 
WaterColor, DeepWaterColor: TSDL_Color; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

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

34 
WorldDy: LongInt; 
3248  35 
SkyOffset: LongInt; 
36 
HorizontOffset: LongInt; 

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

37 
{$IFDEF COUNTTICKS} 
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

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

39 
{$ENDIF} 
3405  40 
wScreen: LongInt; 
41 
hScreen: LongInt; 

42 

3038  43 
procedure initModule; 
44 
procedure freeModule; 

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

45 

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

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

47 
procedure DrawWorld(Lag: LongInt); 
2905  48 
procedure AddCaption(s: shortstring; Color: Longword; Group: TCapGroup); 
49 
procedure ShowMission(caption, subcaption, text: ansistring; icon, time : LongInt); 

2786  50 
procedure HideMission; 
3032  51 
procedure ShakeCamera(amount: LongWord); 
4  52 

53 
implementation 

3165
3ec07a7d8456
just some very sane stuff for the iphone port (plus some macro on pascal files)
koda
parents:
3152
diff
changeset

54 
uses uStore, uMisc, uTeams, uIO, uConsole, uKeys, uLocale, uSound, uAmmos, uVisualGears, uChat, uLandTexture, uLand, GLunit; 
1807  55 

4  56 
type TCaptionStr = record 
762  57 
Tex: PTexture; 
4  58 
EndTime: LongWord; 
59 
end; 

60 

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

61 
var cWaveWidth, cWaveHeight: LongInt; 
2699
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

62 
Captions: array[TCapGroup] of TCaptionStr; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

63 
AMxShift, SlotsNum: LongInt; 
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

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

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

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

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

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

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

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

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

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

73 
missionTimer: LongInt; 
4  74 

75 
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

76 
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

77 
cp: PClan; 
2863  78 
g: ansistring; 
79 

2904  80 
// helper functions to create the goal/game mode string 
2908  81 
function AddGoal(s: ansistring; gf: longword; si: TGoalStrId; i: LongInt): ansistring; 
2905  82 
var t: ansistring; 
2904  83 
begin 
84 
if (GameFlags and gf) <> 0 then 

85 
begin 

86 
t:= inttostr(i); 

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

88 
end; 

89 
AddGoal:= s; 

90 
end; 

91 

2908  92 
function AddGoal(s: ansistring; gf: longword; si: TGoalStrId): ansistring; 
2863  93 
begin 
2904  94 
if (GameFlags and gf) <> 0 then 
95 
s:= s + trgoal[si] + ''; 

2863  96 
AddGoal:= s; 
97 
end; 

4  98 
begin 
3405  99 
missionTimer:= 0; 
100 
// initialized here because when initModule is called cScreenWidth/Height are not yet set 

101 
if (uWorld.wScreen = 0) and (uWorld.hScreen = 0) then 

102 
begin 

103 
uWorld.wScreen:= cScreenWidth; 

104 
uWorld.hScreen:= cScreenHeight; 

105 
end; 

2786  106 

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

107 
if (GameFlags and gfRandomOrder) <> 0 then // shuffle them up a bit 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

108 
begin 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

109 
for i:= 0 to ClansCount * 4 do 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

110 
begin 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

111 
t:= GetRandom(ClansCount); 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

112 
if t <> 0 then 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

113 
begin 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

114 
cp:= ClansArray[0]; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

115 
ClansArray[0]:= ClansArray[t]; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

116 
ClansArray[t]:= cp; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

117 
ClansArray[t]^.ClanIndex:= t; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

118 
ClansArray[0]^.ClanIndex:= 0; 
2856
cc70797a0b75
Adjust LocalClan when shuffling, set to 1 in case all local clans are bots.
nemo
parents:
2855
diff
changeset

119 
if (LocalClan = t) then LocalClan:= 0 
cc70797a0b75
Adjust LocalClan when shuffling, set to 1 in case all local clans are bots.
nemo
parents:
2855
diff
changeset

120 
else if (LocalClan = 0) then LocalClan:= t 
2704
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

121 
end; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

122 
end; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

123 
CurrentTeam:= ClansArray[0]^.Teams[0]; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

124 
end; 
51cda17b7c3b
Rolling random numbers before land is generated is bad, m'kay? InitWorld probably not the best place for it.
nemo
parents:
2699
diff
changeset

125 

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

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

131 

132 
// other important flags 

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

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

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

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

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

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

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

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

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

142 

2908  143 
// modified damage modificator? 
144 
if cDamagePercent <> 100 then 

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

145 
g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent); 
2908  146 

3107  147 
// fade in 
148 
ScreenFade:= sfFromBlack; 

149 
ScreenFadeValue:= sfMax; 

150 
ScreenFadeSpeed:= 1; 

151 

2908  152 
// modified mine timers? 
153 
if cMinesTime <> 3000 then 

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

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

155 
if cMinesTime = 0 then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

157 
else if cMinesTime < 0 then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

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

160 
g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

161 
end; 
2908  162 

2863  163 
// if the string has been set, show it for (default timeframe) seconds 
164 
if g <> '' then ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0); 

165 

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

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

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

169 

284  170 
cGearScrEdgesDist:= Min(cScreenWidth div 2  100, cScreenHeight div 2  50); 
74  171 
SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2); 
2197  172 
prevPoint.X:= 0; 
74  173 
prevPoint.Y:= cScreenHeight div 2; 
1760  174 
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

175 
WorldDy:=  (LAND_HEIGHT  (playHeight div 2)) + (cScreenHeight div 2); 
3107  176 
AMxShift:= 210; 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

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

178 
HorizontOffset:= 0; 
161  179 
end; 
180 

3405  181 

956  182 
procedure ShowAmmoMenu; 
161  183 
const MENUSPEED = 15; 
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

184 
{$IFDEF IPHONEOS} 
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

185 
const MENUWIDTH = 210; 
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

186 
{$ELSE} 
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

187 
const MENUWIDTH = 240; 
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

188 
{$ENDIF} 
2360
d4d545da9dbe
Ok. This time I think I have it. amNothing should work.
nemo
parents:
2359
diff
changeset

189 
var x, y, i, t, l, g: LongInt; 
371  190 
Slot, Pos: LongInt; 
2855
7e6adeb57427
Show the ammo menu of the last local nonbot team when not local turn. needs testing
nemo
parents:
2851
diff
changeset

191 
Ammo: PHHAmmo; 
161  192 
begin 
3405  193 
if (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or 
194 
((CurAmmoGear^.Ammo^.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) then 

195 
bShowAmmoMenu:= false; 

196 
if bShowAmmoMenu then 

197 
begin 

198 
FollowGear:= nil; 

199 
if AMxShift = MENUWIDTH then 

200 
prevPoint.X:= 0; 

201 
if cReducedQuality then 

202 
AMxShift:= 0 

203 
else 

204 
if AMxShift > 0 then 

205 
dec(AMxShift, MENUSPEED); 

206 
end 

207 
else 

2971  208 
begin 
3405  209 
if AMxShift = 0 then 
210 
begin 

211 
CursorPoint.X:= cScreenWidth shr 1; 

212 
CursorPoint.Y:= cScreenHeight shr 1; 

213 
prevPoint:= CursorPoint; 

214 
SDL_WarpMouse(CursorPoint.X + cScreenWidth div 2, cScreenHeight  CursorPoint.Y) 

215 
end; 

216 
if cReducedQuality then 

217 
AMxShift:= MENUWIDTH 

218 
else 

219 
if AMxShift < MENUWIDTH then 

220 
inc(AMxShift, MENUSPEED); 

2971  221 
end; 
3405  222 

223 
Ammo:= nil; 

224 
if (CurrentTeam <> nil) and (CurrentHedgehog <> nil) and (not CurrentTeam^.ExtDriven) and 

225 
(CurrentHedgehog^.BotLevel = 0) then 

226 
Ammo:= CurrentHedgehog^.Ammo 

227 
else 

228 
if (LocalAmmo <> 1) then 

229 
Ammo:= GetAmmoByNum(LocalAmmo); 

230 
Slot:= 0; 

231 
Pos:= 1; 

232 
if Ammo = nil then 

233 
begin 

234 
bShowAmmoMenu:= false; 

235 
exit 

236 
end; 

237 
SlotsNum:= 0; 

238 
x:= (cScreenWidth shr 1)  MENUWIDTH + AMxShift; 

239 
y:= cScreenHeight  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

240 

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

241 
{$IFDEF IPHONEOS} 
3405  242 
dec(y); 
243 
DrawSprite(sprAMBordersIPhone, x, y, 0); 

244 
dec(y); 

245 
DrawSprite(sprAMBordersIPhone, x, y, 1); 

246 
dec(y, 33); 

247 
DrawSprite(sprAMSlotNameIPhone, x, y, 0); 

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

248 
{$ELSE} 
3405  249 
dec(y); 
250 
DrawSprite(sprAMBorders, x, y, 0); 

251 
dec(y); 

252 
DrawSprite(sprAMBorders, x, y, 1); 

253 
dec(y, 33); 

254 
DrawSprite(sprAMSlotName, x, y, 0); 

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

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

256 

3405  257 
for i:= cMaxSlotIndex downto 0 do 
258 
if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then 

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

259 
begin 
3405  260 
if (cScreenHeight  CursorPoint.Y >= y  33) and (cScreenHeight  CursorPoint.Y < y) then 
261 
Slot:= i; 

262 
dec(y, 33); 

263 
inc(SlotsNum); 

264 
{$IFDEF IPHONEOS} 

265 
DrawSprite(sprAMSlotIPhone, x, y, 0); 

266 
g:= 1; 

267 
{$ELSE} 

268 
DrawSprite(sprAMSlot, x, y, 0); 

269 
DrawSprite(sprAMSlotKeys, x + 2, y + 1, i); 

270 
g:= 0; 

271 
{$ENDIF} 

272 
t:= 0; 

273 

274 
while (t <= cMaxSlotAmmoIndex) and (Ammo^[i, t].Count > 0) do 

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

275 
begin 
3405  276 
if (Ammo^[i, t].AmmoType <> amNothing) then 
277 
begin 

278 
l:= Ammoz[Ammo^[i, t].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber; 

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

279 

3405  280 
if l >= 0 then 
281 
begin 

282 
DrawSprite(sprAMAmmosBW, x + g * 33 + 35, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 

283 
if l < 100 then 

284 
DrawSprite(sprTurnsLeft, x + g * 33 + 51, y + 17, l); 

285 
end 

286 
else 

287 
DrawSprite(sprAMAmmos, x + g * 33 + 35, y + 1, LongInt(Ammo^[i, t].AmmoType)1); 

288 
if (Slot = i) and (CursorPoint.X >= x + g * 33 + 35) and (CursorPoint.X < x + g * 33 + 68) then 

289 
begin 

290 
if (l < 0) then 

291 
DrawSprite(sprAMSelection, x + g * 33 + 35, y + 1, 0); 

292 
Pos:= t; 

293 
end; 

294 
inc(g); 

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

295 
end; 
3405  296 
inc(t); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

297 
end; 
3405  298 
end; 
299 
dec(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

300 
{$IFDEF IPHONEOS} 
3405  301 
DrawSprite(sprAMBordersIPhone, x, y, 0); 
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

302 
{$ELSE} 
3405  303 
DrawSprite(sprAMBorders, x, y, 0); 
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

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

305 

3405  306 
if (Pos >= 0) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

307 
begin 
3405  308 
if (Ammo^[Slot, Pos].Count > 0) and (Ammo^[Slot, Pos].AmmoType <> amNothing) then 
309 
if (amSel <> Ammo^[Slot, Pos].AmmoType) or (WeaponTooltipTex = nil) then 

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

310 
begin 
3405  311 
amSel:= Ammo^[Slot, Pos].AmmoType; 
312 
RenderWeaponTooltip(amSel) 

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

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

314 

3405  315 
DrawTexture(cScreenWidth div 2  (MENUWIDTH  10) + AMxShift, cScreenHeight  68, Ammoz[Ammo^[Slot, Pos].AmmoType].NameTex); 
2376  316 

3405  317 
if Ammo^[Slot, Pos].Count < AMMO_INFINITE then 
318 
DrawTexture(cScreenWidth div 2 + AMxShift  35, cScreenHeight  68, CountTexz[Ammo^[Slot, Pos].Count]); 

2376  319 

3405  320 
if bSelected and (Ammoz[Ammo^[Slot, Pos].AmmoType].SkipTurns  CurrentTeam^.Clan^.TurnNumber < 0) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

321 
begin 
3405  322 
bShowAmmoMenu:= false; 
323 
SetWeapon(Ammo^[Slot, Pos].AmmoType); 

324 
bSelected:= false; 

325 
FreeWeaponTooltip; 

326 
exit(); 

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

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

328 
end 
3405  329 
else 
330 
FreeWeaponTooltip; 

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

331 

3405  332 
if (WeaponTooltipTex <> nil) and (AMxShift = 0) then 
333 
ShowWeaponTooltip(x  WeaponTooltipTex^.w  3, min(y, cScreenHeight  WeaponTooltipTex^.h  40)); 

162  334 

3405  335 
bSelected:= false; 
336 
if AMxShift = 0 then 

337 
DrawSprite(sprArrow, CursorPoint.X, cScreenHeight  CursorPoint.Y, (RealTicks shr 6) mod 8) 

4  338 
end; 
339 

162  340 
procedure MoveCamera; forward; 
341 

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

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

345 
lw, lh: GLfloat; 
1915  346 
begin 
3405  347 
WaterColorArray[0].a := Alpha; 
348 
WaterColorArray[1].a := Alpha; 

349 
WaterColorArray[2].a := Alpha; 

350 
WaterColorArray[3].a := Alpha; 

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

351 

3405  352 
lw:= wScreen / cScaleFactor; 
353 
lh:= trunc(hScreen / cScaleFactor) + hScreen div 2 + 16; 

354 

355 
// Water 

356 
r.y:= OffsetY + WorldDy + cWaterLine; 

357 
if WorldDy < trunc(hScreen / cScaleFactor) + hScreen div 2  cWaterLine then 

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

358 
begin 
3405  359 
if r.y < 0 then 
360 
r.y:= 0; 

1915  361 

3405  362 
glDisable(GL_TEXTURE_2D); 
363 
VertexBuffer[0].X:= lw; 

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

365 
VertexBuffer[1].X:= lw; 

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

367 
VertexBuffer[2].X:= lw; 

368 
VertexBuffer[2].Y:= lh; 

369 
VertexBuffer[3].X:= lw; 

370 
VertexBuffer[3].Y:= lh; 

1915  371 

3405  372 
glEnableClientState (GL_COLOR_ARRAY); 
373 
glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]); 

1915  374 

3405  375 
glEnableClientState(GL_VERTEX_ARRAY); 
376 
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

377 

3405  378 
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); 
1915  379 

3405  380 
glDisableClientState(GL_VERTEX_ARRAY); 
381 
glDisableClientState(GL_COLOR_ARRAY); 

1915  382 

3405  383 
Tint($FF, $FF, $FF, $FF); // disable coloring 
384 
glEnable(GL_TEXTURE_2D); 

385 
end; 

1915  386 
end; 
387 

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

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

390 
lw, waves, shift: GLfloat; 
2288  391 
begin 
3405  392 
lw:= wScreen / cScaleFactor; 
2292
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

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

394 

3405  395 
Tint((tnt * WaterColorArray[2].r div 255) + (255tnt), 
396 
(tnt * WaterColorArray[2].g div 255) + (255tnt), 

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

398 
255 

3089  399 
); 
400 

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

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

402 

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

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

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

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

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

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

408 
VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprWater].Height; 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

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

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

411 

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

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

415 
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

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

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

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

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

421 

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

422 
glEnableClientState(GL_VERTEX_ARRAY); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

423 
glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

424 

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

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

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

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

428 

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

429 
glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
87af4ad0ec98
New waves rendering procedure based on using texture coodrinates > 1.0
unc0rr
parents:
2290
diff
changeset

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

432 

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

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

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

435 
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

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

437 
0)} 
2288  438 
end; 
439 

3089  440 
procedure DrawRepeated(spr, sprL, sprR: TSprite; Shift, OffsetY: LongInt); 
2426  441 
var i, w, sw: LongInt; 
442 
begin 

3405  443 
sw:= round(cScreenWidth / cScaleFactor); 
444 
if (SpritesData[sprL].Texture = nil) or (SpritesData[sprR].Texture = nil) then 

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

445 
begin 
3405  446 
w:= SpritesData[spr].Width; 
447 
i:= Shift mod w; 

448 
if i > 0 then dec(i, w); 

449 
dec(i, w * (sw div w + 1)); 

450 
repeat 

451 
DrawSprite(spr, i, WorldDy + LAND_HEIGHT + OffsetY  SpritesData[spr].Height, 0); 

452 
inc(i, w) 

453 
until i > sw 

454 
end 

455 
else 

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

456 
begin 
3405  457 
w:= SpritesData[spr].Width; 
458 
dec(Shift, w div 2); 

459 
DrawSprite(spr, Shift, WorldDy + LAND_HEIGHT + OffsetY  SpritesData[spr].Height, 0); 

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

460 

3405  461 
i:= Shift  SpritesData[sprL].Width; 
462 
while i >= sw  SpritesData[sprL].Width do 

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

463 
begin 
3405  464 
DrawSprite(sprL, i, WorldDy + LAND_HEIGHT + OffsetY  SpritesData[sprL].Height, 0); 
465 
dec(i, SpritesData[sprL].Width); 

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

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

467 

3405  468 
i:= Shift + w; 
469 
while i <= sw do 

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

470 
begin 
3405  471 
DrawSprite(sprR, i, WorldDy + LAND_HEIGHT + OffsetY  SpritesData[sprR].Height, 0); 
472 
inc(i, SpritesData[sprR].Width) 

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

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

474 
end 
2426  475 
end; 
476 

477 

956  478 
procedure DrawWorld(Lag: LongInt); 
371  479 
var i, t: LongInt; 
4  480 
r: TSDL_Rect; 
107  481 
tdx, tdy: Double; 
175  482 
grp: TCapGroup; 
174  483 
s: string[15]; 
2803
1f446fc5c8ec
allow to compile engine as library with HWLIBRARY symbol
koda
parents:
2786
diff
changeset

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

485 
offset, offsetX, offsetY, ScreenBottom: LongInt; 
2724  486 
scale: GLfloat; 
3113  487 
VertexBuffer: array [0..3] of TVertex2f; 
4  488 
begin 
2372  489 
if ZoomValue < zoom then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

491 
zoom:= zoom  0.002 * Lag; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

492 
if ZoomValue > zoom then zoom:= ZoomValue 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

493 
end else 
2372  494 
if ZoomValue > zoom then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

496 
zoom:= zoom + 0.002 * Lag; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

497 
if ZoomValue < zoom then zoom:= ZoomValue 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

498 
end; 
2376  499 

770  500 
// Sky 
756  501 
glClear(GL_COLOR_BUFFER_BIT); 
777  502 
//glPushMatrix; 
503 
//glScalef(1.0, 1.0, 1.0); 

756  504 

281
5b483aa9f2ab
Pause support (mouse cursor is released when the game is paused)
unc0rr
parents:
244
diff
changeset

505 
if not isPaused then MoveCamera; 
162  506 

1812  507 
if not cReducedQuality then 
508 
begin 

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

509 
// Offsets relative to camera  spare them to wimpier cpus, no bg or flakes for them anyway 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

510 
ScreenBottom:= (WorldDy  trunc(cScreenHeight/cScaleFactor)  (cScreenHeight div 2) + cWaterLine); 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

511 
offsetY:= 10 * min(0, 145  ScreenBottom); 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

512 
SkyOffset:= offsetY div 35 + cWaveHeight; 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

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

514 
if ScreenBottom > SkyOffset then 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

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

516 

1812  517 
// background 
3248  518 
DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset); 
519 
DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset); 

4  520 

1812  521 
DrawVisualGears(0); 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

522 

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

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

524 
DrawWater(255, SkyOffset); 
3376  525 
DrawWaves( 1, 0  WorldDx div 32,  cWaveHeight + offsetY div 35, 64); 
526 
DrawWaves( 1, 25 + WorldDx div 25,  cWaveHeight + offsetY div 38, 48); 

527 
DrawWaves( 1, 75  WorldDx div 19,  cWaveHeight + offsetY div 45, 32); 

528 
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

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

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

531 
DrawWaves(1, 100,  (cWaveHeight + (cWaveHeight shr 1)), 0); 
4  532 

762  533 
DrawLand(WorldDx, WorldDy); 
1911  534 

3104  535 
DrawWater(255, 0); 
4  536 

1660  537 
// Attack bar 
538 
if CurrentTeam <> nil then 

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

539 
case AttackBar of 
1660  540 
(* 1: begin 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

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

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

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

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

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

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

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

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

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

551 
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

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

553 
hwRound(Gear^.X) + round(WorldDx + tdx * (24 + i * 2))  16, 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

554 
hwRound(Gear^.Y) + round(WorldDy + tdy * (24 + i * 2))  12, 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

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

557 
end; 
1660  558 

2713  559 
DrawVisualGears(1); 
560 

956  561 
DrawGears; 
4  562 

2713  563 
DrawVisualGears(2); 
1045  564 

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

566 

5  567 
// Waves 
3376  568 
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

569 

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

570 
if not cReducedQuality then 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

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

572 
//DrawWater(cWaterOpacity,  offsetY div 40); 
3376  573 
DrawWaves(1, 50 + WorldDx div 6,  cWaveHeight  offsetY div 40, 8); 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

574 
DrawWater(cWaterOpacity,  offsetY div 20); 
3376  575 
DrawWaves( 1, 75  WorldDx div 4,  cWaveHeight  offsetY div 20, 2); 
3265
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

576 
DrawWater(cWaterOpacity,  offsetY div 10); 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

577 
DrawWaves( 1, 25 + WorldDx div 3,  cWaveHeight  offsetY div 10, 0); 
5fe62296fdea
 Parallax effect for horizont when water is out of sight
palewolf
parents:
3249
diff
changeset

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

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

580 
DrawWaves(1, 50,  (cWaveHeight shr 1), 0); 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

581 

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

582 

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

584 
// Target 
3104  585 
if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then 
586 
begin 

587 
with PHedgehog(CurrentHedgehog)^ do 

588 
begin 

3110  589 
if (Ammo^[CurSlot, CurAmmo].AmmoType = amBee) then 
590 
DrawRotatedF(sprTargetBee, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360) 

591 
else 

3104  592 
DrawRotatedF(sprTargetP, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360); 
593 
end; 

594 
end; 

4  595 
{$WARNINGS ON} 
2161
0c8634241fa4
Some work on zooming. Hedgewars are now unplayable.
unc0rr
parents:
2152
diff
changeset

596 

2567  597 
{$IFDEF IPHONEOS} 
2724  598 
scale:= 1.5; 
2567  599 
{$ELSE} 
2724  600 
scale:= 2.0; 
601 
{$ENDIF} 

602 
SetScale(scale); 

603 

604 

605 
// Turn time 

2803
1f446fc5c8ec
allow to compile engine as library with HWLIBRARY symbol
koda
parents:
2786
diff
changeset

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

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

610 
{$ENDIF} 
4  611 
if TurnTimeLeft <> 0 then 
612 
begin 

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

614 
if i>99 then t:= 112 

615 
else if i>9 then t:= 96 

616 
else t:= 80; 

3025  617 
DrawSprite(sprFrame, (cScreenWidth shr 1) + t, cScreenHeight  offsetX, 1); 
4  618 
while i > 0 do 
619 
begin 

620 
dec(t, 32); 

3025  621 
DrawSprite(sprBigDigit, (cScreenWidth shr 1) + t, cScreenHeight  offsetX, i mod 10); 
4  622 
i:= i div 10 
623 
end; 

3025  624 
DrawSprite(sprFrame, (cScreenWidth shr 1) + t  4, cScreenHeight  offsetX, 0); 
4  625 
end; 
79  626 

2567  627 
{$IFNDEF IPHONEOS} 
2428  628 
// Timetrial 
629 
if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then 

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

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

631 
if TimeTrialStopTime = 0 then i:= RealTicks  TimeTrialStartTime else i:= TimeTrialStopTime  TimeTrialStartTime; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

633 
// right frame 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

634 
DrawSprite(sprFrame, cScreenWidth div 2 + t, 8, 1); 
2428  635 
dec(t, 32); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

636 
// 1 ms 
2428  637 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
638 
dec(t, 32); 

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

639 
i:= i div 10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

640 
// 10 ms 
2428  641 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
642 
dec(t, 32); 

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

643 
i:= i div 10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

644 
// 100 ms 
2428  645 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

646 
dec(t, 16); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

648 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, 11); 
2428  649 
dec(t, 32); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

650 
i:= i div 10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

651 
// 1 s 
2428  652 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
653 
dec(t, 32); 

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

654 
i:= i div 10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

655 
// 10s 
2428  656 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 6); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

657 
dec(t, 16); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

659 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, 10); 
2428  660 
dec(t, 32); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

661 
i:= i div 6; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

662 
// 1 m 
2428  663 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
664 
dec(t, 32); 

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

665 
i:= i div 10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

666 
// 10 m 
2428  667 
DrawSprite(sprBigDigit, cScreenWidth div 2 + t, 8, i mod 10); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

668 
// left frame 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

669 
DrawSprite(sprFrame, cScreenWidth div 2 + t  4, 8, 0); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

670 
end; 
2567  671 
{$ENDIF} 
672 

4  673 
// Captions 
2567  674 
{$IFDEF IPHONEOS} 
2803
1f446fc5c8ec
allow to compile engine as library with HWLIBRARY symbol
koda
parents:
2786
diff
changeset

675 
offset:= 40; 
2567  676 
{$ELSE} 
2724  677 
if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then offset:= 48 
678 
else offset:= 8; 

2567  679 
{$ENDIF} 
2428  680 

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

681 
for grp:= Low(TCapGroup) to High(TCapGroup) do 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

682 
with Captions[grp] do 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

683 
if Tex <> nil then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

685 
DrawCentered(0, offset, Tex); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

686 
inc(offset, Tex^.h + 2); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

687 
if EndTime <= RealTicks then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

689 
FreeTexture(Tex); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

691 
EndTime:= 0 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

693 
end; 
4  694 

47  695 
// Teams Healths 
547  696 
for t:= 0 to Pred(TeamsCount) do 
697 
with TeamsArray[t]^ do 

47  698 
begin 
2839  699 
highlight:= bShowFinger and (CurrentTeam = TeamsArray[t]) and ((RealTicks mod 1000) < 500); 
700 

2747  701 
if highlight then 
3390  702 
Tint(((Clan^.Color shr 16) and $FF), ((Clan^.Color shr 8) and $FF), (Clan^.Color and $FF), $FF); 
2839  703 

704 
// draw name 

705 
DrawTexture(NameTagTex^.w  16, cScreenHeight + DrawHealthY, NameTagTex); 

706 

707 
// draw flag 

708 
DrawTexture(14, cScreenHeight + DrawHealthY, FlagTex); 

709 

710 
// draw health bar 

690  711 
r.x:= 0; 
712 
r.y:= 0; 

547  713 
r.w:= 2 + TeamHealthBarWidth; 
764
7513452b1d51
Now game looks almost like it did before switching to OpenGL
unc0rr
parents:
762
diff
changeset

714 
r.h:= HealthTex^.h; 
2747  715 
DrawFromRect(14, cScreenHeight + DrawHealthY, @r, HealthTex); 
690  716 

2839  717 
// draw health bar's right border 
83  718 
inc(r.x, cTeamHealthWidth + 2); 
719 
r.w:= 3; 

2839  720 
DrawFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY, @r, HealthTex); 
721 
// if highlighted, draw flag and other contents again to keep their colors 

722 
// this approach should be faster than drawing all borders one by one tinted or not 

723 
if highlight then 

724 
begin 

3390  725 
Tint($FF, $FF, $FF, $FF); 
690  726 

2839  727 
// draw name 
2747  728 
r.x:= 2; 
729 
r.y:= 2; 

2839  730 
r.w:= NameTagTex^.w  4; 
731 
r.h:= NameTagTex^.h  4; 

732 
DrawFromRect(NameTagTex^.w  14, cScreenHeight + DrawHealthY + 2, @r, NameTagTex); 

733 
// draw flag 

2747  734 
r.w:= 22; 
735 
r.h:= 15; 

736 
DrawFromRect(12, cScreenHeight + DrawHealthY + 2, @r, FlagTex); 

2839  737 
// draw health bar 
738 
r.w:= TeamHealthBarWidth + 1; 

739 
r.h:= HealthTex^.h  4; 

740 
DrawFromRect(16, cScreenHeight + DrawHealthY + 2, @r, HealthTex); 

2747  741 
end; 
47  742 
end; 
743 

5  744 
// Lag alert 
2567  745 
if isInLag then DrawSprite(sprLag, 32  (cScreenWidth shr 1), 32, (RealTicks shr 7) mod 12); 
4  746 

5  747 
// Wind bar 
2567  748 
{$IFDEF IPHONEOS} 
3405  749 
offsetX:= cScreenHeight  13; 
750 
offsetY:= (cScreenWidth shr 1) + 74; 

2567  751 
{$ELSE} 
3405  752 
offsetX:= 30; 
753 
offsetY:= 180; 

2567  754 
{$ENDIF} 
3405  755 
DrawSprite(sprWindBar, (cScreenWidth shr 1)  offsetY, cScreenHeight  offsetX, 0); 
756 
if WindBarWidth > 0 then 

757 
begin 

758 
{$WARNINGS OFF} 

759 
r.x:= 8  (RealTicks shr 6) mod 8; 

760 
{$WARNINGS ON} 

761 
r.y:= 0; 

762 
r.w:= WindBarWidth; 

763 
r.h:= 13; 

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

765 
end 

766 
else 

767 
if WindBarWidth < 0 then 

768 
begin 

769 
{$WARNINGS OFF} 

770 
r.x:= (WindBarWidth + RealTicks shr 6) mod 8; 

771 
{$WARNINGS ON} 

772 
r.y:= 0; 

773 
r.w:=  WindBarWidth; 

774 
r.h:= 13; 

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

776 
end; 

5  777 

161  778 
// AmmoMenu 
1120  779 
if (AMxShift < 210) or bShowAmmoMenu then ShowAmmoMenu; 
161  780 

2287  781 
// Cursor 
782 
if isCursorVisible and bShowAmmoMenu then 

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

942  784 

2287  785 
DrawChat; 
4  786 

2567  787 
if fastUntilLag then DrawCentered(0, (cScreenHeight shr 1), SyncTexture); 
788 
if isPaused then DrawCentered(0, (cScreenHeight shr 1), PauseTexture); 

281
5b483aa9f2ab
Pause support (mouse cursor is released when the game is paused)
unc0rr
parents:
244
diff
changeset

789 

3304  790 
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

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

792 
if missionTimer > 0 then dec(missionTimer, Lag); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

794 
if missionTex <> nil then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

795 
DrawCentered(0, min((cScreenHeight shr 1) + 100, cScreenHeight  48  missionTex^.h), missionTex); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

796 
end; 
2786  797 

2724  798 
// fps 
799 
{$IFDEF IPHONEOS} 

3025  800 
offset:= 8; 
2724  801 
{$ELSE} 
802 
offset:= 10; 

803 
{$ENDIF} 

4  804 
inc(Frames); 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

805 

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

806 
if cShowFPS or (GameType = gmtDemo) then inc(CountTicks, Lag); 
2851  807 
if (GameType = gmtDemo) and (CountTicks >= 1000) then 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

808 
begin 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

809 
i:=GameTicks div 60000; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

810 
t:=(GameTicks(i*60000)) div 1000; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

811 
s:=''; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

812 
if i<10 then s:='0'; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

813 
s:= s+inttostr(i)+':'; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

814 
if t<10 then s:=s+'0'; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

815 
s:= s+inttostr(t); 
2851  816 
if timeTexture <> nil then FreeTexture(timeTexture); 
2850
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

817 
tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels); 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

818 
tmpSurface:= doSurfaceConversion(tmpSurface); 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

819 
timeTexture:= Surface2Tex(tmpSurface, false); 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

820 
SDL_FreeSurface(tmpSurface) 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

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

822 

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

823 
if timeTexture <> nil then 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

824 
DrawTexture((cScreenWidth shr 1)  10  timeTexture^.w, offset + timeTexture^.h+5, timeTexture); 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

825 

298
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

826 
if cShowFPS then 
4  827 
begin 
298
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

828 
if CountTicks >= 1000 then 
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

829 
begin 
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

830 
FPS:= Frames; 
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

831 
Frames:= 0; 
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

832 
CountTicks:= 0; 
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

833 
s:= inttostr(FPS) + ' fps'; 
759  834 
if fpsTexture <> nil then FreeTexture(fpsTexture); 
2665
50b4e544c163
complete transition of longword>sdl_color for TTF bindings
koda
parents:
2630
diff
changeset

835 
tmpSurface:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(s), cWhiteColorChannels); 
2670  836 
tmpSurface:= doSurfaceConversion(tmpSurface); 
2290
bf87ca44782e
Selectively enable clamping  seeing if this helps avoid weird flake problems while still fixing vertical lines in waves and sky
nemo
parents:
2288
diff
changeset

837 
fpsTexture:= Surface2Tex(tmpSurface, false); 
759  838 
SDL_FreeSurface(tmpSurface) 
298
112e61bd2cc2
Render FPS value to its own surface one time a second
unc0rr
parents:
295
diff
changeset

839 
end; 
759  840 
if fpsTexture <> nil then 
2724  841 
DrawTexture((cScreenWidth shr 1)  50, offset, fpsTexture); 
4  842 
end; 
174  843 

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

844 
if CountTicks >= 1000 then CountTicks:= 0; 
f6f8db825ce7
A little clock for convenience in finding things in demos
nemo
parents:
2839
diff
changeset

845 

2724  846 
// lag warning (?) 
174  847 
inc(SoundTimerTicks, Lag); 
848 
if SoundTimerTicks >= 50 then 

849 
begin 

850 
SoundTimerTicks:= 0; 

851 
if cVolumeDelta <> 0 then 

852 
begin 

853 
str(ChangeVolume(cVolumeDelta), s); 

2619  854 
AddCaption(Format(trmsg[sidVolume], s), cWhiteColor, capgrpVolume) 
174  855 
end 
756  856 
end; 
857 

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

860 

3107  861 
if ScreenFade <> sfNone then 
862 
begin 

863 
if not isFirstFrame then 

864 
case ScreenFade of 

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

866 
inc(ScreenFadeValue, Lag * ScreenFadeSpeed) 

867 
else 

3123  868 
ScreenFadeValue:= sfMax; 
3107  869 
sfFromBlack, sfFromWhite: if ScreenFadeValue  Lag * ScreenFadeSpeed > 0 then 
870 
dec(ScreenFadeValue, Lag * ScreenFadeSpeed) 

871 
else 

3123  872 
ScreenFadeValue:= 0; 
3107  873 
end; 
874 
if ScreenFade <> sfNone then 

875 
begin 

876 
case ScreenFade of 

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

3107  879 
end; 
3113  880 

881 
VertexBuffer[0].X:= cScreenWidth; 

882 
VertexBuffer[0].Y:= cScreenHeight; 

883 
VertexBuffer[1].X:= cScreenWidth; 

884 
VertexBuffer[1].Y:= 0; 

885 
VertexBuffer[2].X:= cScreenWidth; 

886 
VertexBuffer[2].Y:= 0; 

887 
VertexBuffer[3].X:= cScreenWidth; 

888 
VertexBuffer[3].Y:= cScreenHeight; 

889 

3376  890 
glDisable(GL_TEXTURE_2D); 
3113  891 
glEnableClientState(GL_VERTEX_ARRAY); 
892 
glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); 

893 
glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); 

894 
glDisableClientState(GL_VERTEX_ARRAY); 

3376  895 
glEnable(GL_TEXTURE_2D); 
3390  896 
Tint($FF, $FF, $FF, $FF); 
3123  897 
if not isFirstFrame and ((ScreenFadeValue = 0) or (ScreenFadeValue = sfMax)) then ScreenFade:= sfNone 
3107  898 
end 
899 
end; 

900 

3123  901 
SetScale(zoom); 
902 

903 
// Cursor 

904 
if isCursorVisible then 

905 
begin 

906 
if not bShowAmmoMenu then 

3204  907 
begin 
3123  908 
with CurrentHedgehog^ do 
909 
if (Gear^.State and gstHHChooseTarget) <> 0 then 

910 
begin 

911 
i:= Ammo^[CurSlot, CurAmmo].Pos; 

912 
with Ammoz[Ammo^[CurSlot, CurAmmo].AmmoType] do 

913 
if PosCount > 1 then 

3204  914 
DrawSprite(PosSprite, CursorPoint.X  (SpritesData[PosSprite].Width shr 1), cScreenHeight  CursorPoint.Y  (SpritesData[PosSprite].Height shr 1),i); 
3123  915 
end; 
3204  916 
DrawSprite(sprArrow, CursorPoint.X, cScreenHeight  CursorPoint.Y, (RealTicks shr 6) mod 8) 
917 
end 

3123  918 
end; 
3107  919 
isFirstFrame:= false 
4  920 
end; 
921 

2905  922 
procedure AddCaption(s: shortstring; Color: Longword; Group: TCapGroup); 
4  923 
begin 
2142  924 
//if Group in [capgrpGameState] then WriteLnToConsole(s); 
762  925 
if Captions[Group].Tex <> nil then FreeTexture(Captions[Group].Tex); 
4  926 

762  927 
Captions[Group].Tex:= RenderStringTex(s, Color, fntBig); 
2142  928 

929 
case Group of 

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

930 
capgrpGameState: Captions[Group].EndTime:= RealTicks + 2200 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

932 
Captions[Group].EndTime:= RealTicks + 1400 + LongWord(Captions[Group].Tex^.w) * 3; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

933 
end; 
4  934 
end; 
935 

79  936 
procedure MoveCamera; 
4  937 
const PrevSentPointTime: LongWord = 0; 
2428  938 
var EdgesDist, wdy: LongInt; 
4  939 
begin 
2970
011075f93746
Let's try this too (override following remote if in ammo menu)
nemo
parents:
2959
diff
changeset

940 
if (not (CurrentTeam^.ExtDriven and isCursorVisible and not bShowAmmoMenu)) and cHasFocus then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

942 
SDL_GetMouseState(@CursorPoint.X, @CursorPoint.Y); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

943 
CursorPoint.X:= CursorPoint.X  (cScreenWidth shr 1); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

944 
CursorPoint.Y:= cScreenHeight  CursorPoint.Y; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

945 
end; 
678  946 

2762
2fbc8d35eb52
Mode to place hogs at start of game. Will probably need a bit more testing.
nemo
parents:
2747
diff
changeset

947 
if (not PlacingHogs) and (FollowGear <> nil) and (not isCursorVisible) and (not fastUntilLag) then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

948 
if abs(CursorPoint.X  prevPoint.X) + abs(CursorPoint.Y  prevpoint.Y) > 4 then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

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

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

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

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

954 
else begin 
2970
011075f93746
Let's try this too (override following remote if in ammo menu)
nemo
parents:
2959
diff
changeset

955 
CursorPoint.X:= (prevPoint.X * 7 + hwRound(FollowGear^.X) + hwSign(FollowGear^.dX) * 100 + WorldDx) div 8; 
011075f93746
Let's try this too (override following remote if in ammo menu)
nemo
parents:
2959
diff
changeset

956 
CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight  (hwRound(FollowGear^.Y) + WorldDy)) div 8; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

957 
end; 
4  958 

2375  959 
wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2  cWaterLine  cVisibleWater; 
960 
if WorldDy < wdy then WorldDy:= wdy; 

961 

2197  962 
if ((CursorPoint.X = prevPoint.X) and (CursorPoint.Y = prevpoint.Y)) then exit; 
4  963 

1120  964 
if AMxShift < 210 then 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

965 
begin 
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

966 
if CursorPoint.X < cScreenWidth div 2 + AMxShift  206 then CursorPoint.X:= cScreenWidth div 2 + AMxShift  206; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

967 
if CursorPoint.X > cScreenWidth div 2 + AMxShift  10 then CursorPoint.X:= cScreenWidth div 2 + AMxShift  10; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

968 
if CursorPoint.Y > 75 + SlotsNum * 33 then CursorPoint.Y:= 75 + SlotsNum * 33; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

969 
if CursorPoint.Y < 76 then CursorPoint.Y:= 76; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

971 
if cHasFocus then SDL_WarpMouse(CursorPoint.X + cScreenWidth div 2, cScreenHeight  CursorPoint.Y); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

973 
end; 
162  974 

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

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

977 
if (not CurrentTeam^.ExtDriven) and (GameTicks >= PrevSentPointTime + cSendCursorPosTime) then 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

979 
SendIPCXY('P', CursorPoint.X  WorldDx, cScreenHeight  CursorPoint.Y  WorldDy); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

980 
PrevSentPointTime:= GameTicks 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

982 
end; 
351  983 

4  984 
if isCursorVisible or (FollowGear <> nil) then 
985 
begin 

284  986 
if isCursorVisible then EdgesDist:= cCursorEdgesDist 
987 
else EdgesDist:= cGearScrEdgesDist; 

2197  988 
if CursorPoint.X <  cScreenWidth div 2 + EdgesDist then 
4  989 
begin 
2197  990 
WorldDx:= WorldDx  CursorPoint.X  cScreenWidth div 2 + EdgesDist; 
991 
CursorPoint.X:=  cScreenWidth div 2 + EdgesDist 

4  992 
end else 
2197  993 
if CursorPoint.X > cScreenWidth div 2  EdgesDist then 
4  994 
begin 
2197  995 
WorldDx:= WorldDx  CursorPoint.X + cScreenWidth div 2  EdgesDist; 
2198  996 
CursorPoint.X:= cScreenWidth div 2  EdgesDist 
4  997 
end; 
284  998 
if CursorPoint.Y < EdgesDist then 
4  999 
begin 
2197  1000 
WorldDy:= WorldDy + CursorPoint.Y  EdgesDist; 
284  1001 
CursorPoint.Y:= EdgesDist 
4  1002 
end else 
284  1003 
if CursorPoint.Y > cScreenHeight  EdgesDist then 
4  1004 
begin 
2197  1005 
WorldDy:= WorldDy + CursorPoint.Y  cScreenHeight + EdgesDist; 
284  1006 
CursorPoint.Y:= cScreenHeight  EdgesDist 
4  1007 
end; 
1008 
end else 

308  1009 
if cHasFocus then 
1010 
begin 

70  1011 
WorldDx:= WorldDx  CursorPoint.X + prevPoint.X; 
2197  1012 
WorldDy:= WorldDy + CursorPoint.Y  prevPoint.Y; 
2162  1013 
CursorPoint.X:= 0; 
1014 
CursorPoint.Y:= cScreenHeight div 2; 

308  1015 
end; 
351  1016 

4  1017 
prevPoint:= CursorPoint; 
2567  1018 
if cHasFocus then SDL_WarpMouse(CursorPoint.X + (cScreenWidth shr 1), cScreenHeight  CursorPoint.Y); 
1760  1019 
if WorldDy > LAND_HEIGHT + 1024 then WorldDy:= LAND_HEIGHT + 1024; 
2375  1020 
if WorldDy < wdy then WorldDy:= wdy; 
2426  1021 
if WorldDx <  LAND_WIDTH  1024 then WorldDx:=  LAND_WIDTH  1024; 
1022 
if WorldDx > 1024 then WorldDx:= 1024; 

4  1023 
end; 
1024 

2905  1025 
procedure ShowMission(caption, subcaption, text: ansistring; icon, time : LongInt); 
2786  1026 
var r: TSDL_Rect; 
1027 
begin 

1028 
r.w:= 32; 

1029 
r.h:= 32; 

1030 

1031 
if time = 0 then time:= 5000; 

1032 
missionTimer:= time; 

1033 
if missionTex <> nil then FreeTexture(missionTex); 

1034 

1035 
if icon > 1 then 

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

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

1037 
r.x:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1038 
r.y:= icon * 32; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1039 
missionTex:= RenderHelpWindow(caption, subcaption, text, '', 0, MissionIcons, @r) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1040 
end 
2786  1041 
else 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

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

1043 
r.x:= ((icon  1) shr 5) * 32; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1044 
r.y:= ((icon  1) mod 32) * 32; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1045 
missionTex:= RenderHelpWindow(caption, subcaption, text, '', 0, SpritesData[sprAMAmmos].Surface, @r) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1046 
end; 
2786  1047 
end; 
1048 

1049 
procedure HideMission; 

1050 
begin 

3045  1051 
missionTimer:= 0; 
1052 
if missionTex <> nil then FreeTexture(missionTex); 

2786  1053 
end; 
1054 

3032  1055 
procedure ShakeCamera(amount: LongWord); 
1056 
begin 

1057 
amount:= max(1, amount); 

1058 
WorldDx:= WorldDx  amount + LongInt(getRandom(1 + amount * 2)); 

1059 
WorldDy:= WorldDy  amount + LongInt(getRandom(1 + amount * 2)); 

1060 
end; 

1061 

3038  1062 
procedure initModule; 
2699
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

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

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

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

1066 
WindBarWidth:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1067 
bShowAmmoMenu:= false; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1068 
bSelected:= false; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1069 
bShowFinger:= false; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1070 
Frames:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1071 
WorldDx:= 512; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1072 
WorldDy:= 256; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

1073 

3405  1074 
// really initalized in initWorld 
1075 
uWorld.wScreen:= 0; 

1076 
uWorld.hScreen:= 0; 

1077 

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

1078 
FPS:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1079 
CountTicks:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1080 
SoundTimerTicks:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1081 
prevPoint.X:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1082 
prevPoint.Y:= 0; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1083 
missionTimer:= 0; 
3240  1084 
missionTex:= nil; 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2931
diff
changeset

1085 

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

1086 
FillChar(Captions, sizeof(Captions), 0) 
2699
249adefa9c1c
replace initialization/finalization statements with custom init functions
koda
parents:
2682
diff
changeset

1087 
end; 
4  1088 

3038  1089 
procedure freeModule; 
2716
b9ca1bfca24f
complete the replacement of init/free wrappers for every unit
koda
parents:
2713
diff
changeset

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

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

1092 

4  1093 
end. 