Henry Triff / Mbed 2 deprecated ELEC2645_Project_el18ht

Dependencies:   mbed

Committer:
HenryWTriff
Date:
Sat Feb 22 23:13:25 2020 +0000
Revision:
7:2ce6e90f6d47
Parent:
6:5f76dd718dc3
Child:
10:29126a41b1da
Menus Added (inc. Settings),  Different classes of cars

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HenryWTriff 6:5f76dd718dc3 1 #ifndef GHOST_H
HenryWTriff 6:5f76dd718dc3 2 #define GHOST_H
HenryWTriff 6:5f76dd718dc3 3
HenryWTriff 6:5f76dd718dc3 4 #include "mbed.h"
HenryWTriff 6:5f76dd718dc3 5 #include "Gamepad.h"
HenryWTriff 6:5f76dd718dc3 6 #include "N5110.h"
HenryWTriff 6:5f76dd718dc3 7 #include "FXOS8700CQ.h"
HenryWTriff 6:5f76dd718dc3 8 #include "Graphics.h"
HenryWTriff 6:5f76dd718dc3 9 #include "Mechanics.h"
HenryWTriff 6:5f76dd718dc3 10 #include "Menu.h"
HenryWTriff 6:5f76dd718dc3 11 #include "LEDs.h"
HenryWTriff 6:5f76dd718dc3 12 #include "Ghost.h"
HenryWTriff 6:5f76dd718dc3 13 #include <string>
HenryWTriff 6:5f76dd718dc3 14
HenryWTriff 6:5f76dd718dc3 15 #ifndef STRUCTS
HenryWTriff 6:5f76dd718dc3 16 #define STRUCTS
HenryWTriff 6:5f76dd718dc3 17
HenryWTriff 6:5f76dd718dc3 18 //STRUCTS
HenryWTriff 6:5f76dd718dc3 19 struct Point_2D {
HenryWTriff 6:5f76dd718dc3 20 float x;
HenryWTriff 6:5f76dd718dc3 21 float y;
HenryWTriff 6:5f76dd718dc3 22 };
HenryWTriff 6:5f76dd718dc3 23 struct Line_2D {
HenryWTriff 6:5f76dd718dc3 24 Point_2D from;
HenryWTriff 6:5f76dd718dc3 25 Point_2D to;
HenryWTriff 6:5f76dd718dc3 26 };
HenryWTriff 6:5f76dd718dc3 27
HenryWTriff 6:5f76dd718dc3 28 struct Square_2D {
HenryWTriff 6:5f76dd718dc3 29 Point_2D TL;
HenryWTriff 6:5f76dd718dc3 30 Point_2D BR;
HenryWTriff 6:5f76dd718dc3 31 };
HenryWTriff 6:5f76dd718dc3 32 struct Triangle_2D {
HenryWTriff 6:5f76dd718dc3 33 Point_2D TL;
HenryWTriff 6:5f76dd718dc3 34 Point_2D BR;
HenryWTriff 6:5f76dd718dc3 35 int Type;
HenryWTriff 6:5f76dd718dc3 36 };
HenryWTriff 6:5f76dd718dc3 37
HenryWTriff 6:5f76dd718dc3 38 struct Map_Data {
HenryWTriff 6:5f76dd718dc3 39 int number_of_track_lines;
HenryWTriff 6:5f76dd718dc3 40 int number_of_dotted_lines;
HenryWTriff 6:5f76dd718dc3 41 int number_of_flags;
HenryWTriff 6:5f76dd718dc3 42 int number_of_walls;
HenryWTriff 6:5f76dd718dc3 43 int number_of_off_track_squares;
HenryWTriff 6:5f76dd718dc3 44 int number_of_off_track_triangles;
HenryWTriff 6:5f76dd718dc3 45 int number_of_out_of_bounds_squares;
HenryWTriff 6:5f76dd718dc3 46 int number_of_out_of_bounds_triangles;
HenryWTriff 6:5f76dd718dc3 47 int number_of_gates;
HenryWTriff 6:5f76dd718dc3 48 int number_of_boost_plates;
HenryWTriff 6:5f76dd718dc3 49 };
HenryWTriff 6:5f76dd718dc3 50
HenryWTriff 6:5f76dd718dc3 51 struct Time {
HenryWTriff 6:5f76dd718dc3 52 int mins;
HenryWTriff 6:5f76dd718dc3 53 int secs;
HenryWTriff 6:5f76dd718dc3 54 int milis;
HenryWTriff 6:5f76dd718dc3 55 };
HenryWTriff 6:5f76dd718dc3 56
HenryWTriff 6:5f76dd718dc3 57 struct Gyro_Data {
HenryWTriff 6:5f76dd718dc3 58 float ax;
HenryWTriff 6:5f76dd718dc3 59 float ay;
HenryWTriff 6:5f76dd718dc3 60 float az;
HenryWTriff 6:5f76dd718dc3 61 float mx;
HenryWTriff 6:5f76dd718dc3 62 float my;
HenryWTriff 6:5f76dd718dc3 63 float mz;
HenryWTriff 6:5f76dd718dc3 64 };
HenryWTriff 6:5f76dd718dc3 65
HenryWTriff 7:2ce6e90f6d47 66 struct Menu_Data {
HenryWTriff 7:2ce6e90f6d47 67 int Menu_return;
HenryWTriff 7:2ce6e90f6d47 68 bool Back;
HenryWTriff 7:2ce6e90f6d47 69 };
HenryWTriff 7:2ce6e90f6d47 70
HenryWTriff 6:5f76dd718dc3 71 #endif
HenryWTriff 6:5f76dd718dc3 72
HenryWTriff 6:5f76dd718dc3 73 static Point_2D Ghost_Data[6000];
HenryWTriff 6:5f76dd718dc3 74 static int Ghost_Held_Data_Time = 0;
HenryWTriff 6:5f76dd718dc3 75 static Point_2D Ghost_Held_Data[6000];
HenryWTriff 6:5f76dd718dc3 76
HenryWTriff 6:5f76dd718dc3 77 class Ghost
HenryWTriff 6:5f76dd718dc3 78 {
HenryWTriff 6:5f76dd718dc3 79 public:
HenryWTriff 6:5f76dd718dc3 80
HenryWTriff 6:5f76dd718dc3 81 void Record(Point_2D position, int race_time);
HenryWTriff 6:5f76dd718dc3 82 void Copy(int race_time);
HenryWTriff 6:5f76dd718dc3 83 Point_2D Play(bool ghost_available, int race_time);
HenryWTriff 6:5f76dd718dc3 84
HenryWTriff 6:5f76dd718dc3 85 private:
HenryWTriff 6:5f76dd718dc3 86
HenryWTriff 6:5f76dd718dc3 87 };
HenryWTriff 6:5f76dd718dc3 88
HenryWTriff 6:5f76dd718dc3 89 #endif