summaryrefslogtreecommitdiff
path: root/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%main.c
blob: e3737753231ff1da0fb040f933e96e028192a094 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 9e d4 e1 80 0c f7 b4 0b 27 c3 22 0a af b9 52 51 b5 9f 46 f9 0a Vim.UnDo...........'."...RQ..F..
0020 00 3c ba 45 92 1c 2b 8f ef d5 77 00 00 01 d8 00 00 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 .<.E..+...w.......,....glutCreat
0040 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 00 eWindow("Minecraft.Prototype");.
0060 00 01 c7 00 00 00 16 00 00 00 01 00 00 00 17 00 00 00 00 00 00 00 17 00 00 00 17 00 00 00 17 00 ................................
0080 00 00 00 6a 08 fe 1e 04 01 00 00 00 14 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 ...j.........._.................
00a0 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f4 3e 04 01 00 00 00 02 00 f5 18 00 ..................j..>..........
0220 00 00 88 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 89 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
0260 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............5.................
0280 00 00 00 00 00 00 88 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f ................................
02a0 00 00 00 00 00 00 f5 18 00 00 00 00 88 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 7d 00 00 00 ............................}...
02c0 01 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b2 0e 00 00 00 00 00 00 35 81 5f d0 ............................5._.
02e0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 ................................
0300 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 6a 08 f5 4d 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 01 06 00 00 00 01 00 ..j..M..........................
0480 00 00 02 2f 2a 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .../*5..........................
04a0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f .............................5._
04c0 d0 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 00 00 00 00 ................................
04e0 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 6a 08 f5 4f 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 06 ...j..O.........................
0660 00 00 00 03 25 2f 2a 00 00 00 50 20 2a 20 6d 69 6e 65 63 72 61 66 74 5f 70 72 6f 74 6f 2e 63 20 ....%/*...P.*.minecraft_proto.c.
0680 e2 80 93 20 41 20 66 61 69 74 68 66 75 6c 20 72 65 63 72 65 61 74 69 6f 6e 20 6f 66 20 74 68 65 ....A.faithful.recreation.of.the
06a0 20 66 69 72 73 74 20 4d 69 6e 65 63 72 61 66 74 20 70 72 6f 74 6f 74 79 70 65 3a 00 00 00 48 20 .first.Minecraft.prototype:...H.
06c0 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 20 66 6c 61 74 20 67 72 61 *.....................a.flat.gra
06e0 73 73 20 70 6c 61 74 66 6f 72 6d 20 77 69 74 68 20 66 69 72 73 74 2d 70 65 72 73 6f 6e 20 6d 6f ss.platform.with.first-person.mo
0700 76 65 6d 65 6e 74 2e 00 00 00 02 20 2a 00 00 00 0c 20 2a 20 43 6f 6e 74 72 6f 6c 73 3a 00 00 00 vement......*.....*.Controls:...
0720 3b 20 2a 20 20 20 57 2c 20 41 2c 20 53 2c 20 44 20 20 e2 80 93 20 4d 6f 76 65 20 66 6f 72 77 61 ;.*...W,.A,.S,.D......Move.forwa
0740 72 64 20 2f 20 6c 65 66 74 20 2f 20 62 61 63 6b 77 61 72 64 20 2f 20 72 69 67 68 74 00 00 00 30 rd./.left./.backward./.right...0
0760 20 2a 20 20 20 4d 6f 75 73 65 20 20 20 20 20 20 20 e2 80 93 20 4c 6f 6f 6b 20 61 72 6f 75 6e 64 .*...Mouse...........Look.around
0780 20 28 63 75 72 73 6f 72 20 6c 6f 63 6b 65 64 29 00 00 00 19 20 2a 20 20 20 45 53 43 20 20 20 20 .(cursor.locked).....*...ESC....
07a0 20 20 20 20 20 e2 80 93 20 51 75 69 74 00 00 00 02 20 2a 00 00 00 21 20 2a 20 43 6f 6d 70 69 6c .........Quit.....*...!.*.Compil
07c0 61 74 69 6f 6e 20 28 4c 69 6e 75 78 2c 20 46 72 65 65 47 4c 55 54 29 3a 00 00 00 43 20 2a 20 20 ation.(Linux,.FreeGLUT):...C.*..
07e0 20 67 63 63 20 2d 6f 20 6d 69 6e 65 63 72 61 66 74 5f 70 72 6f 74 6f 20 6d 69 6e 65 63 72 61 66 .gcc.-o.minecraft_proto.minecraf
0800 74 5f 70 72 6f 74 6f 2e 63 20 2d 6c 67 6c 75 74 20 2d 6c 47 4c 20 2d 6c 47 4c 55 20 2d 6c 6d 00 t_proto.c.-lglut.-lGL.-lGLU.-lm.
0820 00 00 03 20 2a 2f 00 00 00 00 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e ....*/........#include.<GL/glut.
0840 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 69 6e 63 6c h>....#include.<math.h>....#incl
0860 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 ude.<stdio.h>....#include.<stdli
0880 62 2e 68 3e 00 00 00 00 00 00 00 25 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 63 6f 6e 73 74 61 b.h>.......%/*.----------.consta
08a0 6e 74 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e nts.----------.*/....#define.WIN
08c0 44 4f 57 5f 57 49 44 54 48 20 20 20 38 30 30 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f DOW_WIDTH...800....#define.WINDO
08e0 57 5f 48 45 49 47 48 54 20 20 36 30 30 00 00 00 35 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 W_HEIGHT..600...5#define.PLATFOR
0900 4d 5f 53 49 5a 45 20 20 35 30 20 20 20 20 20 20 20 20 20 20 2f 2f 20 62 6c 6f 63 6b 73 20 70 65 M_SIZE..50..........//.blocks.pe
0920 72 20 73 69 64 65 00 00 00 36 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 r.side...6#define.MOVE_SPEED....
0940 20 35 2e 30 66 20 20 20 20 20 20 20 20 2f 2f 20 75 6e 69 74 73 20 70 65 72 20 73 65 63 6f 6e 64 .5.0f........//.units.per.second
0960 00 00 00 37 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e 32 66 20 ...7#define.MOUSE_SENS.....0.2f.
0980 20 20 20 20 20 20 20 2f 2f 20 64 65 67 72 65 65 73 20 70 65 72 20 70 69 78 65 6c 00 00 00 00 00 .......//.degrees.per.pixel.....
09a0 00 00 28 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 63 61 6d 65 72 61 20 73 74 61 74 65 20 2d 2d ..(/*.----------.camera.state.--
09c0 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 4a 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 --------.*/...Jfloat.camX.=.0.0f
09e0 2c 20 63 61 6d 59 20 3d 20 31 2e 36 32 66 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 20 20 20 2f ,.camY.=.1.62f,.camZ.=.0.0f;.../
0a00 2f 20 65 79 65 20 68 65 69 67 68 74 20 7e 31 2e 36 32 20 62 6c 6f 63 6b 73 00 00 00 55 66 6c 6f /.eye.height.~1.62.blocks...Uflo
0a20 61 74 20 79 61 77 20 3d 20 30 2e 30 66 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at.yaw.=.0.0f;..................
0a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 6f 74 61 74 69 6f 6e 20 61 72 6f 75 6e ...............//.rotation.aroun
0a60 64 20 59 20 61 78 69 73 20 28 64 65 67 72 65 65 73 29 00 00 00 55 66 6c 6f 61 74 20 70 69 74 63 d.Y.axis.(degrees)...Ufloat.pitc
0a80 68 20 3d 20 30 2e 30 66 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.=.0.0f;.......................
0aa0 20 20 20 20 20 20 20 20 2f 2f 20 72 6f 74 61 74 69 6f 6e 20 61 72 6f 75 6e 64 20 58 20 61 78 69 ........//.rotation.around.X.axi
0ac0 73 20 28 64 65 67 72 65 65 73 29 00 00 00 00 00 00 00 2a 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s.(degrees).......*/*.----------
0ae0 20 6d 6f 76 65 6d 65 6e 74 20 66 6c 61 67 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 .movement.flags.----------.*/...
0b00 26 69 6e 74 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 42 61 63 6b 77 61 &int.moveForward.=.0,.moveBackwa
0b20 72 64 20 3d 20 30 3b 00 00 00 20 69 6e 74 20 6d 6f 76 65 4c 65 66 74 20 3d 20 30 2c 20 6d 6f 76 rd.=.0;....int.moveLeft.=.0,.mov
0b40 65 52 69 67 68 74 20 3d 20 30 3b 00 00 00 00 00 00 00 22 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d eRight.=.0;......."/*.----------
0b60 20 74 69 6d 69 6e 67 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 11 69 6e 74 20 6c 61 73 .timing.----------.*/....int.las
0b80 74 54 69 6d 65 20 3d 20 30 3b 00 00 00 00 00 00 00 2f 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 tTime.=.0;.......//*.----------.
0ba0 66 75 6e 63 74 69 6f 6e 20 70 72 6f 74 6f 74 79 70 65 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a function.prototypes.----------.*
0bc0 2f 00 00 00 0e 76 6f 69 64 20 69 6e 69 74 47 4c 28 29 3b 00 00 00 29 76 6f 69 64 20 64 72 61 77 /....void.initGL();...)void.draw
0be0 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 29 3b Cube(float.x,.float.y,.float.z);
0c00 00 00 00 12 76 6f 69 64 20 64 72 61 77 47 72 6f 75 6e 64 28 29 3b 00 00 00 0f 76 6f 69 64 20 64 ....void.drawGround();....void.d
0c20 69 73 70 6c 61 79 28 29 3b 00 00 00 1b 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c isplay();....void.reshape(int.w,
0c40 20 69 6e 74 20 68 29 3b 00 00 00 33 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e .int.h);...3void.keyboardDown(un
0c60 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 00 signed.char.key,.int.x,.int.y);.
0c80 00 00 31 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 ..1void.keyboardUp(unsigned.char
0ca0 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 00 00 00 20 76 6f 69 64 20 70 61 73 .key,.int.x,.int.y);....void.pas
0cc0 73 69 76 65 4d 6f 75 73 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 00 00 00 0c 76 6f 69 64 siveMouse(int.x,.int.y);....void
0ce0 20 69 64 6c 65 28 29 3b 00 00 00 23 76 6f 69 64 20 75 70 64 61 74 65 43 61 6d 65 72 61 28 66 6c .idle();...#void.updateCamera(fl
0d00 6f 61 74 20 64 65 6c 74 61 54 69 6d 65 29 3b 00 00 00 00 00 00 00 48 2f 2a 20 3d 3d 3d 3d 3d 3d oat.deltaTime);.......H/*.======
0d20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
0d40 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 20 2a 2f 00 ============================.*/.
0d60 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a ......!int.main(int.argc,.char.*
0d80 2a 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 2c 20 *argv).{........glutInit(&argc,.
0da0 61 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 argv);...=....glutInitDisplayMod
0dc0 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f e(GLUT_DOUBLE.|.GLUT_RGB.|.GLUT_
0de0 44 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a DEPTH);...4....glutInitWindowSiz
0e00 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 3b 00 e(WINDOW_WIDTH,.WINDOW_HEIGHT);.
0e20 00 00 45 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 ..E....glutCreateWindow("Minecra
0e40 66 74 20 46 69 72 73 74 20 50 72 6f 74 6f 74 79 70 65 20 e2 80 93 20 47 72 61 73 73 20 50 6c 61 ft.First.Prototype.....Grass.Pla
0e60 74 66 6f 72 6d 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 4c 28 29 3b 00 00 00 tform");............initGL();...
0e80 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 64 69 73 70 6c 61 79 .........glutDisplayFunc(display
0ea0 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 28 72 65 73 68 61 70 );........glutReshapeFunc(reshap
0ec0 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 28 6b 65 79 62 e);...#....glutKeyboardFunc(keyb
0ee0 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 55 70 oardDown);...#....glutKeyboardUp
0f00 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 28 20 20 20 20 67 6c 75 74 50 61 73 Func(keyboardUp);...(....glutPas
0f20 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 70 61 73 73 69 76 65 4d 6f 75 73 65 29 3b 00 00 00 siveMotionFunc(passiveMouse);...
0f40 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 00 00 00 00 00 3b .....glutIdleFunc(idle);.......;
0f60 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 5f 43 55 52 53 4f 52 5f 4e 4f ....glutSetCursor(GLUT_CURSOR_NO
0f80 4e 45 29 3b 20 20 20 2f 2f 20 68 69 64 65 20 6d 6f 75 73 65 20 63 75 72 73 6f 72 00 00 00 00 00 NE);...//.hide.mouse.cursor.....
0fa0 00 00 2a 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 45 ..*....lastTime.=.glutGet(GLUT_E
0fc0 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 6e 4c 6f 6f LAPSED_TIME);........glutMainLoo
0fe0 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 p();........return.0;....}......
1000 00 2f 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 4f 70 65 6e 47 4c 20 2f 20 47 4c 55 54 20 73 65 .//*.----------.OpenGL./.GLUT.se
1020 74 75 70 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 0f 76 6f 69 64 20 69 6e 69 74 47 4c tup.----------.*/....void.initGL
1040 28 29 20 7b 00 00 00 40 20 20 20 20 67 6c 43 6c 65 61 72 43 6f 6c 6f 72 28 30 2e 35 33 66 2c 20 ().{...@....glClearColor(0.53f,.
1060 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 20 20 20 2f 2f 20 6c 69 67 68 74 20 0.81f,.0.98f,.1.0f);...//.light.
1080 62 6c 75 65 20 73 6b 79 00 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 blue.sky........glEnable(GL_DEPT
10a0 48 5f 54 45 53 54 29 3b 00 00 00 48 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c H_TEST);...H....glEnable(GL_CULL
10c0 5f 46 41 43 45 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 _FACE);.....................//.d
10e0 6f 6e 27 74 20 64 72 61 77 20 62 61 63 6b 20 66 61 63 65 73 00 00 00 18 20 20 20 20 67 6c 43 75 on't.draw.back.faces........glCu
1100 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 2f 2a 20 llFace(GL_BACK);....}.......G/*.
1120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 61 20 73 69 6e 67 6c 65 20 74 65 78 74 75 72 65 64 e2 80 91 63 ----------.a.single.textured...c
1140 6f 6c 6f 75 72 65 64 20 63 75 62 65 20 28 31 c3 97 31 c3 97 31 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d oloured.cube.(1..1..1).---------
1160 2d 20 2a 2f 00 00 00 2a 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 -.*/...*void.drawCube(float.x,.f
1180 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 29 20 7b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 loat.y,.float.z).{........glPush
11a0 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 78 2c Matrix();........glTranslatef(x,
11c0 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 0e 20 20 20 20 2f 2a 20 63 6f 6c 6f 72 73 3a 00 00 00 .y,.z);............/*.colors:...
11e0 23 20 20 20 20 20 20 20 74 6f 70 20 20 3d 20 67 72 65 65 6e 20 28 30 2e 32 2c 20 30 2e 37 2c 20 #.......top..=.green.(0.2,.0.7,.
1200 30 2e 31 29 00 00 00 27 20 20 20 20 20 20 20 73 69 64 65 73 20 3d 20 62 72 6f 77 6e 20 28 30 2e 0.1)...'.......sides.=.brown.(0.
1220 35 35 2c 20 30 2e 32 37 2c 20 30 2e 30 37 29 00 00 00 2f 20 20 20 20 20 20 20 62 6f 74 74 6f 6d 55,.0.27,.0.07).../.......bottom
1240 20 3d 20 64 61 72 6b 65 72 20 62 72 6f 77 6e 20 28 30 2e 33 35 2c 20 30 2e 31 36 2c 20 30 2e 30 .=.darker.brown.(0.35,.0.16,.0.0
1260 35 29 00 00 00 06 20 20 20 20 2a 2f 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 5)........*/........glBegin(GL_Q
1280 55 41 44 53 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 2f 2f 20 74 6f 70 20 66 61 63 65 20 28 79 UADS);............//.top.face.(y
12a0 20 3d 20 31 29 00 00 00 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 32 66 2c 20 30 2e 37 .=.1)........glColor3f(0.2f,.0.7
12c0 66 2c 20 30 2e 31 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 f,.0.1f);...!....glVertex3f(0.0f
12e0 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 ,.1.0f,.0.0f);...!....glVertex3f
1300 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 (1.0f,.1.0f,.0.0f);...!....glVer
1320 74 65 78 33 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 tex3f(1.0f,.1.0f,.1.0f);...!....
1340 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 glVertex3f(0.0f,.1.0f,.1.0f);...
1360 00 00 00 00 2b 20 20 20 20 2f 2f 20 62 6f 74 74 6f 6d 20 66 61 63 65 20 28 79 20 3d 20 30 29 20 ....+....//.bottom.face.(y.=.0).
1380 e2 80 93 20 64 61 72 6b 65 72 20 62 72 6f 77 6e 00 00 00 23 20 20 20 20 67 6c 43 6f 6c 6f 72 33 ....darker.brown...#....glColor3
13a0 66 28 30 2e 33 35 66 2c 20 30 2e 31 36 66 2c 20 30 2e 30 35 66 29 3b 00 00 00 21 20 20 20 20 67 f(0.35f,.0.16f,.0.05f);...!....g
13c0 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 lVertex3f(0.0f,.0.0f,.1.0f);...!
13e0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 29 ....glVertex3f(1.0f,.0.0f,.1.0f)
1400 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 30 2e 30 66 2c 20 ;...!....glVertex3f(1.0f,.0.0f,.
1420 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 30 0.0f);...!....glVertex3f(0.0f,.0
1440 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 00 00 00 00 22 20 20 20 20 2f 2f 20 66 72 6f 6e 74 20 .0f,.0.0f);......."....//.front.
1460 66 61 63 65 20 28 7a 20 3d 20 30 29 20 e2 80 93 20 73 69 64 65 00 00 00 23 20 20 20 20 67 6c 43 face.(z.=.0).....side...#....glC
1480 6f 6c 6f 72 33 66 28 30 2e 35 35 66 2c 20 30 2e 32 37 66 2c 20 30 2e 30 37 66 29 3b 00 00 00 21 olor3f(0.55f,.0.27f,.0.07f);...!
14a0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 ....glVertex3f(0.0f,.0.0f,.0.0f)
14c0 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 30 2e 30 66 2c 20 ;...!....glVertex3f(1.0f,.0.0f,.
14e0 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 31 0.0f);...!....glVertex3f(1.0f,.1
1500 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e .0f,.0.0f);...!....glVertex3f(0.
1520 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 00 00 00 00 21 20 20 20 20 2f 2f 20 62 0f,.1.0f,.0.0f);.......!....//.b
1540 61 63 6b 20 66 61 63 65 20 28 7a 20 3d 20 31 29 20 e2 80 93 20 73 69 64 65 00 00 00 23 20 20 20 ack.face.(z.=.1).....side...#...
1560 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 35 35 66 2c 20 30 2e 32 37 66 2c 20 30 2e 30 37 66 29 3b .glColor3f(0.55f,.0.27f,.0.07f);
1580 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 ...!....glVertex3f(1.0f,.0.0f,.1
15a0 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 30 2e .0f);...!....glVertex3f(0.0f,.0.
15c0 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 0f,.1.0f);...!....glVertex3f(0.0
15e0 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 f,.1.0f,.1.0f);...!....glVertex3
1600 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 00 00 00 00 21 20 20 20 20 f(1.0f,.1.0f,.1.0f);.......!....
1620 2f 2f 20 6c 65 66 74 20 66 61 63 65 20 28 78 20 3d 20 30 29 20 e2 80 93 20 73 69 64 65 00 00 00 //.left.face.(x.=.0).....side...
1640 23 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 35 35 66 2c 20 30 2e 32 37 66 2c 20 30 2e 30 #....glColor3f(0.55f,.0.27f,.0.0
1660 37 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 2c 20 30 2e 30 7f);...!....glVertex3f(0.0f,.0.0
1680 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 30 2e 30 66 f,.1.0f);...!....glVertex3f(0.0f
16a0 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 ,.0.0f,.0.0f);...!....glVertex3f
16c0 28 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 (0.0f,.1.0f,.0.0f);...!....glVer
16e0 74 65 78 33 66 28 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 00 00 00 00 22 tex3f(0.0f,.1.0f,.1.0f);......."
1700 20 20 20 20 2f 2f 20 72 69 67 68 74 20 66 61 63 65 20 28 78 20 3d 20 31 29 20 e2 80 93 20 73 69 ....//.right.face.(x.=.1).....si
1720 64 65 00 00 00 23 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 35 35 66 2c 20 30 2e 32 37 66 de...#....glColor3f(0.55f,.0.27f
1740 2c 20 30 2e 30 37 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 ,.0.07f);...!....glVertex3f(1.0f
1760 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 ,.0.0f,.0.0f);...!....glVertex3f
1780 28 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 67 6c 56 65 72 (1.0f,.0.0f,.1.0f);...!....glVer
17a0 74 65 78 33 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 29 3b 00 00 00 21 20 20 20 20 tex3f(1.0f,.1.0f,.1.0f);...!....
17c0 67 6c 56 65 72 74 65 78 33 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 glVertex3f(1.0f,.1.0f,.0.0f);...
17e0 00 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 .........glEnd();........glPopMa
1800 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 39 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d trix();....}.......9/*.---------
1820 2d 20 64 72 61 77 20 74 68 65 20 77 68 6f 6c 65 20 67 72 61 73 73 20 70 6c 61 74 66 6f 72 6d 20 -.draw.the.whole.grass.platform.
1840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 13 76 6f 69 64 20 64 72 61 77 47 72 6f 75 6e 64 ----------.*/....void.drawGround
1860 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f ().{...!....int.half.=.PLATFORM_
1880 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 2d 68 SIZE./.2;...(....for.(int.i.=.-h
18a0 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 alf;.i.<.half;.i++).{...,.......
18c0 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 6a 20 3c 20 68 61 6c 66 3b 20 6a .for.(int.j.=.-half;.j.<.half;.j
18e0 2b 2b 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 ++).{.../............drawCube((f
1900 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 29 3b 00 00 00 09 20 20 20 20 loat)i,.0.0f,.(float)j);........
1920 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2c 2f 2a 20 2d 2d ....}........}....}.......,/*.--
1940 2d 2d 2d 2d 2d 2d 2d 2d 20 64 69 73 70 6c 61 79 20 63 61 6c 6c 62 61 63 6b 20 2d 2d 2d 2d 2d 2d --------.display.callback.------
1960 2d 2d 2d 2d 20 2a 2f 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 28 29 20 7b 00 00 00 37 20 ----.*/....void.display().{...7.
1980 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 46 45 52 5f 42 49 54 20 7c ...glClear(GL_COLOR_BUFFER_BIT.|
19a0 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 00 00 00 00 00 00 1f 20 20 .GL_DEPTH_BUFFER_BIT);..........
19c0 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 ..glMatrixMode(GL_MODELVIEW);...
19e0 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 00 00 00 00 2d 20 20 .....glLoadIdentity();.......-..
1a00 20 20 2f 2f 20 63 61 6d 65 72 61 20 72 6f 74 61 74 69 6f 6e 3a 20 66 69 72 73 74 20 70 69 74 63 ..//.camera.rotation:.first.pitc
1a20 68 2c 20 74 68 65 6e 20 79 61 77 00 00 00 28 20 20 20 20 67 6c 52 6f 74 61 74 65 66 28 2d 70 69 h,.then.yaw...(....glRotatef(-pi
1a40 74 63 68 2c 20 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 28 20 20 20 20 67 tch,.1.0f,.0.0f,.0.0f);...(....g
1a60 6c 52 6f 74 61 74 65 66 28 2d 79 61 77 2c 20 20 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 lRotatef(-yaw,...0.0f,.1.0f,.0.0
1a80 66 29 3b 00 00 00 28 20 20 20 20 2f 2f 20 6d 6f 76 65 20 63 61 6d 65 72 61 20 74 6f 20 70 6f 73 f);...(....//.move.camera.to.pos
1aa0 69 74 69 6f 6e 20 28 6e 65 67 61 74 65 64 29 00 00 00 26 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 ition.(negated)...&....glTransla
1ac0 74 65 66 28 2d 63 61 6d 58 2c 20 2d 63 61 6d 59 2c 20 2d 63 61 6d 5a 29 3b 00 00 00 00 00 00 00 tef(-camX,.-camY,.-camZ);.......
1ae0 11 20 20 20 20 64 72 61 77 47 72 6f 75 6e 64 28 29 3b 00 00 00 00 00 00 00 16 20 20 20 20 67 6c .....drawGround();............gl
1b00 75 74 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2a 2f 2a 20 utSwapBuffers();....}.......*/*.
1b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 77 69 6e 64 6f 77 20 72 65 73 68 61 70 65 20 2d 2d 2d 2d 2d 2d ----------.window.reshape.------
1b40 2d 2d 2d 2d 20 2a 2f 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 ----.*/....void.reshape(int.w,.i
1b60 6e 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 nt.h).{........glViewport(0,.0,.
1b80 77 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 w,.h);........glMatrixMode(GL_PR
1ba0 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 OJECTION);........glLoadIdentity
1bc0 28 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 65 28 37 30 2e 30 2c 20 ();...=....gluPerspective(70.0,.
1be0 28 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 2e 31 2c 20 31 30 30 30 (double)w./.(double)h,.0.1,.1000
1c00 2e 30 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 .0);........glMatrixMode(GL_MODE
1c20 4c 56 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2a 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d LVIEW);....}.......*/*.---------
1c40 2d 20 6b 65 79 62 6f 61 72 64 20 70 72 65 73 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 -.keyboard.press.----------.*/..
1c60 00 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 .4void.keyboardDown(unsigned.cha
1c80 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 73 77 r.key,.int.x,.int.y).{........sw
1ca0 69 74 63 68 20 28 6b 65 79 29 20 7b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 77 27 itch.(key).{...4........case.'w'
1cc0 3a 20 63 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 20 3d 20 31 3b 20 62 72 :.case.'W':.moveForward..=.1;.br
1ce0 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 61 73 65 20 27 eak;...4........case.'s':.case.'
1d00 53 27 3a 20 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 34 S':.moveBackward.=.1;.break;...4
1d20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 27 41 27 3a 20 6d 6f 76 65 ........case.'a':.case.'A':.move
1d40 4c 65 66 74 20 20 20 20 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 Left.....=.1;.break;...4........
1d60 63 61 73 65 20 27 64 27 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 68 74 20 20 20 case.'d':.case.'D':.moveRight...
1d80 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 38 20 20 20 20 20 20 20 20 63 61 73 65 20 32 37 3a .=.1;.break;...8........case.27:
1da0 20 65 78 69 74 28 30 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .exit(0);.......................
1dc0 20 20 2f 2f 20 45 53 43 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2c 2f 2a ..//.ESC........}....}.......,/*
1de0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6b 65 79 62 6f 61 72 64 20 72 65 6c 65 61 73 65 20 2d 2d 2d .----------.keyboard.release.---
1e00 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e -------.*/...2void.keyboardUp(un
1e20 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b signed.char.key,.int.x,.int.y).{
1e40 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 6b 65 79 29 20 7b 00 00 00 34 20 20 20 20 20 20 ........switch.(key).{...4......
1e60 20 20 63 61 73 65 20 27 77 27 3a 20 63 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 ..case.'w':.case.'W':.moveForwar
1e80 64 20 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 d..=.0;.break;...4........case.'
1ea0 73 27 3a 20 63 61 73 65 20 27 53 27 3a 20 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 30 3b 20 s':.case.'S':.moveBackward.=.0;.
1ec0 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 break;...4........case.'a':.case
1ee0 20 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 20 20 20 20 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 .'A':.moveLeft.....=.0;.break;..
1f00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f .4........case.'d':.case.'D':.mo
1f20 76 65 52 69 67 68 74 20 20 20 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 veRight....=.0;.break;........}.
1f40 00 00 01 7d 00 00 00 00 00 00 00 36 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 6d 6f 75 73 65 20 ...}.......6/*.----------.mouse.
1f60 6c 6f 6f 6b 20 28 63 75 72 73 6f 72 20 6c 6f 63 6b 65 64 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 look.(cursor.locked).----------.
1f80 2a 2f 00 00 00 21 76 6f 69 64 20 70 61 73 73 69 76 65 4d 6f 75 73 65 28 69 6e 74 20 78 2c 20 69 */...!void.passiveMouse(int.x,.i
1fa0 6e 74 20 79 29 20 7b 00 00 00 1b 20 20 20 20 2f 2f 20 63 65 6e 74 72 65 20 6f 66 20 74 68 65 20 nt.y).{........//.centre.of.the.
1fc0 77 69 6e 64 6f 77 00 00 00 2d 20 20 20 20 69 6e 74 20 63 78 20 3d 20 67 6c 75 74 47 65 74 28 47 window...-....int.cx.=.glutGet(G
1fe0 4c 55 54 5f 57 49 4e 44 4f 57 5f 57 49 44 54 48 29 20 20 2f 20 32 3b 00 00 00 2d 20 20 20 20 69 LUT_WINDOW_WIDTH)../.2;...-....i
2000 6e 74 20 63 79 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 57 49 4e 44 4f 57 5f 48 45 49 47 nt.cy.=.glutGet(GLUT_WINDOW_HEIG
2020 48 54 29 20 2f 20 32 3b 00 00 00 00 00 00 00 20 20 20 20 20 2f 2f 20 63 6f 6d 70 75 74 65 20 64 HT)./.2;............//.compute.d
2040 65 6c 74 61 20 66 72 6f 6d 20 63 65 6e 74 72 65 00 00 00 14 20 20 20 20 69 6e 74 20 64 78 20 3d elta.from.centre........int.dx.=
2060 20 78 20 2d 20 63 78 3b 00 00 00 14 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 63 79 3b .x.-.cx;........int.dy.=.y.-.cy;
2080 00 00 00 00 00 00 00 45 20 20 20 20 2f 2f 20 6f 6e 6c 79 20 75 70 64 61 74 65 20 69 66 20 74 68 .......E....//.only.update.if.th
20a0 65 72 65 20 69 73 20 61 63 74 75 61 6c 20 6d 6f 76 65 6d 65 6e 74 20 28 61 76 6f 69 64 73 20 64 ere.is.actual.movement.(avoids.d
20c0 72 69 66 74 20 6f 6e 20 77 61 72 70 29 00 00 00 23 20 20 20 20 69 66 20 28 64 78 20 3d 3d 20 30 rift.on.warp)...#....if.(dx.==.0
20e0 20 26 26 20 64 79 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 14 20 20 20 20 .&&.dy.==.0).return;............
2100 2f 2f 20 75 70 64 61 74 65 20 61 6e 67 6c 65 73 00 00 00 1d 20 20 20 20 79 61 77 20 20 20 2b 3d //.update.angles........yaw...+=
2120 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 1d 20 20 20 20 70 69 74 63 68 20 2b .dx.*.MOUSE_SENS;........pitch.+
2140 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 00 00 00 00 24 20 20 20 20 2f 2f =.dy.*.MOUSE_SENS;.......$....//
2160 20 63 6c 61 6d 70 20 70 69 74 63 68 20 74 6f 20 61 76 6f 69 64 20 66 6c 69 70 70 69 6e 67 00 00 .clamp.pitch.to.avoid.flipping..
2180 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 20 38 39 2e 30 66 29 20 70 69 74 63 68 20 .'....if.(pitch.>..89.0f).pitch.
21a0 3d 20 20 38 39 2e 30 66 3b 00 00 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 2d 38 39 =..89.0f;...'....if.(pitch.<.-89
21c0 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 00 00 00 00 1b 20 20 20 20 .0f).pitch.=.-89.0f;............
21e0 2f 2f 20 6b 65 65 70 20 79 61 77 20 69 6e 20 5b 30 2c 20 33 36 30 29 00 00 00 22 20 20 20 20 69 //.keep.yaw.in.[0,.360)..."....i
2200 66 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 00 f.(yaw.<.0.0f).yaw.+=.360.0f;...
2220 25 20 20 20 20 69 66 20 28 79 61 77 20 3e 3d 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d 3d 20 33 %....if.(yaw.>=.360.0f).yaw.-=.3
2240 36 30 2e 30 66 3b 00 00 00 00 00 00 00 21 20 20 20 20 2f 2f 20 77 61 72 70 20 63 75 72 73 6f 72 60.0f;.......!....//.warp.cursor
2260 20 62 61 63 6b 20 74 6f 20 63 65 6e 74 72 65 00 00 00 1c 20 20 20 20 67 6c 75 74 57 61 72 70 50 .back.to.centre........glutWarpP
2280 6f 69 6e 74 65 72 28 63 78 2c 20 63 79 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 2f 2a 20 2d ointer(cx,.cy);....}.......E/*.-
22a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 69 64 6c 65 3a 20 75 70 64 61 74 65 20 6d 6f 76 65 6d 65 6e 74 20 ---------.idle:.update.movement.
22c0 62 61 73 65 64 20 6f 6e 20 64 65 6c 74 61 20 74 69 6d 65 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a based.on.delta.time.----------.*
22e0 2f 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 29 20 20 20 20 69 6e 74 20 6e 6f /....void.idle().{...)....int.no
2300 77 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 45 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 w.=.glutGet(GLUT_ELAPSED_TIME);.
2320 00 00 37 20 20 20 20 66 6c 6f 61 74 20 64 74 20 3d 20 28 6e 6f 77 20 2d 20 6c 61 73 74 54 69 6d ..7....float.dt.=.(now.-.lastTim
2340 65 29 20 2f 20 31 30 30 30 2e 30 66 3b 20 20 20 2f 2f 20 73 65 63 6f 6e 64 73 00 00 00 4c 20 20 e)./.1000.0f;...//.seconds...L..
2360 20 20 69 66 20 28 64 74 20 3e 20 30 2e 31 66 29 20 64 74 20 3d 20 30 2e 31 66 3b 20 20 20 20 20 ..if.(dt.>.0.1f).dt.=.0.1f;.....
2380 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 76 6f 69 64 20 68 75 67 65 20 6a 75 6d 70 73 20 61 ...........//.avoid.huge.jumps.a
23a0 66 74 65 72 20 70 61 75 73 65 00 00 00 13 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 fter.pause........lastTime.=.now
23c0 3b 00 00 00 00 00 00 00 15 20 20 20 20 75 70 64 61 74 65 43 61 6d 65 72 61 28 64 74 29 3b 00 00 ;............updateCamera(dt);..
23e0 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 ......glutPostRedisplay();....}.
2400 00 00 00 00 00 00 34 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 61 70 70 6c 79 20 6d 6f 76 65 6d ......4/*.----------.apply.movem
2420 65 6e 74 20 74 6f 20 63 61 6d 65 72 61 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 00 00 00 1d 76 ent.to.camera.----------.*/....v
2440 6f 69 64 20 75 70 64 61 74 65 43 61 6d 65 72 61 28 66 6c 6f 61 74 20 64 74 29 20 7b 00 00 00 1b oid.updateCamera(float.dt).{....
2460 20 20 20 20 69 66 20 28 64 74 20 3c 3d 20 30 2e 30 66 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 ....if.(dt.<=.0.0f).return;.....
2480 00 00 22 20 20 20 20 66 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 4d 4f 56 45 5f 53 50 45 45 44 20 .."....float.speed.=.MOVE_SPEED.
24a0 2a 20 64 74 3b 00 00 00 00 00 00 00 38 20 20 20 20 2f 2f 20 66 6f 72 77 61 72 64 20 61 6e 64 20 *.dt;.......8....//.forward.and.
24c0 72 69 67 68 74 20 76 65 63 74 6f 72 73 20 28 68 6f 72 69 7a 6f 6e 74 61 6c 20 70 6c 61 6e 65 20 right.vectors.(horizontal.plane.
24e0 6f 6e 6c 79 29 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 79 61 77 20 only)...'....float.yawRad.=.yaw.
2500 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 66 6f *.M_PI./.180.0f;..."....float.fo
2520 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 20 20 66 6c rwardX.=.sinf(yawRad);...#....fl
2540 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 oat.forwardZ.=.-cosf(yawRad);...
2560 22 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 20 20 3d 20 63 6f 73 66 28 79 61 77 52 61 "....float.rightX...=.cosf(yawRa
2580 64 29 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 20 20 3d 20 73 69 6e 66 d);..."....float.rightZ...=.sinf
25a0 28 79 61 77 52 61 64 29 3b 00 00 00 00 00 00 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 46 6f 72 (yawRad);.......M....if.(moveFor
25c0 77 61 72 64 29 20 20 7b 20 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 ward)..{.camX.+=.forwardX.*.spee
25e0 64 3b 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 d;.camZ.+=.forwardZ.*.speed;.}..
2600 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 42 61 63 6b 77 61 72 64 29 20 7b 20 63 61 6d 58 20 2d .M....if.(moveBackward).{.camX.-
2620 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 =.forwardX.*.speed;.camZ.-=.forw
2640 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 4c ardZ.*.speed;.}...M....if.(moveL
2660 65 66 74 29 20 20 20 20 20 7b 20 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 58 20 20 20 2a 20 73 70 eft).....{.camX.-=.rightX...*.sp
2680 65 65 64 3b 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 20 20 2a 20 73 70 65 65 64 3b 20 7d eed;.camZ.-=.rightZ...*.speed;.}
26a0 00 00 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 52 69 67 68 74 29 20 20 20 20 7b 20 63 61 6d 58 ...M....if.(moveRight)....{.camX
26c0 20 2b 3d 20 72 69 67 68 74 58 20 20 20 2a 20 73 70 65 65 64 3b 20 63 61 6d 5a 20 2b 3d 20 72 69 .+=.rightX...*.speed;.camZ.+=.ri
26e0 67 68 74 5a 20 20 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 00 00 00 00 00 49 20 20 20 20 2f 2f 20 ghtZ...*.speed;.}.......I....//.
2700 73 69 6d 70 6c 65 20 62 6f 75 6e 64 61 72 79 20 28 6b 65 65 70 20 70 6c 61 79 65 72 20 6f 6e 20 simple.boundary.(keep.player.on.
2720 74 68 65 20 70 6c 61 74 66 6f 72 6d 2c 20 77 69 74 68 20 61 20 73 6d 61 6c 6c 20 6d 61 72 67 69 the.platform,.with.a.small.margi
2740 6e 29 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 n)...0....float.limit.=.(PLATFOR
2760 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 31 2e 30 66 3b 00 00 00 25 20 20 20 20 69 66 M_SIZE./.2.0f).-.1.0f;...%....if
2780 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 00 .(camX.<.-limit).camX.=.-limit;.
27a0 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d ..%....if.(camX.>..limit).camX.=
27c0 20 20 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 ..limit;...%....if.(camZ.<.-limi
27e0 74 29 20 63 61 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d t).camZ.=.-limit;...%....if.(cam
2800 5a 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 01 7d 35 Z.>..limit).camZ.=..limit;....}5
2820 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 06 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
2840 00 00 00 00 00 00 00 ad 1e 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 03 00 .......................5._......
2860 00 00 05 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 ................................
2880 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f5 .............................j..
29e0 50 04 01 00 00 00 04 00 f5 18 00 00 01 17 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 P...............................
2a00 20 20 76 65 6c 6f 63 69 f5 18 00 00 01 18 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 95 ..veloci........................
2a20 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 20 20 20 20 f5 18 00 00 00 96 00 00 00 00 ................................
2a40 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 ................................
2a60 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................5...............
2a80 00 00 00 00 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa0 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 82 00 ................................
2ac0 00 00 0a 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 ................................
2ae0 00 00 00 00 17 01 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 00 01 00 00 00 f8 1f 00 00 ..................../...........
2b00 00 00 00 00 00 00 00 00 00 00 00 00 3b 05 00 00 00 00 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 ............;.......5._.........
2b20 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
2b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f5 fb 04 01 ..........................j.....
2ca0 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 47 00 00 00 14 23 69 6e 63 6c ......................G....#incl
2cc0 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 ude.<GL/glut.h>....#include.<mat
2ce0 68 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 h.h>....#include.<stdio.h>....#i
2d00 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 nclude.<stdlib.h>........#define
2d20 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 20 20 31 32 38 30 00 00 00 1a 23 64 65 66 69 6e 65 20 .WINDOW_WIDTH...1280....#define.
2d40 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 20 37 32 30 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c WINDOW_HEIGHT..720....#define.PL
2d60 41 54 46 4f 52 4d 5f 53 49 5a 45 20 20 36 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f ATFORM_SIZE..60....#define.MOVE_
2d80 53 50 45 45 44 20 20 20 20 20 36 2e 30 66 00 00 00 1c 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f SPEED.....6.0f....#define.MOUSE_
2da0 53 45 4e 53 20 20 20 20 20 30 2e 31 35 66 00 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 SENS.....0.15f....#define.PLAYER
2dc0 5f 48 45 49 47 48 54 20 20 31 2e 36 32 66 00 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 _HEIGHT..1.62f.......5float.camX
2de0 20 3d 20 30 2e 30 66 2c 20 63 61 6d 59 20 3d 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 .=.0.0f,.camY.=.PLAYER_HEIGHT,.c
2e00 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 00 00 22 66 6c 6f 61 74 20 79 61 77 20 3d 20 34 35 2e 30 66 amZ.=.0.0f;..."float.yaw.=.45.0f
2e20 2c 20 70 69 74 63 68 20 3d 20 2d 31 30 2e 30 66 3b 00 00 00 29 66 6c 6f 61 74 20 76 65 6c 6f 63 ,.pitch.=.-10.0f;...)float.veloc
2e40 69 74 79 58 20 3d 20 30 2e 30 66 2c 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 2e 30 66 3b 00 00 ityX.=.0.0f,.velocityZ.=.0.0f;..
2e60 00 43 69 6e 74 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 42 61 63 6b 77 .Cint.moveForward.=.0,.moveBackw
2e80 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 4c 65 66 74 20 3d 20 30 2c 20 6d 6f 76 65 52 69 67 68 74 ard.=.0,.moveLeft.=.0,.moveRight
2ea0 20 3d 20 30 3b 00 00 00 11 69 6e 74 20 6c 61 73 74 54 69 6d 65 20 3d 20 30 3b 00 00 00 1b 69 6e .=.0;....int.lastTime.=.0;....in
2ec0 74 20 70 72 65 76 4d 6f 75 73 65 58 2c 20 70 72 65 76 4d 6f 75 73 65 59 3b 00 00 00 19 69 6e 74 t.prevMouseX,.prevMouseY;....int
2ee0 20 6d 6f 75 73 65 49 6e 69 74 69 61 6c 69 7a 65 64 20 3d 20 30 3b 00 00 00 00 00 00 00 10 74 79 .mouseInitialized.=.0;........ty
2f00 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b pedef.struct.{........float.top[
2f20 33 5d 3b 00 00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 64 65 5b 33 5d 3b 00 00 00 14 20 20 20 3];........float.side[3];.......
2f40 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 61 .float.bottom[3];........float.a
2f60 63 63 65 6e 74 5b 33 5d 3b 00 00 00 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b 00 00 00 00 00 00 ccent[3];....}.BlockStyle;......
2f80 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 ..BlockStyle.grassBlock.=.{.....
2fa0 20 20 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 1a 20 20 20 ...{0.25f,.0.75f,.0.15f},.......
2fc0 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b .{0.50f,.0.35f,.0.10f},........{
2fe0 30 2e 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 0.40f,.0.25f,.0.08f},........{0.
3000 32 30 66 2c 20 30 2e 36 30 66 2c 20 30 2e 31 30 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 18 20f,.0.60f,.0.10f}....};........
3020 42 6c 6f 63 6b 53 74 79 6c 65 20 64 69 72 74 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 BlockStyle.dirtBlock.=.{........
3040 7b 30 2e 35 35 66 2c 20 30 2e 34 30 66 2c 20 30 2e 32 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 {0.55f,.0.40f,.0.20f},........{0
3060 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 38 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 34 .50f,.0.35f,.0.18f},........{0.4
3080 30 66 2c 20 30 2e 32 38 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 35 66 0f,.0.28f,.0.15f},........{0.45f
30a0 2c 20 30 2e 33 32 66 2c 20 30 2e 31 36 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 19 42 6c 6f ,.0.32f,.0.16f}....};........Blo
30c0 63 6b 53 74 79 6c 65 20 73 74 6f 6e 65 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 ckStyle.stoneBlock.=.{........{0
30e0 2e 35 30 66 2c 20 30 2e 35 30 66 2c 20 30 2e 35 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 34 .50f,.0.50f,.0.50f},........{0.4
3100 35 66 2c 20 30 2e 34 35 66 2c 20 30 2e 34 35 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 33 35 66 5f,.0.45f,.0.45f},........{0.35f
3120 2c 20 30 2e 33 35 66 2c 20 30 2e 33 35 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 35 35 66 2c 20 ,.0.35f,.0.35f},........{0.55f,.
3140 30 2e 35 35 66 2c 20 30 2e 35 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0f 76 6f 69 64 20 0.55f,.0.55f}....};........void.
3160 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 6f 6c 6f 72 28 30 initGL().{...,....glClearColor(0
3180 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 00 00 00 1c 20 20 .53f,.0.81f,.0.98f,.1.0f);......
31a0 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 00 1b 20 20 ..glEnable(GL_DEPTH_TEST);......
31c0 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 29 3b 00 00 00 18 20 20 20 ..glEnable(GL_CULL_FACE);.......
31e0 20 67 6c 43 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 15 20 20 20 20 67 6c 45 .glCullFace(GL_BACK);........glE
3200 6e 61 62 6c 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 6c 46 6f 67 69 28 47 4c 5f nable(GL_FOG);...#....glFogi(GL_
3220 46 4f 47 5f 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 00 2f 20 20 20 20 67 6c 46 FOG_MODE,.GL_LINEAR);.../....glF
3240 6f 67 66 28 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 ogf(GL_FOG_START,.PLATFORM_SIZE.
3260 2a 20 30 2e 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 45 4e *.0.6f);...-....glFogf(GL_FOG_EN
3280 44 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 29 3b 00 00 00 33 20 20 20 D,.PLATFORM_SIZE.*.1.2f);...3...
32a0 20 66 6c 6f 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e 35 33 66 2c 20 30 2e 38 31 .float.fogColor[].=.{0.53f,.0.81
32c0 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 20 67 6c 46 6f 67 66 76 28 f,.0.98f,.1.0f};...$....glFogfv(
32e0 47 4c 5f 46 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 3b 00 00 00 23 20 20 20 20 GL_FOG_COLOR,.fogColor);...#....
3300 67 6c 48 69 6e 74 28 47 4c 5f 46 4f 47 5f 48 49 4e 54 2c 20 47 4c 5f 4e 49 43 45 53 54 29 3b 00 glHint(GL_FOG_HINT,.GL_NICEST);.
3320 00 00 1c 20 20 20 20 67 6c 53 68 61 64 65 4d 6f 64 65 6c 28 47 4c 5f 53 4d 4f 4f 54 48 29 3b 00 .......glShadeModel(GL_SMOOTH);.
3340 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4e 4f 52 4d 41 4c 49 5a 45 29 3b 00 00 .......glEnable(GL_NORMALIZE);..
3360 00 00 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d 20 7b 30 .....1....GLfloat.ambient[].=.{0
3380 2e 36 66 2c 20 30 2e 36 66 2c 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 20 20 47 .6f,.0.6f,.0.6f,.1.0f};...1....G
33a0 4c 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 Lfloat.diffuse[].=.{0.8f,.0.8f,.
33c0 30 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c 69 67 68 0.7f,.1.0f};...W....GLfloat.ligh
33e0 74 50 6f 73 5b 5d 20 3d 20 7b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 50 4c tPos[].=.{PLATFORM_SIZE/2.0f,.PL
3400 41 54 46 4f 52 4d 5f 53 49 5a 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c ATFORM_SIZE,.PLATFORM_SIZE/2.0f,
3420 20 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c .1.0f};............glEnable(GL_L
3440 49 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 IGHTING);........glEnable(GL_LIG
3460 48 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 HT0);........glLightfv(GL_LIGHT0
3480 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 20 20 67 ,.GL_AMBIENT,.ambient);........g
34a0 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 45 2c 20 lLightfv(GL_LIGHT0,.GL_DIFFUSE,.
34c0 64 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 diffuse);...0....glLightfv(GL_LI
34e0 47 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b 00 00 00 GHT0,.GL_POSITION,.lightPos);...
3500 00 00 00 00 39 20 20 20 20 47 4c 66 6c 6f 61 74 20 6d 61 74 65 72 69 61 6c 41 6d 62 69 65 6e 74 ....9....GLfloat.materialAmbient
3520 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 30 2e 38 66 2c 20 31 2e 30 66 7d 3b 00 00 [].=.{0.8f,.0.8f,.0.8f,.1.0f};..
3540 00 39 20 20 20 20 47 4c 66 6c 6f 61 74 20 6d 61 74 65 72 69 61 6c 44 69 66 66 75 73 65 5b 5d 20 .9....GLfloat.materialDiffuse[].
3560 3d 20 7b 30 2e 39 66 2c 20 30 2e 39 66 2c 20 30 2e 39 66 2c 20 31 2e 30 66 7d 3b 00 00 00 38 20 =.{0.9f,.0.9f,.0.9f,.1.0f};...8.
3580 20 20 20 67 6c 4d 61 74 65 72 69 61 6c 66 76 28 47 4c 5f 46 52 4f 4e 54 2c 20 47 4c 5f 41 4d 42 ...glMaterialfv(GL_FRONT,.GL_AMB
35a0 49 45 4e 54 2c 20 6d 61 74 65 72 69 61 6c 41 6d 62 69 65 6e 74 29 3b 00 00 00 38 20 20 20 20 67 IENT,.materialAmbient);...8....g
35c0 6c 4d 61 74 65 72 69 61 6c 66 76 28 47 4c 5f 46 52 4f 4e 54 2c 20 47 4c 5f 44 49 46 46 55 53 45 lMaterialfv(GL_FRONT,.GL_DIFFUSE
35e0 2c 20 6d 61 74 65 72 69 61 6c 44 69 66 66 75 73 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5c ,.materialDiffuse);....}.......\
3600 76 6f 69 64 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 66 6c 6f 61 74 20 76 30 5b void.drawFaceWithEdges(float.v0[
3620 33 5d 2c 20 66 6c 6f 61 74 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d 2c 20 66 6c 3],.float.v1[3],.float.v2[3],.fl
3640 6f 61 74 20 76 33 5b 33 5d 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b 00 00 00 44 oat.v3[3],.float.color[3]).{...D
3660 20 20 20 20 66 6c 6f 61 74 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 5b 30 5d 2a ....float.darker[3].=.{color[0]*
3680 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 5d 2a 30 2e 0.7f,.color[1]*0.7f,.color[2]*0.
36a0 37 66 7d 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 7f};................glBegin(GL_Q
36c0 55 41 44 53 29 3b 00 00 00 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c 6f 72 29 3b UADS);........glColor3fv(color);
36e0 00 00 00 21 20 20 20 20 67 6c 4e 6f 72 6d 61 6c 33 66 28 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 ...!....glNormal3f(0.0f,.0.0f,.0
3700 2e 30 66 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 .0f);........glVertex3fv(v0);...
3720 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 .....glVertex3fv(v1);........glV
3740 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 ertex3fv(v2);........glVertex3fv
3760 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 (v3);........glEnd();...........
3780 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 .glDisable(GL_LIGHTING);........
37a0 67 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 glLineWidth(1.0f);........glBegi
37c0 6e 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 29 3b 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 n(GL_LINE_LOOP);........glColor3
37e0 66 76 28 64 61 72 6b 65 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 fv(darker);........glVertex3fv(v
3800 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 0);........glVertex3fv(v1);.....
3820 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 ...glVertex3fv(v2);........glVer
3840 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 tex3fv(v3);........glEnd();.....
3860 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 ...glEnable(GL_LIGHTING);....}..
3880 00 00 00 00 00 31 76 6f 69 64 20 64 72 61 77 47 72 61 73 73 44 65 74 61 69 6c 28 66 6c 6f 61 74 .....1void.drawGrassDetail(float
38a0 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 29 20 7b 00 00 00 1b 20 20 20 20 66 .x,.float.y,.float.z).{........f
38c0 6c 6f 61 74 20 62 6c 61 64 65 54 6f 70 5b 5d 5b 33 5d 20 3d 20 7b 00 00 00 28 20 20 20 20 20 20 loat.bladeTop[][3].=.{...(......
38e0 20 20 7b 78 20 2b 20 30 2e 33 66 2c 20 79 20 2b 20 31 2e 30 35 66 2c 20 7a 20 2b 20 30 2e 33 66 ..{x.+.0.3f,.y.+.1.05f,.z.+.0.3f
3900 7d 2c 00 00 00 28 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 35 66 2c 20 79 20 2b 20 31 2e 31 },...(........{x.+.0.5f,.y.+.1.1
3920 32 66 2c 20 7a 20 2b 20 30 2e 35 66 7d 2c 00 00 00 28 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2f,.z.+.0.5f},...(........{x.+.0
3940 2e 37 66 2c 20 79 20 2b 20 31 2e 30 35 66 2c 20 7a 20 2b 20 30 2e 37 66 7d 2c 00 00 00 28 20 20 .7f,.y.+.1.05f,.z.+.0.7f},...(..
3960 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 32 66 2c 20 79 20 2b 20 31 2e 30 38 66 2c 20 7a 20 2b 20 ......{x.+.0.2f,.y.+.1.08f,.z.+.
3980 30 2e 37 66 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 38 66 2c 20 79 20 2b 0.7f},...'........{x.+.0.8f,.y.+
39a0 20 31 2e 30 38 66 2c 20 7a 20 2b 20 30 2e 33 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 1c 20 .1.08f,.z.+.0.3f}........};.....
39c0 20 20 20 66 6c 6f 61 74 20 62 6c 61 64 65 42 61 73 65 5b 5d 5b 33 5d 20 3d 20 7b 00 00 00 27 20 ...float.bladeBase[][3].=.{...'.
39e0 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 33 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 .......{x.+.0.3f,.y.+.1.0f,.z.+.
3a00 30 2e 33 66 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 35 66 2c 20 79 20 2b 0.3f},...'........{x.+.0.5f,.y.+
3a20 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 35 66 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 .1.0f,.z.+.0.5f},...'........{x.
3a40 2b 20 30 2e 37 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 37 66 7d 2c 00 00 00 27 +.0.7f,.y.+.1.0f,.z.+.0.7f},...'
3a60 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 32 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b ........{x.+.0.2f,.y.+.1.0f,.z.+
3a80 20 30 2e 37 66 7d 2c 00 00 00 26 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 38 66 2c 20 79 20 .0.7f},...&........{x.+.0.8f,.y.
3aa0 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 33 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 +.1.0f,.z.+.0.3f}........};.....
3ac0 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 .......glDisable(GL_LIGHTING);..
3ae0 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 53 29 3b 00 00 00 21 20 20 20 20 ......glBegin(GL_LINES);...!....
3b00 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 35 3b 20 69 2b 2b 29 20 7b 00 00 00 for.(int.i.=.0;.i.<.5;.i++).{...
3b20 27 20 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 31 35 66 2c 20 30 2e 36 35 66 2c '........glColor3f(0.15f,.0.65f,
3b40 20 30 2e 31 30 66 29 3b 00 00 00 22 20 20 20 20 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 .0.10f);..."........glVertex3fv(
3b60 62 6c 61 64 65 42 61 73 65 5b 69 5d 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f bladeBase[i]);...'........glColo
3b80 72 33 66 28 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 29 3b 00 00 00 21 20 20 20 r3f(0.25f,.0.75f,.0.15f);...!...
3ba0 20 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 62 6c 61 64 65 54 6f 70 5b 69 5d 29 3b 00 00 .....glVertex3fv(bladeTop[i]);..
3bc0 00 05 20 20 20 20 7d 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 20 20 67 ......}........glEnd();........g
3be0 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 00 00 00 lEnable(GL_LIGHTING);....}......
3c00 00 3c 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 .<void.drawCube(float.x,.float.y
3c20 2c 20 66 6c 6f 61 74 20 7a 2c 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 7b 00 00 ,.float.z,.BlockStyle.style).{..
3c40 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 54 ......glPushMatrix();........glT
3c60 72 61 6e 73 6c 61 74 65 66 28 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 66 ranslatef(x,.y,.z);............f
3c80 6c 6f 61 74 20 74 6f 70 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 loat.top[4][3].=.{.../........{0
3ca0 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 .0f,.1.0f,.0.0f},.{1.0f,.1.0f,.0
3cc0 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e .0f},............{1.0f,.1.0f,.1.
3ce0 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 0f},.{0.0f,.1.0f,.1.0f}........}
3d00 3b 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d 20 7b 00 ;........float.bottom[4][3].=.{.
3d20 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b ../........{0.0f,.0.0f,.1.0f},.{
3d40 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 1.0f,.0.0f,.1.0f},............{1
3d60 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 .0f,.0.0f,.0.0f},.{0.0f,.0.0f,.0
3d80 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 72 6f 6e .0f}........};........float.fron
3da0 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e t[4][3].=.{.../........{0.0f,.0.
3dc0 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 0f,.0.0f},.{1.0f,.0.0f,.0.0f},..
3de0 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 ..........{1.0f,.1.0f,.0.0f},.{0
3e00 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 .0f,.1.0f,.0.0f}........};......
3e20 20 20 66 6c 6f 61 74 20 62 61 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 ..float.back[4][3].=.{.../......
3e40 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 ..{1.0f,.0.0f,.1.0f},.{0.0f,.0.0
3e60 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 f,.1.0f},............{0.0f,.1.0f
3e80 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 ,.1.0f},.{1.0f,.1.0f,.1.0f}.....
3ea0 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d 20 3d 20 ...};........float.left[4][3].=.
3ec0 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c {.../........{0.0f,.0.0f,.1.0f},
3ee0 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 .{0.0f,.0.0f,.0.0f},............
3f00 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c {0.0f,.1.0f,.0.0f},.{0.0f,.1.0f,
3f20 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 72 69 .1.0f}........};........float.ri
3f40 67 68 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 ght[4][3].=.{.../........{1.0f,.
3f60 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 0.0f,.0.0f},.{1.0f,.0.0f,.1.0f},
3f80 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 ............{1.0f,.1.0f,.1.0f},.
3fa0 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 {1.0f,.1.0f,.0.0f}........};....
3fc0 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 74 6f 70 5b 30 5d ...A....drawFaceWithEdges(top[0]
3fe0 2c 20 74 6f 70 5b 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 6f 70 5b 33 5d 2c 20 73 74 79 6c 65 2e ,.top[1],.top[2],.top[3],.style.
4000 74 6f 70 29 3b 00 00 00 50 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 62 top);...P....drawFaceWithEdges(b
4020 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f 6d 5b 31 5d 2c 20 62 6f 74 74 6f 6d 5b 32 5d 2c 20 ottom[0],.bottom[1],.bottom[2],.
4040 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c 65 2e 62 6f 74 74 6f 6d 29 3b 00 00 00 4a 20 20 20 bottom[3],.style.bottom);...J...
4060 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 66 72 6f 6e 74 5b 30 5d 2c 20 66 72 6f .drawFaceWithEdges(front[0],.fro
4080 6e 74 5b 31 5d 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 5d 2c 20 73 74 79 6c 65 nt[1],.front[2],.front[3],.style
40a0 2e 73 69 64 65 29 3b 00 00 00 46 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 .side);...F....drawFaceWithEdges
40c0 28 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b (back[0],.back[1],.back[2],.back
40e0 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 46 20 20 20 20 64 72 61 77 46 61 63 [3],.style.side);...F....drawFac
4100 65 57 69 74 68 45 64 67 65 73 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 74 5b 31 5d 2c 20 6c 65 66 eWithEdges(left[0],.left[1],.lef
4120 74 5b 32 5d 2c 20 6c 65 66 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 4a 20 t[2],.left[3],.style.side);...J.
4140 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 72 69 67 68 74 5b 30 5d 2c 20 72 ...drawFaceWithEdges(right[0],.r
4160 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 72 69 67 68 74 5b 33 5d 2c 20 73 74 79 ight[1],.right[2],.right[3],.sty
4180 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 le.side);............glPopMatrix
41a0 28 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 69 66 20 28 73 74 79 6c 65 2e 74 6f 70 5b 30 5d 20 ();.......-....if.(style.top[0].
41c0 3d 3d 20 67 72 61 73 73 42 6c 6f 63 6b 2e 74 6f 70 5b 30 5d 20 26 26 20 00 00 00 2d 20 20 20 20 ==.grassBlock.top[0].&&....-....
41e0 20 20 20 20 73 74 79 6c 65 2e 74 6f 70 5b 31 5d 20 3d 3d 20 67 72 61 73 73 42 6c 6f 63 6b 2e 74 ....style.top[1].==.grassBlock.t
4200 6f 70 5b 31 5d 20 26 26 20 00 00 00 2c 20 20 20 20 20 20 20 20 73 74 79 6c 65 2e 74 6f 70 5b 32 op[1].&&....,........style.top[2
4220 5d 20 3d 3d 20 67 72 61 73 73 42 6c 6f 63 6b 2e 74 6f 70 5b 32 5d 29 20 7b 00 00 00 21 20 20 20 ].==.grassBlock.top[2]).{...!...
4240 20 20 20 20 20 64 72 61 77 47 72 61 73 73 44 65 74 61 69 6c 28 78 2c 20 79 2c 20 7a 29 3b 00 00 .....drawGrassDetail(x,.y,.z);..
4260 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 72 61 77 50 6c 61 ......}....}........void.drawPla
4280 74 66 6f 72 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 tform().{...!....int.half.=.PLAT
42a0 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 FORM_SIZE./.2;...(....for.(int.i
42c0 20 3d 20 2d 68 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 .=.-half;.i.<.half;.i++).{...,..
42e0 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 6a 20 3c 20 68 61 ......for.(int.j.=.-half;.j.<.ha
4300 6c 66 3b 20 6a 2b 2b 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 lf;.j++).{...*............float.
4320 64 69 73 74 20 3d 20 73 71 72 74 66 28 69 2a 69 20 2b 20 6a 2a 6a 29 3b 00 00 00 25 20 20 20 20 dist.=.sqrtf(i*i.+.j*j);...%....
4340 20 20 20 20 20 20 20 20 69 66 20 28 64 69 73 74 20 3e 20 68 61 6c 66 20 2a 20 30 2e 37 66 29 20 ........if.(dist.>.half.*.0.7f).
4360 7b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 68 65 69 67 68 {...$................float.heigh
4380 74 20 3d 20 30 2e 30 66 3b 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 t.=.0.0f;....................for
43a0 20 28 69 6e 74 20 6b 20 3d 20 2d 33 3b 20 6b 20 3c 20 30 3b 20 6b 2b 2b 29 20 7b 00 00 00 47 20 .(int.k.=.-3;.k.<.0;.k++).{...G.
43c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f ...................drawCube((flo
43e0 61 74 29 69 2c 20 28 66 6c 6f 61 74 29 6b 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 73 74 6f 6e 65 42 at)i,.(float)k,.(float)j,.stoneB
4400 6c 6f 63 6b 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 3f 20 lock);....................}...?.
4420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 ...............drawCube((float)i
4440 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 ,.0.0f,.(float)j,.grassBlock);..
4460 00 14 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 3f 20 20 20 20 20 20 ..............}.else.{...?......
4480 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 ..........drawCube((float)i,.0.0
44a0 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 4d 20 20 20 f,.(float)j,.grassBlock);...M...
44c0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 69 20 2b 20 6a 29 20 25 20 35 20 3d 3d 20 .............if.((i.+.j).%.5.==.
44e0 30 20 26 26 20 61 62 73 28 69 29 20 3e 20 68 61 6c 66 2f 33 20 26 26 20 61 62 73 28 6a 29 20 3e 0.&&.abs(i).>.half/3.&&.abs(j).>
4500 20 68 61 6c 66 2f 33 29 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .half/3).{...B..................
4520 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 31 2e 30 66 2c 20 28 66 6c 6f 61 ..drawCube((float)i,.1.0f,.(floa
4540 74 29 6a 2c 20 64 69 72 74 42 6c 6f 63 6b 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 t)j,.dirtBlock);................
4560 20 20 20 20 7d 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 ....}................}..........
4580 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 14 76 6f 69 64 20 73 65 ..}........}....}........void.se
45a0 74 75 70 43 61 6d 65 72 61 28 29 20 7b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 tupCamera().{........glMatrixMod
45c0 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 e(GL_MODELVIEW);........glLoadId
45e0 65 6e 74 69 74 79 28 29 3b 00 00 00 28 20 20 20 20 67 6c 52 6f 74 61 74 65 66 28 2d 70 69 74 63 entity();...(....glRotatef(-pitc
4600 68 2c 20 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 26 20 20 20 20 67 6c 52 h,.1.0f,.0.0f,.0.0f);...&....glR
4620 6f 74 61 74 65 66 28 2d 79 61 77 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 otatef(-yaw,.0.0f,.1.0f,.0.0f);.
4640 00 00 26 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 2d 63 61 6d 58 2c 20 2d 63 61 6d 59 ..&....glTranslatef(-camX,.-camY
4660 2c 20 2d 63 61 6d 5a 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c ,.-camZ);....}........void.displ
4680 61 79 28 29 20 7b 00 00 00 37 20 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 ay().{...7....glClear(GL_COLOR_B
46a0 55 46 46 45 52 5f 42 49 54 20 7c 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 UFFER_BIT.|.GL_DEPTH_BUFFER_BIT)
46c0 3b 00 00 00 12 20 20 20 20 73 65 74 75 70 43 61 6d 65 72 61 28 29 3b 00 00 00 13 20 20 20 20 64 ;........setupCamera();........d
46e0 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 3b 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 rawPlatform();........glutSwapBu
4700 66 66 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 ffers();....}........void.reshap
4720 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 e(int.w,.int.h).{........glViewp
4740 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 ort(0,.0,.w,.h);........glMatrix
4760 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f Mode(GL_PROJECTION);........glLo
4780 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 4b 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 adIdentity();...K....gluPerspect
47a0 69 76 65 28 37 35 2e 30 2c 20 28 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c ive(75.0,.(double)w./.(double)h,
47c0 20 30 2e 30 35 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f .0.05,.PLATFORM_SIZE.*.2.0);....
47e0 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 ....glMatrixMode(GL_MODELVIEW);.
4800 00 00 01 7d 00 00 00 00 00 00 00 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e ...}.......4void.keyboardDown(un
4820 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b signed.char.key,.int.x,.int.y).{
4840 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 6b 65 79 29 20 7b 00 00 00 33 20 20 20 20 20 20 ........switch.(key).{...3......
4860 20 20 63 61 73 65 20 27 77 27 3a 20 63 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 ..case.'w':.case.'W':.moveForwar
4880 64 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 d.=.1;.break;...4........case.'s
48a0 27 3a 20 63 61 73 65 20 27 53 27 3a 20 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 31 3b 20 62 ':.case.'S':.moveBackward.=.1;.b
48c0 72 65 61 6b 3b 00 00 00 30 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 reak;...0........case.'a':.case.
48e0 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 31 20 20 20 'A':.moveLeft.=.1;.break;...1...
4900 20 20 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 .....case.'d':.case.'D':.moveRig
4920 68 74 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 19 20 20 20 20 20 20 20 20 63 61 73 65 20 32 ht.=.1;.break;............case.2
4940 37 3a 20 65 78 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 7:.exit(0);........}....}.......
4960 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 2void.keyboardUp(unsigned.char.k
4980 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 ey,.int.x,.int.y).{........switc
49a0 68 20 28 6b 65 79 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 63 61 73 65 20 27 77 27 3a 20 63 h.(key).{...3........case.'w':.c
49c0 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 3b 20 62 72 65 61 6b 3b ase.'W':.moveForward.=.0;.break;
49e0 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 61 73 65 20 27 53 27 3a 20 ...4........case.'s':.case.'S':.
4a00 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 30 20 20 20 20 moveBackward.=.0;.break;...0....
4a20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 ....case.'a':.case.'A':.moveLeft
4a40 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 31 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 27 .=.0;.break;...1........case.'d'
4a60 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 68 74 20 3d 20 30 3b 20 62 72 65 61 6b :.case.'D':.moveRight.=.0;.break
4a80 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 21 76 6f 69 64 20 70 61 73 73 ;........}....}.......!void.pass
4aa0 69 76 65 4d 6f 75 73 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 1c 20 20 20 20 iveMouse(int.x,.int.y).{........
4ac0 69 66 20 28 21 6d 6f 75 73 65 49 6e 69 74 69 61 6c 69 7a 65 64 29 20 7b 00 00 00 17 20 20 20 20 if.(!mouseInitialized).{........
4ae0 20 20 20 20 70 72 65 76 4d 6f 75 73 65 58 20 3d 20 78 3b 00 00 00 17 20 20 20 20 20 20 20 20 70 ....prevMouseX.=.x;............p
4b00 72 65 76 4d 6f 75 73 65 59 20 3d 20 79 3b 00 00 00 1d 20 20 20 20 20 20 20 20 6d 6f 75 73 65 49 revMouseY.=.y;............mouseI
4b20 6e 69 74 69 61 6c 69 7a 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 nitialized.=.1;............retur
4b40 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 69 6e 74 20 64 78 20 3d 20 n;........}............int.dx.=.
4b60 78 20 2d 20 70 72 65 76 4d 6f 75 73 65 58 3b 00 00 00 1c 20 20 20 20 69 6e 74 20 64 79 20 3d 20 x.-.prevMouseX;........int.dy.=.
4b80 79 20 2d 20 70 72 65 76 4d 6f 75 73 65 59 3b 00 00 00 13 20 20 20 20 70 72 65 76 4d 6f 75 73 65 y.-.prevMouseY;........prevMouse
4ba0 58 20 3d 20 78 3b 00 00 00 13 20 20 20 20 70 72 65 76 4d 6f 75 73 65 59 20 3d 20 79 3b 00 00 00 X.=.x;........prevMouseY.=.y;...
4bc0 00 00 00 00 1b 20 20 20 20 79 61 77 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b .........yaw.+=.dx.*.MOUSE_SENS;
4be0 00 00 00 1d 20 20 20 20 70 69 74 63 68 20 2d 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 ........pitch.-=.dy.*.MOUSE_SENS
4c00 3b 00 00 00 00 00 00 00 25 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 66 29 20 ;.......%....if.(pitch.>.89.0f).
4c20 70 69 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 pitch.=.89.0f;...'....if.(pitch.
4c40 3c 20 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 00 00 00 00 <.-89.0f).pitch.=.-89.0f;.......
4c60 24 20 20 20 20 69 66 20 28 79 61 77 20 3e 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d 3d 20 33 36 $....if.(yaw.>.360.0f).yaw.-=.36
4c80 30 2e 30 66 3b 00 00 00 22 20 20 20 20 69 66 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 0.0f;..."....if.(yaw.<.0.0f).yaw
4ca0 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 76 6f 69 64 20 75 70 64 .+=.360.0f;....}........void.upd
4cc0 61 74 65 43 61 6d 65 72 61 28 66 6c 6f 61 74 20 64 74 29 20 7b 00 00 00 1b 20 20 20 20 69 66 20 ateCamera(float.dt).{........if.
4ce0 28 64 74 20 3c 3d 20 30 2e 30 66 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 2f 20 20 20 20 (dt.<=.0.0f).return;......./....
4d00 66 6c 6f 61 74 20 74 61 72 67 65 74 56 65 6c 58 20 3d 20 30 2e 30 66 2c 20 74 61 72 67 65 74 56 float.targetVelX.=.0.0f,.targetV
4d20 65 6c 5a 20 3d 20 30 2e 30 66 3b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 elZ.=.0.0f;...'....float.yawRad.
4d40 3d 20 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c =.yaw.*.M_PI./.180.0f;..."....fl
4d60 6f 61 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 oat.forwardX.=.sinf(yawRad);...#
4d80 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 ....float.forwardZ.=.-cosf(yawRa
4da0 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 d);........float.rightX.=.cosf(y
4dc0 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 awRad);........float.rightZ.=.si
4de0 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 00 00 00 00 63 20 20 20 20 69 66 20 28 6d 6f 76 65 46 nf(yawRad);.......c....if.(moveF
4e00 6f 72 77 61 72 64 29 20 20 7b 20 74 61 72 67 65 74 56 65 6c 58 20 2b 3d 20 66 6f 72 77 61 72 64 orward)..{.targetVelX.+=.forward
4e20 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 74 61 72 67 65 74 56 65 6c 5a 20 2b 3d 20 66 6f X.*.MOVE_SPEED;.targetVelZ.+=.fo
4e40 72 77 61 72 64 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 7d 00 00 00 63 20 20 20 20 69 66 rwardZ.*.MOVE_SPEED;.}...c....if
4e60 20 28 6d 6f 76 65 42 61 63 6b 77 61 72 64 29 20 7b 20 74 61 72 67 65 74 56 65 6c 58 20 2d 3d 20 .(moveBackward).{.targetVelX.-=.
4e80 66 6f 72 77 61 72 64 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 74 61 72 67 65 74 56 65 6c forwardX.*.MOVE_SPEED;.targetVel
4ea0 5a 20 2d 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 7d 00 00 00 Z.-=.forwardZ.*.MOVE_SPEED;.}...
4ec0 61 20 20 20 20 69 66 20 28 6d 6f 76 65 4c 65 66 74 29 20 20 20 20 20 7b 20 74 61 72 67 65 74 56 a....if.(moveLeft).....{.targetV
4ee0 65 6c 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 20 20 74 61 elX.-=.rightX.*.MOVE_SPEED;...ta
4f00 72 67 65 74 56 65 6c 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b rgetVelZ.-=.rightZ.*.MOVE_SPEED;
4f20 20 7d 00 00 00 61 20 20 20 20 69 66 20 28 6d 6f 76 65 52 69 67 68 74 29 20 20 20 20 7b 20 74 61 .}...a....if.(moveRight)....{.ta
4f40 72 67 65 74 56 65 6c 58 20 2b 3d 20 72 69 67 68 74 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b rgetVelX.+=.rightX.*.MOVE_SPEED;
4f60 20 20 20 74 61 72 67 65 74 56 65 6c 5a 20 2b 3d 20 72 69 67 68 74 5a 20 2a 20 4d 4f 56 45 5f 53 ...targetVelZ.+=.rightZ.*.MOVE_S
4f80 50 45 45 44 3b 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 66 6c 6f 61 74 20 73 6d 6f 6f 74 68 69 PEED;.}............float.smoothi
4fa0 6e 67 20 3d 20 31 32 2e 30 66 3b 00 00 00 3b 20 20 20 20 76 65 6c 6f 63 69 74 79 58 20 2b 3d 20 ng.=.12.0f;...;....velocityX.+=.
4fc0 28 74 61 72 67 65 74 56 65 6c 58 20 2d 20 76 65 6c 6f 63 69 74 79 58 29 20 2a 20 73 6d 6f 6f 74 (targetVelX.-.velocityX).*.smoot
4fe0 68 69 6e 67 20 2a 20 64 74 3b 00 00 00 3b 20 20 20 20 76 65 6c 6f 63 69 74 79 5a 20 2b 3d 20 28 hing.*.dt;...;....velocityZ.+=.(
5000 74 61 72 67 65 74 56 65 6c 5a 20 2d 20 76 65 6c 6f 63 69 74 79 5a 29 20 2a 20 73 6d 6f 6f 74 68 targetVelZ.-.velocityZ).*.smooth
5020 69 6e 67 20 2a 20 64 74 3b 00 00 00 00 00 00 00 1b 20 20 20 20 63 61 6d 58 20 2b 3d 20 76 65 6c ing.*.dt;............camX.+=.vel
5040 6f 63 69 74 79 58 20 2a 20 64 74 3b 00 00 00 1b 20 20 20 20 63 61 6d 5a 20 2b 3d 20 76 65 6c 6f ocityX.*.dt;........camZ.+=.velo
5060 63 69 74 79 5a 20 2a 20 64 74 3b 00 00 00 00 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d cityZ.*.dt;.......0....float.lim
5080 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 31 2e it.=.(PLATFORM_SIZE./.2.0f).-.1.
50a0 35 66 3b 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 7b 20 5f;...;....if.(camX.<.-limit).{.
50c0 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 58 20 3d 20 30 2e 30 66 3b camX.=.-limit;.velocityX.=.0.0f;
50e0 20 7d 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 7b 20 63 .}...;....if.(camX.>..limit).{.c
5100 61 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 58 20 3d 20 30 2e 30 66 3b 20 amX.=..limit;.velocityX.=.0.0f;.
5120 7d 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 7b 20 63 61 }...;....if.(camZ.<.-limit).{.ca
5140 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 2e 30 66 3b 20 7d mZ.=.-limit;.velocityZ.=.0.0f;.}
5160 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 7b 20 63 61 6d ...;....if.(camZ.>..limit).{.cam
5180 5a 20 3d 20 20 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 2e 30 66 3b 20 7d 00 Z.=..limit;.velocityZ.=.0.0f;.}.
51a0 00 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 29 20 20 20 ...}........void.idle().{...)...
51c0 20 69 6e 74 20 6e 6f 77 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 45 4c 41 50 53 45 44 5f .int.now.=.glutGet(GLUT_ELAPSED_
51e0 54 49 4d 45 29 3b 00 00 00 2a 20 20 20 20 66 6c 6f 61 74 20 64 74 20 3d 20 28 6e 6f 77 20 2d 20 TIME);...*....float.dt.=.(now.-.
5200 6c 61 73 74 54 69 6d 65 29 20 2f 20 31 30 30 30 2e 30 66 3b 00 00 00 1d 20 20 20 20 69 66 20 28 lastTime)./.1000.0f;........if.(
5220 64 74 20 3e 20 30 2e 31 66 29 20 64 74 20 3d 20 30 2e 31 66 3b 00 00 00 20 20 20 20 20 69 66 20 dt.>.0.1f).dt.=.0.1f;........if.
5240 28 64 74 20 3c 3d 20 30 2e 30 66 29 20 64 74 20 3d 20 30 2e 30 31 36 66 3b 00 00 00 13 20 20 20 (dt.<=.0.0f).dt.=.0.016f;.......
5260 20 6c 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 3b 00 00 00 00 00 00 00 15 20 20 20 20 75 70 64 61 .lastTime.=.now;............upda
5280 74 65 43 61 6d 65 72 61 28 64 74 29 3b 00 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 teCamera(dt);........glutPostRed
52a0 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 isplay();....}.......!int.main(i
52c0 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 nt.argc,.char.**argv).{........g
52e0 6c 75 74 49 6e 69 74 28 26 61 72 67 63 2c 20 61 72 67 76 29 3b 00 00 00 50 20 20 20 20 67 6c 75 lutInit(&argc,.argv);...P....glu
5300 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 tInitDisplayMode(GLUT_DOUBLE.|.G
5320 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f 44 45 50 54 48 20 7c 20 47 4c 55 54 5f 4d 55 4c 54 LUT_RGB.|.GLUT_DEPTH.|.GLUT_MULT
5340 49 53 41 4d 50 4c 45 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 ISAMPLE);...4....glutInitWindowS
5360 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 ize(WINDOW_WIDTH,.WINDOW_HEIGHT)
5380 3b 00 00 00 37 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 ;...7....glutCreateWindow("Minec
53a0 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 20 2d 20 45 6e 68 61 6e 63 65 64 22 29 3b 00 00 00 00 raft.Prototype.-.Enhanced");....
53c0 00 00 00 27 20 20 20 20 67 6c 75 74 53 65 74 4f 70 74 69 6f 6e 28 47 4c 55 54 5f 4d 55 4c 54 49 ...'....glutSetOption(GLUT_MULTI
53e0 53 41 4d 50 4c 45 2c 20 38 29 3b 00 00 00 1d 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4d SAMPLE,.8);........glEnable(GL_M
5400 55 4c 54 49 53 41 4d 50 4c 45 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 4c 28 29 ULTISAMPLE);............initGL()
5420 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 64 69 73 ;............glutDisplayFunc(dis
5440 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 28 72 65 play);........glutReshapeFunc(re
5460 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 28 shape);...#....glutKeyboardFunc(
5480 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 keyboardDown);...#....glutKeyboa
54a0 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 28 20 20 20 20 67 6c 75 rdUpFunc(keyboardUp);...(....glu
54c0 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 70 61 73 73 69 76 65 4d 6f 75 73 65 29 tPassiveMotionFunc(passiveMouse)
54e0 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 00 00 ;........glutIdleFunc(idle);....
5500 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 5f 43 55 52 53 4f ...$....glutSetCursor(GLUT_CURSO
5520 52 5f 4e 4f 4e 45 29 3b 00 00 00 35 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 R_NONE);...5....glutWarpPointer(
5540 57 49 4e 44 4f 57 5f 57 49 44 54 48 2f 32 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 2f 32 29 WINDOW_WIDTH/2,.WINDOW_HEIGHT/2)
5560 3b 00 00 00 00 00 00 00 2a 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 67 6c 75 74 47 65 74 28 ;.......*....lastTime.=.glutGet(
5580 47 4c 55 54 5f 45 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 00 00 13 20 20 20 20 67 6c 75 74 4d GLUT_ELAPSED_TIME);........glutM
55a0 61 69 6e 4c 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d ainLoop();........return.0;....}
55c0 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 47 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 5...............G...............
55e0 00 00 00 00 00 00 00 00 34 25 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 05 ........4%..............5._.....
5600 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ................................
5620 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 ..............................j.
5780 f5 fc 04 01 00 00 00 05 00 f5 18 00 00 01 16 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 2f 20 ............................../.
57a0 20 20 20 76 65 6c 6f 63 69 74 79 5a 20 2b 3d 20 28 74 61 72 67 65 74 56 65 6c 5a 20 2d 20 76 65 ...velocityZ.+=.(targetVelZ.-.ve
57c0 6c 6f 63 69 74 79 5a 29 20 2a 20 73 6d 6f f5 18 00 00 01 17 00 00 00 00 00 00 00 00 00 00 00 00 locityZ).*.smo..................
57e0 f5 18 00 00 00 95 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 20 20 20 20 f5 18 00 00 ................................
5800 00 96 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
5820 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 ......................5.........
5840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5860 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 ................................
5880 00 00 00 00 81 00 00 00 2f 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 ......../.......................
58a0 00 00 00 00 f5 18 00 00 00 00 16 01 00 00 2f 00 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 01 00 ............../...........,.....
58c0 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc 04 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
58e0 00 06 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ................................
5900 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a60 6a 08 f6 94 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 43 00 00 00 j...........................C...
5a80 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 .#include.<GL/glut.h>....#includ
5aa0 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e e.<math.h>....#include.<stdio.h>
5ac0 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 00 00 00 00 1b 23 ....#include.<stdlib.h>........#
5ae0 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 20 20 31 32 38 30 00 00 00 1a 23 64 define.WINDOW_WIDTH...1280....#d
5b00 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 20 37 32 30 00 00 00 19 23 64 65 66 efine.WINDOW_HEIGHT..720....#def
5b20 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 20 36 30 00 00 00 1b 23 64 65 66 69 6e 65 ine.PLATFORM_SIZE..60....#define
5b40 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 36 2e 30 66 00 00 00 1c 23 64 65 66 69 6e 65 20 .MOVE_SPEED.....6.0f....#define.
5b60 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e 31 35 66 00 00 00 1c 23 64 65 66 69 6e 65 20 MOUSE_SENS.....0.15f....#define.
5b80 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e 36 32 66 00 00 00 00 00 00 00 35 66 6c 6f 61 PLAYER_HEIGHT..1.62f.......5floa
5ba0 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 6d 59 20 3d 20 50 4c 41 59 45 52 5f 48 45 49 t.camX.=.0.0f,.camY.=.PLAYER_HEI
5bc0 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 00 00 22 66 6c 6f 61 74 20 79 61 77 20 3d GHT,.camZ.=.0.0f;..."float.yaw.=
5be0 20 34 35 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 2d 31 30 2e 30 66 3b 00 00 00 29 66 6c 6f 61 74 .45.0f,.pitch.=.-10.0f;...)float
5c00 20 76 65 6c 6f 63 69 74 79 58 20 3d 20 30 2e 30 66 2c 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 .velocityX.=.0.0f,.velocityZ.=.0
5c20 2e 30 66 3b 00 00 00 43 69 6e 74 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 .0f;...Cint.moveForward.=.0,.mov
5c40 65 42 61 63 6b 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 4c 65 66 74 20 3d 20 30 2c 20 6d 6f 76 eBackward.=.0,.moveLeft.=.0,.mov
5c60 65 52 69 67 68 74 20 3d 20 30 3b 00 00 00 11 69 6e 74 20 6c 61 73 74 54 69 6d 65 20 3d 20 30 3b eRight.=.0;....int.lastTime.=.0;
5c80 00 00 00 1b 69 6e 74 20 70 72 65 76 4d 6f 75 73 65 58 2c 20 70 72 65 76 4d 6f 75 73 65 59 3b 00 ....int.prevMouseX,.prevMouseY;.
5ca0 00 00 19 69 6e 74 20 6d 6f 75 73 65 49 6e 69 74 69 61 6c 69 7a 65 64 20 3d 20 30 3b 00 00 00 00 ...int.mouseInitialized.=.0;....
5cc0 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 ....typedef.struct.{........floa
5ce0 74 20 74 6f 70 5b 33 5d 3b 00 00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 64 65 5b 33 5d 3b 00 t.top[3];........float.side[3];.
5d00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 .......float.bottom[3];........f
5d20 6c 6f 61 74 20 61 63 63 65 6e 74 5b 33 5d 3b 00 00 00 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b loat.accent[3];....}.BlockStyle;
5d40 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 ........BlockStyle.grassBlock.=.
5d60 7b 00 00 00 1a 20 20 20 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 {........{0.25f,.0.75f,.0.15f},.
5d80 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 .......{0.50f,.0.35f,.0.10f},...
5da0 1a 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d 2c 00 00 00 19 20 .....{0.40f,.0.25f,.0.08f},.....
5dc0 20 20 20 7b 30 2e 32 30 66 2c 20 30 2e 36 30 66 2c 20 30 2e 31 30 66 7d 00 00 00 02 7d 3b 00 00 ...{0.20f,.0.60f,.0.10f}....};..
5de0 00 00 00 00 00 18 42 6c 6f 63 6b 53 74 79 6c 65 20 64 69 72 74 42 6c 6f 63 6b 20 3d 20 7b 00 00 ......BlockStyle.dirtBlock.=.{..
5e00 00 1a 20 20 20 20 7b 30 2e 35 35 66 2c 20 30 2e 34 30 66 2c 20 30 2e 32 30 66 7d 2c 00 00 00 1a ......{0.55f,.0.40f,.0.20f},....
5e20 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 38 66 7d 2c 00 00 00 1a 20 20 ....{0.50f,.0.35f,.0.18f},......
5e40 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 38 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 19 20 20 20 20 ..{0.40f,.0.28f,.0.15f},........
5e60 7b 30 2e 34 35 66 2c 20 30 2e 33 32 66 2c 20 30 2e 31 36 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 {0.45f,.0.32f,.0.16f}....};.....
5e80 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 6f 6e 65 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a ...BlockStyle.stoneBlock.=.{....
5ea0 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 35 30 66 2c 20 30 2e 35 30 66 7d 2c 00 00 00 1a 20 20 ....{0.50f,.0.50f,.0.50f},......
5ec0 20 20 7b 30 2e 34 35 66 2c 20 30 2e 34 35 66 2c 20 30 2e 34 35 66 7d 2c 00 00 00 1a 20 20 20 20 ..{0.45f,.0.45f,.0.45f},........
5ee0 7b 30 2e 33 35 66 2c 20 30 2e 33 35 66 2c 20 30 2e 33 35 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 {0.35f,.0.35f,.0.35f},........{0
5f00 2e 35 35 66 2c 20 30 2e 35 35 66 2c 20 30 2e 35 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 .55f,.0.55f,.0.55f}....};.......
5f20 0f 76 6f 69 64 20 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 .void.initGL().{...,....glClearC
5f40 6f 6c 6f 72 28 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b olor(0.53f,.0.81f,.0.98f,.1.0f);
5f60 00 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b ........glEnable(GL_DEPTH_TEST);
5f80 00 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 29 3b 00 ........glEnable(GL_CULL_FACE);.
5fa0 00 00 18 20 20 20 20 67 6c 43 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 15 20 .......glCullFace(GL_BACK);.....
5fc0 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 6c 46 6f ...glEnable(GL_FOG);...#....glFo
5fe0 67 69 28 47 4c 5f 46 4f 47 5f 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 00 2f 20 gi(GL_FOG_MODE,.GL_LINEAR);.../.
6000 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 4f 52 4d ...glFogf(GL_FOG_START,.PLATFORM
6020 5f 53 49 5a 45 20 2a 20 30 2e 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f _SIZE.*.0.6f);...-....glFogf(GL_
6040 46 4f 47 5f 45 4e 44 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 29 3b 00 FOG_END,.PLATFORM_SIZE.*.1.2f);.
6060 00 00 33 20 20 20 20 66 6c 6f 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e 35 33 66 ..3....float.fogColor[].=.{0.53f
6080 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 20 67 6c ,.0.81f,.0.98f,.1.0f};...$....gl
60a0 46 6f 67 66 76 28 47 4c 5f 46 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 3b 00 00 Fogfv(GL_FOG_COLOR,.fogColor);..
60c0 00 23 20 20 20 20 67 6c 48 69 6e 74 28 47 4c 5f 46 4f 47 5f 48 49 4e 54 2c 20 47 4c 5f 4e 49 43 .#....glHint(GL_FOG_HINT,.GL_NIC
60e0 45 53 54 29 3b 00 00 00 1c 20 20 20 20 67 6c 53 68 61 64 65 4d 6f 64 65 6c 28 47 4c 5f 53 4d 4f EST);........glShadeModel(GL_SMO
6100 4f 54 48 29 3b 00 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4e 4f 52 4d 41 4c 49 OTH);........glEnable(GL_NORMALI
6120 5a 45 29 3b 00 00 00 00 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b ZE);.......1....GLfloat.ambient[
6140 5d 20 3d 20 7b 30 2e 36 66 2c 20 30 2e 36 66 2c 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 ].=.{0.6f,.0.6f,.0.6f,.1.0f};...
6160 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 1....GLfloat.diffuse[].=.{0.8f,.
6180 30 2e 38 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 0.8f,.0.7f,.1.0f};...W....GLfloa
61a0 74 20 6c 69 67 68 74 50 6f 73 5b 5d 20 3d 20 7b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e t.lightPos[].=.{PLATFORM_SIZE/2.
61c0 30 66 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 0f,.PLATFORM_SIZE,.PLATFORM_SIZE
61e0 2f 32 2e 30 66 2c 20 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c /2.0f,.1.0f};............glEnabl
6200 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 e(GL_LIGHTING);........glEnable(
6220 47 4c 5f 4c 49 47 48 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f GL_LIGHT0);........glLightfv(GL_
6240 4c 49 47 48 54 30 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 LIGHT0,.GL_AMBIENT,.ambient);...
6260 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 .....glLightfv(GL_LIGHT0,.GL_DIF
6280 46 55 53 45 2c 20 64 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 FUSE,.diffuse);...0....glLightfv
62a0 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f (GL_LIGHT0,.GL_POSITION,.lightPo
62c0 73 29 3b 00 00 00 00 00 00 00 39 20 20 20 20 47 4c 66 6c 6f 61 74 20 6d 61 74 65 72 69 61 6c 41 s);.......9....GLfloat.materialA
62e0 6d 62 69 65 6e 74 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 30 2e 38 66 2c 20 31 2e mbient[].=.{0.8f,.0.8f,.0.8f,.1.
6300 30 66 7d 3b 00 00 00 39 20 20 20 20 47 4c 66 6c 6f 61 74 20 6d 61 74 65 72 69 61 6c 44 69 66 66 0f};...9....GLfloat.materialDiff
6320 75 73 65 5b 5d 20 3d 20 7b 30 2e 39 66 2c 20 30 2e 39 66 2c 20 30 2e 39 66 2c 20 31 2e 30 66 7d use[].=.{0.9f,.0.9f,.0.9f,.1.0f}
6340 3b 00 00 00 38 20 20 20 20 67 6c 4d 61 74 65 72 69 61 6c 66 76 28 47 4c 5f 46 52 4f 4e 54 2c 20 ;...8....glMaterialfv(GL_FRONT,.
6360 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 6d 61 74 65 72 69 61 6c 41 6d 62 69 65 6e 74 29 3b 00 00 00 GL_AMBIENT,.materialAmbient);...
6380 38 20 20 20 20 67 6c 4d 61 74 65 72 69 61 6c 66 76 28 47 4c 5f 46 52 4f 4e 54 2c 20 47 4c 5f 44 8....glMaterialfv(GL_FRONT,.GL_D
63a0 49 46 46 55 53 45 2c 20 6d 61 74 65 72 69 61 6c 44 69 66 66 75 73 65 29 3b 00 00 00 01 7d 00 00 IFFUSE,.materialDiffuse);....}..
63c0 00 00 00 00 00 5c 76 6f 69 64 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 66 6c 6f .....\void.drawFaceWithEdges(flo
63e0 61 74 20 76 30 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b at.v0[3],.float.v1[3],.float.v2[
6400 33 5d 2c 20 66 6c 6f 61 74 20 76 33 5b 33 5d 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 3],.float.v3[3],.float.color[3])
6420 20 7b 00 00 00 44 20 20 20 20 66 6c 6f 61 74 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c .{...D....float.darker[3].=.{col
6440 6f 72 5b 30 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 or[0]*0.7f,.color[1]*0.7f,.color
6460 5b 32 5d 2a 30 2e 37 66 7d 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 [2]*0.7f};................glBegi
6480 6e 28 47 4c 5f 51 55 41 44 53 29 3b 00 00 00 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 n(GL_QUADS);........glColor3fv(c
64a0 6f 6c 6f 72 29 3b 00 00 00 21 20 20 20 20 67 6c 4e 6f 72 6d 61 6c 33 66 28 30 2e 30 66 2c 20 30 olor);...!....glNormal3f(0.0f,.0
64c0 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 .0f,.0.0f);........glVertex3fv(v
64e0 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 0);........glVertex3fv(v1);.....
6500 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 ...glVertex3fv(v2);........glVer
6520 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 00 00 tex3fv(v3);........glEnd();.....
6540 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 .......glDisable(GL_LIGHTING);..
6560 00 16 20 20 20 20 67 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 ......glLineWidth(1.0f);........
6580 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 29 3b 00 00 00 17 20 20 20 20 67 6c glBegin(GL_LINE_LOOP);........gl
65a0 43 6f 6c 6f 72 33 66 76 28 64 61 72 6b 65 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 Color3fv(darker);........glVerte
65c0 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 x3fv(v0);........glVertex3fv(v1)
65e0 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 ;........glVertex3fv(v2);.......
6600 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 .glVertex3fv(v3);........glEnd()
6620 3b 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 ;........glEnable(GL_LIGHTING);.
6640 00 00 01 7d 00 00 00 00 00 00 00 31 76 6f 69 64 20 64 72 61 77 47 72 61 73 73 44 65 74 61 69 6c ...}.......1void.drawGrassDetail
6660 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 29 20 7b 00 00 00 (float.x,.float.y,.float.z).{...
6680 1b 20 20 20 20 66 6c 6f 61 74 20 62 6c 61 64 65 54 6f 70 5b 5d 5b 33 5d 20 3d 20 7b 00 00 00 28 .....float.bladeTop[][3].=.{...(
66a0 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 33 66 2c 20 79 20 2b 20 31 2e 30 35 66 2c 20 7a 20 ........{x.+.0.3f,.y.+.1.05f,.z.
66c0 2b 20 30 2e 33 66 7d 2c 00 00 00 28 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 35 66 2c 20 79 +.0.3f},...(........{x.+.0.5f,.y
66e0 20 2b 20 31 2e 31 32 66 2c 20 7a 20 2b 20 30 2e 35 66 7d 2c 00 00 00 28 20 20 20 20 20 20 20 20 .+.1.12f,.z.+.0.5f},...(........
6700 7b 78 20 2b 20 30 2e 37 66 2c 20 79 20 2b 20 31 2e 30 35 66 2c 20 7a 20 2b 20 30 2e 37 66 7d 2c {x.+.0.7f,.y.+.1.05f,.z.+.0.7f},
6720 00 00 00 28 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 32 66 2c 20 79 20 2b 20 31 2e 30 38 66 ...(........{x.+.0.2f,.y.+.1.08f
6740 2c 20 7a 20 2b 20 30 2e 37 66 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 38 ,.z.+.0.7f},...'........{x.+.0.8
6760 66 2c 20 79 20 2b 20 31 2e 30 38 66 2c 20 7a 20 2b 20 30 2e 33 66 7d 00 00 00 06 20 20 20 20 7d f,.y.+.1.08f,.z.+.0.3f}........}
6780 3b 00 00 00 1c 20 20 20 20 66 6c 6f 61 74 20 62 6c 61 64 65 42 61 73 65 5b 5d 5b 33 5d 20 3d 20 ;........float.bladeBase[][3].=.
67a0 7b 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 33 66 2c 20 79 20 2b 20 31 2e 30 66 {...'........{x.+.0.3f,.y.+.1.0f
67c0 2c 20 7a 20 2b 20 30 2e 33 66 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 35 ,.z.+.0.3f},...'........{x.+.0.5
67e0 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 35 66 7d 2c 00 00 00 27 20 20 20 20 20 f,.y.+.1.0f,.z.+.0.5f},...'.....
6800 20 20 20 7b 78 20 2b 20 30 2e 37 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 37 66 ...{x.+.0.7f,.y.+.1.0f,.z.+.0.7f
6820 7d 2c 00 00 00 27 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e 32 66 2c 20 79 20 2b 20 31 2e 30 },...'........{x.+.0.2f,.y.+.1.0
6840 66 2c 20 7a 20 2b 20 30 2e 37 66 7d 2c 00 00 00 26 20 20 20 20 20 20 20 20 7b 78 20 2b 20 30 2e f,.z.+.0.7f},...&........{x.+.0.
6860 38 66 2c 20 79 20 2b 20 31 2e 30 66 2c 20 7a 20 2b 20 30 2e 33 66 7d 00 00 00 06 20 20 20 20 7d 8f,.y.+.1.0f,.z.+.0.3f}........}
6880 3b 00 00 00 00 00 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 ;............glDisable(GL_LIGHTI
68a0 4e 47 29 3b 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 53 29 3b 00 00 NG);........glBegin(GL_LINES);..
68c0 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 35 3b 20 69 2b 2b .!....for.(int.i.=.0;.i.<.5;.i++
68e0 29 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 31 35 66 2c 20 ).{...'........glColor3f(0.15f,.
6900 30 2e 36 35 66 2c 20 30 2e 31 30 66 29 3b 00 00 00 22 20 20 20 20 20 20 20 20 67 6c 56 65 72 74 0.65f,.0.10f);..."........glVert
6920 65 78 33 66 76 28 62 6c 61 64 65 42 61 73 65 5b 69 5d 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 ex3fv(bladeBase[i]);...'........
6940 67 6c 43 6f 6c 6f 72 33 66 28 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 29 3b 00 glColor3f(0.25f,.0.75f,.0.15f);.
6960 00 00 21 20 20 20 20 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 62 6c 61 64 65 54 6f 70 5b ..!........glVertex3fv(bladeTop[
6980 69 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 i]);........}........glEnd();...
69a0 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d .....glEnable(GL_LIGHTING);....}
69c0 00 00 00 00 00 00 00 3c 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 .......<void.drawCube(float.x,.f
69e0 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c loat.y,.float.z,.BlockStyle.styl
6a00 65 29 20 7b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 e).{........glPushMatrix();.....
6a20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 ...glTranslatef(x,.y,.z);.......
6a40 17 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 .....float.top[4][3].=.{.../....
6a60 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 ....{0.0f,.1.0f,.0.0f},.{1.0f,.1
6a80 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e .0f,.0.0f},............{1.0f,.1.
6aa0 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 0f,.1.0f},.{0.0f,.1.0f,.1.0f}...
6ac0 06 20 20 20 20 7d 3b 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 .....};........float.bottom[4][3
6ae0 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e ].=.{.../........{0.0f,.0.0f,.1.
6b00 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 0f},.{1.0f,.0.0f,.1.0f},........
6b20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 ....{1.0f,.0.0f,.0.0f},.{0.0f,.0
6b40 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 .0f,.0.0f}........};........floa
6b60 74 20 66 72 6f 6e 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e t.front[4][3].=.{.../........{0.
6b80 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 0f,.0.0f,.0.0f},.{1.0f,.0.0f,.0.
6ba0 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 0f},............{1.0f,.1.0f,.0.0
6bc0 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b f},.{0.0f,.1.0f,.0.0f}........};
6be0 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 62 61 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f ........float.back[4][3].=.{.../
6c00 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 ........{1.0f,.0.0f,.1.0f},.{0.0
6c20 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 f,.0.0f,.1.0f},............{0.0f
6c40 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 ,.1.0f,.1.0f},.{1.0f,.1.0f,.1.0f
6c60 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d }........};........float.left[4]
6c80 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 [3].=.{.../........{0.0f,.0.0f,.
6ca0 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 1.0f},.{0.0f,.0.0f,.0.0f},......
6cc0 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c ......{0.0f,.1.0f,.0.0f},.{0.0f,
6ce0 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c .1.0f,.1.0f}........};........fl
6d00 6f 61 74 20 72 69 67 68 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b oat.right[4][3].=.{.../........{
6d20 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 1.0f,.0.0f,.0.0f},.{1.0f,.0.0f,.
6d40 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 1.0f},............{1.0f,.1.0f,.1
6d60 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 .0f},.{1.0f,.1.0f,.0.0f}........
6d80 7d 3b 00 00 00 00 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 };.......A....drawFaceWithEdges(
6da0 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 6f 70 5b 33 5d 2c 20 top[0],.top[1],.top[2],.top[3],.
6dc0 73 74 79 6c 65 2e 74 6f 70 29 3b 00 00 00 50 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 style.top);...P....drawFaceWithE
6de0 64 67 65 73 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f 6d 5b 31 5d 2c 20 62 6f 74 74 6f dges(bottom[0],.bottom[1],.botto
6e00 6d 5b 32 5d 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c 65 2e 62 6f 74 74 6f 6d 29 3b 00 m[2],.bottom[3],.style.bottom);.
6e20 00 00 4a 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 66 72 6f 6e 74 5b 30 ..J....drawFaceWithEdges(front[0
6e40 5d 2c 20 66 72 6f 6e 74 5b 31 5d 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 5d 2c ],.front[1],.front[2],.front[3],
6e60 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 46 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 .style.side);...F....drawFaceWit
6e80 68 45 64 67 65 73 28 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d hEdges(back[0],.back[1],.back[2]
6ea0 2c 20 62 61 63 6b 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 46 20 20 20 20 64 ,.back[3],.style.side);...F....d
6ec0 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 74 5b 31 rawFaceWithEdges(left[0],.left[1
6ee0 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 ],.left[2],.left[3],.style.side)
6f00 3b 00 00 00 4a 20 20 20 20 64 72 61 77 46 61 63 65 57 69 74 68 45 64 67 65 73 28 72 69 67 68 74 ;...J....drawFaceWithEdges(right
6f20 5b 30 5d 2c 20 72 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 72 69 67 68 74 5b 33 [0],.right[1],.right[2],.right[3
6f40 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 67 6c 50 6f 70 ],.style.side);............glPop
6f60 4d 61 74 72 69 78 28 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 69 66 20 28 73 74 79 6c 65 2e 74 Matrix();.......-....if.(style.t
6f80 6f 70 5b 30 5d 20 3d 3d 20 67 72 61 73 73 42 6c 6f 63 6b 2e 74 6f 70 5b 30 5d 20 26 26 20 00 00 op[0].==.grassBlock.top[0].&&...
6fa0 00 2d 20 20 20 20 20 20 20 20 73 74 79 6c 65 2e 74 6f 70 5b 31 5d 20 3d 3d 20 67 72 61 73 73 42 .-........style.top[1].==.grassB
6fc0 6c 6f 63 6b 2e 74 6f 70 5b 31 5d 20 26 26 20 00 00 00 2c 20 20 20 20 20 20 20 20 73 74 79 6c 65 lock.top[1].&&....,........style
6fe0 2e 74 6f 70 5b 32 5d 20 3d 3d 20 67 72 61 73 73 42 6c 6f 63 6b 2e 74 6f 70 5b 32 5d 29 20 7b 00 .top[2].==.grassBlock.top[2]).{.
7000 00 00 21 20 20 20 20 20 20 20 20 64 72 61 77 47 72 61 73 73 44 65 74 61 69 6c 28 78 2c 20 79 2c ..!........drawGrassDetail(x,.y,
7020 20 7a 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 .z);........}....}........void.d
7040 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 rawPlatform().{...!....int.half.
7060 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 =.PLATFORM_SIZE./.2;...(....for.
7080 28 69 6e 74 20 69 20 3d 20 2d 68 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b (int.i.=.-half;.i.<.half;.i++).{
70a0 00 00 00 2c 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 ...,........for.(int.j.=.-half;.
70c0 6a 20 3c 20 68 61 6c 66 3b 20 6a 2b 2b 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 j.<.half;.j++).{...*............
70e0 66 6c 6f 61 74 20 64 69 73 74 20 3d 20 73 71 72 74 66 28 69 2a 69 20 2b 20 6a 2a 6a 29 3b 00 00 float.dist.=.sqrtf(i*i.+.j*j);..
7100 00 25 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 69 73 74 20 3e 20 68 61 6c 66 20 2a 20 .%............if.(dist.>.half.*.
7120 30 2e 37 66 29 20 7b 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 0.7f).{....................for.(
7140 69 6e 74 20 6b 20 3d 20 2d 33 3b 20 6b 20 3c 20 30 3b 20 6b 2b 2b 29 20 7b 00 00 00 47 20 20 20 int.k.=.-3;.k.<.0;.k++).{...G...
7160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 .................drawCube((float
7180 29 69 2c 20 28 66 6c 6f 61 74 29 6b 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 73 74 6f 6e 65 42 6c 6f )i,.(float)k,.(float)j,.stoneBlo
71a0 63 6b 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 3f 20 20 20 ck);....................}...?...
71c0 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 .............drawCube((float)i,.
71e0 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 14 0.0f,.(float)j,.grassBlock);....
7200 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 ............}.else.{...?........
7220 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c ........drawCube((float)i,.0.0f,
7240 20 28 66 6c 6f 61 74 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 4d 20 20 20 20 20 .(float)j,.grassBlock);...M.....
7260 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 69 20 2b 20 6a 29 20 25 20 35 20 3d 3d 20 30 20 ...........if.((i.+.j).%.5.==.0.
7280 26 26 20 61 62 73 28 69 29 20 3e 20 68 61 6c 66 2f 33 20 26 26 20 61 62 73 28 6a 29 20 3e 20 68 &&.abs(i).>.half/3.&&.abs(j).>.h
72a0 61 6c 66 2f 33 29 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alf/3).{...B....................
72c0 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 31 2e 30 66 2c 20 28 66 6c 6f 61 74 29 drawCube((float)i,.1.0f,.(float)
72e0 6a 2c 20 64 69 72 74 42 6c 6f 63 6b 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 j,.dirtBlock);..................
7300 20 20 7d 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 ..}................}............
7320 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 14 76 6f 69 64 20 73 65 74 75 }........}....}........void.setu
7340 70 43 61 6d 65 72 61 28 29 20 7b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 pCamera().{........glMatrixMode(
7360 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e GL_MODELVIEW);........glLoadIden
7380 74 69 74 79 28 29 3b 00 00 00 28 20 20 20 20 67 6c 52 6f 74 61 74 65 66 28 2d 70 69 74 63 68 2c tity();...(....glRotatef(-pitch,
73a0 20 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 26 20 20 20 20 67 6c 52 6f 74 .1.0f,.0.0f,.0.0f);...&....glRot
73c0 61 74 65 66 28 2d 79 61 77 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 atef(-yaw,.0.0f,.1.0f,.0.0f);...
73e0 26 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 2d 63 61 6d 58 2c 20 2d 63 61 6d 59 2c 20 &....glTranslatef(-camX,.-camY,.
7400 2d 63 61 6d 5a 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 -camZ);....}........void.display
7420 28 29 20 7b 00 00 00 37 20 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 ().{...7....glClear(GL_COLOR_BUF
7440 46 45 52 5f 42 49 54 20 7c 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 FER_BIT.|.GL_DEPTH_BUFFER_BIT);.
7460 00 00 12 20 20 20 20 73 65 74 75 70 43 61 6d 65 72 61 28 29 3b 00 00 00 13 20 20 20 20 64 72 61 .......setupCamera();........dra
7480 77 50 6c 61 74 66 6f 72 6d 28 29 3b 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66 wPlatform();........glutSwapBuff
74a0 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 ers();....}........void.reshape(
74c0 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 int.w,.int.h).{........glViewpor
74e0 74 28 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f t(0,.0,.w,.h);........glMatrixMo
7500 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 de(GL_PROJECTION);........glLoad
7520 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 4b 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 Identity();...K....gluPerspectiv
7540 65 28 37 35 2e 30 2c 20 28 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 e(75.0,.(double)w./.(double)h,.0
7560 2e 30 35 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f 20 20 .05,.PLATFORM_SIZE.*.2.0);......
7580 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 ..glMatrixMode(GL_MODELVIEW);...
75a0 01 7d 00 00 00 00 00 00 00 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 .}.......4void.keyboardDown(unsi
75c0 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 gned.char.key,.int.x,.int.y).{..
75e0 00 12 20 20 20 20 73 77 69 74 63 68 20 28 6b 65 79 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 ......switch.(key).{...3........
7600 63 61 73 65 20 27 77 27 3a 20 63 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 case.'w':.case.'W':.moveForward.
7620 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 27 3a =.1;.break;...4........case.'s':
7640 20 63 61 73 65 20 27 53 27 3a 20 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 31 3b 20 62 72 65 .case.'S':.moveBackward.=.1;.bre
7660 61 6b 3b 00 00 00 30 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 27 41 ak;...0........case.'a':.case.'A
7680 27 3a 20 6d 6f 76 65 4c 65 66 74 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 31 20 20 20 20 20 ':.moveLeft.=.1;.break;...1.....
76a0 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 68 74 ...case.'d':.case.'D':.moveRight
76c0 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 19 20 20 20 20 20 20 20 20 63 61 73 65 20 32 37 3a .=.1;.break;............case.27:
76e0 20 65 78 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 32 76 .exit(0);........}....}.......2v
7700 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 oid.keyboardUp(unsigned.char.key
7720 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 ,.int.x,.int.y).{........switch.
7740 28 6b 65 79 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 63 61 73 65 20 27 77 27 3a 20 63 61 73 (key).{...3........case.'w':.cas
7760 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 e.'W':.moveForward.=.0;.break;..
7780 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 61 73 65 20 27 53 27 3a 20 6d 6f .4........case.'s':.case.'S':.mo
77a0 76 65 42 61 63 6b 77 61 72 64 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 30 20 20 20 20 20 20 veBackward.=.0;.break;...0......
77c0 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 20 3d ..case.'a':.case.'A':.moveLeft.=
77e0 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 31 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 27 3a 20 .0;.break;...1........case.'d':.
7800 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 68 74 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 case.'D':.moveRight.=.0;.break;.
7820 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 21 76 6f 69 64 20 70 61 73 73 69 76 .......}....}.......!void.passiv
7840 65 4d 6f 75 73 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 1c 20 20 20 20 69 66 eMouse(int.x,.int.y).{........if
7860 20 28 21 6d 6f 75 73 65 49 6e 69 74 69 61 6c 69 7a 65 64 29 20 7b 00 00 00 17 20 20 20 20 20 20 .(!mouseInitialized).{..........
7880 20 20 70 72 65 76 4d 6f 75 73 65 58 20 3d 20 78 3b 00 00 00 17 20 20 20 20 20 20 20 20 70 72 65 ..prevMouseX.=.x;............pre
78a0 76 4d 6f 75 73 65 59 20 3d 20 79 3b 00 00 00 1d 20 20 20 20 20 20 20 20 6d 6f 75 73 65 49 6e 69 vMouseY.=.y;............mouseIni
78c0 74 69 61 6c 69 7a 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b tialized.=.1;............return;
78e0 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 69 6e 74 20 64 78 20 3d 20 78 20 ........}............int.dx.=.x.
7900 2d 20 70 72 65 76 4d 6f 75 73 65 58 3b 00 00 00 1c 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 -.prevMouseX;........int.dy.=.y.
7920 2d 20 70 72 65 76 4d 6f 75 73 65 59 3b 00 00 00 13 20 20 20 20 70 72 65 76 4d 6f 75 73 65 58 20 -.prevMouseY;........prevMouseX.
7940 3d 20 78 3b 00 00 00 13 20 20 20 20 70 72 65 76 4d 6f 75 73 65 59 20 3d 20 79 3b 00 00 00 00 00 =.x;........prevMouseY.=.y;.....
7960 00 00 1b 20 20 20 20 79 61 77 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 .......yaw.+=.dx.*.MOUSE_SENS;..
7980 00 1d 20 20 20 20 70 69 74 63 68 20 2d 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 ......pitch.-=.dy.*.MOUSE_SENS;.
79a0 00 00 00 00 00 00 25 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 66 29 20 70 69 ......%....if.(pitch.>.89.0f).pi
79c0 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 tch.=.89.0f;...'....if.(pitch.<.
79e0 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 00 00 00 00 24 20 -89.0f).pitch.=.-89.0f;.......$.
7a00 20 20 20 69 66 20 28 79 61 77 20 3e 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d 3d 20 33 36 30 2e ...if.(yaw.>.360.0f).yaw.-=.360.
7a20 30 66 3b 00 00 00 22 20 20 20 20 69 66 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 0f;..."....if.(yaw.<.0.0f).yaw.+
7a40 3d 20 33 36 30 2e 30 66 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 76 6f 69 64 20 75 70 64 61 74 =.360.0f;....}........void.updat
7a60 65 43 61 6d 65 72 61 28 66 6c 6f 61 74 20 64 74 29 20 7b 00 00 00 1b 20 20 20 20 69 66 20 28 64 eCamera(float.dt).{........if.(d
7a80 74 20 3c 3d 20 30 2e 30 66 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 2f 20 20 20 20 66 6c t.<=.0.0f).return;......./....fl
7aa0 6f 61 74 20 74 61 72 67 65 74 56 65 6c 58 20 3d 20 30 2e 30 66 2c 20 74 61 72 67 65 74 56 65 6c oat.targetVelX.=.0.0f,.targetVel
7ac0 5a 20 3d 20 30 2e 30 66 3b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 Z.=.0.0f;...'....float.yawRad.=.
7ae0 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 yaw.*.M_PI./.180.0f;..."....floa
7b00 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 t.forwardX.=.sinf(yawRad);...#..
7b20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 ..float.forwardZ.=.-cosf(yawRad)
7b40 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 61 77 ;........float.rightX.=.cosf(yaw
7b60 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 6e 66 Rad);........float.rightZ.=.sinf
7b80 28 79 61 77 52 61 64 29 3b 00 00 00 00 00 00 00 63 20 20 20 20 69 66 20 28 6d 6f 76 65 46 6f 72 (yawRad);.......c....if.(moveFor
7ba0 77 61 72 64 29 20 20 7b 20 74 61 72 67 65 74 56 65 6c 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 ward)..{.targetVelX.+=.forwardX.
7bc0 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 74 61 72 67 65 74 56 65 6c 5a 20 2b 3d 20 66 6f 72 77 *.MOVE_SPEED;.targetVelZ.+=.forw
7be0 61 72 64 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 7d 00 00 00 63 20 20 20 20 69 66 20 28 ardZ.*.MOVE_SPEED;.}...c....if.(
7c00 6d 6f 76 65 42 61 63 6b 77 61 72 64 29 20 7b 20 74 61 72 67 65 74 56 65 6c 58 20 2d 3d 20 66 6f moveBackward).{.targetVelX.-=.fo
7c20 72 77 61 72 64 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 74 61 72 67 65 74 56 65 6c 5a 20 rwardX.*.MOVE_SPEED;.targetVelZ.
7c40 2d 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 7d 00 00 00 61 20 -=.forwardZ.*.MOVE_SPEED;.}...a.
7c60 20 20 20 69 66 20 28 6d 6f 76 65 4c 65 66 74 29 20 20 20 20 20 7b 20 74 61 72 67 65 74 56 65 6c ...if.(moveLeft).....{.targetVel
7c80 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 20 20 74 61 72 67 X.-=.rightX.*.MOVE_SPEED;...targ
7ca0 65 74 56 65 6c 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 7d etVelZ.-=.rightZ.*.MOVE_SPEED;.}
7cc0 00 00 00 61 20 20 20 20 69 66 20 28 6d 6f 76 65 52 69 67 68 74 29 20 20 20 20 7b 20 74 61 72 67 ...a....if.(moveRight)....{.targ
7ce0 65 74 56 65 6c 58 20 2b 3d 20 72 69 67 68 74 58 20 2a 20 4d 4f 56 45 5f 53 50 45 45 44 3b 20 20 etVelX.+=.rightX.*.MOVE_SPEED;..
7d00 20 74 61 72 67 65 74 56 65 6c 5a 20 2b 3d 20 72 69 67 68 74 5a 20 2a 20 4d 4f 56 45 5f 53 50 45 .targetVelZ.+=.rightZ.*.MOVE_SPE
7d20 45 44 3b 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 66 6c 6f 61 74 20 73 6d 6f 6f 74 68 69 6e 67 ED;.}............float.smoothing
7d40 20 3d 20 31 32 2e 30 66 3b 00 00 00 3b 20 20 20 20 76 65 6c 6f 63 69 74 79 58 20 2b 3d 20 28 74 .=.12.0f;...;....velocityX.+=.(t
7d60 61 72 67 65 74 56 65 6c 58 20 2d 20 76 65 6c 6f 63 69 74 79 58 29 20 2a 20 73 6d 6f 6f 74 68 69 argetVelX.-.velocityX).*.smoothi
7d80 6e 67 20 2a 20 64 74 3b 00 00 00 3b 20 20 20 20 76 65 6c 6f 63 69 74 79 5a 20 2b 3d 20 28 74 61 ng.*.dt;...;....velocityZ.+=.(ta
7da0 72 67 65 74 56 65 6c 5a 20 2d 20 76 65 6c 6f 63 69 74 79 5a 29 20 2a 20 73 6d 6f 6f 74 68 69 6e rgetVelZ.-.velocityZ).*.smoothin
7dc0 67 20 2a 20 64 74 3b 00 00 00 00 00 00 00 1b 20 20 20 20 63 61 6d 58 20 2b 3d 20 76 65 6c 6f 63 g.*.dt;............camX.+=.veloc
7de0 69 74 79 58 20 2a 20 64 74 3b 00 00 00 1b 20 20 20 20 63 61 6d 5a 20 2b 3d 20 76 65 6c 6f 63 69 ityX.*.dt;........camZ.+=.veloci
7e00 74 79 5a 20 2a 20 64 74 3b 00 00 00 00 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d 69 74 tyZ.*.dt;.......0....float.limit
7e20 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 31 2e 35 66 .=.(PLATFORM_SIZE./.2.0f).-.1.5f
7e40 3b 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 7b 20 63 61 ;...;....if.(camX.<.-limit).{.ca
7e60 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 58 20 3d 20 30 2e 30 66 3b 20 7d mX.=.-limit;.velocityX.=.0.0f;.}
7e80 00 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 7b 20 63 61 6d ...;....if.(camX.>..limit).{.cam
7ea0 58 20 3d 20 20 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 58 20 3d 20 30 2e 30 66 3b 20 7d 00 X.=..limit;.velocityX.=.0.0f;.}.
7ec0 00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 7b 20 63 61 6d 5a ..;....if.(camZ.<.-limit).{.camZ
7ee0 20 3d 20 2d 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 2e 30 66 3b 20 7d 00 00 .=.-limit;.velocityZ.=.0.0f;.}..
7f00 00 3b 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 7b 20 63 61 6d 5a 20 .;....if.(camZ.>..limit).{.camZ.
7f20 3d 20 20 6c 69 6d 69 74 3b 20 76 65 6c 6f 63 69 74 79 5a 20 3d 20 30 2e 30 66 3b 20 7d 00 00 00 =..limit;.velocityZ.=.0.0f;.}...
7f40 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 29 20 20 20 20 69 .}........void.idle().{...)....i
7f60 6e 74 20 6e 6f 77 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 45 4c 41 50 53 45 44 5f 54 49 nt.now.=.glutGet(GLUT_ELAPSED_TI
7f80 4d 45 29 3b 00 00 00 2a 20 20 20 20 66 6c 6f 61 74 20 64 74 20 3d 20 28 6e 6f 77 20 2d 20 6c 61 ME);...*....float.dt.=.(now.-.la
7fa0 73 74 54 69 6d 65 29 20 2f 20 31 30 30 30 2e 30 66 3b 00 00 00 1d 20 20 20 20 69 66 20 28 64 74 stTime)./.1000.0f;........if.(dt
7fc0 20 3e 20 30 2e 31 66 29 20 64 74 20 3d 20 30 2e 31 66 3b 00 00 00 20 20 20 20 20 69 66 20 28 64 .>.0.1f).dt.=.0.1f;........if.(d
7fe0 74 20 3c 3d 20 30 2e 30 66 29 20 64 74 20 3d 20 30 2e 30 31 36 66 3b 00 00 00 13 20 20 20 20 6c t.<=.0.0f).dt.=.0.016f;........l
8000 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 3b 00 00 00 00 00 00 00 15 20 20 20 20 75 70 64 61 74 65 astTime.=.now;............update
8020 43 61 6d 65 72 61 28 64 74 29 3b 00 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 Camera(dt);........glutPostRedis
8040 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 play();....}.......!int.main(int
8060 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 6c 75 .argc,.char.**argv).{........glu
8080 74 49 6e 69 74 28 26 61 72 67 63 2c 20 61 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 tInit(&argc,.argv);...=....glutI
80a0 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 nitDisplayMode(GLUT_DOUBLE.|.GLU
80c0 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f 44 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 T_RGB.|.GLUT_DEPTH);...4....glut
80e0 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e InitWindowSize(WINDOW_WIDTH,.WIN
8100 44 4f 57 5f 48 45 49 47 48 54 29 3b 00 00 00 37 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 DOW_HEIGHT);...7....glutCreateWi
8120 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 20 2d 20 45 6e 68 61 ndow("Minecraft.Prototype.-.Enha
8140 6e 63 65 64 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 4c 28 29 3b 00 00 00 00 nced");............initGL();....
8160 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 64 69 73 70 6c 61 79 29 ........glutDisplayFunc(display)
8180 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 28 72 65 73 68 61 70 65 ;........glutReshapeFunc(reshape
81a0 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 28 6b 65 79 62 6f );...#....glutKeyboardFunc(keybo
81c0 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 55 70 46 ardDown);...#....glutKeyboardUpF
81e0 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 28 20 20 20 20 67 6c 75 74 50 61 73 73 unc(keyboardUp);...(....glutPass
8200 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 70 61 73 73 69 76 65 4d 6f 75 73 65 29 3b 00 00 00 17 iveMotionFunc(passiveMouse);....
8220 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 00 00 00 00 00 24 20 ....glutIdleFunc(idle);.......$.
8240 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 5f 43 55 52 53 4f 52 5f 4e 4f 4e ...glutSetCursor(GLUT_CURSOR_NON
8260 45 29 3b 00 00 00 35 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f E);...5....glutWarpPointer(WINDO
8280 57 5f 57 49 44 54 48 2f 32 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 2f 32 29 3b 00 00 00 00 W_WIDTH/2,.WINDOW_HEIGHT/2);....
82a0 00 00 00 2a 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f ...*....lastTime.=.glutGet(GLUT_
82c0 45 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 6e 4c 6f ELAPSED_TIME);........glutMainLo
82e0 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 op();........return.0;....}5....
8300 00 00 00 00 00 00 00 00 00 00 00 43 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...........C....................
8320 00 00 00 b5 24 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 07 00 00 00 09 00 ....$..............5._..........
8340 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 ................................
8360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f6 95 04 01 00 .........................j......
84c0 00 00 06 00 f5 18 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 20 20 20 20 20 ................................
84e0 20 f5 18 00 00 00 8d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 ................................
8500 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 ...........................5....
8520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8c 00 00 00 07 00 00 00 00 00 00 00 00 ................................
8540 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 8c 00 00 00 07 00 00 ................................
8560 00 00 00 00 00 00 00 00 00 7e 00 00 00 01 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 .........~......................
8580 00 d8 0c 00 00 00 00 00 00 35 81 5f d0 00 00 00 08 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 .........5._....................
85a0 09 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f7 26 04 01 00 00 00 00 00 f5 18 00 00 00 00 ...............j..&.............
8720 00 00 00 02 00 00 00 00 00 00 01 0b 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 6c 75 ................#include.<GL/glu
8740 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 69 6e t.h>....#include.<math.h>....#in
8760 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 clude.<stdio.h>....#include.<std
8780 6c 69 62 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 44 lib.h>........#define.WINDOW_WID
87a0 54 48 20 20 20 31 32 38 30 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 47 TH...1280....#define.WINDOW_HEIG
87c0 48 54 20 20 37 32 30 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 HT..720....#define.PLATFORM_SIZE
87e0 20 20 36 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 38 ..60....#define.MOVE_SPEED.....8
8800 2e 30 66 00 00 00 1c 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e .0f....#define.MOUSE_SENS.....0.
8820 31 35 66 00 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e 15f....#define.PLAYER_HEIGHT..1.
8840 36 32 66 00 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 62f.......5float.camX.=.0.0f,.ca
8860 6d 59 20 3d 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b mY.=.PLAYER_HEIGHT,.camZ.=.0.0f;
8880 00 00 00 1f 66 6c 6f 61 74 20 79 61 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 2e ....float.yaw.=.0.0f,.pitch.=.0.
88a0 30 66 3b 00 00 00 43 69 6e 74 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 0f;...Cint.moveForward.=.0,.move
88c0 42 61 63 6b 77 61 72 64 20 3d 20 30 2c 20 6d 6f 76 65 4c 65 66 74 20 3d 20 30 2c 20 6d 6f 76 65 Backward.=.0,.moveLeft.=.0,.move
88e0 52 69 67 68 74 20 3d 20 30 3b 00 00 00 14 69 6e 74 20 77 61 72 70 50 6f 69 6e 74 65 72 20 3d 20 Right.=.0;....int.warpPointer.=.
8900 31 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 1;........typedef.struct.{......
8920 20 20 66 6c 6f 61 74 20 74 6f 70 5b 33 5d 3b 00 00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 64 ..float.top[3];........float.sid
8940 65 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 00 e[3];........float.bottom[3];...
8960 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 .}.BlockStyle;........BlockStyle
8980 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 32 35 66 2c 20 30 .grassBlock.=.{........{0.25f,.0
89a0 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 .75f,.0.15f},........{0.50f,.0.3
89c0 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 66 5f,.0.10f},........{0.40f,.0.25f
89e0 2c 20 30 2e 30 38 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 18 42 6c 6f 63 6b 53 74 79 6c 65 ,.0.08f}....};........BlockStyle
8a00 20 64 69 72 74 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 35 35 66 2c 20 30 2e .dirtBlock.=.{........{0.55f,.0.
8a20 34 30 66 2c 20 30 2e 32 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 40f,.0.20f},........{0.50f,.0.35
8a40 66 2c 20 30 2e 31 38 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 38 66 2c f,.0.18f},........{0.40f,.0.28f,
8a60 20 30 2e 31 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 .0.15f}....};........BlockStyle.
8a80 73 74 6f 6e 65 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e stoneBlock.=.{........{0.50f,.0.
8aa0 35 30 66 2c 20 30 2e 35 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 34 35 66 2c 20 30 2e 34 35 50f,.0.50f},........{0.45f,.0.45
8ac0 66 2c 20 30 2e 34 35 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 33 35 66 2c 20 30 2e 33 35 66 2c f,.0.45f},........{0.35f,.0.35f,
8ae0 20 30 2e 33 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0f 76 6f 69 64 20 69 6e 69 74 47 4c .0.35f}....};........void.initGL
8b00 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 6f 6c 6f 72 28 30 2e 35 33 66 2c 20 ().{...,....glClearColor(0.53f,.
8b20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 00 00 00 1c 20 20 20 20 67 6c 45 6e 0.81f,.0.98f,.1.0f);........glEn
8b40 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 00 1b 20 20 20 20 67 6c 45 6e able(GL_DEPTH_TEST);........glEn
8b60 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 29 3b 00 00 00 18 20 20 20 20 67 6c 43 75 6c able(GL_CULL_FACE);........glCul
8b80 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 15 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 lFace(GL_BACK);........glEnable(
8ba0 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 6c 46 6f 67 69 28 47 4c 5f 46 4f 47 5f 4d 4f GL_FOG);...#....glFogi(GL_FOG_MO
8bc0 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 00 2f 20 20 20 20 67 6c 46 6f 67 66 28 47 4c DE,.GL_LINEAR);.../....glFogf(GL
8be0 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 30 2e 36 66 _FOG_START,.PLATFORM_SIZE.*.0.6f
8c00 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 45 4e 44 2c 20 50 4c 41 );...-....glFogf(GL_FOG_END,.PLA
8c20 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 29 3b 00 00 00 33 20 20 20 20 66 6c 6f 61 74 TFORM_SIZE.*.1.2f);...3....float
8c40 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 .fogColor[].=.{0.53f,.0.81f,.0.9
8c60 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 20 67 6c 46 6f 67 66 76 28 47 4c 5f 46 4f 47 8f,.1.0f};...$....glFogfv(GL_FOG
8c80 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 3b 00 00 00 00 00 00 00 31 20 20 20 20 47 4c _COLOR,.fogColor);.......1....GL
8ca0 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d 20 7b 30 2e 36 66 2c 20 30 2e 36 66 2c 20 30 float.ambient[].=.{0.6f,.0.6f,.0
8cc0 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 64 69 66 66 75 .6f,.1.0f};...1....GLfloat.diffu
8ce0 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 7d 3b se[].=.{0.8f,.0.8f,.0.7f,.1.0f};
8d00 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c 69 67 68 74 50 6f 73 5b 5d 20 3d 20 7b 50 4c ...W....GLfloat.lightPos[].=.{PL
8d20 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2c ATFORM_SIZE/2.0f,.PLATFORM_SIZE,
8d40 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 31 2e 30 66 7d 3b 00 00 00 00 00 .PLATFORM_SIZE/2.0f,.1.0f};.....
8d60 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 .......glEnable(GL_LIGHTING);...
8d80 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 30 29 3b 00 00 00 2e 20 20 20 .....glEnable(GL_LIGHT0);.......
8da0 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 .glLightfv(GL_LIGHT0,.GL_AMBIENT
8dc0 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f ,.ambient);........glLightfv(GL_
8de0 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 45 2c 20 64 69 66 66 75 73 65 29 3b 00 00 00 LIGHT0,.GL_DIFFUSE,.diffuse);...
8e00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 50 4f 53 0....glLightfv(GL_LIGHT0,.GL_POS
8e20 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 76 6f ITION,.lightPos);....}.......Svo
8e40 69 64 20 64 72 61 77 46 61 63 65 28 66 6c 6f 61 74 20 76 30 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 id.drawFace(float.v0[3],.float.v
8e60 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 33 5b 33 5d 2c 20 1[3],.float.v2[3],.float.v3[3],.
8e80 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b 00 00 00 44 20 20 20 20 66 6c 6f 61 74 20 64 float.color[3]).{...D....float.d
8ea0 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 5b 30 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 arker[3].=.{color[0]*0.7f,.color
8ec0 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 5d 2a 30 2e 37 66 7d 3b 00 00 00 04 20 20 20 [1]*0.7f,.color[2]*0.7f};.......
8ee0 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 55 41 44 53 29 3b 00 00 00 16 20 .........glBegin(GL_QUADS);.....
8f00 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c 6f 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 ...glColor3fv(color);........glV
8f20 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 ertex3fv(v0);........glVertex3fv
8f40 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 (v1);........glVertex3fv(v2);...
8f60 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 .....glVertex3fv(v3);........glE
8f80 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 nd();............glDisable(GL_LI
8fa0 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 67 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e 30 66 GHTING);........glLineWidth(1.0f
8fc0 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 29 3b );........glBegin(GL_LINE_LOOP);
8fe0 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 64 61 72 6b 65 72 29 3b 00 00 00 14 20 ........glColor3fv(darker);.....
9000 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 ...glVertex3fv(v0);........glVer
9020 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 tex3fv(v1);........glVertex3fv(v
9040 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 2);........glVertex3fv(v3);.....
9060 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c ...glEnd();........glEnable(GL_L
9080 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 76 6f 69 64 20 64 72 61 77 43 IGHTING);....}.......<void.drawC
90a0 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c 20 42 ube(float.x,.float.y,.float.z,.B
90c0 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 7b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 lockStyle.style).{........glPush
90e0 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 78 2c Matrix();........glTranslatef(x,
9100 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 34 5d 5b .y,.z);............float.top[4][
9120 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 3].=.{.../........{0.0f,.1.0f,.0
9140 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 .0f},.{1.0f,.1.0f,.0.0f},.......
9160 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 .....{1.0f,.1.0f,.1.0f},.{0.0f,.
9180 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 1a 20 20 20 20 66 6c 6f 1.0f,.1.0f}........};........flo
91a0 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b at.bottom[4][3].=.{.../........{
91c0 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 0.0f,.0.0f,.1.0f},.{1.0f,.0.0f,.
91e0 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 1.0f},............{1.0f,.0.0f,.0
9200 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 .0f},.{0.0f,.0.0f,.0.0f}........
9220 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 72 6f 6e 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 };........float.front[4][3].=.{.
9240 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b ../........{0.0f,.0.0f,.0.0f},.{
9260 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 1.0f,.0.0f,.0.0f},............{1
9280 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 .0f,.1.0f,.0.0f},.{0.0f,.1.0f,.0
92a0 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 62 61 63 6b .0f}........};........float.back
92c0 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 [4][3].=.{.../........{1.0f,.0.0
92e0 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 f,.1.0f},.{0.0f,.0.0f,.1.0f},...
9300 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e .........{0.0f,.1.0f,.1.0f},.{1.
9320 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 0f,.1.0f,.1.0f}........};.......
9340 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 .float.left[4][3].=.{.../.......
9360 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 .{0.0f,.0.0f,.1.0f},.{0.0f,.0.0f
9380 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c ,.0.0f},............{0.0f,.1.0f,
93a0 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 .0.0f},.{0.0f,.1.0f,.1.0f}......
93c0 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5b 34 5d 5b 33 5d 20 3d 20 ..};........float.right[4][3].=.
93e0 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c {.../........{1.0f,.0.0f,.0.0f},
9400 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 .{1.0f,.0.0f,.1.0f},............
9420 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c {1.0f,.1.0f,.1.0f},.{1.0f,.1.0f,
9440 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 38 20 20 20 20 64 72 61 77 .0.0f}........};.......8....draw
9460 46 61 63 65 28 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 6f 70 Face(top[0],.top[1],.top[2],.top
9480 5b 33 5d 2c 20 73 74 79 6c 65 2e 74 6f 70 29 3b 00 00 00 47 20 20 20 20 64 72 61 77 46 61 63 65 [3],.style.top);...G....drawFace
94a0 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f 6d 5b 31 5d 2c 20 62 6f 74 74 6f 6d 5b 32 5d (bottom[0],.bottom[1],.bottom[2]
94c0 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c 65 2e 62 6f 74 74 6f 6d 29 3b 00 00 00 41 20 ,.bottom[3],.style.bottom);...A.
94e0 20 20 20 64 72 61 77 46 61 63 65 28 66 72 6f 6e 74 5b 30 5d 2c 20 66 72 6f 6e 74 5b 31 5d 2c 20 ...drawFace(front[0],.front[1],.
9500 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b front[2],.front[3],.style.side);
9520 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b 5b 31 ...=....drawFace(back[0],.back[1
9540 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 ],.back[2],.back[3],.style.side)
9560 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 74 5b ;...=....drawFace(left[0],.left[
9580 31 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 1],.left[2],.left[3],.style.side
95a0 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 72 69 67 68 74 5b 30 5d 2c 20 72 69 67 );...A....drawFace(right[0],.rig
95c0 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 72 69 67 68 74 5b 33 5d 2c 20 73 74 79 6c 65 ht[1],.right[2],.right[3],.style
95e0 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 .side);............glPopMatrix()
9600 3b 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 ;....}........void.drawPlatform(
9620 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 ).{...!....int.half.=.PLATFORM_S
9640 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 2d 68 61 IZE./.2;...(....for.(int.i.=.-ha
9660 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 lf;.i.<.half;.i++).{...,........
9680 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 6a 20 3c 20 68 61 6c 66 3b 20 6a 2b for.(int.j.=.-half;.j.<.half;.j+
96a0 2b 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 64 69 73 74 20 3d +).{...*............float.dist.=
96c0 20 73 71 72 74 66 28 69 2a 69 20 2b 20 6a 2a 6a 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 20 20 .sqrtf(i*i.+.j*j);...%..........
96e0 20 20 69 66 20 28 64 69 73 74 20 3e 20 68 61 6c 66 20 2a 20 30 2e 37 66 29 20 7b 00 00 00 2e 20 ..if.(dist.>.half.*.0.7f).{.....
9700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6b 20 3d 20 2d 33 3b 20 ...............for.(int.k.=.-3;.
9720 6b 20 3c 20 30 3b 20 6b 2b 2b 29 20 7b 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k.<.0;.k++).{...G...............
9740 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 28 66 6c 6f 61 74 29 6b .....drawCube((float)i,.(float)k
9760 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 73 74 6f 6e 65 42 6c 6f 63 6b 29 3b 00 00 00 11 20 20 20 20 ,.(float)j,.stoneBlock);........
9780 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............}...?...............
97a0 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 .drawCube((float)i,.0.0f,.(float
97c0 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 )j,.grassBlock);................
97e0 7d 20 65 6c 73 65 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 }.else.{...?................draw
9800 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 67 Cube((float)i,.0.0f,.(float)j,.g
9820 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 rassBlock);...M................i
9840 66 20 28 28 69 20 2b 20 6a 29 20 25 20 35 20 3d 3d 20 30 20 26 26 20 61 62 73 28 69 29 20 3e 20 f.((i.+.j).%.5.==.0.&&.abs(i).>.
9860 68 61 6c 66 2f 33 20 26 26 20 61 62 73 28 6a 29 20 3e 20 68 61 6c 66 2f 33 29 20 7b 00 00 00 42 half/3.&&.abs(j).>.half/3).{...B
9880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c ....................drawCube((fl
98a0 6f 61 74 29 69 2c 20 31 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 64 69 72 74 42 6c 6f 63 6b oat)i,.1.0f,.(float)j,.dirtBlock
98c0 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 0d 20 20 20 20 20 );....................}.........
98e0 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 .......}............}........}..
9900 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 28 29 20 7b 00 00 00 37 20 ..}........void.display().{...7.
9920 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 46 45 52 5f 42 49 54 20 7c ...glClear(GL_COLOR_BUFFER_BIT.|
9940 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 00 00 04 20 20 20 20 00 00 .GL_DEPTH_BUFFER_BIT);..........
9960 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 ......glMatrixMode(GL_MODELVIEW)
9980 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 04 20 20 ;........glLoadIdentity();......
99a0 20 20 00 00 00 28 20 20 20 20 67 6c 52 6f 74 61 74 65 66 28 2d 70 69 74 63 68 2c 20 31 2e 30 66 .....(....glRotatef(-pitch,.1.0f
99c0 2c 20 30 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 26 20 20 20 20 67 6c 52 6f 74 61 74 65 66 28 ,.0.0f,.0.0f);...&....glRotatef(
99e0 2d 79 61 77 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 26 20 20 20 20 -yaw,.0.0f,.1.0f,.0.0f);...&....
9a00 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 2d 63 61 6d 58 2c 20 2d 63 61 6d 59 2c 20 2d 63 61 6d 5a glTranslatef(-camX,.-camY,.-camZ
9a20 29 3b 00 00 00 04 20 20 20 20 00 00 00 13 20 20 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 );................drawPlatform()
9a40 3b 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d ;........glutSwapBuffers();....}
9a60 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 ........void.reshape(int.w,.int.
9a80 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 h).{........glViewport(0,.0,.w,.
9aa0 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 h);........glMatrixMode(GL_PROJE
9ac0 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b CTION);........glLoadIdentity();
9ae0 00 00 00 4b 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 64 6f ...K....gluPerspective(75.0,.(do
9b00 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 2e 30 35 2c 20 50 4c 41 54 46 4f uble)w./.(double)h,.0.05,.PLATFO
9b20 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d RM_SIZE.*.2.0);........glMatrixM
9b40 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 76 ode(GL_MODELVIEW);....}.......4v
9b60 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b oid.keyboardDown(unsigned.char.k
9b80 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 ey,.int.x,.int.y).{........switc
9ba0 68 20 28 6b 65 79 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 63 61 73 65 20 27 77 27 3a 20 63 h.(key).{...3........case.'w':.c
9bc0 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 46 6f 72 77 61 72 64 20 3d 20 31 3b 20 62 72 65 61 6b 3b ase.'W':.moveForward.=.1;.break;
9be0 00 00 00 34 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 61 73 65 20 27 53 27 3a 20 ...4........case.'s':.case.'S':.
9c00 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 30 20 20 20 20 moveBackward.=.1;.break;...0....
9c20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 63 61 73 65 20 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 ....case.'a':.case.'A':.moveLeft
9c40 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 31 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 27 .=.1;.break;...1........case.'d'
9c60 3a 20 63 61 73 65 20 27 44 27 3a 20 6d 6f 76 65 52 69 67 68 74 20 3d 20 31 3b 20 62 72 65 61 6b :.case.'D':.moveRight.=.1;.break
9c80 3b 00 00 00 19 20 20 20 20 20 20 20 20 63 61 73 65 20 32 37 3a 20 65 78 69 74 28 30 29 3b 00 00 ;............case.27:.exit(0);..
9ca0 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 ......}....}.......2void.keyboar
9cc0 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e dUp(unsigned.char.key,.int.x,.in
9ce0 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 6b 65 79 29 20 7b 00 00 00 33 t.y).{........switch.(key).{...3
9d00 20 20 20 20 20 20 20 20 63 61 73 65 20 27 77 27 3a 20 63 61 73 65 20 27 57 27 3a 20 6d 6f 76 65 ........case.'w':.case.'W':.move
9d20 46 6f 72 77 61 72 64 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 34 20 20 20 20 20 20 20 20 63 Forward.=.0;.break;...4........c
9d40 61 73 65 20 27 73 27 3a 20 63 61 73 65 20 27 53 27 3a 20 6d 6f 76 65 42 61 63 6b 77 61 72 64 20 ase.'s':.case.'S':.moveBackward.
9d60 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 30 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a =.0;.break;...0........case.'a':
9d80 20 63 61 73 65 20 27 41 27 3a 20 6d 6f 76 65 4c 65 66 74 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 .case.'A':.moveLeft.=.0;.break;.
9da0 00 00 31 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 61 73 65 20 27 44 27 3a 20 6d ..1........case.'d':.case.'D':.m
9dc0 6f 76 65 52 69 67 68 74 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 oveRight.=.0;.break;........}...
9de0 01 7d 00 00 00 00 00 00 00 21 76 6f 69 64 20 70 61 73 73 69 76 65 4d 6f 75 73 65 28 69 6e 74 20 .}.......!void.passiveMouse(int.
9e00 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 23 20 20 20 20 69 6e 74 20 63 65 6e 74 65 72 58 20 3d x,.int.y).{...#....int.centerX.=
9e20 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 3b 00 00 00 24 20 20 20 20 69 6e 74 20 63 65 .WINDOW_WIDTH./.2;...$....int.ce
9e40 6e 74 65 72 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 3b 00 00 00 04 20 20 nterY.=.WINDOW_HEIGHT./.2;......
9e60 20 20 00 00 00 16 20 20 20 20 69 66 20 28 77 61 72 70 50 6f 69 6e 74 65 72 29 20 7b 00 00 00 18 ..........if.(warpPointer).{....
9e80 20 20 20 20 20 20 20 20 77 61 72 70 50 6f 69 6e 74 65 72 20 3d 20 30 3b 00 00 00 2a 20 20 20 20 ........warpPointer.=.0;...*....
9ea0 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e ....glutWarpPointer(centerX,.cen
9ec0 74 65 72 59 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 terY);............return;.......
9ee0 20 7d 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 6e 74 20 64 78 20 3d 20 78 20 2d 20 63 .}................int.dx.=.x.-.c
9f00 65 6e 74 65 72 58 3b 00 00 00 19 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 63 65 6e 74 enterX;........int.dy.=.y.-.cent
9f20 65 72 59 3b 00 00 00 04 20 20 20 20 00 00 00 23 20 20 20 20 69 66 20 28 64 78 20 3d 3d 20 30 20 erY;...........#....if.(dx.==.0.
9f40 26 26 20 64 79 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 04 20 20 20 20 00 00 00 1b 20 &&.dy.==.0).return;.............
9f60 20 20 20 79 61 77 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 1d 20 20 ...yaw.+=.dx.*.MOUSE_SENS;......
9f80 20 20 70 69 74 63 68 20 2d 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 04 20 ..pitch.-=.dy.*.MOUSE_SENS;.....
9fa0 20 20 20 00 00 00 25 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 66 29 20 70 69 ......%....if.(pitch.>.89.0f).pi
9fc0 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 tch.=.89.0f;...'....if.(pitch.<.
9fe0 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 04 20 20 20 20 00 -89.0f).pitch.=.-89.0f;.........
a000 00 00 24 20 20 20 20 69 66 20 28 79 61 77 20 3e 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d 3d 20 ..$....if.(yaw.>.360.0f).yaw.-=.
a020 33 36 30 2e 30 66 3b 00 00 00 22 20 20 20 20 69 66 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 360.0f;..."....if.(yaw.<.0.0f).y
a040 61 77 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 00 04 20 20 20 20 00 00 00 26 20 20 20 20 67 6c 75 aw.+=.360.0f;...........&....glu
a060 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 tWarpPointer(centerX,.centerY);.
a080 00 00 01 7d 00 00 00 00 00 00 00 17 76 6f 69 64 20 75 70 64 61 74 65 28 66 6c 6f 61 74 20 64 74 ...}........void.update(float.dt
a0a0 29 20 7b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 4d 4f 56 45 5f 53 50 ).{..."....float.speed.=.MOVE_SP
a0c0 45 45 44 20 2a 20 64 74 3b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 EED.*.dt;...'....float.yawRad.=.
a0e0 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 yaw.*.M_PI./.180.0f;..."....floa
a100 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 t.forwardX.=.sinf(yawRad);...#..
a120 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 ..float.forwardZ.=.-cosf(yawRad)
a140 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 61 77 ;........float.rightX.=.cosf(yaw
a160 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 6e 66 Rad);........float.rightZ.=.sinf
a180 28 79 61 77 52 61 64 29 3b 00 00 00 00 00 00 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 46 6f 72 (yawRad);.......M....if.(moveFor
a1a0 77 61 72 64 29 20 20 7b 20 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 ward)..{.camX.+=.forwardX.*.spee
a1c0 64 3b 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 d;.camZ.+=.forwardZ.*.speed;.}..
a1e0 00 4d 20 20 20 20 69 66 20 28 6d 6f 76 65 42 61 63 6b 77 61 72 64 29 20 7b 20 63 61 6d 58 20 2d .M....if.(moveBackward).{.camX.-
a200 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 =.forwardX.*.speed;.camZ.-=.forw
a220 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 00 4b 20 20 20 20 69 66 20 28 6d 6f 76 65 4c ardZ.*.speed;.}...K....if.(moveL
a240 65 66 74 29 20 20 20 20 20 7b 20 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 eft).....{.camX.-=.rightX.*.spee
a260 64 3b 20 20 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 d;...camZ.-=.rightZ.*.speed;.}..
a280 00 4b 20 20 20 20 69 66 20 28 6d 6f 76 65 52 69 67 68 74 29 20 20 20 20 7b 20 63 61 6d 58 20 2b .K....if.(moveRight)....{.camX.+
a2a0 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 3b 20 20 20 63 61 6d 5a 20 2b 3d 20 72 69 67 68 =.rightX.*.speed;...camZ.+=.righ
a2c0 74 5a 20 2a 20 73 70 65 65 64 3b 20 7d 00 00 00 00 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c tZ.*.speed;.}.......0....float.l
a2e0 69 6d 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 imit.=.(PLATFORM_SIZE./.2.0f).-.
a300 31 2e 35 66 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 1.5f;...%....if.(camX.<.-limit).
a320 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e camX.=.-limit;...%....if.(camX.>
a340 20 20 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 ..limit).camX.=..limit;...%....i
a360 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b f.(camZ.<.-limit).camZ.=.-limit;
a380 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 5a 20 ...%....if.(camZ.>..limit).camZ.
a3a0 3d 20 20 6c 69 6d 69 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 =..limit;....}........void.idle(
a3c0 29 20 7b 00 00 00 1c 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 6c 61 73 74 54 69 6d 65 20 3d ).{........static.int.lastTime.=
a3e0 20 30 3b 00 00 00 29 20 20 20 20 69 6e 74 20 6e 6f 77 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 .0;...)....int.now.=.glutGet(GLU
a400 54 5f 45 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 00 00 2a 20 20 20 20 66 6c 6f 61 74 20 64 74 T_ELAPSED_TIME);...*....float.dt
a420 20 3d 20 28 6e 6f 77 20 2d 20 6c 61 73 74 54 69 6d 65 29 20 2f 20 31 30 30 30 2e 30 66 3b 00 00 .=.(now.-.lastTime)./.1000.0f;..
a440 00 13 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 3b 00 00 00 04 20 20 20 20 00 00 00 ......lastTime.=.now;...........
a460 1d 20 20 20 20 69 66 20 28 64 74 20 3e 20 30 2e 31 66 29 20 64 74 20 3d 20 30 2e 31 66 3b 00 00 .....if.(dt.>.0.1f).dt.=.0.1f;..
a480 00 20 20 20 20 20 69 66 20 28 64 74 20 3c 3d 20 30 2e 30 66 29 20 64 74 20 3d 20 30 2e 30 31 36 ......if.(dt.<=.0.0f).dt.=.0.016
a4a0 66 3b 00 00 00 04 20 20 20 20 00 00 00 0f 20 20 20 20 75 70 64 61 74 65 28 64 74 29 3b 00 00 00 f;................update(dt);...
a4c0 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 00 .....glutPostRedisplay();....}..
a4e0 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a .....!int.main(int.argc,.char.**
a500 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 2c 20 61 argv).{........glutInit(&argc,.a
a520 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 65 rgv);...=....glutInitDisplayMode
a540 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f 44 (GLUT_DOUBLE.|.GLUT_RGB.|.GLUT_D
a560 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 EPTH);...4....glutInitWindowSize
a580 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 3b 00 00 (WINDOW_WIDTH,.WINDOW_HEIGHT);..
a5a0 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 66 .,....glutCreateWindow("Minecraf
a5c0 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 4c t.Prototype");............initGL
a5e0 28 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 64 ();............glutDisplayFunc(d
a600 69 73 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 28 isplay);........glutReshapeFunc(
a620 72 65 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e reshape);...#....glutKeyboardFun
a640 63 28 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 c(keyboardDown);...#....glutKeyb
a660 6f 61 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 28 20 20 20 20 67 oardUpFunc(keyboardUp);...(....g
a680 6c 75 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 70 61 73 73 69 76 65 4d 6f 75 73 lutPassiveMotionFunc(passiveMous
a6a0 65 29 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 e);........glutIdleFunc(idle);..
a6c0 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 .........$....glutSetCursor(GLUT
a6e0 5f 43 55 52 53 4f 52 5f 4e 4f 4e 45 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 _CURSOR_NONE);............glutMa
a700 69 6e 4c 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 inLoop();........return.0;....}5
a720 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
a740 00 00 00 00 00 00 00 d2 1c 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 09 00 .......................5._......
a760 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 ................................
a780 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f7 .............................j..
a8e0 27 04 01 00 00 00 08 00 f5 18 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 16 20 20 '...............................
a900 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 f5 18 00 00 00 97 00 00 00 00 00 00 ..glViewport(0,.0,.w............
a920 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
a940 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............5.................
a960 00 00 00 00 00 00 96 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f ................................
a980 00 00 00 00 00 00 f5 18 00 00 00 00 96 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 65 00 00 00 ............................e...
a9a0 01 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 09 00 00 00 00 00 00 35 81 5f d0 ....................H.......5._.
a9c0 00 00 00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00 00 00 00 00 00 ................................
a9e0 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab40 00 00 6a 08 f7 ed 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 fc 00 ..j.............................
ab60 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c ...#include.<GL/glut.h>....#incl
ab80 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 ude.<math.h>....#include.<stdlib
aba0 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 .h>........#define.WINDOW_WIDTH.
abc0 20 20 31 32 38 30 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 ..1280....#define.WINDOW_HEIGHT.
abe0 20 37 32 30 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 20 36 .720....#define.PLATFORM_SIZE..6
ac00 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 38 2e 30 66 0....#define.MOVE_SPEED.....8.0f
ac20 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e 32 66 00 ....#define.MOUSE_SENS.....0.2f.
ac40 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e 36 32 66 00 ...#define.PLAYER_HEIGHT..1.62f.
ac60 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 6d 59 20 3d ......5float.camX.=.0.0f,.camY.=
ac80 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 00 00 1f .PLAYER_HEIGHT,.camZ.=.0.0f;....
aca0 66 6c 6f 61 74 20 79 61 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 2e 30 66 3b 00 float.yaw.=.0.0f,.pitch.=.0.0f;.
acc0 00 00 0e 69 6e 74 20 6b 65 79 73 5b 32 35 36 5d 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 ...int.keys[256];........typedef
ace0 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 33 5d 3b 00 00 .struct.{........float.top[3];..
ad00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 64 65 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 ......float.side[3];........floa
ad20 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 00 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b 00 00 00 t.bottom[3];....}.BlockStyle;...
ad40 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 7b 00 00 .....BlockStyle.grassBlock.=.{..
ad60 00 1a 20 20 20 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 1a ......{0.25f,.0.75f,.0.15f},....
ad80 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 19 20 20 ....{0.50f,.0.35f,.0.10f},......
ada0 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d 00 00 00 02 7d 3b 00 00 00 ..{0.40f,.0.25f,.0.08f}....};...
adc0 00 00 00 00 18 42 6c 6f 63 6b 53 74 79 6c 65 20 64 69 72 74 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 .....BlockStyle.dirtBlock.=.{...
ade0 1a 20 20 20 20 7b 30 2e 35 35 66 2c 20 30 2e 34 30 66 2c 20 30 2e 32 30 66 7d 2c 00 00 00 1a 20 .....{0.55f,.0.40f,.0.20f},.....
ae00 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 38 66 7d 2c 00 00 00 19 20 20 20 ...{0.50f,.0.35f,.0.18f},.......
ae20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 38 66 2c 20 30 2e 31 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 .{0.40f,.0.28f,.0.15f}....};....
ae40 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 6f 6e 65 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 ....BlockStyle.stoneBlock.=.{...
ae60 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 35 30 66 2c 20 30 2e 35 30 66 7d 2c 00 00 00 1a 20 .....{0.50f,.0.50f,.0.50f},.....
ae80 20 20 20 7b 30 2e 34 35 66 2c 20 30 2e 34 35 66 2c 20 30 2e 34 35 66 7d 2c 00 00 00 19 20 20 20 ...{0.45f,.0.45f,.0.45f},.......
aea0 20 7b 30 2e 33 35 66 2c 20 30 2e 33 35 66 2c 20 30 2e 33 35 66 7d 00 00 00 02 7d 3b 00 00 00 00 .{0.35f,.0.35f,.0.35f}....};....
aec0 00 00 00 0f 76 6f 69 64 20 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 ....void.initGL().{...,....glCle
aee0 61 72 43 6f 6c 6f 72 28 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 arColor(0.53f,.0.81f,.0.98f,.1.0
af00 66 29 3b 00 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 f);........glEnable(GL_DEPTH_TES
af20 54 29 3b 00 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 T);........glEnable(GL_CULL_FACE
af40 29 3b 00 00 00 18 20 20 20 20 67 6c 43 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 );........glCullFace(GL_BACK);..
af60 00 15 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 ......glEnable(GL_FOG);...#....g
af80 6c 46 6f 67 69 28 47 4c 5f 46 4f 47 5f 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 lFogi(GL_FOG_MODE,.GL_LINEAR);..
afa0 00 2f 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 ./....glFogf(GL_FOG_START,.PLATF
afc0 4f 52 4d 5f 53 49 5a 45 20 2a 20 30 2e 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 ORM_SIZE.*.0.6f);...-....glFogf(
afe0 47 4c 5f 46 4f 47 5f 45 4e 44 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 GL_FOG_END,.PLATFORM_SIZE.*.1.2f
b000 29 3b 00 00 00 33 20 20 20 20 66 6c 6f 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e );...3....float.fogColor[].=.{0.
b020 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 53f,.0.81f,.0.98f,.1.0f};...$...
b040 20 67 6c 46 6f 67 66 76 28 47 4c 5f 46 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 .glFogfv(GL_FOG_COLOR,.fogColor)
b060 3b 00 00 00 00 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d ;.......1....GLfloat.ambient[].=
b080 20 7b 30 2e 36 66 2c 20 30 2e 36 66 2c 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 .{0.6f,.0.6f,.0.6f,.1.0f};...1..
b0a0 20 20 47 4c 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 ..GLfloat.diffuse[].=.{0.8f,.0.8
b0c0 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c f,.0.7f,.1.0f};...W....GLfloat.l
b0e0 69 67 68 74 50 6f 73 5b 5d 20 3d 20 7b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c ightPos[].=.{PLATFORM_SIZE/2.0f,
b100 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e .PLATFORM_SIZE,.PLATFORM_SIZE/2.
b120 30 66 2c 20 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 0f,.1.0f};............glEnable(G
b140 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f L_LIGHTING);........glEnable(GL_
b160 4c 49 47 48 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 LIGHT0);........glLightfv(GL_LIG
b180 48 54 30 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 HT0,.GL_AMBIENT,.ambient);......
b1a0 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 ..glLightfv(GL_LIGHT0,.GL_DIFFUS
b1c0 45 2c 20 64 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c E,.diffuse);...0....glLightfv(GL
b1e0 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b _LIGHT0,.GL_POSITION,.lightPos);
b200 00 00 00 01 7d 00 00 00 00 00 00 00 53 76 6f 69 64 20 64 72 61 77 46 61 63 65 28 66 6c 6f 61 74 ....}.......Svoid.drawFace(float
b220 20 76 30 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d .v0[3],.float.v1[3],.float.v2[3]
b240 2c 20 66 6c 6f 61 74 20 76 33 5b 33 5d 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b ,.float.v3[3],.float.color[3]).{
b260 00 00 00 44 20 20 20 20 66 6c 6f 61 74 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 ...D....float.darker[3].=.{color
b280 5b 30 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 [0]*0.7f,.color[1]*0.7f,.color[2
b2a0 5d 2a 30 2e 37 66 7d 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 ]*0.7f};................glBegin(
b2c0 47 4c 5f 51 55 41 44 53 29 3b 00 00 00 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c GL_QUADS);........glColor3fv(col
b2e0 6f 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 or);........glVertex3fv(v0);....
b300 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 ....glVertex3fv(v1);........glVe
b320 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 rtex3fv(v2);........glVertex3fv(
b340 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 v3);........glEnd();............
b360 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 67 glDisable(GL_LIGHTING);........g
b380 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 6e lLineWidth(1.0f);........glBegin
b3a0 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 29 3b 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 (GL_LINE_LOOP);........glColor3f
b3c0 76 28 64 61 72 6b 65 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 v(darker);........glVertex3fv(v0
b3e0 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 );........glVertex3fv(v1);......
b400 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 ..glVertex3fv(v2);........glVert
b420 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 ex3fv(v3);........glEnd();......
b440 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 ..glEnable(GL_LIGHTING);....}...
b460 00 00 00 00 3c 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 ....<void.drawCube(float.x,.floa
b480 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 t.y,.float.z,.BlockStyle.style).
b4a0 7b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 {........glPushMatrix();........
b4c0 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 glTranslatef(x,.y,.z);..........
b4e0 20 20 66 6c 6f 61 74 20 74 6f 70 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 ..float.top[4][3].=.{.../.......
b500 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 .{0.0f,.1.0f,.0.0f},.{1.0f,.1.0f
b520 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c ,.0.0f},............{1.0f,.1.0f,
b540 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 .1.0f},.{0.0f,.1.0f,.1.0f}......
b560 20 20 7d 3b 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d ..};........float.bottom[4][3].=
b580 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d .{.../........{0.0f,.0.0f,.1.0f}
b5a0 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 ,.{1.0f,.0.0f,.1.0f},...........
b5c0 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 .{1.0f,.0.0f,.0.0f},.{0.0f,.0.0f
b5e0 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 ,.0.0f}........};........float.f
b600 72 6f 6e 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c ront[4][3].=.{.../........{0.0f,
b620 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d .0.0f,.0.0f},.{1.0f,.0.0f,.0.0f}
b640 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c ,............{1.0f,.1.0f,.0.0f},
b660 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 .{0.0f,.1.0f,.0.0f}........};...
b680 18 20 20 20 20 66 6c 6f 61 74 20 62 61 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 .....float.back[4][3].=.{.../...
b6a0 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 .....{1.0f,.0.0f,.1.0f},.{0.0f,.
b6c0 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 0.0f,.1.0f},............{0.0f,.1
b6e0 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 .0f,.1.0f},.{1.0f,.1.0f,.1.0f}..
b700 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d ......};........float.left[4][3]
b720 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 .=.{.../........{0.0f,.0.0f,.1.0
b740 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 f},.{0.0f,.0.0f,.0.0f},.........
b760 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e ...{0.0f,.1.0f,.0.0f},.{0.0f,.1.
b780 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 0f,.1.0f}........};........float
b7a0 20 72 69 67 68 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 .right[4][3].=.{.../........{1.0
b7c0 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 f,.0.0f,.0.0f},.{1.0f,.0.0f,.1.0
b7e0 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 f},............{1.0f,.1.0f,.1.0f
b800 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 },.{1.0f,.1.0f,.0.0f}........};.
b820 00 00 00 00 00 00 38 20 20 20 20 64 72 61 77 46 61 63 65 28 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b ......8....drawFace(top[0],.top[
b840 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 6f 70 5b 33 5d 2c 20 73 74 79 6c 65 2e 74 6f 70 29 3b 00 1],.top[2],.top[3],.style.top);.
b860 00 00 47 20 20 20 20 64 72 61 77 46 61 63 65 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f ..G....drawFace(bottom[0],.botto
b880 6d 5b 31 5d 2c 20 62 6f 74 74 6f 6d 5b 32 5d 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c m[1],.bottom[2],.bottom[3],.styl
b8a0 65 2e 62 6f 74 74 6f 6d 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 66 72 6f 6e 74 e.bottom);...A....drawFace(front
b8c0 5b 30 5d 2c 20 66 72 6f 6e 74 5b 31 5d 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 [0],.front[1],.front[2],.front[3
b8e0 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 ],.style.side);...=....drawFace(
b900 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b 5b back[0],.back[1],.back[2],.back[
b920 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 3],.style.side);...=....drawFace
b940 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 74 5b 31 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 (left[0],.left[1],.left[2],.left
b960 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 [3],.style.side);...A....drawFac
b980 65 28 72 69 67 68 74 5b 30 5d 2c 20 72 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 e(right[0],.right[1],.right[2],.
b9a0 72 69 67 68 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 right[3],.style.side);..........
b9c0 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 ..glPopMatrix();....}........voi
b9e0 64 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 d.drawPlatform().{...!....int.ha
ba00 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 lf.=.PLATFORM_SIZE./.2;...(....f
ba20 6f 72 20 28 69 6e 74 20 69 20 3d 20 2d 68 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b or.(int.i.=.-half;.i.<.half;.i++
ba40 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c ).{...,........for.(int.j.=.-hal
ba60 66 3b 20 6a 20 3c 20 68 61 6c 66 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 f;.j.<.half;.j++).{...;.........
ba80 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f ...drawCube((float)i,.0.0f,.(flo
baa0 61 74 29 6a 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 at)j,.grassBlock);............}.
bac0 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 .......}....}........void.displa
bae0 79 28 29 20 7b 00 00 00 37 20 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 y().{...7....glClear(GL_COLOR_BU
bb00 46 46 45 52 5f 42 49 54 20 7c 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b FFER_BIT.|.GL_DEPTH_BUFFER_BIT);
bb20 00 00 00 04 20 20 20 20 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f ................glMatrixMode(GL_
bb40 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 MODELVIEW);........glLoadIdentit
bb60 79 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 58 20 y();...........Q....float.lookX.
bb80 3d 20 63 61 6d 58 20 2b 20 73 69 6e 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 =.camX.+.sinf(yaw.*.M_PI./.180.0
bba0 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 f).*.cosf(pitch.*.M_PI./.180.0f)
bbc0 3b 00 00 00 35 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 59 20 3d 20 63 61 6d 59 20 2d 20 73 69 ;...5....float.lookY.=.camY.-.si
bbe0 6e 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 51 20 20 nf(pitch.*.M_PI./.180.0f);...Q..
bc00 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 5a 20 3d 20 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 77 20 ..float.lookZ.=.camZ.-.cosf(yaw.
bc20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 *.M_PI./.180.0f).*.cosf(pitch.*.
bc40 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 47 20 20 20 20 67 M_PI./.180.0f);...........G....g
bc60 6c 75 4c 6f 6f 6b 41 74 28 63 61 6d 58 2c 20 63 61 6d 59 2c 20 63 61 6d 5a 2c 20 6c 6f 6f 6b 58 luLookAt(camX,.camY,.camZ,.lookX
bc80 2c 20 6c 6f 6f 6b 59 2c 20 6c 6f 6f 6b 5a 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 ,.lookY,.lookZ,.0.0f,.1.0f,.0.0f
bca0 29 3b 00 00 00 04 20 20 20 20 00 00 00 13 20 20 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 );................drawPlatform()
bcc0 3b 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d ;........glutSwapBuffers();....}
bce0 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 ........void.reshape(int.w,.int.
bd00 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 h).{........glViewport(0,.0,.w,.
bd20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 h);........glMatrixMode(GL_PROJE
bd40 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b CTION);........glLoadIdentity();
bd60 00 00 00 4b 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 64 6f ...K....gluPerspective(75.0,.(do
bd80 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 2e 30 35 2c 20 50 4c 41 54 46 4f uble)w./.(double)h,.0.05,.PLATFO
bda0 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d RM_SIZE.*.2.0);........glMatrixM
bdc0 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 76 ode(GL_MODELVIEW);....}.......4v
bde0 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b oid.keyboardDown(unsigned.char.k
be00 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b ey,.int.x,.int.y).{........keys[
be20 6b 65 79 5d 20 3d 20 31 3b 00 00 00 1b 20 20 20 20 69 66 20 28 6b 65 79 20 3d 3d 20 32 37 29 20 key].=.1;........if.(key.==.27).
be40 65 78 69 74 28 30 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 exit(0);....}.......2void.keyboa
be60 72 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 rdUp(unsigned.char.key,.int.x,.i
be80 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 30 3b 00 00 00 nt.y).{........keys[key].=.0;...
bea0 01 7d 00 00 00 00 00 00 00 1e 76 6f 69 64 20 6d 6f 75 73 65 4d 6f 76 65 28 69 6e 74 20 78 2c 20 .}........void.mouseMove(int.x,.
bec0 69 6e 74 20 79 29 20 7b 00 00 00 28 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 6c 61 73 74 58 int.y).{...(....static.int.lastX
bee0 20 3d 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 3b 00 00 00 29 20 20 20 20 73 74 61 74 .=.WINDOW_WIDTH./.2;...)....stat
bf00 69 63 20 69 6e 74 20 6c 61 73 74 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 ic.int.lastY.=.WINDOW_HEIGHT./.2
bf20 3b 00 00 00 1e 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 66 69 72 73 74 4d 6f 75 73 65 20 3d ;........static.int.firstMouse.=
bf40 20 31 3b 00 00 00 04 20 20 20 20 00 00 00 15 20 20 20 20 69 66 20 28 66 69 72 73 74 4d 6f 75 73 .1;................if.(firstMous
bf60 65 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 6c 61 73 74 58 20 3d 20 78 3b 00 00 00 12 20 20 e).{............lastX.=.x;......
bf80 20 20 20 20 20 20 6c 61 73 74 59 20 3d 20 79 3b 00 00 00 17 20 20 20 20 20 20 20 20 66 69 72 73 ......lastY.=.y;............firs
bfa0 74 4d 6f 75 73 65 20 3d 20 30 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 tMouse.=.0;............return;..
bfc0 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 17 20 20 20 20 69 6e 74 20 64 78 20 3d 20 ......}................int.dx.=.
bfe0 78 20 2d 20 6c 61 73 74 58 3b 00 00 00 17 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 6c x.-.lastX;........int.dy.=.y.-.l
c000 61 73 74 59 3b 00 00 00 0e 20 20 20 20 6c 61 73 74 58 20 3d 20 78 3b 00 00 00 0e 20 20 20 20 6c astY;........lastX.=.x;........l
c020 61 73 74 59 20 3d 20 79 3b 00 00 00 04 20 20 20 20 00 00 00 1b 20 20 20 20 79 61 77 20 2b 3d 20 astY.=.y;................yaw.+=.
c040 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 1d 20 20 20 20 70 69 74 63 68 20 2d 3d dx.*.MOUSE_SENS;........pitch.-=
c060 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 04 20 20 20 20 00 00 00 25 20 20 20 .dy.*.MOUSE_SENS;...........%...
c080 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 38 39 2e 30 .if.(pitch.>.89.0f).pitch.=.89.0
c0a0 66 3b 00 00 00 27 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 2d 38 39 2e 30 66 29 20 70 69 f;...'....if.(pitch.<.-89.0f).pi
c0c0 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 04 20 20 20 20 00 00 00 25 20 20 20 20 77 68 69 tch.=.-89.0f;...........%....whi
c0e0 6c 65 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 le.(yaw.<.0.0f).yaw.+=.360.0f;..
c100 00 28 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3e 3d 20 33 36 30 2e 30 66 29 20 79 61 77 20 .(....while.(yaw.>=.360.0f).yaw.
c120 2d 3d 20 33 36 30 2e 30 66 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0f 76 6f 69 64 20 75 70 64 61 -=.360.0f;....}........void.upda
c140 74 65 28 29 20 7b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 79 61 77 te().{...'....float.yawRad.=.yaw
c160 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 66 .*.M_PI./.180.0f;..."....float.f
c180 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 20 20 66 orwardX.=.sinf(yawRad);...#....f
c1a0 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 loat.forwardZ.=.-cosf(yawRad);..
c1c0 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 61 77 52 61 64 ......float.rightX.=.cosf(yawRad
c1e0 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 6e 66 28 79 61 );........float.rightZ.=.sinf(ya
c200 77 52 61 64 29 3b 00 00 00 04 20 20 20 20 00 00 00 17 20 20 20 20 66 6c 6f 61 74 20 73 70 65 65 wRad);................float.spee
c220 64 20 3d 20 30 2e 31 66 3b 00 00 00 04 20 20 20 20 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 d.=.0.1f;...........!....if.(key
c240 73 5b 27 77 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 57 27 5d 29 20 7b 00 00 00 21 20 20 20 20 20 20 s['w'].||.keys['W']).{...!......
c260 20 20 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 00 00 00 21 20 ..camX.+=.forwardX.*.speed;...!.
c280 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 3b .......camZ.+=.forwardZ.*.speed;
c2a0 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 73 27 5d 20 7c ........}...!....if.(keys['s'].|
c2c0 7c 20 6b 65 79 73 5b 27 53 27 5d 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 58 20 2d |.keys['S']).{...!........camX.-
c2e0 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 00 00 00 21 20 20 20 20 20 20 20 20 63 =.forwardX.*.speed;...!........c
c300 61 6d 5a 20 2d 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 amZ.-=.forwardZ.*.speed;........
c320 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 61 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 }...!....if.(keys['a'].||.keys['
c340 41 27 5d 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 58 A']).{............camX.-=.rightX
c360 20 2a 20 73 70 65 65 64 3b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 72 69 67 .*.speed;............camZ.-=.rig
c380 68 74 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 htZ.*.speed;........}...!....if.
c3a0 28 6b 65 79 73 5b 27 64 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 44 27 5d 29 20 7b 00 00 00 1f 20 20 (keys['d'].||.keys['D']).{......
c3c0 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 3b 00 00 00 ......camX.+=.rightX.*.speed;...
c3e0 1f 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 3b .........camZ.+=.rightZ.*.speed;
c400 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c ........}...........0....float.l
c420 69 6d 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 imit.=.(PLATFORM_SIZE./.2.0f).-.
c440 31 2e 35 66 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 1.5f;...%....if.(camX.<.-limit).
c460 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e camX.=.-limit;...%....if.(camX.>
c480 20 20 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 ..limit).camX.=..limit;...%....i
c4a0 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b f.(camZ.<.-limit).camZ.=.-limit;
c4c0 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 5a 20 ...%....if.(camZ.>..limit).camZ.
c4e0 3d 20 20 6c 69 6d 69 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 =..limit;....}........void.idle(
c500 29 20 7b 00 00 00 0d 20 20 20 20 75 70 64 61 74 65 28 29 3b 00 00 00 18 20 20 20 20 67 6c 75 74 ).{........update();........glut
c520 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 69 6e 74 PostRedisplay();....}.......!int
c540 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 00 00 .main(int.argc,.char.**argv).{..
c560 00 1a 20 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 2c 20 61 72 67 76 29 3b 00 00 00 3d ......glutInit(&argc,.argv);...=
c580 20 20 20 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 65 28 47 4c 55 54 5f 44 4f 55 ....glutInitDisplayMode(GLUT_DOU
c5a0 42 4c 45 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f 44 45 50 54 48 29 3b 00 00 00 BLE.|.GLUT_RGB.|.GLUT_DEPTH);...
c5c0 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 28 57 49 4e 44 4f 57 5f 57 4....glutInitWindowSize(WINDOW_W
c5e0 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 3b 00 00 00 2c 20 20 20 20 67 6c 75 IDTH,.WINDOW_HEIGHT);...,....glu
c600 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 66 74 20 50 72 6f 74 6f 74 79 tCreateWindow("Minecraft.Prototy
c620 70 65 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 4c 28 29 3b 00 00 00 00 00 00 pe");............initGL();......
c640 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 64 69 73 70 6c 61 79 29 3b 00 ......glutDisplayFunc(display);.
c660 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 28 72 65 73 68 61 70 65 29 3b .......glutReshapeFunc(reshape);
c680 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 28 6b 65 79 62 6f 61 72 ...#....glutKeyboardFunc(keyboar
c6a0 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 55 70 46 75 6e dDown);...#....glutKeyboardUpFun
c6c0 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 25 20 20 20 20 67 6c 75 74 50 61 73 73 69 76 c(keyboardUp);...%....glutPassiv
c6e0 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 6d 6f 75 73 65 4d 6f 76 65 29 3b 00 00 00 1e 20 20 20 20 67 eMotionFunc(mouseMove);........g
c700 6c 75 74 4d 6f 74 69 6f 6e 46 75 6e 63 28 6d 6f 75 73 65 4d 6f 76 65 29 3b 00 00 00 17 20 20 20 lutMotionFunc(mouseMove);.......
c720 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 .glutIdleFunc(idle);...........$
c740 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 5f 43 55 52 53 4f 52 5f 4e 4f ....glutSetCursor(GLUT_CURSOR_NO
c760 4e 45 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 6e 4c 6f 6f 70 28 29 3b 00 NE);............glutMainLoop();.
c780 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 .......return.0;....}5..........
c7a0 00 00 00 00 00 fc 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 19 00 .............................B..
c7c0 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0b 00 00 00 0d 00 00 00 00 00 00 00 .............5._................
c7e0 00 00 00 00 0c 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 ................................
c800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f7 ee 04 01 00 00 00 0a 00 f5 18 ...................j............
c960 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 76 6f 69 64 20 6b 65 79 62 6f 61 72 ....................void.keyboar
c980 64 44 6f 77 6e 28 75 6e 73 69 67 6e f5 18 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 dDown(unsign....................
c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 ................................
c9c0 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 00 ......5.........................
c9e0 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 ................................
ca00 00 00 00 00 92 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 66 00 00 00 01 00 00 00 f9 0f 00 00 ....................f...........
ca20 00 00 00 00 00 00 00 00 00 00 00 00 e2 09 00 00 00 00 00 00 35 81 5f d0 00 00 00 0c 00 00 00 0e ....................5._.........
ca40 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f8 95 04 01 ..........................j.....
cbc0 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f9 00 00 00 14 23 69 6e 63 6c ...........................#incl
cbe0 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 ude.<GL/glut.h>....#include.<mat
cc00 68 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 00 00 h.h>....#include.<stdlib.h>.....
cc20 00 00 1b 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 20 20 31 32 38 30 00 00 ...#define.WINDOW_WIDTH...1280..
cc40 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 20 37 32 30 00 00 00 19 ..#define.WINDOW_HEIGHT..720....
cc60 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 20 36 30 00 00 00 1b 23 64 65 #define.PLATFORM_SIZE..60....#de
cc80 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 38 2e 30 66 00 00 00 1b 23 64 65 66 fine.MOVE_SPEED.....8.0f....#def
cca0 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e 32 66 00 00 00 1c 23 64 65 66 69 ine.MOUSE_SENS.....0.2f....#defi
ccc0 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e 36 32 66 00 00 00 00 00 00 00 35 66 ne.PLAYER_HEIGHT..1.62f.......5f
cce0 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 6d 59 20 3d 20 50 4c 41 59 45 52 5f loat.camX.=.0.0f,.camY.=.PLAYER_
cd00 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 00 00 1f 66 6c 6f 61 74 20 79 61 HEIGHT,.camZ.=.0.0f;....float.ya
cd20 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 2e 30 66 3b 00 00 00 0e 69 6e 74 20 6b w.=.0.0f,.pitch.=.0.0f;....int.k
cd40 65 79 73 5b 32 35 36 5d 3b 00 00 00 16 69 6e 74 20 6d 6f 75 73 65 43 61 70 74 75 72 65 64 20 3d eys[256];....int.mouseCaptured.=
cd60 20 30 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 .0;........typedef.struct.{.....
cd80 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 33 5d 3b 00 00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 ...float.top[3];........float.si
cda0 64 65 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 de[3];........float.bottom[3];..
cdc0 00 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c ..}.BlockStyle;........BlockStyl
cde0 65 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 32 35 66 2c 20 e.grassBlock.=.{........{0.25f,.
ce00 30 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 0.75f,.0.15f},........{0.50f,.0.
ce20 33 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 35f,.0.10f},........{0.40f,.0.25
ce40 66 2c 20 30 2e 30 38 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0f 76 6f 69 64 20 69 6e 69 74 f,.0.08f}....};........void.init
ce60 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 6f 6c 6f 72 28 30 2e 35 33 66 GL().{...,....glClearColor(0.53f
ce80 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 00 00 00 1c 20 20 20 20 67 6c ,.0.81f,.0.98f,.1.0f);........gl
cea0 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 00 1b 20 20 20 20 67 6c Enable(GL_DEPTH_TEST);........gl
cec0 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 29 3b 00 00 00 18 20 20 20 20 67 6c 43 Enable(GL_CULL_FACE);........glC
cee0 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 15 20 20 20 20 67 6c 45 6e 61 62 6c ullFace(GL_BACK);........glEnabl
cf00 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 6c 46 6f 67 69 28 47 4c 5f 46 4f 47 5f e(GL_FOG);...#....glFogi(GL_FOG_
cf20 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 00 2f 20 20 20 20 67 6c 46 6f 67 66 28 MODE,.GL_LINEAR);.../....glFogf(
cf40 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 30 2e GL_FOG_START,.PLATFORM_SIZE.*.0.
cf60 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 45 4e 44 2c 20 50 6f);...-....glFogf(GL_FOG_END,.P
cf80 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 29 3b 00 00 00 33 20 20 20 20 66 6c 6f LATFORM_SIZE.*.1.2f);...3....flo
cfa0 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 at.fogColor[].=.{0.53f,.0.81f,.0
cfc0 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 20 67 6c 46 6f 67 66 76 28 47 4c 5f 46 .98f,.1.0f};...$....glFogfv(GL_F
cfe0 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 3b 00 00 00 00 00 00 00 31 20 20 20 20 OG_COLOR,.fogColor);.......1....
d000 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d 20 7b 30 2e 36 66 2c 20 30 2e 36 66 2c GLfloat.ambient[].=.{0.6f,.0.6f,
d020 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 64 69 66 .0.6f,.1.0f};...1....GLfloat.dif
d040 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 fuse[].=.{0.8f,.0.8f,.0.7f,.1.0f
d060 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c 69 67 68 74 50 6f 73 5b 5d 20 3d 20 7b };...W....GLfloat.lightPos[].=.{
d080 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a PLATFORM_SIZE/2.0f,.PLATFORM_SIZ
d0a0 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 31 2e 30 66 7d 3b 00 00 00 E,.PLATFORM_SIZE/2.0f,.1.0f};...
d0c0 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 .........glEnable(GL_LIGHTING);.
d0e0 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 30 29 3b 00 00 00 2e 20 .......glEnable(GL_LIGHT0);.....
d100 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 41 4d 42 49 45 ...glLightfv(GL_LIGHT0,.GL_AMBIE
d120 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 NT,.ambient);........glLightfv(G
d140 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 45 2c 20 64 69 66 66 75 73 65 29 3b 00 L_LIGHT0,.GL_DIFFUSE,.diffuse);.
d160 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 50 ..0....glLightfv(GL_LIGHT0,.GL_P
d180 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 OSITION,.lightPos);....}.......S
d1a0 76 6f 69 64 20 64 72 61 77 46 61 63 65 28 66 6c 6f 61 74 20 76 30 5b 33 5d 2c 20 66 6c 6f 61 74 void.drawFace(float.v0[3],.float
d1c0 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 33 5b 33 5d .v1[3],.float.v2[3],.float.v3[3]
d1e0 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b 00 00 00 44 20 20 20 20 66 6c 6f 61 74 ,.float.color[3]).{...D....float
d200 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 5b 30 5d 2a 30 2e 37 66 2c 20 63 6f 6c .darker[3].=.{color[0]*0.7f,.col
d220 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 5d 2a 30 2e 37 66 7d 3b 00 00 00 04 20 or[1]*0.7f,.color[2]*0.7f};.....
d240 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 55 41 44 53 29 3b 00 00 00 ...........glBegin(GL_QUADS);...
d260 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c 6f 72 29 3b 00 00 00 14 20 20 20 20 67 .....glColor3fv(color);........g
d280 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 lVertex3fv(v0);........glVertex3
d2a0 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 fv(v1);........glVertex3fv(v2);.
d2c0 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 .......glVertex3fv(v3);........g
d2e0 6c 45 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f lEnd();............glDisable(GL_
d300 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 67 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e LIGHTING);........glLineWidth(1.
d320 30 66 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 0f);........glBegin(GL_LINE_LOOP
d340 29 3b 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 64 61 72 6b 65 72 29 3b 00 00 00 );........glColor3fv(darker);...
d360 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 67 6c 56 .....glVertex3fv(v0);........glV
d380 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 ertex3fv(v1);........glVertex3fv
d3a0 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 00 00 00 (v2);........glVertex3fv(v3);...
d3c0 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c .....glEnd();........glEnable(GL
d3e0 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 76 6f 69 64 20 64 72 61 _LIGHTING);....}.......<void.dra
d400 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c wCube(float.x,.float.y,.float.z,
d420 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 7b 00 00 00 13 20 20 20 20 67 6c 50 75 .BlockStyle.style).{........glPu
d440 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 shMatrix();........glTranslatef(
d460 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 34 x,.y,.z);............float.top[4
d480 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c ][3].=.{.../........{0.0f,.1.0f,
d4a0 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 .0.0f},.{1.0f,.1.0f,.0.0f},.....
d4c0 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 .......{1.0f,.1.0f,.1.0f},.{0.0f
d4e0 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 1a 20 20 20 20 66 ,.1.0f,.1.0f}........};........f
d500 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 loat.bottom[4][3].=.{.../.......
d520 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 .{0.0f,.0.0f,.1.0f},.{1.0f,.0.0f
d540 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c ,.1.0f},............{1.0f,.0.0f,
d560 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 .0.0f},.{0.0f,.0.0f,.0.0f}......
d580 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 72 6f 6e 74 5b 34 5d 5b 33 5d 20 3d 20 ..};........float.front[4][3].=.
d5a0 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c {.../........{0.0f,.0.0f,.0.0f},
d5c0 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 .{1.0f,.0.0f,.0.0f},............
d5e0 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c {1.0f,.1.0f,.0.0f},.{0.0f,.1.0f,
d600 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 62 61 .0.0f}........};........float.ba
d620 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 ck[4][3].=.{.../........{1.0f,.0
d640 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 .0f,.1.0f},.{0.0f,.0.0f,.1.0f},.
d660 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b ...........{0.0f,.1.0f,.1.0f},.{
d680 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 1.0f,.1.0f,.1.0f}........};.....
d6a0 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 ...float.left[4][3].=.{.../.....
d6c0 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e ...{0.0f,.0.0f,.1.0f},.{0.0f,.0.
d6e0 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 0f,.0.0f},............{0.0f,.1.0
d700 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 f,.0.0f},.{0.0f,.1.0f,.1.0f}....
d720 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5b 34 5d 5b 33 5d 20 ....};........float.right[4][3].
d740 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 =.{.../........{1.0f,.0.0f,.0.0f
d760 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 },.{1.0f,.0.0f,.1.0f},..........
d780 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 ..{1.0f,.1.0f,.1.0f},.{1.0f,.1.0
d7a0 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 38 20 20 20 20 64 72 f,.0.0f}........};.......8....dr
d7c0 61 77 46 61 63 65 28 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 awFace(top[0],.top[1],.top[2],.t
d7e0 6f 70 5b 33 5d 2c 20 73 74 79 6c 65 2e 74 6f 70 29 3b 00 00 00 47 20 20 20 20 64 72 61 77 46 61 op[3],.style.top);...G....drawFa
d800 63 65 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f 6d 5b 31 5d 2c 20 62 6f 74 74 6f 6d 5b ce(bottom[0],.bottom[1],.bottom[
d820 32 5d 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c 65 2e 62 6f 74 74 6f 6d 29 3b 00 00 00 2],.bottom[3],.style.bottom);...
d840 41 20 20 20 20 64 72 61 77 46 61 63 65 28 66 72 6f 6e 74 5b 30 5d 2c 20 66 72 6f 6e 74 5b 31 5d A....drawFace(front[0],.front[1]
d860 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 ,.front[2],.front[3],.style.side
d880 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b );...=....drawFace(back[0],.back
d8a0 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 [1],.back[2],.back[3],.style.sid
d8c0 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 e);...=....drawFace(left[0],.lef
d8e0 74 5b 31 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 t[1],.left[2],.left[3],.style.si
d900 64 65 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 72 69 67 68 74 5b 30 5d 2c 20 72 de);...A....drawFace(right[0],.r
d920 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 72 69 67 68 74 5b 33 5d 2c 20 73 74 79 ight[1],.right[2],.right[3],.sty
d940 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 le.side);............glPopMatrix
d960 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 72 61 77 50 6c 61 74 66 6f 72 ();....}........void.drawPlatfor
d980 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d m().{...!....int.half.=.PLATFORM
d9a0 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 2d _SIZE./.2;...(....for.(int.i.=.-
d9c0 68 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 20 20 half;.i.<.half;.i++).{...,......
d9e0 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 6a 20 3c 20 68 61 6c 66 3b 20 ..for.(int.j.=.-half;.j.<.half;.
da00 6a 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 j++).{...;............drawCube((
da20 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a 2c 20 67 72 61 73 73 42 6c float)i,.0.0f,.(float)j,.grassBl
da40 6f 63 6b 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d ock);............}........}....}
da60 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 28 29 20 7b 00 00 00 37 20 20 20 20 ........void.display().{...7....
da80 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 46 45 52 5f 42 49 54 20 7c 20 47 4c glClear(GL_COLOR_BUFFER_BIT.|.GL
daa0 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 00 00 04 20 20 20 20 00 00 00 1f 20 _DEPTH_BUFFER_BIT);.............
dac0 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 ...glMatrixMode(GL_MODELVIEW);..
dae0 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 04 20 20 20 20 00 ......glLoadIdentity();.........
db00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 58 20 3d 20 63 61 6d 58 20 2b 20 73 69 6e 66 ..Q....float.lookX.=.camX.+.sinf
db20 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 (yaw.*.M_PI./.180.0f).*.cosf(pit
db40 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 35 20 20 20 20 66 6c 6f 61 ch.*.M_PI./.180.0f);...5....floa
db60 74 20 6c 6f 6f 6b 59 20 3d 20 63 61 6d 59 20 2d 20 73 69 6e 66 28 70 69 74 63 68 20 2a 20 4d 5f t.lookY.=.camY.-.sinf(pitch.*.M_
db80 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 5a PI./.180.0f);...Q....float.lookZ
dba0 20 3d 20 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e .=.camZ.-.cosf(yaw.*.M_PI./.180.
dbc0 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 0f).*.cosf(pitch.*.M_PI./.180.0f
dbe0 29 3b 00 00 00 04 20 20 20 20 00 00 00 47 20 20 20 20 67 6c 75 4c 6f 6f 6b 41 74 28 63 61 6d 58 );...........G....gluLookAt(camX
dc00 2c 20 63 61 6d 59 2c 20 63 61 6d 5a 2c 20 6c 6f 6f 6b 58 2c 20 6c 6f 6f 6b 59 2c 20 6c 6f 6f 6b ,.camY,.camZ,.lookX,.lookY,.look
dc20 5a 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 Z,.0.0f,.1.0f,.0.0f);...........
dc40 13 20 20 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 3b 00 00 00 16 20 20 20 20 67 6c 75 74 .....drawPlatform();........glut
dc60 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 76 6f 69 64 20 SwapBuffers();....}........void.
dc80 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 reshape(int.w,.int.h).{........g
dca0 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c lViewport(0,.0,.w,.h);........gl
dcc0 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 MatrixMode(GL_PROJECTION);......
dce0 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 4b 20 20 20 20 67 6c 75 50 65 ..glLoadIdentity();...K....gluPe
dd00 72 73 70 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 rspective(75.0,.(double)w./.(dou
dd20 62 6c 65 29 68 2c 20 30 2e 30 35 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 ble)h,.0.05,.PLATFORM_SIZE.*.2.0
dd40 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 );........glMatrixMode(GL_MODELV
dd60 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 IEW);....}.......4void.keyboardD
dd80 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e own(unsigned.char.key,.int.x,.in
dda0 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 31 3b 00 00 00 1b t.y).{........keys[key].=.1;....
ddc0 20 20 20 20 69 66 20 28 6b 65 79 20 3d 3d 20 32 37 29 20 65 78 69 74 28 30 29 3b 00 00 00 01 7d ....if.(key.==.27).exit(0);....}
dde0 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e 73 69 67 6e 65 64 .......2void.keyboardUp(unsigned
de00 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 .char.key,.int.x,.int.y).{......
de20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1e 76 6f 69 ..keys[key].=.0;....}........voi
de40 64 20 6d 6f 75 73 65 4d 6f 76 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 2a 20 d.mouseMove(int.x,.int.y).{...*.
de60 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 65 72 58 20 3d 20 57 49 4e 44 4f 57 5f 57 ...static.int.centerX.=.WINDOW_W
de80 49 44 54 48 20 2f 20 32 3b 00 00 00 2b 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 IDTH./.2;...+....static.int.cent
dea0 65 72 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 3b 00 00 00 04 20 20 20 20 erY.=.WINDOW_HEIGHT./.2;........
dec0 00 00 00 19 20 20 20 20 69 66 20 28 21 6d 6f 75 73 65 43 61 70 74 75 72 65 64 29 20 7b 00 00 00 ........if.(!mouseCaptured).{...
dee0 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 *........glutWarpPointer(centerX
df00 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 1a 20 20 20 20 20 20 20 20 6d 6f 75 73 65 43 61 70 74 ,.centerY);............mouseCapt
df20 75 72 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 ured.=.1;............return;....
df40 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 6e 74 20 64 78 20 3d 20 78 20 ....}................int.dx.=.x.
df60 2d 20 63 65 6e 74 65 72 58 3b 00 00 00 19 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 63 -.centerX;........int.dy.=.y.-.c
df80 65 6e 74 65 72 59 3b 00 00 00 04 20 20 20 20 00 00 00 1d 20 20 20 20 69 66 20 28 64 78 20 21 3d enterY;................if.(dx.!=
dfa0 20 30 20 7c 7c 20 64 79 20 21 3d 20 30 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 79 61 77 20 .0.||.dy.!=.0).{............yaw.
dfc0 2d 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 21 20 20 20 20 20 20 20 20 70 -=.dx.*.MOUSE_SENS;...!........p
dfe0 69 74 63 68 20 2d 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 08 20 20 20 20 itch.-=.dy.*.MOUSE_SENS;........
e000 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 .......)........if.(pitch.>.89.0
e020 66 29 20 70 69 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 2b 20 20 20 20 20 20 20 20 69 66 20 f).pitch.=.89.0f;...+........if.
e040 28 70 69 74 63 68 20 3c 20 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b (pitch.<.-89.0f).pitch.=.-89.0f;
e060 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 79 ...............)........while.(y
e080 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 00 2c 20 20 20 aw.<.0.0f).yaw.+=.360.0f;...,...
e0a0 20 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3e 3d 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d .....while.(yaw.>=.360.0f).yaw.-
e0c0 3d 20 33 36 30 2e 30 66 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 2a 20 20 20 20 20 20 20 =.360.0f;...............*.......
e0e0 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 72 .glutWarpPointer(centerX,.center
e100 59 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 36 76 6f 69 64 20 6d 6f Y);........}....}.......6void.mo
e120 75 73 65 43 6c 69 63 6b 28 69 6e 74 20 62 75 74 74 6f 6e 2c 20 69 6e 74 20 73 74 61 74 65 2c 20 useClick(int.button,.int.state,.
e140 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 3b 20 20 20 20 69 66 20 28 62 75 74 74 6f int.x,.int.y).{...;....if.(butto
e160 6e 20 3d 3d 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54 54 4f 4e 20 26 26 20 73 74 61 74 65 20 3d n.==.GLUT_LEFT_BUTTON.&&.state.=
e180 3d 20 47 4c 55 54 5f 44 4f 57 4e 29 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 6d 6f 75 73 65 43 =.GLUT_DOWN).{............mouseC
e1a0 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 3d 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 aptured.=.0;...=........glutWarp
e1c0 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f 57 Pointer(WINDOW_WIDTH./.2,.WINDOW
e1e0 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 _HEIGHT./.2);........}....}.....
e200 00 00 0f 76 6f 69 64 20 75 70 64 61 74 65 28 29 20 7b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 ...void.update().{...'....float.
e220 79 61 77 52 61 64 20 3d 20 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 yawRad.=.yaw.*.M_PI./.180.0f;...
e240 22 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 "....float.forwardX.=.sinf(yawRa
e260 64 29 3b 00 00 00 23 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 d);...#....float.forwardZ.=.-cos
e280 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d f(yawRad);........float.rightX.=
e2a0 20 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 .cosf(yawRad);........float.righ
e2c0 74 5a 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 04 20 20 20 20 00 00 00 17 20 20 tZ.=.sinf(yawRad);..............
e2e0 20 20 66 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 30 2e 31 66 3b 00 00 00 04 20 20 20 20 00 00 00 ..float.speed.=.0.1f;...........
e300 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 77 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 57 27 5d 29 !....if.(keys['w'].||.keys['W'])
e320 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 2a .{...!........camX.+=.forwardX.*
e340 20 73 70 65 65 64 3b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 .speed;...!........camZ.+=.forwa
e360 72 64 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 rdZ.*.speed;........}...!....if.
e380 28 6b 65 79 73 5b 27 73 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 53 27 5d 29 20 7b 00 00 00 21 20 20 (keys['s'].||.keys['S']).{...!..
e3a0 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 00 ......camX.-=.forwardX.*.speed;.
e3c0 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 ..!........camZ.-=.forwardZ.*.sp
e3e0 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 61 eed;........}...!....if.(keys['a
e400 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 41 27 5d 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 '].||.keys['A']).{............ca
e420 6d 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 3b 00 00 00 1f 20 20 20 20 20 20 20 mX.-=.rightX.*.speed;...........
e440 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 .camZ.-=.rightZ.*.speed;........
e460 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 64 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 }...!....if.(keys['d'].||.keys['
e480 44 27 5d 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 72 69 67 68 74 58 D']).{............camX.+=.rightX
e4a0 20 2a 20 73 70 65 65 64 3b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 72 69 67 .*.speed;............camZ.+=.rig
e4c0 68 74 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 htZ.*.speed;........}...........
e4e0 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 0....float.limit.=.(PLATFORM_SIZ
e500 45 20 2f 20 32 2e 30 66 29 20 2d 20 31 2e 35 66 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d E./.2.0f).-.1.5f;...%....if.(cam
e520 58 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 X.<.-limit).camX.=.-limit;...%..
e540 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 20 6c 69 6d ..if.(camX.>..limit).camX.=..lim
e560 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 it;...%....if.(camZ.<.-limit).ca
e580 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 mZ.=.-limit;...%....if.(camZ.>..
e5a0 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 01 7d 00 00 00 00 00 00 limit).camZ.=..limit;....}......
e5c0 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 0d 20 20 20 20 75 70 64 61 74 65 28 29 3b ..void.idle().{........update();
e5e0 00 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 ........glutPostRedisplay();....
e600 7d 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 }.......!int.main(int.argc,.char
e620 20 2a 2a 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 .**argv).{........glutInit(&argc
e640 2c 20 61 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d ,.argv);...=....glutInitDisplayM
e660 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 ode(GLUT_DOUBLE.|.GLUT_RGB.|.GLU
e680 54 5f 44 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 T_DEPTH);...4....glutInitWindowS
e6a0 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 ize(WINDOW_WIDTH,.WINDOW_HEIGHT)
e6c0 3b 00 00 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 ;...,....glutCreateWindow("Minec
e6e0 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 raft.Prototype");............ini
e700 74 47 4c 28 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e tGL();............glutDisplayFun
e720 63 28 64 69 73 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 c(display);........glutReshapeFu
e740 6e 63 28 72 65 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 nc(reshape);...#....glutKeyboard
e760 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b Func(keyboardDown);...#....glutK
e780 65 79 62 6f 61 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 25 20 20 eyboardUpFunc(keyboardUp);...%..
e7a0 20 20 67 6c 75 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 6d 6f 75 73 65 4d 6f 76 ..glutPassiveMotionFunc(mouseMov
e7c0 65 29 3b 00 00 00 1e 20 20 20 20 67 6c 75 74 4d 6f 75 73 65 46 75 6e 63 28 6d 6f 75 73 65 43 6c e);........glutMouseFunc(mouseCl
e7e0 69 63 6b 29 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b ick);........glutIdleFunc(idle);
e800 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c ...........$....glutSetCursor(GL
e820 55 54 5f 43 55 52 53 4f 52 5f 4e 4f 4e 45 29 3b 00 00 00 39 20 20 20 20 67 6c 75 74 57 61 72 70 UT_CURSOR_NONE);...9....glutWarp
e840 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f 57 Pointer(WINDOW_WIDTH./.2,.WINDOW
e860 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 _HEIGHT./.2);............glutMai
e880 6e 4c 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 nLoop();........return.0;....}5.
e8a0 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 f9 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
e8c0 00 00 00 00 00 00 dc 19 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 ......................5._.......
e8e0 00 0f 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 ................................
e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f8 96 ............................j...
ea60 04 01 00 00 00 0b 00 f5 18 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 76 6f 69 .............................voi
ea80 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e f5 18 00 00 00 93 00 00 00 00 00 d.keyboardDown(unsign...........
eaa0 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 ................................
eac0 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............5................
eae0 00 00 00 00 00 00 00 92 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 ................................
eb00 0f 00 00 00 00 00 00 f5 18 00 00 00 00 92 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 66 00 00 .............................f..
eb20 00 01 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e2 09 00 00 00 00 00 00 35 81 5f .............................5._
eb40 d0 00 00 00 0e 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00 00 00 00 00 ................................
eb60 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ecc0 00 00 00 6a 08 fb 78 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f9 ...j..x.........................
ece0 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 ....#include.<GL/glut.h>....#inc
ed00 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 lude.<math.h>....#include.<stdli
ed20 62 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 b.h>........#define.WINDOW_WIDTH
ed40 20 20 20 31 32 38 30 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 ...1280....#define.WINDOW_HEIGHT
ed60 20 20 37 32 30 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 20 ..720....#define.PLATFORM_SIZE..
ed80 36 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 38 2e 30 60....#define.MOVE_SPEED.....8.0
eda0 66 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 2e 32 66 f....#define.MOUSE_SENS.....0.2f
edc0 00 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e 36 32 66 ....#define.PLAYER_HEIGHT..1.62f
ede0 00 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 6d 59 20 .......5float.camX.=.0.0f,.camY.
ee00 3d 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 00 00 =.PLAYER_HEIGHT,.camZ.=.0.0f;...
ee20 1f 66 6c 6f 61 74 20 79 61 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 2e 30 66 3b .float.yaw.=.0.0f,.pitch.=.0.0f;
ee40 00 00 00 0e 69 6e 74 20 6b 65 79 73 5b 32 35 36 5d 3b 00 00 00 16 69 6e 74 20 6d 6f 75 73 65 43 ....int.keys[256];....int.mouseC
ee60 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 aptured.=.0;........typedef.stru
ee80 63 74 20 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 74 6f 70 5b 33 5d 3b 00 00 00 12 20 20 20 ct.{........float.top[3];.......
eea0 20 66 6c 6f 61 74 20 73 69 64 65 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 .float.side[3];........float.bot
eec0 74 6f 6d 5b 33 5d 3b 00 00 00 0d 7d 20 42 6c 6f 63 6b 53 74 79 6c 65 3b 00 00 00 00 00 00 00 19 tom[3];....}.BlockStyle;........
eee0 42 6c 6f 63 6b 53 74 79 6c 65 20 67 72 61 73 73 42 6c 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 BlockStyle.grassBlock.=.{.......
ef00 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e 31 35 66 7d 2c 00 00 00 1a 20 20 20 20 7b .{0.25f,.0.75f,.0.15f},........{
ef20 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 0.50f,.0.35f,.0.10f},........{0.
ef40 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0f 40f,.0.25f,.0.08f}....};........
ef60 76 6f 69 64 20 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 6f void.initGL().{...,....glClearCo
ef80 6c 6f 72 28 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 00 lor(0.53f,.0.81f,.0.98f,.1.0f);.
efa0 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 .......glEnable(GL_DEPTH_TEST);.
efc0 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 29 3b 00 00 .......glEnable(GL_CULL_FACE);..
efe0 00 18 20 20 20 20 67 6c 43 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 00 15 20 20 ......glCullFace(GL_BACK);......
f000 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 6c 46 6f 67 ..glEnable(GL_FOG);...#....glFog
f020 69 28 47 4c 5f 46 4f 47 5f 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 00 2f 20 20 i(GL_FOG_MODE,.GL_LINEAR);.../..
f040 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 4f 52 4d 5f ..glFogf(GL_FOG_START,.PLATFORM_
f060 53 49 5a 45 20 2a 20 30 2e 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 SIZE.*.0.6f);...-....glFogf(GL_F
f080 4f 47 5f 45 4e 44 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 32 66 29 3b 00 00 OG_END,.PLATFORM_SIZE.*.1.2f);..
f0a0 00 33 20 20 20 20 66 6c 6f 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e 35 33 66 2c .3....float.fogColor[].=.{0.53f,
f0c0 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 20 67 6c 46 .0.81f,.0.98f,.1.0f};...$....glF
f0e0 6f 67 66 76 28 47 4c 5f 46 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 3b 00 00 00 ogfv(GL_FOG_COLOR,.fogColor);...
f100 00 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d 20 7b 30 2e ....1....GLfloat.ambient[].=.{0.
f120 36 66 2c 20 30 2e 36 66 2c 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 20 20 47 4c 6f,.0.6f,.0.6f,.1.0f};...1....GL
f140 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 66 2c 20 30 float.diffuse[].=.{0.8f,.0.8f,.0
f160 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c 69 67 68 74 .7f,.1.0f};...W....GLfloat.light
f180 50 6f 73 5b 5d 20 3d 20 7b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 50 4c 41 Pos[].=.{PLATFORM_SIZE/2.0f,.PLA
f1a0 54 46 4f 52 4d 5f 53 49 5a 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c 20 TFORM_SIZE,.PLATFORM_SIZE/2.0f,.
f1c0 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 1.0f};............glEnable(GL_LI
f1e0 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 GHTING);........glEnable(GL_LIGH
f200 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c T0);........glLightfv(GL_LIGHT0,
f220 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 20 20 67 6c .GL_AMBIENT,.ambient);........gl
f240 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 45 2c 20 64 Lightfv(GL_LIGHT0,.GL_DIFFUSE,.d
f260 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 iffuse);...0....glLightfv(GL_LIG
f280 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b 00 00 00 01 HT0,.GL_POSITION,.lightPos);....
f2a0 7d 00 00 00 00 00 00 00 53 76 6f 69 64 20 64 72 61 77 46 61 63 65 28 66 6c 6f 61 74 20 76 30 5b }.......Svoid.drawFace(float.v0[
f2c0 33 5d 2c 20 66 6c 6f 61 74 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d 2c 20 66 6c 3],.float.v1[3],.float.v2[3],.fl
f2e0 6f 61 74 20 76 33 5b 33 5d 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b 00 00 00 44 oat.v3[3],.float.color[3]).{...D
f300 20 20 20 20 66 6c 6f 61 74 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 5b 30 5d 2a ....float.darker[3].=.{color[0]*
f320 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 5d 2a 30 2e 0.7f,.color[1]*0.7f,.color[2]*0.
f340 37 66 7d 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 7f};................glBegin(GL_Q
f360 55 41 44 53 29 3b 00 00 00 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c 6f 72 29 3b UADS);........glColor3fv(color);
f380 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 20 20 20 20 ........glVertex3fv(v0);........
f3a0 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 glVertex3fv(v1);........glVertex
f3c0 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 33 29 3b 3fv(v2);........glVertex3fv(v3);
f3e0 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 67 6c 44 69 ........glEnd();............glDi
f400 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 67 6c 4c 69 6e sable(GL_LIGHTING);........glLin
f420 65 57 69 64 74 68 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f eWidth(1.0f);........glBegin(GL_
f440 4c 49 4e 45 5f 4c 4f 4f 50 29 3b 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 64 61 LINE_LOOP);........glColor3fv(da
f460 72 6b 65 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 rker);........glVertex3fv(v0);..
f480 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c ......glVertex3fv(v1);........gl
f4a0 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 Vertex3fv(v2);........glVertex3f
f4c0 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 20 20 67 6c v(v3);........glEnd();........gl
f4e0 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 Enable(GL_LIGHTING);....}.......
f500 3c 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 2c <void.drawCube(float.x,.float.y,
f520 20 66 6c 6f 61 74 20 7a 2c 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 7b 00 00 00 .float.z,.BlockStyle.style).{...
f540 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 67 6c 54 72 .....glPushMatrix();........glTr
f560 61 6e 73 6c 61 74 65 66 28 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 66 6c anslatef(x,.y,.z);............fl
f580 6f 61 74 20 74 6f 70 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e oat.top[4][3].=.{.../........{0.
f5a0 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 0f,.1.0f,.0.0f},.{1.0f,.1.0f,.0.
f5c0 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 0f},............{1.0f,.1.0f,.1.0
f5e0 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b f},.{0.0f,.1.0f,.1.0f}........};
f600 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 ........float.bottom[4][3].=.{..
f620 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 ./........{0.0f,.0.0f,.1.0f},.{1
f640 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e .0f,.0.0f,.1.0f},............{1.
f660 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 0f,.0.0f,.0.0f},.{0.0f,.0.0f,.0.
f680 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 72 6f 6e 74 0f}........};........float.front
f6a0 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 [4][3].=.{.../........{0.0f,.0.0
f6c0 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 f,.0.0f},.{1.0f,.0.0f,.0.0f},...
f6e0 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e .........{1.0f,.1.0f,.0.0f},.{0.
f700 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 0f,.1.0f,.0.0f}........};.......
f720 20 66 6c 6f 61 74 20 62 61 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 .float.back[4][3].=.{.../.......
f740 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 .{1.0f,.0.0f,.1.0f},.{0.0f,.0.0f
f760 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c ,.1.0f},............{0.0f,.1.0f,
f780 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 .1.0f},.{1.0f,.1.0f,.1.0f}......
f7a0 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d 20 3d 20 7b ..};........float.left[4][3].=.{
f7c0 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 .../........{0.0f,.0.0f,.1.0f},.
f7e0 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b {0.0f,.0.0f,.0.0f},............{
f800 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 0.0f,.1.0f,.0.0f},.{0.0f,.1.0f,.
f820 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 72 69 67 1.0f}........};........float.rig
f840 68 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 ht[4][3].=.{.../........{1.0f,.0
f860 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 .0f,.0.0f},.{1.0f,.0.0f,.1.0f},.
f880 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b ...........{1.0f,.1.0f,.1.0f},.{
f8a0 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 1.0f,.1.0f,.0.0f}........};.....
f8c0 00 00 38 20 20 20 20 64 72 61 77 46 61 63 65 28 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b 31 5d 2c 20 ..8....drawFace(top[0],.top[1],.
f8e0 74 6f 70 5b 32 5d 2c 20 74 6f 70 5b 33 5d 2c 20 73 74 79 6c 65 2e 74 6f 70 29 3b 00 00 00 47 20 top[2],.top[3],.style.top);...G.
f900 20 20 20 64 72 61 77 46 61 63 65 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f 6d 5b 31 5d ...drawFace(bottom[0],.bottom[1]
f920 2c 20 62 6f 74 74 6f 6d 5b 32 5d 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c 65 2e 62 6f ,.bottom[2],.bottom[3],.style.bo
f940 74 74 6f 6d 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 66 72 6f 6e 74 5b 30 5d 2c ttom);...A....drawFace(front[0],
f960 20 66 72 6f 6e 74 5b 31 5d 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 5d 2c 20 73 .front[1],.front[2],.front[3],.s
f980 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 62 61 63 6b tyle.side);...=....drawFace(back
f9a0 5b 30 5d 2c 20 62 61 63 6b 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b 5b 33 5d 2c 20 [0],.back[1],.back[2],.back[3],.
f9c0 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 6c 65 66 style.side);...=....drawFace(lef
f9e0 74 5b 30 5d 2c 20 6c 65 66 74 5b 31 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 5b 33 5d 2c t[0],.left[1],.left[2],.left[3],
fa00 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 72 69 .style.side);...A....drawFace(ri
fa20 67 68 74 5b 30 5d 2c 20 72 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 72 69 67 68 ght[0],.right[1],.right[2],.righ
fa40 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 67 6c t[3],.style.side);............gl
fa60 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 72 PopMatrix();....}........void.dr
fa80 61 77 50 6c 61 74 66 6f 72 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d awPlatform().{...!....int.half.=
faa0 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 28 20 20 20 20 66 6f 72 20 28 .PLATFORM_SIZE./.2;...(....for.(
fac0 69 6e 74 20 69 20 3d 20 2d 68 61 6c 66 3b 20 69 20 3c 20 68 61 6c 66 3b 20 69 2b 2b 29 20 7b 00 int.i.=.-half;.i.<.half;.i++).{.
fae0 00 00 2c 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 2d 68 61 6c 66 3b 20 6a ..,........for.(int.j.=.-half;.j
fb00 20 3c 20 68 61 6c 66 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 64 .<.half;.j++).{...;............d
fb20 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 69 2c 20 30 2e 30 66 2c 20 28 66 6c 6f 61 74 29 6a rawCube((float)i,.0.0f,.(float)j
fb40 2c 20 67 72 61 73 73 42 6c 6f 63 6b 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 ,.grassBlock);............}.....
fb60 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 28 29 20 ...}....}........void.display().
fb80 7b 00 00 00 37 20 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 46 45 52 {...7....glClear(GL_COLOR_BUFFER
fba0 5f 42 49 54 20 7c 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 00 00 04 _BIT.|.GL_DEPTH_BUFFER_BIT);....
fbc0 20 20 20 20 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 ............glMatrixMode(GL_MODE
fbe0 4c 56 49 45 57 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b LVIEW);........glLoadIdentity();
fc00 00 00 00 04 20 20 20 20 00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 58 20 3d 20 63 61 ...........Q....float.lookX.=.ca
fc20 6d 58 20 2b 20 73 69 6e 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a mX.+.sinf(yaw.*.M_PI./.180.0f).*
fc40 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 .cosf(pitch.*.M_PI./.180.0f);...
fc60 35 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 59 20 3d 20 63 61 6d 59 20 2b 20 73 69 6e 66 28 70 5....float.lookY.=.camY.+.sinf(p
fc80 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 51 20 20 20 20 66 6c itch.*.M_PI./.180.0f);...Q....fl
fca0 6f 61 74 20 6c 6f 6f 6b 5a 20 3d 20 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 77 20 2a 20 4d 5f oat.lookZ.=.camZ.-.cosf(yaw.*.M_
fcc0 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 PI./.180.0f).*.cosf(pitch.*.M_PI
fce0 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 47 20 20 20 20 67 6c 75 4c 6f ./.180.0f);...........G....gluLo
fd00 6f 6b 41 74 28 63 61 6d 58 2c 20 63 61 6d 59 2c 20 63 61 6d 5a 2c 20 6c 6f 6f 6b 58 2c 20 6c 6f okAt(camX,.camY,.camZ,.lookX,.lo
fd20 6f 6b 59 2c 20 6c 6f 6f 6b 5a 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 okY,.lookZ,.0.0f,.1.0f,.0.0f);..
fd40 00 04 20 20 20 20 00 00 00 13 20 20 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 3b 00 00 00 ..............drawPlatform();...
fd60 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 .....glutSwapBuffers();....}....
fd80 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 20 7b ....void.reshape(int.w,.int.h).{
fda0 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 ........glViewport(0,.0,.w,.h);.
fdc0 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f .......glMatrixMode(GL_PROJECTIO
fde0 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 4b N);........glLoadIdentity();...K
fe00 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 64 6f 75 62 6c 65 ....gluPerspective(75.0,.(double
fe20 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 2e 30 35 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 )w./.(double)h,.0.05,.PLATFORM_S
fe40 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 IZE.*.2.0);........glMatrixMode(
fe60 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 76 6f 69 64 20 GL_MODELVIEW);....}.......4void.
fe80 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 keyboardDown(unsigned.char.key,.
fea0 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d int.x,.int.y).{........keys[key]
fec0 20 3d 20 31 3b 00 00 00 1b 20 20 20 20 69 66 20 28 6b 65 79 20 3d 3d 20 32 37 29 20 65 78 69 74 .=.1;........if.(key.==.27).exit
fee0 28 30 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 (0);....}.......2void.keyboardUp
ff00 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 (unsigned.char.key,.int.x,.int.y
ff20 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 30 3b 00 00 00 01 7d 00 00 ).{........keys[key].=.0;....}..
ff40 00 00 00 00 00 1e 76 6f 69 64 20 6d 6f 75 73 65 4d 6f 76 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 ......void.mouseMove(int.x,.int.
ff60 79 29 20 7b 00 00 00 2a 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 65 72 58 20 3d y).{...*....static.int.centerX.=
ff80 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 3b 00 00 00 2b 20 20 20 20 73 74 61 74 69 63 .WINDOW_WIDTH./.2;...+....static
ffa0 20 69 6e 74 20 63 65 6e 74 65 72 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 .int.centerY.=.WINDOW_HEIGHT./.2
ffc0 3b 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 66 20 28 21 6d 6f 75 73 65 43 61 70 74 75 ;................if.(!mouseCaptu
ffe0 72 65 64 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 red).{...*........glutWarpPointe
10000 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 1a 20 20 20 20 20 20 20 20 r(centerX,.centerY);............
10020 6d 6f 75 73 65 43 61 70 74 75 72 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 mouseCaptured.=.1;............re
10040 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 6e turn;........}................in
10060 74 20 64 78 20 3d 20 78 20 2d 20 63 65 6e 74 65 72 58 3b 00 00 00 19 20 20 20 20 69 6e 74 20 64 t.dx.=.x.-.centerX;........int.d
10080 79 20 3d 20 79 20 2d 20 63 65 6e 74 65 72 59 3b 00 00 00 04 20 20 20 20 00 00 00 1d 20 20 20 20 y.=.y.-.centerY;................
100a0 69 66 20 28 64 78 20 21 3d 20 30 20 7c 7c 20 64 79 20 21 3d 20 30 29 20 7b 00 00 00 1f 20 20 20 if.(dx.!=.0.||.dy.!=.0).{.......
100c0 20 20 20 20 20 79 61 77 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 21 .....yaw.+=.dx.*.MOUSE_SENS;...!
100e0 20 20 20 20 20 20 20 20 70 69 74 63 68 20 2b 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 ........pitch.+=.dy.*.MOUSE_SENS
10100 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 70 69 74 ;...............)........if.(pit
10120 63 68 20 3e 20 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 2b 20 20 ch.>.89.0f).pitch.=.89.0f;...+..
10140 20 20 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 ......if.(pitch.<.-89.0f).pitch.
10160 3d 20 2d 38 39 2e 30 66 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 =.-89.0f;...............).......
10180 20 77 68 69 6c 65 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 33 36 30 2e 30 .while.(yaw.<.0.0f).yaw.+=.360.0
101a0 66 3b 00 00 00 2c 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3e 3d 20 33 36 30 2e f;...,........while.(yaw.>=.360.
101c0 30 66 29 20 79 61 77 20 2d 3d 20 33 36 30 2e 30 66 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 0f).yaw.-=.360.0f;..............
101e0 00 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 .*........glutWarpPointer(center
10200 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 X,.centerY);........}....}......
10220 00 36 76 6f 69 64 20 6d 6f 75 73 65 43 6c 69 63 6b 28 69 6e 74 20 62 75 74 74 6f 6e 2c 20 69 6e .6void.mouseClick(int.button,.in
10240 74 20 73 74 61 74 65 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 3b 20 20 20 20 t.state,.int.x,.int.y).{...;....
10260 69 66 20 28 62 75 74 74 6f 6e 20 3d 3d 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54 54 4f 4e 20 26 if.(button.==.GLUT_LEFT_BUTTON.&
10280 26 20 73 74 61 74 65 20 3d 3d 20 47 4c 55 54 5f 44 4f 57 4e 29 20 7b 00 00 00 1a 20 20 20 20 20 &.state.==.GLUT_DOWN).{.........
102a0 20 20 20 6d 6f 75 73 65 43 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 3d 20 20 20 20 20 20 20 ...mouseCaptured.=.0;...=.......
102c0 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 .glutWarpPointer(WINDOW_WIDTH./.
102e0 32 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 05 20 20 20 20 7d 00 2,.WINDOW_HEIGHT./.2);........}.
10300 00 00 01 7d 00 00 00 00 00 00 00 0f 76 6f 69 64 20 75 70 64 61 74 65 28 29 20 7b 00 00 00 27 20 ...}........void.update().{...'.
10320 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 ...float.yawRad.=.yaw.*.M_PI./.1
10340 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 80.0f;..."....float.forwardX.=.s
10360 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 inf(yawRad);...#....float.forwar
10380 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 dZ.=.-cosf(yawRad);........float
103a0 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 .rightX.=.cosf(yawRad);........f
103c0 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 04 20 loat.rightZ.=.sinf(yawRad);.....
103e0 20 20 20 00 00 00 17 20 20 20 20 66 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 30 2e 31 66 3b 00 00 ...........float.speed.=.0.1f;..
10400 00 04 20 20 20 20 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 77 27 5d 20 7c 7c 20 6b .........!....if.(keys['w'].||.k
10420 65 79 73 5b 27 57 27 5d 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 66 eys['W']).{...!........camX.+=.f
10440 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 3b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 5a orwardX.*.speed;...!........camZ
10460 20 2b 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 .+=.forwardZ.*.speed;........}..
10480 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 73 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 53 27 5d .!....if.(keys['s'].||.keys['S']
104a0 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 66 6f 72 77 61 72 64 58 20 ).{...!........camX.-=.forwardX.
104c0 2a 20 73 70 65 65 64 3b 00 00 00 21 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 *.speed;...!........camZ.-=.forw
104e0 61 72 64 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 ardZ.*.speed;........}...!....if
10500 20 28 6b 65 79 73 5b 27 61 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 41 27 5d 29 20 7b 00 00 00 1f 20 .(keys['a'].||.keys['A']).{.....
10520 20 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 3b 00 00 .......camX.-=.rightX.*.speed;..
10540 00 1f 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 ..........camZ.-=.rightZ.*.speed
10560 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 64 27 5d 20 ;........}...!....if.(keys['d'].
10580 7c 7c 20 6b 65 79 73 5b 27 44 27 5d 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 6d 58 20 ||.keys['D']).{............camX.
105a0 2b 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 3b 00 00 00 1f 20 20 20 20 20 20 20 20 63 61 +=.rightX.*.speed;............ca
105c0 6d 5a 20 2b 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 3b 00 00 00 05 20 20 20 20 7d 00 00 mZ.+=.rightZ.*.speed;........}..
105e0 00 04 20 20 20 20 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d 69 74 20 3d 20 28 50 4c 41 .........0....float.limit.=.(PLA
10600 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 31 2e 35 66 3b 00 00 00 25 20 20 TFORM_SIZE./.2.0f).-.1.5f;...%..
10620 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 2d 6c 69 6d ..if.(camX.<.-limit).camX.=.-lim
10640 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 it;...%....if.(camX.>..limit).ca
10660 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d mX.=..limit;...%....if.(camZ.<.-
10680 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 limit).camZ.=.-limit;...%....if.
106a0 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 20 6c 69 6d 69 74 3b 00 00 (camZ.>..limit).camZ.=..limit;..
106c0 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 0d 20 20 20 20 ..}........void.idle().{........
106e0 75 70 64 61 74 65 28 29 3b 00 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 70 6c update();........glutPostRedispl
10700 61 79 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 ay();....}.......!int.main(int.a
10720 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 00 00 00 1a 20 20 20 20 67 6c 75 74 49 rgc,.char.**argv).{........glutI
10740 6e 69 74 28 26 61 72 67 63 2c 20 61 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 6e 69 nit(&argc,.argv);...=....glutIni
10760 74 44 69 73 70 6c 61 79 4d 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 54 5f tDisplayMode(GLUT_DOUBLE.|.GLUT_
10780 52 47 42 20 7c 20 47 4c 55 54 5f 44 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e RGB.|.GLUT_DEPTH);...4....glutIn
107a0 69 74 57 69 6e 64 6f 77 53 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f itWindowSize(WINDOW_WIDTH,.WINDO
107c0 57 5f 48 45 49 47 48 54 29 3b 00 00 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 W_HEIGHT);...,....glutCreateWind
107e0 6f 77 28 22 4d 69 6e 65 63 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 00 00 00 00 00 00 ow("Minecraft.Prototype");......
10800 00 0d 20 20 20 20 69 6e 69 74 47 4c 28 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 ......initGL();............glutD
10820 69 73 70 6c 61 79 46 75 6e 63 28 64 69 73 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 isplayFunc(display);........glut
10840 52 65 73 68 61 70 65 46 75 6e 63 28 72 65 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 ReshapeFunc(reshape);...#....glu
10860 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 tKeyboardFunc(keyboardDown);...#
10880 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 ....glutKeyboardUpFunc(keyboardU
108a0 70 29 3b 00 00 00 25 20 20 20 20 67 6c 75 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 p);...%....glutPassiveMotionFunc
108c0 28 6d 6f 75 73 65 4d 6f 76 65 29 3b 00 00 00 1e 20 20 20 20 67 6c 75 74 4d 6f 75 73 65 46 75 6e (mouseMove);........glutMouseFun
108e0 63 28 6d 6f 75 73 65 43 6c 69 63 6b 29 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 c(mouseClick);........glutIdleFu
10900 6e 63 28 69 64 6c 65 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 nc(idle);...........$....glutSet
10920 43 75 72 73 6f 72 28 47 4c 55 54 5f 43 55 52 53 4f 52 5f 4e 4f 4e 45 29 3b 00 00 00 39 20 20 20 Cursor(GLUT_CURSOR_NONE);...9...
10940 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 .glutWarpPointer(WINDOW_WIDTH./.
10960 32 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 00 00 00 00 13 20 20 2,.WINDOW_HEIGHT./.2);..........
10980 20 20 67 6c 75 74 4d 61 69 6e 4c 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 ..glutMainLoop();........return.
109a0 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 f9 00 00 00 00 00 00 00 01 0;....}5........................
109c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dc 19 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 ...............................5
109e0 81 5f d0 00 00 00 0f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 00 00 ._..............................
10a00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b60 00 00 00 00 00 6a 08 fb 79 04 01 00 00 00 0d 00 f5 18 00 00 01 29 00 00 00 00 00 00 00 00 00 00 .....j..y............)..........
10b80 00 01 00 00 00 33 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 58 20 3d 20 63 61 6d 58 20 2b 20 73 .....3....float.lookX.=.camX.+.s
10ba0 69 6e 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 f5 18 00 00 01 2a 00 inf(yaw.*.M_PI./.180.0f)......*.
10bc0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
10be0 01 20 f5 18 00 00 00 97 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 ................................
10c00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 ............................5...
10c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 01 00 00 00 00 00 00 00 ................................
10c40 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 96 00 00 00 01 00 ................................
10c60 00 00 00 00 00 00 00 00 00 00 93 00 00 00 33 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 ..............3.................
10c80 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 29 01 00 00 33 00 00 00 00 00 00 00 00 00 00 00 ................)...3...........
10ca0 9b 00 00 00 01 00 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 ................................
10cc0 35 81 5f d0 00 00 00 10 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 11 00 00 01 b4 00 00 00 16 5._.............................
10ce0 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e20 00 00 00 00 01 b4 00 00 00 16 00 00 00 00 00 00 01 b4 00 00 00 28 00 00 00 00 00 00 00 76 00 00 .....................(.......v..
10e40 00 28 00 00 00 00 6a 08 fb e5 04 01 00 00 00 0e 00 f5 18 00 00 01 b3 00 00 01 b5 00 00 01 c5 00 .(....j.........................
10e60 00 00 01 00 00 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e ......,....glutCreateWindow("Min
10e80 65 63 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 35 81 f5 18 00 00 00 00 b3 01 00 00 16 ecraft.Prototype");5............
10ea0 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 61 2e 00 00 00 00 00 00 13 00 00 00 00 ...................a............
10ec0 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 11 00 00 00 13 00 00 00 00 00 00 00 00 00 ...........5._..................
10ee0 00 00 12 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
10f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 fc 73 04 01 00 00 00 00 00 f5 18 00 00 .................j..s...........
11060 00 00 00 00 00 02 00 00 00 00 00 00 01 c5 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 47 4c 2f 67 ..................#include.<GL/g
11080 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 13 23 lut.h>....#include.<math.h>....#
110a0 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c include.<stdlib.h>....#include.<
110c0 74 69 6d 65 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 57 49 time.h>........#define.WINDOW_WI
110e0 44 54 48 20 20 20 31 32 38 30 00 00 00 1a 23 64 65 66 69 6e 65 20 57 49 4e 44 4f 57 5f 48 45 49 DTH...1280....#define.WINDOW_HEI
11100 47 48 54 20 20 37 32 30 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a GHT..720....#define.PLATFORM_SIZ
11120 45 20 20 38 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 45 44 20 20 20 20 20 E..80....#define.MOVE_SPEED.....
11140 36 2e 30 66 00 00 00 1c 23 64 65 66 69 6e 65 20 53 50 52 49 4e 54 5f 53 50 45 45 44 20 20 20 31 6.0f....#define.SPRINT_SPEED...1
11160 30 2e 30 66 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e 53 20 20 20 20 20 30 0.0f....#define.MOUSE_SENS.....0
11180 2e 32 66 00 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 20 31 2e .2f....#define.PLAYER_HEIGHT..1.
111a0 36 32 66 00 00 00 1c 23 64 65 66 69 6e 65 20 47 52 41 56 49 54 59 20 20 20 20 20 20 20 20 31 35 62f....#define.GRAVITY........15
111c0 2e 30 66 00 00 00 1b 23 64 65 66 69 6e 65 20 4a 55 4d 50 5f 46 4f 52 43 45 20 20 20 20 20 37 2e .0f....#define.JUMP_FORCE.....7.
111e0 30 66 00 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e 30 66 2c 20 63 61 6d 0f.......5float.camX.=.0.0f,.cam
11200 59 20 3d 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 20 30 2e 30 66 3b 00 Y.=.PLAYER_HEIGHT,.camZ.=.0.0f;.
11220 00 00 17 66 6c 6f 61 74 20 76 65 6c 6f 63 69 74 79 59 20 3d 20 30 2e 30 66 3b 00 00 00 1f 66 6c ...float.velocityY.=.0.0f;....fl
11240 6f 61 74 20 79 61 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 2e 30 66 3b 00 00 00 oat.yaw.=.0.0f,.pitch.=.0.0f;...
11260 0e 69 6e 74 20 6b 65 79 73 5b 32 35 36 5d 3b 00 00 00 16 69 6e 74 20 6d 6f 75 73 65 43 61 70 74 .int.keys[256];....int.mouseCapt
11280 75 72 65 64 20 3d 20 30 3b 00 00 00 13 69 6e 74 20 69 73 4f 6e 47 72 6f 75 6e 64 20 3d 20 31 3b ured.=.0;....int.isOnGround.=.1;
112a0 00 00 00 00 00 00 00 32 66 6c 6f 61 74 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 50 4c 41 54 .......2float.terrainHeight[PLAT
112c0 46 4f 52 4d 5f 53 49 5a 45 5d 5b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 5d 3b 00 00 00 00 00 00 FORM_SIZE][PLATFORM_SIZE];......
112e0 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 ..typedef.struct.{........float.
11300 74 6f 70 5b 33 5d 3b 00 00 00 12 20 20 20 20 66 6c 6f 61 74 20 73 69 64 65 5b 33 5d 3b 00 00 00 top[3];........float.side[3];...
11320 14 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 33 5d 3b 00 00 00 0d 7d 20 42 6c 6f 63 6b .....float.bottom[3];....}.Block
11340 53 74 79 6c 65 3b 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 67 72 61 73 73 42 6c Style;........BlockStyle.grassBl
11360 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 2e ock.=.{........{0.25f,.0.75f,.0.
11380 31 35 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 15f},........{0.50f,.0.35f,.0.10
113a0 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d f},........{0.40f,.0.25f,.0.08f}
113c0 00 00 00 02 7d 3b 00 00 00 00 00 00 00 19 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 6f 6e 65 42 6c ....};........BlockStyle.stoneBl
113e0 6f 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 35 30 66 2c 20 30 2e ock.=.{........{0.50f,.0.50f,.0.
11400 35 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 34 35 66 2c 20 30 2e 34 35 66 2c 20 30 2e 34 35 50f},........{0.45f,.0.45f,.0.45
11420 66 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 33 35 66 2c 20 30 2e 33 35 66 2c 20 30 2e 33 35 66 7d f},........{0.35f,.0.35f,.0.35f}
11440 00 00 00 02 7d 3b 00 00 00 00 00 00 00 18 42 6c 6f 63 6b 53 74 79 6c 65 20 64 69 72 74 42 6c 6f ....};........BlockStyle.dirtBlo
11460 63 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 35 35 66 2c 20 30 2e 34 30 66 2c 20 30 2e 32 ck.=.{........{0.55f,.0.40f,.0.2
11480 30 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 38 66 0f},........{0.50f,.0.35f,.0.18f
114a0 7d 2c 00 00 00 19 20 20 20 20 7b 30 2e 34 30 66 2c 20 30 2e 32 38 66 2c 20 30 2e 31 35 66 7d 00 },........{0.40f,.0.28f,.0.15f}.
114c0 00 00 02 7d 3b 00 00 00 00 00 00 00 18 42 6c 6f 63 6b 53 74 79 6c 65 20 73 61 6e 64 42 6c 6f 63 ...};........BlockStyle.sandBloc
114e0 6b 20 3d 20 7b 00 00 00 1a 20 20 20 20 7b 30 2e 38 35 66 2c 20 30 2e 38 30 66 2c 20 30 2e 35 30 k.=.{........{0.85f,.0.80f,.0.50
11500 66 7d 2c 00 00 00 1a 20 20 20 20 7b 30 2e 37 35 66 2c 20 30 2e 37 30 66 2c 20 30 2e 34 30 66 7d f},........{0.75f,.0.70f,.0.40f}
11520 2c 00 00 00 19 20 20 20 20 7b 30 2e 36 35 66 2c 20 30 2e 36 30 66 2c 20 30 2e 33 35 66 7d 00 00 ,........{0.65f,.0.60f,.0.35f}..
11540 00 02 7d 3b 00 00 00 00 00 00 00 1b 66 6c 6f 61 74 20 6e 6f 69 73 65 28 69 6e 74 20 78 2c 20 69 ..};........float.noise(int.x,.i
11560 6e 74 20 79 29 20 7b 00 00 00 17 20 20 20 20 69 6e 74 20 6e 20 3d 20 78 20 2b 20 79 20 2a 20 35 nt.y).{........int.n.=.x.+.y.*.5
11580 37 3b 00 00 00 16 20 20 20 20 6e 20 3d 20 28 6e 20 3c 3c 20 31 33 29 20 5e 20 6e 3b 00 00 00 5f 7;........n.=.(n.<<.13).^.n;..._
115a0 20 20 20 20 72 65 74 75 72 6e 20 28 31 2e 30 66 20 2d 20 28 28 6e 20 2a 20 28 6e 20 2a 20 6e 20 ....return.(1.0f.-.((n.*.(n.*.n.
115c0 2a 20 31 35 37 33 31 20 2b 20 37 38 39 32 32 31 29 20 2b 20 31 33 37 36 33 31 32 35 38 39 29 20 *.15731.+.789221).+.1376312589).
115e0 26 20 30 78 37 66 66 66 66 66 66 66 29 20 2f 20 31 30 37 33 37 34 31 38 32 34 2e 30 66 29 3b 00 &.0x7fffffff)./.1073741824.0f);.
11600 00 00 01 7d 00 00 00 00 00 00 00 21 66 6c 6f 61 74 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e ...}.......!float.smoothNoise(in
11620 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 64 20 20 20 20 66 6c 6f 61 74 20 63 6f 72 6e 65 t.x,.int.y).{...d....float.corne
11640 72 73 20 3d 20 28 6e 6f 69 73 65 28 78 2d 31 2c 20 79 2d 31 29 20 2b 20 6e 6f 69 73 65 28 78 2b rs.=.(noise(x-1,.y-1).+.noise(x+
11660 31 2c 20 79 2d 31 29 20 2b 20 6e 6f 69 73 65 28 78 2d 31 2c 20 79 2b 31 29 20 2b 20 6e 6f 69 73 1,.y-1).+.noise(x-1,.y+1).+.nois
11680 65 28 78 2b 31 2c 20 79 2b 31 29 29 20 2f 20 31 36 2e 30 66 3b 00 00 00 59 20 20 20 20 66 6c 6f e(x+1,.y+1))./.16.0f;...Y....flo
116a0 61 74 20 73 69 64 65 73 20 3d 20 28 6e 6f 69 73 65 28 78 2d 31 2c 20 79 29 20 2b 20 6e 6f 69 73 at.sides.=.(noise(x-1,.y).+.nois
116c0 65 28 78 2b 31 2c 20 79 29 20 2b 20 6e 6f 69 73 65 28 78 2c 20 79 2d 31 29 20 2b 20 6e 6f 69 73 e(x+1,.y).+.noise(x,.y-1).+.nois
116e0 65 28 78 2c 20 79 2b 31 29 29 20 2f 20 38 2e 30 66 3b 00 00 00 26 20 20 20 20 66 6c 6f 61 74 20 e(x,.y+1))./.8.0f;...&....float.
11700 63 65 6e 74 65 72 20 3d 20 6e 6f 69 73 65 28 78 2c 20 79 29 20 2f 20 34 2e 30 66 3b 00 00 00 24 center.=.noise(x,.y)./.4.0f;...$
11720 20 20 20 20 72 65 74 75 72 6e 20 63 6f 72 6e 65 72 73 20 2b 20 73 69 64 65 73 20 2b 20 63 65 6e ....return.corners.+.sides.+.cen
11740 74 65 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2b 66 6c 6f 61 74 20 69 6e 74 65 72 70 6f 6c 61 ter;....}.......+float.interpola
11760 74 65 64 4e 6f 69 73 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 29 20 7b 00 00 00 16 tedNoise(float.x,.float.y).{....
11780 20 20 20 20 69 6e 74 20 69 6e 74 58 20 3d 20 28 69 6e 74 29 78 3b 00 00 00 1b 20 20 20 20 66 6c ....int.intX.=.(int)x;........fl
117a0 6f 61 74 20 66 72 61 63 58 20 3d 20 78 20 2d 20 69 6e 74 58 3b 00 00 00 16 20 20 20 20 69 6e 74 oat.fracX.=.x.-.intX;........int
117c0 20 69 6e 74 59 20 3d 20 28 69 6e 74 29 79 3b 00 00 00 1b 20 20 20 20 66 6c 6f 61 74 20 66 72 61 .intY.=.(int)y;........float.fra
117e0 63 59 20 3d 20 79 20 2d 20 69 6e 74 59 3b 00 00 00 04 20 20 20 20 00 00 00 27 20 20 20 20 66 6c cY.=.y.-.intY;...........'....fl
11800 6f 61 74 20 76 31 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e 74 58 2c 20 69 6e 74 59 29 oat.v1.=.smoothNoise(intX,.intY)
11820 3b 00 00 00 2b 20 20 20 20 66 6c 6f 61 74 20 76 32 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 ;...+....float.v2.=.smoothNoise(
11840 69 6e 74 58 20 2b 20 31 2c 20 69 6e 74 59 29 3b 00 00 00 2b 20 20 20 20 66 6c 6f 61 74 20 76 33 intX.+.1,.intY);...+....float.v3
11860 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e 74 58 2c 20 69 6e 74 59 20 2b 20 31 29 3b 00 .=.smoothNoise(intX,.intY.+.1);.
11880 00 00 2f 20 20 20 20 66 6c 6f 61 74 20 76 34 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e ../....float.v4.=.smoothNoise(in
118a0 74 58 20 2b 20 31 2c 20 69 6e 74 59 20 2b 20 31 29 3b 00 00 00 04 20 20 20 20 00 00 00 26 20 20 tX.+.1,.intY.+.1);...........&..
118c0 20 20 66 6c 6f 61 74 20 69 31 20 3d 20 76 31 20 2b 20 28 76 32 20 2d 20 76 31 29 20 2a 20 66 72 ..float.i1.=.v1.+.(v2.-.v1).*.fr
118e0 61 63 58 3b 00 00 00 26 20 20 20 20 66 6c 6f 61 74 20 69 32 20 3d 20 76 33 20 2b 20 28 76 34 20 acX;...&....float.i2.=.v3.+.(v4.
11900 2d 20 76 33 29 20 2a 20 66 72 61 63 58 3b 00 00 00 04 20 20 20 20 00 00 00 22 20 20 20 20 72 65 -.v3).*.fracX;..........."....re
11920 74 75 72 6e 20 69 31 20 2b 20 28 69 32 20 2d 20 69 31 29 20 2a 20 66 72 61 63 59 3b 00 00 00 01 turn.i1.+.(i2.-.i1).*.fracY;....
11940 7d 00 00 00 00 00 00 00 26 66 6c 6f 61 74 20 67 65 74 54 65 72 72 61 69 6e 48 65 69 67 68 74 28 }.......&float.getTerrainHeight(
11960 69 6e 74 20 78 2c 20 69 6e 74 20 7a 29 20 7b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 73 63 61 int.x,.int.z).{........float.sca
11980 6c 65 20 3d 20 30 2e 30 33 66 3b 00 00 00 42 20 20 20 20 66 6c 6f 61 74 20 68 65 69 67 68 74 20 le.=.0.03f;...B....float.height.
119a0 3d 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 78 20 2a 20 73 63 61 6c 65 2c 20 7a =.interpolatedNoise(x.*.scale,.z
119c0 20 2a 20 73 63 61 6c 65 29 20 2a 20 36 2e 30 66 3b 00 00 00 45 20 20 20 20 68 65 69 67 68 74 20 .*.scale).*.6.0f;...E....height.
119e0 2b 3d 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 78 20 2a 20 73 63 61 6c 65 20 2a +=.interpolatedNoise(x.*.scale.*
11a00 20 32 2c 20 7a 20 2a 20 73 63 61 6c 65 20 2a 20 32 29 20 2a 20 33 2e 30 66 3b 00 00 00 45 20 20 .2,.z.*.scale.*.2).*.3.0f;...E..
11a20 20 20 68 65 69 67 68 74 20 2b 3d 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 78 20 ..height.+=.interpolatedNoise(x.
11a40 2a 20 73 63 61 6c 65 20 2a 20 34 2c 20 7a 20 2a 20 73 63 61 6c 65 20 2a 20 34 29 20 2a 20 31 2e *.scale.*.4,.z.*.scale.*.4).*.1.
11a60 35 66 3b 00 00 00 04 20 20 20 20 00 00 00 43 20 20 20 20 66 6c 6f 61 74 20 64 69 73 74 46 72 6f 5f;...........C....float.distFro
11a80 6d 43 65 6e 74 65 72 20 3d 20 73 71 72 74 66 28 78 2a 78 20 2b 20 7a 2a 7a 29 20 2f 20 28 50 4c mCenter.=.sqrtf(x*x.+.z*z)./.(PL
11aa0 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 29 3b 00 00 00 20 20 20 20 20 69 66 20 28 64 69 ATFORM_SIZE/2.0f);........if.(di
11ac0 73 74 46 72 6f 6d 43 65 6e 74 65 72 20 3e 20 30 2e 37 66 29 20 7b 00 00 00 32 20 20 20 20 20 20 stFromCenter.>.0.7f).{...2......
11ae0 20 20 68 65 69 67 68 74 20 2d 3d 20 28 64 69 73 74 46 72 6f 6d 43 65 6e 74 65 72 20 2d 20 30 2e ..height.-=.(distFromCenter.-.0.
11b00 37 66 29 20 2a 20 31 30 2e 30 66 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 7f).*.10.0f;........}...........
11b20 12 20 20 20 20 72 65 74 75 72 6e 20 68 65 69 67 68 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 18 .....return.height;....}........
11b40 76 6f 69 64 20 67 65 6e 65 72 61 74 65 54 65 72 72 61 69 6e 28 29 20 7b 00 00 00 21 20 20 20 20 void.generateTerrain().{...!....
11b60 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 int.half.=.PLATFORM_SIZE./.2;...
11b80 2d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 50 4c 41 54 46 4f 52 -....for.(int.i.=.0;.i.<.PLATFOR
11ba0 4d 5f 53 49 5a 45 3b 20 69 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 M_SIZE;.i++).{...1........for.(i
11bc0 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 3b 20 6a 2b 2b nt.j.=.0;.j.<.PLATFORM_SIZE;.j++
11be0 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 6c 64 58 20 3d 20 ).{..."............int.worldX.=.
11c00 69 20 2d 20 68 61 6c 66 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 i.-.half;..."............int.wor
11c20 6c 64 5a 20 3d 20 6a 20 2d 20 68 61 6c 66 3b 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 74 ldZ.=.j.-.half;...C............t
11c40 65 72 72 61 69 6e 48 65 69 67 68 74 5b 69 5d 5b 6a 5d 20 3d 20 67 65 74 54 65 72 72 61 69 6e 48 errainHeight[i][j].=.getTerrainH
11c60 65 69 67 68 74 28 77 6f 72 6c 64 58 2c 20 77 6f 72 6c 64 5a 29 3b 00 00 00 09 20 20 20 20 20 20 eight(worldX,.worldZ);..........
11c80 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2d 66 6c 6f 61 74 20 67 ..}........}....}.......-float.g
11ca0 65 74 48 65 69 67 68 74 41 74 50 6f 73 69 74 69 6f 6e 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 etHeightAtPosition(float.x,.floa
11cc0 74 20 7a 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 t.z).{...!....int.half.=.PLATFOR
11ce0 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 20 20 20 20 20 69 6e 74 20 67 72 69 64 58 20 3d 20 28 M_SIZE./.2;........int.gridX.=.(
11d00 69 6e 74 29 28 78 20 2b 20 68 61 6c 66 29 3b 00 00 00 20 20 20 20 20 69 6e 74 20 67 72 69 64 5a int)(x.+.half);........int.gridZ
11d20 20 3d 20 28 69 6e 74 29 28 7a 20 2b 20 68 61 6c 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 5d 20 .=.(int)(z.+.half);...........].
11d40 20 20 20 69 66 20 28 67 72 69 64 58 20 3c 20 30 20 7c 7c 20 67 72 69 64 58 20 3e 3d 20 50 4c 41 ...if.(gridX.<.0.||.gridX.>=.PLA
11d60 54 46 4f 52 4d 5f 53 49 5a 45 20 2d 20 31 20 7c 7c 20 67 72 69 64 5a 20 3c 20 30 20 7c 7c 20 67 TFORM_SIZE.-.1.||.gridZ.<.0.||.g
11d80 72 69 64 5a 20 3e 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2d 20 31 29 20 7b 00 00 00 14 ridZ.>=.PLATFORM_SIZE.-.1).{....
11da0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 2e 30 66 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ........return.0.0f;........}...
11dc0 04 20 20 20 20 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 66 72 61 63 58 20 3d 20 28 78 20 2b 20 ........%....float.fracX.=.(x.+.
11de0 68 61 6c 66 29 20 2d 20 67 72 69 64 58 3b 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 66 72 61 63 half).-.gridX;...%....float.frac
11e00 5a 20 3d 20 28 7a 20 2b 20 68 61 6c 66 29 20 2d 20 67 72 69 64 5a 3b 00 00 00 04 20 20 20 20 00 Z.=.(z.+.half).-.gridZ;.........
11e20 00 00 2c 20 20 20 20 66 6c 6f 61 74 20 68 30 30 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 ..,....float.h00.=.terrainHeight
11e40 5b 67 72 69 64 58 5d 5b 67 72 69 64 5a 5d 3b 00 00 00 2e 20 20 20 20 66 6c 6f 61 74 20 68 31 30 [gridX][gridZ];........float.h10
11e60 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 69 64 58 2b 31 5d 5b 67 72 69 64 5a 5d .=.terrainHeight[gridX+1][gridZ]
11e80 3b 00 00 00 2e 20 20 20 20 66 6c 6f 61 74 20 68 30 31 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 ;........float.h01.=.terrainHeig
11ea0 68 74 5b 67 72 69 64 58 5d 5b 67 72 69 64 5a 2b 31 5d 3b 00 00 00 30 20 20 20 20 66 6c 6f 61 74 ht[gridX][gridZ+1];...0....float
11ec0 20 68 31 31 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 69 64 58 2b 31 5d 5b 67 72 .h11.=.terrainHeight[gridX+1][gr
11ee0 69 64 5a 2b 31 5d 3b 00 00 00 04 20 20 20 20 00 00 00 29 20 20 20 20 66 6c 6f 61 74 20 68 30 20 idZ+1];...........)....float.h0.
11f00 3d 20 68 30 30 20 2b 20 28 68 31 30 20 2d 20 68 30 30 29 20 2a 20 66 72 61 63 58 3b 00 00 00 29 =.h00.+.(h10.-.h00).*.fracX;...)
11f20 20 20 20 20 66 6c 6f 61 74 20 68 31 20 3d 20 68 30 31 20 2b 20 28 68 31 31 20 2d 20 68 30 31 29 ....float.h1.=.h01.+.(h11.-.h01)
11f40 20 2a 20 66 72 61 63 58 3b 00 00 00 04 20 20 20 20 00 00 00 22 20 20 20 20 72 65 74 75 72 6e 20 .*.fracX;..........."....return.
11f60 68 30 20 2b 20 28 68 31 20 2d 20 68 30 29 20 2a 20 66 72 61 63 5a 3b 00 00 00 01 7d 00 00 00 00 h0.+.(h1.-.h0).*.fracZ;....}....
11f80 00 00 00 0f 76 6f 69 64 20 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 ....void.initGL().{...,....glCle
11fa0 61 72 43 6f 6c 6f 72 28 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 arColor(0.53f,.0.81f,.0.98f,.1.0
11fc0 66 29 3b 00 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 f);........glEnable(GL_DEPTH_TES
11fe0 54 29 3b 00 00 00 1b 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 55 4c 4c 5f 46 41 43 45 T);........glEnable(GL_CULL_FACE
12000 29 3b 00 00 00 18 20 20 20 20 67 6c 43 75 6c 6c 46 61 63 65 28 47 4c 5f 42 41 43 4b 29 3b 00 00 );........glCullFace(GL_BACK);..
12020 00 15 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 46 4f 47 29 3b 00 00 00 23 20 20 20 20 67 ......glEnable(GL_FOG);...#....g
12040 6c 46 6f 67 69 28 47 4c 5f 46 4f 47 5f 4d 4f 44 45 2c 20 47 4c 5f 4c 49 4e 45 41 52 29 3b 00 00 lFogi(GL_FOG_MODE,.GL_LINEAR);..
12060 00 2f 20 20 20 20 67 6c 46 6f 67 66 28 47 4c 5f 46 4f 47 5f 53 54 41 52 54 2c 20 50 4c 41 54 46 ./....glFogf(GL_FOG_START,.PLATF
12080 4f 52 4d 5f 53 49 5a 45 20 2a 20 30 2e 36 66 29 3b 00 00 00 2d 20 20 20 20 67 6c 46 6f 67 66 28 ORM_SIZE.*.0.6f);...-....glFogf(
120a0 47 4c 5f 46 4f 47 5f 45 4e 44 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 31 2e 33 66 GL_FOG_END,.PLATFORM_SIZE.*.1.3f
120c0 29 3b 00 00 00 33 20 20 20 20 66 6c 6f 61 74 20 66 6f 67 43 6f 6c 6f 72 5b 5d 20 3d 20 7b 30 2e );...3....float.fogColor[].=.{0.
120e0 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 24 20 20 20 53f,.0.81f,.0.98f,.1.0f};...$...
12100 20 67 6c 46 6f 67 66 76 28 47 4c 5f 46 4f 47 5f 43 4f 4c 4f 52 2c 20 66 6f 67 43 6f 6c 6f 72 29 .glFogfv(GL_FOG_COLOR,.fogColor)
12120 3b 00 00 00 00 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d ;.......1....GLfloat.ambient[].=
12140 20 7b 30 2e 36 66 2c 20 30 2e 36 66 2c 20 30 2e 36 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 .{0.6f,.0.6f,.0.6f,.1.0f};...1..
12160 20 20 47 4c 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 38 66 2c 20 30 2e 38 ..GLfloat.diffuse[].=.{0.8f,.0.8
12180 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 57 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c f,.0.7f,.1.0f};...W....GLfloat.l
121a0 69 67 68 74 50 6f 73 5b 5d 20 3d 20 7b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 2c ightPos[].=.{PLATFORM_SIZE/2.0f,
121c0 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 2f 32 2e .PLATFORM_SIZE,.PLATFORM_SIZE/2.
121e0 30 66 2c 20 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 0f,.1.0f};............glEnable(G
12200 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f L_LIGHTING);........glEnable(GL_
12220 4c 49 47 48 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 LIGHT0);........glLightfv(GL_LIG
12240 48 54 30 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 HT0,.GL_AMBIENT,.ambient);......
12260 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 ..glLightfv(GL_LIGHT0,.GL_DIFFUS
12280 45 2c 20 64 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c E,.diffuse);...0....glLightfv(GL
122a0 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b _LIGHT0,.GL_POSITION,.lightPos);
122c0 00 00 00 01 7d 00 00 00 00 00 00 00 53 76 6f 69 64 20 64 72 61 77 46 61 63 65 28 66 6c 6f 61 74 ....}.......Svoid.drawFace(float
122e0 20 76 30 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 31 5b 33 5d 2c 20 66 6c 6f 61 74 20 76 32 5b 33 5d .v0[3],.float.v1[3],.float.v2[3]
12300 2c 20 66 6c 6f 61 74 20 76 33 5b 33 5d 2c 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b 33 5d 29 20 7b ,.float.v3[3],.float.color[3]).{
12320 00 00 00 44 20 20 20 20 66 6c 6f 61 74 20 64 61 72 6b 65 72 5b 33 5d 20 3d 20 7b 63 6f 6c 6f 72 ...D....float.darker[3].=.{color
12340 5b 30 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 31 5d 2a 30 2e 37 66 2c 20 63 6f 6c 6f 72 5b 32 [0]*0.7f,.color[1]*0.7f,.color[2
12360 5d 2a 30 2e 37 66 7d 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 ]*0.7f};................glBegin(
12380 47 4c 5f 51 55 41 44 53 29 3b 00 00 00 16 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 76 28 63 6f 6c GL_QUADS);........glColor3fv(col
123a0 6f 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 29 3b 00 00 00 14 or);........glVertex3fv(v0);....
123c0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 ....glVertex3fv(v1);........glVe
123e0 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 rtex3fv(v2);........glVertex3fv(
12400 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 v3);........glEnd();............
12420 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 16 20 20 20 20 67 glDisable(GL_LIGHTING);........g
12440 6c 4c 69 6e 65 57 69 64 74 68 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 67 6c 42 65 67 69 6e lLineWidth(1.0f);........glBegin
12460 28 47 4c 5f 4c 49 4e 45 5f 4c 4f 4f 50 29 3b 00 00 00 17 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 (GL_LINE_LOOP);........glColor3f
12480 76 28 64 61 72 6b 65 72 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 30 v(darker);........glVertex3fv(v0
124a0 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 31 29 3b 00 00 00 14 20 20 );........glVertex3fv(v1);......
124c0 20 20 67 6c 56 65 72 74 65 78 33 66 76 28 76 32 29 3b 00 00 00 14 20 20 20 20 67 6c 56 65 72 74 ..glVertex3fv(v2);........glVert
124e0 65 78 33 66 76 28 76 33 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 1a 20 20 ex3fv(v3);........glEnd();......
12500 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 01 7d 00 00 00 ..glEnable(GL_LIGHTING);....}...
12520 00 00 00 00 3c 76 6f 69 64 20 64 72 61 77 43 75 62 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 ....<void.drawCube(float.x,.floa
12540 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c 20 42 6c 6f 63 6b 53 74 79 6c 65 20 73 74 79 6c 65 29 20 t.y,.float.z,.BlockStyle.style).
12560 7b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 1a 20 20 20 20 {........glPushMatrix();........
12580 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 78 2c 20 79 2c 20 7a 29 3b 00 00 00 00 00 00 00 17 20 20 glTranslatef(x,.y,.z);..........
125a0 20 20 66 6c 6f 61 74 20 74 6f 70 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 ..float.top[4][3].=.{.../.......
125c0 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 .{0.0f,.1.0f,.0.0f},.{1.0f,.1.0f
125e0 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c ,.0.0f},............{1.0f,.1.0f,
12600 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 .1.0f},.{0.0f,.1.0f,.1.0f}......
12620 20 20 7d 3b 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 62 6f 74 74 6f 6d 5b 34 5d 5b 33 5d 20 3d ..};........float.bottom[4][3].=
12640 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d .{.../........{0.0f,.0.0f,.1.0f}
12660 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 ,.{1.0f,.0.0f,.1.0f},...........
12680 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 .{1.0f,.0.0f,.0.0f},.{0.0f,.0.0f
126a0 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 20 66 ,.0.0f}........};........float.f
126c0 72 6f 6e 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c ront[4][3].=.{.../........{0.0f,
126e0 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d .0.0f,.0.0f},.{1.0f,.0.0f,.0.0f}
12700 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c ,............{1.0f,.1.0f,.0.0f},
12720 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 .{0.0f,.1.0f,.0.0f}........};...
12740 18 20 20 20 20 66 6c 6f 61 74 20 62 61 63 6b 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 .....float.back[4][3].=.{.../...
12760 20 20 20 20 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 .....{1.0f,.0.0f,.1.0f},.{0.0f,.
12780 30 2e 30 66 2c 20 31 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 31 0.0f,.1.0f},............{0.0f,.1
127a0 2e 30 66 2c 20 31 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 7d 00 00 .0f,.1.0f},.{1.0f,.1.0f,.1.0f}..
127c0 00 06 20 20 20 20 7d 3b 00 00 00 18 20 20 20 20 66 6c 6f 61 74 20 6c 65 66 74 5b 34 5d 5b 33 5d ......};........float.left[4][3]
127e0 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 .=.{.../........{0.0f,.0.0f,.1.0
12800 66 7d 2c 20 7b 30 2e 30 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 00 00 00 2e 20 20 20 20 20 f},.{0.0f,.0.0f,.0.0f},.........
12820 20 20 20 7b 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 30 2e 30 66 2c 20 31 2e ...{0.0f,.1.0f,.0.0f},.{0.0f,.1.
12840 30 66 2c 20 31 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 19 20 20 20 20 66 6c 6f 61 74 0f,.1.0f}........};........float
12860 20 72 69 67 68 74 5b 34 5d 5b 33 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 7b 31 2e 30 .right[4][3].=.{.../........{1.0
12880 66 2c 20 30 2e 30 66 2c 20 30 2e 30 66 7d 2c 20 7b 31 2e 30 66 2c 20 30 2e 30 66 2c 20 31 2e 30 f,.0.0f,.0.0f},.{1.0f,.0.0f,.1.0
128a0 66 7d 2c 00 00 00 2e 20 20 20 20 20 20 20 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 f},............{1.0f,.1.0f,.1.0f
128c0 7d 2c 20 7b 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 7d 00 00 00 06 20 20 20 20 7d 3b 00 },.{1.0f,.1.0f,.0.0f}........};.
128e0 00 00 00 00 00 00 38 20 20 20 20 64 72 61 77 46 61 63 65 28 74 6f 70 5b 30 5d 2c 20 74 6f 70 5b ......8....drawFace(top[0],.top[
12900 31 5d 2c 20 74 6f 70 5b 32 5d 2c 20 74 6f 70 5b 33 5d 2c 20 73 74 79 6c 65 2e 74 6f 70 29 3b 00 1],.top[2],.top[3],.style.top);.
12920 00 00 47 20 20 20 20 64 72 61 77 46 61 63 65 28 62 6f 74 74 6f 6d 5b 30 5d 2c 20 62 6f 74 74 6f ..G....drawFace(bottom[0],.botto
12940 6d 5b 31 5d 2c 20 62 6f 74 74 6f 6d 5b 32 5d 2c 20 62 6f 74 74 6f 6d 5b 33 5d 2c 20 73 74 79 6c m[1],.bottom[2],.bottom[3],.styl
12960 65 2e 62 6f 74 74 6f 6d 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 65 28 66 72 6f 6e 74 e.bottom);...A....drawFace(front
12980 5b 30 5d 2c 20 66 72 6f 6e 74 5b 31 5d 2c 20 66 72 6f 6e 74 5b 32 5d 2c 20 66 72 6f 6e 74 5b 33 [0],.front[1],.front[2],.front[3
129a0 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 28 ],.style.side);...=....drawFace(
129c0 62 61 63 6b 5b 30 5d 2c 20 62 61 63 6b 5b 31 5d 2c 20 62 61 63 6b 5b 32 5d 2c 20 62 61 63 6b 5b back[0],.back[1],.back[2],.back[
129e0 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 3d 20 20 20 20 64 72 61 77 46 61 63 65 3],.style.side);...=....drawFace
12a00 28 6c 65 66 74 5b 30 5d 2c 20 6c 65 66 74 5b 31 5d 2c 20 6c 65 66 74 5b 32 5d 2c 20 6c 65 66 74 (left[0],.left[1],.left[2],.left
12a20 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 41 20 20 20 20 64 72 61 77 46 61 63 [3],.style.side);...A....drawFac
12a40 65 28 72 69 67 68 74 5b 30 5d 2c 20 72 69 67 68 74 5b 31 5d 2c 20 72 69 67 68 74 5b 32 5d 2c 20 e(right[0],.right[1],.right[2],.
12a60 72 69 67 68 74 5b 33 5d 2c 20 73 74 79 6c 65 2e 73 69 64 65 29 3b 00 00 00 00 00 00 00 12 20 20 right[3],.style.side);..........
12a80 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 15 76 6f 69 ..glPopMatrix();....}........voi
12aa0 64 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 d.drawPlatform().{...!....int.ha
12ac0 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 04 20 20 20 20 00 lf.=.PLATFORM_SIZE./.2;.........
12ae0 00 00 2d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 50 4c 41 54 46 ..-....for.(int.i.=.0;.i.<.PLATF
12b00 4f 52 4d 5f 53 49 5a 45 3b 20 69 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 66 6f 72 20 ORM_SIZE;.i++).{...1........for.
12b20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 3b 20 6a (int.j.=.0;.j.<.PLATFORM_SIZE;.j
12b40 2b 2b 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 6c 64 58 20 ++).{..."............int.worldX.
12b60 3d 20 69 20 2d 20 68 61 6c 66 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 =.i.-.half;..."............int.w
12b80 6f 72 6c 64 5a 20 3d 20 6a 20 2d 20 68 61 6c 66 3b 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 orldZ.=.j.-.half;.../...........
12ba0 20 66 6c 6f 61 74 20 68 65 69 67 68 74 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 69 5d .float.height.=.terrainHeight[i]
12bc0 5b 6a 5d 3b 00 00 00 0c 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 31 20 20 20 20 20 20 20 20 [j];...................1........
12be0 20 20 20 20 69 6e 74 20 62 61 73 65 48 65 69 67 68 74 20 3d 20 28 69 6e 74 29 66 6c 6f 6f 72 66 ....int.baseHeight.=.(int)floorf
12c00 28 68 65 69 67 68 74 29 3b 00 00 00 0c 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 3f 20 20 20 (height);...................?...
12c20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 62 61 73 65 48 65 69 67 68 74 .........for.(int.y.=.baseHeight
12c40 20 2d 20 33 3b 20 79 20 3c 20 62 61 73 65 48 65 69 67 68 74 3b 20 79 2b 2b 29 20 7b 00 00 00 29 .-.3;.y.<.baseHeight;.y++).{...)
12c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 79 20 3c 20 62 61 73 65 48 65 69 67 ................if.(y.<.baseHeig
12c80 68 74 20 2d 20 31 29 20 7b 00 00 00 51 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ht.-.1).{...Q...................
12ca0 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 77 6f 72 6c 64 58 2c 20 28 66 6c 6f 61 74 29 .drawCube((float)worldX,.(float)
12cc0 79 2c 20 28 66 6c 6f 61 74 29 77 6f 72 6c 64 5a 2c 20 73 74 6f 6e 65 42 6c 6f 63 6b 29 3b 00 00 y,.(float)worldZ,.stoneBlock);..
12ce0 00 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 50 20 20 ..................}.else.{...P..
12d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 ..................drawCube((floa
12d20 74 29 77 6f 72 6c 64 58 2c 20 28 66 6c 6f 61 74 29 79 2c 20 28 66 6c 6f 61 74 29 77 6f 72 6c 64 t)worldX,.(float)y,.(float)world
12d40 5a 2c 20 64 69 72 74 42 6c 6f 63 6b 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Z,.dirtBlock);..................
12d60 20 20 7d 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 20 20 20 20 ..}................}............
12d80 20 20 20 20 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 65 69 67 68 74 20 3c ....................if.(height.<
12da0 20 31 2e 30 66 29 20 7b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 .1.0f).{...N................draw
12dc0 43 75 62 65 28 28 66 6c 6f 61 74 29 77 6f 72 6c 64 58 2c 20 62 61 73 65 48 65 69 67 68 74 2c 20 Cube((float)worldX,.baseHeight,.
12de0 28 66 6c 6f 61 74 29 77 6f 72 6c 64 5a 2c 20 73 61 6e 64 42 6c 6f 63 6b 29 3b 00 00 00 14 20 20 (float)worldZ,.sandBlock);......
12e00 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 ..........}.else.{...O..........
12e20 20 20 20 20 20 20 64 72 61 77 43 75 62 65 28 28 66 6c 6f 61 74 29 77 6f 72 6c 64 58 2c 20 62 61 ......drawCube((float)worldX,.ba
12e40 73 65 48 65 69 67 68 74 2c 20 28 66 6c 6f 61 74 29 77 6f 72 6c 64 5a 2c 20 67 72 61 73 73 42 6c seHeight,.(float)worldZ,.grassBl
12e60 6f 63 6b 29 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 ock);................}..........
12e80 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 16 76 6f 69 64 20 64 72 ..}........}....}........void.dr
12ea0 61 77 43 72 6f 73 73 68 61 69 72 28 29 20 7b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d awCrosshair().{........glMatrixM
12ec0 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 13 20 20 20 20 67 6c 50 75 73 ode(GL_PROJECTION);........glPus
12ee0 68 4d 61 74 72 69 78 28 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 hMatrix();........glLoadIdentity
12f00 28 29 3b 00 00 00 36 20 20 20 20 67 6c 4f 72 74 68 6f 28 30 2c 20 57 49 4e 44 4f 57 5f 57 49 44 ();...6....glOrtho(0,.WINDOW_WID
12f20 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 2c 20 30 2c 20 2d 31 2c 20 31 29 3b 00 00 00 TH,.WINDOW_HEIGHT,.0,.-1,.1);...
12f40 04 20 20 20 20 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 .............glMatrixMode(GL_MOD
12f60 45 4c 56 49 45 57 29 3b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 ELVIEW);........glPushMatrix();.
12f80 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 04 20 20 20 20 .......glLoadIdentity();........
12fa0 00 00 00 1b 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 ........glDisable(GL_LIGHTING);.
12fc0 00 00 1d 20 20 20 20 67 6c 44 69 73 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b .......glDisable(GL_DEPTH_TEST);
12fe0 00 00 00 04 20 20 20 20 00 00 00 1e 20 20 20 20 69 6e 74 20 63 78 20 3d 20 57 49 4e 44 4f 57 5f ................int.cx.=.WINDOW_
13000 57 49 44 54 48 20 2f 20 32 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 79 20 3d 20 57 49 4e 44 4f WIDTH./.2;........int.cy.=.WINDO
13020 57 5f 48 45 49 47 48 54 20 2f 20 32 3b 00 00 00 12 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 W_HEIGHT./.2;........int.size.=.
13040 31 35 3b 00 00 00 10 20 20 20 20 69 6e 74 20 67 61 70 20 3d 20 35 3b 00 00 00 04 20 20 20 20 00 15;........int.gap.=.5;.........
13060 00 00 26 20 20 20 20 67 6c 43 6f 6c 6f 72 34 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 ..&....glColor4f(1.0f,.1.0f,.1.0
13080 66 2c 20 30 2e 38 66 29 3b 00 00 00 16 20 20 20 20 67 6c 4c 69 6e 65 57 69 64 74 68 28 32 2e 30 f,.0.8f);........glLineWidth(2.0
130a0 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 f);................glBegin(GL_LI
130c0 4e 45 53 29 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2d 20 73 69 7a NES);........glVertex2i(cx.-.siz
130e0 65 2c 20 63 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2d 20 67 e,.cy);........glVertex2i(cx.-.g
13100 61 70 2c 20 63 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2b 20 ap,.cy);........glVertex2i(cx.+.
13120 67 61 70 2c 20 63 79 29 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2b gap,.cy);........glVertex2i(cx.+
13140 20 73 69 7a 65 2c 20 63 79 29 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 .size,.cy);........glVertex2i(cx
13160 2c 20 63 79 20 2d 20 73 69 7a 65 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 ,.cy.-.size);........glVertex2i(
13180 63 78 2c 20 63 79 20 2d 20 67 61 70 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 cx,.cy.-.gap);........glVertex2i
131a0 28 63 78 2c 20 63 79 20 2b 20 67 61 70 29 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 (cx,.cy.+.gap);........glVertex2
131c0 69 28 63 78 2c 20 63 79 20 2b 20 73 69 7a 65 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 i(cx,.cy.+.size);........glEnd()
131e0 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 50 6f 69 6e 74 53 69 7a 65 28 32 2e 30 ;................glPointSize(2.0
13200 66 29 3b 00 00 00 17 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 50 4f 49 4e 54 53 29 3b 00 00 f);........glBegin(GL_POINTS);..
13220 00 17 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 2c 20 63 79 29 3b 00 00 00 0c 20 20 20 ......glVertex2i(cx,.cy);.......
13240 20 67 6c 45 6e 64 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c .glEnd();................glEnabl
13260 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c e(GL_DEPTH_TEST);........glEnabl
13280 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 04 20 20 20 20 00 00 00 20 20 20 20 20 67 e(GL_LIGHTING);................g
132a0 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 12 20 lMatrixMode(GL_PROJECTION);.....
132c0 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 ...glPopMatrix();........glMatri
132e0 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 12 20 20 20 20 67 6c 50 6f xMode(GL_MODELVIEW);........glPo
13300 70 4d 61 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 pMatrix();....}........void.disp
13320 6c 61 79 28 29 20 7b 00 00 00 37 20 20 20 20 67 6c 43 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f lay().{...7....glClear(GL_COLOR_
13340 42 55 46 46 45 52 5f 42 49 54 20 7c 20 47 4c 5f 44 45 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 BUFFER_BIT.|.GL_DEPTH_BUFFER_BIT
13360 29 3b 00 00 00 04 20 20 20 20 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 );................glMatrixMode(G
13380 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 L_MODELVIEW);........glLoadIdent
133a0 69 74 79 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b ity();...........Q....float.look
133c0 58 20 3d 20 63 61 6d 58 20 2b 20 73 69 6e 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 X.=.camX.+.sinf(yaw.*.M_PI./.180
133e0 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 .0f).*.cosf(pitch.*.M_PI./.180.0
13400 66 29 3b 00 00 00 35 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 59 20 3d 20 63 61 6d 59 20 2b 20 f);...5....float.lookY.=.camY.+.
13420 73 69 6e 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 51 sinf(pitch.*.M_PI./.180.0f);...Q
13440 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 5a 20 3d 20 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 ....float.lookZ.=.camZ.-.cosf(ya
13460 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 w.*.M_PI./.180.0f).*.cosf(pitch.
13480 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 47 20 20 20 *.M_PI./.180.0f);...........G...
134a0 20 67 6c 75 4c 6f 6f 6b 41 74 28 63 61 6d 58 2c 20 63 61 6d 59 2c 20 63 61 6d 5a 2c 20 6c 6f 6f .gluLookAt(camX,.camY,.camZ,.loo
134c0 6b 58 2c 20 6c 6f 6f 6b 59 2c 20 6c 6f 6f 6b 5a 2c 20 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e kX,.lookY,.lookZ,.0.0f,.1.0f,.0.
134e0 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 13 20 20 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 0f);................drawPlatform
13500 28 29 3b 00 00 00 14 20 20 20 20 64 72 61 77 43 72 6f 73 73 68 61 69 72 28 29 3b 00 00 00 04 20 ();........drawCrosshair();.....
13520 20 20 20 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 ...........glutSwapBuffers();...
13540 01 7d 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e .}........void.reshape(int.w,.in
13560 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 t.h).{........glViewport(0,.0,.w
13580 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f ,.h);........glMatrixMode(GL_PRO
135a0 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 JECTION);........glLoadIdentity(
135c0 29 3b 00 00 00 4b 20 20 20 20 67 6c 75 50 65 72 73 70 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 );...K....gluPerspective(75.0,.(
135e0 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 29 68 2c 20 30 2e 30 35 2c 20 50 4c 41 54 double)w./.(double)h,.0.05,.PLAT
13600 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 FORM_SIZE.*.2.0);........glMatri
13620 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 xMode(GL_MODELVIEW);....}.......
13640 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 4void.keyboardDown(unsigned.char
13660 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 .key,.int.x,.int.y).{........key
13680 73 5b 6b 65 79 5d 20 3d 20 31 3b 00 00 00 1b 20 20 20 20 69 66 20 28 6b 65 79 20 3d 3d 20 32 37 s[key].=.1;........if.(key.==.27
136a0 29 20 65 78 69 74 28 30 29 3b 00 00 00 15 20 20 20 20 69 66 20 28 6b 65 79 20 3d 3d 20 27 20 27 ).exit(0);........if.(key.==.'.'
136c0 29 20 7b 00 00 00 19 20 20 20 20 20 20 20 20 69 66 20 28 69 73 4f 6e 47 72 6f 75 6e 64 29 20 7b ).{............if.(isOnGround).{
136e0 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 76 65 6c 6f 63 69 74 79 59 20 3d 20 4a 55 4d 50 ...#............velocityY.=.JUMP
13700 5f 46 4f 52 43 45 3b 00 00 00 1b 20 20 20 20 20 20 20 20 20 20 20 20 69 73 4f 6e 47 72 6f 75 6e _FORCE;................isOnGroun
13720 64 20 3d 20 30 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 d.=.0;............}........}....
13740 7d 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 55 70 28 75 6e 73 69 67 6e 65 }.......2void.keyboardUp(unsigne
13760 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 12 20 d.char.key,.int.x,.int.y).{.....
13780 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1e 76 6f ...keys[key].=.0;....}........vo
137a0 69 64 20 6d 6f 75 73 65 4d 6f 76 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 2a id.mouseMove(int.x,.int.y).{...*
137c0 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 65 72 58 20 3d 20 57 49 4e 44 4f 57 5f ....static.int.centerX.=.WINDOW_
137e0 57 49 44 54 48 20 2f 20 32 3b 00 00 00 2b 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e WIDTH./.2;...+....static.int.cen
13800 74 65 72 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 3b 00 00 00 04 20 20 20 terY.=.WINDOW_HEIGHT./.2;.......
13820 20 00 00 00 19 20 20 20 20 69 66 20 28 21 6d 6f 75 73 65 43 61 70 74 75 72 65 64 29 20 7b 00 00 .........if.(!mouseCaptured).{..
13840 00 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 .*........glutWarpPointer(center
13860 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 1a 20 20 20 20 20 20 20 20 6d 6f 75 73 65 43 61 70 X,.centerY);............mouseCap
13880 74 75 72 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 tured.=.1;............return;...
138a0 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 6e 74 20 64 78 20 3d 20 78 .....}................int.dx.=.x
138c0 20 2d 20 63 65 6e 74 65 72 58 3b 00 00 00 19 20 20 20 20 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 .-.centerX;........int.dy.=.y.-.
138e0 63 65 6e 74 65 72 59 3b 00 00 00 04 20 20 20 20 00 00 00 1d 20 20 20 20 69 66 20 28 64 78 20 21 centerY;................if.(dx.!
13900 3d 20 30 20 7c 7c 20 64 79 20 21 3d 20 30 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 79 61 77 =.0.||.dy.!=.0).{............yaw
13920 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 21 20 20 20 20 20 20 20 20 .+=.dx.*.MOUSE_SENS;...!........
13940 70 69 74 63 68 20 2b 3d 20 64 79 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 3b 00 00 00 08 20 20 20 pitch.+=.dy.*.MOUSE_SENS;.......
13960 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3e 20 38 39 2e ........)........if.(pitch.>.89.
13980 30 66 29 20 70 69 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 00 00 2b 20 20 20 20 20 20 20 20 69 66 0f).pitch.=.89.0f;...+........if
139a0 20 28 70 69 74 63 68 20 3c 20 2d 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 .(pitch.<.-89.0f).pitch.=.-89.0f
139c0 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 ;...............)........while.(
139e0 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 33 36 30 2e 30 66 3b 00 00 00 2c 20 20 yaw.<.0.0f).yaw.+=.360.0f;...,..
13a00 20 20 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3e 3d 20 33 36 30 2e 30 66 29 20 79 61 77 20 ......while.(yaw.>=.360.0f).yaw.
13a20 2d 3d 20 33 36 30 2e 30 66 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 2a 20 20 20 20 20 20 -=.360.0f;...............*......
13a40 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 ..glutWarpPointer(centerX,.cente
13a60 72 59 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 36 76 6f 69 64 20 6d rY);........}....}.......6void.m
13a80 6f 75 73 65 43 6c 69 63 6b 28 69 6e 74 20 62 75 74 74 6f 6e 2c 20 69 6e 74 20 73 74 61 74 65 2c ouseClick(int.button,.int.state,
13aa0 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 3b 20 20 20 20 69 66 20 28 62 75 74 74 .int.x,.int.y).{...;....if.(butt
13ac0 6f 6e 20 3d 3d 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54 54 4f 4e 20 26 26 20 73 74 61 74 65 20 on.==.GLUT_LEFT_BUTTON.&&.state.
13ae0 3d 3d 20 47 4c 55 54 5f 44 4f 57 4e 29 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 6d 6f 75 73 65 ==.GLUT_DOWN).{............mouse
13b00 43 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 3d 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 Captured.=.0;...=........glutWar
13b20 70 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f pPointer(WINDOW_WIDTH./.2,.WINDO
13b40 57 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 W_HEIGHT./.2);........}....}....
13b60 00 00 00 1e 76 6f 69 64 20 75 70 64 61 74 65 28 66 6c 6f 61 74 20 64 65 6c 74 61 54 69 6d 65 29 ....void.update(float.deltaTime)
13b80 20 7b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 52 61 64 20 3d 20 79 61 77 20 2a 20 4d .{...'....float.yawRad.=.yaw.*.M
13ba0 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 _PI./.180.0f;..."....float.forwa
13bc0 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 23 20 20 20 20 66 6c 6f 61 74 rdX.=.sinf(yawRad);...#....float
13be0 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 .forwardZ.=.-cosf(yawRad);......
13c00 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f 73 66 28 79 61 77 52 61 64 29 3b 00 00 ..float.rightX.=.cosf(yawRad);..
13c20 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 ......float.rightZ.=.sinf(yawRad
13c40 29 3b 00 00 00 04 20 20 20 20 00 00 00 1d 20 20 20 20 66 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 );................float.speed.=.
13c60 4d 4f 56 45 5f 53 50 45 45 44 3b 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 71 27 5d MOVE_SPEED;...!....if.(keys['q']
13c80 20 7c 7c 20 6b 65 79 73 5b 27 51 27 5d 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 73 70 65 65 .||.keys['Q']).{............spee
13ca0 64 20 3d 20 53 50 52 49 4e 54 5f 53 50 45 45 44 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 d.=.SPRINT_SPEED;........}......
13cc0 20 20 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 77 27 5d 20 7c 7c 20 6b 65 79 73 5b .....!....if.(keys['w'].||.keys[
13ce0 27 57 27 5d 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 'W']).{...-........camX.+=.forwa
13d00 72 64 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 2d 20 20 20 20 rdX.*.speed.*.deltaTime;...-....
13d20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 ....camZ.+=.forwardZ.*.speed.*.d
13d40 65 6c 74 61 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 eltaTime;........}...!....if.(ke
13d60 79 73 5b 27 73 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 53 27 5d 29 20 7b 00 00 00 2d 20 20 20 20 20 ys['s'].||.keys['S']).{...-.....
13d80 20 20 20 63 61 6d 58 20 2d 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 ...camX.-=.forwardX.*.speed.*.de
13da0 6c 74 61 54 69 6d 65 3b 00 00 00 2d 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 ltaTime;...-........camZ.-=.forw
13dc0 61 72 64 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 05 20 20 20 ardZ.*.speed.*.deltaTime;.......
13de0 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 61 27 5d 20 7c 7c 20 6b 65 79 73 5b .}...!....if.(keys['a'].||.keys[
13e00 27 41 27 5d 29 20 7b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 'A']).{...+........camX.-=.right
13e20 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 2b 20 20 20 20 20 20 X.*.speed.*.deltaTime;...+......
13e40 20 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 ..camZ.-=.rightZ.*.speed.*.delta
13e60 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 Time;........}...!....if.(keys['
13e80 64 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 44 27 5d 29 20 7b 00 00 00 2b 20 20 20 20 20 20 20 20 63 d'].||.keys['D']).{...+........c
13ea0 61 6d 58 20 2b 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d amX.+=.rightX.*.speed.*.deltaTim
13ec0 65 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 72 69 67 68 74 5a 20 2a 20 73 e;...+........camZ.+=.rightZ.*.s
13ee0 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 peed.*.deltaTime;........}......
13f00 20 20 00 00 00 25 20 20 20 20 76 65 6c 6f 63 69 74 79 59 20 2d 3d 20 47 52 41 56 49 54 59 20 2a .....%....velocityY.-=.GRAVITY.*
13f20 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 22 20 20 20 20 63 61 6d 59 20 2b 3d 20 76 65 6c 6f 63 .deltaTime;..."....camY.+=.veloc
13f40 69 74 79 59 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 04 20 20 20 20 00 00 00 40 20 20 20 ityY.*.deltaTime;...........@...
13f60 20 66 6c 6f 61 74 20 67 72 6f 75 6e 64 48 65 69 67 68 74 20 3d 20 67 65 74 48 65 69 67 68 74 41 .float.groundHeight.=.getHeightA
13f80 74 50 6f 73 69 74 69 6f 6e 28 63 61 6d 58 2c 20 63 61 6d 5a 29 20 2b 20 31 2e 30 66 3b 00 00 00 tPosition(camX,.camZ).+.1.0f;...
13fa0 1f 20 20 20 20 69 66 20 28 63 61 6d 59 20 3c 3d 20 67 72 6f 75 6e 64 48 65 69 67 68 74 29 20 7b .....if.(camY.<=.groundHeight).{
13fc0 00 00 00 1c 20 20 20 20 20 20 20 20 63 61 6d 59 20 3d 20 67 72 6f 75 6e 64 48 65 69 67 68 74 3b ............camY.=.groundHeight;
13fe0 00 00 00 19 20 20 20 20 20 20 20 20 76 65 6c 6f 63 69 74 79 59 20 3d 20 30 2e 30 66 3b 00 00 00 ............velocityY.=.0.0f;...
14000 17 20 20 20 20 20 20 20 20 69 73 4f 6e 47 72 6f 75 6e 64 20 3d 20 31 3b 00 00 00 05 20 20 20 20 .........isOnGround.=.1;........
14020 7d 00 00 00 04 20 20 20 20 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 6c 69 6d 69 74 20 3d 20 28 }...........0....float.limit.=.(
14040 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 66 29 20 2d 20 32 2e 30 66 3b 00 00 00 PLATFORM_SIZE./.2.0f).-.2.0f;...
14060 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 2d %....if.(camX.<.-limit).camX.=.-
14080 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 limit;...%....if.(camX.>..limit)
140a0 20 63 61 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 .camX.=..limit;...%....if.(camZ.
140c0 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 <.-limit).camZ.=.-limit;...%....
140e0 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 20 6c 69 6d 69 74 if.(camZ.>..limit).camZ.=..limit
14100 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 69 64 6c 65 28 29 20 7b 00 00 00 1c 20 ;....}........void.idle().{.....
14120 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 6c 61 73 74 54 69 6d 65 20 3d 20 30 3b 00 00 00 29 20 ...static.int.lastTime.=.0;...).
14140 20 20 20 69 6e 74 20 6e 6f 77 20 3d 20 67 6c 75 74 47 65 74 28 47 4c 55 54 5f 45 4c 41 50 53 45 ...int.now.=.glutGet(GLUT_ELAPSE
14160 44 5f 54 49 4d 45 29 3b 00 00 00 31 20 20 20 20 66 6c 6f 61 74 20 64 65 6c 74 61 54 69 6d 65 20 D_TIME);...1....float.deltaTime.
14180 3d 20 28 6e 6f 77 20 2d 20 6c 61 73 74 54 69 6d 65 29 20 2f 20 31 30 30 30 2e 30 66 3b 00 00 00 =.(now.-.lastTime)./.1000.0f;...
141a0 13 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 3b 00 00 00 04 20 20 20 20 00 00 00 2b .....lastTime.=.now;...........+
141c0 20 20 20 20 69 66 20 28 64 65 6c 74 61 54 69 6d 65 20 3e 20 30 2e 31 66 29 20 64 65 6c 74 61 54 ....if.(deltaTime.>.0.1f).deltaT
141e0 69 6d 65 20 3d 20 30 2e 31 66 3b 00 00 00 2e 20 20 20 20 69 66 20 28 64 65 6c 74 61 54 69 6d 65 ime.=.0.1f;........if.(deltaTime
14200 20 3c 3d 20 30 2e 30 66 29 20 64 65 6c 74 61 54 69 6d 65 20 3d 20 30 2e 30 31 36 66 3b 00 00 00 .<=.0.0f).deltaTime.=.0.016f;...
14220 04 20 20 20 20 00 00 00 16 20 20 20 20 75 70 64 61 74 65 28 64 65 6c 74 61 54 69 6d 65 29 3b 00 .............update(deltaTime);.
14240 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d .......glutPostRedisplay();....}
14260 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 .......!int.main(int.argc,.char.
14280 2a 2a 61 72 67 76 29 20 7b 00 00 00 16 20 20 20 20 73 72 61 6e 64 28 74 69 6d 65 28 4e 55 4c 4c **argv).{........srand(time(NULL
142a0 29 29 3b 00 00 00 16 20 20 20 20 67 65 6e 65 72 61 74 65 54 65 72 72 61 69 6e 28 29 3b 00 00 00 ));........generateTerrain();...
142c0 04 20 20 20 20 00 00 00 4f 20 20 20 20 66 6c 6f 61 74 20 73 74 61 72 74 48 65 69 67 68 74 20 3d ........O....float.startHeight.=
142e0 20 67 65 74 48 65 69 67 68 74 41 74 50 6f 73 69 74 69 6f 6e 28 30 2e 30 66 2c 20 30 2e 30 66 29 .getHeightAtPosition(0.0f,.0.0f)
14300 20 2b 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 2b 20 31 2e 30 66 3b 00 00 00 17 20 20 20 20 .+.PLAYER_HEIGHT.+.1.0f;........
14320 63 61 6d 59 20 3d 20 73 74 61 72 74 48 65 69 67 68 74 3b 00 00 00 04 20 20 20 20 00 00 00 1a 20 camY.=.startHeight;.............
14340 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 2c 20 61 72 67 76 29 3b 00 00 00 3d 20 20 20 ...glutInit(&argc,.argv);...=...
14360 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 .glutInitDisplayMode(GLUT_DOUBLE
14380 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 54 5f 44 45 50 54 48 29 3b 00 00 00 34 20 20 .|.GLUT_RGB.|.GLUT_DEPTH);...4..
143a0 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 ..glutInitWindowSize(WINDOW_WIDT
143c0 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 3b 00 00 00 19 20 20 20 20 67 6c 75 74 43 72 H,.WINDOW_HEIGHT);........glutCr
143e0 65 61 74 65 57 69 6e 64 6f 77 28 22 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 74 47 eateWindow("");............initG
14400 4c 28 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e 63 28 L();............glutDisplayFunc(
14420 64 69 73 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 6e 63 display);........glutReshapeFunc
14440 28 72 65 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 (reshape);...#....glutKeyboardFu
14460 6e 63 28 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 nc(keyboardDown);...#....glutKey
14480 62 6f 61 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 25 20 20 20 20 boardUpFunc(keyboardUp);...%....
144a0 67 6c 75 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 6d 6f 75 73 65 4d 6f 76 65 29 glutPassiveMotionFunc(mouseMove)
144c0 3b 00 00 00 1e 20 20 20 20 67 6c 75 74 4d 6f 75 73 65 46 75 6e 63 28 6d 6f 75 73 65 43 6c 69 63 ;........glutMouseFunc(mouseClic
144e0 6b 29 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b 00 00 k);........glutIdleFunc(idle);..
14500 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c 55 54 .........$....glutSetCursor(GLUT
14520 5f 43 55 52 53 4f 52 5f 4e 4f 4e 45 29 3b 00 00 00 39 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f _CURSOR_NONE);...9....glutWarpPo
14540 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f 57 5f 48 inter(WINDOW_WIDTH./.2,.WINDOW_H
14560 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 6e 4c EIGHT./.2);............glutMainL
14580 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 oop();........return.0;....}5...
145a0 00 00 00 00 00 00 00 00 00 00 00 00 c5 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
145c0 00 00 00 00 df 2f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 12 00 00 00 14 ...../..............5._.........
145e0 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 ................................
14600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 fc 74 04 01 ..........................j..t..
14760 00 00 00 10 00 f5 18 00 00 01 b1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 20 20 67 ...............................g
14780 6c 75 74 4b 65 79 62 6f 61 f5 18 00 00 01 b2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 lutKeyboa.......................
147a0 15 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 20 20 20 20 67 f5 18 00 00 01 16 00 00 00 00 .....................g..........
147c0 00 00 00 00 00 00 00 00 f5 18 00 00 00 8b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 ................................
147e0 f5 18 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14800 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 ..........................5.....
14820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8b 00 00 00 02 00 00 00 00 00 00 00 00 00 ................................
14840 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 8b 00 00 00 02 00 00 00 ................................
14860 00 00 00 00 00 00 00 00 8a 00 00 00 05 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14880 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 15 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 9c 00 ................................
148a0 00 00 0e 00 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 ................................
148c0 00 00 00 00 b1 01 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00 f7 2f 00 00 ............................./..
148e0 00 00 00 00 00 00 00 00 00 00 00 00 fb 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 13 00 00 00 15 ....................5._.........
14900 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
14920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 fd d2 04 01 ..........................j.....
14a80 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 bc 00 00 00 14 23 69 6e 63 6c ...........................#incl
14aa0 75 64 65 20 3c 47 4c 2f 67 6c 75 74 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 ude.<GL/glut.h>....#include.<mat
14ac0 68 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 11 23 h.h>....#include.<stdlib.h>....#
14ae0 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e 65 20 include.<time.h>........#define.
14b00 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 20 20 31 30 32 34 00 00 00 1a 23 64 65 66 69 6e 65 20 57 WINDOW_WIDTH...1024....#define.W
14b20 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 20 37 36 38 00 00 00 19 23 64 65 66 69 6e 65 20 50 4c 41 INDOW_HEIGHT..768....#define.PLA
14b40 54 46 4f 52 4d 5f 53 49 5a 45 20 20 36 30 00 00 00 1a 23 64 65 66 69 6e 65 20 52 45 4e 44 45 52 TFORM_SIZE..60....#define.RENDER
14b60 5f 44 49 53 54 41 4e 43 45 20 34 30 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 56 45 5f 53 50 45 _DISTANCE.40....#define.MOVE_SPE
14b80 45 44 20 20 20 20 20 38 2e 30 66 00 00 00 1c 23 64 65 66 69 6e 65 20 53 50 52 49 4e 54 5f 53 50 ED.....8.0f....#define.SPRINT_SP
14ba0 45 45 44 20 20 20 31 33 2e 30 66 00 00 00 1b 23 64 65 66 69 6e 65 20 4d 4f 55 53 45 5f 53 45 4e EED...13.0f....#define.MOUSE_SEN
14bc0 53 20 20 20 20 20 30 2e 32 66 00 00 00 1c 23 64 65 66 69 6e 65 20 50 4c 41 59 45 52 5f 48 45 49 S.....0.2f....#define.PLAYER_HEI
14be0 47 48 54 20 20 31 2e 36 32 66 00 00 00 1c 23 64 65 66 69 6e 65 20 47 52 41 56 49 54 59 20 20 20 GHT..1.62f....#define.GRAVITY...
14c00 20 20 20 20 20 32 30 2e 30 66 00 00 00 1b 23 64 65 66 69 6e 65 20 4a 55 4d 50 5f 46 4f 52 43 45 .....20.0f....#define.JUMP_FORCE
14c20 20 20 20 20 20 38 2e 30 66 00 00 00 00 00 00 00 35 66 6c 6f 61 74 20 63 61 6d 58 20 3d 20 30 2e .....8.0f.......5float.camX.=.0.
14c40 30 66 2c 20 63 61 6d 59 20 3d 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 2c 20 63 61 6d 5a 20 3d 0f,.camY.=.PLAYER_HEIGHT,.camZ.=
14c60 20 30 2e 30 66 3b 00 00 00 17 66 6c 6f 61 74 20 76 65 6c 6f 63 69 74 79 59 20 3d 20 30 2e 30 66 .0.0f;....float.velocityY.=.0.0f
14c80 3b 00 00 00 1f 66 6c 6f 61 74 20 79 61 77 20 3d 20 30 2e 30 66 2c 20 70 69 74 63 68 20 3d 20 30 ;....float.yaw.=.0.0f,.pitch.=.0
14ca0 2e 30 66 3b 00 00 00 0e 69 6e 74 20 6b 65 79 73 5b 32 35 36 5d 3b 00 00 00 16 69 6e 74 20 6d 6f .0f;....int.keys[256];....int.mo
14cc0 75 73 65 43 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 13 69 6e 74 20 69 73 4f 6e 47 72 6f 75 useCaptured.=.0;....int.isOnGrou
14ce0 6e 64 20 3d 20 31 3b 00 00 00 00 00 00 00 32 66 6c 6f 61 74 20 74 65 72 72 61 69 6e 48 65 69 67 nd.=.1;.......2float.terrainHeig
14d00 68 74 5b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 5d 5b 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 5d ht[PLATFORM_SIZE][PLATFORM_SIZE]
14d20 3b 00 00 00 18 69 6e 74 20 64 69 73 70 6c 61 79 4c 69 73 74 42 61 73 65 20 3d 20 30 3b 00 00 00 ;....int.displayListBase.=.0;...
14d40 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 12 20 20 20 20 66 6c 6f .....typedef.struct.{........flo
14d60 61 74 20 72 2c 20 67 2c 20 62 3b 00 00 00 08 7d 20 43 6f 6c 6f 72 3b 00 00 00 00 00 00 00 27 43 at.r,.g,.b;....}.Color;.......'C
14d80 6f 6c 6f 72 20 67 72 61 73 73 54 6f 70 20 3d 20 7b 30 2e 32 35 66 2c 20 30 2e 37 35 66 2c 20 30 olor.grassTop.=.{0.25f,.0.75f,.0
14da0 2e 31 35 66 7d 3b 00 00 00 28 43 6f 6c 6f 72 20 67 72 61 73 73 53 69 64 65 20 3d 20 7b 30 2e 35 .15f};...(Color.grassSide.=.{0.5
14dc0 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 30 66 7d 3b 00 00 00 2a 43 6f 6c 6f 72 20 67 72 61 73 0f,.0.35f,.0.10f};...*Color.gras
14de0 73 42 6f 74 74 6f 6d 20 3d 20 7b 30 2e 34 30 66 2c 20 30 2e 32 35 66 2c 20 30 2e 30 38 66 7d 3b sBottom.=.{0.40f,.0.25f,.0.08f};
14e00 00 00 00 27 43 6f 6c 6f 72 20 73 74 6f 6e 65 54 6f 70 20 3d 20 7b 30 2e 35 30 66 2c 20 30 2e 35 ...'Color.stoneTop.=.{0.50f,.0.5
14e20 30 66 2c 20 30 2e 35 30 66 7d 3b 00 00 00 28 43 6f 6c 6f 72 20 73 74 6f 6e 65 53 69 64 65 20 3d 0f,.0.50f};...(Color.stoneSide.=
14e40 20 7b 30 2e 34 35 66 2c 20 30 2e 34 35 66 2c 20 30 2e 34 35 66 7d 3b 00 00 00 2a 43 6f 6c 6f 72 .{0.45f,.0.45f,.0.45f};...*Color
14e60 20 73 74 6f 6e 65 42 6f 74 74 6f 6d 20 3d 20 7b 30 2e 33 35 66 2c 20 30 2e 33 35 66 2c 20 30 2e .stoneBottom.=.{0.35f,.0.35f,.0.
14e80 33 35 66 7d 3b 00 00 00 26 43 6f 6c 6f 72 20 64 69 72 74 54 6f 70 20 3d 20 7b 30 2e 35 35 66 2c 35f};...&Color.dirtTop.=.{0.55f,
14ea0 20 30 2e 34 30 66 2c 20 30 2e 32 30 66 7d 3b 00 00 00 27 43 6f 6c 6f 72 20 64 69 72 74 53 69 64 .0.40f,.0.20f};...'Color.dirtSid
14ec0 65 20 3d 20 7b 30 2e 35 30 66 2c 20 30 2e 33 35 66 2c 20 30 2e 31 38 66 7d 3b 00 00 00 29 43 6f e.=.{0.50f,.0.35f,.0.18f};...)Co
14ee0 6c 6f 72 20 64 69 72 74 42 6f 74 74 6f 6d 20 3d 20 7b 30 2e 34 30 66 2c 20 30 2e 32 38 66 2c 20 lor.dirtBottom.=.{0.40f,.0.28f,.
14f00 30 2e 31 35 66 7d 3b 00 00 00 26 43 6f 6c 6f 72 20 73 61 6e 64 54 6f 70 20 3d 20 7b 30 2e 38 35 0.15f};...&Color.sandTop.=.{0.85
14f20 66 2c 20 30 2e 38 30 66 2c 20 30 2e 35 30 66 7d 3b 00 00 00 27 43 6f 6c 6f 72 20 73 61 6e 64 53 f,.0.80f,.0.50f};...'Color.sandS
14f40 69 64 65 20 3d 20 7b 30 2e 37 35 66 2c 20 30 2e 37 30 66 2c 20 30 2e 34 30 66 7d 3b 00 00 00 29 ide.=.{0.75f,.0.70f,.0.40f};...)
14f60 43 6f 6c 6f 72 20 73 61 6e 64 42 6f 74 74 6f 6d 20 3d 20 7b 30 2e 36 35 66 2c 20 30 2e 36 30 66 Color.sandBottom.=.{0.65f,.0.60f
14f80 2c 20 30 2e 33 35 66 7d 3b 00 00 00 00 00 00 00 1b 66 6c 6f 61 74 20 6e 6f 69 73 65 28 69 6e 74 ,.0.35f};........float.noise(int
14fa0 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 17 20 20 20 20 69 6e 74 20 6e 20 3d 20 78 20 2b 20 .x,.int.y).{........int.n.=.x.+.
14fc0 79 20 2a 20 35 37 3b 00 00 00 16 20 20 20 20 6e 20 3d 20 28 6e 20 3c 3c 20 31 33 29 20 5e 20 6e y.*.57;........n.=.(n.<<.13).^.n
14fe0 3b 00 00 00 5f 20 20 20 20 72 65 74 75 72 6e 20 28 31 2e 30 66 20 2d 20 28 28 6e 20 2a 20 28 6e ;..._....return.(1.0f.-.((n.*.(n
15000 20 2a 20 6e 20 2a 20 31 35 37 33 31 20 2b 20 37 38 39 32 32 31 29 20 2b 20 31 33 37 36 33 31 32 .*.n.*.15731.+.789221).+.1376312
15020 35 38 39 29 20 26 20 30 78 37 66 66 66 66 66 66 66 29 20 2f 20 31 30 37 33 37 34 31 38 32 34 2e 589).&.0x7fffffff)./.1073741824.
15040 30 66 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 66 6c 6f 61 74 20 73 6d 6f 6f 74 68 4e 6f 69 0f);....}.......!float.smoothNoi
15060 73 65 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 64 20 20 20 20 66 6c 6f 61 74 20 se(int.x,.int.y).{...d....float.
15080 63 6f 72 6e 65 72 73 20 3d 20 28 6e 6f 69 73 65 28 78 2d 31 2c 20 79 2d 31 29 20 2b 20 6e 6f 69 corners.=.(noise(x-1,.y-1).+.noi
150a0 73 65 28 78 2b 31 2c 20 79 2d 31 29 20 2b 20 6e 6f 69 73 65 28 78 2d 31 2c 20 79 2b 31 29 20 2b se(x+1,.y-1).+.noise(x-1,.y+1).+
150c0 20 6e 6f 69 73 65 28 78 2b 31 2c 20 79 2b 31 29 29 20 2f 20 31 36 2e 30 66 3b 00 00 00 59 20 20 .noise(x+1,.y+1))./.16.0f;...Y..
150e0 20 20 66 6c 6f 61 74 20 73 69 64 65 73 20 3d 20 28 6e 6f 69 73 65 28 78 2d 31 2c 20 79 29 20 2b ..float.sides.=.(noise(x-1,.y).+
15100 20 6e 6f 69 73 65 28 78 2b 31 2c 20 79 29 20 2b 20 6e 6f 69 73 65 28 78 2c 20 79 2d 31 29 20 2b .noise(x+1,.y).+.noise(x,.y-1).+
15120 20 6e 6f 69 73 65 28 78 2c 20 79 2b 31 29 29 20 2f 20 38 2e 30 66 3b 00 00 00 26 20 20 20 20 66 .noise(x,.y+1))./.8.0f;...&....f
15140 6c 6f 61 74 20 63 65 6e 74 65 72 20 3d 20 6e 6f 69 73 65 28 78 2c 20 79 29 20 2f 20 34 2e 30 66 loat.center.=.noise(x,.y)./.4.0f
15160 3b 00 00 00 24 20 20 20 20 72 65 74 75 72 6e 20 63 6f 72 6e 65 72 73 20 2b 20 73 69 64 65 73 20 ;...$....return.corners.+.sides.
15180 2b 20 63 65 6e 74 65 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2b 66 6c 6f 61 74 20 69 6e 74 65 +.center;....}.......+float.inte
151a0 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 79 29 20 rpolatedNoise(float.x,.float.y).
151c0 7b 00 00 00 16 20 20 20 20 69 6e 74 20 69 6e 74 58 20 3d 20 28 69 6e 74 29 78 3b 00 00 00 1b 20 {........int.intX.=.(int)x;.....
151e0 20 20 20 66 6c 6f 61 74 20 66 72 61 63 58 20 3d 20 78 20 2d 20 69 6e 74 58 3b 00 00 00 16 20 20 ...float.fracX.=.x.-.intX;......
15200 20 20 69 6e 74 20 69 6e 74 59 20 3d 20 28 69 6e 74 29 79 3b 00 00 00 1b 20 20 20 20 66 6c 6f 61 ..int.intY.=.(int)y;........floa
15220 74 20 66 72 61 63 59 20 3d 20 79 20 2d 20 69 6e 74 59 3b 00 00 00 04 20 20 20 20 00 00 00 27 20 t.fracY.=.y.-.intY;...........'.
15240 20 20 20 66 6c 6f 61 74 20 76 31 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e 74 58 2c 20 ...float.v1.=.smoothNoise(intX,.
15260 69 6e 74 59 29 3b 00 00 00 2b 20 20 20 20 66 6c 6f 61 74 20 76 32 20 3d 20 73 6d 6f 6f 74 68 4e intY);...+....float.v2.=.smoothN
15280 6f 69 73 65 28 69 6e 74 58 20 2b 20 31 2c 20 69 6e 74 59 29 3b 00 00 00 2b 20 20 20 20 66 6c 6f oise(intX.+.1,.intY);...+....flo
152a0 61 74 20 76 33 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 73 65 28 69 6e 74 58 2c 20 69 6e 74 59 20 2b at.v3.=.smoothNoise(intX,.intY.+
152c0 20 31 29 3b 00 00 00 2f 20 20 20 20 66 6c 6f 61 74 20 76 34 20 3d 20 73 6d 6f 6f 74 68 4e 6f 69 .1);.../....float.v4.=.smoothNoi
152e0 73 65 28 69 6e 74 58 20 2b 20 31 2c 20 69 6e 74 59 20 2b 20 31 29 3b 00 00 00 04 20 20 20 20 00 se(intX.+.1,.intY.+.1);.........
15300 00 00 26 20 20 20 20 66 6c 6f 61 74 20 69 31 20 3d 20 76 31 20 2b 20 28 76 32 20 2d 20 76 31 29 ..&....float.i1.=.v1.+.(v2.-.v1)
15320 20 2a 20 66 72 61 63 58 3b 00 00 00 26 20 20 20 20 66 6c 6f 61 74 20 69 32 20 3d 20 76 33 20 2b .*.fracX;...&....float.i2.=.v3.+
15340 20 28 76 34 20 2d 20 76 33 29 20 2a 20 66 72 61 63 58 3b 00 00 00 04 20 20 20 20 00 00 00 22 20 .(v4.-.v3).*.fracX;...........".
15360 20 20 20 72 65 74 75 72 6e 20 69 31 20 2b 20 28 69 32 20 2d 20 69 31 29 20 2a 20 66 72 61 63 59 ...return.i1.+.(i2.-.i1).*.fracY
15380 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 66 6c 6f 61 74 20 67 65 74 54 65 72 72 61 69 6e 48 65 ;....}.......&float.getTerrainHe
153a0 69 67 68 74 28 69 6e 74 20 78 2c 20 69 6e 74 20 7a 29 20 7b 00 00 00 18 20 20 20 20 66 6c 6f 61 ight(int.x,.int.z).{........floa
153c0 74 20 73 63 61 6c 65 20 3d 20 30 2e 30 34 66 3b 00 00 00 42 20 20 20 20 66 6c 6f 61 74 20 68 65 t.scale.=.0.04f;...B....float.he
153e0 69 67 68 74 20 3d 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 78 20 2a 20 73 63 61 ight.=.interpolatedNoise(x.*.sca
15400 6c 65 2c 20 7a 20 2a 20 73 63 61 6c 65 29 20 2a 20 35 2e 30 66 3b 00 00 00 45 20 20 20 20 68 65 le,.z.*.scale).*.5.0f;...E....he
15420 69 67 68 74 20 2b 3d 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 4e 6f 69 73 65 28 78 20 2a 20 73 63 ight.+=.interpolatedNoise(x.*.sc
15440 61 6c 65 20 2a 20 32 2c 20 7a 20 2a 20 73 63 61 6c 65 20 2a 20 32 29 20 2a 20 32 2e 35 66 3b 00 ale.*.2,.z.*.scale.*.2).*.2.5f;.
15460 00 00 04 20 20 20 20 00 00 00 43 20 20 20 20 66 6c 6f 61 74 20 64 69 73 74 46 72 6f 6d 43 65 6e ..........C....float.distFromCen
15480 74 65 72 20 3d 20 73 71 72 74 66 28 78 2a 78 20 2b 20 7a 2a 7a 29 20 2f 20 28 50 4c 41 54 46 4f ter.=.sqrtf(x*x.+.z*z)./.(PLATFO
154a0 52 4d 5f 53 49 5a 45 2f 32 2e 30 66 29 3b 00 00 00 20 20 20 20 20 69 66 20 28 64 69 73 74 46 72 RM_SIZE/2.0f);........if.(distFr
154c0 6f 6d 43 65 6e 74 65 72 20 3e 20 30 2e 37 66 29 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 68 65 omCenter.>.0.7f).{...1........he
154e0 69 67 68 74 20 2d 3d 20 28 64 69 73 74 46 72 6f 6d 43 65 6e 74 65 72 20 2d 20 30 2e 37 66 29 20 ight.-=.(distFromCenter.-.0.7f).
15500 2a 20 38 2e 30 66 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 12 20 20 20 20 *.8.0f;........}................
15520 72 65 74 75 72 6e 20 68 65 69 67 68 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 18 76 6f 69 64 20 return.height;....}........void.
15540 67 65 6e 65 72 61 74 65 54 65 72 72 61 69 6e 28 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 generateTerrain().{...!....int.h
15560 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 3b 00 00 00 2d 20 20 20 20 alf.=.PLATFORM_SIZE./.2;...-....
15580 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a for.(int.i.=.0;.i.<.PLATFORM_SIZ
155a0 45 3b 20 69 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 E;.i++).{...1........for.(int.j.
155c0 3d 20 30 3b 20 6a 20 3c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 3b 20 6a 2b 2b 29 20 7b 00 00 =.0;.j.<.PLATFORM_SIZE;.j++).{..
155e0 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 6c 64 58 20 3d 20 69 20 2d 20 68 ."............int.worldX.=.i.-.h
15600 61 6c 66 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 6c 64 5a 20 3d alf;..."............int.worldZ.=
15620 20 6a 20 2d 20 68 61 6c 66 3b 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 72 61 69 .j.-.half;...C............terrai
15640 6e 48 65 69 67 68 74 5b 69 5d 5b 6a 5d 20 3d 20 67 65 74 54 65 72 72 61 69 6e 48 65 69 67 68 74 nHeight[i][j].=.getTerrainHeight
15660 28 77 6f 72 6c 64 58 2c 20 77 6f 72 6c 64 5a 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 (worldX,.worldZ);............}..
15680 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2d 66 6c 6f 61 74 20 67 65 74 48 65 69 ......}....}.......-float.getHei
156a0 67 68 74 41 74 50 6f 73 69 74 69 6f 6e 28 66 6c 6f 61 74 20 78 2c 20 66 6c 6f 61 74 20 7a 29 20 ghtAtPosition(float.x,.float.z).
156c0 7b 00 00 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a {...!....int.half.=.PLATFORM_SIZ
156e0 45 20 2f 20 32 3b 00 00 00 20 20 20 20 20 69 6e 74 20 67 72 69 64 58 20 3d 20 28 69 6e 74 29 28 E./.2;........int.gridX.=.(int)(
15700 78 20 2b 20 68 61 6c 66 29 3b 00 00 00 20 20 20 20 20 69 6e 74 20 67 72 69 64 5a 20 3d 20 28 69 x.+.half);........int.gridZ.=.(i
15720 6e 74 29 28 7a 20 2b 20 68 61 6c 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 5d 20 20 20 20 69 66 nt)(z.+.half);...........]....if
15740 20 28 67 72 69 64 58 20 3c 20 30 20 7c 7c 20 67 72 69 64 58 20 3e 3d 20 50 4c 41 54 46 4f 52 4d .(gridX.<.0.||.gridX.>=.PLATFORM
15760 5f 53 49 5a 45 20 2d 20 31 20 7c 7c 20 67 72 69 64 5a 20 3c 20 30 20 7c 7c 20 67 72 69 64 5a 20 _SIZE.-.1.||.gridZ.<.0.||.gridZ.
15780 3e 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2d 20 31 29 20 7b 00 00 00 14 20 20 20 20 20 >=.PLATFORM_SIZE.-.1).{.........
157a0 20 20 20 72 65 74 75 72 6e 20 30 2e 30 66 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 ...return.0.0f;........}........
157c0 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 66 72 61 63 58 20 3d 20 28 78 20 2b 20 68 61 6c 66 29 ...%....float.fracX.=.(x.+.half)
157e0 20 2d 20 67 72 69 64 58 3b 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 66 72 61 63 5a 20 3d 20 28 .-.gridX;...%....float.fracZ.=.(
15800 7a 20 2b 20 68 61 6c 66 29 20 2d 20 67 72 69 64 5a 3b 00 00 00 04 20 20 20 20 00 00 00 2c 20 20 z.+.half).-.gridZ;...........,..
15820 20 20 66 6c 6f 61 74 20 68 30 30 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 69 64 ..float.h00.=.terrainHeight[grid
15840 58 5d 5b 67 72 69 64 5a 5d 3b 00 00 00 2e 20 20 20 20 66 6c 6f 61 74 20 68 31 30 20 3d 20 74 65 X][gridZ];........float.h10.=.te
15860 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 69 64 58 2b 31 5d 5b 67 72 69 64 5a 5d 3b 00 00 00 2e rrainHeight[gridX+1][gridZ];....
15880 20 20 20 20 66 6c 6f 61 74 20 68 30 31 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 ....float.h01.=.terrainHeight[gr
158a0 69 64 58 5d 5b 67 72 69 64 5a 2b 31 5d 3b 00 00 00 30 20 20 20 20 66 6c 6f 61 74 20 68 31 31 20 idX][gridZ+1];...0....float.h11.
158c0 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 67 72 69 64 58 2b 31 5d 5b 67 72 69 64 5a 2b 31 =.terrainHeight[gridX+1][gridZ+1
158e0 5d 3b 00 00 00 04 20 20 20 20 00 00 00 29 20 20 20 20 66 6c 6f 61 74 20 68 30 20 3d 20 68 30 30 ];...........)....float.h0.=.h00
15900 20 2b 20 28 68 31 30 20 2d 20 68 30 30 29 20 2a 20 66 72 61 63 58 3b 00 00 00 29 20 20 20 20 66 .+.(h10.-.h00).*.fracX;...)....f
15920 6c 6f 61 74 20 68 31 20 3d 20 68 30 31 20 2b 20 28 68 31 31 20 2d 20 68 30 31 29 20 2a 20 66 72 loat.h1.=.h01.+.(h11.-.h01).*.fr
15940 61 63 58 3b 00 00 00 04 20 20 20 20 00 00 00 22 20 20 20 20 72 65 74 75 72 6e 20 68 30 20 2b 20 acX;..........."....return.h0.+.
15960 28 68 31 20 2d 20 68 30 29 20 2a 20 66 72 61 63 5a 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0f 76 (h1.-.h0).*.fracZ;....}........v
15980 6f 69 64 20 69 6e 69 74 47 4c 28 29 20 7b 00 00 00 2c 20 20 20 20 67 6c 43 6c 65 61 72 43 6f 6c oid.initGL().{...,....glClearCol
159a0 6f 72 28 30 2e 35 33 66 2c 20 30 2e 38 31 66 2c 20 30 2e 39 38 66 2c 20 31 2e 30 66 29 3b 00 00 or(0.53f,.0.81f,.0.98f,.1.0f);..
159c0 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 ......glEnable(GL_DEPTH_TEST);..
159e0 00 1a 20 20 20 20 67 6c 53 68 61 64 65 4d 6f 64 65 6c 28 47 4c 5f 46 4c 41 54 29 3b 00 00 00 04 ......glShadeModel(GL_FLAT);....
15a00 20 20 20 20 00 00 00 31 20 20 20 20 47 4c 66 6c 6f 61 74 20 61 6d 62 69 65 6e 74 5b 5d 20 3d 20 .......1....GLfloat.ambient[].=.
15a20 7b 30 2e 37 66 2c 20 30 2e 37 66 2c 20 30 2e 37 66 2c 20 31 2e 30 66 7d 3b 00 00 00 31 20 20 20 {0.7f,.0.7f,.0.7f,.1.0f};...1...
15a40 20 47 4c 66 6c 6f 61 74 20 64 69 66 66 75 73 65 5b 5d 20 3d 20 7b 30 2e 39 66 2c 20 30 2e 39 66 .GLfloat.diffuse[].=.{0.9f,.0.9f
15a60 2c 20 30 2e 38 66 2c 20 31 2e 30 66 7d 3b 00 00 00 34 20 20 20 20 47 4c 66 6c 6f 61 74 20 6c 69 ,.0.8f,.1.0f};...4....GLfloat.li
15a80 67 68 74 50 6f 73 5b 5d 20 3d 20 7b 30 2e 30 66 2c 20 31 30 30 2e 30 66 2c 20 30 2e 30 66 2c 20 ghtPos[].=.{0.0f,.100.0f,.0.0f,.
15aa0 31 2e 30 66 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 1.0f};............glEnable(GL_LI
15ac0 47 48 54 49 4e 47 29 3b 00 00 00 18 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 GHTING);........glEnable(GL_LIGH
15ae0 54 30 29 3b 00 00 00 2e 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c T0);........glLightfv(GL_LIGHT0,
15b00 20 47 4c 5f 41 4d 42 49 45 4e 54 2c 20 61 6d 62 69 65 6e 74 29 3b 00 00 00 2e 20 20 20 20 67 6c .GL_AMBIENT,.ambient);........gl
15b20 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 48 54 30 2c 20 47 4c 5f 44 49 46 46 55 53 45 2c 20 64 Lightfv(GL_LIGHT0,.GL_DIFFUSE,.d
15b40 69 66 66 75 73 65 29 3b 00 00 00 30 20 20 20 20 67 6c 4c 69 67 68 74 66 76 28 47 4c 5f 4c 49 47 iffuse);...0....glLightfv(GL_LIG
15b60 48 54 30 2c 20 47 4c 5f 50 4f 53 49 54 49 4f 4e 2c 20 6c 69 67 68 74 50 6f 73 29 3b 00 00 00 20 HT0,.GL_POSITION,.lightPos);....
15b80 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 43 4f 4c 4f 52 5f 4d 41 54 45 52 49 41 4c 29 3b ....glEnable(GL_COLOR_MATERIAL);
15ba0 00 00 00 36 20 20 20 20 67 6c 43 6f 6c 6f 72 4d 61 74 65 72 69 61 6c 28 47 4c 5f 46 52 4f 4e 54 ...6....glColorMaterial(GL_FRONT
15bc0 2c 20 47 4c 5f 41 4d 42 49 45 4e 54 5f 41 4e 44 5f 44 49 46 46 55 53 45 29 3b 00 00 00 01 7d 00 ,.GL_AMBIENT_AND_DIFFUSE);....}.
15be0 00 00 00 00 00 00 48 76 6f 69 64 20 64 72 61 77 42 6c 6f 63 6b 46 61 63 65 28 66 6c 6f 61 74 20 ......Hvoid.drawBlockFace(float.
15c00 78 2c 20 66 6c 6f 61 74 20 79 2c 20 66 6c 6f 61 74 20 7a 2c 20 66 6c 6f 61 74 20 73 69 7a 65 2c x,.float.y,.float.z,.float.size,
15c20 20 43 6f 6c 6f 72 20 63 6f 6c 6f 72 29 20 7b 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 73 20 3d .Color.color).{........float.s.=
15c40 20 73 69 7a 65 20 2f 20 32 2e 30 66 3b 00 00 00 04 20 20 20 20 00 00 00 29 20 20 20 20 67 6c 43 .size./.2.0f;...........)....glC
15c60 6f 6c 6f 72 33 66 28 63 6f 6c 6f 72 2e 72 2c 20 63 6f 6c 6f 72 2e 67 2c 20 63 6f 6c 6f 72 2e 62 olor3f(color.r,.color.g,.color.b
15c80 29 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 51 55 41 );................glBegin(GL_QUA
15ca0 44 53 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 DS);...$....glVertex3f(x.-.s,.y.
15cc0 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 +.s,.z.-.s);...$....glVertex3f(x
15ce0 20 2b 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 .+.s,.y.+.s,.z.-.s);...$....glVe
15d00 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 rtex3f(x.+.s,.y.+.s,.z.+.s);...$
15d20 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b ....glVertex3f(x.-.s,.y.+.s,.z.+
15d40 20 73 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 .s);...........$....glVertex3f(x
15d60 20 2d 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 .-.s,.y.-.s,.z.+.s);...$....glVe
15d80 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 rtex3f(x.+.s,.y.-.s,.z.+.s);...$
15da0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2d ....glVertex3f(x.+.s,.y.-.s,.z.-
15dc0 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 .s);...$....glVertex3f(x.-.s,.y.
15de0 2d 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 56 65 -.s,.z.-.s);...........$....glVe
15e00 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 rtex3f(x.-.s,.y.-.s,.z.-.s);...$
15e20 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2d ....glVertex3f(x.+.s,.y.-.s,.z.-
15e40 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 .s);...$....glVertex3f(x.+.s,.y.
15e60 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 +.s,.z.-.s);...$....glVertex3f(x
15e80 20 2d 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 .-.s,.y.+.s,.z.-.s);...........$
15ea0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2b ....glVertex3f(x.+.s,.y.-.s,.z.+
15ec0 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 .s);...$....glVertex3f(x.-.s,.y.
15ee0 2d 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 -.s,.z.+.s);...$....glVertex3f(x
15f00 20 2d 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 .-.s,.y.+.s,.z.+.s);...$....glVe
15f20 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 04 rtex3f(x.+.s,.y.+.s,.z.+.s);....
15f40 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 .......$....glVertex3f(x.-.s,.y.
15f60 2d 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 -.s,.z.+.s);...$....glVertex3f(x
15f80 20 2d 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 .-.s,.y.-.s,.z.-.s);...$....glVe
15fa0 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 rtex3f(x.-.s,.y.+.s,.z.-.s);...$
15fc0 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2d 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b ....glVertex3f(x.-.s,.y.+.s,.z.+
15fe0 20 73 29 3b 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 .s);...........$....glVertex3f(x
16000 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 .+.s,.y.-.s,.z.-.s);...$....glVe
16020 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2d 20 73 2c 20 7a 20 2b 20 73 29 3b 00 00 00 24 rtex3f(x.+.s,.y.-.s,.z.+.s);...$
16040 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 2b 20 73 2c 20 7a 20 2b ....glVertex3f(x.+.s,.y.+.s,.z.+
16060 20 73 29 3b 00 00 00 24 20 20 20 20 67 6c 56 65 72 74 65 78 33 66 28 78 20 2b 20 73 2c 20 79 20 .s);...$....glVertex3f(x.+.s,.y.
16080 2b 20 73 2c 20 7a 20 2d 20 73 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 01 +.s,.z.-.s);........glEnd();....
160a0 7d 00 00 00 00 00 00 00 15 76 6f 69 64 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 20 7b 00 00 }........void.drawPlatform().{..
160c0 00 21 20 20 20 20 69 6e 74 20 68 61 6c 66 20 3d 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f .!....int.half.=.PLATFORM_SIZE./
160e0 20 32 3b 00 00 00 26 20 20 20 20 69 6e 74 20 63 61 6d 47 72 69 64 58 20 3d 20 28 69 6e 74 29 28 .2;...&....int.camGridX.=.(int)(
16100 63 61 6d 58 20 2b 20 68 61 6c 66 29 3b 00 00 00 26 20 20 20 20 69 6e 74 20 63 61 6d 47 72 69 64 camX.+.half);...&....int.camGrid
16120 5a 20 3d 20 28 69 6e 74 29 28 63 61 6d 5a 20 2b 20 68 61 6c 66 29 3b 00 00 00 04 20 20 20 20 00 Z.=.(int)(camZ.+.half);.........
16140 00 00 2d 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 50 4c 41 54 46 ..-....for.(int.i.=.0;.i.<.PLATF
16160 4f 52 4d 5f 53 49 5a 45 3b 20 69 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 66 6f 72 20 ORM_SIZE;.i++).{...1........for.
16180 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 3b 20 6a (int.j.=.0;.j.<.PLATFORM_SIZE;.j
161a0 2b 2b 29 20 7b 00 00 00 5d 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 61 62 73 28 69 20 2d ++).{...]............if.(abs(i.-
161c0 20 63 61 6d 47 72 69 64 58 29 20 3e 20 52 45 4e 44 45 52 5f 44 49 53 54 41 4e 43 45 20 7c 7c 20 .camGridX).>.RENDER_DISTANCE.||.
161e0 61 62 73 28 6a 20 2d 20 63 61 6d 47 72 69 64 5a 29 20 3e 20 52 45 4e 44 45 52 5f 44 49 53 54 41 abs(j.-.camGridZ).>.RENDER_DISTA
16200 4e 43 45 29 20 7b 00 00 00 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e NCE).{....................contin
16220 75 65 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 20 20 20 20 ue;................}............
16240 20 20 20 20 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f 72 6c 64 58 20 3d ......."............int.worldX.=
16260 20 69 20 2d 20 68 61 6c 66 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 77 6f .i.-.half;..."............int.wo
16280 72 6c 64 5a 20 3d 20 6a 20 2d 20 68 61 6c 66 3b 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 rldZ.=.j.-.half;.../............
162a0 66 6c 6f 61 74 20 68 65 69 67 68 74 20 3d 20 74 65 72 72 61 69 6e 48 65 69 67 68 74 5b 69 5d 5b float.height.=.terrainHeight[i][
162c0 6a 5d 3b 00 00 00 31 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 62 61 73 65 48 65 69 67 68 j];...1............int.baseHeigh
162e0 74 20 3d 20 28 69 6e 74 29 66 6c 6f 6f 72 66 28 68 65 69 67 68 74 29 3b 00 00 00 0c 20 20 20 20 t.=.(int)floorf(height);........
16300 20 20 20 20 20 20 20 20 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6c 6f 72 20 74 6f ...........3............Color.to
16320 70 43 6f 6c 6f 72 2c 20 73 69 64 65 43 6f 6c 6f 72 2c 20 62 6f 74 74 6f 6d 43 6f 6c 6f 72 3b 00 pColor,.sideColor,.bottomColor;.
16340 00 00 0c 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 69 ...............................i
16360 66 20 28 68 65 69 67 68 74 20 3c 20 31 2e 30 66 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 20 f.(height.<.1.0f).{...#.........
16380 20 20 20 20 20 20 20 74 6f 70 43 6f 6c 6f 72 20 3d 20 73 61 6e 64 54 6f 70 3b 00 00 00 25 20 20 .......topColor.=.sandTop;...%..
163a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 64 65 43 6f 6c 6f 72 20 3d 20 73 61 6e 64 53 69 ..............sideColor.=.sandSi
163c0 64 65 3b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 74 74 6f 6d 43 6f 6c de;...)................bottomCol
163e0 6f 72 20 3d 20 73 61 6e 64 42 6f 74 74 6f 6d 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 or.=.sandBottom;................
16400 7d 20 65 6c 73 65 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 70 43 }.else.{...$................topC
16420 6f 6c 6f 72 20 3d 20 67 72 61 73 73 54 6f 70 3b 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 olor.=.grassTop;...&............
16440 20 20 20 20 73 69 64 65 43 6f 6c 6f 72 20 3d 20 67 72 61 73 73 53 69 64 65 3b 00 00 00 2a 20 20 ....sideColor.=.grassSide;...*..
16460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 74 74 6f 6d 43 6f 6c 6f 72 20 3d 20 67 72 61 73 ..............bottomColor.=.gras
16480 73 42 6f 74 74 6f 6d 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 sBottom;................}.......
164a0 20 20 20 20 20 20 20 20 20 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e ............?............for.(in
164c0 74 20 79 20 3d 20 62 61 73 65 48 65 69 67 68 74 20 2d 20 32 3b 20 79 20 3c 20 62 61 73 65 48 65 t.y.=.baseHeight.-.2;.y.<.baseHe
164e0 69 67 68 74 3b 20 79 2b 2b 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ight;.y++).{...*................
16500 69 66 20 28 79 20 3d 3d 20 62 61 73 65 48 65 69 67 68 74 20 2d 20 31 29 20 7b 00 00 00 2d 20 20 if.(y.==.baseHeight.-.1).{...-..
16520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 62 78 20 3d 20 77 6f 72 ..................float.bx.=.wor
16540 6c 64 58 20 2b 20 30 2e 35 66 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ldX.+.0.5f;...(.................
16560 20 20 20 66 6c 6f 61 74 20 62 79 20 3d 20 79 20 2b 20 30 2e 35 66 3b 00 00 00 2d 20 20 20 20 20 ...float.by.=.y.+.0.5f;...-.....
16580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 62 7a 20 3d 20 77 6f 72 6c 64 5a ...............float.bz.=.worldZ
165a0 20 2b 20 30 2e 35 66 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .+.0.5f;........................
165c0 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 ...?....................glColor3
165e0 66 28 64 69 72 74 54 6f 70 2e 72 2c 20 64 69 72 74 54 6f 70 2e 67 2c 20 64 69 72 74 54 6f 70 2e f(dirtTop.r,.dirtTop.g,.dirtTop.
16600 62 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 50 75 73 b);...#....................glPus
16620 68 4d 61 74 72 69 78 28 29 3b 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hMatrix();...-..................
16640 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 62 78 2c 20 62 79 2c 20 62 7a 29 3b 00 00 00 28 20 ..glTranslatef(bx,.by,.bz);...(.
16660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 53 6f 6c 69 64 43 75 62 65 ...................glutSolidCube
16680 28 31 2e 30 66 29 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 (1.0f);..."....................g
166a0 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lPopMatrix();...................
166c0 20 7d 20 65 6c 73 65 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .}.else.{...-...................
166e0 20 66 6c 6f 61 74 20 62 78 20 3d 20 77 6f 72 6c 64 58 20 2b 20 30 2e 35 66 3b 00 00 00 28 20 20 .float.bx.=.worldX.+.0.5f;...(..
16700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 62 79 20 3d 20 79 20 2b ..................float.by.=.y.+
16720 20 30 2e 35 66 3b 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6c .0.5f;...-....................fl
16740 6f 61 74 20 62 7a 20 3d 20 77 6f 72 6c 64 5a 20 2b 20 30 2e 35 66 3b 00 00 00 14 20 20 20 20 20 oat.bz.=.worldZ.+.0.5f;.........
16760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 ..................B.............
16780 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 73 74 6f 6e 65 54 6f 70 2e 72 2c 20 73 74 6f .......glColor3f(stoneTop.r,.sto
167a0 6e 65 54 6f 70 2e 67 2c 20 73 74 6f 6e 65 54 6f 70 2e 62 29 3b 00 00 00 23 20 20 20 20 20 20 20 neTop.g,.stoneTop.b);...#.......
167c0 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 2d .............glPushMatrix();...-
167e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 ....................glTranslatef
16800 28 62 78 2c 20 62 79 2c 20 62 7a 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (bx,.by,.bz);...(...............
16820 20 20 20 20 20 67 6c 75 74 53 6f 6c 69 64 43 75 62 65 28 31 2e 30 66 29 3b 00 00 00 22 20 20 20 .....glutSolidCube(1.0f);..."...
16840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 .................glPopMatrix();.
16860 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 0d 20 20 20 20 20 20 20 20 ...................}............
16880 20 20 20 20 7d 00 00 00 0c 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 25 20 20 20 20 20 20 20 ....}...................%.......
168a0 20 20 20 20 20 66 6c 6f 61 74 20 62 78 20 3d 20 77 6f 72 6c 64 58 20 2b 20 30 2e 35 66 3b 00 00 .....float.bx.=.worldX.+.0.5f;..
168c0 00 29 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 62 79 20 3d 20 62 61 73 65 48 65 69 .)............float.by.=.baseHei
168e0 67 68 74 20 2b 20 30 2e 35 66 3b 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 ght.+.0.5f;...%............float
16900 20 62 7a 20 3d 20 77 6f 72 6c 64 5a 20 2b 20 30 2e 35 66 3b 00 00 00 0c 20 20 20 20 20 20 20 20 .bz.=.worldZ.+.0.5f;............
16920 20 20 20 20 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 43 6f 6c 6f 72 33 66 28 74 6f .......:............glColor3f(to
16940 70 43 6f 6c 6f 72 2e 72 2c 20 74 6f 70 43 6f 6c 6f 72 2e 67 2c 20 74 6f 70 43 6f 6c 6f 72 2e 62 pColor.r,.topColor.g,.topColor.b
16960 29 3b 00 00 00 1b 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 );................glPushMatrix()
16980 3b 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 54 72 61 6e 73 6c 61 74 65 66 28 62 78 ;...%............glTranslatef(bx
169a0 2c 20 62 79 2c 20 62 7a 29 3b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 53 6f ,.by,.bz);................glutSo
169c0 6c 69 64 43 75 62 65 28 31 2e 30 66 29 3b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 67 6c lidCube(1.0f);................gl
169e0 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 PopMatrix();............}.......
16a00 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 16 76 6f 69 64 20 64 72 61 77 43 72 6f 73 73 68 61 69 .}....}........void.drawCrosshai
16a20 72 28 29 20 7b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f r().{........glMatrixMode(GL_PRO
16a40 4a 45 43 54 49 4f 4e 29 3b 00 00 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b JECTION);........glPushMatrix();
16a60 00 00 00 15 20 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 36 20 20 20 ........glLoadIdentity();...6...
16a80 20 67 6c 4f 72 74 68 6f 28 30 2c 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 .glOrtho(0,.WINDOW_WIDTH,.WINDOW
16aa0 5f 48 45 49 47 48 54 2c 20 30 2c 20 2d 31 2c 20 31 29 3b 00 00 00 04 20 20 20 20 00 00 00 1f 20 _HEIGHT,.0,.-1,.1);.............
16ac0 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 ...glMatrixMode(GL_MODELVIEW);..
16ae0 00 13 20 20 20 20 67 6c 50 75 73 68 4d 61 74 72 69 78 28 29 3b 00 00 00 15 20 20 20 20 67 6c 4c ......glPushMatrix();........glL
16b00 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 1b 20 20 20 20 67 6c oadIdentity();................gl
16b20 44 69 73 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 1d 20 20 20 20 67 6c 44 Disable(GL_LIGHTING);........glD
16b40 69 73 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 00 00 04 20 20 20 20 00 00 isable(GL_DEPTH_TEST);..........
16b60 00 1e 20 20 20 20 69 6e 74 20 63 78 20 3d 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 3b ......int.cx.=.WINDOW_WIDTH./.2;
16b80 00 00 00 1f 20 20 20 20 69 6e 74 20 63 79 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f ........int.cy.=.WINDOW_HEIGHT./
16ba0 20 32 3b 00 00 00 12 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 31 32 3b 00 00 00 10 20 20 20 .2;........int.size.=.12;.......
16bc0 20 69 6e 74 20 67 61 70 20 3d 20 34 3b 00 00 00 04 20 20 20 20 00 00 00 26 20 20 20 20 67 6c 43 .int.gap.=.4;...........&....glC
16be0 6f 6c 6f 72 34 66 28 31 2e 30 66 2c 20 31 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 39 66 29 3b 00 olor4f(1.0f,.1.0f,.1.0f,.0.9f);.
16c00 00 00 16 20 20 20 20 67 6c 4c 69 6e 65 57 69 64 74 68 28 32 2e 30 66 29 3b 00 00 00 04 20 20 20 .......glLineWidth(2.0f);.......
16c20 20 00 00 00 16 20 20 20 20 67 6c 42 65 67 69 6e 28 47 4c 5f 4c 49 4e 45 53 29 3b 00 00 00 1e 20 .........glBegin(GL_LINES);.....
16c40 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2d 20 73 69 7a 65 2c 20 63 79 29 3b 00 00 00 ...glVertex2i(cx.-.size,.cy);...
16c60 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2d 20 67 61 70 2c 20 63 79 29 3b 00 00 .....glVertex2i(cx.-.gap,.cy);..
16c80 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2b 20 67 61 70 2c 20 63 79 29 3b 00 ......glVertex2i(cx.+.gap,.cy);.
16ca0 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 20 2b 20 73 69 7a 65 2c 20 63 79 29 .......glVertex2i(cx.+.size,.cy)
16cc0 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 2c 20 63 79 20 2d 20 73 69 7a ;........glVertex2i(cx,.cy.-.siz
16ce0 65 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 2c 20 63 79 20 2d 20 67 e);........glVertex2i(cx,.cy.-.g
16d00 61 70 29 3b 00 00 00 1d 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 2c 20 63 79 20 2b 20 ap);........glVertex2i(cx,.cy.+.
16d20 67 61 70 29 3b 00 00 00 1e 20 20 20 20 67 6c 56 65 72 74 65 78 32 69 28 63 78 2c 20 63 79 20 2b gap);........glVertex2i(cx,.cy.+
16d40 20 73 69 7a 65 29 3b 00 00 00 0c 20 20 20 20 67 6c 45 6e 64 28 29 3b 00 00 00 04 20 20 20 20 00 .size);........glEnd();.........
16d60 00 00 1c 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 44 45 50 54 48 5f 54 45 53 54 29 3b 00 .......glEnable(GL_DEPTH_TEST);.
16d80 00 00 1a 20 20 20 20 67 6c 45 6e 61 62 6c 65 28 47 4c 5f 4c 49 47 48 54 49 4e 47 29 3b 00 00 00 .......glEnable(GL_LIGHTING);...
16da0 04 20 20 20 20 00 00 00 20 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f .............glMatrixMode(GL_PRO
16dc0 4a 45 43 54 49 4f 4e 29 3b 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 JECTION);........glPopMatrix();.
16de0 00 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 .......glMatrixMode(GL_MODELVIEW
16e00 29 3b 00 00 00 12 20 20 20 20 67 6c 50 6f 70 4d 61 74 72 69 78 28 29 3b 00 00 00 01 7d 00 00 00 );........glPopMatrix();....}...
16e20 00 00 00 00 10 76 6f 69 64 20 64 69 73 70 6c 61 79 28 29 20 7b 00 00 00 37 20 20 20 20 67 6c 43 .....void.display().{...7....glC
16e40 6c 65 61 72 28 47 4c 5f 43 4f 4c 4f 52 5f 42 55 46 46 45 52 5f 42 49 54 20 7c 20 47 4c 5f 44 45 lear(GL_COLOR_BUFFER_BIT.|.GL_DE
16e60 50 54 48 5f 42 55 46 46 45 52 5f 42 49 54 29 3b 00 00 00 04 20 20 20 20 00 00 00 1f 20 20 20 20 PTH_BUFFER_BIT);................
16e80 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 3b 00 00 00 15 20 glMatrixMode(GL_MODELVIEW);.....
16ea0 20 20 20 67 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 51 ...glLoadIdentity();...........Q
16ec0 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 58 20 3d 20 63 61 6d 58 20 2b 20 73 69 6e 66 28 79 61 ....float.lookX.=.camX.+.sinf(ya
16ee0 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 w.*.M_PI./.180.0f).*.cosf(pitch.
16f00 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 35 20 20 20 20 66 6c 6f 61 74 20 6c *.M_PI./.180.0f);...5....float.l
16f20 6f 6f 6b 59 20 3d 20 63 61 6d 59 20 2b 20 73 69 6e 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 ookY.=.camY.+.sinf(pitch.*.M_PI.
16f40 2f 20 31 38 30 2e 30 66 29 3b 00 00 00 51 20 20 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 5a 20 3d 20 /.180.0f);...Q....float.lookZ.=.
16f60 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 camZ.-.cosf(yaw.*.M_PI./.180.0f)
16f80 20 2a 20 63 6f 73 66 28 70 69 74 63 68 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 3b 00 .*.cosf(pitch.*.M_PI./.180.0f);.
16fa0 00 00 04 20 20 20 20 00 00 00 47 20 20 20 20 67 6c 75 4c 6f 6f 6b 41 74 28 63 61 6d 58 2c 20 63 ..........G....gluLookAt(camX,.c
16fc0 61 6d 59 2c 20 63 61 6d 5a 2c 20 6c 6f 6f 6b 58 2c 20 6c 6f 6f 6b 59 2c 20 6c 6f 6f 6b 5a 2c 20 amY,.camZ,.lookX,.lookY,.lookZ,.
16fe0 30 2e 30 66 2c 20 31 2e 30 66 2c 20 30 2e 30 66 29 3b 00 00 00 04 20 20 20 20 00 00 00 13 20 20 0.0f,.1.0f,.0.0f);..............
17000 20 20 64 72 61 77 50 6c 61 74 66 6f 72 6d 28 29 3b 00 00 00 14 20 20 20 20 64 72 61 77 43 72 6f ..drawPlatform();........drawCro
17020 73 73 68 61 69 72 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 67 6c 75 74 53 77 61 sshair();................glutSwa
17040 70 42 75 66 66 65 72 73 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 76 6f 69 64 20 72 65 73 pBuffers();....}........void.res
17060 68 61 70 65 28 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 20 7b 00 00 00 1b 20 20 20 20 67 6c 56 69 hape(int.w,.int.h).{........glVi
17080 65 77 70 6f 72 74 28 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 20 20 20 20 20 67 6c 4d 61 74 ewport(0,.0,.w,.h);........glMat
170a0 72 69 78 4d 6f 64 65 28 47 4c 5f 50 52 4f 4a 45 43 54 49 4f 4e 29 3b 00 00 00 15 20 20 20 20 67 rixMode(GL_PROJECTION);........g
170c0 6c 4c 6f 61 64 49 64 65 6e 74 69 74 79 28 29 3b 00 00 00 4a 20 20 20 20 67 6c 75 50 65 72 73 70 lLoadIdentity();...J....gluPersp
170e0 65 63 74 69 76 65 28 37 35 2e 30 2c 20 28 64 6f 75 62 6c 65 29 77 20 2f 20 28 64 6f 75 62 6c 65 ective(75.0,.(double)w./.(double
17100 29 68 2c 20 30 2e 31 2c 20 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2a 20 32 2e 30 29 3b 00 00 )h,.0.1,.PLATFORM_SIZE.*.2.0);..
17120 00 1f 20 20 20 20 67 6c 4d 61 74 72 69 78 4d 6f 64 65 28 47 4c 5f 4d 4f 44 45 4c 56 49 45 57 29 ......glMatrixMode(GL_MODELVIEW)
17140 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 76 6f 69 64 20 6b 65 79 62 6f 61 72 64 44 6f 77 6e 28 ;....}.......4void.keyboardDown(
17160 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 unsigned.char.key,.int.x,.int.y)
17180 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 31 3b 00 00 00 1b 20 20 20 20 .{........keys[key].=.1;........
171a0 69 66 20 28 6b 65 79 20 3d 3d 20 32 37 29 20 65 78 69 74 28 30 29 3b 00 00 00 15 20 20 20 20 69 if.(key.==.27).exit(0);........i
171c0 66 20 28 6b 65 79 20 3d 3d 20 27 20 27 29 20 7b 00 00 00 19 20 20 20 20 20 20 20 20 69 66 20 28 f.(key.==.'.').{............if.(
171e0 69 73 4f 6e 47 72 6f 75 6e 64 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 76 65 6c isOnGround).{...#............vel
17200 6f 63 69 74 79 59 20 3d 20 4a 55 4d 50 5f 46 4f 52 43 45 3b 00 00 00 1b 20 20 20 20 20 20 20 20 ocityY.=.JUMP_FORCE;............
17220 20 20 20 20 69 73 4f 6e 47 72 6f 75 6e 64 20 3d 20 30 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d ....isOnGround.=.0;............}
17240 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 32 76 6f 69 64 20 6b 65 79 62 6f ........}....}.......2void.keybo
17260 61 72 64 55 70 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 ardUp(unsigned.char.key,.int.x,.
17280 69 6e 74 20 79 29 20 7b 00 00 00 12 20 20 20 20 6b 65 79 73 5b 6b 65 79 5d 20 3d 20 30 3b 00 00 int.y).{........keys[key].=.0;..
172a0 00 01 7d 00 00 00 00 00 00 00 1e 76 6f 69 64 20 6d 6f 75 73 65 4d 6f 76 65 28 69 6e 74 20 78 2c ..}........void.mouseMove(int.x,
172c0 20 69 6e 74 20 79 29 20 7b 00 00 00 2a 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 .int.y).{...*....static.int.cent
172e0 65 72 58 20 3d 20 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 3b 00 00 00 2b 20 20 20 20 73 erX.=.WINDOW_WIDTH./.2;...+....s
17300 74 61 74 69 63 20 69 6e 74 20 63 65 6e 74 65 72 59 20 3d 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 tatic.int.centerY.=.WINDOW_HEIGH
17320 54 20 2f 20 32 3b 00 00 00 04 20 20 20 20 00 00 00 19 20 20 20 20 69 66 20 28 21 6d 6f 75 73 65 T./.2;................if.(!mouse
17340 43 61 70 74 75 72 65 64 29 20 7b 00 00 00 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 Captured).{...*........glutWarpP
17360 6f 69 6e 74 65 72 28 63 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 1a 20 20 20 ointer(centerX,.centerY);.......
17380 20 20 20 20 20 6d 6f 75 73 65 43 61 70 74 75 72 65 64 20 3d 20 31 3b 00 00 00 0f 20 20 20 20 20 .....mouseCaptured.=.1;.........
173a0 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 19 20 ...return;........}.............
173c0 20 20 20 69 6e 74 20 64 78 20 3d 20 78 20 2d 20 63 65 6e 74 65 72 58 3b 00 00 00 19 20 20 20 20 ...int.dx.=.x.-.centerX;........
173e0 69 6e 74 20 64 79 20 3d 20 79 20 2d 20 63 65 6e 74 65 72 59 3b 00 00 00 04 20 20 20 20 00 00 00 int.dy.=.y.-.centerY;...........
17400 1d 20 20 20 20 69 66 20 28 64 78 20 21 3d 20 30 20 7c 7c 20 64 79 20 21 3d 20 30 29 20 7b 00 00 .....if.(dx.!=.0.||.dy.!=.0).{..
17420 00 1f 20 20 20 20 20 20 20 20 79 61 77 20 2b 3d 20 64 78 20 2a 20 4d 4f 55 53 45 5f 53 45 4e 53 ..........yaw.+=.dx.*.MOUSE_SENS
17440 3b 00 00 00 21 20 20 20 20 20 20 20 20 70 69 74 63 68 20 2b 3d 20 64 79 20 2a 20 4d 4f 55 53 45 ;...!........pitch.+=.dy.*.MOUSE
17460 5f 53 45 4e 53 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 20 20 20 20 20 20 69 66 _SENS;...............)........if
17480 20 28 70 69 74 63 68 20 3e 20 38 39 2e 30 66 29 20 70 69 74 63 68 20 3d 20 38 39 2e 30 66 3b 00 .(pitch.>.89.0f).pitch.=.89.0f;.
174a0 00 00 2b 20 20 20 20 20 20 20 20 69 66 20 28 70 69 74 63 68 20 3c 20 2d 38 39 2e 30 66 29 20 70 ..+........if.(pitch.<.-89.0f).p
174c0 69 74 63 68 20 3d 20 2d 38 39 2e 30 66 3b 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 29 20 20 itch.=.-89.0f;...............)..
174e0 20 20 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3c 20 30 2e 30 66 29 20 79 61 77 20 2b 3d 20 ......while.(yaw.<.0.0f).yaw.+=.
17500 33 36 30 2e 30 66 3b 00 00 00 2c 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 79 61 77 20 3e 3d 360.0f;...,........while.(yaw.>=
17520 20 33 36 30 2e 30 66 29 20 79 61 77 20 2d 3d 20 33 36 30 2e 30 66 3b 00 00 00 08 20 20 20 20 20 .360.0f).yaw.-=.360.0f;.........
17540 20 20 20 00 00 00 2a 20 20 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 63 ......*........glutWarpPointer(c
17560 65 6e 74 65 72 58 2c 20 63 65 6e 74 65 72 59 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 enterX,.centerY);........}....}.
17580 00 00 00 00 00 00 36 76 6f 69 64 20 6d 6f 75 73 65 43 6c 69 63 6b 28 69 6e 74 20 62 75 74 74 6f ......6void.mouseClick(int.butto
175a0 6e 2c 20 69 6e 74 20 73 74 61 74 65 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 00 00 00 n,.int.state,.int.x,.int.y).{...
175c0 3b 20 20 20 20 69 66 20 28 62 75 74 74 6f 6e 20 3d 3d 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54 ;....if.(button.==.GLUT_LEFT_BUT
175e0 54 4f 4e 20 26 26 20 73 74 61 74 65 20 3d 3d 20 47 4c 55 54 5f 44 4f 57 4e 29 20 7b 00 00 00 1a TON.&&.state.==.GLUT_DOWN).{....
17600 20 20 20 20 20 20 20 20 6d 6f 75 73 65 43 61 70 74 75 72 65 64 20 3d 20 30 3b 00 00 00 3d 20 20 ........mouseCaptured.=.0;...=..
17620 20 20 20 20 20 20 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 ......glutWarpPointer(WINDOW_WID
17640 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 05 20 TH./.2,.WINDOW_HEIGHT./.2);.....
17660 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1e 76 6f 69 64 20 75 70 64 61 74 65 28 66 6c 6f ...}....}........void.update(flo
17680 61 74 20 64 65 6c 74 61 54 69 6d 65 29 20 7b 00 00 00 27 20 20 20 20 66 6c 6f 61 74 20 79 61 77 at.deltaTime).{...'....float.yaw
176a0 52 61 64 20 3d 20 79 61 77 20 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 3b 00 00 00 22 20 20 Rad.=.yaw.*.M_PI./.180.0f;..."..
176c0 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 58 20 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b ..float.forwardX.=.sinf(yawRad);
176e0 00 00 00 23 20 20 20 20 66 6c 6f 61 74 20 66 6f 72 77 61 72 64 5a 20 3d 20 2d 63 6f 73 66 28 79 ...#....float.forwardZ.=.-cosf(y
17700 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 58 20 3d 20 63 6f awRad);........float.rightX.=.co
17720 73 66 28 79 61 77 52 61 64 29 3b 00 00 00 20 20 20 20 20 66 6c 6f 61 74 20 72 69 67 68 74 5a 20 sf(yawRad);........float.rightZ.
17740 3d 20 73 69 6e 66 28 79 61 77 52 61 64 29 3b 00 00 00 04 20 20 20 20 00 00 00 1d 20 20 20 20 66 =.sinf(yawRad);................f
17760 6c 6f 61 74 20 73 70 65 65 64 20 3d 20 4d 4f 56 45 5f 53 50 45 45 44 3b 00 00 00 21 20 20 20 20 loat.speed.=.MOVE_SPEED;...!....
17780 69 66 20 28 6b 65 79 73 5b 27 71 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 51 27 5d 29 20 7b 00 00 00 if.(keys['q'].||.keys['Q']).{...
177a0 1d 20 20 20 20 20 20 20 20 73 70 65 65 64 20 3d 20 53 50 52 49 4e 54 5f 53 50 45 45 44 3b 00 00 .........speed.=.SPRINT_SPEED;..
177c0 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b ......}...........!....if.(keys[
177e0 27 77 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 57 27 5d 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 'w'].||.keys['W']).{...-........
17800 63 61 6d 58 20 2b 3d 20 66 6f 72 77 61 72 64 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 camX.+=.forwardX.*.speed.*.delta
17820 54 69 6d 65 3b 00 00 00 2d 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2b 3d 20 66 6f 72 77 61 72 64 Time;...-........camZ.+=.forward
17840 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 Z.*.speed.*.deltaTime;........}.
17860 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b 27 73 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 53 27 ..!....if.(keys['s'].||.keys['S'
17880 5d 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 63 61 6d 58 20 2d 3d 20 66 6f 72 77 61 72 64 58 ]).{...-........camX.-=.forwardX
178a0 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 2d 20 20 20 20 20 20 20 .*.speed.*.deltaTime;...-.......
178c0 20 63 61 6d 5a 20 2d 3d 20 66 6f 72 77 61 72 64 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 .camZ.-=.forwardZ.*.speed.*.delt
178e0 61 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 6b 65 79 73 5b aTime;........}...!....if.(keys[
17900 27 61 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 41 27 5d 29 20 7b 00 00 00 2b 20 20 20 20 20 20 20 20 'a'].||.keys['A']).{...+........
17920 63 61 6d 58 20 2d 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 camX.-=.rightX.*.speed.*.deltaTi
17940 6d 65 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 6d 5a 20 2d 3d 20 72 69 67 68 74 5a 20 2a 20 me;...+........camZ.-=.rightZ.*.
17960 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 speed.*.deltaTime;........}...!.
17980 20 20 20 69 66 20 28 6b 65 79 73 5b 27 64 27 5d 20 7c 7c 20 6b 65 79 73 5b 27 44 27 5d 29 20 7b ...if.(keys['d'].||.keys['D']).{
179a0 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 6d 58 20 2b 3d 20 72 69 67 68 74 58 20 2a 20 73 70 65 ...+........camX.+=.rightX.*.spe
179c0 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 6d 5a 20 ed.*.deltaTime;...+........camZ.
179e0 2b 3d 20 72 69 67 68 74 5a 20 2a 20 73 70 65 65 64 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 +=.rightZ.*.speed.*.deltaTime;..
17a00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 25 20 20 20 20 76 65 6c 6f 63 69 74 79 59 ......}...........%....velocityY
17a20 20 2d 3d 20 47 52 41 56 49 54 59 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 00 22 20 20 20 20 .-=.GRAVITY.*.deltaTime;..."....
17a40 63 61 6d 59 20 2b 3d 20 76 65 6c 6f 63 69 74 79 59 20 2a 20 64 65 6c 74 61 54 69 6d 65 3b 00 00 camY.+=.velocityY.*.deltaTime;..
17a60 00 04 20 20 20 20 00 00 00 40 20 20 20 20 66 6c 6f 61 74 20 67 72 6f 75 6e 64 48 65 69 67 68 74 .........@....float.groundHeight
17a80 20 3d 20 67 65 74 48 65 69 67 68 74 41 74 50 6f 73 69 74 69 6f 6e 28 63 61 6d 58 2c 20 63 61 6d .=.getHeightAtPosition(camX,.cam
17aa0 5a 29 20 2b 20 31 2e 30 66 3b 00 00 00 1f 20 20 20 20 69 66 20 28 63 61 6d 59 20 3c 3d 20 67 72 Z).+.1.0f;........if.(camY.<=.gr
17ac0 6f 75 6e 64 48 65 69 67 68 74 29 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 63 61 6d 59 20 3d 20 oundHeight).{............camY.=.
17ae0 67 72 6f 75 6e 64 48 65 69 67 68 74 3b 00 00 00 19 20 20 20 20 20 20 20 20 76 65 6c 6f 63 69 74 groundHeight;............velocit
17b00 79 59 20 3d 20 30 2e 30 66 3b 00 00 00 17 20 20 20 20 20 20 20 20 69 73 4f 6e 47 72 6f 75 6e 64 yY.=.0.0f;............isOnGround
17b20 20 3d 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 30 20 20 20 20 66 6c .=.1;........}...........0....fl
17b40 6f 61 74 20 6c 69 6d 69 74 20 3d 20 28 50 4c 41 54 46 4f 52 4d 5f 53 49 5a 45 20 2f 20 32 2e 30 oat.limit.=.(PLATFORM_SIZE./.2.0
17b60 66 29 20 2d 20 32 2e 30 66 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 58 20 3c 20 2d 6c 69 f).-.2.0f;...%....if.(camX.<.-li
17b80 6d 69 74 29 20 63 61 6d 58 20 3d 20 2d 6c 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 mit).camX.=.-limit;...%....if.(c
17ba0 61 6d 58 20 3e 20 20 6c 69 6d 69 74 29 20 63 61 6d 58 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 25 amX.>..limit).camX.=..limit;...%
17bc0 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3c 20 2d 6c 69 6d 69 74 29 20 63 61 6d 5a 20 3d 20 2d 6c ....if.(camZ.<.-limit).camZ.=.-l
17be0 69 6d 69 74 3b 00 00 00 25 20 20 20 20 69 66 20 28 63 61 6d 5a 20 3e 20 20 6c 69 6d 69 74 29 20 imit;...%....if.(camZ.>..limit).
17c00 63 61 6d 5a 20 3d 20 20 6c 69 6d 69 74 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0d 76 6f 69 64 20 camZ.=..limit;....}........void.
17c20 69 64 6c 65 28 29 20 7b 00 00 00 1c 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 6c 61 73 74 54 idle().{........static.int.lastT
17c40 69 6d 65 20 3d 20 30 3b 00 00 00 29 20 20 20 20 69 6e 74 20 6e 6f 77 20 3d 20 67 6c 75 74 47 65 ime.=.0;...)....int.now.=.glutGe
17c60 74 28 47 4c 55 54 5f 45 4c 41 50 53 45 44 5f 54 49 4d 45 29 3b 00 00 00 31 20 20 20 20 66 6c 6f t(GLUT_ELAPSED_TIME);...1....flo
17c80 61 74 20 64 65 6c 74 61 54 69 6d 65 20 3d 20 28 6e 6f 77 20 2d 20 6c 61 73 74 54 69 6d 65 29 20 at.deltaTime.=.(now.-.lastTime).
17ca0 2f 20 31 30 30 30 2e 30 66 3b 00 00 00 13 20 20 20 20 6c 61 73 74 54 69 6d 65 20 3d 20 6e 6f 77 /.1000.0f;........lastTime.=.now
17cc0 3b 00 00 00 04 20 20 20 20 00 00 00 2d 20 20 20 20 69 66 20 28 64 65 6c 74 61 54 69 6d 65 20 3e ;...........-....if.(deltaTime.>
17ce0 20 30 2e 30 35 66 29 20 64 65 6c 74 61 54 69 6d 65 20 3d 20 30 2e 30 35 66 3b 00 00 00 2e 20 20 .0.05f).deltaTime.=.0.05f;......
17d00 20 20 69 66 20 28 64 65 6c 74 61 54 69 6d 65 20 3c 3d 20 30 2e 30 66 29 20 64 65 6c 74 61 54 69 ..if.(deltaTime.<=.0.0f).deltaTi
17d20 6d 65 20 3d 20 30 2e 30 31 36 66 3b 00 00 00 04 20 20 20 20 00 00 00 16 20 20 20 20 75 70 64 61 me.=.0.016f;................upda
17d40 74 65 28 64 65 6c 74 61 54 69 6d 65 29 3b 00 00 00 18 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65 te(deltaTime);........glutPostRe
17d60 64 69 73 70 6c 61 79 28 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 21 69 6e 74 20 6d 61 69 6e 28 display();....}.......!int.main(
17d80 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 00 00 00 16 20 20 20 20 int.argc,.char.**argv).{........
17da0 73 72 61 6e 64 28 74 69 6d 65 28 4e 55 4c 4c 29 29 3b 00 00 00 16 20 20 20 20 67 65 6e 65 72 61 srand(time(NULL));........genera
17dc0 74 65 54 65 72 72 61 69 6e 28 29 3b 00 00 00 04 20 20 20 20 00 00 00 4f 20 20 20 20 66 6c 6f 61 teTerrain();...........O....floa
17de0 74 20 73 74 61 72 74 48 65 69 67 68 74 20 3d 20 67 65 74 48 65 69 67 68 74 41 74 50 6f 73 69 74 t.startHeight.=.getHeightAtPosit
17e00 69 6f 6e 28 30 2e 30 66 2c 20 30 2e 30 66 29 20 2b 20 50 4c 41 59 45 52 5f 48 45 49 47 48 54 20 ion(0.0f,.0.0f).+.PLAYER_HEIGHT.
17e20 2b 20 31 2e 30 66 3b 00 00 00 17 20 20 20 20 63 61 6d 59 20 3d 20 73 74 61 72 74 48 65 69 67 68 +.1.0f;........camY.=.startHeigh
17e40 74 3b 00 00 00 04 20 20 20 20 00 00 00 1a 20 20 20 20 67 6c 75 74 49 6e 69 74 28 26 61 72 67 63 t;................glutInit(&argc
17e60 2c 20 61 72 67 76 29 3b 00 00 00 3d 20 20 20 20 67 6c 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d ,.argv);...=....glutInitDisplayM
17e80 6f 64 65 28 47 4c 55 54 5f 44 4f 55 42 4c 45 20 7c 20 47 4c 55 54 5f 52 47 42 20 7c 20 47 4c 55 ode(GLUT_DOUBLE.|.GLUT_RGB.|.GLU
17ea0 54 5f 44 45 50 54 48 29 3b 00 00 00 34 20 20 20 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 T_DEPTH);...4....glutInitWindowS
17ec0 69 7a 65 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 2c 20 57 49 4e 44 4f 57 5f 48 45 49 47 48 54 29 ize(WINDOW_WIDTH,.WINDOW_HEIGHT)
17ee0 3b 00 00 00 2c 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 ;...,....glutCreateWindow("Minec
17f00 72 61 66 74 20 50 72 6f 74 6f 74 79 70 65 22 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 69 raft.Prototype");............ini
17f20 74 47 4c 28 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75 6e tGL();............glutDisplayFun
17f40 63 28 64 69 73 70 6c 61 79 29 3b 00 00 00 1d 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 46 75 c(display);........glutReshapeFu
17f60 6e 63 28 72 65 73 68 61 70 65 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b 65 79 62 6f 61 72 64 nc(reshape);...#....glutKeyboard
17f80 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 44 6f 77 6e 29 3b 00 00 00 23 20 20 20 20 67 6c 75 74 4b Func(keyboardDown);...#....glutK
17fa0 65 79 62 6f 61 72 64 55 70 46 75 6e 63 28 6b 65 79 62 6f 61 72 64 55 70 29 3b 00 00 00 25 20 20 eyboardUpFunc(keyboardUp);...%..
17fc0 20 20 67 6c 75 74 50 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63 28 6d 6f 75 73 65 4d 6f 76 ..glutPassiveMotionFunc(mouseMov
17fe0 65 29 3b 00 00 00 1e 20 20 20 20 67 6c 75 74 4d 6f 75 73 65 46 75 6e 63 28 6d 6f 75 73 65 43 6c e);........glutMouseFunc(mouseCl
18000 69 63 6b 29 3b 00 00 00 17 20 20 20 20 67 6c 75 74 49 64 6c 65 46 75 6e 63 28 69 64 6c 65 29 3b ick);........glutIdleFunc(idle);
18020 00 00 00 04 20 20 20 20 00 00 00 24 20 20 20 20 67 6c 75 74 53 65 74 43 75 72 73 6f 72 28 47 4c ...........$....glutSetCursor(GL
18040 55 54 5f 43 55 52 53 4f 52 5f 4e 4f 4e 45 29 3b 00 00 00 39 20 20 20 20 67 6c 75 74 57 61 72 70 UT_CURSOR_NONE);...9....glutWarp
18060 50 6f 69 6e 74 65 72 28 57 49 4e 44 4f 57 5f 57 49 44 54 48 20 2f 20 32 2c 20 57 49 4e 44 4f 57 Pointer(WINDOW_WIDTH./.2,.WINDOW
18080 5f 48 45 49 47 48 54 20 2f 20 32 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 67 6c 75 74 4d 61 69 _HEIGHT./.2);............glutMai
180a0 6e 4c 6f 6f 70 28 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 nLoop();........return.0;....}5.
180c0 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 bc 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
180e0 00 00 00 00 00 00 f3 30 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 14 00 00 .......0..............5._.......
18100 00 16 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 ................................
18120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
181e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 fd d3 ............................j...
18280 04 01 00 00 00 12 00 f5 18 00 00 01 c5 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 20 ................................
182a0 20 67 6c 75 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 28 57 49 f5 18 00 00 01 c6 00 00 00 00 .glutInitWindowSize(WI..........
182c0 00 00 00 00 00 00 00 00 f5 18 00 00 01 24 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3e 20 20 .............$...............>..
182e0 20 20 66 6c 6f 61 74 20 6c 6f 6f 6b 5a 20 3d 20 63 61 6d 5a 20 2d 20 63 6f 73 66 28 79 61 77 20 ..float.lookZ.=.camZ.-.cosf(yaw.
18300 2a 20 4d 5f 50 49 20 2f 20 31 38 30 2e 30 66 29 20 2a 20 63 6f 73 66 28 70 69 74 63 f5 18 00 00 *.M_PI./.180.0f).*.cosf(pitc....
18320 01 25 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 01 .%..............................
18340 00 00 00 1e 20 20 20 20 67 6c 43 6f 6c 6f 72 4d 61 74 65 72 69 61 6c 28 47 4c 5f 46 52 4f 4e 54 ........glColorMaterial(GL_FRONT
18360 2c 20 f5 18 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 ,...............................
18380 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 ............................5...
183a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 00 00 00 1e 00 00 00 00 00 00 00 ................................
183c0 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 92 00 00 00 1e 00 ................................
183e0 00 00 00 00 00 00 00 00 00 00 92 00 00 00 3e 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 ..............>.................
18400 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 24 01 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 ................$...>...........
18420 a1 00 00 00 19 00 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 ................................
18440 f5 18 00 00 00 00 c5 01 00 00 19 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00 f7 2f .............................../
18460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c2 01 00 00 00 00 00 00 35 81 5f d0 00 00 00 15 00 00 ......................5._.......
18480 00 17 00 00 00 00 00 00 00 00 00 00 00 16 00 00 01 c7 00 00 00 16 00 00 00 00 ff ff ff ff 00 01 ................................
184a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
184c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
184e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
185a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
185c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 c7 00 00 00 16 ................................
185e0 00 00 00 00 00 00 01 c7 00 00 00 28 00 00 00 00 00 00 00 76 00 00 00 28 00 00 00 00 6a 08 fe 1b ...........(.......v...(....j...
18600 04 01 00 00 00 00 00 f5 18 00 00 01 c6 00 00 01 c8 00 00 01 d8 00 00 00 01 00 00 00 2c 20 20 20 ............................,...
18620 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 4d 69 6e 65 63 72 61 66 74 20 50 72 6f .glutCreateWindow("Minecraft.Pro
18640 74 6f 74 79 70 65 22 29 3b 35 81 f5 18 00 00 00 00 c6 01 00 00 16 00 00 00 00 00 00 00 13 00 00 totype");5......................
18660 00 00 00 00 00 00 00 00 00 29 30 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........)0.....................
18680 00 35 81 5f d0 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 00 00 01 c7 00 00 00 .5._............................
186a0 16 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
186c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
186e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
187a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
187c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
187e0 00 00 00 00 00 01 c7 00 00 00 16 00 00 00 00 00 00 01 c7 00 00 00 28 00 00 00 00 00 00 00 76 00 ......................(.......v.
18800 00 00 28 00 00 00 00 6a 08 fe 1d 04 01 00 00 00 14 00 f5 18 00 00 01 c6 00 00 01 c8 00 00 01 d8 ..(....j........................
18820 00 00 00 01 00 00 00 19 20 20 20 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f 77 28 22 22 29 ............glutCreateWindow("")
18840 3b 35 81 f5 18 00 00 00 00 c6 01 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 ;5..............................
18860 00 29 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 81 e7 aa .)0......................5...