1177 procedure RenderWorldEdge(Lag: Longword); |
1177 procedure RenderWorldEdge(Lag: Longword); |
1178 var |
1178 var |
1179 VertexBuffer: array [0..3] of TVertex2f; |
1179 VertexBuffer: array [0..3] of TVertex2f; |
1180 c1, c2: LongWord; // couple of colours for edges |
1180 c1, c2: LongWord; // couple of colours for edges |
1181 begin |
1181 begin |
1182 if (WorldEdge = weSea) or (WorldEdge = weSky) or (WorldEdge = weBounce) then |
1182 if WorldEdge <> weNone then |
1183 begin |
1183 begin |
1184 (* I think for a bounded world, will fill the left and right areas with black or something. Also will probably want various border effects/animations based on border type. Prob also, say, trigger a border animation timer on an impact. *) |
1184 (* I think for a bounded world, will fill the left and right areas with black or something. Also will probably want various border effects/animations based on border type. Prob also, say, trigger a border animation timer on an impact. *) |
1185 |
1185 |
1186 glDisable(GL_TEXTURE_2D); |
1186 glDisable(GL_TEXTURE_2D); |
1187 glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
1187 glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
1188 glEnableClientState(GL_COLOR_ARRAY); |
1188 if WorldEdge = weWrap then |
|
1189 glColor4ub($00, $00, $00, $20) |
|
1190 else |
|
1191 begin |
|
1192 glEnableClientState(GL_COLOR_ARRAY); |
|
1193 glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WorldFade[0]); |
|
1194 end; |
1189 |
1195 |
1190 glPushMatrix; |
1196 glPushMatrix; |
1191 glTranslatef(WorldDx, WorldDy, 0); |
1197 glTranslatef(WorldDx, WorldDy, 0); |
1192 glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WorldFade[0]); |
|
1193 |
1198 |
1194 VertexBuffer[0].X:= leftX-20; |
1199 VertexBuffer[0].X:= leftX-20; |
1195 VertexBuffer[0].Y:= -3000; |
1200 VertexBuffer[0].Y:= -3500; |
1196 VertexBuffer[1].X:= leftX-20; |
1201 VertexBuffer[1].X:= leftX-20; |
1197 VertexBuffer[1].Y:= cWaterLine+cVisibleWater; |
1202 VertexBuffer[1].Y:= cWaterLine+cVisibleWater; |
1198 VertexBuffer[2].X:= leftX+30; |
1203 VertexBuffer[2].X:= leftX+30; |
1199 VertexBuffer[2].Y:= cWaterLine+cVisibleWater; |
1204 VertexBuffer[2].Y:= cWaterLine+cVisibleWater; |
1200 VertexBuffer[3].X:= leftX+30; |
1205 VertexBuffer[3].X:= leftX+30; |
1201 VertexBuffer[3].Y:= -3000; |
1206 VertexBuffer[3].Y:= -3500; |
1202 |
1207 |
1203 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); |
1208 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); |
1204 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); |
1209 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); |
1205 |
1210 |
1206 VertexBuffer[0].X:= rightX+20; |
1211 VertexBuffer[0].X:= rightX+20; |
1263 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 3.0, c1); |
1268 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 3.0, c1); |
1264 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 1.0, c2) |
1269 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 1.0, c2) |
1265 end |
1270 end |
1266 else if WorldEdge = weWrap then |
1271 else if WorldEdge = weWrap then |
1267 begin |
1272 begin |
1268 DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 5.0, $A0, $30, $60, max(50,255-LeftImpactTimer)); |
1273 {DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 5.0, $A0, $30, $60, max(50,255-LeftImpactTimer)); |
1269 DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 2.0, $FF0000FF); |
1274 DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 2.0, $FF0000FF); |
1270 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 5.0, $A0, $30, $60, max(50,255-RightImpactTimer)); |
1275 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 5.0, $A0, $30, $60, max(50,255-RightImpactTimer)); |
1271 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 2.0, $FF0000FF); |
1276 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 2.0, $FF0000FF);} |
1272 end |
1277 end |
1273 else |
1278 else |
1274 begin |
1279 begin |
1275 DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 5.0, $2E8B5780); |
1280 DrawLine(leftX, -3000, leftX, cWaterLine+cVisibleWater, 5.0, $2E8B5780); |
1276 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 5.0, $2E8B5780) |
1281 DrawLine(rightX, -3000, rightX, cWaterLine+cVisibleWater, 5.0, $2E8B5780) |