Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void robot_unload_packages(Truck* truck, Robot* robot){
- // TODO: 3.3
- if(robot -> size == 0)
- return;
- if(truck -> size == truck -> capacity)
- return;
- if(truck -> capacity == 0)
- return;
- char destination [100];
- strcpy(destination,truck -> destination);
- Manifest *p = robot -> manifest;
- while(truck -> size < truck -> capacity && p != NULL) {
- if(strcmp(destination, p -> package -> destination ) == 0) {
- Manifest *newnode = create_manifest_node();
- newnode -> package = p -> package;
- //acum scot pachetul din robot
- if(p == robot -> manifest) {
- robot -> manifest = robot -> manifest -> next;
- robot -> manifest -> prev = NULL ;
- }
- else if(p -> next == NULL) {
- p -> prev -> next = NULL;
- }
- else {
- p -> prev -> next = p -> next;
- p -> next -> prev = p -> prev;
- }
- robot -> size --;
- if(truck -> manifest == NULL ) {
- newnode -> prev = NULL;
- newnode -> next = NULL;
- truck -> manifest = newnode;
- }
- Manifest *p1 = truck -> manifest;
- while(p1 -> next != NULL)
- p1 = p1 -> next;
- newnode -> prev = p1;
- newnode -> next = NULL;
- p1 -> next = newnode;
- p1 -> prev = p1;
- truck -> size ++;
- Manifest *aux = p;
- p = p -> next;
- destroy_manifest_node(aux);
- }
- else
- p = p -> next;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement