fixed give verb
fixed occasional verbs redraw svn-id: r18113
This commit is contained in:
parent
2425e657a2
commit
1d31cd1223
5 changed files with 25 additions and 23 deletions
|
@ -1136,7 +1136,7 @@ int Actor::direct(int msec) {
|
|||
// FIXME: HACK. This should be turned into cycle event.
|
||||
_lastTickMsec += msec;
|
||||
|
||||
if (_lastTickMsec > 1000 / 15) { // fixme
|
||||
if (_lastTickMsec > 1000 / 15) { // fixme choose 50 for speed up
|
||||
_lastTickMsec = 0;
|
||||
//process actions
|
||||
handleActions(msec, false);
|
||||
|
@ -1238,7 +1238,7 @@ void Actor::createDrawOrderList() {
|
|||
bool Actor::getSpriteParams(CommonObjectData *commonObjectData, int &frameNumber, SpriteList *&spriteList) {
|
||||
if (_vm->_scene->currentSceneResourceId() == RID_ITE_OVERMAP_SCENE) {
|
||||
if (!(commonObjectData->flags & kProtagonist)){
|
||||
warning("not protagonist");
|
||||
// warning("not protagonist");
|
||||
return false;
|
||||
}
|
||||
frameNumber = 8;
|
||||
|
|
|
@ -569,21 +569,19 @@ void Interface::handleCommandUpdate(const Point& mousePoint) {
|
|||
|
||||
panelButton = _mainPanel.hitTest(mousePoint, kPanelAllButtons);
|
||||
|
||||
if (panelButton != NULL) {
|
||||
if (panelButton->type == kPanelButtonArrow) {
|
||||
if (panelButton->state == 1) {
|
||||
//TODO: insert timeout catchup
|
||||
inventoryChangePos(panelButton->id);
|
||||
}
|
||||
draw();
|
||||
}
|
||||
bool changed = false;
|
||||
|
||||
if (panelButton->type == kPanelButtonInventory) {
|
||||
_vm->_script->whichObject(mousePoint);
|
||||
}
|
||||
if ((panelButton != NULL) && (panelButton->type == kPanelButtonArrow)) {
|
||||
if (panelButton->state == 1) {
|
||||
//TODO: insert timeout catchup
|
||||
inventoryChangePos(panelButton->id);
|
||||
}
|
||||
changed = true;
|
||||
} else {
|
||||
_vm->_script->whichObject(mousePoint);
|
||||
}
|
||||
|
||||
bool changed = (panelButton != _mainPanel.currentButton);
|
||||
changed = changed || (panelButton != _mainPanel.currentButton);
|
||||
_mainPanel.currentButton = panelButton;
|
||||
if (changed) {
|
||||
draw();
|
||||
|
|
|
@ -262,7 +262,7 @@ class Scene {
|
|||
|
||||
int getSceneResourceId(int sceneNumber) {
|
||||
if ((sceneNumber < 0) || (sceneNumber >= _sceneMax)) {
|
||||
error("getSceneResourceId: wrong sceneNumber");
|
||||
error("getSceneResourceId: wrong sceneNumber");
|
||||
}
|
||||
return _sceneLUT[sceneNumber];
|
||||
}
|
||||
|
|
|
@ -685,8 +685,7 @@ void Script::whichObject(const Point& mousePoint) {
|
|||
_leftButtonVerb = _currentVerb;
|
||||
newRightButtonVerb = kVerbNone;
|
||||
|
||||
if (_vm->_actor->_protagonist->currentAction == kActionWalkDir) {
|
||||
} else {
|
||||
if (_vm->_actor->_protagonist->currentAction != kActionWalkDir) {
|
||||
if (_vm->getSceneHeight() >= mousePoint.y) {
|
||||
newObjectId = _vm->_actor->hitTest(mousePoint, true);
|
||||
|
||||
|
@ -755,7 +754,7 @@ void Script::whichObject(const Point& mousePoint) {
|
|||
newRightButtonVerb = kVerbNone;
|
||||
}
|
||||
|
||||
if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && !_firstObjectSet)) {
|
||||
if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && _firstObjectSet)) {
|
||||
objectId = ID_NOTHING;
|
||||
newObjectId = ID_NOTHING;
|
||||
}
|
||||
|
@ -766,7 +765,7 @@ void Script::whichObject(const Point& mousePoint) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && !_firstObjectSet)) {
|
||||
if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && _firstObjectSet)) {
|
||||
// no way
|
||||
} else {
|
||||
panelButton = _vm->_interface->inventoryHitTest(mousePoint);
|
||||
|
|
|
@ -195,10 +195,15 @@ void Script::sfTakeObject(SCRIPTFUNC_PARAMS) {
|
|||
// Check if an object is carried.
|
||||
void Script::sfIsCarried(SCRIPTFUNC_PARAMS) {
|
||||
uint16 objectId = thread->pop();
|
||||
ObjectData *obj;
|
||||
obj = _vm->_actor->getObj(objectId);
|
||||
|
||||
thread->_returnValue = (obj->sceneNumber == ITE_SCENE_INV) ? 1 : 0;
|
||||
CommonObjectData *object;
|
||||
if (_vm->_actor->validObjId(objectId)) {
|
||||
object = _vm->_actor->getObj(objectId);
|
||||
thread->_returnValue = (object->sceneNumber == ITE_SCENE_INV) ? 1 : 0;
|
||||
} else {
|
||||
thread->_returnValue = 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Script function #4 (0x04) nonblocking
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue