07-car/car.c
2024-11-20 17:26:16 +01:00

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;
}