70 lines
No EOL
1.6 KiB
C
70 lines
No EOL
1.6 KiB
C
/*----------------------------------------------------------
|
|
* HTBLA-Leonding
|
|
* ---------------------------------------------------------
|
|
* Author: Marc Tismonar
|
|
* ----------------------------------------------------------
|
|
* Description:
|
|
* Implementation of car.h.
|
|
* ----------------------------------------------------------
|
|
*/
|
|
#include "car.h"
|
|
|
|
struct CarData {
|
|
CarType type;
|
|
Color color;
|
|
double fill_level;
|
|
double acceleration_rate;
|
|
int speed;
|
|
};
|
|
|
|
Car get_car(CarType carType) {
|
|
static struct CarData car_park[] = {
|
|
{AIXAM, RED, 16.0, 0.0, -1},
|
|
{FIAT_MULTIPLA, GREEN, 65.0, 0.0, -1},
|
|
{FIAT_MULTIPLA, BLUE, 65.0, 0.0, -1},
|
|
{FIAT_MULTIPLA, ORANGE, 65.0, 0.0, -1},
|
|
{JEEP, SILVER, 80.0, 0.0, -1},
|
|
{JEEP, BLACK, 80.0, 0.0, -1}
|
|
};
|
|
int length = sizeof(car_park) / sizeof(car_park[0]);
|
|
for (int i = 0; i < length; i++) {
|
|
if (car_park[i].type == carType && car_park[i].speed == -1) {
|
|
Car carToReturn = &car_park[i];
|
|
car_park[i].speed = 0;
|
|
return carToReturn;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
CarType get_type(Car car) {
|
|
return car->type;
|
|
}
|
|
|
|
Color get_color(Car car) {
|
|
return car->color;
|
|
}
|
|
|
|
double get_fill_level(Car car) {
|
|
return car->fill_level;
|
|
}
|
|
|
|
double get_acceleration_rate(Car car) {
|
|
return car->acceleration_rate;
|
|
}
|
|
|
|
int get_speed(Car car) {
|
|
return car->speed;
|
|
}
|
|
|
|
void set_acceleration_rate(Car car, double acceleration_rate) {
|
|
car->acceleration_rate = acceleration_rate;
|
|
}
|
|
|
|
void accelerate(Car car) {
|
|
car->speed += 4;
|
|
}
|
|
|
|
void init() {
|
|
return;
|
|
} |