diff options
| -rw-r--r-- | all.h | 4 | ||||
| -rw-r--r-- | game.c | 2 | ||||
| -rw-r--r-- | main.c | 36 | ||||
| -rw-r--r-- | maps/demo1.map | 226 | ||||
| -rw-r--r-- | maps/demo3.map | 187 | ||||
| -rw-r--r-- | player.c | 17 | ||||
| -rwxr-xr-x | tbrun.sh | 65 | ||||
| -rw-r--r-- | textures/prototype/proto_blue.png | bin | 0 -> 1167 bytes | |||
| -rw-r--r-- | textures/prototype/proto_green.png | bin | 0 -> 896 bytes | |||
| -rw-r--r-- | textures/prototype/proto_red.png | bin | 0 -> 881 bytes | |||
| -rw-r--r-- | textures/prototype/proto_texture.xcf | bin | 0 -> 14207 bytes | |||
| -rw-r--r-- | trenchbroom/stalag/GameEngineProfiles.cfg | 16 |
12 files changed, 521 insertions, 32 deletions
| @@ -114,6 +114,7 @@ typedef struct { | |||
| 114 | float lean_amount; | 114 | float lean_amount; |
| 115 | float crouch_amount; | 115 | float crouch_amount; |
| 116 | float horizontal_speed; | 116 | float horizontal_speed; |
| 117 | float camera_offset_y; // Vertical offset for stair smoothing | ||
| 117 | } PlayerState; | 118 | } PlayerState; |
| 118 | 119 | ||
| 119 | void UpdatePlayer(void); | 120 | void UpdatePlayer(void); |
| @@ -130,6 +131,9 @@ typedef struct { | |||
| 130 | Camera camera; | 131 | Camera camera; |
| 131 | bool cursor_captured; | 132 | bool cursor_captured; |
| 132 | bool vsync; | 133 | bool vsync; |
| 134 | int target_fps; | ||
| 135 | int screen_width; | ||
| 136 | int screen_height; | ||
| 133 | Font font_ui; | 137 | Font font_ui; |
| 134 | 138 | ||
| 135 | PlayerState player; | 139 | PlayerState player; |
| @@ -42,7 +42,7 @@ void UpdateGame(void) { | |||
| 42 | SetTargetFPS(GetMonitorRefreshRate(GetCurrentMonitor())); | 42 | SetTargetFPS(GetMonitorRefreshRate(GetCurrentMonitor())); |
| 43 | } else { | 43 | } else { |
| 44 | ClearWindowState(FLAG_VSYNC_HINT); | 44 | ClearWindowState(FLAG_VSYNC_HINT); |
| 45 | SetTargetFPS(0); | 45 | SetTargetFPS(game.target_fps); |
| 46 | } | 46 | } |
| 47 | } | 47 | } |
| 48 | 48 | ||
| @@ -10,15 +10,21 @@ int main(int argc, char *argv[]) { | |||
| 10 | sb_append_cstr(&map_path, "maps/demo3.map"); | 10 | sb_append_cstr(&map_path, "maps/demo3.map"); |
| 11 | 11 | ||
| 12 | bool skip_title = false; | 12 | bool skip_title = false; |
| 13 | int target_fps = -1; | ||
| 14 | int width = WINDOW_WIDTH; | ||
| 15 | int height = WINDOW_HEIGHT; | ||
| 13 | 16 | ||
| 14 | static struct option long_options[] = { | 17 | static struct option long_options[] = { |
| 15 | {"map", required_argument, 0, 'm'}, | 18 | {"map", required_argument, 0, 'm'}, |
| 19 | {"fps", required_argument, 0, 'f'}, | ||
| 20 | {"width", required_argument, 0, 'w'}, | ||
| 21 | {"height", required_argument, 0, 'h'}, | ||
| 16 | {0, 0, 0, 0} | 22 | {0, 0, 0, 0} |
| 17 | }; | 23 | }; |
| 18 | 24 | ||
| 19 | int opt; | 25 | int opt; |
| 20 | int option_index = 0; | 26 | int option_index = 0; |
| 21 | while ((opt = getopt_long_only(argc, argv, "m:", long_options, &option_index)) != -1) { | 27 | while ((opt = getopt_long_only(argc, argv, "m:f:w:h:", long_options, &option_index)) != -1) { |
| 22 | switch (opt) { | 28 | switch (opt) { |
| 23 | case 'm': | 29 | case 'm': |
| 24 | sb_free(&map_path); | 30 | sb_free(&map_path); |
| @@ -26,20 +32,42 @@ int main(int argc, char *argv[]) { | |||
| 26 | sb_append_cstr(&map_path, optarg); | 32 | sb_append_cstr(&map_path, optarg); |
| 27 | skip_title = true; | 33 | skip_title = true; |
| 28 | break; | 34 | break; |
| 35 | case 'f': | ||
| 36 | target_fps = atoi(optarg); | ||
| 37 | break; | ||
| 38 | case 'w': | ||
| 39 | width = atoi(optarg); | ||
| 40 | break; | ||
| 41 | case 'h': | ||
| 42 | height = atoi(optarg); | ||
| 43 | break; | ||
| 29 | } | 44 | } |
| 30 | } | 45 | } |
| 31 | 46 | ||
| 32 | SetConfigFlags(FLAG_VSYNC_HINT | FLAG_WINDOW_RESIZABLE | FLAG_WINDOW_HIGHDPI); | 47 | unsigned int flags = FLAG_WINDOW_RESIZABLE | FLAG_WINDOW_HIGHDPI; |
| 33 | InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_TITLE); | 48 | if (target_fps < 0) flags |= FLAG_VSYNC_HINT; |
| 49 | |||
| 50 | SetConfigFlags(flags); | ||
| 51 | InitWindow(width, height, WINDOW_TITLE); | ||
| 34 | 52 | ||
| 35 | int monitor = GetCurrentMonitor(); | 53 | int monitor = GetCurrentMonitor(); |
| 36 | SetWindowPosition((GetMonitorWidth(monitor) - GetScreenWidth()) / 2, (GetMonitorHeight(monitor) - GetScreenHeight()) / 2); | 54 | SetWindowPosition((GetMonitorWidth(monitor) - GetScreenWidth()) / 2, (GetMonitorHeight(monitor) - GetScreenHeight()) / 2); |
| 37 | SetTargetFPS(GetMonitorRefreshRate(monitor)); | ||
| 38 | 55 | ||
| 39 | vfs_init(VFS_DATA_PAK); | 56 | vfs_init(VFS_DATA_PAK); |
| 40 | InitGame(); | 57 | InitGame(); |
| 58 | game.screen_width = width; | ||
| 59 | game.screen_height = height; | ||
| 41 | SetMap(map_path.data); | 60 | SetMap(map_path.data); |
| 42 | 61 | ||
| 62 | if (target_fps >= 0) { | ||
| 63 | game.target_fps = target_fps; | ||
| 64 | game.vsync = false; | ||
| 65 | SetTargetFPS(game.target_fps); | ||
| 66 | } else { | ||
| 67 | game.vsync = true; | ||
| 68 | SetTargetFPS(GetMonitorRefreshRate(monitor)); | ||
| 69 | } | ||
| 70 | |||
| 43 | if (skip_title) { | 71 | if (skip_title) { |
| 44 | if (LoadMap(game.map_path)) { | 72 | if (LoadMap(game.map_path)) { |
| 45 | game.mode = STATE_PLAYING; | 73 | game.mode = STATE_PLAYING; |
diff --git a/maps/demo1.map b/maps/demo1.map index a4e2168..cbaebec 100644 --- a/maps/demo1.map +++ b/maps/demo1.map | |||
| @@ -1,37 +1,27 @@ | |||
| 1 | // Game: Generic | 1 | // Game: Stalag |
| 2 | // Format: Standard | 2 | // Format: Standard |
| 3 | // entity 0 | 3 | // entity 0 |
| 4 | { | 4 | { |
| 5 | "classname" "worldspawn" | 5 | "classname" "worldspawn" |
| 6 | // brush 0 | 6 | // brush 0 |
| 7 | { | 7 | { |
| 8 | ( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) brushes/ground_068 0 0 0 1 1 | 8 | ( -1312 -64 -16 ) ( -1312 -63 -16 ) ( -1312 -64 -15 ) brushes/rock_016 0 0 0 1 1 |
| 9 | ( -64 -112 -16 ) ( -64 -112 -15 ) ( -63 -112 -16 ) brushes/ground_068 0 0 0 1 1 | 9 | ( -64 -720 -16 ) ( -64 -720 -15 ) ( -63 -720 -16 ) brushes/rock_016 0 0 0 1 1 |
| 10 | ( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) brushes/ground_068 0 0 0 1 1 | 10 | ( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) brushes/rock_016 0 0 0 1 1 |
| 11 | ( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) brushes/ground_068 0 0 0 1 1 | 11 | ( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) brushes/rock_016 0 0 0 1 1 |
| 12 | ( 64 64 16 ) ( 65 64 16 ) ( 64 64 17 ) brushes/ground_068 0 0 0 1 1 | 12 | ( 64 896 16 ) ( 65 896 16 ) ( 64 896 17 ) brushes/rock_016 0 0 0 1 1 |
| 13 | ( 64 64 16 ) ( 64 64 17 ) ( 64 65 16 ) brushes/ground_068 0 0 0 1 1 | 13 | ( 64 64 16 ) ( 64 64 17 ) ( 64 65 16 ) brushes/rock_016 0 0 0 1 1 |
| 14 | } | 14 | } |
| 15 | // brush 1 | 15 | // brush 1 |
| 16 | { | 16 | { |
| 17 | ( 64 176 16 ) ( 64 -80 16 ) ( 64 -80 -16 ) brushes/bricks_076c 16 -16 0 1 1 | 17 | ( 64 176 16 ) ( 64 -80 16 ) ( 64 -80 -16 ) brushes/bricks_076c 16 -16 0 1 1 |
| 18 | ( 64 -80 16 ) ( 304 -80 0 ) ( 304 -80 -16 ) brushes/bricks_076c -21 0 0 1 1 | 18 | ( 64 -464 16 ) ( 304 -464 0 ) ( 304 -464 -16 ) brushes/bricks_076c 0 0 0 1 1 |
| 19 | ( 304 -80 -16 ) ( 304 176 -16 ) ( 64 176 -16 ) brushes/bricks_076c 0 0 0 1 1 | 19 | ( 304 -80 -16 ) ( 304 176 -16 ) ( 64 176 -16 ) brushes/bricks_076c 0 0 0 1 1 |
| 20 | ( 304 176 -16 ) ( 304 176 0 ) ( 64 176 16 ) brushes/bricks_076c 0 0 0 1 1 | 20 | ( 304 176 -16 ) ( 304 176 0 ) ( 64 176 16 ) brushes/bricks_076c 0 0 0 1 1 |
| 21 | ( 64 176 16 ) ( 304 176 0 ) ( 304 -80 0 ) brushes/bricks_076c 0 0 0 1 1 | 21 | ( 64 176 16 ) ( 304 176 0 ) ( 304 -80 0 ) brushes/bricks_076c 0 0 0 1 1 |
| 22 | ( 304 -80 0 ) ( 304 176 0 ) ( 304 176 -16 ) brushes/bricks_076c 0 0 0 1 1 | ||
| 23 | } | 22 | } |
| 24 | // brush 2 | 23 | // brush 2 |
| 25 | { | 24 | { |
| 26 | ( -176 64 0 ) ( -176 65 0 ) ( -176 64 1 ) environment/planks_012 16 0 0 1 1 | ||
| 27 | ( -64 64 0 ) ( -64 64 1 ) ( -63 64 0 ) environment/planks_012 0 0 0 1 1 | ||
| 28 | ( -64 64 0 ) ( -63 64 0 ) ( -64 65 0 ) environment/planks_012 0 -16 0 1 1 | ||
| 29 | ( -16 112 16 ) ( -16 113 16 ) ( -15 112 16 ) environment/planks_012 0 -16 0 1 1 | ||
| 30 | ( -16 336 16 ) ( -15 336 16 ) ( -16 336 17 ) environment/planks_012 0 0 0 1 1 | ||
| 31 | ( -16 112 16 ) ( -16 112 17 ) ( -16 113 16 ) environment/planks_012 16 0 0 1 1 | ||
| 32 | } | ||
| 33 | // brush 3 | ||
| 34 | { | ||
| 35 | ( -32 336 112 ) ( -32 272 112 ) ( -32 272 16 ) environment/paintedwood_008a 0 16 0 1 1 | 25 | ( -32 336 112 ) ( -32 272 112 ) ( -32 272 16 ) environment/paintedwood_008a 0 16 0 1 1 |
| 36 | ( -32 272 112 ) ( 64 272 112 ) ( 64 272 16 ) environment/paintedwood_008a 16 16 0 1 1 | 26 | ( -32 272 112 ) ( 64 272 112 ) ( 64 272 16 ) environment/paintedwood_008a 16 16 0 1 1 |
| 37 | ( 64 272 16 ) ( 64 336 16 ) ( -32 336 16 ) environment/paintedwood_008a 16 0 0 1 1 | 27 | ( 64 272 16 ) ( 64 336 16 ) ( -32 336 16 ) environment/paintedwood_008a 16 0 0 1 1 |
| @@ -39,6 +29,206 @@ | |||
| 39 | ( 64 336 16 ) ( 64 336 112 ) ( -32 336 112 ) environment/paintedwood_008a 16 16 0 1 1 | 29 | ( 64 336 16 ) ( 64 336 112 ) ( -32 336 112 ) environment/paintedwood_008a 16 16 0 1 1 |
| 40 | ( 64 272 112 ) ( 64 336 112 ) ( 64 336 16 ) environment/paintedwood_008a 0 16 0 1 1 | 30 | ( 64 272 112 ) ( 64 336 112 ) ( 64 336 16 ) environment/paintedwood_008a 0 16 0 1 1 |
| 41 | } | 31 | } |
| 32 | // brush 3 | ||
| 33 | { | ||
| 34 | ( -448 -192 72 ) ( -448 -191 72 ) ( -448 -192 73 ) prototype/proto_green 32 0 0 1 1 | ||
| 35 | ( -448 -192 72 ) ( -448 -192 73 ) ( -447 -192 72 ) prototype/proto_green 32 0 0 1 1 | ||
| 36 | ( -448 -192 72 ) ( -447 -192 72 ) ( -448 -191 72 ) prototype/proto_green 32 -32 0 1 1 | ||
| 37 | ( -384 -128 80 ) ( -384 -127 80 ) ( -383 -128 80 ) prototype/proto_green 32 -32 0 1 1 | ||
| 38 | ( -384 -128 88 ) ( -383 -128 88 ) ( -384 -128 89 ) prototype/proto_green 32 0 0 1 1 | ||
| 39 | ( -416 -128 88 ) ( -416 -128 89 ) ( -416 -127 88 ) prototype/proto_green 32 0 0 1 1 | ||
| 40 | } | ||
| 41 | // brush 4 | ||
| 42 | { | ||
| 43 | ( -416 -192 64 ) ( -416 -191 64 ) ( -416 -192 65 ) prototype/proto_green 32 0 0 1 1 | ||
| 44 | ( -416 -192 64 ) ( -416 -192 65 ) ( -415 -192 64 ) prototype/proto_green 32 0 0 1 1 | ||
| 45 | ( -416 -192 64 ) ( -415 -192 64 ) ( -416 -191 64 ) prototype/proto_green 32 -32 0 1 1 | ||
| 46 | ( -352 -128 72 ) ( -352 -127 72 ) ( -351 -128 72 ) prototype/proto_green 32 -32 0 1 1 | ||
| 47 | ( -352 -128 80 ) ( -351 -128 80 ) ( -352 -128 81 ) prototype/proto_green 32 0 0 1 1 | ||
| 48 | ( -384 -128 80 ) ( -384 -128 81 ) ( -384 -127 80 ) prototype/proto_green 32 0 0 1 1 | ||
| 49 | } | ||
| 50 | // brush 5 | ||
| 51 | { | ||
| 52 | ( -384 -192 56 ) ( -384 -191 56 ) ( -384 -192 57 ) prototype/proto_green 32 0 0 1 1 | ||
| 53 | ( -384 -192 56 ) ( -384 -192 57 ) ( -383 -192 56 ) prototype/proto_green 32 0 0 1 1 | ||
| 54 | ( -384 -192 56 ) ( -383 -192 56 ) ( -384 -191 56 ) prototype/proto_green 32 -32 0 1 1 | ||
| 55 | ( -320 -128 64 ) ( -320 -127 64 ) ( -319 -128 64 ) prototype/proto_green 32 -32 0 1 1 | ||
| 56 | ( -320 -128 72 ) ( -319 -128 72 ) ( -320 -128 73 ) prototype/proto_green 32 0 0 1 1 | ||
| 57 | ( -352 -128 72 ) ( -352 -128 73 ) ( -352 -127 72 ) prototype/proto_green 32 0 0 1 1 | ||
| 58 | } | ||
| 59 | // brush 6 | ||
| 60 | { | ||
| 61 | ( -352 -192 48 ) ( -352 -191 48 ) ( -352 -192 49 ) prototype/proto_green 32 0 0 1 1 | ||
| 62 | ( -352 -192 48 ) ( -352 -192 49 ) ( -351 -192 48 ) prototype/proto_green 32 0 0 1 1 | ||
| 63 | ( -352 -192 48 ) ( -351 -192 48 ) ( -352 -191 48 ) prototype/proto_green 32 -32 0 1 1 | ||
| 64 | ( -288 -128 56 ) ( -288 -127 56 ) ( -287 -128 56 ) prototype/proto_green 32 -32 0 1 1 | ||
| 65 | ( -288 -128 64 ) ( -287 -128 64 ) ( -288 -128 65 ) prototype/proto_green 32 0 0 1 1 | ||
| 66 | ( -320 -128 64 ) ( -320 -128 65 ) ( -320 -127 64 ) prototype/proto_green 32 0 0 1 1 | ||
| 67 | } | ||
| 68 | // brush 7 | ||
| 69 | { | ||
| 70 | ( -320 -192 40 ) ( -320 -191 40 ) ( -320 -192 41 ) prototype/proto_green 32 0 0 1 1 | ||
| 71 | ( -320 -192 40 ) ( -320 -192 41 ) ( -319 -192 40 ) prototype/proto_green 32 0 0 1 1 | ||
| 72 | ( -320 -192 40 ) ( -319 -192 40 ) ( -320 -191 40 ) prototype/proto_green 32 -32 0 1 1 | ||
| 73 | ( -256 -128 48 ) ( -256 -127 48 ) ( -255 -128 48 ) prototype/proto_green 32 -32 0 1 1 | ||
| 74 | ( -256 -128 56 ) ( -255 -128 56 ) ( -256 -128 57 ) prototype/proto_green 32 0 0 1 1 | ||
| 75 | ( -288 -128 56 ) ( -288 -128 57 ) ( -288 -127 56 ) prototype/proto_green 32 0 0 1 1 | ||
| 76 | } | ||
| 77 | // brush 8 | ||
| 78 | { | ||
| 79 | ( -288 -192 32 ) ( -288 -191 32 ) ( -288 -192 33 ) prototype/proto_green 32 0 0 1 1 | ||
| 80 | ( -288 -192 32 ) ( -288 -192 33 ) ( -287 -192 32 ) prototype/proto_green 32 0 0 1 1 | ||
| 81 | ( -288 -192 32 ) ( -287 -192 32 ) ( -288 -191 32 ) prototype/proto_green 32 -32 0 1 1 | ||
| 82 | ( -224 -128 40 ) ( -224 -127 40 ) ( -223 -128 40 ) prototype/proto_green 32 -32 0 1 1 | ||
| 83 | ( -224 -128 48 ) ( -223 -128 48 ) ( -224 -128 49 ) prototype/proto_green 32 0 0 1 1 | ||
| 84 | ( -256 -128 48 ) ( -256 -128 49 ) ( -256 -127 48 ) prototype/proto_green 32 0 0 1 1 | ||
| 85 | } | ||
| 86 | // brush 9 | ||
| 87 | { | ||
| 88 | ( -256 -192 24 ) ( -256 -191 24 ) ( -256 -192 25 ) prototype/proto_green 32 0 0 1 1 | ||
| 89 | ( -256 -192 24 ) ( -256 -192 25 ) ( -255 -192 24 ) prototype/proto_green 32 0 0 1 1 | ||
| 90 | ( -256 -192 24 ) ( -255 -192 24 ) ( -256 -191 24 ) prototype/proto_green 32 -32 0 1 1 | ||
| 91 | ( -192 -128 32 ) ( -192 -127 32 ) ( -191 -128 32 ) prototype/proto_green 32 -32 0 1 1 | ||
| 92 | ( -192 -128 40 ) ( -191 -128 40 ) ( -192 -128 41 ) prototype/proto_green 32 0 0 1 1 | ||
| 93 | ( -224 -128 40 ) ( -224 -128 41 ) ( -224 -127 40 ) prototype/proto_green 32 0 0 1 1 | ||
| 94 | } | ||
| 95 | // brush 10 | ||
| 96 | { | ||
| 97 | ( -224 -192 16 ) ( -224 -191 16 ) ( -224 -192 17 ) prototype/proto_green 32 0 0 1 1 | ||
| 98 | ( -224 -192 16 ) ( -224 -192 17 ) ( -223 -192 16 ) prototype/proto_green 32 0 0 1 1 | ||
| 99 | ( -224 -192 16 ) ( -223 -192 16 ) ( -224 -191 16 ) prototype/proto_green 32 -32 0 1 1 | ||
| 100 | ( -160 -128 24 ) ( -160 -127 24 ) ( -159 -128 24 ) prototype/proto_green 32 -32 0 1 1 | ||
| 101 | ( -160 -128 32 ) ( -159 -128 32 ) ( -160 -128 33 ) prototype/proto_green 32 0 0 1 1 | ||
| 102 | ( -192 -128 32 ) ( -192 -128 33 ) ( -192 -127 32 ) prototype/proto_green 32 0 0 1 1 | ||
| 103 | } | ||
| 104 | // brush 11 | ||
| 105 | { | ||
| 106 | ( -320 384.80404050710666 112 ) ( -320 431.19595949289334 16 ) ( -320 431.19595949289334 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 107 | ( -287.19595949289334 352 112 ) ( -320 384.80404050710666 16 ) ( -320 384.80404050710666 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 108 | ( -287.19595949289334 464 112 ) ( -320 431.19595949289334 16 ) ( -287.19595949289334 464 16 ) prototype/proto_blue 0 0 0 1 1 | ||
| 109 | ( -240.80404050710666 352 112 ) ( -287.19595949289334 352 16 ) ( -287.19595949289334 352 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 110 | ( -208 431.19595949289334 16 ) ( -240.80404050710666 352 16 ) ( -208 384.80404050710666 16 ) prototype/proto_blue 0 0 0 1 1 | ||
| 111 | ( -208 431.19595949289334 112 ) ( -287.19595949289334 464 112 ) ( -240.80404050710666 464 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 112 | ( -240.80404050710666 464 112 ) ( -287.19595949289334 464 16 ) ( -240.80404050710666 464 16 ) prototype/proto_blue 0 0 0 1 1 | ||
| 113 | ( -208 384.80404050710666 112 ) ( -240.80404050710666 352 16 ) ( -240.80404050710666 352 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 114 | ( -208 431.19595949289334 112 ) ( -240.80404050710666 464 16 ) ( -208 431.19595949289334 16 ) prototype/proto_blue 0 0 0 1 1 | ||
| 115 | ( -208 431.19595949289334 112 ) ( -208 384.80404050710666 16 ) ( -208 384.80404050710666 112 ) prototype/proto_blue 0 0 0 1 1 | ||
| 116 | } | ||
| 117 | // brush 12 | ||
| 118 | { | ||
| 119 | ( -536 344 160 ) ( -592 320.80404050710666 16 ) ( -592 367.19595949289334 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 120 | ( -536 344 160 ) ( -559.1959594928934 288 16 ) ( -592 320.80404050710666 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 121 | ( -536 344 160 ) ( -592 367.19595949289334 16 ) ( -559.1959594928933 400 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 122 | ( -512.8040405071067 288 16 ) ( -559.1959594928934 288 16 ) ( -536 344 160 ) prototype/proto_green 0 0 0 1 1 | ||
| 123 | ( -480 367.19595949289334 16 ) ( -512.8040405071067 288 16 ) ( -480 320.80404050710666 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 124 | ( -512.8040405071067 400 16 ) ( -536 344 160 ) ( -559.1959594928933 400 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 125 | ( -480 320.80404050710666 16 ) ( -512.8040405071067 288 16 ) ( -536 344 160 ) prototype/proto_green 0 0 0 1 1 | ||
| 126 | ( -480 367.19595949289334 16 ) ( -536 344 160 ) ( -512.8040405071067 400 16 ) prototype/proto_green 0 0 0 1 1 | ||
| 127 | ( -480 367.19595949289334 16 ) ( -480 320.80404050710666 16 ) ( -536 344 160 ) prototype/proto_green 0 0 0 1 1 | ||
| 128 | } | ||
| 129 | // brush 13 | ||
| 130 | { | ||
| 131 | ( -608 645.4903320081219 139.11348337068355 ) ( -608 698.5096679918781 116.88651662931647 ) ( -608 698.5096679918781 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 132 | ( -600.2806554605962 695.3122107910265 96 ) ( -608 645.4903320081219 116.88651662931647 ) ( -600.2806554605962 648.6877892089735 96 ) prototype/proto_red -32 -16 0 1 1 | ||
| 133 | ( -600.2806554605962 695.3122107910265 160 ) ( -608 645.4903320081219 139.11348337068355 ) ( -608 698.5096679918781 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 134 | ( -585.773033258633 689.3029569171881 78.97315564038541 ) ( -600.2806554605962 648.6877892089735 96 ) ( -585.773033258633 654.6970430828119 78.97315564038541 ) prototype/proto_red -32 -16 0 1 1 | ||
| 135 | ( -585.773033258633 689.3029569171881 177.02684435961459 ) ( -600.2806554605962 648.6877892089735 160 ) ( -600.2806554605962 695.3122107910265 160 ) prototype/proto_red -32 -16 0 1 1 | ||
| 136 | ( -570.5096679918781 608 139.11348337068355 ) ( -608 645.4903320081219 116.88651662931647 ) ( -608 645.4903320081219 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 137 | ( -570.5096679918781 736 139.11348337068355 ) ( -608 698.5096679918781 116.88651662931647 ) ( -570.5096679918781 736 116.88651662931647 ) prototype/proto_red -42.509644 -16 0 1 1 | ||
| 138 | ( -567.3122107910265 728.2806554605963 96 ) ( -608 698.5096679918781 116.88651662931647 ) ( -600.2806554605962 695.3122107910265 96 ) prototype/proto_red -32 -16 0 1 1 | ||
| 139 | ( -608 645.4903320081219 116.88651662931647 ) ( -567.3122107910265 615.7193445394038 96 ) ( -600.2806554605962 648.6877892089735 96 ) prototype/proto_red -32 -16 0 1 1 | ||
| 140 | ( -608 645.4903320081219 139.11348337068355 ) ( -567.3122107910265 615.7193445394038 160 ) ( -570.5096679918781 608 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 141 | ( -608 698.5096679918781 139.11348337068355 ) ( -567.3122107910265 728.2806554605962 160 ) ( -600.2806554605962 695.3122107910265 160 ) prototype/proto_red -32 -16 0 1 1 | ||
| 142 | ( -561.3029569171881 630.226966741367 177.02684435961459 ) ( -600.2806554605962 648.6877892089735 160 ) ( -585.773033258633 654.6970430828118 177.02684435961459 ) prototype/proto_red 48 32 0 1 1 | ||
| 143 | ( -561.3029569171881 630.226966741367 78.97315564038541 ) ( -600.2806554605962 648.6877892089735 96 ) ( -567.3122107910265 615.7193445394038 96 ) prototype/proto_red 48 32 0 1 1 | ||
| 144 | ( -561.3029569171881 713.773033258633 177.02684435961459 ) ( -600.2806554605962 695.3122107910265 160 ) ( -567.3122107910265 728.2806554605962 160 ) prototype/proto_red 48 32 0 1 1 | ||
| 145 | ( -561.3029569171881 713.773033258633 78.97315564038541 ) ( -600.2806554605962 695.3122107910265 96 ) ( -585.773033258633 689.3029569171881 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 146 | ( -566.226966741367 681.2067110746899 188.14032773029814 ) ( -585.773033258633 654.6970430828118 177.02684435961459 ) ( -585.773033258633 689.3029569171881 177.02684435961459 ) prototype/proto_red 48 32 0 1 1 | ||
| 147 | ( -553.20671107469 694.2269667413672 188.14032773029814 ) ( -585.773033258633 689.3029569171881 177.02684435961459 ) ( -561.3029569171881 713.773033258633 177.02684435961459 ) prototype/proto_red 48 32 0 1 1 | ||
| 148 | ( -553.20671107469 649.7730332586328 188.14032773029814 ) ( -585.773033258633 654.6970430828118 177.02684435961459 ) ( -566.226966741367 662.7932889253101 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 149 | ( -544 672 64 ) ( -585.773033258633 689.3029569171881 78.97315564038541 ) ( -585.773033258633 654.6970430828119 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 150 | ( -544 672 64 ) ( -585.773033258633 654.6970430828119 78.97315564038541 ) ( -561.3029569171881 630.226966741367 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 151 | ( -544 672 64 ) ( -561.3029569171881 713.773033258633 78.97315564038541 ) ( -585.773033258633 689.3029569171881 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 152 | ( -544 672 192 ) ( -566.226966741367 662.7932889253101 188.14032773029814 ) ( -566.226966741367 681.2067110746899 188.14032773029814 ) prototype/proto_red 48.00003 32 0 1 1 | ||
| 153 | ( -544 672 192 ) ( -553.20671107469 649.7730332586328 188.14032773029814 ) ( -566.226966741367 662.7932889253101 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 154 | ( -544 672 192 ) ( -566.226966741367 681.2067110746899 188.14032773029814 ) ( -553.20671107469 694.2269667413672 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 155 | ( -517.4903320081219 608 139.11348337068355 ) ( -570.5096679918781 608 116.88651662931647 ) ( -570.5096679918781 608 139.11348337068355 ) prototype/proto_red 48 -16 0 1 1 | ||
| 156 | ( -517.4903320081219 608 116.88651662931647 ) ( -567.3122107910265 615.7193445394038 96 ) ( -570.5096679918781 608 116.88651662931647 ) prototype/proto_red 48 -16 0 1 1 | ||
| 157 | ( -517.4903320081219 608 139.11348337068355 ) ( -567.3122107910265 615.7193445394038 160 ) ( -520.6877892089736 615.7193445394038 160 ) prototype/proto_red 48 -16 0 1 1 | ||
| 158 | ( -520.6877892089735 615.7193445394038 96 ) ( -561.3029569171881 630.226966741367 78.97315564038541 ) ( -567.3122107910265 615.7193445394038 96 ) prototype/proto_red 48 -16 0 1 1 | ||
| 159 | ( -520.6877892089736 615.7193445394038 160 ) ( -561.3029569171881 630.226966741367 177.02684435961459 ) ( -526.6970430828119 630.226966741367 177.02684435961459 ) prototype/proto_red 48 -16 0 1 1 | ||
| 160 | ( -526.6970430828119 630.226966741367 177.02684435961459 ) ( -553.20671107469 649.7730332586328 188.14032773029814 ) ( -534.79328892531 649.7730332586328 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 161 | ( -526.6970430828119 630.226966741367 78.97315564038541 ) ( -544 672 64 ) ( -561.3029569171881 630.226966741367 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 162 | ( -534.79328892531 649.7730332586328 188.14032773029814 ) ( -553.20671107469 649.7730332586328 188.14032773029814 ) ( -544 672 192 ) prototype/proto_red 48 32 0 1 1 | ||
| 163 | ( -534.79328892531 694.2269667413672 188.14032773029814 ) ( -544 672 192 ) ( -553.20671107469 694.2269667413672 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 164 | ( -526.6970430828119 713.773033258633 78.97315564038541 ) ( -561.3029569171881 713.773033258633 78.97315564038541 ) ( -544 672 64 ) prototype/proto_red 48 32 0 1 1 | ||
| 165 | ( -526.6970430828119 713.773033258633 177.02684435961459 ) ( -553.20671107469 694.2269667413672 188.14032773029814 ) ( -561.3029569171881 713.773033258633 177.02684435961459 ) prototype/proto_red 48 32 0 1 1 | ||
| 166 | ( -520.6877892089735 728.2806554605963 96 ) ( -561.3029569171881 713.773033258633 78.97315564038541 ) ( -526.6970430828119 713.773033258633 78.97315564038541 ) prototype/proto_red 48 -16 0 1 1 | ||
| 167 | ( -520.6877892089736 728.2806554605962 160 ) ( -561.3029569171881 713.773033258633 177.02684435961459 ) ( -567.3122107910265 728.2806554605962 160 ) prototype/proto_red 48 -16 0 1 1 | ||
| 168 | ( -517.4903320081219 736 139.11348337068355 ) ( -567.3122107910265 728.2806554605962 160 ) ( -570.5096679918781 736 139.11348337068355 ) prototype/proto_red 48 -16 0 1 1 | ||
| 169 | ( -517.4903320081219 736 116.88651662931647 ) ( -567.3122107910265 728.2806554605963 96 ) ( -520.6877892089735 728.2806554605963 96 ) prototype/proto_red 48 -16 0 1 1 | ||
| 170 | ( -517.4903320081219 736 139.11348337068355 ) ( -570.5096679918781 736 116.88651662931647 ) ( -517.4903320081219 736 116.88651662931647 ) prototype/proto_red 48 -16 0 1 1 | ||
| 171 | ( -521.773033258633 662.7932889253101 188.14032773029814 ) ( -534.79328892531 649.7730332586328 188.14032773029814 ) ( -544 672 192 ) prototype/proto_red 48 32 0 1 1 | ||
| 172 | ( -521.773033258633 681.2067110746899 188.14032773029814 ) ( -544 672 192 ) ( -534.79328892531 694.2269667413672 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 173 | ( -521.773033258633 681.2067110746899 188.14032773029814 ) ( -521.773033258633 662.7932889253101 188.14032773029814 ) ( -544 672 192 ) prototype/proto_red 47.99997 32 0 1 1 | ||
| 174 | ( -502.22696674136705 654.6970430828119 78.97315564038541 ) ( -544 672 64 ) ( -526.6970430828119 630.226966741367 78.97315564038541 ) prototype/proto_red 47.99997 32 0 1 1 | ||
| 175 | ( -502.22696674136705 689.3029569171881 78.97315564038541 ) ( -526.6970430828119 713.773033258633 78.97315564038541 ) ( -544 672 64 ) prototype/proto_red 47.99997 32 0 1 1 | ||
| 176 | ( -502.22696674136705 689.3029569171881 78.97315564038541 ) ( -544 672 64 ) ( -502.22696674136705 654.6970430828119 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 177 | ( -502.2269667413671 654.6970430828118 177.02684435961459 ) ( -534.79328892531 649.7730332586328 188.14032773029814 ) ( -521.773033258633 662.7932889253101 188.14032773029814 ) prototype/proto_red 47.99997 32 0 1 1 | ||
| 178 | ( -534.79328892531 694.2269667413672 188.14032773029814 ) ( -502.2269667413671 689.3029569171881 177.02684435961459 ) ( -521.773033258633 681.2067110746899 188.14032773029814 ) prototype/proto_red 47.99997 32 0 1 1 | ||
| 179 | ( -502.2269667413671 689.3029569171881 177.02684435961459 ) ( -521.773033258633 662.7932889253101 188.14032773029814 ) ( -521.773033258633 681.2067110746899 188.14032773029814 ) prototype/proto_red 48 32 0 1 1 | ||
| 180 | ( -487.71934453940366 695.3122107910265 96 ) ( -526.6970430828119 713.773033258633 78.97315564038541 ) ( -502.22696674136705 689.3029569171881 78.97315564038541 ) prototype/proto_red 48 32 0 1 1 | ||
| 181 | ( -487.71934453940366 648.6877892089735 160 ) ( -526.6970430828119 630.226966741367 177.02684435961459 ) ( -502.2269667413671 654.6970430828118 177.02684435961459 ) prototype/proto_red 48 32 0 1 1 | ||
| 182 | ( -487.71934453940366 648.6877892089735 96 ) ( -526.6970430828119 630.226966741367 78.97315564038541 ) ( -520.6877892089735 615.7193445394038 96 ) prototype/proto_red 48 32 0 1 1 | ||
| 183 | ( -487.71934453940366 695.3122107910265 160 ) ( -526.6970430828119 713.773033258633 177.02684435961459 ) ( -520.6877892089736 728.2806554605962 160 ) prototype/proto_red 48 32 0 1 1 | ||
| 184 | ( -520.6877892089736 728.2806554605962 160 ) ( -480 698.5096679918781 139.11348337068355 ) ( -487.71934453940366 695.3122107910265 160 ) prototype/proto_red 48 -16 0 1 1 | ||
| 185 | ( -520.6877892089736 615.7193445394038 160 ) ( -480 645.4903320081219 139.11348337068355 ) ( -517.4903320081219 608 139.11348337068355 ) prototype/proto_red 10.94873 30.987251 0 1 1.1283555 | ||
| 186 | ( -480 645.4903320081219 116.88651662931647 ) ( -520.6877892089735 615.7193445394038 96 ) ( -517.4903320081219 608 116.88651662931647 ) prototype/proto_red -32 -16 0 1 1 | ||
| 187 | ( -480 698.5096679918781 116.88651662931647 ) ( -520.6877892089735 728.2806554605963 96 ) ( -487.71934453940366 695.3122107910265 96 ) prototype/proto_red 5.0512695 35.8916 180 1 -1.1283555 | ||
| 188 | ( -480 645.4903320081219 139.11348337068355 ) ( -517.4903320081219 608 116.88651662931647 ) ( -517.4903320081219 608 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 189 | ( -480 698.5096679918781 139.11348337068355 ) ( -517.4903320081219 736 116.88651662931647 ) ( -480 698.5096679918781 116.88651662931647 ) prototype/proto_red 10.509644 -16 180 1 -1 | ||
| 190 | ( -502.2269667413671 654.6970430828118 177.02684435961459 ) ( -487.71934453940366 695.3122107910265 160 ) ( -487.71934453940366 648.6877892089735 160 ) prototype/proto_red -32 -16 0 1 1 | ||
| 191 | ( -487.71934453940366 695.3122107910265 96 ) ( -502.22696674136705 654.6970430828119 78.97315564038541 ) ( -487.71934453940366 648.6877892089735 96 ) prototype/proto_red -32 -16 0 1 1 | ||
| 192 | ( -480 698.5096679918781 139.11348337068355 ) ( -487.71934453940366 648.6877892089735 160 ) ( -487.71934453940366 695.3122107910265 160 ) prototype/proto_red -32 -16 0 1 1 | ||
| 193 | ( -480 698.5096679918781 116.88651662931647 ) ( -487.71934453940366 648.6877892089735 96 ) ( -480 645.4903320081219 116.88651662931647 ) prototype/proto_red -32 -16 0 1 1 | ||
| 194 | ( -480 698.5096679918781 139.11348337068355 ) ( -480 645.4903320081219 116.88651662931647 ) ( -480 645.4903320081219 139.11348337068355 ) prototype/proto_red -32 -16 0 1 1 | ||
| 195 | } | ||
| 196 | // brush 14 | ||
| 197 | { | ||
| 198 | ( -496 -320 80 ) ( -496 -319 80 ) ( -496 -320 81 ) prototype/proto_green 0 16 0 1 1 | ||
| 199 | ( -496 -320 80 ) ( -496 -320 81 ) ( -495 -320 80 ) prototype/proto_green -16 16 0 1 1 | ||
| 200 | ( -496 -320 80 ) ( -495 -320 80 ) ( -496 -319 80 ) prototype/proto_green -48 -32 0 1 1 | ||
| 201 | ( -432 -256 144 ) ( -432 -255 144 ) ( -431 -256 144 ) prototype/proto_green -48 0 0 1 1 | ||
| 202 | ( -432 -256 96 ) ( -431 -256 96 ) ( -432 -256 97 ) prototype/proto_green -16 16 0 1 1 | ||
| 203 | ( -432 -256 96 ) ( -432 -256 97 ) ( -432 -255 96 ) prototype/proto_green 0 16 0 1 1 | ||
| 204 | } | ||
| 205 | // brush 15 | ||
| 206 | { | ||
| 207 | ( -416 -320 48 ) ( -416 -319 48 ) ( -416 -320 49 ) prototype/proto_green 0 -16 0 1 1 | ||
| 208 | ( -416 -320 48 ) ( -416 -320 49 ) ( -415 -320 48 ) prototype/proto_green -32 -16 0 1 1 | ||
| 209 | ( -416 -320 48 ) ( -415 -320 48 ) ( -416 -319 48 ) prototype/proto_green 0 -32 0 1 1 | ||
| 210 | ( -352 -256 112 ) ( -352 -255 112 ) ( -351 -256 112 ) prototype/proto_green 0 0 0 1 1 | ||
| 211 | ( -352 -256 64 ) ( -351 -256 64 ) ( -352 -256 65 ) prototype/proto_green -32 -16 0 1 1 | ||
| 212 | ( -352 -256 64 ) ( -352 -256 65 ) ( -352 -255 64 ) prototype/proto_green 0 -16 0 1 1 | ||
| 213 | } | ||
| 214 | // brush 16 | ||
| 215 | { | ||
| 216 | ( -336 -320 16 ) ( -336 -319 16 ) ( -336 -320 17 ) prototype/proto_green 0 -48 0 1 1 | ||
| 217 | ( -336 -320 16 ) ( -336 -320 17 ) ( -335 -320 16 ) prototype/proto_green -48 -48 0 1 1 | ||
| 218 | ( -336 -320 16 ) ( -335 -320 16 ) ( -336 -319 16 ) prototype/proto_green -16 -32 0 1 1 | ||
| 219 | ( -272 -256 80 ) ( -272 -255 80 ) ( -271 -256 80 ) prototype/proto_green -16 0 0 1 1 | ||
| 220 | ( -272 -256 32 ) ( -271 -256 32 ) ( -272 -256 33 ) prototype/proto_green -48 -48 0 1 1 | ||
| 221 | ( -272 -256 32 ) ( -272 -256 33 ) ( -272 -255 32 ) prototype/proto_green 0 -48 0 1 1 | ||
| 222 | } | ||
| 223 | // brush 17 | ||
| 224 | { | ||
| 225 | ( -256 -320 16 ) ( -256 -319 16 ) ( -256 -320 17 ) prototype/proto_green 0 -48 0 1 1 | ||
| 226 | ( -256 -320 16 ) ( -256 -320 17 ) ( -255 -320 16 ) prototype/proto_green 0 -48 0 1 1 | ||
| 227 | ( -256 -320 16 ) ( -255 -320 16 ) ( -256 -319 16 ) prototype/proto_green -32 -32 0 1 1 | ||
| 228 | ( -192 -256 48 ) ( -192 -255 48 ) ( -191 -256 48 ) prototype/proto_green -32 0 0 1 1 | ||
| 229 | ( -192 -256 32 ) ( -191 -256 32 ) ( -192 -256 33 ) prototype/proto_green 0 -48 0 1 1 | ||
| 230 | ( -192 -256 32 ) ( -192 -256 33 ) ( -192 -255 32 ) prototype/proto_green 0 -48 0 1 1 | ||
| 231 | } | ||
| 42 | } | 232 | } |
| 43 | // entity 1 | 233 | // entity 1 |
| 44 | { | 234 | { |
diff --git a/maps/demo3.map b/maps/demo3.map index f12f33c..d3bc665 100644 --- a/maps/demo3.map +++ b/maps/demo3.map | |||
| @@ -210,6 +210,193 @@ | |||
| 210 | ( -72 -152 16 ) ( -71 -152 16 ) ( -72 -152 17 ) environment/planks_012 -168 0 0 1 1 | 210 | ( -72 -152 16 ) ( -71 -152 16 ) ( -72 -152 17 ) environment/planks_012 -168 0 0 1 1 |
| 211 | ( -72 -152 16 ) ( -72 -152 17 ) ( -72 -151 16 ) environment/planks_012 -24 0 0 1 1 | 211 | ( -72 -152 16 ) ( -72 -152 17 ) ( -72 -151 16 ) environment/planks_012 -24 0 0 1 1 |
| 212 | } | 212 | } |
| 213 | // brush 23 | ||
| 214 | { | ||
| 215 | ( -160 208 80 ) ( -160 209 80 ) ( -160 208 81 ) prototype/proto_green -16 16 0 1 1 | ||
| 216 | ( -160 208 80 ) ( -160 208 81 ) ( -159 208 80 ) prototype/proto_green 32 16 0 1 1 | ||
| 217 | ( -160 208 80 ) ( -159 208 80 ) ( -160 209 80 ) prototype/proto_green 0 -16 0 1 1 | ||
| 218 | ( -96 272 144 ) ( -96 273 144 ) ( -95 272 144 ) prototype/proto_green 0 16 0 1 1 | ||
| 219 | ( -96 272 96 ) ( -95 272 96 ) ( -96 272 97 ) prototype/proto_green 32 16 0 1 1 | ||
| 220 | ( -96 272 96 ) ( -96 272 97 ) ( -96 273 96 ) prototype/proto_green -16 16 0 1 1 | ||
| 221 | } | ||
| 222 | // brush 24 | ||
| 223 | { | ||
| 224 | ( -80 208 48 ) ( -80 209 48 ) ( -80 208 49 ) prototype/proto_green -16 -16 0 1 1 | ||
| 225 | ( -80 208 48 ) ( -80 208 49 ) ( -79 208 48 ) prototype/proto_green -48 -16 0 1 1 | ||
| 226 | ( -80 208 48 ) ( -79 208 48 ) ( -80 209 48 ) prototype/proto_green -16 -16 0 1 1 | ||
| 227 | ( -16 272 112 ) ( -16 273 112 ) ( -15 272 112 ) prototype/proto_green -16 16 0 1 1 | ||
| 228 | ( -16 272 64 ) ( -15 272 64 ) ( -16 272 65 ) prototype/proto_green -48 -16 0 1 1 | ||
| 229 | ( -16 272 64 ) ( -16 272 65 ) ( -16 273 64 ) prototype/proto_green -16 -16 0 1 1 | ||
| 230 | } | ||
| 231 | // brush 25 | ||
| 232 | { | ||
| 233 | ( 0 208 16 ) ( 0 209 16 ) ( 0 208 17 ) prototype/proto_green -16 -48 0 1 1 | ||
| 234 | ( 0 208 16 ) ( 0 208 17 ) ( 1 208 16 ) prototype/proto_green 0 -48 0 1 1 | ||
| 235 | ( 0 208 16 ) ( 1 208 16 ) ( 0 209 16 ) prototype/proto_green -32 -16 0 1 1 | ||
| 236 | ( 64 272 80 ) ( 64 273 80 ) ( 65 272 80 ) prototype/proto_green -32 16 0 1 1 | ||
| 237 | ( 64 272 32 ) ( 65 272 32 ) ( 64 272 33 ) prototype/proto_green 0 -48 0 1 1 | ||
| 238 | ( 64 272 32 ) ( 64 272 33 ) ( 64 273 32 ) prototype/proto_green -16 -48 0 1 1 | ||
| 239 | } | ||
| 240 | // brush 26 | ||
| 241 | { | ||
| 242 | ( 80 208 16 ) ( 80 209 16 ) ( 80 208 17 ) prototype/proto_green -16 -48 0 1 1 | ||
| 243 | ( 80 208 16 ) ( 80 208 17 ) ( 81 208 16 ) prototype/proto_green 48 -48 0 1 1 | ||
| 244 | ( 80 208 16 ) ( 81 208 16 ) ( 80 209 16 ) prototype/proto_green 16 -16 0 1 1 | ||
| 245 | ( 144 272 48 ) ( 144 273 48 ) ( 145 272 48 ) prototype/proto_green 16 16 0 1 1 | ||
| 246 | ( 144 272 32 ) ( 145 272 32 ) ( 144 272 33 ) prototype/proto_green 48 -48 0 1 1 | ||
| 247 | ( 144 272 32 ) ( 144 272 33 ) ( 144 273 32 ) prototype/proto_green -16 -48 0 1 1 | ||
| 248 | } | ||
| 249 | // brush 27 | ||
| 250 | { | ||
| 251 | ( 144 64 16 ) ( 144 65 16 ) ( 144 64 17 ) prototype/proto_green 0 16 0 1 1 | ||
| 252 | ( 144 64 16 ) ( 144 64 17 ) ( 145 64 16 ) prototype/proto_green -16 16 0 1 1 | ||
| 253 | ( 144 64 16 ) ( 145 64 16 ) ( 144 65 16 ) prototype/proto_green -48 -32 0 1 1 | ||
| 254 | ( 208 128 24 ) ( 208 129 24 ) ( 209 128 24 ) prototype/proto_green -48 0 0 1 1 | ||
| 255 | ( 208 128 32 ) ( 209 128 32 ) ( 208 128 33 ) prototype/proto_green -16 16 0 1 1 | ||
| 256 | ( 176 128 32 ) ( 176 128 33 ) ( 176 129 32 ) prototype/proto_green 0 16 0 1 1 | ||
| 257 | } | ||
| 258 | // brush 28 | ||
| 259 | { | ||
| 260 | ( 112 64 24 ) ( 112 65 24 ) ( 112 64 25 ) prototype/proto_green 0 24 0 1 1 | ||
| 261 | ( 112 64 24 ) ( 112 64 25 ) ( 113 64 24 ) prototype/proto_green 16 24 0 1 1 | ||
| 262 | ( 112 64 24 ) ( 113 64 24 ) ( 112 65 24 ) prototype/proto_green -16 -32 0 1 1 | ||
| 263 | ( 176 128 32 ) ( 176 129 32 ) ( 177 128 32 ) prototype/proto_green -16 0 0 1 1 | ||
| 264 | ( 176 128 40 ) ( 177 128 40 ) ( 176 128 41 ) prototype/proto_green 16 24 0 1 1 | ||
| 265 | ( 144 128 40 ) ( 144 128 41 ) ( 144 129 40 ) prototype/proto_green 0 24 0 1 1 | ||
| 266 | } | ||
| 267 | // brush 29 | ||
| 268 | { | ||
| 269 | ( 80 64 32 ) ( 80 65 32 ) ( 80 64 33 ) prototype/proto_green 0 32 0 1 1 | ||
| 270 | ( 80 64 32 ) ( 80 64 33 ) ( 81 64 32 ) prototype/proto_green 48 32 0 1 1 | ||
| 271 | ( 80 64 32 ) ( 81 64 32 ) ( 80 65 32 ) prototype/proto_green 16 -32 0 1 1 | ||
| 272 | ( 144 128 40 ) ( 144 129 40 ) ( 145 128 40 ) prototype/proto_green 16 0 0 1 1 | ||
| 273 | ( 144 128 48 ) ( 145 128 48 ) ( 144 128 49 ) prototype/proto_green 48 32 0 1 1 | ||
| 274 | ( 112 128 48 ) ( 112 128 49 ) ( 112 129 48 ) prototype/proto_green 0 32 0 1 1 | ||
| 275 | } | ||
| 276 | // brush 30 | ||
| 277 | { | ||
| 278 | ( 48 64 40 ) ( 48 65 40 ) ( 48 64 41 ) prototype/proto_green 0 -24 0 1 1 | ||
| 279 | ( 48 64 40 ) ( 48 64 41 ) ( 49 64 40 ) prototype/proto_green 16 -24 0 1 1 | ||
| 280 | ( 48 64 40 ) ( 49 64 40 ) ( 48 65 40 ) prototype/proto_green 48 -32 0 1 1 | ||
| 281 | ( 112 128 48 ) ( 112 129 48 ) ( 113 128 48 ) prototype/proto_green 48 0 0 1 1 | ||
| 282 | ( 112 128 56 ) ( 113 128 56 ) ( 112 128 57 ) prototype/proto_green 16 -24 0 1 1 | ||
| 283 | ( 80 128 56 ) ( 80 128 57 ) ( 80 129 56 ) prototype/proto_green 0 -24 0 1 1 | ||
| 284 | } | ||
| 285 | // brush 31 | ||
| 286 | { | ||
| 287 | ( 436 144 96 ) ( 392 127.43145750507618 0 ) ( 392 160.56854249492383 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 288 | ( 436 144 96 ) ( 417.77460325558377 104 0 ) ( 392 127.43145750507618 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 289 | ( 436 144 96 ) ( 392 160.56854249492383 0 ) ( 417.7746032555838 184 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 290 | ( 454.2253967444162 104 0 ) ( 417.77460325558377 104 0 ) ( 436 144 96 ) prototype/proto_red 0 0 0 1 1 | ||
| 291 | ( 480 160.5685424949238 0 ) ( 454.2253967444162 104 0 ) ( 480 127.4314575050762 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 292 | ( 454.2253967444162 184 0 ) ( 436 144 96 ) ( 417.7746032555838 184 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 293 | ( 480 127.4314575050762 0 ) ( 454.2253967444162 104 0 ) ( 436 144 96 ) prototype/proto_red 0 0 0 1 1 | ||
| 294 | ( 480 160.5685424949238 0 ) ( 436 144 96 ) ( 454.2253967444162 184 0 ) prototype/proto_red 0 0 0 1 1 | ||
| 295 | ( 480 160.5685424949238 0 ) ( 480 127.4314575050762 0 ) ( 436 144 96 ) prototype/proto_red 0 0 0 1 1 | ||
| 296 | } | ||
| 297 | // brush 32 | ||
| 298 | { | ||
| 299 | ( 400 -39.59797974644667 58.2513343960095 ) ( 400 -16.402020253553324 45.74866560399051 ) ( 400 -16.402020253553324 58.2513343960095 ) prototype/proto_blue 0 16 0 1 1 | ||
| 300 | ( 404.3421313034146 -17.80090777892595 34 ) ( 400 -39.59797974644667 45.74866560399051 ) ( 404.3421313034146 -38.19909222107405 34 ) prototype/proto_blue 0 16 0 1 1 | ||
| 301 | ( 404.3421313034146 -17.80090777892595 70 ) ( 400 -39.59797974644667 58.2513343960095 ) ( 400 -16.402020253553324 58.2513343960095 ) prototype/proto_blue 0 15.999996 0 1 1 | ||
| 302 | ( 412.502668792019 -20.429956348730187 24.422400047716792 ) ( 404.3421313034146 -38.19909222107405 34 ) ( 412.502668792019 -35.57004365126981 24.422400047716792 ) prototype/proto_blue 0 16 0 1 1 | ||
| 303 | ( 412.502668792019 -20.42995634873019 79.57759995228321 ) ( 404.3421313034146 -38.19909222107404 70 ) ( 404.3421313034146 -17.80090777892595 70 ) prototype/proto_blue 0 16.000004 0 1 1 | ||
| 304 | ( 421.08831175456856 -56 58.2513343960095 ) ( 400 -39.59797974644667 45.74866560399051 ) ( 400 -39.59797974644667 58.2513343960095 ) prototype/proto_blue -48 16 0 1 1 | ||
| 305 | ( 421.08831175456856 0 58.2513343960095 ) ( 400 -16.402020253553324 45.74866560399051 ) ( 421.08831175456856 0 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 306 | ( 422.88688143004765 -52.62278676401087 34 ) ( 400 -39.59797974644667 45.74866560399051 ) ( 421.08831175456856 -56 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 307 | ( 422.88688143004765 -52.62278676401087 70 ) ( 400 -39.59797974644667 58.2513343960095 ) ( 404.3421313034146 -38.19909222107404 70 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 308 | ( 422.88688143004765 -3.377213235989125 34 ) ( 400 -16.402020253553324 45.74866560399051 ) ( 404.3421313034146 -17.80090777892595 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 309 | ( 422.88688143004765 -3.3772132359891285 70 ) ( 400 -16.402020253553324 58.2513343960095 ) ( 421.08831175456856 0 58.2513343960095 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 310 | ( 423.497331207981 -23.972063904823138 85.8289343482927 ) ( 412.502668792019 -35.57004365126981 79.57759995228321 ) ( 412.502668792019 -20.42995634873019 79.57759995228321 ) prototype/proto_blue -48 0 0 1 1 | ||
| 311 | ( 426.2670867340816 -9.724297949348095 24.422400047716792 ) ( 404.3421313034146 -17.80090777892595 34 ) ( 412.502668792019 -20.429956348730187 24.422400047716792 ) prototype/proto_blue -48 16 0 1 1 | ||
| 312 | ( 426.2670867340816 -46.27570205065191 24.422400047716792 ) ( 404.3421313034146 -38.19909222107405 34 ) ( 422.88688143004765 -52.62278676401087 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 313 | ( 404.3421313034146 -38.19909222107404 70 ) ( 426.26708673408166 -46.2757020506519 79.57759995228321 ) ( 422.88688143004765 -52.62278676401087 70 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 314 | ( 426.26708673408166 -9.724297949348102 79.57759995228321 ) ( 404.3421313034146 -17.80090777892595 70 ) ( 422.88688143004765 -3.3772132359891285 70 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 315 | ( 436 -28 16 ) ( 412.502668792019 -20.429956348730187 24.422400047716792 ) ( 412.502668792019 -35.57004365126981 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 316 | ( 430.82122502048685 -37.724297949348106 85.8289343482927 ) ( 412.502668792019 -35.57004365126981 79.57759995228321 ) ( 423.497331207981 -32.02793609517686 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 317 | ( 430.82122502048685 -18.2757020506519 85.8289343482927 ) ( 412.502668792019 -20.42995634873019 79.57759995228321 ) ( 426.26708673408166 -9.724297949348102 79.57759995228321 ) prototype/proto_blue -48 0 0 1 1 | ||
| 318 | ( 436 -28 16 ) ( 412.502668792019 -35.57004365126981 24.422400047716792 ) ( 426.2670867340816 -46.27570205065191 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 319 | ( 436 -28 16 ) ( 426.2670867340816 -9.724297949348095 24.422400047716792 ) ( 412.502668792019 -20.429956348730187 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 320 | ( 436 -28 88 ) ( 423.497331207981 -32.02793609517686 85.8289343482927 ) ( 423.497331207981 -23.972063904823138 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 321 | ( 436 -28 88 ) ( 430.82122502048685 -37.724297949348106 85.8289343482927 ) ( 423.497331207981 -32.02793609517686 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 322 | ( 436 -28 88 ) ( 423.497331207981 -23.972063904823138 85.8289343482927 ) ( 430.82122502048685 -18.2757020506519 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 323 | ( 449.11311856995235 -52.622786764010876 34 ) ( 426.2670867340816 -46.27570205065191 24.422400047716792 ) ( 422.88688143004765 -52.62278676401087 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 324 | ( 450.91168824543144 -56 58.2513343960095 ) ( 421.08831175456856 -56 45.74866560399051 ) ( 421.08831175456856 -56 58.2513343960095 ) prototype/proto_blue -48 16 0 1 1 | ||
| 325 | ( 450.91168824543144 -56 45.74866560399051 ) ( 422.88688143004765 -52.62278676401087 34 ) ( 421.08831175456856 -56 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 326 | ( 450.91168824543144 -56 58.2513343960095 ) ( 422.88688143004765 -52.62278676401087 70 ) ( 449.1131185699523 -52.62278676401087 70 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 327 | ( 449.1131185699523 -52.62278676401087 70 ) ( 426.26708673408166 -46.2757020506519 79.57759995228321 ) ( 445.73291326591834 -46.2757020506519 79.57759995228321 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 328 | ( 445.73291326591834 -46.2757020506519 79.57759995228321 ) ( 430.82122502048685 -37.724297949348106 85.8289343482927 ) ( 441.1787749795131 -37.724297949348106 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 329 | ( 445.73291326591834 -46.27570205065191 24.422400047716792 ) ( 436 -28 16 ) ( 426.2670867340816 -46.27570205065191 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 330 | ( 441.1787749795131 -37.724297949348106 85.8289343482927 ) ( 430.82122502048685 -37.724297949348106 85.8289343482927 ) ( 436 -28 88 ) prototype/proto_blue -48 0 0 1 1 | ||
| 331 | ( 441.1787749795131 -18.2757020506519 85.8289343482927 ) ( 436 -28 88 ) ( 430.82122502048685 -18.2757020506519 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 332 | ( 445.73291326591834 -9.724297949348095 24.422400047716792 ) ( 426.2670867340816 -9.724297949348095 24.422400047716792 ) ( 436 -28 16 ) prototype/proto_blue -48 0 0 1 1 | ||
| 333 | ( 445.73291326591834 -9.724297949348102 79.57759995228321 ) ( 430.82122502048685 -18.2757020506519 85.8289343482927 ) ( 426.26708673408166 -9.724297949348102 79.57759995228321 ) prototype/proto_blue -48 0 0 1 1 | ||
| 334 | ( 449.1131185699523 -3.3772132359891285 70 ) ( 426.26708673408166 -9.724297949348102 79.57759995228321 ) ( 422.88688143004765 -3.3772132359891285 70 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 335 | ( 449.11311856995235 -3.377213235989125 34 ) ( 426.2670867340816 -9.724297949348095 24.422400047716792 ) ( 445.73291326591834 -9.724297949348095 24.422400047716792 ) prototype/proto_blue -48 16 0 1 1 | ||
| 336 | ( 450.91168824543144 0 58.2513343960095 ) ( 422.88688143004765 -3.3772132359891285 70 ) ( 421.08831175456856 0 58.2513343960095 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 337 | ( 450.91168824543144 0 45.74866560399051 ) ( 422.88688143004765 -3.377213235989125 34 ) ( 449.11311856995235 -3.377213235989125 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 338 | ( 450.91168824543144 0 58.2513343960095 ) ( 421.08831175456856 0 45.74866560399051 ) ( 450.91168824543144 0 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 339 | ( 448.502668792019 -32.02793609517686 85.8289343482927 ) ( 441.1787749795131 -37.724297949348106 85.8289343482927 ) ( 436 -28 88 ) prototype/proto_blue -48 0 0 1 1 | ||
| 340 | ( 448.502668792019 -23.972063904823145 85.8289343482927 ) ( 436 -28 88 ) ( 441.1787749795131 -18.2757020506519 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 341 | ( 448.502668792019 -23.972063904823145 85.8289343482927 ) ( 448.502668792019 -32.02793609517686 85.8289343482927 ) ( 436 -28 88 ) prototype/proto_blue -48 0 0 1 1 | ||
| 342 | ( 459.497331207981 -35.570043651269806 24.422400047716792 ) ( 436 -28 16 ) ( 445.73291326591834 -46.27570205065191 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 343 | ( 459.497331207981 -20.429956348730197 24.422400047716792 ) ( 445.73291326591834 -9.724297949348095 24.422400047716792 ) ( 436 -28 16 ) prototype/proto_blue -48 0 0 1 1 | ||
| 344 | ( 441.1787749795131 -18.2757020506519 85.8289343482927 ) ( 459.497331207981 -20.429956348730197 79.57759995228321 ) ( 448.502668792019 -23.972063904823145 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 345 | ( 441.1787749795131 -37.724297949348106 85.8289343482927 ) ( 459.497331207981 -35.570043651269806 79.57759995228321 ) ( 445.73291326591834 -46.2757020506519 79.57759995228321 ) prototype/proto_blue -48 0 0 1 1 | ||
| 346 | ( 459.497331207981 -20.429956348730197 24.422400047716792 ) ( 436 -28 16 ) ( 459.497331207981 -35.570043651269806 24.422400047716792 ) prototype/proto_blue -48 0 0 1 1 | ||
| 347 | ( 467.6578686965854 -17.800907778925964 70 ) ( 445.73291326591834 -9.724297949348102 79.57759995228321 ) ( 449.1131185699523 -3.3772132359891285 70 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 348 | ( 467.6578686965854 -38.19909222107404 70 ) ( 445.73291326591834 -46.2757020506519 79.57759995228321 ) ( 459.497331207981 -35.570043651269806 79.57759995228321 ) prototype/proto_blue -48 16.000004 0 1 1 | ||
| 349 | ( 467.6578686965854 -38.19909222107404 34 ) ( 445.73291326591834 -46.27570205065191 24.422400047716792 ) ( 449.11311856995235 -52.622786764010876 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 350 | ( 445.73291326591834 -9.724297949348095 24.422400047716792 ) ( 467.6578686965854 -17.80090777892596 34 ) ( 449.11311856995235 -3.377213235989125 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 351 | ( 459.497331207981 -20.429956348730197 79.57759995228321 ) ( 448.502668792019 -32.02793609517686 85.8289343482927 ) ( 448.502668792019 -23.972063904823145 85.8289343482927 ) prototype/proto_blue -48 0 0 1 1 | ||
| 352 | ( 472 -39.59797974644667 58.2513343960095 ) ( 449.1131185699523 -52.62278676401087 70 ) ( 467.6578686965854 -38.19909222107404 70 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 353 | ( 472 -16.40202025355334 58.2513343960095 ) ( 449.1131185699523 -3.3772132359891285 70 ) ( 450.91168824543144 0 58.2513343960095 ) prototype/proto_blue -48 15.999996 0 1 1 | ||
| 354 | ( 472 -39.59797974644667 45.74866560399051 ) ( 449.11311856995235 -52.622786764010876 34 ) ( 450.91168824543144 -56 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 355 | ( 472 -16.40202025355334 45.74866560399051 ) ( 449.11311856995235 -3.377213235989125 34 ) ( 467.6578686965854 -17.80090777892596 34 ) prototype/proto_blue -48 16 0 1 1 | ||
| 356 | ( 472 -39.59797974644667 58.2513343960095 ) ( 450.91168824543144 -56 45.74866560399051 ) ( 450.91168824543144 -56 58.2513343960095 ) prototype/proto_blue -48 16 0 1 1 | ||
| 357 | ( 472 -16.40202025355334 58.2513343960095 ) ( 450.91168824543144 0 45.74866560399051 ) ( 472 -16.40202025355334 45.74866560399051 ) prototype/proto_blue -48 16 0 1 1 | ||
| 358 | ( 459.497331207981 -35.570043651269806 24.422400047716792 ) ( 467.6578686965854 -17.80090777892596 34 ) ( 459.497331207981 -20.429956348730197 24.422400047716792 ) prototype/proto_blue 0 16 0 1 1 | ||
| 359 | ( 467.6578686965854 -17.800907778925964 70 ) ( 459.497331207981 -35.570043651269806 79.57759995228321 ) ( 459.497331207981 -20.429956348730197 79.57759995228321 ) prototype/proto_blue 0 16.000004 0 1 1 | ||
| 360 | ( 472 -16.40202025355334 45.74866560399051 ) ( 467.6578686965854 -38.19909222107404 34 ) ( 472 -39.59797974644667 45.74866560399051 ) prototype/proto_blue 0 16 0 1 1 | ||
| 361 | ( 467.6578686965854 -38.19909222107404 70 ) ( 472 -16.40202025355334 58.2513343960095 ) ( 472 -39.59797974644667 58.2513343960095 ) prototype/proto_blue 0 15.999996 0 1 1 | ||
| 362 | ( 472 -16.40202025355334 58.2513343960095 ) ( 472 -39.59797974644667 45.74866560399051 ) ( 472 -39.59797974644667 58.2513343960095 ) prototype/proto_blue 0 16 0 1 1 | ||
| 363 | } | ||
| 364 | // brush 33 | ||
| 365 | { | ||
| 366 | ( 16 64 48 ) ( 16 65 48 ) ( 16 64 49 ) prototype/proto_green 0 -16 0 1 1 | ||
| 367 | ( 16 64 48 ) ( 16 64 49 ) ( 17 64 48 ) prototype/proto_green 48 -16 0 1 1 | ||
| 368 | ( 16 64 48 ) ( 17 64 48 ) ( 16 65 48 ) prototype/proto_green 16 -32 0 1 1 | ||
| 369 | ( 80 128 56 ) ( 80 129 56 ) ( 81 128 56 ) prototype/proto_green 16 0 0 1 1 | ||
| 370 | ( 80 128 64 ) ( 81 128 64 ) ( 80 128 65 ) prototype/proto_green 48 -16 0 1 1 | ||
| 371 | ( 48 128 64 ) ( 48 128 65 ) ( 48 129 64 ) prototype/proto_green 0 -16 0 1 1 | ||
| 372 | } | ||
| 373 | // brush 34 | ||
| 374 | { | ||
| 375 | ( -16 64 56 ) ( -16 65 56 ) ( -16 64 57 ) prototype/proto_green 0 -8 0 1 1 | ||
| 376 | ( -16 64 56 ) ( -16 64 57 ) ( -15 64 56 ) prototype/proto_green 16 -8 0 1 1 | ||
| 377 | ( -16 64 56 ) ( -15 64 56 ) ( -16 65 56 ) prototype/proto_green 48 -32 0 1 1 | ||
| 378 | ( 48 128 64 ) ( 48 129 64 ) ( 49 128 64 ) prototype/proto_green 48 0 0 1 1 | ||
| 379 | ( 48 128 72 ) ( 49 128 72 ) ( 48 128 73 ) prototype/proto_green 16 -8 0 1 1 | ||
| 380 | ( 16 128 72 ) ( 16 128 73 ) ( 16 129 72 ) prototype/proto_green 0 -8 0 1 1 | ||
| 381 | } | ||
| 382 | // brush 35 | ||
| 383 | { | ||
| 384 | ( -48 64 64 ) ( -48 65 64 ) ( -48 64 65 ) prototype/proto_green 0 0 0 1 1 | ||
| 385 | ( -48 64 64 ) ( -48 64 65 ) ( -47 64 64 ) prototype/proto_green 48 0 0 1 1 | ||
| 386 | ( -48 64 64 ) ( -47 64 64 ) ( -48 65 64 ) prototype/proto_green 16 -32 0 1 1 | ||
| 387 | ( 16 128 72 ) ( 16 129 72 ) ( 17 128 72 ) prototype/proto_green 16 0 0 1 1 | ||
| 388 | ( 16 128 80 ) ( 17 128 80 ) ( 16 128 81 ) prototype/proto_green 48 0 0 1 1 | ||
| 389 | ( -16 128 80 ) ( -16 128 81 ) ( -16 129 80 ) prototype/proto_green 0 0 0 1 1 | ||
| 390 | } | ||
| 391 | // brush 36 | ||
| 392 | { | ||
| 393 | ( -80 64 72 ) ( -80 65 72 ) ( -80 64 73 ) prototype/proto_green 0 8 0 1 1 | ||
| 394 | ( -80 64 72 ) ( -80 64 73 ) ( -79 64 72 ) prototype/proto_green 16 8 0 1 1 | ||
| 395 | ( -80 64 72 ) ( -79 64 72 ) ( -80 65 72 ) prototype/proto_green 48 -32 0 1 1 | ||
| 396 | ( -16 128 80 ) ( -16 129 80 ) ( -15 128 80 ) prototype/proto_green 48 0 0 1 1 | ||
| 397 | ( -16 128 88 ) ( -15 128 88 ) ( -16 128 89 ) prototype/proto_green 16 8 0 1 1 | ||
| 398 | ( -48 128 88 ) ( -48 128 89 ) ( -48 129 88 ) prototype/proto_green 0 8 0 1 1 | ||
| 399 | } | ||
| 213 | } | 400 | } |
| 214 | // entity 1 | 401 | // entity 1 |
| 215 | { | 402 | { |
| @@ -47,7 +47,9 @@ static void MoveNormal(float dt) { | |||
| 47 | closestHit.distance = FLT_MAX; | 47 | closestHit.distance = FLT_MAX; |
| 48 | bool hitFound = false; | 48 | bool hitFound = false; |
| 49 | 49 | ||
| 50 | float heights[] = { -eyeHeight + 10.0f, -eyeHeight / 2.0f, 0.0f }; | 50 | // Cast rays at different heights to check for obstacles. |
| 51 | // The bottom ray is raised slightly to allow stepping over small ledges/stairs. | ||
| 52 | float heights[] = { -eyeHeight + 18.0f, -eyeHeight / 2.0f, 0.0f }; | ||
| 51 | Vector3 currentPos = game.player.pos; | 53 | Vector3 currentPos = game.player.pos; |
| 52 | 54 | ||
| 53 | for (int i = 0; i < 3; i++) { | 55 | for (int i = 0; i < 3; i++) { |
| @@ -91,6 +93,7 @@ static void MoveNormal(float dt) { | |||
| 91 | 93 | ||
| 92 | float verticalMove = game.player.velocity.y * dt; | 94 | float verticalMove = game.player.velocity.y * dt; |
| 93 | Vector3 vStart = game.player.pos; | 95 | Vector3 vStart = game.player.pos; |
| 96 | float oldY = game.player.pos.y; // Record Y for stair smoothing snap detection | ||
| 94 | 97 | ||
| 95 | if (verticalMove < 0) { | 98 | if (verticalMove < 0) { |
| 96 | Vector3 start = vStart; | 99 | Vector3 start = vStart; |
| @@ -129,6 +132,13 @@ static void MoveNormal(float dt) { | |||
| 129 | game.player.is_grounded = false; | 132 | game.player.is_grounded = false; |
| 130 | } | 133 | } |
| 131 | } | 134 | } |
| 135 | |||
| 136 | // Stair smoothing: detect if the player position snapped vertically (e.g. stepping up a stair) | ||
| 137 | // and apply a counter-offset to the camera to keep the movement visually smooth. | ||
| 138 | float deltaY = game.player.pos.y - oldY; | ||
| 139 | if (game.player.is_grounded && deltaY != 0) { | ||
| 140 | game.player.camera_offset_y -= deltaY; | ||
| 141 | } | ||
| 132 | } | 142 | } |
| 133 | 143 | ||
| 134 | static void MoveFly(float dt) { | 144 | static void MoveFly(float dt) { |
| @@ -164,6 +174,10 @@ void UpdatePlayer(void) { | |||
| 164 | float dt = GetFrameTime(); | 174 | float dt = GetFrameTime(); |
| 165 | Vector3 oldPos = game.player.pos; | 175 | Vector3 oldPos = game.player.pos; |
| 166 | 176 | ||
| 177 | // Decay the stair smoothing offset over time | ||
| 178 | game.player.camera_offset_y = Lerp(game.player.camera_offset_y, 0.0f, 15.0f * dt); | ||
| 179 | if (fabsf(game.player.camera_offset_y) < 0.001f) game.player.camera_offset_y = 0.0f; | ||
| 180 | |||
| 167 | if (IsKeyPressed(KEY_F)) { | 181 | if (IsKeyPressed(KEY_F)) { |
| 168 | game.player.move_mode = (game.player.move_mode == MOVE_NORMAL) ? MOVE_FLY : MOVE_NORMAL; | 182 | game.player.move_mode = (game.player.move_mode == MOVE_NORMAL) ? MOVE_FLY : MOVE_NORMAL; |
| 169 | } | 183 | } |
| @@ -206,6 +220,7 @@ void UpdatePlayer(void) { | |||
| 206 | Vector3 pivot = Vector3Subtract(game.player.pos, (Vector3){ 0, pivotDist, 0 }); | 220 | Vector3 pivot = Vector3Subtract(game.player.pos, (Vector3){ 0, pivotDist, 0 }); |
| 207 | 221 | ||
| 208 | game.camera.position = Vector3Add(pivot, rotatedOffset); | 222 | game.camera.position = Vector3Add(pivot, rotatedOffset); |
| 223 | game.camera.position.y += game.player.camera_offset_y; | ||
| 209 | 224 | ||
| 210 | Vector3 forward = { | 225 | Vector3 forward = { |
| 211 | cosf(game.player.pitch) * sinf(game.player.yaw), | 226 | cosf(game.player.pitch) * sinf(game.player.yaw), |
diff --git a/tbrun.sh b/tbrun.sh new file mode 100755 index 0000000..65eb897 --- /dev/null +++ b/tbrun.sh | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | SCRIPT="$0" | ||
| 4 | case "$SCRIPT" in | ||
| 5 | /*) ;; | ||
| 6 | *) SCRIPT="$(pwd)/$SCRIPT" ;; | ||
| 7 | esac | ||
| 8 | |||
| 9 | # resolve symlinks | ||
| 10 | while [ -L "$SCRIPT" ]; do | ||
| 11 | LINK="$(readlink "$SCRIPT")" | ||
| 12 | case "$LINK" in | ||
| 13 | /*) SCRIPT="$LINK" ;; | ||
| 14 | *) SCRIPT="$(dirname "$SCRIPT")/$LINK" ;; | ||
| 15 | esac | ||
| 16 | done | ||
| 17 | |||
| 18 | SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd -P)" | ||
| 19 | echo "$SCRIPT_DIR" | ||
| 20 | |||
| 21 | MAP="" | ||
| 22 | FPS="" | ||
| 23 | WIDTH="" | ||
| 24 | HEIGHT="" | ||
| 25 | while [ $# -gt 0 ]; do | ||
| 26 | case "$1" in | ||
| 27 | --map) | ||
| 28 | shift | ||
| 29 | MAP="$1" | ||
| 30 | ;; | ||
| 31 | --map=*) | ||
| 32 | MAP="${1#--map=}" | ||
| 33 | ;; | ||
| 34 | --fps) | ||
| 35 | shift | ||
| 36 | FPS="$1" | ||
| 37 | ;; | ||
| 38 | --fps=*) | ||
| 39 | FPS="${1#--fps=}" | ||
| 40 | ;; | ||
| 41 | --width) | ||
| 42 | shift | ||
| 43 | WIDTH="$1" | ||
| 44 | ;; | ||
| 45 | --width=*) | ||
| 46 | WIDTH="${1#--width=}" | ||
| 47 | ;; | ||
| 48 | --height) | ||
| 49 | shift | ||
| 50 | HEIGHT="$1" | ||
| 51 | ;; | ||
| 52 | --height=*) | ||
| 53 | HEIGHT="${1#--height=}" | ||
| 54 | ;; | ||
| 55 | --) shift; break;; | ||
| 56 | *) ;; | ||
| 57 | esac | ||
| 58 | shift | ||
| 59 | done | ||
| 60 | |||
| 61 | cd "$SCRIPT_DIR" | ||
| 62 | DEBUG=1 ./bin/stalag --map "$MAP" \ | ||
| 63 | ${FPS:+--fps "$FPS"} \ | ||
| 64 | ${WIDTH:+--width "$WIDTH"} \ | ||
| 65 | ${HEIGHT:+--height "$HEIGHT"} | ||
diff --git a/textures/prototype/proto_blue.png b/textures/prototype/proto_blue.png new file mode 100644 index 0000000..1c49a57 --- /dev/null +++ b/textures/prototype/proto_blue.png | |||
| Binary files differ | |||
diff --git a/textures/prototype/proto_green.png b/textures/prototype/proto_green.png new file mode 100644 index 0000000..0ce1dd9 --- /dev/null +++ b/textures/prototype/proto_green.png | |||
| Binary files differ | |||
diff --git a/textures/prototype/proto_red.png b/textures/prototype/proto_red.png new file mode 100644 index 0000000..75ac2f2 --- /dev/null +++ b/textures/prototype/proto_red.png | |||
| Binary files differ | |||
diff --git a/textures/prototype/proto_texture.xcf b/textures/prototype/proto_texture.xcf new file mode 100644 index 0000000..9b79209 --- /dev/null +++ b/textures/prototype/proto_texture.xcf | |||
| Binary files differ | |||
diff --git a/trenchbroom/stalag/GameEngineProfiles.cfg b/trenchbroom/stalag/GameEngineProfiles.cfg index eab4cf2..81eda2f 100644 --- a/trenchbroom/stalag/GameEngineProfiles.cfg +++ b/trenchbroom/stalag/GameEngineProfiles.cfg | |||
| @@ -1,10 +1,10 @@ | |||
| 1 | { | 1 | { |
| 2 | "profiles": [ | 2 | "profiles": [ |
| 3 | { | 3 | { |
| 4 | "name": "Stalag", | 4 | "name": "Stalag", |
| 5 | "parameters": "--map ${MAP_BASE_NAME}", | 5 | "parameters": "--fps 120 --width 1920 --height 1080 --map maps/${MAP_BASE_NAME}.map", |
| 6 | "path": "/home/m/Projects/stalag/bin/stalag" | 6 | "path": "/home/m/Projects/stalag/tbrun.sh" |
| 7 | } | 7 | } |
| 8 | ], | 8 | ], |
| 9 | "version": 1 | 9 | "version": 1 |
| 10 | } | 10 | } |
