Ticket #8243: v2-inventory.diff

File v2-inventory.diff, 3.0 KB (added by eriktorbjorn, 17 years ago)

Patch against a June 3 CVS snapshot

  • scummvm/scumm/scumm.h

    diff -ur ScummVM-cvs20030603/scummvm/scumm/scumm.h ScummVM-cvs20030603+hack/scummvm/scumm/scumm.h
    old new  
    718718        // TODO: This should be moved into Scumm_v2 if posisble
    719719        ScummVM::Rect v2_mouseover_boxes[7];
    720720        int8 v2_mouseover_box;
     721        int32 _oldV2Ego;
    721722
    722723        void initV2MouseOver();
    723724        void checkV2MouseOver(ScummVM::Point pos);
     
    10371038        bool hasCharsetMask(int left, int top, int right, int bottom);
    10381039protected:
    10391040        void CHARSET_1();
    1040         void drawString(int a);
     1041        void drawString(int a, int max_length = 0x7FFF);
    10411042        const byte *addMessageToStack(const byte *msg);
    10421043        void addIntToStack(int var);
    10431044        void addVerbToStack(int var);
  • scummvm/scumm/scummvm.cpp

    diff -ur ScummVM-cvs20030603/scummvm/scumm/scummvm.cpp ScummVM-cvs20030603+hack/scummvm/scumm/scummvm.cpp
    old new  
    684684
    685685        if (_features & GF_AFTER_V2) {
    686686                initV2MouseOver();
     687                _oldV2Ego = 0;
    687688                // Seems in V2 there was only a single room effect (iris),
    688689                // so we set that here.
    689690                _switchRoomEffect2 = 1;
     
    10111012                if (_features & GF_AFTER_V2) {
    10121013                        redrawV2Inventory();
    10131014                        checkV2MouseOver(_mouse);
     1015                        _oldV2Ego = VAR(VAR_EGO);
    10141016                }
    10151017
    10161018                _verbRedraw = false;
     
    10781080                }
    10791081                _verbRedraw = false;
    10801082
    1081                 if (_features & GF_AFTER_V2)
     1083                if (_features & GF_AFTER_V2) {
     1084                        if (_oldV2Ego != VAR(VAR_EGO)) {
     1085                                // FIXME: Reset and redraw the sentence line
     1086                                _oldV2Ego = VAR(VAR_EGO);
     1087                                redrawV2Inventory();
     1088                        }
    10821089                        checkV2MouseOver(_mouse);
     1090                }
    10831091
    10841092                drawBlastObjects();
    10851093                if (_features & GF_AFTER_V8)
  • scummvm/scumm/string.cpp

    diff -ur ScummVM-cvs20030603/scummvm/scumm/string.cpp ScummVM-cvs20030603+hack/scummvm/scumm/string.cpp
    old new  
    336336        gdi._mask.extend(_charset->_str);
    337337}
    338338
    339 void Scumm::drawString(int a) {
     339void Scumm::drawString(int a, int max_length) {
    340340        byte buf[256];
    341341        byte *space;
    342342        int i;
    343343        byte fontHeight = 0, chr;
    344344        uint color;
     345        int char_count = 0;
    345346
    346347        _msgPtrToAdd = buf;
    347348        _messagePtr = addMessageToStack(_messagePtr);
     
    431432                        }
    432433                        _charset->printChar(chr);
    433434                        _charset->_blitAlso = false;
     435                        if (++char_count >= max_length)
     436                                break;
    434437                }
    435438        }
    436439
  • scummvm/scumm/verbs.cpp

    diff -ur ScummVM-cvs20030603/scummvm/scumm/verbs.cpp ScummVM-cvs20030603+hack/scummvm/scumm/verbs.cpp
    old new  
    199199
    200200                _messagePtr = getObjOrActorName(obj);
    201201                assert(_messagePtr);
    202                 drawString(1);
     202                drawString(1, v2_mouseover_boxes[i].width() / 8);
    203203        }
    204204
    205205        // If necessary, draw "up" arrow