
Game
Maps.h
- Committer:
- HenryWTriff
- Date:
- 2020-05-22
- Revision:
- 27:7e230a7891f8
- Parent:
- 26:f1d3b7e31091
File content as of revision 27:7e230a7891f8:
//-------- // MAPS //-------- /** All Map Data * @file Maps.h * @brief Contains all the data required for each track. * @author Henry W Triff * @date Mar, 2020 */ /** * @code * * // How maps are drawn: * // > It is drawn very similar to the way a map is drawn * // > I used grid paper and drew the maps then inputted the information by hand * // > It uses a coordinate system where the origin point is where the car starts * // * // Explanation of each part of track: * // > Track Lines = Lines showing the inside and outside of the track * // - There is a 'to' point * // - There is a 'from' point * // - It does not matter which way around these are noted * // > Dotted lines = Same as Track Lines bit with alternating pixels * // > Flags = Starting / Finish line flags * // > Walls = These are walls that indicate to the player that this area is out of bounds * // - This works the same way as Track Lines except when drawn, the 4 (or however many specified) pixels above * // are also drawn giving the impression of height * // - There is a 'to' point * // - There is a 'from' point * // - It does not matter which way around these are noted * // > Off Track square = These are square areas that are deemed off the track * // - When the game runs, it checks to see if the players car is in these squares * // - There is a 'TL' point * // - There is a 'BR' point * // - It is important that TL is always the top left point when drawing the map * // - It is important that BR is always the bottom left point when drawing the map * // > Off Track Triangle = These are triangular areas that are deemed off the track * // - Very similar to Off Track Squares * // - When the game runs, it checks to see if the players car is in these triangles * // - There is a 'TL' point * // - There is a 'BR' point * // - There is a 'Type' int * // - It is important that TL is always the top left point when drawing the map * // - It is important that BR is always the bottom left point when drawing the map * // - The Type is the direction the triangle is drawn (Where the Hypotenuse is) * // - Types: (1 = Hyp in Top Right, 2 = Hyp in Bottom Right, 3 = Hyp in Bottom Left, 4 = Hyp in Top Left) * // - Exampe: The following triangle is type 2 * // _____ * // | / * // | / * // | / * // |/ * // * // > Out Of Bounds Square = These are square areas that are deemed out of bounds * // - Works exactly the same as Off Track Square * // > Out Of Bounds Triangle = These are triangular areas that are deemed off the track * // - Works exactly the same as Off Track Triangle * // > Gates = Used to check if a full lap has been completed * // - For a player to complete a full lap, their car must pass through these gates as they do their lap * // - If a gate is missed, then a lap is not completed * // - This is used to prevent the player from reversing at the start and moving behind the finish line * // then moving forward and the game thinking that a lap has been completed * // > Boost plates = These are parts of the track that make cars go extra fast * // - There is a 'TL' point * // - There is a 'BR' point * // - There is a 'Type' int * // - It is important that TL is always the top left point when drawing the map * // - It is important that BR is always the bottom left point when drawing the map * // - The type is the direction of the arrow drawn on the boost plates * // - Types: (1 = Pointing up, 2 = Pointing right, 3 = Pointing down, 4 = Pointing left) * // - Example: The following boost plate is type 3 * // ______ * // |\ /| * // | \/ | * // ------ * @endcode */ //MAP - 1 const Map_Data Map_1 = {36,1,18,20,14,20,9,5,12,0}; //Lines const Line_2D Map_1_Track_Lines[36] = { //Inside Line {{-20,0},{-20,80}}, {{-20,80},{-40,100}}, {{-40,100},{-80,100}}, {{-80,100},{-100,80}}, {{-100,80},{-100,40}}, {{-100,40},{-140,0}}, {{-140,0},{-220,0}}, {{-220,0},{-260,40}}, {{-260,40},{-260,80}}, {{-260,80},{-280,100}}, {{-280,100},{-320,100}}, {{-320,100},{-360,60}}, {{-360,60},{-360,-100}}, {{-360,-100},{-300,-160}}, {{-300,-160},{-220,-80}}, {{-220,-80},{-100,-80}}, {{-100,-80},{-20,0}}, //Outside Line {{20,-20},{20,100}}, {{20,100},{-20,140}}, {{-20,140},{-100,140}}, {{-100,140},{-140,100}}, {{-140,100},{-140,60}}, {{-140,60},{-160,40}}, {{-160,40},{-200,40}}, {{-200,40},{-220,60}}, {{-220,60},{-220,100}}, {{-220,100},{-260,140}}, {{-260,140},{-340,140}}, {{-340,140},{-400,80}}, {{-400,80},{-400,-120}}, {{-400,-120},{-320,-200}}, {{-320,-200},{-280,-200}}, {{-280,-200},{-200,-120}}, {{-200,-120},{-80,-120}}, {{-80,-120},{20,-20}}, }; //Dotted Lines const Line_2D Map_1_Track_Dotted_Lines[1] = { {{-20,0},{20,0}}, }; //Flags const Sprite_2D Map_1_Sprites[18] = { {-24,0, Flag}, {24,0, Flag}, {-300,-50, Helicopter}, {-40,162, People_Cheering}, {-50,162, People_Standing_1}, {-70,162, People_Standing_2}, {42,-20, People_Cheering}, {42,-10, People_Standing_1}, {42,0, People_Cheering}, {42,10, People_Standing_2}, {-422,60, People_Cheering}, {-422,50, People_Standing_1}, {-422,40, People_Cheering}, {-422,30, People_Standing_2}, {-422,20, People_Standing_1}, {-200,-58, People_Cheering}, {-180,-58, People_Standing_1}, {-170,-58, People_Standing_2} }; //Walls const Line_2D Map_1_Walls[20] = { //Inside {{-40,80},{-40,0}}, {{-40,0},{-100,-60}}, {{-100,-60},{-240,-60}}, {{-240,-60},{-300,-120}}, {{-300,-120},{-340,-60}}, {{-340,-60},{-340,60}}, {{-340,60},{-280,60}}, {{-280,60},{-280,-20}}, {{-280,-20},{-100,-20}}, {{-100,-20},{-80,0}}, {{-80,0},{-80,80}}, {{-80,80},{-40,80}}, //Outside {{40,160},{40,-220}}, {{40,-220},{-420,-220}}, {{-420,-220},{-420,160}}, {{-420,160},{-200,160}}, {{-200,160},{-200,60}}, {{-200,60},{-160,60}}, {{-160,60},{-160,160}}, {{-160,160},{40,160}}, }; //Off track? objects const Square_2D Map_1_Off_Track_Square[14] = { //Inside {{-100,80},{-20,0}}, {{-80,100},{-40,80}}, {{-260,0},{-100,-80}}, {{-360,60},{-260,-100}}, {{-320,100},{-280,60}}, {{-280,80},{-260,60}}, {{-300,-100},{-260,-120}}, {{-200,60},{-160,40}}, {{-220,140},{-140,60}}, {{-200,-120},{20,-200}}, {{-400,200},{20,140}}, {{-500,200},{-400,-300}}, {{20,200},{100,-300}}, {{-400,-200},{20,-300}} }; //Off track? objects const Triangle_2D Map_1_Off_Track_Triangle[20] = { {{-40,100},{-20,80},1}, {{-100,100},{-80,80},4}, {{-140,40},{-100,0},4}, {{-100,0},{-20,-80},2}, // {{-260,40},{-220,0},1}, {{-260,-80},{-220,-120},2}, {{-200,-120},{-260,-160},2}, {{-280,100},{-260,80},1}, {{-360,100},{-320,60},4}, {{-360,-100},{-300,-160},3}, {{-300,-100},{-240,-160},2}, //Outside {{-20,140},{20,100},3}, {{-80,-20},{20,-120},4}, {{-140,140},{-100,100},2}, {{-160,60},{-140,40},2}, // {{-220,60},{-200,40},3}, {{-280,-120},{-200,-200},4}, {{-260,140},{-240,100},3}, {{-400,140},{-340,80},2}, // {{-400,-120},{-320,-200},1} }; const Square_2D Map_1_Out_Of_Bounds_Square[9] = { //Inside {{-80,80},{-40,0}}, {{-340,60},{-280,-60}}, {{-280,-20},{-100,-60}}, {{-80,0},{-60,-20}}, //Outside {{40,160},{60,-220}}, {{-420,-220},{40,-240}}, {{-440,160},{-420,-220}}, {{-420,180},{40,160}}, {{-200,160},{-160,60}} }; const Triangle_2D Map_1_Out_Of_Bounds_Triangle[5] = { //Inside {{-60,0},{-40,-20},2}, {{-100,0},{-80,-20},4}, {{-100,-20},{-60,-60},2}, {{-300,-60},{-240,-120},2}, {{-340,-60},{-300,-120},3} }; const Square_2D Map_1_Gates[12] = { {{-40,0},{40,-10}}, {{-40,80},{40,70}}, {{-80,160},{-70,80}}, {{-160,70},{-80,60}}, {{-200,60},{-190,-20}}, {{-310,160},{-300,60}}, {{-420,10},{-340,0}}, {{-420,-90},{-300, -100}}, {{-300,-100},{-290,-220}}, {{-200,-60},{-190,-220}}, {{-110,-60},{-100,-220}}, {{-100,-40},{40,-60}} }; const Triangle_2D Map_1_Boost_Plates[0] = { }; //MAP - 2 const Map_Data Map_2 = {64,1,38,36,21,37,12,27,19,3}; //Lines const Line_2D Map_2_Track_Lines[64] = { //Inside Line {{20,280},{20,-80}}, {{20,-80},{-20,-120}}, {{-20,-120},{-80,-120}}, {{-80,-120},{-200,0}}, {{-200,0},{-420,0}}, {{-420,0},{-440,-20}}, {{-440,-20},{-440,-40}}, {{-440,-40},{-420,-60}}, {{-420,-60},{-400,-60}}, {{-400,-60},{-380,-40}}, {{-380,-40},{-300,-40}}, {{-300,-40},{-280,-60}}, {{-280,-60},{-200,-60}}, {{-200,-60},{-100,-160}}, {{-100,-160},{0,-160}}, {{0,-160},{60,-100}}, {{60,-100},{60,300}}, {{60,300},{0,360}}, {{0,360},{-320,360}}, {{-320,360},{-380,300}}, {{-380,300},{-380,180}}, {{-380,180},{-360,160}}, {{-360,160},{-340,160}}, {{-340,160},{-320,180}}, {{-320,180},{-320,280}}, {{-320,280},{-280,320}}, {{-280,320},{-20,320}}, {{-20,320},{20,280}}, //Inside Circle {{-120,260},{-120,180}}, {{-120,180},{-120,160}}, {{-120,160},{-260,160}}, {{-260,160},{-280,180}}, {{-280,180},{-280,260}}, {{-280,260},{-260,280}}, {{-260,280},{-140,280}}, {{-140,280},{-120,260}}, //Outside Line {{100,320},{100,-120}}, {{100,-120},{20,-200}}, {{20,-200},{-120,-200}}, {{-120,-200},{-220,-100}}, {{-220,-100},{-280,-100}}, {{-280,-100},{-300,-120}}, {{-300,-120},{-380,-120}}, {{-380,-120},{-400,-100}}, {{-400,-100},{-440,-100}}, {{-440,-100},{-480,-60}}, {{-480,-60},{-480,0}}, {{-480,0},{-440,40}}, {{-440,40},{-180,40}}, {{-180,40},{-60,-80}}, {{-60,-80},{-40,-80}}, {{-40,-80},{-20,-60}}, {{-20,-60},{-20,260}}, {{-20,260},{-40,280}}, {{-40,280},{-60,280}}, {{-60,280},{-80,260}}, {{-80,260},{-80,160}}, {{-80,160},{-120,120}}, {{-120,120},{-380,120}}, {{-380,120},{-420,160}}, {{-420,160},{-420,320}}, {{-420,320},{-340,400}}, {{-340,400},{20,400}}, {{20,400},{100,320}} }; //Dotted Lines const Line_2D Map_2_Track_Dotted_Lines[1] = { {{-20,0},{20,0}}, }; //Flags const Sprite_2D Map_2_Sprites[38] = { {-20,0, Flag}, {24,0, Flag}, {-80,40, Helicopter}, {-42,-10, People_Cheering}, {-42,0, People_Standing_1}, {-42,10, People_Standing_2}, {-42,20, People_Cheering}, {-52,20, People_Standing_1}, {-52,10, People_Cheering}, {-160,258, People_Cheering}, {-150,258, People_Cheering}, {-142,250, People_Standing_2}, {-142,240, People_Standing_2}, {-150,250, People_Standing_1}, {-150,240, People_Cheering}, {-460,360, Helicopter}, {-280,98, People_Cheering}, {-290,98, People_Cheering}, {-300,98, People_Standing_2}, {-310,98, People_Standing_2}, {-320,98, People_Standing_1}, {-330,98, People_Cheering}, {48,280, People_Standing_1}, {48,270, People_Cheering}, {48,260, People_Standing_2}, {48,-70, People_Standing_2}, {48,-80, People_Standing_2}, {48,-90, People_Cheering}, {-210,-28, People_Standing_1}, {-220,-28, People_Standing_1}, {-240,-28, People_Cheering}, {-250,-28, People_Standing_2}, {-380,-28, People_Standing_1}, {-390,-28, People_Cheering}, {-200,62, People_Cheering}, {-210,62, People_Standing_1}, {-220,62, People_Cheering}, {-230,62, People_Standing_2}, }; //Walls const Line_2D Map_2_Walls[36] = { //Outside {{-500,60},{-500,-300}}, {{-500,-300},{200,-300}}, {{200,-300},{200,500}}, {{200,500},{-500,500}}, {{-500,500},{-500,100}}, {{-500,100},{-60,100}}, {{-60,100},{-60,260}}, {{-60,260},{-40,260}}, {{-40,260},{-40,-60}}, {{-40,-60},{-60,-60}}, {{-60,-60},{-180,60}}, {{-180,60},{-500,60}}, //Inside Circle {{-260,260},{-140,260}}, {{-140,260},{-140,180}}, {{-140,180},{-260,180}}, {{-260,180},{-260,260}}, //Inside {{-360,180},{-360,300}}, {{-360,300},{-310,350}}, {{-310,350},{-10,350}}, {{-10,350},{50,290}}, {{50,290},{50,-90}}, {{50,-90},{-10,-150}}, {{-10,-150},{-90,-150}}, {{-90,-150},{-210,-30}}, {{-210,-30},{-400,-30}}, {{-400,-30},{-400,-10}}, {{-400,-10},{-210,-10}}, {{-210,-10},{-90,-130}}, {{-90,-130},{-10,-130}}, {{-10,-130},{30,-90}}, {{30,-90},{30,290}}, {{30,290},{-10,330}}, {{-10,330},{-290,330}}, {{-290,330},{-340,280}}, {{-340,280},{-340,180}}, {{-340,180},{-360,180}} }; //Off track? objects const Square_2D Map_2_Off_Track_Square[21] = { //Inside {{-380,300},{-320,180}}, {{-360,180},{-340,160}}, {{-320,360},{0,320}}, {{20,300},{60,-100}}, {{-420,0},{-200,-40}}, {{-440,-20},{-420,-40}}, {{-420,-40},{-400,-60}}, {{-280,-40},{-200,-60}}, {{-100,-120},{0,-160}}, //Inside Circle {{-280,260},{-120,180}}, {{-260,280},{-140,260}}, {{-260,180},{-140,160}}, //Outside {{-500,120},{-80,40}}, {{-80,260},{-20,-60}}, {{-60,280},{-40,260}}, {{-60,-60},{-40,-80}}, {{-500,40},{-480,-100}}, {{-500,-100},{-400,-200}}, {{-400,-120},{-280,-200}}, {{-280,-100},{-220,-200}}, {{-500,400},{-420,120}} }; //Off track? objects const Triangle_2D Map_2_Off_Track_Triangle[37] = { //Inside {{-380,180},{-360,160},3}, {{-340,180},{-320,160},2}, {{-380,360},{-320,300},4}, {{-320,320},{-280,280},2}, {{0,360},{60,300},1}, {{-20,320},{0,300},3}, {{0,300},{20,280},3}, {{-440,0},{-420,-20},4}, {{-440,-40},{-420,-60},3}, {{-400,-40},{-380,-60},2}, {{-300,-40},{-280,-60},3}, {{-200,0},{-140,-60},1}, {{-200,-60},{-140,-120},3}, {{-140,-60},{-80,-120},1}, {{-140,-120},{-100,-160},3}, {{-20,-100},{0,-120},4}, {{0,-80},{20,-100},4}, {{0,-100},{60,-160},2}, //Inside Circle {{-280,280},{-260,260},4}, {{-140,280},{-120,260},1}, {{-140,180},{-120,160},2}, {{-280,180},{-260,160},3}, //Outside {{-420,400},{-340,320},2}, {{-420,160},{-380,120},1}, {{-120,160},{-80,120},4}, {{-80,280},{-60,260},4}, {{-40,280},{-20,260},1}, {{20,400},{100,320},3}, {{-480,40},{-440,0},2}, {{-480,-60},{-440,-100},1}, {{-400,-100},{-380,-120},1}, {{-300,-100},{-280,-120},4}, {{-220,-100},{-120,-200},1}, {{-180,40},{-80,-60},3}, {{-80,-60},{-60,-80},3}, {{-40,-60},{-20,-80},2}, {{20,-120},{100,-200},4}, }; const Square_2D Map_2_Out_Of_Bounds_Square[12] = { //Outside {{-500,100},{-60,60}}, {{-60,260},{-40,-60}}, {{-600,500},{-500,-400}}, {{-500,-300},{200,-400}}, {{200,600},{300,-400}}, {{-500,600},{200,500}}, //Inside Circle {{-260,260},{-140,180}}, //Inside {{-360,300},{-340,180}}, {{-310,350},{-10,330}}, {{-400,-10},{-210,-30}}, {{-90,-130},{-10,-150}}, {{30,290},{50,-90}} }; const Triangle_2D Map_2_Out_Of_Bounds_Triangle[27] = { //Outside {{-180,60},{-60,-60},3}, //Inside {{-360,340},{-320,300},4}, {{-340,300},{-320,280},2}, {{-320,340},{-280,300},2}, {{-320,350},{-310,340},4}, {{-10,350},{10,330},1}, {{-10,330},{10,310},3}, {{10,330},{30,310},1}, {{10,310},{30,290},3}, {{30,310},{50,290},1}, {{-10,-130},{10,-150},2}, {{-10,-110},{10,-130},4}, {{10,-110},{30,-130},2}, {{10,-90},{30,-110},4}, {{30,-90},{50,-110},2}, {{-210,-10},{-190,-30},1}, {{-210,-30},{-190,-50},3}, {{-190,-30},{-170,-50},1}, {{-190,-50},{-170,-70},3}, {{-170,-50},{-150,-70},1}, {{-170,-70},{-150,-90},3}, {{-150,-70},{-130,-90},1}, {{-150,-90},{-130,-110},3}, {{-130,-90},{-110,-110},1}, {{-130,-110},{-110,-130},3}, {{-110,-110},{-90,-130},1}, {{-110,-130},{-90,-150},3} }; const Square_2D Map_2_Gates[19] = { {{-40,0},{30,-10}}, {{-40,110},{30,100}}, {{-40,210},{30,200}}, {{-60,330},{-50,260}}, {{-210,330},{-200,100}}, {{-350,180},{-340,100}}, {{-600,210},{-360,200}}, {{-600,310},{-350,300}}, {{-300,500},{-290,350}}, {{-100,500},{-90,350}}, {{40,300},{200,290}}, {{50,110},{200,100}}, {{50,0},{200,-10}}, {{-20,-150},{-10,-300}}, {{-280,-30},{-270,-300}}, {{-600,-20},{-400,-30}}, {{-310,60},{-300,-10}}, {{-140,20},{-130,-90}}, {{-50,-60},{-40,-130}} }; const Triangle_2D Map_2_Boost_Plates[3] = { {{60,280},{80,260},3}, {{-420,40},{-400,20},2}, {{-280,400},{-260,380},2} }; //MAP - 3 const Map_Data Map_3 = {102,1,52,44,35,50,18,12,17,5}; //Lines const Line_2D Map_3_Track_Lines[106] = { //Inside {{20,40},{40,60}}, {{40,60},{160,60}}, {{160,60},{200,100}}, {{200,100},{200,140}}, {{200,140},{220,160}}, {{220,160},{280,160}}, {{280,160},{300,140}}, {{300,140},{300,60}}, {{300,60},{320,40}}, {{320,40},{380,40}}, {{380,40},{400,60}}, {{400,60},{400,260}}, {{400,260},{360,300}}, {{360,300},{120,300}}, {{120,300},{100,320}}, {{100,320},{100,380}}, {{100,380},{120,400}}, {{120,400},{400,400}}, {{400,400},{500,300}}, {{500,300},{700,300}}, {{700,300},{740,340}}, {{740,340},{740,420}}, {{740,420},{760,440}}, {{760,440},{780,440}}, {{780,440},{800,420}}, {{800,420},{800,380}}, {{800,380},{840,340}}, {{840,340},{900,340}}, {{900,340},{940,380}}, {{940,380},{940,420}}, {{940,420},{960,440}}, {{960,440},{980,440}}, {{980,440},{1000,420}}, {{1000,420},{1000,320}}, {{1000,320},{980,300}}, {{980,300},{780,300}}, {{780,300},{740,260}}, {{740,260},{740,200}}, {{740,200},{780,160}}, {{780,160},{1140,160}}, {{1140,160},{1160,140}}, {{1160,140},{1160,-40}}, {{1160,-40},{1140,-60}}, {{1140,-60},{960,-60}}, {{960,-60},{940,-40}}, {{940,-40},{940,60}}, {{940,60},{900,100}}, {{900,100},{680,100}}, {{680,100},{520,-60}}, {{520,-60},{40,-60}}, {{40,-60},{20,-40}}, {{20,-40},{20,40}}, //Outside {{-20,60},{20,100}}, {{20,100},{140,100}}, {{140,100},{160,120}}, {{160,120},{160,160}}, {{160,160},{200,200}}, {{200,200},{300,200}}, {{300,200},{340,160}}, {{340,160},{340,100}}, {{340,100},{360,100}}, {{360,100},{360,240}}, {{360,240},{340,260}}, {{340,260},{100,260}}, {{100,260},{60,300}}, {{60,300},{60,400}}, {{60,400},{100,440}}, {{100,440},{420,440}}, {{420,440},{520,340}}, {{520,340},{680,340}}, {{680,340},{700,360}}, {{700,360},{700,440}}, {{700,440},{740,480}}, {{740,480},{800,480}}, {{800,480},{840,440}}, {{840,440},{840,400}}, {{840,400},{860,380}}, {{860,380},{880,380}}, {{880,380},{900,400}}, {{900,400},{900,440}}, {{900,440},{940,480}}, {{940,480},{1000,480}}, {{1000,480},{1040,440}}, {{1040,440},{1040,300}}, {{1040,300},{1000,260}}, {{1000,260},{800,260}}, {{800,260},{780,240}}, {{780,240},{780,220}}, {{780,220},{800,200}}, {{800,200},{1160,200}}, {{1160,200},{1200,160}}, {{1200,160},{1200,-60}}, {{1200,-60},{1160,-100}}, {{1160,-100},{940,-100}}, {{940,-100},{900,-60}}, {{900,-60},{900,40}}, {{900,40},{880,60}}, {{880,60},{700,60}}, {{700,60},{540,-100}}, {{540,-100},{20,-100}}, {{20,-100},{-20,-60}}, {{-20,-60},{-20,60}}, {{-100,600},{0,-200}}, {{0,600},{1200,500}}, {{1200,600},{1300,-200}}, {{0,-100},{1200,-200}} }; //Dotted Lines const Line_2D Map_3_Track_Dotted_Lines[1] = { {{-20,0},{20,0}} }; //Flags const Sprite_2D Map_3_Sprites[52] = { {-20,0, Flag}, {20,0, Flag}, {200,350, Helicopter}, {1000,0, Helicopter}, {600,100, Helicopter}, {1100,400, Helicopter}, {52,-20,People_Cheering}, {52,-10,People_Standing_1}, {52,0,People_Standing_2}, {52,10,People_Cheering}, {52,20,People_Standing_1}, {60,0,People_Standing_2}, {320,8,People_Cheering}, {330,8,People_Standing_2}, {340,8,People_Standing_1}, {350,8,People_Standing_2}, {200,238,People_Cheering}, {210,238,People_Standing_1}, {220,238,People_Standing_2}, {400,350,People_Cheering}, {410,340,People_Standing_1}, {420,330,People_Standing_2}, {430,320,People_Cheering}, {440,310,People_Standing_1}, {450,300,People_Standing_2}, {762,340,People_Cheering}, {762,350,People_Standing_1}, {762,360,People_Standing_2}, {950,312,People_Cheering}, {960,312,People_Standing_1}, {978,330,People_Standing_2}, {978,340,People_Standing_2}, {802,222,People_Cheering}, {802,238,People_Standing_2}, {1138,110,People_Cheering}, {1138,100,People_Standing_1}, {1138,70,People_Standing_2}, {1138,60,People_Cheering}, {1138,50,People_Standing_1}, {1138,30,People_Standing_2}, {780,122,People_Cheering}, {800,122,People_Standing_1}, {810,122,People_Standing_2}, {500,-28,People_Cheering}, {520,-8,People_Standing_1}, {530,2,People_Standing_2}, {560,32,People_Cheering}, {570,42,People_Standing_1}, {580,52,People_Standing_2}, {600,72,People_Cheering}, {620,92,People_Standing_1}, {630,102,People_Standing_2}, }; //Walls const Line_2D Map_3_Walls[44] = { //Inside {{50,30},{230,30}}, {{230,30},{230,130}}, {{230,130},{270,130}}, {{270,130},{270,10}}, {{270,10},{430,10}}, {{430,10},{430,270}}, {{430,270},{370,330}}, {{370,330},{130,330}}, {{130,330},{130,370}}, {{130,370},{390,370}}, {{390,370},{490,270}}, {{490,270},{700,270}}, {{700,270},{760,330}}, {{760,330},{760,420}}, {{760,420},{780,420}}, {{780,420},{780,330}}, {{780,330},{960,330}}, {{960,330},{960,420}}, {{960,420},{980,420}}, {{980,420},{980,330}}, {{980,330},{960,310}}, {{960,310},{760,310}}, {{760,310},{710,260}}, {{710,260},{710,140}}, {{710,140},{1140,140}}, {{1140,140},{1140,-40}}, {{1140,-40},{960,-40}}, {{960,-40},{960,120}}, {{960,120},{660,120}}, {{660,120},{510,-30}}, {{510,-30},{50,-30}}, {{50,-30},{50,30}}, //Outside {{-100,220},{340,220}}, {{340,220},{340,240}}, {{340,240},{-100,240}}, {{-100,240},{-100,600}}, {{-100,600},{1300,600}}, {{1300,600},{1300,240}}, {{1300,240},{800,240}}, {{800,240},{800,220}}, {{800,220},{1300,220}}, {{1300,220},{1300,-200}}, {{1300,-200},{-100,-200}}, {{-100,-200},{-100,220}} }; //Off track? objects const Square_2D Map_3_Off_Track_Square[35] = { //Inside {{20,40},{40,-40}}, {{40,60},{200,40}}, {{40,40},{520,-60}}, {{100,380},{120,320}}, {{120,400},{400,300}}, {{200,140},{300,40}}, {{220,160},{280,140}}, {{400,300},{740,100}}, {{400,100},{500,40}}, {{740,420},{800,340}}, {{740,340},{980,300}}, {{740,160},{940,100}}, {{940,420},{1000,340}}, {{940,160},{1140,-40}}, {{960,440},{980,420}}, {{960,-40},{1140,-60}}, {{980,340},{1000,320}}, {{1140,140},{1160,-40}}, {{760,440},{780,420}}, //Outside {{-20,500},{60,100}}, {{60,500},{700,440}}, {{60,260},{340,200}}, {{60,200},{160,120}}, {{60,120},{140,100}}, {{340,240},{360,100}}, {{700,500},{1200,480}}, {{520,440},{680,340}}, {{680,440},{700,360}}, {{700,60},{880,40}}, {{700,40},{900,-100}}, {{800,260},{1200,200}}, {{780,240},{800,220}}, {{1040,480},{1060,260}}, {{840,480},{900,400}}, {{860,400},{880,380}} }; //Off track? objects const Triangle_2D Map_3_Off_Track_Triangle[50] = { //Inside {{20,60},{40,40},4}, {{20,-40},{40,-60},3}, {{100,400},{120,380},4}, {{100,320},{120,300},3}, {{160,100},{200,60},4}, {{200,160},{220,140},4}, {{280,160},{300,140},1}, {{360,300},{400,260},3}, {{400,400},{500,300},1}, {{520,100},{680,-60},2}, {{700,340},{740,300},4}, {{300,60},{320,40},1}, {{380,60},{400,40},4}, {{740,440},{760,420},4}, {{740,300},{780,260},2}, {{740,200},{780,160},1}, {{780,440},{800,420},1}, {{800,380},{840,340},1}, {{900,380},{940,340},4}, {{900,100},{940,60},3}, {{940,440},{960,420},4}, {{940,-40},{960,-60},3}, {{980,440},{1000,420},1}, {{980,320},{1000,300},2}, {{1140,160},{1160,140},1}, {{1140,-40},{1160,-60},2}, //Outside {{-20,100},{20,60},2}, {{-20,-60},{20,-100},1}, {{60,440},{100,400},2}, {{60,300},{100,260},1}, {{140,120},{160,100},2}, {{160,200},{200,160},2}, {{300,200},{340,160},3}, {{340,260},{360,240},1}, {{420,440},{520,340},3}, {{540,60},{700,-100},4}, {{680,360},{700,340},2}, {{700,480},{740,440},2}, {{780,260},{800,240},4}, {{780,220},{800,200},3}, {{800,480},{840,440},3}, {{840,400},{860,380},3}, {{880,400},{900,380},2}, {{880,60},{900,40},1}, {{900,480},{940,440},2}, {{900,-60},{940,-100},1}, {{1000,480},{1040,440},3}, {{1000,300},{1040,260},4}, {{1160,200},{1200,160},3}, {{1160,-60},{1200,-100},4} }; const Square_2D Map_3_Out_Of_Bounds_Square[18] = { //Inside {{50,30},{270,-30}}, {{230,130},{270,30}}, {{130,370},{390,330}}, {{270,10},{430,-30}}, {{430,120},{510,-30}}, {{430,310},{450,270}}, {{430,270},{710,120}}, {{710,140},{960,120}}, {{760,420},{780,310}}, {{780,30},{960,310}}, {{960,420},{980,330}}, {{960,140},{1140,-40}}, //Outside {{-100,240},{340,220}}, {{800,240},{1300,220}}, {{-200,700},{-100,-300}}, {{-100,700},{1300,600}}, {{1300,700},{1400,-300}}, {{-100,-200},{1300,-300}} }; const Triangle_2D Map_3_Out_Of_Bounds_Triangle[12] = { {{370,330},{390,310},3}, {{390,370},{450,310},1}, {{390,310},{430,270},3}, {{450,310},{490,270},1}, {{510,120},{660,-30},2}, {{700,290},{720,270},4}, {{710,270},{720,260},2}, {{720,290},{740,270},2}, {{720,310},{740,290},4}, {{740,310},{760,290},2}, {{740,330},{760,310},4}, {{960,330},{980,310},2} }; const Square_2D Map_3_Gates[17] = { {{-100,10},{50,0}}, {{100,220},{110,30}}, {{340,230},{430,220}}, {{130,330},{140,240}}, {{130,600},{140,370}}, {{500,600},{510,270}}, {{760,600},{770,420}}, {{960,600},{970,420}}, {{950,310},{960,240}}, {{710,230},{800,220}}, {{990,220},{1000,140}}, {{1140,100},{1300,90}}, {{1000,-40},{1010,-200}}, {{700,120},{710,-200}}, {{500,-30},{510,-200}}, {{300,-30},{310,-200}}, {{50,-30},{60,-200}} }; const Triangle_2D Map_3_Boost_Plates[5] = { {{200,440},{220,420},2}, {{520,340},{540,320},2}, {{880,200},{900,180},2}, {{460,-60},{480,-80},4}, {{200,-60},{220,-80},4} };