void ScummEngine_v70he::o70_resourceRoutines() { int objidx, resid; byte subOp = fetchScriptByte(); switch (subOp) { case 100: // SO_LOAD_SCRIPT resid = pop(); ensureResourceLoaded(rtScript, resid); break; case 101: // SO_LOAD_SOUND resid = pop(); ensureResourceLoaded(rtSound, resid); break; case 102: // SO_LOAD_COSTUME resid = pop(); ensureResourceLoaded(rtCostume, resid); break; case 103: // SO_LOAD_ROOM resid = pop(); ensureResourceLoaded(rtRoomImage, resid); ensureResourceLoaded(rtRoom, resid); break; case 104: // SO_NUKE_SCRIPT resid = pop(); _res->nukeResource(rtScript, resid); break; case 105: // SO_NUKE_SOUND resid = pop(); _res->nukeResource(rtSound, resid); break; case 106: // SO_NUKE_COSTUME resid = pop(); _res->nukeResource(rtCostume, resid); break; case 107: // SO_NUKE_ROOM resid = pop(); _res->nukeResource(rtRoom, resid); _res->nukeResource(rtRoomImage, resid); break; case 108: // SO_LOCK_SCRIPT resid = pop(); if (resid >= _numGlobalScripts) break; _res->lock(rtScript, resid); break; case 109: // SO_LOCK_SOUND resid = pop(); _res->lock(rtSound, resid); break; case 110: // SO_LOCK_COSTUME resid = pop(); _res->lock(rtCostume, resid); break; case 111: // SO_LOCK_ROOM resid = pop(); if (_game.heversion <= 71 && resid > 0x7F) resid = _resourceMapper[resid & 0x7F]; _res->lock(rtRoom, resid); _res->lock(rtRoomImage, resid); break; case 112: // SO_UNLOCK_SCRIPT resid = pop(); if (resid >= _numGlobalScripts) break; _res->unlock(rtScript, resid); break; case 113: // SO_UNLOCK_SOUND resid = pop(); _res->unlock(rtSound, resid); break; case 114: // SO_UNLOCK_COSTUME resid = pop(); _res->unlock(rtCostume, resid); break; case 115: // SO_UNLOCK_ROOM resid = pop(); if (_game.heversion <= 71 && resid > 0x7F) resid = _resourceMapper[resid & 0x7F]; _res->unlock(rtRoom, resid); _res->unlock(rtRoomImage, resid); break; case 116: // TODO: Clear Heap break; case 117: // SO_LOAD_CHARSET resid = pop(); loadCharset(resid); break; case 118: // SO_NUKE_CHARSET resid = pop(); nukeCharset(resid); break; case 119: // SO_LOAD_OBJECT { int obj = pop(); int room = getObjectRoom(obj); loadFlObject(obj, room); break; } case 120: resid = pop(); if (resid >= _numGlobalScripts) break; //queueLoadResource(rtScript, resid); break; case 121: resid = pop(); //queueLoadResource(rtSound, resid); break; case 122: resid = pop(); //queueLoadResource(rtCostume, resid); break; case 123: resid = pop(); //queueLoadResource(rtRoomImage, resid); break; case 159: resid = pop(); _res->unlock(rtImage, resid); break; case 192: resid = pop(); _res->nukeResource(rtImage, resid); break; case 201: resid = pop(); ensureResourceLoaded(rtImage, resid); break; case 202: resid = pop(); _res->lock(rtImage, resid); break; case 203: resid = pop(); //queueLoadResource(rtImage, resid); break; case 233: resid = pop(); objidx = getObjectIndex(resid); if (objidx == -1) break; _res->lock(rtFlObject, _objs[objidx].fl_object_index); break; case 235: resid = pop(); objidx = getObjectIndex(resid); if (objidx == -1) break; _res->unlock(rtFlObject, _objs[objidx].fl_object_index); break; case 239: // Used in airport break; default: error("o70_resourceRoutines: default case %d", subOp); } }
void ScummEngine_v0::o_loadCostume() { int resid = getVarOrDirectByte(PARAM_1); ensureResourceLoaded(rtCostume, resid); }
void ScummEngine_v0::o_loadRoom() { int resid = getVarOrDirectByte(PARAM_1); ensureResourceLoaded(rtRoom, resid); }
void ScummEngine_v0::o_loadSound() { int resid = fetchScriptByte(); ensureResourceLoaded(rtSound, resid); }