// // Created by Antoine Bartuccio on 06/06/2018. // #include #include #include "Resident.h" #include "../SharedData/SharedData.h" GETTER(Resident, char *, name); GETTER(Resident, int, id); GETTER(Resident, int, apartment_floor); void * runnable_Resident(void * void_this){ Resident * this = (Resident*) void_this; SharedData* data = GET_INSTANCE(SharedData); Passenger passenger; AGENT_OPTIONS; passenger.resident = this; passenger.type = RESIDENT; printf("Je suis le resident %s et je suis a l'etage %d en direction de l'etage %d\n", this->name, this->apartment_floor, this->destination); data->main_building->go_to_floor(data->main_building, this->position, this->destination, passenger); return NULL; } void _free__Resident(THIS(Resident)){ if (this->name != NULL) free(this->name); free(this); } Resident *_init_Resident(int id, char* name, int apartment_floor, int destination){ /* If the destination is the same as the apartment_floor or negative, the RESIDENT will not move */ Resident * new_resident = malloc_or_die(sizeof(Resident)); new_resident->name = strdup(name); new_resident->id = id; new_resident->apartment_floor = apartment_floor; new_resident->position = new_resident->apartment_floor; new_resident->destination = destination; LINK_ALL(Resident, new_resident, get_name, get_id, runnable, get_apartment_floor ) return new_resident; }