// ---------------------------------------- // sprite type typedef enum sprtype { SPR_NONE, // 0 SPR_TREE0_0, // 1 SPR_TREE0_1, // 2 SPR_TREE0_2, // 3 SPR_TREE0_3, // 4 SPR_TREE1_0, // 5 SPR_TREE1_1, // 6 SPR_TREE1_2, // 7 SPR_TREE1_3, // 8 SPR_TREE2_0, // 9 SPR_TREE2_1, // 10 SPR_TREE2_2, // 11 SPR_TREE2_3, // 12 SPR_TREE3_0, // 13 SPR_TREE3_1, // 14 SPR_TREE3_2, // 15 SPR_TREE3_3, // 16 SPR_SLOPE0_L, // 17 SPR_SLOPE0_R, // 18 SPR_SLOPE1_L, // 19 SPR_SLOPE1_R, // 20 SPR_SLOPE2_L, // 21 SPR_SLOPE2_R, // 22 SPR_SLOPE3_L, // 23 SPR_SLOPE3_R, // 24 SPR_WALL0, // 25 SPR_WALL1, // 26 SPR_WALL2, // 27 SPR_WALL3, // 28 SPR_GRASS0, // 29 SPR_GRASS1, // 30 SPR_GRASS2, // 31 SPR_GRASS3, // 32 SPR_SCOOTER0, // 33 SPR_SCOOTER1, // 34 SPR_SCOOTER3, // 35 SPR_CAR0_0, // 36 SPR_CAR0_1, // 37 SPR_CAR0_2, // 38 SPR_CAR3_0, // 39 SPR_CAR3_1, // 40 SPR_CAR3_2, // 41 SPR_HOUSE0_0L, // 42 SPR_HOUSE0_0R, // 43 SPR_HOUSE0_1L, // 44 SPR_HOUSE0_1R, // 45 SPR_HOUSE0_2L, // 46 SPR_HOUSE0_2R, // 47 SPR_HOUSE2_0L, // 48 SPR_HOUSE2_0R, // 49 SPR_HOUSE2_1L, // 50 SPR_HOUSE2_1R, // 51 SPR_HOUSE2_2L, // 52 SPR_HOUSE2_2R, // 53 SPR_HOUSE3_0L, // 54 SPR_HOUSE3_0R, // 55 SPR_HOUSE3_1L, // 56 SPR_HOUSE3_1R, // 57 SPR_HOUSE3_2L, // 58 SPR_HOUSE3_2R, // 59 SPR_BEAM, // 60 SPR_ARROWR2L, // 61 SPR_ARROWL2R, // 62 SPR_DELI0, // 63 SPR_DELI1, // 64 SPR_ROAD0, // 65 SPR_ROAD1, // 66 SPR_ROAD2, // 67 } SPRTYPE; // ---------------------------------------- // sprites size and uv table typedef struct sprtbl { float w; float h; float u; float v; float uw; float vh; } SPRTBL; static SPRTBL spr_tbl[68] = { // poly w, poly h, u, v, uw, vh {0, 0, 0.000000, 0.000000, 0.000000, 0.000000}, // 0 SPR_NONE {450, 450, 0.000000, 0.000000, 0.125000, 0.125000}, // 1 SPR_TREE0_0 {450, 450, 0.125000, 0.000000, 0.125000, 0.125000}, // 2 SPR_TREE0_1 {450, 450, 0.250000, 0.000000, 0.125000, 0.125000}, // 3 SPR_TREE0_2 {450, 450, 0.375000, 0.000000, 0.125000, 0.125000}, // 4 SPR_TREE0_3 {450, 450, 0.000000, 0.125000, 0.125000, 0.125000}, // 5 SPR_TREE1_0 {450, 450, 0.125000, 0.125000, 0.125000, 0.125000}, // 6 SPR_TREE1_1 {450, 450, 0.250000, 0.125000, 0.125000, 0.125000}, // 7 SPR_TREE1_2 {450, 450, 0.375000, 0.125000, 0.125000, 0.125000}, // 8 SPR_TREE1_3 {450, 450, 0.000000, 0.250000, 0.125000, 0.125000}, // 9 SPR_TREE2_0 {450, 450, 0.125000, 0.250000, 0.125000, 0.125000}, // 10 SPR_TREE2_1 {450, 450, 0.250000, 0.250000, 0.125000, 0.125000}, // 11 SPR_TREE2_2 {450, 450, 0.375000, 0.250000, 0.125000, 0.125000}, // 12 SPR_TREE2_3 {450, 450, 0.000000, 0.375000, 0.125000, 0.125000}, // 13 SPR_TREE3_0 {450, 450, 0.125000, 0.375000, 0.125000, 0.125000}, // 14 SPR_TREE3_1 {450, 450, 0.250000, 0.375000, 0.125000, 0.125000}, // 15 SPR_TREE3_2 {450, 450, 0.375000, 0.375000, 0.125000, 0.125000}, // 16 SPR_TREE3_3 {500, 500, 0.500000, 0.000000, 0.125000, 0.125000}, // 17 SPR_SLOPE0_L {500, 500, 0.625000, 0.000000, 0.125000, 0.125000}, // 18 SPR_SLOPE0_R {500, 500, 0.500000, 0.125000, 0.125000, 0.125000}, // 19 SPR_SLOPE1_L {500, 500, 0.625000, 0.125000, 0.125000, 0.125000}, // 20 SPR_SLOPE1_R {500, 500, 0.500000, 0.250000, 0.125000, 0.125000}, // 21 SPR_SLOPE2_L {500, 500, 0.625000, 0.250000, 0.125000, 0.125000}, // 22 SPR_SLOPE2_R {500, 500, 0.500000, 0.375000, 0.125000, 0.125000}, // 23 SPR_SLOPE3_L {500, 500, 0.625000, 0.375000, 0.125000, 0.125000}, // 24 SPR_SLOPE3_R {2800, 700, 0.750000, 0.000000, 0.250000, 0.062500}, // 25 SPR_WALL0 {2800, 700, 0.750000, 0.125000, 0.250000, 0.062500}, // 26 SPR_WALL1 {2800, 700, 0.750000, 0.250000, 0.250000, 0.062500}, // 27 SPR_WALL2 {2800, 700, 0.750000, 0.375000, 0.250000, 0.062500}, // 28 SPR_WALL3 {200, 50, 0.750000, 0.062500, 0.125000, 0.031250}, // 29 SPR_GRASS0 {200, 50, 0.750000, 0.187500, 0.125000, 0.031250}, // 30 SPR_GRASS1 {200, 50, 0.750000, 0.312500, 0.125000, 0.031250}, // 31 SPR_GRASS2 {200, 50, 0.750000, 0.437500, 0.125000, 0.031250}, // 32 SPR_GRASS3 {35, 70, 0.000000, 0.500000, 0.062500, 0.125000}, // 33 SPR_SCOOTER0 {35, 70, 0.062500, 0.500000, 0.062500, 0.125000}, // 34 SPR_SCOOTER1 {35, 70, 0.125000, 0.500000, 0.062500, 0.125000}, // 35 SPR_SCOOTER3 {100, 100, 0.250000, 0.500000, 0.125000, 0.125000}, // 36 SPR_CAR0_0 {100, 100, 0.375000, 0.500000, 0.125000, 0.125000}, // 37 SPR_CAR0_1 {100, 100, 0.500000, 0.500000, 0.125000, 0.125000}, // 38 SPR_CAR0_2 {100, 100, 0.625000, 0.500000, 0.125000, 0.125000}, // 39 SPR_CAR3_0 {100, 100, 0.750000, 0.500000, 0.125000, 0.125000}, // 40 SPR_CAR3_1 {100, 100, 0.875000, 0.500000, 0.125000, 0.125000}, // 41 SPR_CAR3_2 {500, 375, 0.000000, 0.625000, 0.125000, 0.093750}, // 42 SPR_HOUSE0_0L {500, 375, 0.125000, 0.625000, 0.125000, 0.093750}, // 43 SPR_HOUSE0_0R {500, 375, 0.250000, 0.625000, 0.125000, 0.093750}, // 44 SPR_HOUSE0_1L {500, 375, 0.375000, 0.625000, 0.125000, 0.093750}, // 45 SPR_HOUSE0_1R {600, 300, 0.500000, 0.625000, 0.125000, 0.062500}, // 46 SPR_HOUSE0_2L {600, 300, 0.500000, 0.687500, 0.125000, 0.062500}, // 47 SPR_HOUSE0_2R {500, 375, 0.000000, 0.718750, 0.125000, 0.093750}, // 48 SPR_HOUSE2_0L {500, 375, 0.125000, 0.718750, 0.125000, 0.093750}, // 49 SPR_HOUSE2_0R {500, 375, 0.250000, 0.718750, 0.125000, 0.093750}, // 50 SPR_HOUSE2_1L {500, 375, 0.375000, 0.718750, 0.125000, 0.093750}, // 51 SPR_HOUSE2_1R {600, 300, 0.500000, 0.750000, 0.125000, 0.062500}, // 52 SPR_HOUSE2_2L {600, 300, 0.500000, 0.812500, 0.125000, 0.062500}, // 53 SPR_HOUSE2_2R {500, 375, 0.000000, 0.812500, 0.125000, 0.093750}, // 54 SPR_HOUSE3_0L {500, 375, 0.125000, 0.812500, 0.125000, 0.093750}, // 55 SPR_HOUSE3_0R {500, 375, 0.250000, 0.812500, 0.125000, 0.093750}, // 56 SPR_HOUSE3_1L {500, 375, 0.375000, 0.812500, 0.125000, 0.093750}, // 57 SPR_HOUSE3_1R {600, 300, 0.625000, 0.625000, 0.125000, 0.062500}, // 58 SPR_HOUSE3_2L {600, 300, 0.625000, 0.687500, 0.125000, 0.062500}, // 59 SPR_HOUSE3_2R {1000, 500, 0.750000, 0.625000, 0.250000, 0.125000}, // 60 SPR_BEAM {100, 150, 0.875000, 0.906250, 0.062500, 0.093750}, // 61 SPR_ARROWR2L {100, 150, 0.937500, 0.906250, 0.062500, 0.093750}, // 62 SPR_ARROWL2R {20, 40, 0.812500, 0.937500, 0.031250, 0.062500}, // 63 SPR_DELI0 {20, 40, 0.843750, 0.937500, 0.031250, 0.062500}, // 64 SPR_DELI1 {256, 256, 0.531250, 0.906250, 0.062500, 0.062500}, // 65 SPR_ROAD0 {256, 256, 0.656250, 0.906250, 0.062500, 0.062500}, // 66 SPR_ROAD1 {256, 256, 0.437500, 0.937500, 0.062500, 0.062500}, // 67 SPR_ROAD2 };