Subversion Repositories programming

Rev

Rev 344 | Rev 347 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 344 Rev 346
Line 208... Line 208...
208
            return i;
208
            return i;
209
 
209
 
210
    return -1;
210
    return -1;
211
}
211
}
212
 
212
 
213
void Controller::stop_at_floor (Elevator *e, int floor)
213
void Controller::stop_at_floor (Elevator *e, int floor, int direction)
214
{
214
{
215
    int elevator_num = which_elevator_is (e);
215
    int elevator_num = which_elevator_is (e);
216
 
216
 
217
    assert (elevator_num != -1);
217
    assert (elevator_num != -1);
218
 
218
 
219
    pause_all_elevators ();
219
    pause_all_elevators ();
220
 
220
 
221
    // Open the elevator door
221
    // Open the elevator door
222
    gui->open_elevator_at (num_floors-(floor+1), elevator_num);
222
    gui->open_elevator_at (num_floors-(floor+1), elevator_num);
223
 
223
 
224
    // Untoggle all buttons on that floor
224
    // FIXME -- always unsets up button
225
    if (floor >= 0 && floor <= 8)
225
    if (floor >= 0 && floor <= 8)
226
        gui->unset_up_button (floor);
226
        gui->unset_up_button (floor);
227
 
227
 
-
 
228
    // FIXME -- always unsets down button
228
    if (floor >= 1 && floor <= 9)
229
    if (floor >= 1 && floor <= 9)
229
        gui->unset_down_button (floor-1);
230
        gui->unset_down_button (floor-1);
230
 
231
 
231
    // Get the floors from the user
232
    // Get the floors from the user
232
    gui->get_floors_from_user (elevator_num);
233
    gui->get_floors_from_user (elevator_num);
Line 270... Line 271...
270
    gui_events.pop ();
271
    gui_events.pop ();
271
 
272
 
272
    switch (temp.type)
273
    switch (temp.type)
273
    {
274
    {
274
        case DISPATCH_DATA_STOP_AT_FLOOR:
275
        case DISPATCH_DATA_STOP_AT_FLOOR:
275
            stop_at_floor (temp.elev, temp.iarg);
276
            stop_at_floor (temp.elev, temp.iarg, temp.direc);
276
            break;
277
            break;
277
 
278
 
278
        case DISPATCH_DATA_UPDATE_LABEL:
279
        case DISPATCH_DATA_UPDATE_LABEL:
279
            update_elevator_position (temp.elev, temp.farg);
280
            update_elevator_position (temp.elev, temp.farg);
280
            break;
281
            break;