Esempio n. 1
0
void ScummEngine_v2::o2_getObjPreposition() {
	getResultPos();
	int obj = getVarOrDirectWord(PARAM_1);

	if (whereIsObject(obj) != WIO_NOT_FOUND) {
		byte *ptr = getOBCDFromObject(obj) + 12;
		setResult(*ptr >> 5);
	} else {
Esempio n. 2
0
int ScummEngine_v0::getVerbPrepId() {
	if (_verbs[_activeVerb].prep != 0xFF) {
		return _verbs[_activeVerb].prep;
	} else {
		byte *ptr = getOBCDFromObject(_activeObject, true);
		assert(ptr);
		return (*(ptr + 11) >> 5);
	}
}
Esempio n. 3
0
void ScummEngine_v2::o2_setObjPreposition() {
	int obj = getVarOrDirectWord(PARAM_1);
	int unk = fetchScriptByte();

	if (_game.platform == Common::kPlatformNES)
		return;

	if (whereIsObject(obj) != WIO_NOT_FOUND) {
		// FIXME: this might not work properly the moment we save and restore the game.
		byte *ptr = getOBCDFromObject(obj) + 12;
		*ptr &= 0x1F;
		*ptr |= unk << 5;
	}
}