Ticket #9225: miscflags-final.patch
File miscflags-final.patch, 2.7 KB (added by , 14 years ago) |
---|
-
script_v0.cpp
829 829 // This flag causes the actor to stop moving (used by script #158, Green Tentacle 'Oomph!') 830 830 if (a->_miscflags & 0x40) 831 831 a->stopActorMoving(); 832 if (a->_miscflags & 0x80) 833 a->setActorCostume(0); 832 834 833 835 debug(0, "o_setActorBitVar(%d, %d, %d)", act, mask, mod); 834 836 } -
verbs.cpp
168 168 return; 169 169 170 170 // verbs disabled for the current actor 171 ActorC64 *a = (ActorC64 *)derefActor(VAR(VAR_EGO), "switchActor"); 172 if (a->_miscflags & 0x40) 173 return; 171 // Should no longer be required... 172 //ActorC64 *a = (ActorC64 *)derefActor(VAR(VAR_EGO), "switchActor"); 173 //if (a->_miscflags & 0x40) 174 // return; 174 175 175 176 VAR(VAR_EGO) = VAR(97 + slot); 176 177 resetVerbs(); … … 727 728 } 728 729 729 730 void ScummEngine_v0::runObject(int obj, int entry) { 730 intprev = _v0ObjectInInventory;731 bool prev = _v0ObjectInInventory; 731 732 732 733 if (getVerbEntrypoint(obj, entry) == 0) { 733 734 // If nothing was found, attempt to find the 'WHAT-IS' verb script … … 978 979 // We acted on an inventory item 979 980 if (_activeInventory && verbExecutes(_activeInventory, true) && _activeVerb != 3) { 980 981 _v0ObjectInInventory = true; 982 _activeObject = _activeInventory; 981 983 runObject(_activeInventory, _activeVerb); 982 984 983 985 _verbExecuting = false; … … 1036 1038 } 1037 1039 1038 1040 void ScummEngine_v0::checkExecVerbs() { 1039 Actor *a =derefActor(VAR(VAR_EGO), "checkExecVerbs");1041 ActorC64 *a = (ActorC64 *)derefActor(VAR(VAR_EGO), "checkExecVerbs"); 1040 1042 VirtScreen *zone = findVirtScreen(_mouse.y); 1041 1043 1042 1044 // Is a verb currently executing … … 1151 1153 obj = 0; 1152 1154 objIdx = 0; 1153 1155 } 1156 1157 if (a->_miscflags & 0x80) { 1158 if (_activeVerb != 7 && over != 7) { 1159 _activeVerb = 0; 1160 over = 0; 1161 } 1162 } 1154 1163 1155 1164 // Handle New Kid verb options 1156 1165 if (_activeVerb == 7 || over == 7) { 1157 1166 // Disable New-Kid (in the secret lab) 1158 1167 if (_currentMode == 2 || _currentMode == 0) 1159 1168 return; 1160 1161 if (!(((ActorC64 *)a)->_miscflags & 0x80)) {1162 if (_activeVerb != 7) {1163 _activeVerb = over;1164 over = 0;1165 }1166 }1167 1169 1168 if ( over) {1170 if (_activeVerb == 7 && over) { 1169 1171 _activeVerb = 13; 1170 1172 switchActor(_verbs[over].verbid - 1); 1171 1173 return; 1172 1174 } 1173 1175 1174 1176 setNewKidVerbs(); 1177 _activeVerb = 7; 1175 1178 1176 1179 return; 1177 1180 } … … 1187 1190 1188 1191 if (zone->number == kMainVirtScreen) { 1189 1192 // Ignore verbs? 1190 if ( ((ActorC64 *)a)->_miscflags & 0x40) {1193 if (a->_miscflags & 0x40) { 1191 1194 resetSentence(false); 1192 1195 return; 1193 1196 }