~ubuntu-branches/debian/jessie/scummvm/jessie

« back to all changes in this revision

Viewing changes to engines/tucker/resource.cpp

  • Committer: Package Import Robot
  • Author(s): Dmitry Smirnov
  • Date: 2014-08-10 00:50:36 UTC
  • mfrom: (1.2.22)
  • Revision ID: package-import@ubuntu.com-20140810005036-wls6i0dsxqfxu70g
Tags: 1.7.0+dfsg-1
* New upstream release [July 2014].
  - remove old/obsolete patches.
  + added new "drop1test.patch" to disable problematic test.
  + build with "--disable-eventrecorder" to avoid FTBFS in tests.
  + added "libjpeg-dev" and "libfaad-dev" to Build-Depends.
* Install all arch-independent files (themes, game data, etc.).
* Build-time re-compression of "classic" theme.
* Added "debian/gbp.conf".
* Standards-Version to 3.9.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 * modify it under the terms of the GNU General Public License
9
9
 * as published by the Free Software Foundation; either version 2
10
10
 * of the License, or (at your option) any later version.
11
 
 
 
11
 *
12
12
 * This program is distributed in the hope that it will be useful,
13
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
15
 * GNU General Public License for more details.
16
 
 
 
16
 *
17
17
 * You should have received a copy of the GNU General Public License
18
18
 * along with this program; if not, write to the Free Software
19
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
30
30
#include "audio/decoders/wave.h"
31
31
 
32
32
#include "graphics/surface.h"
33
 
#include "graphics/decoders/pcx.h"
 
33
 
 
34
#include "image/pcx.h"
34
35
 
35
36
#include "tucker/tucker.h"
36
37
#include "tucker/graphics.h"
126
127
        }
127
128
 
128
129
        bool findNextToken(DataToken t) {
129
 
                const char *token = 0;
 
130
                const char *token = nullptr;
130
131
                switch (t) {
131
132
                case kDataTokenDw:
132
133
                        token = "dw";
278
279
 
279
280
void TuckerEngine::loadImage(const char *fname, uint8 *dst, int type) {
280
281
        char filename[80];
281
 
        strcpy(filename, fname);
 
282
        Common::strlcpy(filename, fname, sizeof(filename));
282
283
 
283
284
        Common::File f;
284
285
        if (!f.open(filename)) {
302
303
                }
303
304
        }
304
305
 
305
 
        ::Graphics::PCXDecoder pcx;
 
306
        Image::PCXDecoder pcx;
306
307
        if (!pcx.loadStream(f))
307
308
                error("Error while reading PCX image");
308
309
 
350
351
}
351
352
 
352
353
void TuckerEngine::loadCharsetHelper() {
353
 
        const int charW = Graphics::_charset.charW;
354
 
        const int charH = Graphics::_charset.charH;
 
354
        const int charW = Graphics::_charset._charW;
 
355
        const int charH = Graphics::_charset._charH;
355
356
        int offset = 0;
356
 
        for (int y = 0; y < Graphics::_charset.yCount; ++y) {
357
 
                for (int x = 0; x < Graphics::_charset.xCount; ++x) {
 
357
        for (int y = 0; y < Graphics::_charset._yCount; ++y) {
 
358
                for (int x = 0; x < Graphics::_charset._xCount; ++x) {
358
359
                        offset += Graphics::encodeRAW(_loadTempBuf + (y * 320) * charH + x * charW, _charsetGfxBuf + offset, charW, charH);
359
360
                }
360
361
        }
407
408
                        loadImage(filename.c_str(), _loadTempBuf, 0);
408
409
                        ++frame;
409
410
                }
410
 
                int sz = Graphics::encodeRLE(_loadTempBuf + _spriteFramesTable[i].sourceOffset, _spritesGfxBuf + spriteOffset, _spriteFramesTable[i].xSize, _spriteFramesTable[i].ySize);
411
 
                _spriteFramesTable[i].sourceOffset = spriteOffset;
 
411
                int sz = Graphics::encodeRLE(_loadTempBuf + _spriteFramesTable[i]._sourceOffset, _spritesGfxBuf + spriteOffset, _spriteFramesTable[i]._xSize, _spriteFramesTable[i]._ySize);
 
412
                _spriteFramesTable[i]._sourceOffset = spriteOffset;
412
413
                spriteOffset += sz;
413
414
        }
414
415
}
430
431
                        }
431
432
                        const int y = t.getNextInteger();
432
433
                        SpriteFrame *c = &_spriteFramesTable[lastSpriteNum++];
433
 
                        c->sourceOffset = y * 320 + x;
434
 
                        c->xSize = t.getNextInteger();
435
 
                        c->ySize = t.getNextInteger();
436
 
                        c->xOffset = t.getNextInteger();
437
 
                        if (c->xOffset > 300) {
438
 
                                c->xOffset -= 500;
 
434
                        c->_sourceOffset = y * 320 + x;
 
435
                        c->_xSize = t.getNextInteger();
 
436
                        c->_ySize = t.getNextInteger();
 
437
                        c->_xOffset = t.getNextInteger();
 
438
                        if (c->_xOffset > 300) {
 
439
                                c->_xOffset -= 500;
439
440
                        }
440
 
                        c->yOffset = t.getNextInteger();
441
 
                        if (c->yOffset > 300) {
442
 
                                c->yOffset -= 500;
 
441
                        c->_yOffset = t.getNextInteger();
 
442
                        if (c->_yOffset > 300) {
 
443
                                c->_yOffset -= 500;
443
444
                        }
444
445
                }
445
446
        }
454
455
        loadFile("ctable02.c", _loadTempBuf);
455
456
        DataTokenizer t(_loadTempBuf, _fileLoadSize);
456
457
        while (t.findNextToken(kDataTokenDw)) {
457
 
                _spriteAnimationsTable[entry].numParts = t.getNextInteger();
458
 
                if (_spriteAnimationsTable[entry].numParts < 1) {
 
458
                _spriteAnimationsTable[entry]._numParts = t.getNextInteger();
 
459
                if (_spriteAnimationsTable[entry]._numParts < 1) {
459
460
                        return;
460
461
                }
461
 
                _spriteAnimationsTable[entry].rotateFlag = t.getNextInteger();
 
462
                _spriteAnimationsTable[entry]._rotateFlag = t.getNextInteger();
462
463
                int num = t.getNextInteger();
463
464
                if (num != fl) {
464
465
                        continue;
465
466
                }
466
467
                int start = 0;
467
 
                _spriteAnimationsTable[entry].firstFrameIndex = i;
 
468
                _spriteAnimationsTable[entry]._firstFrameIndex = i;
468
469
                while (start != 999) {
469
470
                        start = t.getNextInteger();
470
471
                        if (start == 9999) { // end marker in the demo version
534
535
                return;
535
536
        }
536
537
        debug(2, "loadObj() partNum %d locationNum %d", _partNum, _locationNum);
537
 
        if ((_gameFlags & kGameFlagDemo) == 0) {
 
538
        // If a savegame is loaded from the launcher, skip the display chapter
 
539
        if (_startSlot != -1)
 
540
                _startSlot = -1;
 
541
        else if ((_gameFlags & kGameFlagDemo) == 0) {
538
542
                handleNewPartSequence();
539
543
        }
540
544
        _currentPartNum = _partNum;
570
574
                        const int x = t.getNextInteger();
571
575
                        const int y = t.getNextInteger();
572
576
                        Data *d = &_dataTable[_dataCount];
573
 
                        d->sourceOffset = y * 320 + x;
574
 
                        d->xSize = t.getNextInteger();
575
 
                        d->ySize = t.getNextInteger();
576
 
                        d->xDest = t.getNextInteger();
577
 
                        d->yDest = t.getNextInteger();
578
 
                        d->index = count;
 
577
                        d->_sourceOffset = y * 320 + x;
 
578
                        d->_xSize = t.getNextInteger();
 
579
                        d->_ySize = t.getNextInteger();
 
580
                        d->_xDest = t.getNextInteger();
 
581
                        d->_yDest = t.getNextInteger();
 
582
                        d->_index = count;
579
583
                }
580
584
                ++objNum;
581
585
                ++count;
591
595
 
592
596
int TuckerEngine::loadDataHelper(int offset, int index) {
593
597
        for (int i = 0; i < _dataCount + 1; ++i) {
594
 
                if (_dataTable[i].index == index) {
595
 
                        int sz = Graphics::encodeRLE(_loadTempBuf + _dataTable[i].sourceOffset, _data3GfxBuf + offset, _dataTable[i].xSize, _dataTable[i].ySize);
596
 
                        _dataTable[i].sourceOffset = offset;
 
598
                if (_dataTable[i]._index == index) {
 
599
                        int sz = Graphics::encodeRLE(_loadTempBuf + _dataTable[i]._sourceOffset, _data3GfxBuf + offset, _dataTable[i]._xSize, _dataTable[i]._ySize);
 
600
                        _dataTable[i]._sourceOffset = offset;
597
601
                        offset += sz;
598
602
                }
599
603
        }
625
629
                        }
626
630
                        assert(_locationAnimationsCount < kLocationAnimationsTableSize);
627
631
                        LocationAnimation *d = &_locationAnimationsTable[_locationAnimationsCount++];
628
 
                        d->graphicNum = num;
 
632
                        d->_graphicNum = num;
629
633
                        const int seqNum = t.getNextInteger();
630
634
                        if (seqNum > 0) {
631
635
                                int anim = 0;
635
639
                                        }
636
640
                                        ++anim;
637
641
                                }
638
 
                                d->animCurrentCounter = d->animInitCounter = anim;
 
642
                                d->_animCurrentCounter = d->_animInitCounter = anim;
639
643
                                while (_staticData3Table[anim + 1] != 999) {
640
644
                                        ++anim;
641
645
                                }
642
 
                                d->animLastCounter = anim;
 
646
                                d->_animLastCounter = anim;
643
647
                        } else {
644
 
                                d->animLastCounter = 0;
 
648
                                d->_animLastCounter = 0;
645
649
                        }
646
 
                        d->getFlag = t.getNextInteger();
647
 
                        d->inventoryNum = t.getNextInteger();
648
 
                        d->flagNum = t.getNextInteger();
649
 
                        d->flagValue = t.getNextInteger();
650
 
                        d->selectable = t.getNextInteger();
651
 
                        d->standX = t.getNextInteger();
652
 
                        d->standY = t.getNextInteger();
653
 
                        d->drawFlag = 0;
 
650
                        d->_getFlag = t.getNextInteger();
 
651
                        d->_inventoryNum = t.getNextInteger();
 
652
                        d->_flagNum = t.getNextInteger();
 
653
                        d->_flagValue = t.getNextInteger();
 
654
                        d->_selectable = t.getNextInteger();
 
655
                        d->_standX = t.getNextInteger();
 
656
                        d->_standY = t.getNextInteger();
 
657
                        d->_drawFlag = false;
654
658
                }
655
659
        }
656
660
}
661
665
        t.findNextToken(kDataTokenDw);
662
666
        _gameDebug = t.getNextInteger() != 0;
663
667
        _displayGameHints = t.getNextInteger() != 0;
664
 
        // forces game hints feature
665
 
//      _displayGameHints = true;
666
668
        _locationObjectsCount = 0;
667
669
        if (t.findIndex(_locationNum)) {
668
670
                while (t.findNextToken(kDataTokenDw)) {
669
671
                        int i = t.getNextInteger();
670
 
                        if (i < 0) {
 
672
                        if (i < 0)
671
673
                                break;
672
 
                        }
 
674
 
673
675
                        assert(_locationObjectsCount < kLocationObjectsTableSize);
674
676
                        LocationObject *d = &_locationObjectsTable[_locationObjectsCount++];
675
 
                        d->xPos = i;
676
 
                        d->yPos = t.getNextInteger();
677
 
                        d->xSize = t.getNextInteger();
678
 
                        d->ySize = t.getNextInteger();
679
 
                        d->standX = t.getNextInteger();
680
 
                        d->standY = t.getNextInteger();
681
 
                        d->textNum = t.getNextInteger();
682
 
                        d->cursorNum = t.getNextInteger();
683
 
                        d->locationNum = t.getNextInteger();
684
 
                        if (d->locationNum > 0) {
685
 
                                d->toX = t.getNextInteger();
686
 
                                d->toY = t.getNextInteger();
687
 
                                d->toX2 = t.getNextInteger();
688
 
                                d->toY2 = t.getNextInteger();
689
 
                                d->toWalkX2 = t.getNextInteger();
690
 
                                d->toWalkY2 = t.getNextInteger();
 
677
                        d->_xPos = i;
 
678
                        d->_yPos = t.getNextInteger();
 
679
                        d->_xSize = t.getNextInteger();
 
680
                        d->_ySize = t.getNextInteger();
 
681
                        d->_standX = t.getNextInteger();
 
682
                        d->_standY = t.getNextInteger();
 
683
                        d->_textNum = t.getNextInteger();
 
684
                        d->_cursorNum = t.getNextInteger();
 
685
                        d->_locationNum = t.getNextInteger();
 
686
                        if (d->_locationNum > 0) {
 
687
                                d->_toX = t.getNextInteger();
 
688
                                d->_toY = t.getNextInteger();
 
689
                                d->_toX2 = t.getNextInteger();
 
690
                                d->_toY2 = t.getNextInteger();
 
691
                                d->_toWalkX2 = t.getNextInteger();
 
692
                                d->_toWalkY2 = t.getNextInteger();
691
693
                        }
692
694
                }
693
695
        }
725
727
                        int keyD = t.getNextInteger();
726
728
                        int keyE = t.getNextInteger();
727
729
                        Action *action = &_actionsTable[_actionsCount++];
728
 
                        action->key = keyE * 1000000 + keyD * 100000 + keyA * 10000 + keyB * 1000 + keyC;
729
 
                        action->testFlag1Num = t.getNextInteger();
730
 
                        action->testFlag1Value = t.getNextInteger();
731
 
                        action->testFlag2Num = t.getNextInteger();
732
 
                        action->testFlag2Value = t.getNextInteger();
733
 
                        action->speech = t.getNextInteger();
734
 
                        action->flipX = t.getNextInteger();
735
 
                        action->index = t.getNextInteger();
736
 
                        action->delay = t.getNextInteger();
737
 
                        action->setFlagNum = t.getNextInteger();
738
 
                        assert(action->setFlagNum >= 0 && action->setFlagNum < kFlagsTableSize);
739
 
                        action->setFlagValue = t.getNextInteger();
740
 
                        action->fxNum = t.getNextInteger();
741
 
                        action->fxDelay = t.getNextInteger();
 
730
                        action->_key = keyE * 1000000 + keyD * 100000 + keyA * 10000 + keyB * 1000 + keyC;
 
731
                        action->_testFlag1Num = t.getNextInteger();
 
732
                        action->_testFlag1Value = t.getNextInteger();
 
733
                        action->_testFlag2Num = t.getNextInteger();
 
734
                        action->_testFlag2Value = t.getNextInteger();
 
735
                        action->_speech = t.getNextInteger();
 
736
                        action->_flipX = t.getNextInteger();
 
737
                        action->_index = t.getNextInteger();
 
738
                        action->_delay = t.getNextInteger();
 
739
                        action->_setFlagNum = t.getNextInteger();
 
740
                        assert(action->_setFlagNum >= 0 && action->_setFlagNum < kFlagsTableSize);
 
741
                        action->_setFlagValue = t.getNextInteger();
 
742
                        action->_fxNum = t.getNextInteger();
 
743
                        action->_fxDelay = t.getNextInteger();
742
744
                }
