25#include "common/scummsys.h"
49 kGreaterOrEquals = 26,
66 kPreIncrementGlobal = 43,
67 kPreDecrementGlobal = 44,
68 kPostIncrementGlobal = 45,
69 kPostDecrementGlobal = 46,
70 kSetGlobalWithTop = 47,
72 kIncrementGlobalByTop = 49,
73 kDecrementGlobalByTop = 50,
74 kMultiplyGlobalByTop = 51,
75 kDivideGlobalByTop = 52,
82 kObjectInitialise = 59,
83 kObjectRegisterLookHandler = 60,
84 kObjectRegisterUseHandler = 61,
85 kObjectRegisterHandlerC1 = 62,
86 kObjectRegisterUseObjectHandler = 63,
87 kObjectRegisterHandlerBD = 64,
88 kObjectRegisterCharacterTrap = 65,
89 kLoadMouseCursorFromObject = 66,
90 kLoadRegionFromObject = 68,
91 kLoadPictureFromObject = 69,
92 kLoadAnimationFromObject = 70,
94 kSetScreenBackground = 72,
95 kLoadTextFromObject = 73,
96 kScreenSetZNearFar = 74,
97 kScreenLoadRegion = 75,
98 kScreenLoadObject = 76,
99 kScreenCloneObject = 77,
100 kScreenRemoveObject = 78,
102 kSetNextScreenSaveOrLoad = 80,
103 kObjectPatchSetText = 82,
104 kObjectPatchSetRegionName = 83,
105 kScreenPatchSetRegionName = 84,
107 kUnloadCharacter = 86,
108 kAssociateCharacter = 87,
109 kAnimateCharacter = 88,
112 kDisableCharacter = 91,
113 kEnableCharacter = 92,
114 kMoveCharacterUserMove = 93,
115 kLeaveCharacter = 94,
117 kSetCharacterDirection = 96,
118 kPointCharacter = 97,
121 kRestartSample = 100,
127 kInventoryClear = 106,
130 kAttachInventoryObjectToMouse0 = 109,
131 kResetMousePointer = 110,
132 kInventoryAddObject = 111,
133 kInventoryRemoveObject = 112,
138 kLoadAnimation = 117,
140 kSetPhaseVarControlledFlag = 119,
144 kNPCSayNoSound = 123,
149 kProcessResetState = 128,
150 kSetAnimationZ = 129,
154 kSetPanAndVolume = 133,
155 kSetAnimationPosition = 134,
157 kSetAnimationLoop = 136,
158 kSetAnimationSpeed = 137,
159 kScreenObjectPatchIncRef = 138,
160 kScreenObjectPatchDecRef = 139,
161 kScreenCheckScreenPatch = 140,
162 kGetFreeInventorySpace = 141,
163 kSetStringSystemVariable = 142,
164 kSetSystemIntegerVariable = 143,
165 kGetSavedMouseX = 144,
166 kGetSavedMouseY = 145,
167 kGetRegionCenterX = 146,
168 kGetRegionCenterY = 147,
169 kGetCharacterAnimationPhase = 148,
170 kGetCharacterX = 149,
171 kGetCharacterY = 150,
172 kCompareScreenName = 151,
173 kGetPictureBaseX = 152,
174 kGetPictureBaseY = 153,
175 kGetObjectSurfaceX = 154,
176 kGetObjectSurfaceY = 155,
181 kLoadSaveSlotNamePicture = 160,
182 kGetSaveGameName = 161,
183 kDisableInventory = 162,
184 kEnableInventory = 163,
185 kLoadPreviousScreen = 164,
186 kMoveScreenObject = 165,
187 kSetObjectRegionOffset = 166,
188 kReturnCurrentInventoryObject = 167,
190 kGetIntegerSystemVariable = 169,
192 kGetRandomNumber = 171,
193 kSetSampleVolume = 172,
196 kAppendToSharedStorage = 175,
198 kAppendNameToSharedStorage = 177,
204 kGenerateRegion = 183,
205 kSetObjectTile = 184,
206 kGetMaxInventorySize = 185,
207 kInventoryHasObject = 186,
208 kAppendInventoryObjectNameToSharedSpace = 187,
209 kSetObjectText = 188,
210 kInventoryFindObjectByName = 189,
211 kSetObjectScale = 190,
212 kDisableMouseAreas = 191,
213 kObjectIgnoreRegion = 192,
214 kRemoveGapsFromInventory = 193,
215 kSampleAmbient = 194,
216 kGetObjectPictureWidth = 195,
217 kGetObjectPictureHeight = 196,
222 kSetThrowHandler = 201,
223 kSetUseOnHandler = 202,
227 kModifyMouseArea = 206,
229 kFogOnCharacter = 208,
230 kObjectRegisterUserUseHandler = 209,
233 kSetSampleVolumeAndPan = 212,
235 kAddSampleToSoundGroup = 214,
236 kClearSoundGroup = 215,
239 kSetRainDensity = 218,
240 kLeaveCharacterEx = 219,
241 kStopCharacter = 220,
242 kRestartAnimation = 221,
243 kSignalAnimationEnd = 222,
244 kSetShadowIntensity = 223,
245 kSetNPCTellNotifyVar = 224,
246 kPauseAnimation = 225,
249 kMoveCharacterNoUserMove = 228,
254 kObjectFreePictureAndAnimation = 233,
255 kGetSampleVolume = 234,
258 kAnimationNextFrame = 237,
259 kInventoryHasObjectByName = 238,
265 kSetCharacterNotifyVars = 244,
266 kAttachInventoryObjectToMouse1 = 245,
268 kSetDialogForNextFilm = 247,
271 kCharacterStub253 = 253,
289#define AGDS_OPCODE_LIST(OP, OP_C, OP_B, OP_W, OP_U, OP_UD, OP_UU) \
290 OP_UU(kEnter, enter) \
291 OP_W(kJumpZImm16, jumpz) \
292 OP_W(kJumpImm16, jump) \
293 OP(kPop, popNoResult) \
295 OP(kExitProcess, exitProcess) \
296 OP(kSuspendProcess, suspend) \
297 OP_UD(kPushImm32, push) \
298 OP_C(kPushImm8, push) \
299 OP_W(kPushImm16, push) \
300 OP_C(kPushImm8_2, push2) \
301 OP_W(kPushImm16_2, push2) \
302 OP_B(kGetGlobalImm8, getGlobal) \
303 OP(kPostIncrementGlobal, postIncrementGlobal) \
304 OP(kPostDecrementGlobal, postDecrementGlobal) \
305 OP(kIncrementGlobalByTop, incrementGlobalByTop) \
306 OP(kDecrementGlobalByTop, decrementGlobalByTop) \
307 OP(kMultiplyGlobalByTop, multiplyGlobalByTop) \
308 OP(kDivideGlobalByTop, divideGlobalByTop) \
309 OP(kModGlobalByTop, modGlobalByTop) \
310 OP(kShlGlobalByTop, shlGlobalByTop) \
311 OP(kShrGlobalByTop, shrGlobalByTop) \
312 OP(kAndGlobalByTop, andGlobalByTop) \
313 OP(kOrGlobalByTop, orGlobalByTop) \
314 OP(kXorGlobalByTop, xorGlobalByTop) \
315 OP(kEquals, equals) \
316 OP(kNotEquals, notEquals) \
317 OP(kGreater, greater) \
319 OP(kGreaterOrEquals, greaterOrEquals) \
320 OP(kLessOrEquals, lessOrEquals) \
326 OP(kSetGlobalWithTop, setGlobalWithTop) \
327 OP(kSetGlobal, setGlobal) \
328 OP(kBoolOr, boolOr) \
329 OP(kBoolAnd, boolAnd) \
336 OP(kBoolNot, boolNot) \
337 OP(kNegate, negate) \
338 OP_U(kObjectInitialise, initialise) \
339 OP_U(kObjectRegisterLookHandler, onLook) \
340 OP_U(kObjectRegisterUseHandler, onUse) \
341 OP_U(kObjectRegisterHandlerC1, onObjectC1) \
342 OP_U(kObjectRegisterCharacterTrap, onCharacterTrap) \
343 OP_U(kObjectRegisterHandlerBD, onObjectBD) \
344 OP(kLoadMouseCursorFromObject, loadMouseCursorFromObject) \
345 OP(kLoadRegionFromObject, loadRegionFromObject) \
346 OP(kLoadPictureFromObject, loadPictureFromObject) \
347 OP(kLoadAnimationFromObject, loadAnimationFromObject) \
348 OP(kHideCharacter, hideCharacter) \
349 OP(kShowCharacter, showCharacter) \
350 OP(kEnableCharacter, enableCharacter) \
351 OP(kMoveCharacterUserMove, moveCharacterUserMove) \
352 OP(kLeaveCharacter, leaveCharacter) \
353 OP(kSetCharacter, setCharacter) \
354 OP(kSetCharacterDirection, setCharacterDirection) \
355 OP(kPointCharacter, pointCharacter) \
356 OP(kDisableUser, disableUser) \
357 OP(kEnableUser, enableUser) \
358 OP(kRestartSample, restartSample) \
359 OP(kStopSample, stopSample) \
360 OP(kStub102, stub102) \
361 OP(kClearScreen, clearScreen) \
362 OP(kInventoryClear, inventoryClear) \
363 OP(kLoadMouse, loadMouse) \
364 OP(kResetMousePointer, resetMousePointer) \
365 OP(kInventoryAddObject, inventoryAddObject) \
366 OP(kInventoryRemoveObject, inventoryRemoveObject) \
367 OP_U(kObjectRegisterUseObjectHandler, onObjectUse) \
368 OP(kObjectPatchSetText, objectPatchSetText) \
369 OP(kObjectPatchSetRegionName, objectPatchSetRegionName) \
370 OP(kScreenPatchSetRegionName, screenPatchSetRegionName) \
371 OP(kAnimateCharacter, animateCharacter) \
372 OP(kLoadCharacter, loadCharacter) \
373 OP(kAssociateCharacter, associateCharacter) \
374 OP(kSetObjectZ, setObjectZ) \
375 OP(kSetScreenBackground, setScreenBackground) \
376 OP(kLoadTextFromObject, loadTextFromObject) \
377 OP(kCompareScreenName, compareScreenName) \
378 OP(kScreenSetZNearFar, screenSetZNearFar) \
379 OP(kScreenLoadObject, loadScreenObject) \
380 OP(kScreenLoadRegion, loadScreenRegion) \
381 OP(kScreenCloneObject, cloneObject) \
382 OP(kSetNextScreen, setNextScreen) \
383 OP(kSetNextScreenSaveOrLoad, setNextScreenSaveOrLoad) \
384 OP(kScreenRemoveObject, removeScreenObject) \
385 OP(kLoadAnimation, loadAnimation) \
386 OP(kLoadSample, loadSample) \
387 OP(kSetPhaseVarControlledFlag, setPhaseVarControlledFlag) \
388 OP(kPlayerSay120, playerSay120) \
389 OP(kPlayerSay122, playerSay122) \
390 OP(kPlayerSay125, playerSay125) \
391 OP(kNPCSay, npcSay) \
392 OP(kNPCSayNoSound, npcSayNoSound) \
393 OP(kSetTimer, setTimer) \
394 OP(kProcessResetState, resetState) \
395 OP(kSetAnimationZ, setAnimationZ) \
396 OP(kSetCycles, setCycles) \
397 OP(kSetRandom, setRandom) \
398 OP(kSetPeriodic, setPeriodic) \
399 OP(kSetPanAndVolume, setPanAndVolume) \
400 OP(kSetAnimationPosition, setAnimationPosition) \
401 OP(kSetPhaseVar, setPhaseVar) \
402 OP(kSetAnimationLoop, setAnimationLoop) \
403 OP(kSetAnimationSpeed, setAnimationSpeed) \
404 OP(kScreenObjectPatchIncRef, screenObjectPatchIncRef) \
405 OP(kScreenObjectPatchDecRef, screenObjectPatchDecRef) \
406 OP(kGetSavedMouseX, getSavedMouseX) \
407 OP(kGetSavedMouseY, getSavedMouseY) \
408 OP(kScreenCheckScreenPatch, checkScreenPatch) \
409 OP(kGetFreeInventorySpace, getInventoryFreeSpace) \
410 OP(kSetStringSystemVariable, setStringSystemVariable) \
411 OP(kSetSystemIntegerVariable, setIntegerSystemVariable) \
412 OP(kGetRegionCenterX, getRegionCenterX) \
413 OP(kGetRegionCenterY, getRegionCenterY) \
414 OP(kGetCharacterAnimationPhase, getCharacterAnimationPhase) \
415 OP(kGetCharacterX, getCharacterX) \
416 OP(kGetCharacterY, getCharacterY) \
417 OP(kGetIntegerSystemVariable, getIntegerSystemVariable) \
418 OP(kGetRandomNumber, getRandomNumber) \
419 OP(kAppendToSharedStorage, appendToSharedStorage) \
420 OP(kAppendNameToSharedStorage, appendNameToSharedStorage) \
421 OP(kCloneName, cloneName) \
422 OP(kGetCloneVar, getCloneVar) \
423 OP(kSetCloneVar, setCloneVar) \
424 OP(kGetPictureBaseX, getPictureBaseX) \
425 OP(kGetPictureBaseY, getPictureBaseY) \
426 OP(kGetObjectSurfaceX, getObjectSurfaceX) \
427 OP(kGetObjectSurfaceY, getObjectSurfaceY) \
428 OP(kLoadGame, loadGame) \
429 OP(kSaveGame, saveGame) \
430 OP(kLoadSaveSlotNamePicture, loadSaveSlotNamePicture) \
431 OP(kGetSaveGameName, getSaveGameName) \
432 OP(kSetObjectRegionOffset, setObjectRegionOffset) \
433 OP(kSetDelay, setDelay) \
434 OP(kSetSampleVolume, setSampleVolume) \
435 OP(kStub173, stub173) \
436 OP(kStub174, stub174) \
437 OP(kObjectIgnoreRegion, objectIgnoreRegion) \
439 OP(kStartNewGame, startNewGame) \
440 OP(kDisableInventory, disableInventory) \
441 OP(kEnableInventory, enableInventory) \
442 OP(kLoadPreviousScreen, loadPreviousScreen) \
443 OP(kMoveScreenObject, moveScreenObject) \
444 OP(kGetObjectId, getObjectId) \
445 OP(kSetTileSize, setTileSize) \
446 OP(kGenerateRegion, generateRegion) \
447 OP(kGetMaxInventorySize, getMaxInventorySize) \
448 OP(kAppendInventoryObjectNameToSharedSpace, appendInventoryObjectNameToSharedSpace) \
449 OP(kSetObjectTile, setObjectTile) \
450 OP(kInventoryHasObject, inventoryHasObject) \
451 OP(kReturnCurrentInventoryObject, returnCurrentInventoryObject) \
452 OP(kSetObjectText, setObjectText) \
453 OP(kSetObjectScale, setObjectScale) \
454 OP(kDisableMouseAreas, disableMouseAreas) \
455 OP(kRemoveGapsFromInventory, removeGapsFromInventory) \
456 OP(kSampleAmbient, sampleAmbient) \
457 OP(kGetObjectPictureWidth, getObjectPictureWidth) \
458 OP(kGetObjectPictureHeight, getObjectPictureHeight) \
459 OP(kLoadPicture, loadPicture) \
460 OP(kSetRotation, setRotation) \
461 OP(kStub199, stub199) \
462 OP(kSetSampleVolumeAndPan, setSampleVolumeAndPan) \
463 OP(kAddSampleToSoundGroup, addSampleToSoundGroup) \
464 OP(kClearSoundGroup, clearSoundGroup) \
465 OP(kStub216, stub216) \
466 OP(kStub217, stub217) \
467 OP(kStopCharacter, stopCharacter) \
468 OP(kLeaveCharacterEx, leaveCharacterEx) \
469 OP(kRestartAnimation, restartAnimation) \
470 OP(kAnimationNextFrame, animationNextFrame) \
471 OP(kSignalAnimationEnd, signalAnimationEnd) \
472 OP(kSetShadowIntensity, setShadowIntensity) \
473 OP(kSetNPCTellNotifyVar, setNPCTellNotifyVar) \
474 OP(kPauseAnimation, pauseAnimation) \
475 OP(kFadeObject, fadeObject) \
476 OP(kLoadFont, loadFont) \
477 OP_U(kSetThrowHandler, setThrowHandler) \
478 OP_U(kSetUseOnHandler, setUseOnHandler) \
479 OP(kPlayFilm, playFilm) \
480 OP(kAddMouseArea, addMouseArea) \
481 OP(kSetRain, setRain) \
482 OP(kSetRainDensity, setRainDensity) \
483 OP(kFogOnCharacter, fogOnCharacter) \
484 OP(kSetTileIndex, setTileIndex) \
485 OP(kModifyMouseArea, modifyMouseArea) \
486 OP_U(kObjectRegisterUserUseHandler, onObjectUserUse) \
487 OP(kMoveCharacterNoUserMove, moveCharacterNoUserMove) \
488 OP_U(kOnKey, onKey) \
489 OP(kGetSampleVolume, getSampleVolume) \
490 OP(kStub231, stub231) \
491 OP(kObjectFreePictureAndAnimation, objectFreePictureAndAnimation) \
492 OP(kFadeScreen, fadeScreen) \
493 OP(kUserEnabled, userEnabled) \
494 OP(kSetCharacterNotifyVars, setCharacterNotifyVars) \
495 OP(kInventoryFindObjectByName, inventoryFindObjectByName) \
496 OP(kInventoryHasObjectByName, inventoryHasObjectByName) \
497 OP(kLoadDialog, loadDialog) \
498 OP(kStub241, stub241) \
499 OP(kHasGlobal, hasGlobal) \
500 OP(kAttachInventoryObjectToMouse0, attachInventoryObjectToMouse0) \
501 OP(kAttachInventoryObjectToMouse1, attachInventoryObjectToMouse1) \
502 OP(kSetDialogForNextFilm, setDialogForNextFilm) \
503 OP(kCharacterStub253, characterStub253) \
504 OP(kStub251, stub251) \
505 OP(kStub257, stub257) \
506 OP(kStub258, stub258) \
507 OP(kStub264, stub264) \
508 OP(kStub265, stub265) \
509 OP(kStub266, stub266) \
510 OP(kStub267, stub267) \
511 OP(kStub275, stub275) \
512 OP(kStub276, stub276) \
513 OP(kSetCamera, setCamera) \
514 OP(kSetFog, setFog) \
515 OP(kStub278, stub278) \
516 OP(kStub279, stub279) \
517 OP(kStub280, stub280) \
518 OP(kStub284, stub284) \
519 OP(kStub291, stub291) \
520 OP(kStub292, stub292)