void ScummEngine_v0::drawSentenceObject(int object) { const byte *temp; temp = getObjOrActorName(object); if (temp) { _sentenceBuf += " "; _sentenceBuf += (const char *)temp; } }
void ScummEngine_v2::redrawV2Inventory() { VirtScreen *vs = &_virtscr[kVerbVirtScreen]; int i; int max_inv; Common::Rect inventoryBox; int inventoryArea = (_game.platform == Common::kPlatformNES) ? 48: 32; int maxChars = (_game.platform == Common::kPlatformNES) ? 13: 18; _mouseOverBoxV2 = -1; if (!(_userState & USERSTATE_IFACE_INVENTORY)) // Don't draw inventory unless active return; // Clear on all invocations inventoryBox.top = vs->topline + inventoryArea; inventoryBox.bottom = vs->topline + vs->h; inventoryBox.left = 0; inventoryBox.right = vs->w; restoreBackground(inventoryBox); _string[1].charset = 1; max_inv = getInventoryCount(_scummVars[VAR_EGO]) - _inventoryOffset; if (max_inv > 4) max_inv = 4; for (i = 0; i < max_inv; i++) { int obj = findInventory(_scummVars[VAR_EGO], i + 1 + _inventoryOffset); if (obj == 0) break; _string[1].ypos = _mouseOverBoxesV2[i].rect.top + vs->topline; _string[1].xpos = _mouseOverBoxesV2[i].rect.left; _string[1].right = _mouseOverBoxesV2[i].rect.right - 1; _string[1].color = _mouseOverBoxesV2[i].color; const byte *tmp = getObjOrActorName(obj); assert(tmp); // Prevent inventory entries from overflowing by truncating the text byte msg[20]; msg[maxChars] = 0; strncpy((char *)msg, (const char *)tmp, maxChars); // Draw it drawString(1, msg); } // If necessary, draw "up" arrow if (_inventoryOffset > 0) { _string[1].xpos = _mouseOverBoxesV2[kInventoryUpArrow].rect.left; _string[1].ypos = _mouseOverBoxesV2[kInventoryUpArrow].rect.top + vs->topline; _string[1].right = _mouseOverBoxesV2[kInventoryUpArrow].rect.right - 1; _string[1].color = _mouseOverBoxesV2[kInventoryUpArrow].color; if (_game.platform == Common::kPlatformNES) drawString(1, (const byte *)"\x7E"); else drawString(1, (const byte *)" \1\2"); } // If necessary, draw "down" arrow if (_inventoryOffset + 4 < getInventoryCount(_scummVars[VAR_EGO])) { _string[1].xpos = _mouseOverBoxesV2[kInventoryDownArrow].rect.left; _string[1].ypos = _mouseOverBoxesV2[kInventoryDownArrow].rect.top + vs->topline; _string[1].right = _mouseOverBoxesV2[kInventoryDownArrow].rect.right - 1; _string[1].color = _mouseOverBoxesV2[kInventoryDownArrow].color; if (_game.platform == Common::kPlatformNES) drawString(1, (const byte *)"\x7F"); else drawString(1, (const byte *)" \3\4"); } }