743
745
        }
744
746
}
755
757
                        }
756
758
                        assert(_charPosCount < 4);
757
759
                        CharPos *charPos = &_charPosTable[_charPosCount++];
758
 
                        charPos->xPos = i;
759
 
                        charPos->yPos = t.getNextInteger();
760
 
                        charPos->xSize = t.getNextInteger();
761
 
                        charPos->ySize = t.getNextInteger();
762
 
                        charPos->xWalkTo = t.getNextInteger();
763
 
                        charPos->yWalkTo = t.getNextInteger();
764
 
                        charPos->flagNum = t.getNextInteger();
765
 
                        charPos->flagValue = t.getNextInteger();
766
 
                        charPos->direction = t.getNextInteger();
767
 
                        charPos->name = t.getNextInteger();
768
 
                        charPos->description = t.getNextInteger();
 
760
                        charPos->_xPos = i;
 
761
                        charPos->_yPos = t.getNextInteger();
 
762
                        charPos->_xSize = t.getNextInteger();
 
763
                        charPos->_ySize = t.getNextInteger();
 
764
                        charPos->_xWalkTo = t.getNextInteger();
 
765
                        charPos->_yWalkTo = t.getNextInteger();
 
766
                        charPos->_flagNum = t.getNextInteger();
 
767
                        charPos->_flagValue = t.getNextInteger();
 
