Henry Triff
/
ELEC2645_Project_el18ht
Graphics/Graphics.cpp@6:5f76dd718dc3, 2020-02-19 (annotated)
- Committer:
- HenryWTriff
- Date:
- Wed Feb 19 21:40:21 2020 +0000
- Revision:
- 6:5f76dd718dc3
- Parent:
- 5:2d9f3c36bcb9
- Child:
- 7:2ce6e90f6d47
Ghost Racing added, Gyro steering and boost plates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
HenryWTriff | 2:d08b6a1eaf2b | 1 | #include "Graphics.h" |
HenryWTriff | 2:d08b6a1eaf2b | 2 | |
HenryWTriff | 3:ceed6d026b8b | 3 | //*********** |
HenryWTriff | 3:ceed6d026b8b | 4 | // Sprites |
HenryWTriff | 3:ceed6d026b8b | 5 | //*********** |
HenryWTriff | 3:ceed6d026b8b | 6 | |
HenryWTriff | 3:ceed6d026b8b | 7 | int flag[8][8] = { |
HenryWTriff | 3:ceed6d026b8b | 8 | {4,1,1,1,1,1,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 9 | {4,1,1,0,1,0,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 10 | {4,1,0,1,0,1,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 11 | {4,1,1,0,1,0,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 12 | {4,1,1,1,1,1,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 13 | {4,4,4,4,4,4,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 14 | {4,4,4,4,4,4,1,1}, |
HenryWTriff | 3:ceed6d026b8b | 15 | {4,4,4,4,4,4,1,1}, |
HenryWTriff | 4:9f41fc1c2ad1 | 16 | }; |
HenryWTriff | 3:ceed6d026b8b | 17 | |
HenryWTriff | 4:9f41fc1c2ad1 | 18 | int car[8][8] = { |
HenryWTriff | 4:9f41fc1c2ad1 | 19 | {4,4,4,4,4,4,4,4}, |
HenryWTriff | 4:9f41fc1c2ad1 | 20 | {4,4,4,4,4,4,4,4}, |
HenryWTriff | 4:9f41fc1c2ad1 | 21 | {4,1,1,1,1,1,1,4}, |
HenryWTriff | 4:9f41fc1c2ad1 | 22 | {4,4,4,1,1,4,4,4}, |
HenryWTriff | 4:9f41fc1c2ad1 | 23 | {4,4,4,1,1,4,4,4}, |
HenryWTriff | 4:9f41fc1c2ad1 | 24 | {1,4,1,1,1,1,4,1}, |
HenryWTriff | 4:9f41fc1c2ad1 | 25 | {1,1,1,0,0,1,1,1}, |
HenryWTriff | 4:9f41fc1c2ad1 | 26 | {1,4,1,1,1,1,4,1}, |
HenryWTriff | 4:9f41fc1c2ad1 | 27 | }; |
HenryWTriff | 3:ceed6d026b8b | 28 | |
HenryWTriff | 6:5f76dd718dc3 | 29 | int ghost[8][8] = { |
HenryWTriff | 6:5f76dd718dc3 | 30 | {0,0,4,4,4,4,0,0}, |
HenryWTriff | 6:5f76dd718dc3 | 31 | {0,1,0,4,4,0,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 32 | {4,0,1,0,0,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 33 | {4,4,0,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 34 | {4,4,0,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 35 | {4,0,1,0,0,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 36 | {0,1,0,4,4,0,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 37 | {0,0,4,4,4,4,0,0}, |
HenryWTriff | 6:5f76dd718dc3 | 38 | }; |
HenryWTriff | 6:5f76dd718dc3 | 39 | |
HenryWTriff | 6:5f76dd718dc3 | 40 | int count_down_3[17][17] = { |
HenryWTriff | 6:5f76dd718dc3 | 41 | {4,4,4,4,0,0,0,0,0,0,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 42 | {4,4,4,0,1,1,1,1,1,1,1,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 43 | {4,4,0,1,1,1,1,1,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 44 | {4,0,1,1,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 45 | {4,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 46 | {4,0,1,1,1,0,4,4,4,4,0,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 47 | {4,0,1,1,1,0,4,4,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 48 | {4,4,0,0,0,4,4,0,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 49 | {4,4,4,4,4,4,4,0,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 50 | {4,4,0,0,0,4,4,0,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 51 | {4,0,1,1,1,0,4,4,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 52 | {4,0,1,1,1,0,4,4,4,4,0,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 53 | {4,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 54 | {4,4,0,1,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 55 | {4,4,4,0,1,1,1,1,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 56 | {4,4,4,4,0,1,1,1,1,1,1,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 57 | {4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4} |
HenryWTriff | 6:5f76dd718dc3 | 58 | }; |
HenryWTriff | 6:5f76dd718dc3 | 59 | |
HenryWTriff | 6:5f76dd718dc3 | 60 | int count_down_2[17][17] = { |
HenryWTriff | 6:5f76dd718dc3 | 61 | {4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 62 | {4,4,4,4,0,1,1,1,1,1,1,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 63 | {4,4,4,0,1,1,1,1,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 64 | {4,4,0,1,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 65 | {4,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 66 | {4,0,1,1,1,0,4,4,4,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 67 | {4,0,1,1,1,0,4,4,0,1,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 68 | {4,4,0,0,0,4,4,0,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 69 | {4,4,4,4,4,4,0,1,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 70 | {4,4,4,4,4,0,1,1,1,1,1,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 71 | {4,4,4,4,0,1,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 72 | {4,4,4,0,1,1,1,1,1,0,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 73 | {4,4,0,1,1,1,1,1,0,0,0,0,0,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 74 | {4,0,1,1,1,1,1,1,1,1,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 75 | {4,0,1,1,1,1,1,1,1,1,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 76 | {4,0,1,1,1,1,1,1,1,1,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 77 | {4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4} |
HenryWTriff | 6:5f76dd718dc3 | 78 | }; |
HenryWTriff | 6:5f76dd718dc3 | 79 | |
HenryWTriff | 6:5f76dd718dc3 | 80 | int count_down_1[17][17] = { |
HenryWTriff | 6:5f76dd718dc3 | 81 | {4,4,4,4,4,4,4,0,0,0,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 82 | {4,4,4,4,4,4,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 83 | {4,4,4,4,4,0,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 84 | {4,4,4,4,0,1,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 85 | {4,4,4,0,1,1,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 86 | {4,4,4,0,1,1,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 87 | {4,4,4,0,1,1,1,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 88 | {4,4,4,4,0,0,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 89 | {4,4,4,4,4,4,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 90 | {4,4,4,4,4,4,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 91 | {4,4,4,4,4,4,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 92 | {4,4,4,4,4,4,0,1,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 93 | {4,4,4,4,0,0,1,1,1,1,1,0,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 94 | {4,4,4,0,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 95 | {4,4,4,0,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 96 | {4,4,4,0,1,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 97 | {4,4,4,4,0,0,0,0,0,0,0,0,0,4,4,4,4} |
HenryWTriff | 6:5f76dd718dc3 | 98 | }; |
HenryWTriff | 6:5f76dd718dc3 | 99 | |
HenryWTriff | 6:5f76dd718dc3 | 100 | int count_down_0[18][18] = { |
HenryWTriff | 6:5f76dd718dc3 | 101 | {4,4,4,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 102 | {4,4,0,1,1,1,1,0,4,4,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 103 | {4,0,1,1,1,1,1,0,4,4,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 104 | {0,1,1,1,0,0,0,4,4,4,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 105 | {0,1,1,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 106 | {0,1,1,0,0,1,1,1,1,0,4,4,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 107 | {0,1,1,0,0,1,1,1,1,0,4,0,0,0,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 108 | {0,1,1,0,0,0,0,1,1,0,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 109 | {0,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 110 | {4,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 111 | {4,4,0,1,1,1,1,0,0,1,1,0,0,0,0,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 112 | {4,4,4,0,0,0,0,4,0,1,1,0,0,0,0,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 113 | {4,4,4,4,4,4,4,4,0,1,1,0,0,0,0,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 114 | {4,4,4,4,4,4,4,4,0,1,1,0,0,0,0,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 115 | {4,4,4,4,4,4,4,4,0,1,1,1,0,0,1,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 116 | {4,4,4,4,4,4,4,4,4,0,1,1,1,1,1,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 117 | {4,4,4,4,4,4,4,4,4,4,0,1,1,1,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 118 | {4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 119 | }; |
HenryWTriff | 6:5f76dd718dc3 | 120 | |
HenryWTriff | 6:5f76dd718dc3 | 121 | int cup[16][16] = { |
HenryWTriff | 6:5f76dd718dc3 | 122 | {4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 123 | {4,0,0,0,0,1,1,1,1,1,1,0,0,0,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 124 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 125 | {0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 126 | {0,1,0,0,0,1,1,0,0,1,1,0,0,0,1,0}, |
HenryWTriff | 6:5f76dd718dc3 | 127 | {4,0,1,0,0,1,1,0,0,1,1,0,0,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 128 | {4,0,1,0,0,1,1,0,0,1,1,0,0,1,0,4}, |
HenryWTriff | 6:5f76dd718dc3 | 129 | {4,4,0,1,0,1,1,0,0,1,1,0,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 130 | {4,4,0,1,0,1,1,1,0,1,1,0,1,0,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 131 | {4,4,4,0,1,1,1,1,1,1,1,1,0,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 132 | {4,4,4,4,0,0,1,1,1,1,0,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 133 | {4,4,4,4,4,4,0,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 134 | {4,4,4,4,4,4,0,1,1,0,4,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 135 | {4,4,4,4,4,0,1,1,1,1,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 136 | {4,4,4,4,0,1,1,1,1,1,1,0,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 137 | {4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4}, |
HenryWTriff | 6:5f76dd718dc3 | 138 | }; |
HenryWTriff | 6:5f76dd718dc3 | 139 | |
HenryWTriff | 2:d08b6a1eaf2b | 140 | //************************** |
HenryWTriff | 2:d08b6a1eaf2b | 141 | // MAIN GRAPHICS FUNCTION |
HenryWTriff | 2:d08b6a1eaf2b | 142 | //************************** |
HenryWTriff | 2:d08b6a1eaf2b | 143 | |
HenryWTriff | 6:5f76dd718dc3 | 144 | void Graphics::Draw_Map(Point_2D translation, int angle, float squish, Line_2D *Track_Lines, Line_2D *Track_Dotted_Lines, Line_2D *Track_Walls, Point_2D *Track_Flags, Triangle_2D *Track_Boost_Plates, Map_Data map_info, Point_2D ghost_position, N5110 &LCD) |
HenryWTriff | 2:d08b6a1eaf2b | 145 | { |
HenryWTriff | 2:d08b6a1eaf2b | 146 | |
HenryWTriff | 3:ceed6d026b8b | 147 | Line_2D Track_Lines_Transformed[map_info.number_of_track_lines]; |
HenryWTriff | 3:ceed6d026b8b | 148 | Line_2D Track_Dotted_Lines_Transformed[map_info.number_of_dotted_lines]; |
HenryWTriff | 3:ceed6d026b8b | 149 | Point_2D Transformed_Flags[map_info.number_of_flags]; |
HenryWTriff | 5:2d9f3c36bcb9 | 150 | Line_2D Transformed_Walls[map_info.number_of_walls]; |
HenryWTriff | 6:5f76dd718dc3 | 151 | Point_2D Transformed_Ghost; |
HenryWTriff | 3:ceed6d026b8b | 152 | |
HenryWTriff | 3:ceed6d026b8b | 153 | for(int i = 0; i < map_info.number_of_track_lines; i++) { |
HenryWTriff | 2:d08b6a1eaf2b | 154 | Track_Lines_Transformed[i] = Track_Lines[i]; |
HenryWTriff | 2:d08b6a1eaf2b | 155 | //Translation |
HenryWTriff | 2:d08b6a1eaf2b | 156 | Track_Lines_Transformed[i].from = Translate_Point(Track_Lines_Transformed[i].from, Round(translation.x), Round(translation.y)); |
HenryWTriff | 2:d08b6a1eaf2b | 157 | Track_Lines_Transformed[i].to = Translate_Point(Track_Lines_Transformed[i].to, Round(translation.x), Round(translation.y)); |
HenryWTriff | 2:d08b6a1eaf2b | 158 | //Rotation |
HenryWTriff | 2:d08b6a1eaf2b | 159 | Track_Lines_Transformed[i].from = Rotate_Point(Track_Lines_Transformed[i].from, angle); |
HenryWTriff | 2:d08b6a1eaf2b | 160 | Track_Lines_Transformed[i].to = Rotate_Point(Track_Lines_Transformed[i].to, angle); |
HenryWTriff | 2:d08b6a1eaf2b | 161 | //Squish |
HenryWTriff | 2:d08b6a1eaf2b | 162 | Track_Lines_Transformed[i].from = Squish_Point(Track_Lines_Transformed[i].from, squish); |
HenryWTriff | 2:d08b6a1eaf2b | 163 | Track_Lines_Transformed[i].to = Squish_Point(Track_Lines_Transformed[i].to, squish); |
HenryWTriff | 2:d08b6a1eaf2b | 164 | } |
HenryWTriff | 2:d08b6a1eaf2b | 165 | |
HenryWTriff | 3:ceed6d026b8b | 166 | for(int i = 0; i < map_info.number_of_dotted_lines; i++) { |
HenryWTriff | 3:ceed6d026b8b | 167 | Track_Dotted_Lines_Transformed[i] = Track_Dotted_Lines[i]; |
HenryWTriff | 3:ceed6d026b8b | 168 | //Translation |
HenryWTriff | 3:ceed6d026b8b | 169 | Track_Dotted_Lines_Transformed[i].from = Translate_Point(Track_Dotted_Lines_Transformed[i].from, Round(translation.x), Round(translation.y)); |
HenryWTriff | 3:ceed6d026b8b | 170 | Track_Dotted_Lines_Transformed[i].to = Translate_Point(Track_Dotted_Lines_Transformed[i].to, Round(translation.x), Round(translation.y)); |
HenryWTriff | 3:ceed6d026b8b | 171 | //Rotation |
HenryWTriff | 3:ceed6d026b8b | 172 | Track_Dotted_Lines_Transformed[i].from = Rotate_Point(Track_Dotted_Lines_Transformed[i].from, angle); |
HenryWTriff | 3:ceed6d026b8b | 173 | Track_Dotted_Lines_Transformed[i].to = Rotate_Point(Track_Dotted_Lines_Transformed[i].to, angle); |
HenryWTriff | 3:ceed6d026b8b | 174 | //Squish |
HenryWTriff | 3:ceed6d026b8b | 175 | Track_Dotted_Lines_Transformed[i].from = Squish_Point(Track_Dotted_Lines_Transformed[i].from, squish); |
HenryWTriff | 3:ceed6d026b8b | 176 | Track_Dotted_Lines_Transformed[i].to = Squish_Point(Track_Dotted_Lines_Transformed[i].to, squish); |
HenryWTriff | 3:ceed6d026b8b | 177 | } |
HenryWTriff | 3:ceed6d026b8b | 178 | |
HenryWTriff | 3:ceed6d026b8b | 179 | for(int i = 0; i < map_info.number_of_flags; i++) { |
HenryWTriff | 3:ceed6d026b8b | 180 | Transformed_Flags[i] = Track_Flags[i]; |
HenryWTriff | 3:ceed6d026b8b | 181 | //Translation |
HenryWTriff | 3:ceed6d026b8b | 182 | Transformed_Flags[i] = Translate_Point(Transformed_Flags[i], Round(translation.x), Round(translation.y)); |
HenryWTriff | 3:ceed6d026b8b | 183 | //Rotation |
HenryWTriff | 3:ceed6d026b8b | 184 | Transformed_Flags[i] = Rotate_Point(Transformed_Flags[i], angle); |
HenryWTriff | 3:ceed6d026b8b | 185 | //Squish |
HenryWTriff | 3:ceed6d026b8b | 186 | Transformed_Flags[i] = Squish_Point(Transformed_Flags[i], squish); |
HenryWTriff | 3:ceed6d026b8b | 187 | } |
HenryWTriff | 3:ceed6d026b8b | 188 | |
HenryWTriff | 5:2d9f3c36bcb9 | 189 | for(int i = 0; i < map_info.number_of_walls; i++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 190 | Transformed_Walls[i] = Track_Walls[i]; |
HenryWTriff | 5:2d9f3c36bcb9 | 191 | //Translation |
HenryWTriff | 5:2d9f3c36bcb9 | 192 | Transformed_Walls[i].from = Translate_Point(Transformed_Walls[i].from, Round(translation.x), Round(translation.y)); |
HenryWTriff | 5:2d9f3c36bcb9 | 193 | Transformed_Walls[i].to = Translate_Point(Transformed_Walls[i].to, Round(translation.x), Round(translation.y)); |
HenryWTriff | 5:2d9f3c36bcb9 | 194 | //Rotation |
HenryWTriff | 5:2d9f3c36bcb9 | 195 | Transformed_Walls[i].from = Rotate_Point(Transformed_Walls[i].from, angle); |
HenryWTriff | 5:2d9f3c36bcb9 | 196 | Transformed_Walls[i].to = Rotate_Point(Transformed_Walls[i].to, angle); |
HenryWTriff | 5:2d9f3c36bcb9 | 197 | //Squish |
HenryWTriff | 5:2d9f3c36bcb9 | 198 | Transformed_Walls[i].from = Squish_Point(Transformed_Walls[i].from, squish); |
HenryWTriff | 5:2d9f3c36bcb9 | 199 | Transformed_Walls[i].to = Squish_Point(Transformed_Walls[i].to, squish); |
HenryWTriff | 5:2d9f3c36bcb9 | 200 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 201 | |
HenryWTriff | 6:5f76dd718dc3 | 202 | Transformed_Ghost = ghost_position; |
HenryWTriff | 6:5f76dd718dc3 | 203 | //Translation |
HenryWTriff | 6:5f76dd718dc3 | 204 | Transformed_Ghost = Translate_Point(Transformed_Ghost, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 205 | //Rotation |
HenryWTriff | 6:5f76dd718dc3 | 206 | Transformed_Ghost = Rotate_Point(Transformed_Ghost, angle); |
HenryWTriff | 6:5f76dd718dc3 | 207 | //Squish |
HenryWTriff | 6:5f76dd718dc3 | 208 | Transformed_Ghost = Squish_Point(Transformed_Ghost, squish); |
HenryWTriff | 6:5f76dd718dc3 | 209 | |
HenryWTriff | 3:ceed6d026b8b | 210 | for(int i = 0; i < map_info.number_of_track_lines; i++) { |
HenryWTriff | 2:d08b6a1eaf2b | 211 | Graphics_Draw_Line(Track_Lines_Transformed[i].from, Track_Lines_Transformed[i].to, true, LCD); |
HenryWTriff | 2:d08b6a1eaf2b | 212 | } |
HenryWTriff | 3:ceed6d026b8b | 213 | |
HenryWTriff | 3:ceed6d026b8b | 214 | for(int i = 0; i < map_info.number_of_dotted_lines; i++) { |
HenryWTriff | 3:ceed6d026b8b | 215 | Graphics_Draw_Line(Track_Dotted_Lines_Transformed[i].from, Track_Dotted_Lines_Transformed[i].to,false, LCD); |
HenryWTriff | 3:ceed6d026b8b | 216 | } |
HenryWTriff | 3:ceed6d026b8b | 217 | |
HenryWTriff | 6:5f76dd718dc3 | 218 | for(int i = 0; i < map_info.number_of_boost_plates; i++) { |
HenryWTriff | 6:5f76dd718dc3 | 219 | Graphics_Draw_Boost_Plate(Track_Boost_Plates[i], translation, angle, squish, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 220 | } |
HenryWTriff | 6:5f76dd718dc3 | 221 | |
HenryWTriff | 3:ceed6d026b8b | 222 | for(int i = 0; i < map_info.number_of_flags; i++) { |
HenryWTriff | 3:ceed6d026b8b | 223 | Graphics_Draw_Sprite(Transformed_Flags[i], 8, 8, (int *)flag, LCD); |
HenryWTriff | 3:ceed6d026b8b | 224 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 225 | |
HenryWTriff | 6:5f76dd718dc3 | 226 | Graphics_Draw_Sprite(Transformed_Ghost, 8, 8, (int *)ghost, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 227 | |
HenryWTriff | 5:2d9f3c36bcb9 | 228 | for(int i = 0; i < map_info.number_of_walls; i++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 229 | Graphics_Draw_Wall(Transformed_Walls[i].from, Transformed_Walls[i].to,4, LCD); |
HenryWTriff | 5:2d9f3c36bcb9 | 230 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 231 | |
HenryWTriff | 4:9f41fc1c2ad1 | 232 | Point_2D car_position = {4,0}; |
HenryWTriff | 4:9f41fc1c2ad1 | 233 | Graphics_Draw_Sprite(car_position,8,8,(int *)car, LCD); |
HenryWTriff | 2:d08b6a1eaf2b | 234 | } |
HenryWTriff | 2:d08b6a1eaf2b | 235 | |
HenryWTriff | 2:d08b6a1eaf2b | 236 | //******************* |
HenryWTriff | 2:d08b6a1eaf2b | 237 | // SCREEN SETTINGS |
HenryWTriff | 2:d08b6a1eaf2b | 238 | //******************* |
HenryWTriff | 2:d08b6a1eaf2b | 239 | |
HenryWTriff | 2:d08b6a1eaf2b | 240 | void Graphics::Change_Contrast(N5110 &LCD, Gamepad &Device) |
HenryWTriff | 2:d08b6a1eaf2b | 241 | { |
HenryWTriff | 2:d08b6a1eaf2b | 242 | LCD.setContrast((0.35 + 0.2 * Device.read_pot1())); |
HenryWTriff | 2:d08b6a1eaf2b | 243 | } |
HenryWTriff | 2:d08b6a1eaf2b | 244 | |
HenryWTriff | 6:5f76dd718dc3 | 245 | //**************** |
HenryWTriff | 6:5f76dd718dc3 | 246 | // START SCREEN |
HenryWTriff | 6:5f76dd718dc3 | 247 | //**************** |
HenryWTriff | 6:5f76dd718dc3 | 248 | |
HenryWTriff | 6:5f76dd718dc3 | 249 | void Graphics::Start_Sequence(int state, N5110 &LCD) |
HenryWTriff | 6:5f76dd718dc3 | 250 | { |
HenryWTriff | 6:5f76dd718dc3 | 251 | Point_2D count_down_position = {8,8}; |
HenryWTriff | 6:5f76dd718dc3 | 252 | if(state == 3) { |
HenryWTriff | 6:5f76dd718dc3 | 253 | Graphics_Draw_Sprite(count_down_position, 17, 17, (int *) count_down_3, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 254 | } else if(state == 2) { |
HenryWTriff | 6:5f76dd718dc3 | 255 | Graphics_Draw_Sprite(count_down_position, 17, 17, (int *) count_down_2, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 256 | } else if(state == 1) { |
HenryWTriff | 6:5f76dd718dc3 | 257 | Graphics_Draw_Sprite(count_down_position, 17, 17, (int *) count_down_1, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 258 | } else if(state == 0) { |
HenryWTriff | 6:5f76dd718dc3 | 259 | Graphics_Draw_Sprite(count_down_position, 18, 18, (int *) count_down_0, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 260 | } |
HenryWTriff | 6:5f76dd718dc3 | 261 | |
HenryWTriff | 6:5f76dd718dc3 | 262 | } |
HenryWTriff | 6:5f76dd718dc3 | 263 | |
HenryWTriff | 6:5f76dd718dc3 | 264 | void Graphics::Finish(N5110 &LCD) |
HenryWTriff | 6:5f76dd718dc3 | 265 | { |
HenryWTriff | 6:5f76dd718dc3 | 266 | Point_2D finish_position = {8,8}; |
HenryWTriff | 6:5f76dd718dc3 | 267 | Graphics_Draw_Sprite(finish_position, 16, 16, (int *) cup, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 268 | } |
HenryWTriff | 6:5f76dd718dc3 | 269 | |
HenryWTriff | 5:2d9f3c36bcb9 | 270 | //******************** |
HenryWTriff | 5:2d9f3c36bcb9 | 271 | // DRAW LAP COUNTER |
HenryWTriff | 5:2d9f3c36bcb9 | 272 | //******************** |
HenryWTriff | 5:2d9f3c36bcb9 | 273 | |
HenryWTriff | 5:2d9f3c36bcb9 | 274 | void Graphics::Draw_Laps(int laps, N5110 &LCD) |
HenryWTriff | 5:2d9f3c36bcb9 | 275 | { |
HenryWTriff | 5:2d9f3c36bcb9 | 276 | if(laps == 1) { |
HenryWTriff | 5:2d9f3c36bcb9 | 277 | LCD.printString("1",0,5); |
HenryWTriff | 5:2d9f3c36bcb9 | 278 | } else if (laps == 2) { |
HenryWTriff | 5:2d9f3c36bcb9 | 279 | LCD.printString("2",0,5); |
HenryWTriff | 5:2d9f3c36bcb9 | 280 | } else if (laps == 3) { |
HenryWTriff | 5:2d9f3c36bcb9 | 281 | LCD.printString("3",0,5); |
HenryWTriff | 5:2d9f3c36bcb9 | 282 | } else if (laps == 4) { |
HenryWTriff | 5:2d9f3c36bcb9 | 283 | LCD.printString("4",0,5); |
HenryWTriff | 5:2d9f3c36bcb9 | 284 | } else if (laps == 5) { |
HenryWTriff | 5:2d9f3c36bcb9 | 285 | LCD.printString("5",0,5); |
HenryWTriff | 5:2d9f3c36bcb9 | 286 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 287 | } |
HenryWTriff | 2:d08b6a1eaf2b | 288 | |
HenryWTriff | 6:5f76dd718dc3 | 289 | void Graphics::Draw_Time(bool finished, Time time, N5110 &LCD) |
HenryWTriff | 6:5f76dd718dc3 | 290 | { |
HenryWTriff | 6:5f76dd718dc3 | 291 | if(finished == false) { |
HenryWTriff | 6:5f76dd718dc3 | 292 | char min[1]; |
HenryWTriff | 6:5f76dd718dc3 | 293 | sprintf(min, "%i", time.mins); |
HenryWTriff | 6:5f76dd718dc3 | 294 | LCD.printString(min,47,5); |
HenryWTriff | 6:5f76dd718dc3 | 295 | |
HenryWTriff | 6:5f76dd718dc3 | 296 | LCD.printString(":",52,5); |
HenryWTriff | 6:5f76dd718dc3 | 297 | |
HenryWTriff | 6:5f76dd718dc3 | 298 | if(time.secs < 10) { |
HenryWTriff | 6:5f76dd718dc3 | 299 | LCD.printString("0",57,5); |
HenryWTriff | 6:5f76dd718dc3 | 300 | char sec[1]; |
HenryWTriff | 6:5f76dd718dc3 | 301 | sprintf(sec, "%i", time.secs); |
HenryWTriff | 6:5f76dd718dc3 | 302 | LCD.printString(sec,63,5); |
HenryWTriff | 6:5f76dd718dc3 | 303 | } else { |
HenryWTriff | 6:5f76dd718dc3 | 304 | char sec[2]; |
HenryWTriff | 6:5f76dd718dc3 | 305 | sprintf(sec, "%i", time.secs); |
HenryWTriff | 6:5f76dd718dc3 | 306 | LCD.printString(sec,57,5); |
HenryWTriff | 6:5f76dd718dc3 | 307 | } |
HenryWTriff | 6:5f76dd718dc3 | 308 | |
HenryWTriff | 6:5f76dd718dc3 | 309 | LCD.printString(".",68,5); |
HenryWTriff | 6:5f76dd718dc3 | 310 | |
HenryWTriff | 6:5f76dd718dc3 | 311 | char mili[2]; |
HenryWTriff | 6:5f76dd718dc3 | 312 | sprintf(mili, "%i", time.milis); |
HenryWTriff | 6:5f76dd718dc3 | 313 | LCD.printString(mili,73,5); |
HenryWTriff | 6:5f76dd718dc3 | 314 | } else { |
HenryWTriff | 6:5f76dd718dc3 | 315 | char min[1]; |
HenryWTriff | 6:5f76dd718dc3 | 316 | sprintf(min, "%i", time.mins); |
HenryWTriff | 6:5f76dd718dc3 | 317 | LCD.printString(min,23,0); |
HenryWTriff | 6:5f76dd718dc3 | 318 | |
HenryWTriff | 6:5f76dd718dc3 | 319 | LCD.printString(":",28,0); |
HenryWTriff | 6:5f76dd718dc3 | 320 | |
HenryWTriff | 6:5f76dd718dc3 | 321 | if(time.secs < 10) { |
HenryWTriff | 6:5f76dd718dc3 | 322 | LCD.printString("0",33,0); |
HenryWTriff | 6:5f76dd718dc3 | 323 | char sec[1]; |
HenryWTriff | 6:5f76dd718dc3 | 324 | sprintf(sec, "%i", time.secs); |
HenryWTriff | 6:5f76dd718dc3 | 325 | LCD.printString(sec,39,0); |
HenryWTriff | 6:5f76dd718dc3 | 326 | } else { |
HenryWTriff | 6:5f76dd718dc3 | 327 | char sec[2]; |
HenryWTriff | 6:5f76dd718dc3 | 328 | sprintf(sec, "%i", time.secs); |
HenryWTriff | 6:5f76dd718dc3 | 329 | LCD.printString(sec,33,0); |
HenryWTriff | 6:5f76dd718dc3 | 330 | } |
HenryWTriff | 6:5f76dd718dc3 | 331 | |
HenryWTriff | 6:5f76dd718dc3 | 332 | LCD.printString(".",44,0); |
HenryWTriff | 6:5f76dd718dc3 | 333 | |
HenryWTriff | 6:5f76dd718dc3 | 334 | char mili[2]; |
HenryWTriff | 6:5f76dd718dc3 | 335 | sprintf(mili, "%i", time.milis); |
HenryWTriff | 6:5f76dd718dc3 | 336 | LCD.printString(mili,49,0); |
HenryWTriff | 6:5f76dd718dc3 | 337 | } |
HenryWTriff | 6:5f76dd718dc3 | 338 | } |
HenryWTriff | 6:5f76dd718dc3 | 339 | |
HenryWTriff | 2:d08b6a1eaf2b | 340 | //************** |
HenryWTriff | 2:d08b6a1eaf2b | 341 | // TRANSFORM |
HenryWTriff | 2:d08b6a1eaf2b | 342 | //************** |
HenryWTriff | 2:d08b6a1eaf2b | 343 | |
HenryWTriff | 2:d08b6a1eaf2b | 344 | //ROTATE |
HenryWTriff | 2:d08b6a1eaf2b | 345 | Point_2D Graphics::Rotate_Point(Point_2D point, float angle) |
HenryWTriff | 2:d08b6a1eaf2b | 346 | { |
HenryWTriff | 2:d08b6a1eaf2b | 347 | angle = (angle * PI)/180; |
HenryWTriff | 2:d08b6a1eaf2b | 348 | float x_rotated = point.x * cos(angle) - point.y * sin(angle); |
HenryWTriff | 2:d08b6a1eaf2b | 349 | float y_rotated = point.y * cos(angle) + point.x * sin(angle); |
HenryWTriff | 2:d08b6a1eaf2b | 350 | return {x_rotated, y_rotated}; |
HenryWTriff | 2:d08b6a1eaf2b | 351 | } |
HenryWTriff | 2:d08b6a1eaf2b | 352 | //TRANSLATE |
HenryWTriff | 2:d08b6a1eaf2b | 353 | Point_2D Graphics::Translate_Point(Point_2D point, int translate_x, int translate_y) |
HenryWTriff | 2:d08b6a1eaf2b | 354 | { |
HenryWTriff | 2:d08b6a1eaf2b | 355 | float x_translated = point.x - translate_x; |
HenryWTriff | 2:d08b6a1eaf2b | 356 | float y_translated = point.y - translate_y; |
HenryWTriff | 2:d08b6a1eaf2b | 357 | return {x_translated, y_translated}; |
HenryWTriff | 2:d08b6a1eaf2b | 358 | } |
HenryWTriff | 2:d08b6a1eaf2b | 359 | //SQUISH |
HenryWTriff | 2:d08b6a1eaf2b | 360 | Point_2D Graphics::Squish_Point(Point_2D point, float squish) |
HenryWTriff | 2:d08b6a1eaf2b | 361 | { |
HenryWTriff | 2:d08b6a1eaf2b | 362 | float x_squish = point.x; |
HenryWTriff | 2:d08b6a1eaf2b | 363 | float y_squish = point.y * squish; |
HenryWTriff | 2:d08b6a1eaf2b | 364 | return {x_squish, y_squish}; |
HenryWTriff | 2:d08b6a1eaf2b | 365 | } |
HenryWTriff | 2:d08b6a1eaf2b | 366 | |
HenryWTriff | 2:d08b6a1eaf2b | 367 | //******** |
HenryWTriff | 2:d08b6a1eaf2b | 368 | // MATH |
HenryWTriff | 2:d08b6a1eaf2b | 369 | //******** |
HenryWTriff | 2:d08b6a1eaf2b | 370 | |
HenryWTriff | 2:d08b6a1eaf2b | 371 | int Graphics::Round(float number) |
HenryWTriff | 2:d08b6a1eaf2b | 372 | { |
HenryWTriff | 2:d08b6a1eaf2b | 373 | int number_int = (number * 10); |
HenryWTriff | 2:d08b6a1eaf2b | 374 | int remainder = number_int % 10; |
HenryWTriff | 2:d08b6a1eaf2b | 375 | if(remainder < 5) { |
HenryWTriff | 2:d08b6a1eaf2b | 376 | return ((number_int - remainder) / 10); |
HenryWTriff | 2:d08b6a1eaf2b | 377 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 378 | return ((number_int + (10 - remainder)) / 10); |
HenryWTriff | 2:d08b6a1eaf2b | 379 | } |
HenryWTriff | 2:d08b6a1eaf2b | 380 | } |
HenryWTriff | 2:d08b6a1eaf2b | 381 | |
HenryWTriff | 2:d08b6a1eaf2b | 382 | float Graphics::Gradient(Point_2D from, Point_2D to) |
HenryWTriff | 2:d08b6a1eaf2b | 383 | { |
HenryWTriff | 2:d08b6a1eaf2b | 384 | float change_in_y = to.y - from.y; |
HenryWTriff | 2:d08b6a1eaf2b | 385 | float change_in_x = to.x - from.x; |
HenryWTriff | 2:d08b6a1eaf2b | 386 | float gradient = change_in_y / change_in_x; |
HenryWTriff | 2:d08b6a1eaf2b | 387 | if(gradient < 0.001 && gradient > -0.001) { |
HenryWTriff | 2:d08b6a1eaf2b | 388 | return 0; |
HenryWTriff | 2:d08b6a1eaf2b | 389 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 390 | return gradient; |
HenryWTriff | 2:d08b6a1eaf2b | 391 | } |
HenryWTriff | 2:d08b6a1eaf2b | 392 | } |
HenryWTriff | 2:d08b6a1eaf2b | 393 | |
HenryWTriff | 2:d08b6a1eaf2b | 394 | bool Graphics::Gradient_Check_Infinate(Point_2D from, Point_2D to) |
HenryWTriff | 2:d08b6a1eaf2b | 395 | { |
HenryWTriff | 2:d08b6a1eaf2b | 396 | float change_in_x = to.x - from.x; |
HenryWTriff | 2:d08b6a1eaf2b | 397 | if(change_in_x < 0.001 && change_in_x > -0.001) { |
HenryWTriff | 2:d08b6a1eaf2b | 398 | return true; |
HenryWTriff | 2:d08b6a1eaf2b | 399 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 400 | return false; |
HenryWTriff | 2:d08b6a1eaf2b | 401 | } |
HenryWTriff | 2:d08b6a1eaf2b | 402 | } |
HenryWTriff | 2:d08b6a1eaf2b | 403 | |
HenryWTriff | 3:ceed6d026b8b | 404 | //************* |
HenryWTriff | 3:ceed6d026b8b | 405 | // DRAW LINE |
HenryWTriff | 3:ceed6d026b8b | 406 | //************* |
HenryWTriff | 2:d08b6a1eaf2b | 407 | |
HenryWTriff | 2:d08b6a1eaf2b | 408 | void Graphics::Graphics_Draw_Line(Point_2D from, Point_2D to, bool solid, N5110 &LCD) //Draw a line between two points on only the portion of the screen |
HenryWTriff | 2:d08b6a1eaf2b | 409 | { |
HenryWTriff | 2:d08b6a1eaf2b | 410 | |
HenryWTriff | 2:d08b6a1eaf2b | 411 | if( Gradient_Check_Infinate(from, to) == false ) { //Checking to see if the line is vertical |
HenryWTriff | 2:d08b6a1eaf2b | 412 | Point_2D plot_x_from = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 413 | Point_2D plot_x_to = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 414 | Point_2D plot_y_from = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 415 | Point_2D plot_y_to = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 416 | |
HenryWTriff | 2:d08b6a1eaf2b | 417 | float gradient = Gradient(from, to); // Calculating the gradient |
HenryWTriff | 2:d08b6a1eaf2b | 418 | float y_intercept = (from.y - gradient * from.x); // Calulating the y intercept y - mx = c |
HenryWTriff | 2:d08b6a1eaf2b | 419 | float x_intercept = (from.x - from.y / gradient); // Calculating the x intercept x - y/m = d |
HenryWTriff | 2:d08b6a1eaf2b | 420 | |
HenryWTriff | 2:d08b6a1eaf2b | 421 | if(gradient <= 1 && gradient >= -1) { |
HenryWTriff | 2:d08b6a1eaf2b | 422 | //Reordering from and to so that the for loops below can use ++ |
HenryWTriff | 2:d08b6a1eaf2b | 423 | if(to.x < from.x) { |
HenryWTriff | 2:d08b6a1eaf2b | 424 | plot_x_from = to; |
HenryWTriff | 2:d08b6a1eaf2b | 425 | plot_x_to = from; |
HenryWTriff | 2:d08b6a1eaf2b | 426 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 427 | plot_x_from = from; |
HenryWTriff | 2:d08b6a1eaf2b | 428 | plot_x_to = to; |
HenryWTriff | 2:d08b6a1eaf2b | 429 | } |
HenryWTriff | 2:d08b6a1eaf2b | 430 | if(solid == true) { |
HenryWTriff | 2:d08b6a1eaf2b | 431 | for(int x = Round(plot_x_from.x); x <= Round(plot_x_to.x); x++) { //Iterating through the x points |
HenryWTriff | 2:d08b6a1eaf2b | 432 | int y = -(Round((gradient * x) + y_intercept)); //Calculating the value of y for each x point |
HenryWTriff | 2:d08b6a1eaf2b | 433 | Point_2D plot_x = {x+42, y+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 434 | if(plot_x.x <= 84 && plot_x.x >= 0 && plot_x.y <=48 && plot_x.y >= 0) { |
HenryWTriff | 2:d08b6a1eaf2b | 435 | LCD.setPixel(plot_x.x, plot_x.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 436 | } |
HenryWTriff | 2:d08b6a1eaf2b | 437 | } |
HenryWTriff | 2:d08b6a1eaf2b | 438 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 439 | for(int x = Round(plot_x_from.x); x <= Round(plot_x_to.x); x+=2) { //Iterating through the x points |
HenryWTriff | 2:d08b6a1eaf2b | 440 | int y = -(Round((gradient * x) + y_intercept)); //Calculating the value of y for each x point |
HenryWTriff | 2:d08b6a1eaf2b | 441 | Point_2D plot_x = {x+42, y+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 442 | if(plot_x.x <= 84 && plot_x.x >= 0 && plot_x.y <=48 && plot_x.y >= 0) { |
HenryWTriff | 2:d08b6a1eaf2b | 443 | LCD.setPixel(plot_x.x, plot_x.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 444 | } |
HenryWTriff | 2:d08b6a1eaf2b | 445 | } |
HenryWTriff | 2:d08b6a1eaf2b | 446 | } |
HenryWTriff | 2:d08b6a1eaf2b | 447 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 448 | if(to.y < from.y) { |
HenryWTriff | 2:d08b6a1eaf2b | 449 | plot_y_from = to; |
HenryWTriff | 2:d08b6a1eaf2b | 450 | plot_y_to = from; |
HenryWTriff | 2:d08b6a1eaf2b | 451 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 452 | plot_y_from = from; |
HenryWTriff | 2:d08b6a1eaf2b | 453 | plot_y_to = to; |
HenryWTriff | 2:d08b6a1eaf2b | 454 | } |
HenryWTriff | 2:d08b6a1eaf2b | 455 | if(solid == true) { |
HenryWTriff | 2:d08b6a1eaf2b | 456 | for(int y = Round(plot_y_from.y); y <= Round(plot_y_to.y); y++) { //Iterating through the Y points |
HenryWTriff | 2:d08b6a1eaf2b | 457 | int x = Round((y / gradient) + x_intercept); //Calculating the value of x for every y point |
HenryWTriff | 2:d08b6a1eaf2b | 458 | Point_2D plot_y = {x+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 459 | if(plot_y.x <= 84 && plot_y.x >= 0 && plot_y.y <=48 && plot_y.y >= 0) { |
HenryWTriff | 2:d08b6a1eaf2b | 460 | LCD.setPixel(plot_y.x, plot_y.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 461 | } |
HenryWTriff | 2:d08b6a1eaf2b | 462 | } |
HenryWTriff | 2:d08b6a1eaf2b | 463 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 464 | for(int y = Round(plot_y_from.y); y <= Round(plot_y_to.y); y+=2) { //Iterating through the Y points |
HenryWTriff | 2:d08b6a1eaf2b | 465 | int x = Round((y / gradient) + x_intercept); //Calculating the value of x for every y point |
HenryWTriff | 2:d08b6a1eaf2b | 466 | Point_2D plot_y = {x+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 467 | if(plot_y.x <= 84 && plot_y.x >= 0 && plot_y.y <=48 && plot_y.y >= 0) { |
HenryWTriff | 2:d08b6a1eaf2b | 468 | LCD.setPixel(plot_y.x, plot_y.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 469 | } |
HenryWTriff | 2:d08b6a1eaf2b | 470 | } |
HenryWTriff | 2:d08b6a1eaf2b | 471 | } |
HenryWTriff | 2:d08b6a1eaf2b | 472 | } |
HenryWTriff | 2:d08b6a1eaf2b | 473 | |
HenryWTriff | 2:d08b6a1eaf2b | 474 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 475 | Point_2D plot_y_from = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 476 | Point_2D plot_y_to = {0,0}; |
HenryWTriff | 2:d08b6a1eaf2b | 477 | //Reordering from and to so that the for loops below can use ++ |
HenryWTriff | 2:d08b6a1eaf2b | 478 | if(to.y < from.y) { |
HenryWTriff | 2:d08b6a1eaf2b | 479 | plot_y_from = to; |
HenryWTriff | 2:d08b6a1eaf2b | 480 | plot_y_to = from; |
HenryWTriff | 2:d08b6a1eaf2b | 481 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 482 | plot_y_from = from; |
HenryWTriff | 2:d08b6a1eaf2b | 483 | plot_y_to = to; |
HenryWTriff | 2:d08b6a1eaf2b | 484 | } |
HenryWTriff | 2:d08b6a1eaf2b | 485 | float x_intercept = from.x; //Calculating the x_intercept |
HenryWTriff | 2:d08b6a1eaf2b | 486 | if(solid == true) { |
HenryWTriff | 2:d08b6a1eaf2b | 487 | for(int y = plot_y_from.y; y <= plot_y_to.y; y++) { |
HenryWTriff | 2:d08b6a1eaf2b | 488 | Point_2D plot_y = {x_intercept+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 489 | LCD.setPixel(plot_y.x, plot_y.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 490 | } |
HenryWTriff | 2:d08b6a1eaf2b | 491 | } else { |
HenryWTriff | 2:d08b6a1eaf2b | 492 | for(int y = plot_y_from.y; y <= plot_y_to.y; y+=2) { |
HenryWTriff | 2:d08b6a1eaf2b | 493 | Point_2D plot_y = {x_intercept+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 2:d08b6a1eaf2b | 494 | LCD.setPixel(plot_y.x, plot_y.y, true); //Plotting the points |
HenryWTriff | 2:d08b6a1eaf2b | 495 | } |
HenryWTriff | 2:d08b6a1eaf2b | 496 | } |
HenryWTriff | 2:d08b6a1eaf2b | 497 | } |
HenryWTriff | 3:ceed6d026b8b | 498 | } |
HenryWTriff | 3:ceed6d026b8b | 499 | |
HenryWTriff | 3:ceed6d026b8b | 500 | //*************** |
HenryWTriff | 3:ceed6d026b8b | 501 | // DRAW SPRITE |
HenryWTriff | 3:ceed6d026b8b | 502 | //*************** |
HenryWTriff | 3:ceed6d026b8b | 503 | |
HenryWTriff | 3:ceed6d026b8b | 504 | void Graphics::Graphics_Draw_Sprite(Point_2D point, int x_size, int y_size, int *sprite, N5110 &LCD) |
HenryWTriff | 3:ceed6d026b8b | 505 | { |
HenryWTriff | 3:ceed6d026b8b | 506 | Point_2D zeroed_point = {Round(point.x) + 42 - x_size, Round(-point.y) + 36 - y_size}; |
HenryWTriff | 3:ceed6d026b8b | 507 | if(zeroed_point.x <= 84 && zeroed_point.x >= 0 && zeroed_point.y <= 48 && zeroed_point.y >= 0) { |
HenryWTriff | 3:ceed6d026b8b | 508 | for(int y = 0; y < y_size; y++) { |
HenryWTriff | 3:ceed6d026b8b | 509 | for(int x = 0; x < x_size; x++) { |
HenryWTriff | 3:ceed6d026b8b | 510 | if(*((sprite + y*y_size)+x) == 1) { |
HenryWTriff | 3:ceed6d026b8b | 511 | LCD.setPixel((zeroed_point.x + x), (zeroed_point.y + y), true); |
HenryWTriff | 3:ceed6d026b8b | 512 | } else if(*((sprite + y*y_size)+x) == 0) { |
HenryWTriff | 3:ceed6d026b8b | 513 | LCD.setPixel((zeroed_point.x + x), (zeroed_point.y + y), false); |
HenryWTriff | 3:ceed6d026b8b | 514 | } |
HenryWTriff | 3:ceed6d026b8b | 515 | } |
HenryWTriff | 3:ceed6d026b8b | 516 | } |
HenryWTriff | 3:ceed6d026b8b | 517 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 518 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 519 | |
HenryWTriff | 5:2d9f3c36bcb9 | 520 | //*************** |
HenryWTriff | 5:2d9f3c36bcb9 | 521 | // DRAW WALL |
HenryWTriff | 5:2d9f3c36bcb9 | 522 | //*************** |
HenryWTriff | 5:2d9f3c36bcb9 | 523 | |
HenryWTriff | 5:2d9f3c36bcb9 | 524 | void Graphics::Graphics_Draw_Wall(Point_2D from, Point_2D to, int height, N5110 &LCD) //Draw a line between two points on only the portion of the screen |
HenryWTriff | 5:2d9f3c36bcb9 | 525 | { |
HenryWTriff | 5:2d9f3c36bcb9 | 526 | if(Gradient_Check_Infinate(from, to) == 0) { //Checking to see if the line is vertical |
HenryWTriff | 5:2d9f3c36bcb9 | 527 | Point_2D plot_x_from = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 528 | Point_2D plot_x_to = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 529 | Point_2D plot_y_from = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 530 | Point_2D plot_y_to = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 531 | |
HenryWTriff | 5:2d9f3c36bcb9 | 532 | float gradient = Gradient(from, to); // Calculating the gradient |
HenryWTriff | 5:2d9f3c36bcb9 | 533 | float y_intercept = (from.y - gradient * from.x); // Calulating the y intercept y - mx = c |
HenryWTriff | 5:2d9f3c36bcb9 | 534 | float x_intercept = (from.x - from.y / gradient); // Calculating the x intercept x - y/m = d |
HenryWTriff | 5:2d9f3c36bcb9 | 535 | |
HenryWTriff | 5:2d9f3c36bcb9 | 536 | if(gradient <= 1 && gradient >= -1) { |
HenryWTriff | 5:2d9f3c36bcb9 | 537 | //Reordering from and to so that the for loops below can use ++ |
HenryWTriff | 5:2d9f3c36bcb9 | 538 | if(to.x < from.x) { |
HenryWTriff | 5:2d9f3c36bcb9 | 539 | plot_x_from = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 540 | plot_x_to = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 541 | } else { |
HenryWTriff | 5:2d9f3c36bcb9 | 542 | plot_x_from = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 543 | plot_x_to = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 544 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 545 | for(int x = Round(plot_x_from.x); x <= Round(plot_x_to.x); x++) { //Iterating through the x points |
HenryWTriff | 5:2d9f3c36bcb9 | 546 | int y = -(Round((gradient * x) + y_intercept)); //Calculating the value of y for each x point |
HenryWTriff | 5:2d9f3c36bcb9 | 547 | Point_2D plot_x = {x+42, y+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 5:2d9f3c36bcb9 | 548 | if(plot_x.x <= 84 && plot_x.x >= 0 && plot_x.y <=48 && plot_x.y >= 0) { |
HenryWTriff | 5:2d9f3c36bcb9 | 549 | for(int y_add = 0; y_add < height; y_add++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 550 | LCD.setPixel(plot_x.x, plot_x.y - y_add, true); |
HenryWTriff | 5:2d9f3c36bcb9 | 551 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 552 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 553 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 554 | } else { |
HenryWTriff | 5:2d9f3c36bcb9 | 555 | if(to.y < from.y) { |
HenryWTriff | 5:2d9f3c36bcb9 | 556 | plot_y_from = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 557 | plot_y_to = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 558 | } else { |
HenryWTriff | 5:2d9f3c36bcb9 | 559 | plot_y_from = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 560 | plot_y_to = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 561 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 562 | for(int y = Round(plot_y_from.y); y <= Round(plot_y_to.y); y++) { //Iterating through the Y points |
HenryWTriff | 5:2d9f3c36bcb9 | 563 | int x = Round((y / gradient) + x_intercept); //Calculating the value of x for every y point |
HenryWTriff | 5:2d9f3c36bcb9 | 564 | Point_2D plot_y = {x+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 5:2d9f3c36bcb9 | 565 | if(plot_y.x <= 84 && plot_y.x >= 0 && plot_y.y <=48 && plot_y.y >= 0) { |
HenryWTriff | 5:2d9f3c36bcb9 | 566 | for(int y_add = 0; y_add < height; y_add++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 567 | LCD.setPixel(plot_y.x, plot_y.y - y_add, true); |
HenryWTriff | 5:2d9f3c36bcb9 | 568 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 569 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 570 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 571 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 572 | |
HenryWTriff | 5:2d9f3c36bcb9 | 573 | } else { |
HenryWTriff | 5:2d9f3c36bcb9 | 574 | Point_2D plot_y_from = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 575 | Point_2D plot_y_to = {0,0}; |
HenryWTriff | 5:2d9f3c36bcb9 | 576 | //Reordering from and to so that the for loops below can use ++ |
HenryWTriff | 5:2d9f3c36bcb9 | 577 | if(to.y < from.y) { |
HenryWTriff | 5:2d9f3c36bcb9 | 578 | plot_y_from = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 579 | plot_y_to = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 580 | } else { |
HenryWTriff | 5:2d9f3c36bcb9 | 581 | plot_y_from = from; |
HenryWTriff | 5:2d9f3c36bcb9 | 582 | plot_y_to = to; |
HenryWTriff | 5:2d9f3c36bcb9 | 583 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 584 | float x_intercept = from.x; //Calculating the x_intercept |
HenryWTriff | 5:2d9f3c36bcb9 | 585 | for(int y = plot_y_from.y; y <= plot_y_to.y; y++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 586 | Point_2D plot_y = {x_intercept+42, (-y)+36}; //Assigning them to a Plot_2D variable and transforming so the centre of the screen is 0,0 |
HenryWTriff | 5:2d9f3c36bcb9 | 587 | for(int y_add = 0; y_add < height; y_add++) { |
HenryWTriff | 5:2d9f3c36bcb9 | 588 | LCD.setPixel(plot_y.x, plot_y.y - y_add, true); |
HenryWTriff | 5:2d9f3c36bcb9 | 589 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 590 | } |
HenryWTriff | 5:2d9f3c36bcb9 | 591 | |
HenryWTriff | 5:2d9f3c36bcb9 | 592 | } |
HenryWTriff | 6:5f76dd718dc3 | 593 | } |
HenryWTriff | 6:5f76dd718dc3 | 594 | |
HenryWTriff | 6:5f76dd718dc3 | 595 | //******************** |
HenryWTriff | 6:5f76dd718dc3 | 596 | // DRAW BOOST PLATE |
HenryWTriff | 6:5f76dd718dc3 | 597 | //******************** |
HenryWTriff | 6:5f76dd718dc3 | 598 | |
HenryWTriff | 6:5f76dd718dc3 | 599 | void Graphics::Graphics_Draw_Boost_Plate(Triangle_2D boost_plate, Point_2D translation, int angle, float squish, N5110 &LCD) |
HenryWTriff | 6:5f76dd718dc3 | 600 | { |
HenryWTriff | 6:5f76dd718dc3 | 601 | Point_2D boost_plate_TL = boost_plate.TL; |
HenryWTriff | 6:5f76dd718dc3 | 602 | Point_2D boost_plate_TR = {boost_plate.BR.x, boost_plate.TL.y}; |
HenryWTriff | 6:5f76dd718dc3 | 603 | Point_2D boost_plate_BL = {boost_plate.TL.x, boost_plate.BR.y}; |
HenryWTriff | 6:5f76dd718dc3 | 604 | Point_2D boost_plate_BR = boost_plate.BR; |
HenryWTriff | 6:5f76dd718dc3 | 605 | Point_2D boost_plate_mid; |
HenryWTriff | 6:5f76dd718dc3 | 606 | if(boost_plate.Type == 1) { |
HenryWTriff | 6:5f76dd718dc3 | 607 | boost_plate_mid.x = boost_plate_BR.x; |
HenryWTriff | 6:5f76dd718dc3 | 608 | boost_plate_mid.y = (((boost_plate_TL.y - boost_plate_BR.y) / 2) + boost_plate_BR.y); |
HenryWTriff | 6:5f76dd718dc3 | 609 | } else if(boost_plate.Type == 2) { |
HenryWTriff | 6:5f76dd718dc3 | 610 | boost_plate_mid.x = (((boost_plate_BR.x - boost_plate_TL.x) / 2) + boost_plate_TL.x); |
HenryWTriff | 6:5f76dd718dc3 | 611 | boost_plate_mid.y = boost_plate_BR.y; |
HenryWTriff | 6:5f76dd718dc3 | 612 | } else if(boost_plate.Type == 3) { |
HenryWTriff | 6:5f76dd718dc3 | 613 | boost_plate_mid.x = boost_plate_TL.x; |
HenryWTriff | 6:5f76dd718dc3 | 614 | boost_plate_mid.y = (((boost_plate_TL.y - boost_plate_BR.y) / 2) + boost_plate_BR.y); |
HenryWTriff | 6:5f76dd718dc3 | 615 | } else if(boost_plate.Type == 4) { |
HenryWTriff | 6:5f76dd718dc3 | 616 | boost_plate_mid.x = (((boost_plate_BR.x - boost_plate_TL.x) / 2) + boost_plate_TL.x); |
HenryWTriff | 6:5f76dd718dc3 | 617 | boost_plate_mid.y = boost_plate_TL.y; |
HenryWTriff | 6:5f76dd718dc3 | 618 | } |
HenryWTriff | 6:5f76dd718dc3 | 619 | |
HenryWTriff | 6:5f76dd718dc3 | 620 | //Translation |
HenryWTriff | 6:5f76dd718dc3 | 621 | boost_plate_TL = Translate_Point(boost_plate_TL, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 622 | boost_plate_TR = Translate_Point(boost_plate_TR, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 623 | boost_plate_BL = Translate_Point(boost_plate_BL, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 624 | boost_plate_BR = Translate_Point(boost_plate_BR, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 625 | boost_plate_mid = Translate_Point(boost_plate_mid, Round(translation.x), Round(translation.y)); |
HenryWTriff | 6:5f76dd718dc3 | 626 | |
HenryWTriff | 6:5f76dd718dc3 | 627 | //Rotation |
HenryWTriff | 6:5f76dd718dc3 | 628 | boost_plate_TL = Rotate_Point(boost_plate_TL, angle); |
HenryWTriff | 6:5f76dd718dc3 | 629 | boost_plate_TR = Rotate_Point(boost_plate_TR, angle); |
HenryWTriff | 6:5f76dd718dc3 | 630 | boost_plate_BL = Rotate_Point(boost_plate_BL, angle); |
HenryWTriff | 6:5f76dd718dc3 | 631 | boost_plate_BR = Rotate_Point(boost_plate_BR, angle); |
HenryWTriff | 6:5f76dd718dc3 | 632 | boost_plate_mid = Rotate_Point(boost_plate_mid, angle); |
HenryWTriff | 6:5f76dd718dc3 | 633 | |
HenryWTriff | 6:5f76dd718dc3 | 634 | //Squish |
HenryWTriff | 6:5f76dd718dc3 | 635 | boost_plate_TL = Squish_Point(boost_plate_TL, squish); |
HenryWTriff | 6:5f76dd718dc3 | 636 | boost_plate_TR = Squish_Point(boost_plate_TR, squish); |
HenryWTriff | 6:5f76dd718dc3 | 637 | boost_plate_BL = Squish_Point(boost_plate_BL, squish); |
HenryWTriff | 6:5f76dd718dc3 | 638 | boost_plate_BR = Squish_Point(boost_plate_BR, squish); |
HenryWTriff | 6:5f76dd718dc3 | 639 | boost_plate_mid = Squish_Point(boost_plate_mid, squish); |
HenryWTriff | 6:5f76dd718dc3 | 640 | |
HenryWTriff | 6:5f76dd718dc3 | 641 | Graphics_Draw_Line(boost_plate_TL, boost_plate_TR, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 642 | Graphics_Draw_Line(boost_plate_TR, boost_plate_BR, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 643 | Graphics_Draw_Line(boost_plate_BR, boost_plate_BL, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 644 | Graphics_Draw_Line(boost_plate_BL, boost_plate_TL, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 645 | |
HenryWTriff | 6:5f76dd718dc3 | 646 | if(boost_plate.Type == 1) { |
HenryWTriff | 6:5f76dd718dc3 | 647 | Graphics_Draw_Line(boost_plate_TL, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 648 | Graphics_Draw_Line(boost_plate_BL, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 649 | } else if(boost_plate.Type == 2) { |
HenryWTriff | 6:5f76dd718dc3 | 650 | Graphics_Draw_Line(boost_plate_TL, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 651 | Graphics_Draw_Line(boost_plate_BL, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 652 | } else if(boost_plate.Type == 3) { |
HenryWTriff | 6:5f76dd718dc3 | 653 | Graphics_Draw_Line(boost_plate_TR, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 654 | Graphics_Draw_Line(boost_plate_BR, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 655 | } else if(boost_plate.Type == 4) { |
HenryWTriff | 6:5f76dd718dc3 | 656 | Graphics_Draw_Line(boost_plate_TR, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 657 | Graphics_Draw_Line(boost_plate_BR, boost_plate_mid, true, LCD); |
HenryWTriff | 6:5f76dd718dc3 | 658 | } |
HenryWTriff | 6:5f76dd718dc3 | 659 | |
HenryWTriff | 6:5f76dd718dc3 | 660 | } |
HenryWTriff | 6:5f76dd718dc3 | 661 | |
HenryWTriff | 6:5f76dd718dc3 | 662 | |
HenryWTriff | 6:5f76dd718dc3 | 663 | |
HenryWTriff | 6:5f76dd718dc3 | 664 | |
HenryWTriff | 6:5f76dd718dc3 | 665 | |
HenryWTriff | 6:5f76dd718dc3 | 666 | |
HenryWTriff | 6:5f76dd718dc3 | 667 | |
HenryWTriff | 6:5f76dd718dc3 | 668 |