diff --git a/assets.h b/assets.h index 5b6b117..1ead39e 100644 --- a/assets.h +++ b/assets.h @@ -6229,101 +6229,101 @@ uint16_t LCR_getNextImagePixel(void) static const int32_t LCR_carVertices[] = { - -700, -45, 354, -289, -45, 362, -700, -244, 437, -289, - -239, 442, -700, -327, 636, -289, -319, 636, -700, -244, - 835, -289, -239, 830, -700, -45, 918, -289, -45, 910, - -700, 153, 835, -289, 148, 830, -700, 236, 636, -289, - 228, 636, -700, 153, 437, -289, 148, 442, -500, -45, - 304, -500, -280, 401, -500, -377, 636, -500, -280, 871, - -500, -45, 968, -500, 189, 871, -500, 286, 636, -500, - 189, 401, 698, -45, 918, 287, -45, 910, 698, -244, - 835, 287, -239, 830, 698, -327, 636, 287, -319, 636, - 698, -244, 437, 287, -239, 442, 698, -45, 354, 287, - -45, 362, 698, 153, 437, 287, 148, 442, 698, 236, - 636, 287, 228, 636, 698, 153, 835, 287, 148, 830, - 498, -45, 968, 498, -280, 871, 498, -377, 636, 498, - -280, 401, 498, -45, 304, 498, 189, 401, 498, 286, - 636, 498, 189, 871, -700, -45, -1021, -289, -45, -1013, - -700, -244, -938, -289, -239, -933, -700, -327, -739, -289, - -319, -739, -700, -244, -540, -289, -239, -545, -700, -45, - -457, -289, -45, -465, -700, 153, -540, -289, 148, -545, - -700, 236, -739, -289, 228, -739, -700, 153, -938, -289, - 148, -933, -500, -45, -1071, -500, -280, -974, -500, -377, - -739, -500, -280, -504, -500, -45, -407, -500, 189, -504, - -500, 286, -739, -500, 189, -974, 698, -45, -457, 287, - -45, -465, 698, -244, -540, 287, -239, -545, 698, -327, - -739, 287, -319, -739, 698, -244, -938, 287, -239, -933, - 698, -45, -1021, 287, -45, -1013, 698, 153, -938, 287, - 148, -933, 698, 236, -739, 287, 228, -739, 698, 153, - -540, 287, 148, -545, 498, -45, -407, 498, -280, -504, - 498, -377, -739, 498, -280, -974, 498, -45, -1071, 498, - 189, -974, 498, 286, -739, 498, 189, -504, -357, -140, - 192, -384, -190, -293, -422, 126, 243, -479, 95, -359, - -201, 477, 167, -236, 446, -302, -212, 168, -621, -222, - 122, -799, -272, 207, 462, -232, -109, -847, -245, 180, - 671, -234, -66, 705, -235, -192, -391, -254, -133, 279, - 363, -140, 192, 390, -190, -293, 428, 126, 243, 485, - 95, -359, 207, 477, 167, 242, 446, -302, 218, 168, - -621, 228, 122, -799, 278, 207, 462, 238, -109, -847, - 251, 180, 671, 240, -66, 705, 241, -192, -391, 260, - -133, 279 + -700, -59, -504, -700, -540, -703, -700, -258, -421, -700, + 23, -703, -500, -493, -938, -700, -258, -985, -500, -258, + -1035, -700, -59, -902, -500, -23, -938, -289, -65, -897, + -289, -258, -977, -289, -452, -897, -289, -532, -703, -500, + -591, -703, -700, -458, -504, -500, -493, -468, -289, -452, + -509, -289, -258, -429, -500, -258, -371, -289, -65, -509, + -500, -23, -468, -500, 73, -703, -289, 15, -703, -700, + -458, -902, 698, -59, -902, 698, -540, -703, 698, -258, + -985, 698, 23, -703, 498, -493, -468, 698, -258, -421, + 498, -258, -371, 698, -59, -504, 498, -23, -468, 287, + -65, -509, 287, -258, -429, 287, -452, -509, 287, -532, + -703, 498, -591, -703, 698, -458, -902, 498, -493, -938, + 287, -452, -897, 287, -258, -977, 498, -258, -1035, 287, + -65, -897, 498, -23, -938, 498, 73, -703, 287, 15, + -703, 698, -458, -504, -357, -354, 227, -422, -87, 279, + -479, -118, -323, -201, 264, 202, -236, 233, -266, -234, + -279, 741, -254, -346, 315, 240, -279, 741, 278, -6, + 497, -245, -32, 706, 251, -32, 706, -212, -45, -585, + 207, 264, 202, -272, -6, 497, 242, 233, -266, -222, + -90, -763, 228, -90, -763, 238, -323, -811, -232, -323, + -811, -235, -406, -356, -384, -404, -257, 218, -45, -585, + 241, -406, -356, 260, -346, 315, 363, -354, 227, 390, + -404, -257, 485, -118, -323, 428, -87, 279, -700, -59, + 871, -700, -540, 671, -700, -258, 953, -700, 23, 671, + -500, -493, 436, -700, -258, 390, -500, -258, 339, -700, + -59, 472, -500, -23, 436, -289, -65, 478, -289, -258, + 397, -289, -452, 478, -289, -532, 671, -500, -591, 671, + -700, -458, 871, -500, -493, 906, -289, -452, 865, -289, + -258, 945, -500, -258, 1004, -289, -65, 865, -500, -23, + 906, -500, 73, 671, -289, 15, 671, -700, -458, 472, + 698, -59, 472, 698, -540, 671, 698, -258, 390, 698, + 23, 671, 498, -493, 906, 698, -258, 953, 498, -258, + 1004, 698, -59, 871, 498, -23, 906, 287, -65, 865, + 287, -258, 945, 287, -452, 865, 287, -532, 671, 498, + -591, 671, 698, -458, 472, 498, -493, 436, 287, -452, + 478, 287, -258, 397, 498, -258, 339, 287, -65, 478, + 498, -23, 436, 498, 73, 671, 287, 15, 671, 698, + -458, 871 }; static const uint16_t LCR_carTriangles[] = { - 58, 56, 52, 52, 60, 58, 65, 64, 48, 64, 71, 62, 64, - 49, 63, 64, 65, 51, 65, 66, 53, 52, 66, 65, 54, 67, - 66, 66, 67, 55, 67, 68, 57, 56, 68, 67, 68, 69, 59, - 58, 69, 68, 60, 70, 69, 60, 62, 71, 61, 70, 71, 70, - 61, 59, 52, 56, 54, 60, 52, 62, 62, 52, 48, 48, 52, - 50, 59, 61, 53, 59, 53, 57, 53, 55, 57, 61, 63, 53, - 63, 49, 53, 51, 53, 49, 65, 48, 50, 64, 62, 48, 64, - 63, 71, 64, 51, 49, 65, 53, 51, 52, 65, 50, 54, 66, - 52, 66, 55, 53, 67, 57, 55, 56, 67, 54, 68, 59, 57, - 58, 68, 56, 60, 69, 58, 60, 71, 70, 61, 71, 63, 70, - 59, 69, 82, 80, 76, 76, 84, 82, 89, 88, 72, 88, 95, - 86, 88, 73, 87, 88, 89, 75, 89, 90, 77, 76, 90, 89, - 78, 91, 90, 90, 91, 79, 91, 92, 81, 80, 92, 91, 92, - 93, 83, 82, 93, 92, 84, 94, 93, 84, 86, 95, 85, 94, - 95, 94, 85, 83, 76, 80, 78, 84, 76, 86, 86, 76, 72, - 72, 76, 74, 83, 85, 77, 83, 77, 81, 77, 79, 81, 85, - 87, 77, 87, 73, 77, 75, 77, 73, 89, 72, 74, 88, 86, - 72, 88, 87, 95, 88, 75, 73, 89, 77, 75, 76, 89, 74, - 78, 90, 76, 90, 79, 77, 91, 81, 79, 80, 91, 78, 92, - 83, 81, 82, 92, 80, 84, 93, 82, 84, 95, 94, 85, 95, - 87, 94, 83, 93, 96, 99, 98, 98, 101, 100, 107, 121, 109, - 118, 120, 106, 101, 99, 102, 118, 104, 114, 121, 107, 120, 100, - 104, 98, 114, 100, 115, 103, 117, 102, 103, 105, 119, 109, 104, - 107, 102, 99, 108, 99, 97, 108, 108, 97, 109, 103, 102, 105, - 108, 105, 102, 104, 109, 98, 98, 109, 96, 106, 107, 104, 102, - 116, 101, 122, 119, 105, 123, 122, 108, 96, 109, 97, 110, 113, - 111, 112, 115, 113, 109, 121, 123, 106, 104, 118, 115, 116, 113, - 100, 114, 104, 120, 107, 106, 114, 112, 118, 101, 115, 100, 117, - 116, 102, 119, 117, 103, 123, 121, 118, 116, 122, 113, 113, 122, - 111, 122, 123, 111, 117, 119, 116, 122, 116, 119, 118, 112, 123, - 112, 110, 123, 120, 118, 121, 115, 101, 116, 109, 123, 108, 122, - 105, 108, 110, 111, 123, 96, 97, 99, 98, 99, 101, 110, 112, - 113, 112, 114, 115, 10, 8, 4, 4, 12, 10, 17, 16, 0, - 16, 23, 14, 16, 1, 15, 16, 17, 3, 17, 18, 5, 4, - 18, 17, 6, 19, 18, 18, 19, 7, 19, 20, 9, 8, 20, - 19, 20, 21, 11, 10, 21, 20, 12, 22, 21, 12, 14, 23, - 13, 22, 23, 22, 13, 11, 4, 8, 6, 12, 4, 14, 14, - 4, 0, 0, 4, 2, 11, 13, 5, 11, 5, 9, 5, 7, - 9, 13, 15, 5, 15, 1, 5, 3, 5, 1, 17, 0, 2, - 16, 14, 0, 16, 15, 23, 16, 3, 1, 17, 5, 3, 4, - 17, 2, 6, 18, 4, 18, 7, 5, 19, 9, 7, 8, 19, - 6, 20, 11, 9, 10, 20, 8, 12, 21, 10, 12, 23, 22, - 13, 23, 15, 22, 11, 21, 34, 32, 28, 28, 36, 34, 41, - 40, 24, 40, 47, 38, 40, 25, 39, 40, 41, 27, 41, 42, - 29, 28, 42, 41, 30, 43, 42, 42, 43, 31, 43, 44, 33, - 32, 44, 43, 44, 45, 35, 34, 45, 44, 36, 46, 45, 36, - 38, 47, 37, 46, 47, 46, 37, 35, 28, 32, 30, 36, 28, - 38, 38, 28, 24, 24, 28, 26, 35, 37, 29, 35, 29, 33, - 29, 31, 33, 37, 39, 29, 39, 25, 29, 27, 29, 25, 41, - 24, 26, 40, 38, 24, 40, 39, 47, 40, 27, 25, 41, 29, - 27, 28, 41, 26, 30, 42, 28, 42, 31, 29, 43, 33, 31, - 32, 43, 30, 44, 35, 33, 34, 44, 32, 36, 45, 34, 36, - 47, 46, 37, 47, 39, 46, 35, 45 + 100, 102, 101, 101, 103, 100, 104, 106, 105, 106, 108, 107, 106, + 110, 109, 106, 104, 111, 104, 113, 112, 101, 113, 104, 114, 115, + 113, 113, 115, 116, 115, 118, 117, 102, 118, 115, 118, 120, 119, + 100, 120, 118, 103, 121, 120, 103, 107, 108, 122, 121, 108, 121, + 122, 119, 101, 102, 114, 103, 101, 107, 107, 101, 105, 105, 101, + 123, 119, 122, 112, 119, 112, 117, 112, 116, 117, 122, 109, 112, + 109, 110, 112, 111, 112, 110, 104, 105, 123, 106, 107, 105, 106, + 109, 108, 106, 111, 110, 104, 112, 111, 101, 104, 123, 114, 113, + 101, 113, 116, 112, 115, 117, 116, 102, 115, 114, 118, 119, 117, + 100, 118, 102, 103, 120, 100, 103, 108, 121, 122, 108, 109, 121, + 119, 120, 76, 78, 77, 77, 79, 76, 80, 82, 81, 82, 84, + 83, 82, 86, 85, 82, 80, 87, 80, 89, 88, 77, 89, 80, + 90, 91, 89, 89, 91, 92, 91, 94, 93, 78, 94, 91, 94, + 96, 95, 76, 96, 94, 79, 97, 96, 79, 83, 84, 98, 97, + 84, 97, 98, 95, 77, 78, 90, 79, 77, 83, 83, 77, 81, + 81, 77, 99, 95, 98, 88, 95, 88, 93, 88, 92, 93, 98, + 85, 88, 85, 86, 88, 87, 88, 86, 80, 81, 99, 82, 83, + 81, 82, 85, 84, 82, 87, 86, 80, 88, 87, 77, 80, 99, + 90, 89, 77, 89, 92, 88, 91, 93, 92, 78, 91, 90, 94, + 95, 93, 76, 94, 78, 79, 96, 76, 79, 84, 97, 98, 84, + 85, 97, 95, 96, 48, 50, 49, 49, 52, 51, 53, 55, 54, + 56, 58, 57, 52, 50, 59, 56, 61, 60, 55, 53, 58, 51, + 61, 49, 60, 51, 62, 63, 64, 59, 63, 66, 65, 54, 61, + 53, 59, 50, 67, 50, 68, 67, 67, 68, 54, 63, 59, 66, + 67, 66, 59, 61, 54, 49, 49, 54, 48, 57, 53, 61, 59, + 69, 52, 70, 65, 66, 71, 70, 67, 48, 54, 68, 72, 74, + 73, 75, 62, 74, 54, 55, 71, 57, 61, 56, 62, 69, 74, + 51, 60, 61, 58, 53, 57, 60, 75, 56, 52, 62, 51, 64, + 69, 59, 65, 64, 63, 71, 55, 56, 69, 70, 74, 74, 70, + 73, 70, 71, 73, 64, 65, 69, 70, 69, 65, 56, 75, 71, + 75, 72, 71, 58, 56, 55, 62, 52, 69, 54, 71, 67, 70, + 66, 67, 72, 73, 71, 48, 68, 50, 49, 50, 52, 72, 75, + 74, 75, 60, 62, 0, 2, 1, 1, 3, 0, 4, 6, 5, + 6, 8, 7, 6, 10, 9, 6, 4, 11, 4, 13, 12, 1, + 13, 4, 14, 15, 13, 13, 15, 16, 15, 18, 17, 2, 18, + 15, 18, 20, 19, 0, 20, 18, 3, 21, 20, 3, 7, 8, + 22, 21, 8, 21, 22, 19, 1, 2, 14, 3, 1, 7, 7, + 1, 5, 5, 1, 23, 19, 22, 12, 19, 12, 17, 12, 16, + 17, 22, 9, 12, 9, 10, 12, 11, 12, 10, 4, 5, 23, + 6, 7, 5, 6, 9, 8, 6, 11, 10, 4, 12, 11, 1, + 4, 23, 14, 13, 1, 13, 16, 12, 15, 17, 16, 2, 15, + 14, 18, 19, 17, 0, 18, 2, 3, 20, 0, 3, 8, 21, + 22, 8, 9, 21, 19, 20, 24, 26, 25, 25, 27, 24, 28, + 30, 29, 30, 32, 31, 30, 34, 33, 30, 28, 35, 28, 37, + 36, 25, 37, 28, 38, 39, 37, 37, 39, 40, 39, 42, 41, + 26, 42, 39, 42, 44, 43, 24, 44, 42, 27, 45, 44, 27, + 31, 32, 46, 45, 32, 45, 46, 43, 25, 26, 38, 27, 25, + 31, 31, 25, 29, 29, 25, 47, 43, 46, 36, 43, 36, 41, + 36, 40, 41, 46, 33, 36, 33, 34, 36, 35, 36, 34, 28, + 29, 47, 30, 31, 29, 30, 33, 32, 30, 35, 34, 28, 36, + 35, 25, 28, 47, 38, 37, 25, 37, 40, 36, 39, 41, 40, + 26, 39, 38, 42, 43, 41, 24, 42, 26, 27, 44, 24, 27, + 32, 45, 46, 32, 33, 45, 43, 44 }; static const uint16_t LCR_carUvs[] = @@ -6336,18 +6336,44 @@ static const uint16_t LCR_carUvs[] = 125, 127, 63, 127, 4, 127, 105, 360, 24, 276, 6, 317, 23, 359, 24, 276, 64, 377, 66, 260, 6, 317, 23, 359, 107, 278, 124, 320, 106, 361, - 125, 219, 125, 2, 4, 2, 254, 196, 249, 113, - 374, 114, 252, 10, 366, 10, 505, 241, 402, 237, - 505, 345, 108, 392, 62, 494, 62, 397, 449, 75, - 205, 394, 108, 500, 9, 399, 9, 492, 186, 96, - 307, 387, 205, 497, 437, 497, 398, 494, 437, 395, - 502, 398, 502, 494, 234, 194, 131, 171, 411, 199, - 374, 193, 239, 239, 263, 208, 490, 82, 505, 156, - 135, 108, 307, 504, 398, 397, 239, 347, 131, 240, - 131, 346, 402, 349, 381, 214, 255, 196, 374, 192, - 373, 112, 249, 112, 366, 9, 449, 75, 252, 9, - 186, 95, 234, 194, 130, 171, 412, 198, 263, 377, - 490, 82, 505, 156, 134, 108, 381, 372 + 125, 219, 125, 2, 4, 2, 107, 278, 64, 377, + 123, 319, 66, 260, 63, 219, 125, 188, 63, 188, + 125, 158, 63, 158, 4, 158, 4, 188, 4, 219, + 4, 251, 63, 251, 125, 251, 125, 34, 63, 2, + 63, 34, 4, 34, 4, 65, 63, 65, 125, 65, + 4, 96, 63, 96, 125, 96, 125, 127, 63, 127, + 4, 127, 105, 360, 24, 276, 6, 317, 23, 359, + 24, 276, 64, 377, 66, 260, 6, 317, 23, 359, + 107, 278, 124, 320, 106, 361, 125, 219, 125, 2, + 4, 2, 254, 196, 249, 113, 374, 114, 252, 10, + 366, 10, 505, 241, 402, 237, 505, 345, 108, 392, + 62, 494, 62, 397, 449, 75, 205, 394, 108, 500, + 9, 399, 9, 492, 186, 96, 307, 387, 205, 497, + 437, 497, 398, 494, 437, 395, 502, 398, 502, 494, + 234, 194, 131, 171, 411, 199, 374, 193, 239, 239, + 263, 208, 490, 82, 505, 156, 135, 108, 307, 504, + 398, 397, 239, 347, 131, 240, 131, 346, 402, 349, + 381, 214, 255, 196, 374, 192, 373, 112, 249, 112, + 366, 9, 449, 75, 252, 9, 186, 95, 234, 194, + 130, 171, 412, 198, 263, 377, 490, 82, 505, 156, + 134, 108, 381, 372, 107, 278, 64, 377, 123, 319, + 66, 260, 63, 219, 125, 188, 63, 188, 125, 158, + 63, 158, 4, 158, 4, 188, 4, 219, 4, 251, + 63, 251, 125, 251, 125, 34, 63, 2, 63, 34, + 4, 34, 4, 65, 63, 65, 125, 65, 4, 96, + 63, 96, 125, 96, 125, 127, 63, 127, 4, 127, + 105, 360, 24, 276, 6, 317, 23, 359, 24, 276, + 64, 377, 66, 260, 6, 317, 23, 359, 107, 278, + 124, 320, 106, 361, 125, 219, 125, 2, 4, 2, + 107, 278, 64, 377, 123, 319, 66, 260, 63, 219, + 125, 188, 63, 188, 125, 158, 63, 158, 4, 158, + 4, 188, 4, 219, 4, 251, 63, 251, 125, 251, + 125, 34, 63, 2, 63, 34, 4, 34, 4, 65, + 63, 65, 125, 65, 4, 96, 63, 96, 125, 96, + 125, 127, 63, 127, 4, 127, 105, 360, 24, 276, + 6, 317, 23, 359, 24, 276, 64, 377, 66, 260, + 6, 317, 23, 359, 107, 278, 124, 320, 106, 361, + 125, 219, 125, 2, 4, 2 }; static const uint16_t LCR_carTriangleUvs[] = @@ -6362,60 +6388,61 @@ static const uint16_t LCR_carTriangleUvs[] = 9, 8, 6, 11, 10, 4, 12, 11, 14, 4, 40, 15, 16, 41, 16, 18, 42, 17, 19, 18, 21, 17, 15, 20, 22, 19, 24, 20, 21, 25, 23, 24, 25, 8, 26, 27, 8, 9, 26, - 22, 23, 0, 2, 1, 1, 3, 0, 4, 6, 5, 6, 8, - 7, 6, 10, 9, 6, 4, 11, 4, 13, 12, 14, 13, 4, - 15, 17, 16, 16, 17, 18, 17, 20, 19, 21, 20, 17, 20, - 23, 22, 24, 23, 20, 25, 26, 23, 25, 7, 8, 27, 26, - 8, 26, 27, 22, 1, 2, 28, 3, 1, 29, 29, 1, 30, - 30, 1, 31, 32, 34, 33, 32, 33, 35, 33, 36, 35, 34, - 37, 33, 37, 38, 33, 39, 33, 38, 4, 5, 40, 6, 7, - 5, 6, 9, 8, 6, 11, 10, 4, 12, 11, 14, 4, 40, - 15, 16, 41, 16, 18, 42, 17, 19, 18, 21, 17, 15, 20, - 22, 19, 24, 20, 21, 25, 23, 24, 25, 8, 26, 27, 8, - 9, 26, 22, 23, 43, 45, 44, 44, 47, 46, 48, 50, 49, - 51, 53, 52, 47, 45, 54, 51, 56, 55, 57, 58, 53, 46, - 59, 44, 55, 61, 60, 62, 64, 63, 62, 66, 65, 67, 59, - 68, 54, 45, 69, 45, 70, 69, 71, 72, 49, 73, 54, 74, - 69, 74, 54, 59, 67, 44, 44, 67, 43, 75, 68, 59, 63, - 77, 76, 78, 80, 79, 81, 78, 71, 82, 49, 72, 83, 85, - 84, 86, 87, 85, 49, 50, 81, 52, 56, 51, 87, 88, 85, - 61, 55, 56, 53, 58, 52, 89, 86, 90, 76, 60, 61, 64, - 77, 63, 65, 64, 62, 91, 92, 90, 88, 93, 85, 85, 93, - 84, 78, 81, 94, 95, 96, 88, 93, 88, 96, 90, 86, 91, - 86, 83, 91, 97, 90, 92, 60, 76, 77, 49, 81, 71, 78, - 79, 71, 98, 94, 81, 43, 70, 45, 44, 45, 47, 83, 86, - 85, 86, 89, 87, 0, 2, 1, 1, 3, 0, 4, 6, 5, - 6, 8, 7, 6, 10, 9, 6, 4, 11, 4, 13, 12, 14, - 13, 4, 15, 17, 16, 16, 17, 18, 17, 20, 19, 21, 20, - 17, 20, 23, 22, 24, 23, 20, 25, 26, 23, 25, 7, 8, - 27, 26, 8, 26, 27, 22, 1, 2, 28, 3, 1, 29, 29, - 1, 30, 30, 1, 31, 32, 34, 33, 32, 33, 35, 33, 36, - 35, 34, 37, 33, 37, 38, 33, 39, 33, 38, 4, 5, 40, - 6, 7, 5, 6, 9, 8, 6, 11, 10, 4, 12, 11, 14, - 4, 40, 15, 16, 41, 16, 18, 42, 17, 19, 18, 21, 17, - 15, 20, 22, 19, 24, 20, 21, 25, 23, 24, 25, 8, 26, - 27, 8, 9, 26, 22, 23, 0, 2, 1, 1, 3, 0, 4, - 6, 5, 6, 8, 7, 6, 10, 9, 6, 4, 11, 4, 13, - 12, 14, 13, 4, 15, 17, 16, 16, 17, 18, 17, 20, 19, - 21, 20, 17, 20, 23, 22, 24, 23, 20, 25, 26, 23, 25, - 7, 8, 27, 26, 8, 26, 27, 22, 1, 2, 28, 3, 1, - 29, 29, 1, 30, 30, 1, 31, 32, 34, 33, 32, 33, 35, - 33, 36, 35, 34, 37, 33, 37, 38, 33, 39, 33, 38, 4, - 5, 40, 6, 7, 5, 6, 9, 8, 6, 11, 10, 4, 12, - 11, 14, 4, 40, 15, 16, 41, 16, 18, 42, 17, 19, 18, - 21, 17, 15, 20, 22, 19, 24, 20, 21, 25, 23, 24, 25, - 8, 26, 27, 8, 9, 26, 22, 23 + 22, 23, 43, 45, 44, 44, 46, 43, 47, 49, 48, 49, 51, + 50, 49, 53, 52, 49, 47, 54, 47, 56, 55, 57, 56, 47, + 58, 60, 59, 59, 60, 61, 60, 63, 62, 64, 63, 60, 63, + 66, 65, 67, 66, 63, 68, 69, 66, 68, 50, 51, 70, 69, + 51, 69, 70, 65, 44, 45, 71, 46, 44, 72, 72, 44, 73, + 73, 44, 74, 75, 77, 76, 75, 76, 78, 76, 79, 78, 77, + 80, 76, 80, 81, 76, 82, 76, 81, 47, 48, 83, 49, 50, + 48, 49, 52, 51, 49, 54, 53, 47, 55, 54, 57, 47, 83, + 58, 59, 84, 59, 61, 85, 60, 62, 61, 64, 60, 58, 63, + 65, 62, 67, 63, 64, 68, 66, 67, 68, 51, 69, 70, 51, + 52, 69, 65, 66, 86, 88, 87, 87, 90, 89, 91, 93, 92, + 94, 96, 95, 90, 88, 97, 94, 99, 98, 100, 101, 96, 89, + 102, 87, 98, 104, 103, 105, 107, 106, 105, 109, 108, 110, 102, + 111, 97, 88, 112, 88, 113, 112, 114, 115, 92, 116, 97, 117, + 112, 117, 97, 102, 110, 87, 87, 110, 86, 118, 111, 102, 106, + 120, 119, 121, 123, 122, 124, 121, 114, 125, 92, 115, 126, 128, + 127, 129, 130, 128, 92, 93, 124, 95, 99, 94, 130, 131, 128, + 104, 98, 99, 96, 101, 95, 132, 129, 133, 119, 103, 104, 107, + 120, 106, 108, 107, 105, 134, 135, 133, 131, 136, 128, 128, 136, + 127, 121, 124, 137, 138, 139, 131, 136, 131, 139, 133, 129, 134, + 129, 126, 134, 140, 133, 135, 103, 119, 120, 92, 124, 114, 121, + 122, 114, 141, 137, 124, 86, 113, 88, 87, 88, 90, 126, 129, + 128, 129, 132, 130, 142, 144, 143, 143, 145, 142, 146, 148, 147, + 148, 150, 149, 148, 152, 151, 148, 146, 153, 146, 155, 154, 156, + 155, 146, 157, 159, 158, 158, 159, 160, 159, 162, 161, 163, 162, + 159, 162, 165, 164, 166, 165, 162, 167, 168, 165, 167, 149, 150, + 169, 168, 150, 168, 169, 164, 143, 144, 170, 145, 143, 171, 171, + 143, 172, 172, 143, 173, 174, 176, 175, 174, 175, 177, 175, 178, + 177, 176, 179, 175, 179, 180, 175, 181, 175, 180, 146, 147, 182, + 148, 149, 147, 148, 151, 150, 148, 153, 152, 146, 154, 153, 156, + 146, 182, 157, 158, 183, 158, 160, 184, 159, 161, 160, 163, 159, + 157, 162, 164, 161, 166, 162, 163, 167, 165, 166, 167, 150, 168, + 169, 150, 151, 168, 164, 165, 185, 187, 186, 186, 188, 185, 189, + 191, 190, 191, 193, 192, 191, 195, 194, 191, 189, 196, 189, 198, + 197, 199, 198, 189, 200, 202, 201, 201, 202, 203, 202, 205, 204, + 206, 205, 202, 205, 208, 207, 209, 208, 205, 210, 211, 208, 210, + 192, 193, 212, 211, 193, 211, 212, 207, 186, 187, 213, 188, 186, + 214, 214, 186, 215, 215, 186, 216, 217, 219, 218, 217, 218, 220, + 218, 221, 220, 219, 222, 218, 222, 223, 218, 224, 218, 223, 189, + 190, 225, 191, 192, 190, 191, 194, 193, 191, 196, 195, 189, 197, + 196, 199, 189, 225, 200, 201, 226, 201, 203, 227, 202, 204, 203, + 206, 202, 200, 205, 207, 204, 209, 205, 206, 210, 208, 209, 210, + 193, 211, 212, 193, 194, 211, 207, 208 }; static const uint8_t LCR_carVertexTypes[] = { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }; + #endif diff --git a/racing.h b/racing.h index e2f2a15..1b0389b 100644 --- a/racing.h +++ b/racing.h @@ -14,7 +14,7 @@ typedef int32_t LCR_GameUnit; ///< abstract game unit #define LCR_RACING_INPUT_BACK 0x04 #define LCR_RACING_INPUT_LEFT 0x08 -#define LCR_PHYSICS_UNIT 512 ///< length of map square for physics engine +#define LCR_PHYSICS_UNIT 1024 ///< length of map square for physics engine #include "map.h" #include "tinyphysicsengine.h" @@ -22,7 +22,8 @@ typedef int32_t LCR_GameUnit; ///< abstract game unit #define LCR_CAR_JOINTS 5 #define LCR_CAR_CONNECTIONS 10 -#define LCR_CAR_FORWARD_FRICTION (TPE_F / 14) +#define LCR_GRAVITY 5 +#define LCR_CAR_FORWARD_FRICTION TPE_F / 14 #define LCR_CAR_TURN_FRICTION (3 * TPE_F / 4) #define LCR_CAR_ELASTICITY (TPE_F / 100) @@ -103,14 +104,14 @@ void LCR_racingInit(void) LCR_racing.carConnections,LCR_CAR_CONNECTIONS, TPE_F); - LCR_racing.carBody.friction = LCR_CAR_FORWARD_FRICTION; - LCR_racing.carBody.elasticity = LCR_CAR_ELASTICITY; - TPE_worldInit(&(LCR_racing.physicsWorld), &(LCR_racing.carBody),1,_LCR_racingEnvironmentFunction); LCR_racing.physicsWorld.collisionCallback = _LCR_racingCollisionHandler; + LCR_racing.carBody.friction = LCR_CAR_FORWARD_FRICTION; + LCR_racing.carBody.elasticity = LCR_CAR_ELASTICITY; + LCR_racingRestart(); } @@ -188,9 +189,7 @@ void LCR_racingStep(unsigned int input) TPE_bodyAccelerate(&(LCR_racing.carBody),vel); } - TPE_bodyApplyGravity(&(LCR_racing.carBody), - TPE_F / 32 - ); + TPE_bodyApplyGravity(&(LCR_racing.carBody),LCR_GRAVITY); LCR_racing.wheelCollisions <<= 4; TPE_worldStep(&(LCR_racing.physicsWorld)); @@ -221,20 +220,26 @@ void LCR_racingStep(unsigned int input) LCR_GAME_UNIT / 4),LCR_racing.carBody.joints[4].position); } - LCR_racing.carPositions[1] = LCR_racing.carPositions[0]; + TPE_Vec3 tmpVec = LCR_racing.carPositions[0]; - #define AVERAGE(c) \ - (((((LCR_racing.carBody.joints[0].position.c + \ - LCR_racing.carBody.joints[1].position.c + \ - LCR_racing.carBody.joints[2].position.c + \ - LCR_racing.carBody.joints[3].position.c) / 4) + \ - LCR_racing.carBody.joints[4].position.c) / 2) * \ - LCR_GAME_UNIT) / LCR_PHYSICS_UNIT +LCR_racing.carPositions[0] = + _LCR_TPE_vec3DividePlain( + TPE_vec3TimesPlain( + LCR_racing.carBody.joints[4].position,LCR_GAME_UNIT), + LCR_PHYSICS_UNIT); - LCR_racing.carPositions[0].x = AVERAGE(x); - LCR_racing.carPositions[0].y = AVERAGE(y); - LCR_racing.carPositions[0].z = AVERAGE(z); - #undef AVERAGE +LCR_racing.carPositions[0] = + TPE_vec3KeepWithinBox( + LCR_racing.carPositions[1], + LCR_racing.carPositions[0], + TPE_vec3( + LCR_PHYSICS_UNIT / 64, // TODO: 64 + LCR_PHYSICS_UNIT / 64, + LCR_PHYSICS_UNIT / 64 + ) + ); + + LCR_racing.carPositions[1] = tmpVec; } void LCR_physicsDebugDraw(LCR_GameUnit camPos[3], LCR_GameUnit camRot[2],