768
                        charPos->_direction = t.getNextInteger();
 
769
                        charPos->_name = t.getNextInteger();
 
770
                        charPos->_description = t.getNextInteger();
769
771
                }
770
772
                int quitLoop = 0;
771
773
                size_t count = 0;
818
820
void TuckerEngine::unloadSprA02_01() {
819
821
        for (int i = 1; i < kSprA02TableSize; ++i) {
820
822
                free(_sprA02Table[i]);
821
 
                _sprA02Table[i] = 0;
 
823
                _sprA02Table[i] = nullptr;
822
824
        }
823
 
        _sprA02Table[0] = 0;
 
825
        _sprA02Table[0] = nullptr;
824
826
}
825
827
 
826
828
void TuckerEngine::loadSprC02_01() {
834
836
        _spritesCount = _sprC02LookupTable2[_locationNum];
835
837
        for (int i = 0; i < kMaxCharacters; ++i) {
836
838
                memset(&_spritesTable[i], 0, sizeof(Sprite));
837
 
                _spritesTable[i].state = -1;
838
 
                _spritesTable[i].stateIndex = -1;
 
839
                _spritesTable[i]._state = -1;
 
840
                _spritesTable[i]._stateIndex = -1;
839
841
        }
840
842
}
841
843
 
842
844
void TuckerEngine::unloadSprC02_01() {
843
845
        for (int i = 1; i < kSprC02TableSize; ++i) {
844
846
                free(_sprC02Table[i]);
845
 
                _sprC02Table[i] = 0;
 
847
                _sprC02Table[i] = nullptr;
846
848
        }
847
 
        _sprC02Table[0] = 0;
 
849
        _sprC02Table[0] = nullptr;
848
850
}
849
851
 
850
852
void TuckerEngine::loadFx() {
851
853
        loadFile("fx.c", _loadTempBuf);
852
854
        DataTokenizer t(_loadTempBuf, _fileLoadSize);
853
 
        t.findIndex(_locationNum);
854
 
        t.findNextToken(kDataTokenDw);
855
 
        _locationSoundsCount = t.getNextInteger();
856
 
        _currentFxSet = 0;
857
 
        for (int i = 0; i < _locationSoundsCount; ++i) {
858
 
                LocationSound *s = &_locationSoundsTable[i];
859
 
                s->offset = 0;
860
 
                s->num = t.getNextInteger();
861
 
                s->volume = t.getNextInteger();
862
 
                s->type = t.getNextInteger();
863
 
                switch (s->type) {
864
 
                case 5:
865
 
                        _currentFxSet = 1;
866
 
                        _currentFxIndex = i;
867
 
                        _currentFxVolume = s->volume;
868
 
                        _currentFxDist = t.getNextInteger();
869
 
                        _currentFxScale = t.getNextInteger();
870
 
                        break;
871
 
                case 6:
872
 
                case 7:
873
 
                case 8:
874
 
                        s->startFxSpriteState = t.getNextInteger();
875
 
                        s->startFxSpriteNum = t.getNextInteger();
876
 
                        s->updateType = t.getNextInteger();
877
 
                        if (s->type == 7) {
878
 
                                s->flagNum = t.getNextInteger();
879
 
                                s->flagValueStartFx = t.getNextInteger();
880
 
                                s->stopFxSpriteState = t.getNextInteger();
881
 
                                s->stopFxSpriteNum = t.getNextInteger();
882
 
                                s->flagValueStopFx = t.getNextInteger();
883
 
                        }
884
 
                        break;
885
 
                }
886
 
                if (s->type == 8) {
887
 
                        s->type = 6;
888
 
                }
889
 
        }
890
 
        t.findNextToken(kDataTokenDw);
891
 
        int count = t.getNextInteger();
892
 
        _locationMusicsCount = 0;
893
 
        for (int i = 0; i < count; ++i) {
894
 
                int flagNum = t.getNextInteger();
895
 
                int flagValue = t.getNextInteger();
896
 
                if (flagValue == _flagsTable[flagNum]) {
897
 
                        LocationMusic *m = &_locationMusicsTable[_locationMusicsCount++];
898
 
                        m->offset = 0;
899
 
                        m->num = t.getNextInteger();
900
 
                        m->volume = t.getNextInteger();
901
 
                        m->flag = t.getNextInteger();
902
 
                } else {
903
 
                        for (int j = 0; j < 3; ++j) {
904
 
                                t.getNextInteger();
905
 
                        }
906
 
                }
 
855
        if (t.findIndex(_locationNum)) {
 
856
                t.findNextToken(kDataTokenDw);
 
857
                _locationSoundsCount = t.getNextInteger();
 
858
                _currentFxSet = 0;
 
859
                for (int i = 0; i < _locationSoundsCount; ++i) {
 
860
                        LocationSound *s = &_locationSoundsTable[i];
 
861
                        s->_offset = 0;
 
862
                        s->_num = t.getNextInteger();
 
863
                        s->_volume = t.getNextInteger();
 
864
                        s->_type = t.getNextInteger();
 
865
                        switch (s->_type) {
 
866
                        case 5:
 
867
                                _currentFxSet = 1;
 
868
                                _currentFxIndex = i;
 
869
                                _currentFxVolume = s->_volume;
 
870
                                _currentFxDist = t.getNextInteger();
 
871
                                _currentFxScale = t.getNextInteger();
 
872
                                break;
 
873
                        case 6:
 
874
                        case 7:
 
875
                        case 8:
 
876
                                s->_startFxSpriteState = t.getNextInteger();
 
877
                                s->_startFxSpriteNum = t.getNextInteger();
 
878
                                s->_updateType = t.getNextInteger();
 
879
                                if (s->_type == 7) {
 
880
                                        s->_flagNum = t.getNextInteger();
 
881
                                        s->_flagValueStartFx = t.getNextInteger();
 
882
                                        s->_stopFxSpriteState = t.getNextInteger();
 
883
                                        s->_stopFxSpriteNum = t.getNextInteger();
 
884
                                        s->_flagValueStopFx = t.getNextInteger();
 
885
                                }
 
886
                                break;
 
887
                        }
 
888
                        if (s->_type == 8) {
 
889
                                s->_type = 6;
 
890
                        }
 
891
                }
 
892
                t.findNextToken(kDataTokenDw);
 
893
                int count = t.getNextInteger();
 
894
                _locationMusicsCount = 0;
 
895
                for (int i = 0; i < count; ++i) {
 
896
                        int flagNum = t.getNextInteger();
 
897
                        int flagValue = t.getNextInteger();
 
898
                        if (flagValue == _flagsTable[flagNum]) {
 
899
                                LocationMusic *m = &_locationMusicsTable[_locationMusicsCount++];
 
900
                                m->_offset = 0;
 
901
                                m->_num = t.getNextInteger();
 
902
                                m->_volume = t.getNextInteger();
 
903
                                m->_flag = t.getNextInteger();
 
904
                        } else {
 
905
                                for (int j = 0; j < 3; ++j) {
 
906
                                        t.getNextInteger();
 
907
                                }
 
908
                        }
 
909
                }
 
910
        } else {
 
911
                error("loadFx() - Index not found for location %d", _locationNum);
907
912
        }
908
913
}
909
914
 
923
928
                return;
924
929
        }
925
930
        if (!stream) {
926
 
                const char *fmt = 0;
 
931
                const char *fmt = nullptr;
927
932
                switch (type) {
928
933
                case Audio::Mixer::kSFXSoundType:
929
934
                        fmt = "fx/fx%d.wav";
1004
1009
                                        }
1005
1010
                                }
1006
1011
                        } else {
1007
 
                                if (_spritesTable[_csDataTableCount - 1].firstFrame - 1 != _spritesTable[_csDataTableCount - 1].animationFrame) {
 
1012
                                if (_spritesTable[_csDataTableCount - 1]._firstFrame - 1 != _spritesTable[_csDataTableCount - 1]._animationFrame) {
1008
1013
                                        break;
1009
1014
                                }
1010
1015
                        }
1030
1035
                _panelState = 0;
1031
1036
                setCursorType(0);
1032
1037
                _csDataHandled = false;
1033
 
                _actionVerbLocked = 0;
 
1038
                _actionVerbLocked = false;
1034
1039
                _mouseClick = 1;
1035
1040
        }
1036
1041
}