Beispiel #1
0
void DreamWebEngine::removeObFromInv() {
	if (_command == 100)
		return; // object doesn't exist

	assert(_objectType == kExObjectType);

	deleteExObject(_command);
}
Beispiel #2
0
void DreamWebEngine::purgeALocation(uint8 index) {
	// index == al
	for (uint8 i = 0; i < kNumexobjects; ++i) {
		DynObject *t = getExAd(i);
		if (t->currentLocation == index && t->mapad[0] == 0) {
			deleteExObject(i);
		}
	}
}
Beispiel #3
0
void DreamWebEngine::purgeAnItem() {
	const DynObject *extraObjects = _exData;

	for (size_t i = 0; i < kNumexobjects; ++i) {
		if (extraObjects[i].mapad[0] && extraObjects[i].objId[0] == 255 &&
			extraObjects[i].initialLocation != _realLocation) {
			deleteExObject(i);
			return;
		}
	}

	for (size_t i = 0; i < kNumexobjects; ++i) {
		if (extraObjects[i].mapad[0] && extraObjects[i].objId[0] == 255) {
			deleteExObject(i);
			return;
		}
	}
}
Beispiel #4
0
void DreamWebEngine::deleteExObject(uint8 index) {
	DynObject *obj = getExAd(index);

	memset(obj, 0xFF, sizeof(DynObject));

	deleteExFrame(3*index);
	deleteExFrame(3*index + 1);

	deleteExText(index);

	for (uint8 i = 0; i < kNumexobjects; ++i) {
		DynObject *t = getExAd(i);
		// Is this object contained in the one we've just deleted?
		if (t->mapad[0] == 4 && t->mapad[1] == index)
			deleteExObject(i);
	}
}