1
0
mirror of https://gitlab.com/klmp200/LO41.git synced 2025-07-12 04:39:23 +00:00

Quick and dirty, surtout dirty…

This commit is contained in:
2018-06-22 07:46:29 +02:00
parent d787d870f8
commit 4c29987de1
3 changed files with 8 additions and 1 deletions

View File

@ -20,13 +20,14 @@ void * runnable_ElevatorBreaker(void * void_this){
AGENT_OPTIONS
while (data->is_active_passengers_left(data)){
while (this->breaks < MAX_BREAKS && data->is_active_passengers_left(data)){
usleep(900000);
// One chance out of two to break something
if ((rand() % 101) > 50) {
selected_elevator = data->get_main_building(data)->elevators[rand() % ELEVATOR_NB];
selected_elevator->damage(selected_elevator);
printf("ALERTE : L'ascenseur %s est endommagé\n", selected_elevator->name);
this->breaks++;
}
}
@ -37,6 +38,7 @@ void * runnable_ElevatorBreaker(void * void_this){
ElevatorBreaker *_init_ElevatorBreaker(){
ElevatorBreaker *new_elevator_breaker = malloc_or_die(sizeof(ElevatorBreaker));
new_elevator_breaker->thread_number = -1;
new_elevator_breaker->breaks = 0;
LINK_ALL(ElevatorBreaker, new_elevator_breaker,
set_thread_number,

View File

@ -5,10 +5,13 @@
#ifndef LO41_ELEVATORBREAKER_H
#define LO41_ELEVATORBREAKER_H
#define MAX_BREAKS 30
#include "../Objects.h"
typedef struct o_ElevatorBreaker {
PRIVATE int thread_number;
PRIVATE int breaks;
PUBLIC void * (*runnable)(void * void_this);
PUBLIC void (*set_thread_number)(_THIS(ElevatorBreaker), int data);