diff options
| -rw-r--r-- | engines/agi/agi.h | 12 | ||||
| -rw-r--r-- | engines/agi/cycle.cpp | 18 |
2 files changed, 29 insertions, 1 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h index b63095f9fd..0f792b37fe 100644 --- a/engines/agi/agi.h +++ b/engines/agi/agi.h @@ -266,6 +266,18 @@ enum AgiMonitorType { }; /** + * Different computer types. + * Used with AGI variable 20 i.e. vComputer. + * FIXME? As an exception Amiga's Space Quest I (Version 1.2, AGI 2.082) uses value 20. + */ +enum AgiComputerType { + kAgiComputerPC = 0, + kAgiComputerAtariST = 4, + kAgiComputerAmiga = 5, + kAgiComputerApple2GS = 7 +}; + +/** * AGI flags */ enum { diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp index a517b8d847..6953635ee1 100644 --- a/engines/agi/cycle.cpp +++ b/engines/agi/cycle.cpp @@ -365,7 +365,23 @@ int AgiEngine::runGame() { if (ec == errRestartGame) setflag(fRestartGame, true); - setvar(vComputer, 0); /* IBM PC (4 = Atari ST) */ + // Set computer type (v20 i.e. vComputer) + switch (getPlatform()) { + case Common::kPlatformAtariST: + setvar(vComputer, kAgiComputerAtariST); + break; + case Common::kPlatformAmiga: + setvar(vComputer, kAgiComputerAmiga); + break; + case Common::kPlatformApple2GS: + setvar(vComputer, kAgiComputerApple2GS); + break; + case Common::kPlatformPC: + default: + setvar(vComputer, kAgiComputerPC); + break; + } + setvar(vSoundgen, 1); /* IBM PC SOUND */ // Set monitor type (v26 i.e. vMonitor) |
