Ticket #8291: fotaq_timing.diff

File fotaq_timing.diff, 3.4 KB (added by eriktorbjorn, 18 years ago)

Patch against an October 20 CVS snapshot

  • scummvm/queen/cutaway.cpp

    diff --exclude=CVS -ur ScummVM/scummvm/queen/cutaway.cpp ScummVM+hack/scummvm/queen/cutaway.cpp
    old new  
    307307
    308308                                _graphics->update(true);
    309309                               
    310                                 int i = 4, k = 160;
     310                                int k = 160;
    311311
    312312                                // Adjust thug1 gun so it matches rest of body
    313313                                bob_thugA1->x += (k / 2) * 2 - 45;
     
    321321                                bob_thugB1->x += (k / 2) * 4 + k;
    322322                                bob_thugB2->x += (k / 2) * 4 + k;
    323323
    324                                 if (i == 3) {
    325                                         bob_thugB1->x += 10;
    326                                         bob_thugB2->x += 10;
    327                                 }
    328 
    329                                 i *= 2;
     324                                int start = display->horizontalScroll();
     325                                int horizontalScroll = start;
     326                                int distance = 160 - start;
    330327
    331                                 int horizontalScroll = 0;
     328                                uint32 start_time = g_queen->_system->get_msecs();
     329                                uint32 tot_time = 2000;
    332330
    333331                                while (horizontalScroll < k) {
     332                                        uint32 cur_time = g_queen->_system->get_msecs();
     333
     334                                        horizontalScroll = (distance * (cur_time - start_time)) / tot_time;
    334335
    335                                         horizontalScroll = horizontalScroll + i;
    336336                                        if (horizontalScroll > k)
    337337                                                horizontalScroll = k;
    338338
    339                                         debug(0, "horizontalScroll = %i", horizontalScroll);
     339                                        // debug(0, "horizontalScroll = %i", horizontalScroll);
    340340
    341                                         display->horizontalScroll(horizontalScroll);
     341                                        int i = horizontalScroll - display->horizontalScroll();
    342342
    343                                         bob_thugA1->x -= i * 2;
    344                                         bob_thugA2->x -= i * 2;
    345                                         bob_thugA3->x -= i * 2;
    346 
    347                                         bob_hugh1->x -= i * 3;
    348                                         bob_hugh2->x -= i * 3;
    349                                         bob_hugh3->x -= i * 3;
     343                                        if (i > 0) {
     344                                                display->horizontalScroll(horizontalScroll);
    350345
    351                                         bob_thugB1->x -= i * 4;
    352                                         bob_thugB2->x -= i * 4;
     346                                                bob_thugA1->x -= i * 2;
     347                                                bob_thugA2->x -= i * 2;
     348                                                bob_thugA3->x -= i * 2;
    353349
    354                                         _graphics->update(true);
     350                                                bob_hugh1->x -= i * 3;
     351                                                bob_hugh2->x -= i * 3;
     352                                                bob_hugh3->x -= i * 3;
     353
     354                                                bob_thugB1->x -= i * 4;
     355                                                bob_thugB2->x -= i * 4;
     356
     357                                                _graphics->update(true);
     358                                        }
     359
     360                                        g_queen->delay(10);
    355361
    356362                                        if (_quit)
    357363                                                return;
     
    387393                                bob_beam ->x += 30;
    388394                                bob_crate->x += 180 * 3;
    389395
    390                                 int horizontalScroll = display->horizontalScroll();
     396                                int start = display->horizontalScroll();
     397                                int horizontalScroll = start;
     398                                int distance = 290 - start;
     399
     400                                uint32 start_time = g_queen->_system->get_msecs();
     401                                uint32 tot_time = 7250;
    391402
    392                                 int i = 1;
    393403                                while (horizontalScroll < 290) {
     404                                        uint32 cur_time = g_queen->_system->get_msecs();
     405
     406                                        horizontalScroll = (distance * (cur_time - start_time)) / tot_time;
    394407
    395                                         horizontalScroll = horizontalScroll + i;
    396408                                        if (horizontalScroll > 290)
    397409                                                horizontalScroll = 290;
    398410
    399                                         //debug(0, "horizontalScroll = %i", horizontalScroll);
     411                                        // debug(0, "horizontalScroll = %i", horizontalScroll);
    400412
    401                                         display->horizontalScroll(horizontalScroll);
     413                                        int i = horizontalScroll - display->horizontalScroll();
    402414
    403                                         bob_box  ->x -= i * 2;
    404                                         bob_beam ->x -= i;
    405                                         bob_crate->x -= i * 3;
    406                                         bob_clock->x -= i * 2;
    407                                         bob_hands->x -= i * 2;
     415                                        if (i > 0) {
     416                                                display->horizontalScroll(horizontalScroll);
    408417
    409                                         _graphics->update(true);
     418                                                bob_box  ->x -= i * 2;
     419                                                bob_beam ->x -= i;
     420                                                bob_crate->x -= i * 3;
     421                                                bob_clock->x -= i * 2;
     422                                                bob_hands->x -= i * 2;
     423
     424                                                _graphics->update(true);
     425                                        }
     426
     427                                        g_queen->delay(10);
    410428
    411429                                        if (_quit)
    412430                                                return;