[Scummvm-git-logs] scummvm master -> 5ff4764442b3829e2664e35f211a6c78c49ae11e
Joefish
joewinzer at googlemail.com
Wed Feb 6 11:45:42 CET 2019
This automated email contains information about 14 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
480d6c60b8 SUPERNOVA: Adds 'Image' prefix for ImageId constants
d1fb1d45e8 SUPERNOVA: Adds missing image id
1e62c55338 SUPERNOVA: Moves function definitions from rooms.h
c20b960d80 SUPERNOVA: Adds renderImage overload for ImageId
ebaa6739ec SUPERNOVA: Adds Outro image
437b1c0003 SUPERNOVA: Updates NOTES
bd298f3b3d SUPERNOVA: Removes GameManager dependency for Screen
536630aece SUPERNOVA: Removes invalid ImageId entry
641a4307f2 SUPERNOVA: Uses setCurrentImage in renderImage
21c9c885ba SUPERNOVA: Stops time and animations when reading the newspaper
1d00e625cf SUPERNOVA: Fixing header file includes
ff36f94c1f SUPERNOVA: Adds missing initializations
498de6347e SUPERNOVA: Fixes OOB read
5ff4764442 SUPERNOVA: Fixes possible OOB read
Commit: 480d6c60b86c13b7995ec9251e7e3de24270c81a
https://github.com/scummvm/scummvm/commit/480d6c60b86c13b7995ec9251e7e3de24270c81a
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:10+01:00
Commit Message:
SUPERNOVA: Adds 'Image' prefix for ImageId constants
Changed paths:
engines/supernova/imageid.h
diff --git a/engines/supernova/imageid.h b/engines/supernova/imageid.h
index 7cfa083..e5860f7 100644
--- a/engines/supernova/imageid.h
+++ b/engines/supernova/imageid.h
@@ -27,626 +27,626 @@ namespace Supernova {
enum ImageId {
// file 0
- kAxacussanShipBackground,
- kAxacussanShipCenterMouthOpen,
- kAxacussanShipRightMouthOpen,
+ kImageAxacussanShipBackground,
+ kImageAxacussanShipCenterMouthOpen,
+ kImageAxacussanShipRightMouthOpen,
// file 1
- kNewspaper1,
+ kImageNewspaper1,
// file 2
- kNewspaper2,
+ kImageNewspaper2,
// file 3
- kElevatorBackground,
- kElevatorGreenButton,
- kElevatorRedButton,
- kElevatorDoorAnimation1,
- kElevatorDoorAnimation2,
- kElevatorDoorAnimation3,
- kElevatorDoorAnimation4,
- kElevatorDoorAnimation5,
- kElevatorDummy1,
- kElevatorDummy2,
- kElevatorDummy3,
- kElevatorDummy4,
+ kImageElevatorBackground,
+ kImageElevatorGreenButton,
+ kImageElevatorRedButton,
+ kImageElevatorDoorAnimation1,
+ kImageElevatorDoorAnimation2,
+ kImageElevatorDoorAnimation3,
+ kImageElevatorDoorAnimation4,
+ kImageElevatorDoorAnimation5,
+ kImageElevatorDummy1,
+ kImageElevatorDummy2,
+ kImageElevatorDummy3,
+ kImageElevatorDummy4,
// file 4
- kShipSpaceBackground,
- kShipSpaceRope,
- kShipSpaceDummy1,
- kShipSpaceDummy2,
+ kImageShipSpaceBackground,
+ kImageShipSpaceRope,
+ kImageShipSpaceDummy1,
+ kImageShipSpaceDummy2,
// file 5
- kBusStationBackground,
- kBusStationArrived,
- kBusStationPlantAnimation1,
- kBusStationPlantAnimation2,
- kBusStationPlantAnimation3,
- kBusStationPlantAnimation4,
- kBusStationPlantAnimation5,
- kBusStationPlantAnimation6,
- kBusStationPlantAnimation7,
- kBusStationDoorOpened,
+ kImageBusStationBackground,
+ kImageBusStationArrived,
+ kImageBusStationPlantAnimation1,
+ kImageBusStationPlantAnimation2,
+ kImageBusStationPlantAnimation3,
+ kImageBusStationPlantAnimation4,
+ kImageBusStationPlantAnimation5,
+ kImageBusStationPlantAnimation6,
+ kImageBusStationPlantAnimation7,
+ kImageBusStationDoorOpened,
// file 6
- kOfficesBackground,
- kOfficesDoorOpenTopLeft,
- kOfficesDoorOpenBottomLeft,
- kOfficesDoorOpenTopRight,
- kOfficesDoorOpenBottomRight,
- kOfficesAlienCorridorAnimation1,
- kOfficesAlienCorridorAnimation2,
- kOfficesAlienCorridorAnimation3,
- kOfficesAlienCorridorAnimation4,
- kOfficesAlienCorridorAnimation5,
- kOfficesAlienCorridorAnimation6,
- kOfficesAlienTopOfficeAnimation1,
- kOfficesAlienTopOfficeAnimation2,
- kOfficesAlienTopOfficeAnimation3,
- kOfficesAlienTopOfficeAnimation4,
- kOfficesAlienTopOfficeAnimation5,
- kOfficesAlienBottomOfficeAnimation1,
- kOfficesAlienBottomOfficeAnimation2,
- kOfficesAlienBottomOfficeAnimation3,
- kOfficesAlienBottomOfficeAnimation4,
- kOfficesAlienBottomOfficeAnimation5,
- kOfficesAlienBottom,
+ kImageOfficesBackground,
+ kImageOfficesDoorOpenTopLeft,
+ kImageOfficesDoorOpenBottomLeft,
+ kImageOfficesDoorOpenTopRight,
+ kImageOfficesDoorOpenBottomRight,
+ kImageOfficesAlienCorridorAnimation1,
+ kImageOfficesAlienCorridorAnimation2,
+ kImageOfficesAlienCorridorAnimation3,
+ kImageOfficesAlienCorridorAnimation4,
+ kImageOfficesAlienCorridorAnimation5,
+ kImageOfficesAlienCorridorAnimation6,
+ kImageOfficesAlienTopOfficeAnimation1,
+ kImageOfficesAlienTopOfficeAnimation2,
+ kImageOfficesAlienTopOfficeAnimation3,
+ kImageOfficesAlienTopOfficeAnimation4,
+ kImageOfficesAlienTopOfficeAnimation5,
+ kImageOfficesAlienBottomOfficeAnimation1,
+ kImageOfficesAlienBottomOfficeAnimation2,
+ kImageOfficesAlienBottomOfficeAnimation3,
+ kImageOfficesAlienBottomOfficeAnimation4,
+ kImageOfficesAlienBottomOfficeAnimation5,
+ kImageOfficesAlienBottom,
// file 7
- kOfficeLeftBackground,
- kOfficeLeftDecoration,
- kOfficeLeftMemo,
- kOfficeLeftGraffiti,
- kOfficeLeftTerminalSmashed,
- kOfficeLeftDrawerMoney,
- kOfficeLeftSafeOpen,
- kOfficeLeftSafeClosed,
- kOfficeLeftSafeMoney,
- kOfficeLeftDoorOpen,
- kOfficeLeftAlienShootAnimation1,
- kOfficeLeftAlienShootAnimation2,
- kOfficeLeftAlienShootAnimation3,
- kOfficeLeftAlienShootAnimation4,
- kOfficeLeftAlienShootAnimation5,
- kOfficeLeftAlienShootAnimation6,
- kOfficeLeftTerminalText,
- kOfficeLeftDoorClosed,
- kOfficeLeftDummy1,
- kOfficeLeftDummy2,
- kOfficeLeftDummy3,
- kOfficeLeftDummy4,
- kOfficeLeftDummy5,
+ kImageOfficeLeftBackground,
+ kImageOfficeLeftDecoration,
+ kImageOfficeLeftMemo,
+ kImageOfficeLeftGraffiti,
+ kImageOfficeLeftTerminalSmashed,
+ kImageOfficeLeftDrawerMoney,
+ kImageOfficeLeftSafeOpen,
+ kImageOfficeLeftSafeClosed,
+ kImageOfficeLeftSafeMoney,
+ kImageOfficeLeftDoorOpen,
+ kImageOfficeLeftAlienShootAnimation1,
+ kImageOfficeLeftAlienShootAnimation2,
+ kImageOfficeLeftAlienShootAnimation3,
+ kImageOfficeLeftAlienShootAnimation4,
+ kImageOfficeLeftAlienShootAnimation5,
+ kImageOfficeLeftAlienShootAnimation6,
+ kImageOfficeLeftTerminalText,
+ kImageOfficeLeftDoorClosed,
+ kImageOfficeLeftDummy1,
+ kImageOfficeLeftDummy2,
+ kImageOfficeLeftDummy3,
+ kImageOfficeLeftDummy4,
+ kImageOfficeLeftDummy5,
// file 8
- kOfficeRightBackground,
- kOfficeRightDecorationPictures,
- kOfficeRightDecorationPlants,
- kOfficeRightDoorOpen,
- kOfficeRightTerminalSmashed,
- kOfficeRightAlienShootAnimation1,
- kOfficeRightAlienShootAnimation2,
- kOfficeRightAlienShootAnimation3,
- kOfficeRightAlienTalking,
- kOfficeRightDummy1,
- kOfficeRightDummy2,
- kOfficeRightDummy3,
- kOfficeRightDummy4,
+ kImageOfficeRightBackground,
+ kImageOfficeRightDecorationPictures,
+ kImageOfficeRightDecorationPlants,
+ kImageOfficeRightDoorOpen,
+ kImageOfficeRightTerminalSmashed,
+ kImageOfficeRightAlienShootAnimation1,
+ kImageOfficeRightAlienShootAnimation2,
+ kImageOfficeRightAlienShootAnimation3,
+ kImageOfficeRightAlienTalking,
+ kImageOfficeRightDummy1,
+ kImageOfficeRightDummy2,
+ kImageOfficeRightDummy3,
+ kImageOfficeRightDummy4,
// file 9
- kShipCockpitBackground,
- kShipCockpitPilotAnimation1,
- kShipCockpitPilotAnimation2,
- kShipCockpitPilotAnimation3,
- kShipCockpitPilotAnimation4,
- kShipCockpitPilotAnimation5,
- kShipCockpitPilotAnimation6,
- kShipCockpitPilotAnimation7,
- kShipCockpitPilotAnimation8,
- kShipCockpitPilotAnimation9,
- kShipCockpitPilotAnimation10,
- kShipCockpitPilotAnimation11,
- kShipCockpitPilotAnimation12,
- kShipCockpitPilotAnimation13,
- kShipCockpitPilotAnimation14,
- kShipCockpitPilotAnimation15,
- kShipCockpitPilotAnimation16,
- kShipCockpitPilotAnimation17,
- kShipCockpitPilotAnimation18,
- kShipCockpitPilotAnimation19,
- kShipCockpitPilotAnimation20,
- kShipCockpitDisplayStatusAnimation1,
- kShipCockpitDisplayStatusAnimation2,
- kShipCockpitWindowRocks,
+ kImageShipCockpitBackground,
+ kImageShipCockpitPilotAnimation1,
+ kImageShipCockpitPilotAnimation2,
+ kImageShipCockpitPilotAnimation3,
+ kImageShipCockpitPilotAnimation4,
+ kImageShipCockpitPilotAnimation5,
+ kImageShipCockpitPilotAnimation6,
+ kImageShipCockpitPilotAnimation7,
+ kImageShipCockpitPilotAnimation8,
+ kImageShipCockpitPilotAnimation9,
+ kImageShipCockpitPilotAnimation10,
+ kImageShipCockpitPilotAnimation11,
+ kImageShipCockpitPilotAnimation12,
+ kImageShipCockpitPilotAnimation13,
+ kImageShipCockpitPilotAnimation14,
+ kImageShipCockpitPilotAnimation15,
+ kImageShipCockpitPilotAnimation16,
+ kImageShipCockpitPilotAnimation17,
+ kImageShipCockpitPilotAnimation18,
+ kImageShipCockpitPilotAnimation19,
+ kImageShipCockpitPilotAnimation20,
+ kImageShipCockpitDisplayStatusAnimation1,
+ kImageShipCockpitDisplayStatusAnimation2,
+ kImageShipCockpitWindowRocks,
// file 10
- kRestaurantEntranceBackground,
- kRestaurantEntrancePorterAnimation1,
- kRestaurantEntrancePorterAnimation2,
- kRestaurantEntrancePorterAnimation3,
- kRestaurantEntrancePorterAnimation4,
- kRestaurantEntranceBathroomDoorAnimation1,
- kRestaurantEntranceBathroomDoorAnimation2,
- kRestaurantEntranceBathroomDoorAnimation3,
- kRestaurantEntranceBathroomDoorAnimation4,
- kRestaurantEntranceBathroomDoorAnimation5,
- kRestaurantEntranceGreenCandy,
- kRestaurantEntranceBlueCandy,
- kRestaurantEntrancePinkCandy,
- kRestaurantEntranceWhiteCandy,
- kRestaurantEntranceBlackCandy,
- kRestaurantEntraceDummy1,
- kRestaurantEntraceDummy2,
+ kImageRestaurantEntranceBackground,
+ kImageRestaurantEntrancePorterAnimation1,
+ kImageRestaurantEntrancePorterAnimation2,
+ kImageRestaurantEntrancePorterAnimation3,
+ kImageRestaurantEntrancePorterAnimation4,
+ kImageRestaurantEntranceBathroomDoorAnimation1,
+ kImageRestaurantEntranceBathroomDoorAnimation2,
+ kImageRestaurantEntranceBathroomDoorAnimation3,
+ kImageRestaurantEntranceBathroomDoorAnimation4,
+ kImageRestaurantEntranceBathroomDoorAnimation5,
+ kImageRestaurantEntranceGreenCandy,
+ kImageRestaurantEntranceBlueCandy,
+ kImageRestaurantEntrancePinkCandy,
+ kImageRestaurantEntranceWhiteCandy,
+ kImageRestaurantEntranceBlackCandy,
+ kImageRestaurantEntraceDummy1,
+ kImageRestaurantEntraceDummy2,
// file 11
- kDeathScreen,
+ kImageDeathScreen,
// file 12
- kRocksBackground,
- kRocksRockAnimation1,
- kRocksRockAnimation2,
- kRocksRockAnimation3,
+ kImageRocksBackground,
+ kImageRocksRockAnimation1,
+ kImageRocksRockAnimation2,
+ kImageRocksRockAnimation3,
// file 13
- kBluePlanetBackground,
- kBluePlanetShipAnimation1,
- kBluePlanetShipAnimation2,
- kBluePlanetShipAnimation3,
- kBluePlanetShipAnimation4,
- kBluePlanetShipAnimation5,
- kBluePlanetShipAnimation6,
- kBluePlanetShipAnimation7,
- kBluePlanetShipAnimation8,
- kBluePlanetShipAnimation9,
- kBluePlanetShipAnimation10,
- kBluePlanetShipAnimation11,
- kBluePlanetShipAnimation12,
- kBluePlanetShipAnimation13,
+ kImageBluePlanetBackground,
+ kImageBluePlanetShipAnimation1,
+ kImageBluePlanetShipAnimation2,
+ kImageBluePlanetShipAnimation3,
+ kImageBluePlanetShipAnimation4,
+ kImageBluePlanetShipAnimation5,
+ kImageBluePlanetShipAnimation6,
+ kImageBluePlanetShipAnimation7,
+ kImageBluePlanetShipAnimation8,
+ kImageBluePlanetShipAnimation9,
+ kImageBluePlanetShipAnimation10,
+ kImageBluePlanetShipAnimation11,
+ kImageBluePlanetShipAnimation12,
+ kImageBluePlanetShipAnimation13,
// file 14
- kRogerCrashBackground,
- kRogerCrashAnimation1,
- kRogerCrashAnimation2,
- kRogerCrashAnimation3,
- kRogerCrashAnimation4,
- kRogerCrashAnimation5,
- kRogerCrashAnimation6,
- kRogerCrashAnimation7,
- kRogerCrashAnimation8,
- kRogerCrashAnimation9,
- kRogerCrashAnimation10,
- kRogerCrashAnimation11,
- kRogerCrashAnimation12,
- kRogerCrashAnimation13,
- kRogerCrashAnimation14,
- kRogerCrashAnimation15,
- kRogerCrashAnimation16,
- kRogerCrashAnimation17,
- kRogerCrashAnimation18,
- kRogerCrashAnimation19,
+ kImageRogerCrashBackground,
+ kImageRogerCrashAnimation1,
+ kImageRogerCrashAnimation2,
+ kImageRogerCrashAnimation3,
+ kImageRogerCrashAnimation4,
+ kImageRogerCrashAnimation5,
+ kImageRogerCrashAnimation6,
+ kImageRogerCrashAnimation7,
+ kImageRogerCrashAnimation8,
+ kImageRogerCrashAnimation9,
+ kImageRogerCrashAnimation10,
+ kImageRogerCrashAnimation11,
+ kImageRogerCrashAnimation12,
+ kImageRogerCrashAnimation13,
+ kImageRogerCrashAnimation14,
+ kImageRogerCrashAnimation15,
+ kImageRogerCrashAnimation16,
+ kImageRogerCrashAnimation17,
+ kImageRogerCrashAnimation18,
+ kImageRogerCrashAnimation19,
// file 15
- kShipCorridorBackground,
- kShipCorridorCockpitDoorOpen,
- kShipCorridorSleepCabinDoorAnimation1,
- kShipCorridorSleepCabinDoorAnimation2,
- kShipCorridorSleepCabinDoorAnimation3,
- kShipCorridorDummy1,
+ kImageShipCorridorBackground,
+ kImageShipCorridorCockpitDoorOpen,
+ kImageShipCorridorSleepCabinDoorAnimation1,
+ kImageShipCorridorSleepCabinDoorAnimation2,
+ kImageShipCorridorSleepCabinDoorAnimation3,
+ kImageShipCorridorDummy1,
// file 16
- kAxacussCorridorTileWalled,
- kAxacussCorridorToLeft,
- kAxacussCorridorToRight,
- kAxacussCorridorToTop,
- kAxacussCorridorToBottom,
- kAxacussCorridorTile,
- kAxacussCorridorDoorClosed,
- kAxacussCorridorDoorOpen,
- kAxacussCorridorDesk,
- kAxacussCorridorLaptop,
- kAxacussCorridorStuff10,
- kAxacussCorridorStuff11,
- kAxacussCorridorStuff12,
- kAxacussCorridorStuff13,
- kAxacussCorridorStuff14,
- kAxacussCorridorStuff15,
- kAxacussCorridorStuff16,
- kAxacussCorridorStuff17,
- kAxacussCorridorStuff18,
- kAxacussCorridorStuff19,
- kAxacussCorridorStuff21,
- kAxacussCorridorStuff22,
- kAxacussCorridorStuff23,
- kAxacussCorridorStuff24,
- kAxacussCorridorStuff25,
- kAxacussCorridorStuff26,
- kAxacussCorridorStuff27,
- kAxacussCorridorStuff28,
- kAxacussCorridorAlarmStatus,
- kAxacussCorridorAlienRight,
- kAxacussCorridorAlienLeft,
- kAxacussCorridorAlienBottom,
- kAxacussCorridorAlienTop,
- kAxacussCorridorDummy1,
+ kImageAxacussCorridorTileWalled,
+ kImageAxacussCorridorToLeft,
+ kImageAxacussCorridorToRight,
+ kImageAxacussCorridorToTop,
+ kImageAxacussCorridorToBottom,
+ kImageAxacussCorridorTile,
+ kImageAxacussCorridorDoorClosed,
+ kImageAxacussCorridorDoorOpen,
+ kImageAxacussCorridorDesk,
+ kImageAxacussCorridorLaptop,
+ kImageAxacussCorridorStuff10,
+ kImageAxacussCorridorStuff11,
+ kImageAxacussCorridorStuff12,
+ kImageAxacussCorridorStuff13,
+ kImageAxacussCorridorStuff14,
+ kImageAxacussCorridorStuff15,
+ kImageAxacussCorridorStuff16,
+ kImageAxacussCorridorStuff17,
+ kImageAxacussCorridorStuff18,
+ kImageAxacussCorridorStuff19,
+ kImageAxacussCorridorStuff21,
+ kImageAxacussCorridorStuff22,
+ kImageAxacussCorridorStuff23,
+ kImageAxacussCorridorStuff24,
+ kImageAxacussCorridorStuff25,
+ kImageAxacussCorridorStuff26,
+ kImageAxacussCorridorStuff27,
+ kImageAxacussCorridorStuff28,
+ kImageAxacussCorridorAlarmStatus,
+ kImageAxacussCorridorAlienRight,
+ kImageAxacussCorridorAlienLeft,
+ kImageAxacussCorridorAlienBottom,
+ kImageAxacussCorridorAlienTop,
+ kImageAxacussCorridorDummy1,
// file 17
- kShipCorridorCabinBackground,
- kShipCorridorCabinL1Open,
- kShipCorridorCabinL2Open,
- kShipCorridorCabinL3Open,
- kShipCorridorCabinR1Open,
- kShipCorridorCabinR2Open,
- kShipCorridorCabinR3Open,
- kShipCorridorCabinAirlockDoorAnimation1,
- kShipCorridorCabinAirlockDoorAnimation2,
- kShipCorridorCabinAirlockDoorAnimation3,
- kShipCorridorCabinDummy1,
- kShipCorridorCabinDummy2,
- kShipCorridorCabinDummy3,
- kShipCorridorCabinDummy4,
- kShipCorridorCabinDummy5,
- kShipCorridorCabinDummy6,
+ kImageShipCorridorCabinBackground,
+ kImageShipCorridorCabinL1Open,
+ kImageShipCorridorCabinL2Open,
+ kImageShipCorridorCabinL3Open,
+ kImageShipCorridorCabinR1Open,
+ kImageShipCorridorCabinR2Open,
+ kImageShipCorridorCabinR3Open,
+ kImageShipCorridorCabinAirlockDoorAnimation1,
+ kImageShipCorridorCabinAirlockDoorAnimation2,
+ kImageShipCorridorCabinAirlockDoorAnimation3,
+ kImageShipCorridorCabinDummy1,
+ kImageShipCorridorCabinDummy2,
+ kImageShipCorridorCabinDummy3,
+ kImageShipCorridorCabinDummy4,
+ kImageShipCorridorCabinDummy5,
+ kImageShipCorridorCabinDummy6,
// file 18
- kShipGeneratorBackground,
- kShipGeneratorHatchOpen,
- kShipGeneratorJunctionBoxOpen,
- kShipGeneratorJunctionBoxOffline,
- kShipGeneratorJunctionBoxDisplay,
- kShipGeneratorKeycard,
- kShipGeneratorSpoolFloating,
- kShipGeneratorSpoolOnGround,
- kShipGeneratorCableUnplugged,
- kShipGeneratorCablePluggedIn,
- kShipGeneratorHatchRocks,
- kShipGeneratorRopeRocks,
- kShipGeneratorRopeSpace,
- kShipGeneratorRopeFloor,
- kShipGeneratorDummy1,
- kShipGeneratorDummy2,
- kShipGeneratorDummy3,
- kShipGeneratorDummy4,
- kShipGeneratorDummy5,
- kShipGeneratorDummy6,
- kShipGeneratorDummy7,
- kShipGeneratorDummy8,
+ kImageShipGeneratorBackground,
+ kImageShipGeneratorHatchOpen,
+ kImageShipGeneratorJunctionBoxOpen,
+ kImageShipGeneratorJunctionBoxOffline,
+ kImageShipGeneratorJunctionBoxDisplay,
+ kImageShipGeneratorKeycard,
+ kImageShipGeneratorSpoolFloating,
+ kImageShipGeneratorSpoolOnGround,
+ kImageShipGeneratorCableUnplugged,
+ kImageShipGeneratorCablePluggedIn,
+ kImageShipGeneratorHatchRocks,
+ kImageShipGeneratorRopeRocks,
+ kImageShipGeneratorRopeSpace,
+ kImageShipGeneratorRopeFloor,
+ kImageShipGeneratorDummy1,
+ kImageShipGeneratorDummy2,
+ kImageShipGeneratorDummy3,
+ kImageShipGeneratorDummy4,
+ kImageShipGeneratorDummy5,
+ kImageShipGeneratorDummy6,
+ kImageShipGeneratorDummy7,
+ kImageShipGeneratorDummy8,
// file 19
- kRogerShipBackground,
- kRogerShipButtonPressed1,
- kRogerShipButtonPressed2,
- kRogerShipButtonPressed3,
- kRogerShipButtonPressed4,
- kRogerShipCardInSlot,
- kRogerShipCompartmentOpen,
- kRogerShipUnknown7,
- kRogerShipDisplayLeftOn,
- kRogerShipGreenDisplayAnimation1,
- kRogerShipGreenDisplayAnimation2,
- kRogerShipGreenDisplayAnimation3,
- kRogerShipGreenDisplayAnimation4,
- kRogerShipGreenDisplayAnimation5,
- kRogerShipGreenDisplayAnimation6,
- kRogerShipGreenDisplayAnimation7,
- kRogerShipBlueDisplayAnimation1,
- kRogerShipBlueDisplayAnimation2,
- kRogerShipBlueDisplayAnimation3,
- kRogerShipBlueDisplayAnimation4,
- kRogerShipBlueDisplayAnimation5,
- kRogerShipBlueDisplayAnimation6,
- kRogerShipBlueDisplayAnimation7,
- kRogerShipUnknown23,
- kRogerShipDisplaySinewaveAnimation1,
- kRogerShipDisplaySinewaveAnimation2,
- kRogerShipDisplaySinewaveAnimation3,
- kRogerShipDisplaySinewaveAnimation4,
- kRogerShipDisplaySinewaveAnimation5,
- kRogerShipDisplaySinewaveAnimation6,
- kRogerShipDisplaySinewaveAnimation7,
- kRogerShipDisplaySinewaveAnimation8,
- kRogerShipDisplaySinewaveAnimation9,
- kRogerShipDisplaySinewaveAnimation10,
- kRogerShipDisplaySinewaveAnimation11,
- kRogerShipDisplaySinewaveAnimation12,
- kRogerShipDisplaySinewaveAnimation13,
- kRogerShipDisplaySinewaveAnimation14,
- kRogerShipCompartmentContent,
- kRogerShipDummy1,
- kRogerShipDummy2,
+ kImageRogerShipBackground,
+ kImageRogerShipButtonPressed1,
+ kImageRogerShipButtonPressed2,
+ kImageRogerShipButtonPressed3,
+ kImageRogerShipButtonPressed4,
+ kImageRogerShipCardInSlot,
+ kImageRogerShipCompartmentOpen,
+ kImageRogerShipUnknown7,
+ kImageRogerShipDisplayLeftOn,
+ kImageRogerShipGreenDisplayAnimation1,
+ kImageRogerShipGreenDisplayAnimation2,
+ kImageRogerShipGreenDisplayAnimation3,
+ kImageRogerShipGreenDisplayAnimation4,
+ kImageRogerShipGreenDisplayAnimation5,
+ kImageRogerShipGreenDisplayAnimation6,
+ kImageRogerShipGreenDisplayAnimation7,
+ kImageRogerShipBlueDisplayAnimation1,
+ kImageRogerShipBlueDisplayAnimation2,
+ kImageRogerShipBlueDisplayAnimation3,
+ kImageRogerShipBlueDisplayAnimation4,
+ kImageRogerShipBlueDisplayAnimation5,
+ kImageRogerShipBlueDisplayAnimation6,
+ kImageRogerShipBlueDisplayAnimation7,
+ kImageRogerShipUnknown23,
+ kImageRogerShipDisplaySinewaveAnimation1,
+ kImageRogerShipDisplaySinewaveAnimation2,
+ kImageRogerShipDisplaySinewaveAnimation3,
+ kImageRogerShipDisplaySinewaveAnimation4,
+ kImageRogerShipDisplaySinewaveAnimation5,
+ kImageRogerShipDisplaySinewaveAnimation6,
+ kImageRogerShipDisplaySinewaveAnimation7,
+ kImageRogerShipDisplaySinewaveAnimation8,
+ kImageRogerShipDisplaySinewaveAnimation9,
+ kImageRogerShipDisplaySinewaveAnimation10,
+ kImageRogerShipDisplaySinewaveAnimation11,
+ kImageRogerShipDisplaySinewaveAnimation12,
+ kImageRogerShipDisplaySinewaveAnimation13,
+ kImageRogerShipDisplaySinewaveAnimation14,
+ kImageRogerShipCompartmentContent,
+ kImageRogerShipDummy1,
+ kImageRogerShipDummy2,
// file 20
- kHelpScreen,
+ kImageHelpScreen,
// file 21
- kShipCabinLeftBackground,
- kShipCabinLeftPaintingSunset,
- kShipCabinLeftPaintingLandscape,
- kShipCabinLeftPaintingAbstract,
- kShipCabinLeftTableStuff1,
- kShipCabinLeftCeilingPencil,
- kShipCabinLeft3Decoration,
- kShipCabinLeftSocketPluggedIn,
- kShipCabinLeftVinyl,
- kShipCabinLeftTurntable,
- kShipCabinLeftSocketUnplugged,
- kShipCabinLeftTurntableCableCut,
- kShipCabinLeftTurntableCable,
- kShipCabinLeftTurntableAnimation1,
- kShipCabinLeftTurntableAnimation2,
- kShipCabinLeftTurntableAnimation3,
- kShipCabinLeftTableStuff2,
- kShipCabinLeftLockerOpen,
- kShipCabinLeftLockerBooksOpen,
- kShipCabinLeftLockerSpoolOpen,
- kShipCabinLeftLockerPistolRemoved,
- kShipCabinLeftLockerSpoolRemoved,
- kShipCabinLeftBedSafeOpen,
- kShipCabinLeftBedSafeEmpty,
- kShipCabinLeftDoorClosed,
- kShipCabinLeftTurntableCableSparks,
- kShipCabinLeftTurntableCableCutEnd,
- kShipCabinLeftDummy1,
- kShipCabinLeftDummy2,
- kShipCabinLeftDummy3,
- kShipCabinLeftDummy4,
- kShipCabinLeftDummy5,
- kShipCabinLeftDummy6,
- kShipCabinLeftDummy7,
- kShipCabinLeftDummy8,
- kShipCabinLeftDummy9,
- kShipCabinLeftDummy10,
- kShipCabinLeftDummy11,
- kShipCabinLeftDummy12,
+ kImageShipCabinLeftBackground,
+ kImageShipCabinLeftPaintingSunset,
+ kImageShipCabinLeftPaintingLandscape,
+ kImageShipCabinLeftPaintingAbstract,
+ kImageShipCabinLeftTableStuff1,
+ kImageShipCabinLeftCeilingPencil,
+ kImageShipCabinLeft3Decoration,
+ kImageShipCabinLeftSocketPluggedIn,
+ kImageShipCabinLeftVinyl,
+ kImageShipCabinLeftTurntable,
+ kImageShipCabinLeftSocketUnplugged,
+ kImageShipCabinLeftTurntableCableCut,
+ kImageShipCabinLeftTurntableCable,
+ kImageShipCabinLeftTurntableAnimation1,
+ kImageShipCabinLeftTurntableAnimation2,
+ kImageShipCabinLeftTurntableAnimation3,
+ kImageShipCabinLeftTableStuff2,
+ kImageShipCabinLeftLockerOpen,
+ kImageShipCabinLeftLockerBooksOpen,
+ kImageShipCabinLeftLockerSpoolOpen,
+ kImageShipCabinLeftLockerPistolRemoved,
+ kImageShipCabinLeftLockerSpoolRemoved,
+ kImageShipCabinLeftBedSafeOpen,
+ kImageShipCabinLeftBedSafeEmpty,
+ kImageShipCabinLeftDoorClosed,
+ kImageShipCabinLeftTurntableCableSparks,
+ kImageShipCabinLeftTurntableCableCutEnd,
+ kImageShipCabinLeftDummy1,
+ kImageShipCabinLeftDummy2,
+ kImageShipCabinLeftDummy3,
+ kImageShipCabinLeftDummy4,
+ kImageShipCabinLeftDummy5,
+ kImageShipCabinLeftDummy6,
+ kImageShipCabinLeftDummy7,
+ kImageShipCabinLeftDummy8,
+ kImageShipCabinLeftDummy9,
+ kImageShipCabinLeftDummy10,
+ kImageShipCabinLeftDummy11,
+ kImageShipCabinLeftDummy12,
// file 22
- kShipCabinRightBackground,
- kShipCabinRightPosterSnowman,
- kShipCabinRightTableStuff,
- kShipCabinRightCeilingChess,
- kShipCabinRightTennisRacket,
- kShipCabinRightTennisBallsFloating,
- kShipCabinRightTennisBallsOnGround,
- kShipCabinRightTableChess,
- kShipCabinRight2Bed,
- kShipCabinRightLockerBooksOpen,
- kShipCabinRightLockerRopeOpen,
- kShipCabinRightLockerOpen,
- kShipCabinRightLockerRopeRemoved,
- kShipCabinRightBedSafeOpen,
- kShipCabinRightBedSafeEmpty,
- kShipCabinRightDoorClosed,
- kShipCabinRightLockerDiscmanRemoved,
- kShipCabinRightDummy1,
- kShipCabinRightDummy2,
+ kImageShipCabinRightBackground,
+ kImageShipCabinRightPosterSnowman,
+ kImageShipCabinRightTableStuff,
+ kImageShipCabinRightCeilingChess,
+ kImageShipCabinRightTennisRacket,
+ kImageShipCabinRightTennisBallsFloating,
+ kImageShipCabinRightTennisBallsOnGround,
+ kImageShipCabinRightTableChess,
+ kImageShipCabinRight2Bed,
+ kImageShipCabinRightLockerBooksOpen,
+ kImageShipCabinRightLockerRopeOpen,
+ kImageShipCabinRightLockerOpen,
+ kImageShipCabinRightLockerRopeRemoved,
+ kImageShipCabinRightBedSafeOpen,
+ kImageShipCabinRightBedSafeEmpty,
+ kImageShipCabinRightDoorClosed,
+ kImageShipCabinRightLockerDiscmanRemoved,
+ kImageShipCabinRightDummy1,
+ kImageShipCabinRightDummy2,
// file 23
- kShipBathroomBackground,
+ kImageShipBathroomBackground,
// file 24
- kShipHoldBackgroundFloating,
- kShipHoldBackgroundOnGround,
- kShipHoldLandingModuleDoorOpen,
- kShipHoldGeneratorHatchOpen,
- kShipHoldLandingModuleSpool,
- kShipHoldCableToGeneratorUnplugged,
- kShipHoldCableToGeneratorPluggedIn,
- kShipHoldDummy1,
- kShipHoldDummy2,
+ kImageShipHoldBackgroundFloating,
+ kImageShipHoldBackgroundOnGround,
+ kImageShipHoldLandingModuleDoorOpen,
+ kImageShipHoldGeneratorHatchOpen,
+ kImageShipHoldLandingModuleSpool,
+ kImageShipHoldCableToGeneratorUnplugged,
+ kImageShipHoldCableToGeneratorPluggedIn,
+ kImageShipHoldDummy1,
+ kImageShipHoldDummy2,
// file 25
- kShipLandingModuleBackground,
- kShipLandingModuleDoorClosed,
- kShipLandingModuleDisplayLeftOn,
- kShipLandingModuleCablePluggedIn,
- kShipLandingModuleCableSpoolConnected,
- kShipLandingModuleCableToHold,
- kShipLandingModuleDisplayRightOn,
- kShipLandingModuleDisplayTop1On,
- kShipLandingModuleDisplayTop2On,
- kShipLandingModuleDisplayTop3On,
- kShipLandingModuleCableWithTerminalStrip,
- kShipLandingModuleDummy1,
- kShipLandingModuleDummy2,
- kShipLandingModuleDummy3,
- kShipLandingModuleDummy4,
- kShipLandingModuleDummy5,
- kShipLandingModuleDummy6,
- kShipLandingModuleDummy7,
- kShipLandingModuleDummy8,
+ kImageShipLandingModuleBackground,
+ kImageShipLandingModuleDoorClosed,
+ kImageShipLandingModuleDisplayLeftOn,
+ kImageShipLandingModuleCablePluggedIn,
+ kImageShipLandingModuleCableSpoolConnected,
+ kImageShipLandingModuleCableToHold,
+ kImageShipLandingModuleDisplayRightOn,
+ kImageShipLandingModuleDisplayTop1On,
+ kImageShipLandingModuleDisplayTop2On,
+ kImageShipLandingModuleDisplayTop3On,
+ kImageShipLandingModuleCableWithTerminalStrip,
+ kImageShipLandingModuleDummy1,
+ kImageShipLandingModuleDummy2,
+ kImageShipLandingModuleDummy3,
+ kImageShipLandingModuleDummy4,
+ kImageShipLandingModuleDummy5,
+ kImageShipLandingModuleDummy6,
+ kImageShipLandingModuleDummy7,
+ kImageShipLandingModuleDummy8,
// file 26
- kArsanoStar,
+ kImageArsanoStar,
// file 27
- kSaveLoadScreen,
+ kImageSaveLoadScreen,
// file 28
- kRestaurantBackground,
- kRestaurantAnimation1,
- kRestaurantAnimation2,
- kRestaurantAnimation3,
- kRestaurantAnimation4,
- kRestaurantAnimation5,
- kRestaurantAnimation6,
- kRestaurantAnimation7,
- kRestaurantAnimation8,
- kRestaurantAnimation9,
- kRestaurantAnimation10,
- kRestaurantAnimation11,
- kRestaurantAnimation12,
- kRestaurantAnimation13,
- kRestaurantAnimation14,
- kRestaurantAnimation15,
- kRestaurantAnimation16,
- kRestaurantAnimation17,
- kRestaurantAnimation18,
- kRestaurantAnimation19,
- kRestaurantAnimation20,
- kRestaurantAnimation21,
- kRestaurantAnimation22,
+ kImageRestaurantBackground,
+ kImageRestaurantAnimation1,
+ kImageRestaurantAnimation2,
+ kImageRestaurantAnimation3,
+ kImageRestaurantAnimation4,
+ kImageRestaurantAnimation5,
+ kImageRestaurantAnimation6,
+ kImageRestaurantAnimation7,
+ kImageRestaurantAnimation8,
+ kImageRestaurantAnimation9,
+ kImageRestaurantAnimation10,
+ kImageRestaurantAnimation11,
+ kImageRestaurantAnimation12,
+ kImageRestaurantAnimation13,
+ kImageRestaurantAnimation14,
+ kImageRestaurantAnimation15,
+ kImageRestaurantAnimation16,
+ kImageRestaurantAnimation17,
+ kImageRestaurantAnimation18,
+ kImageRestaurantAnimation19,
+ kImageRestaurantAnimation20,
+ kImageRestaurantAnimation21,
+ kImageRestaurantAnimation22,
// file 29
- kRestaurantRogerBackground,
- kRestaurantRogerEyes1Closed,
- kRestaurantRogerMouthOpen,
- kRestaurantRogerPlayingChess,
- kRestaurantRogerWalletRemoved,
- kRestaurantRogerHandAnimation1,
- kRestaurantRogerHandAnimation2,
- kRestaurantRogerHandAnimation3,
- kRestaurantRogerHandAnimation4,
- kRestaurantRogerHandAnimation5,
- kRestaurantRogerEyes2Closed,
- kRestaurantRogerChessBoard,
- kRestaurantRogerEyes2Open,
- kRestaurantRogerDummy1,
+ kImageRestaurantRogerBackground,
+ kImageRestaurantRogerEyes1Closed,
+ kImageRestaurantRogerMouthOpen,
+ kImageRestaurantRogerPlayingChess,
+ kImageRestaurantRogerWalletRemoved,
+ kImageRestaurantRogerHandAnimation1,
+ kImageRestaurantRogerHandAnimation2,
+ kImageRestaurantRogerHandAnimation3,
+ kImageRestaurantRogerHandAnimation4,
+ kImageRestaurantRogerHandAnimation5,
+ kImageRestaurantRogerEyes2Closed,
+ kImageRestaurantRogerChessBoard,
+ kImageRestaurantRogerEyes2Open,
+ kImageRestaurantRogerDummy1,
// file 30
- kRogerOutsideBackground,
- kRogerOutsideMouthOpen,
+ kImageRogerOutsideBackground,
+ kImageRogerOutsideMouthOpen,
// file 31
- kIntroScreenBackground,
- kIntroScreenShipAnimation1,
- kIntroScreenShipAnimation2,
- kIntroScreenShipAnimation3,
- kIntroScreenShipAnimation4,
- kIntroScreenShipAnimation5,
- kIntroScreenShipAnimation6,
+ kImageIntroScreenBackground,
+ kImageIntroScreenShipAnimation1,
+ kImageIntroScreenShipAnimation2,
+ kImageIntroScreenShipAnimation3,
+ kImageIntroScreenShipAnimation4,
+ kImageIntroScreenShipAnimation5,
+ kImageIntroScreenShipAnimation6,
// file 32
- kBusStationSignBackground,
- kBusStationSignPrice,
- kBusStationSignPleaseWait,
- kBusStationSignPleasantFlight,
+ kImageBusStationSignBackground,
+ kImageBusStationSignPrice,
+ kImageBusStationSignPleaseWait,
+ kImageBusStationSignPleasantFlight,
// file 33
- kShipSleepCabinBackground,
- kShipSleepCabinTerminalWarning,
- kShipSleepCabinTerminal1,
- kShipSleepCabinTerminal2,
- kShipSleepCabinStatusLight,
- kShipSleepCabinTerminal3,
+ kImageShipSleepCabinBackground,
+ kImageShipSleepCabinTerminalWarning,
+ kImageShipSleepCabinTerminal1,
+ kImageShipSleepCabinTerminal2,
+ kImageShipSleepCabinStatusLight,
+ kImageShipSleepCabinTerminal3,
// file 34
- kShipAirlockBackground,
- kShipAirlockDoorLeftAnimation1,
- kShipAirlockDoorLeftAnimation2,
- kShipAirlockDoorLeftAnimation3,
- kShipAirlockDoorRightAnimation1,
- kShipAirlockDoorRightAnimation2,
- kShipAirlockDoorRightAnimation3,
- kShipAirlockHelmetRemoved,
- kShipAirlockSpacesuitRemoved,
- kShipAirlockSupplyRemoved,
- kShipAirlockDoorLeftButton,
- kShipAirlockDoorRightButton,
- kShipAirlockManometerAnimation1,
- kShipAirlockManometerAnimation2,
- kShipAirlockManometerAnimation3,
- kShipAirlockManometerAnimation4,
- kShipAirlockManometerAnimation5,
- kShipAirlockManometerAnimation6,
+ kImageShipAirlockBackground,
+ kImageShipAirlockDoorLeftAnimation1,
+ kImageShipAirlockDoorLeftAnimation2,
+ kImageShipAirlockDoorLeftAnimation3,
+ kImageShipAirlockDoorRightAnimation1,
+ kImageShipAirlockDoorRightAnimation2,
+ kImageShipAirlockDoorRightAnimation3,
+ kImageShipAirlockHelmetRemoved,
+ kImageShipAirlockSpacesuitRemoved,
+ kImageShipAirlockSupplyRemoved,
+ kImageShipAirlockDoorLeftButton,
+ kImageShipAirlockDoorRightButton,
+ kImageShipAirlockManometerAnimation1,
+ kImageShipAirlockManometerAnimation2,
+ kImageShipAirlockManometerAnimation3,
+ kImageShipAirlockManometerAnimation4,
+ kImageShipAirlockManometerAnimation5,
+ kImageShipAirlockManometerAnimation6,
// file 35
- kAxacussSpaceBackground,
- kAxacussSpaceShipAnimation1,
- kAxacussSpaceShipAnimation2,
- kAxacussSpaceShipAnimation3,
- kAxacussSpaceShipAnimation4,
- kAxacussSpaceShipAnimation5,
- kAxacussSpaceShipAnimation6,
- kAxacussSpaceShipAnimation7,
- kAxacussSpaceBusAnimation1,
- kAxacussSpaceBusAnimation2,
- kAxacussSpaceBusAnimation3,
- kAxacussSpaceBusAnimation4,
- kAxacussSpaceBusAnimation5,
- kAxacussSpaceBusAnimation6,
- kAxacussSpaceBusAnimation7,
- kAxacussSpaceBusAnimation8,
- kAxacussSpaceBusAnimation9,
- kAxacussSpaceBusAnimation10,
- kAxacussSpaceBusAnimation11,
- kAxacussSpaceBusAnimation12,
- kAxacussSpaceBusAnimation13,
- kAxacussSpaceBusAnimation14,
+ kImageAxacussSpaceBackground,
+ kImageAxacussSpaceShipAnimation1,
+ kImageAxacussSpaceShipAnimation2,
+ kImageAxacussSpaceShipAnimation3,
+ kImageAxacussSpaceShipAnimation4,
+ kImageAxacussSpaceShipAnimation5,
+ kImageAxacussSpaceShipAnimation6,
+ kImageAxacussSpaceShipAnimation7,
+ kImageAxacussSpaceBusAnimation1,
+ kImageAxacussSpaceBusAnimation2,
+ kImageAxacussSpaceBusAnimation3,
+ kImageAxacussSpaceBusAnimation4,
+ kImageAxacussSpaceBusAnimation5,
+ kImageAxacussSpaceBusAnimation6,
+ kImageAxacussSpaceBusAnimation7,
+ kImageAxacussSpaceBusAnimation8,
+ kImageAxacussSpaceBusAnimation9,
+ kImageAxacussSpaceBusAnimation10,
+ kImageAxacussSpaceBusAnimation11,
+ kImageAxacussSpaceBusAnimation12,
+ kImageAxacussSpaceBusAnimation13,
+ kImageAxacussSpaceBusAnimation14,
// file 36
- kAxacussanCapsuleBackground,
- kAxacussanCapsuleRobotAnimation1,
- kAxacussanCapsuleRobotAnimation2,
- kAxacussanCapsuleRobotAnimation3,
- kAxacussanCapsuleRobotAnimation4,
- kAxacussanCapsuleDummy1,
+ kImageAxacussanCapsuleBackground,
+ kImageAxacussanCapsuleRobotAnimation1,
+ kImageAxacussanCapsuleRobotAnimation2,
+ kImageAxacussanCapsuleRobotAnimation3,
+ kImageAxacussanCapsuleRobotAnimation4,
+ kImageAxacussanCapsuleDummy1,
// file 37
- kArsanoMeetupBackground,
- kArsanoMeetupRestaurantLightAnimation1,
- kArsanoMeetupRestaurantLightAnimation2,
- kArsanoMeetupRestaurantLightAnimation3,
- kArsanoMeetupRestaurantLightAnimation4,
- kArsanoMeetupRestaurantLightAnimation5,
- kArsanoMeetupRestaurantDoorAnimation1,
- kArsanoMeetupRestaurantDoorAnimation2,
- kArsanoMeetupRestaurantDoorSignAnimation1,
- kArsanoMeetupRestaurantDoorSignAnimation2,
- kArsanoMeetupRestaurantDoorSignAnimation3,
- kArsanoMeetupRestaurantDoorSignAnimation4,
- kArsanoMeetupRestaurantDoorSignAnimation5,
- kArsanoMeetupRestaurantSignAnimation1,
- kArsanoMeetupRestaurantSignAnimation2,
- kArsanoMeetupRestaurantSignAnimation3,
- kArsanoMeetupRestaurantSignAnimation4,
- kArsanoMeetupRestaurantSignAnimation5,
- kArsanoMeetupRestaurantSignAnimation6,
- kArsanoMeetupRestaurantSignAnimation7,
- kArsanoMeetupRestaurantSignAnimation8,
- kArsanoMeetupRestaurantSignAnimation9,
- kArsanoMeetupRestaurantSignAnimation10,
- kArsanoMeetupRestaurantSignAnimation11,
- kArsanoMeetupRestaurantSignAnimation12,
- kArsanoMeetupRestaurantSignAnimation13,
- kArsanoMeetupRestaurantSignAnimation14,
+ kImageArsanoMeetupBackground,
+ kImageArsanoMeetupRestaurantLightAnimation1,
+ kImageArsanoMeetupRestaurantLightAnimation2,
+ kImageArsanoMeetupRestaurantLightAnimation3,
+ kImageArsanoMeetupRestaurantLightAnimation4,
+ kImageArsanoMeetupRestaurantLightAnimation5,
+ kImageArsanoMeetupRestaurantDoorAnimation1,
+ kImageArsanoMeetupRestaurantDoorAnimation2,
+ kImageArsanoMeetupRestaurantDoorSignAnimation1,
+ kImageArsanoMeetupRestaurantDoorSignAnimation2,
+ kImageArsanoMeetupRestaurantDoorSignAnimation3,
+ kImageArsanoMeetupRestaurantDoorSignAnimation4,
+ kImageArsanoMeetupRestaurantDoorSignAnimation5,
+ kImageArsanoMeetupRestaurantSignAnimation1,
+ kImageArsanoMeetupRestaurantSignAnimation2,
+ kImageArsanoMeetupRestaurantSignAnimation3,
+ kImageArsanoMeetupRestaurantSignAnimation4,
+ kImageArsanoMeetupRestaurantSignAnimation5,
+ kImageArsanoMeetupRestaurantSignAnimation6,
+ kImageArsanoMeetupRestaurantSignAnimation7,
+ kImageArsanoMeetupRestaurantSignAnimation8,
+ kImageArsanoMeetupRestaurantSignAnimation9,
+ kImageArsanoMeetupRestaurantSignAnimation10,
+ kImageArsanoMeetupRestaurantSignAnimation11,
+ kImageArsanoMeetupRestaurantSignAnimation12,
+ kImageArsanoMeetupRestaurantSignAnimation13,
+ kImageArsanoMeetupRestaurantSignAnimation14,
// file 38
- kArsanoAfterNovaBackground,
- kArsanoAfterNovaRogerShipAnimation1,
- kArsanoAfterNovaRogerShipAnimation2,
- kArsanoAfterNovaRogerShipAnimation3,
- kArsanoAfterNovaRogerShipAnimation4,
- kArsanoAfterNovaRogerShipAnimation5,
- kArsanoAfterNovaRogerShipAnimation6,
- kArsanoAfterNovaRogerShipAnimation7,
- kArsanoAfterNovaRogerShipAnimation8,
- kArsanoAfterNovaRogerShipAnimation9,
- kArsanoAfterNovaRogerShipAnimation10,
- kArsanoAfterNovaRogerShipAnimation11,
- kArsanoAfterNovaRoger,
+ kImageArsanoAfterNovaBackground,
+ kImageArsanoAfterNovaRogerShipAnimation1,
+ kImageArsanoAfterNovaRogerShipAnimation2,
+ kImageArsanoAfterNovaRogerShipAnimation3,
+ kImageArsanoAfterNovaRogerShipAnimation4,
+ kImageArsanoAfterNovaRogerShipAnimation5,
+ kImageArsanoAfterNovaRogerShipAnimation6,
+ kImageArsanoAfterNovaRogerShipAnimation7,
+ kImageArsanoAfterNovaRogerShipAnimation8,
+ kImageArsanoAfterNovaRogerShipAnimation9,
+ kImageArsanoAfterNovaRogerShipAnimation10,
+ kImageArsanoAfterNovaRogerShipAnimation11,
+ kImageArsanoAfterNovaRoger,
// file 39
- kArsanoDesolate,
+ kImageArsanoDesolate,
// file 40
- kIntersectionBackground,
- kIntersectionGuardRemoved,
- kIntersectionGuardMouthOpen,
- kIntersectionGuardShootAnimation1,
- kIntersectionGuardShootAnimation2,
- kIntersectionGuardMouthClosed,
- kIntersectionDoorOpen,
- kIntersectoinKeycard,
+ kImageIntersectionBackground,
+ kImageIntersectionGuardRemoved,
+ kImageIntersectionGuardMouthOpen,
+ kImageIntersectionGuardShootAnimation1,
+ kImageIntersectionGuardShootAnimation2,
+ kImageIntersectionGuardMouthClosed,
+ kImageIntersectionDoorOpen,
+ kImageIntersectoinKeycard,
// file 41
- kInformationDeskBackground,
- kInformationDeskAlienMouthOpen,
- kInformationDeskAlienHandMoved,
- kInformationDeskAlienShoot,
+ kImageInformationDeskBackground,
+ kImageInformationDeskAlienMouthOpen,
+ kImageInformationDeskAlienHandMoved,
+ kImageInformationDeskAlienShoot,
// file 42
- kArtGalleryBackground,
- kArtGalleryAlienShootAnimation1,
- kArtGalleryAlienShootAnimation2,
- kArtGalleryAlienShootAnimation3,
- kArtGalleryThrowingBlockAnimation1,
- kArtGalleryThrowingBlockAnimation2,
- kArtGalleryThrowingBlockAnimation3,
- kArtGalleryThrowingBlockAnimation4,
- kArtGalleryThrowingBlockAnimation5,
- kArtGalleryThrowingBlockAnimation6,
- kArtGalleryThrowingBlockAnimation7,
- kArtGalleryDummy1,
+ kImageArtGalleryBackground,
+ kImageArtGalleryAlienShootAnimation1,
+ kImageArtGalleryAlienShootAnimation2,
+ kImageArtGalleryAlienShootAnimation3,
+ kImageArtGalleryThrowingBlockAnimation1,
+ kImageArtGalleryThrowingBlockAnimation2,
+ kImageArtGalleryThrowingBlockAnimation3,
+ kImageArtGalleryThrowingBlockAnimation4,
+ kImageArtGalleryThrowingBlockAnimation5,
+ kImageArtGalleryThrowingBlockAnimation6,
+ kImageArtGalleryThrowingBlockAnimation7,
+ kImageArtGalleryDummy1,
// file 43
- kCellBackground,
- kCellCablePluggedIn,
- kCellCableUnplugged,
- kCellCableCutUnplugged,
- kCellCableCutPluggedIn,
- kCellCableCutTableUnplugged,
- kCellCableCutTablePluggedIn,
- kCellTableTablet,
- kCellRobotComesAnimation1,
- kCellRobotComesAnimation2,
- kCellRobotComesAnimation3,
- kCellRobotComesAnimation4,
- kCellRobotComesAnimation5,
- kCellRobotComesAnimation6,
- kCellRobotComesAnimation7,
- kCellRobotComesAnimation8,
- kCellRobotComesAnimation9,
- kCellRobotComesAnimation10,
- kCellRobotComesAnimation11,
- kCellRobotLeavesAnimation1,
- kCellRobotLeavesAnimation2,
- kCellRobotLeavesAnimation3,
- kCellRobotLeavesAnimation4,
- kCellRobotLeavesAnimation5,
- kCellRobotLeavesAnimation6,
- kCellRobotLeavesAnimation7,
- kCellRobotLeavesAnimation8,
- kCellRobotLeavesAnimation9,
- kCellRobotSparks,
- kCellRobotBroken,
- kCellDoorClosed,
- kCellDummy1
+ kImageCellBackground,
+ kImageCellCablePluggedIn,
+ kImageCellCableUnplugged,
+ kImageCellCableCutUnplugged,
+ kImageCellCableCutPluggedIn,
+ kImageCellCableCutTableUnplugged,
+ kImageCellCableCutTablePluggedIn,
+ kImageCellTableTablet,
+ kImageCellRobotComesAnimation1,
+ kImageCellRobotComesAnimation2,
+ kImageCellRobotComesAnimation3,
+ kImageCellRobotComesAnimation4,
+ kImageCellRobotComesAnimation5,
+ kImageCellRobotComesAnimation6,
+ kImageCellRobotComesAnimation7,
+ kImageCellRobotComesAnimation8,
+ kImageCellRobotComesAnimation9,
+ kImageCellRobotComesAnimation10,
+ kImageCellRobotComesAnimation11,
+ kImageCellRobotLeavesAnimation1,
+ kImageCellRobotLeavesAnimation2,
+ kImageCellRobotLeavesAnimation3,
+ kImageCellRobotLeavesAnimation4,
+ kImageCellRobotLeavesAnimation5,
+ kImageCellRobotLeavesAnimation6,
+ kImageCellRobotLeavesAnimation7,
+ kImageCellRobotLeavesAnimation8,
+ kImageCellRobotLeavesAnimation9,
+ kImageCellRobotSparks,
+ kImageCellRobotBroken,
+ kImageCellDoorClosed,
+ kImageCellDummy1
};
}
Commit: d1fb1d45e8067414e62c3801bfb565951a5b199b
https://github.com/scummvm/scummvm/commit/d1fb1d45e8067414e62c3801bfb565951a5b199b
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:10+01:00
Commit Message:
SUPERNOVA: Adds missing image id
Changed paths:
engines/supernova/imageid.h
diff --git a/engines/supernova/imageid.h b/engines/supernova/imageid.h
index e5860f7..c1168c3 100644
--- a/engines/supernova/imageid.h
+++ b/engines/supernova/imageid.h
@@ -238,6 +238,7 @@ enum ImageId {
kImageAxacussCorridorStuff17,
kImageAxacussCorridorStuff18,
kImageAxacussCorridorStuff19,
+ kImageAxacussCorridorStuff20,
kImageAxacussCorridorStuff21,
kImageAxacussCorridorStuff22,
kImageAxacussCorridorStuff23,
Commit: 1e62c5533876eb794b234928a342fcd72688cf84
https://github.com/scummvm/scummvm/commit/1e62c5533876eb794b234928a342fcd72688cf84
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Moves function definitions from rooms.h
Changed paths:
engines/supernova/rooms.cpp
engines/supernova/rooms.h
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index 9360d58..ce274d6 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -30,6 +30,17 @@
namespace Supernova {
+Room::Room() {
+ _seen = false;
+ for (int i = 0; i < kMaxSection; ++i)
+ _shown[i] = kShownFalse;
+ for (int i = 0; i < kMaxDialog; ++i)
+ _sentenceRemoved[i] = 0;
+}
+
+Room::~Room() {
+}
+
bool Room::serialize(Common::WriteStream *out) {
if (out->err())
return false;
@@ -97,6 +108,73 @@ bool Room::deserialize(Common::ReadStream *in, int version) {
return !in->err();
}
+bool Room::hasSeen() {
+ return _seen;
+}
+void Room::setRoomSeen(bool seen) {
+ _seen = seen;
+}
+
+int Room::getFileNumber() const {
+ return _fileNumber;
+}
+RoomId Room::getId() const {
+ return _id;
+}
+
+void Room::setSectionVisible(uint section, bool visible) {
+ _shown[section] = visible ? kShownTrue : kShownFalse;
+}
+
+bool Room::isSectionVisible(uint index) const {
+ return _shown[index] == kShownTrue;
+}
+
+void Room::removeSentence(int sentence, int number) {
+ if (number > 0)
+ _sentenceRemoved[number - 1] |= (1 << sentence);
+}
+
+void Room::addSentence(int sentence, int number) {
+ if (number > 0)
+ _sentenceRemoved[number - 1] &= ~(1 << sentence);
+}
+
+void Room::addAllSentences(int number) {
+ if (number > 0)
+ _sentenceRemoved[number - 1] = 0;
+}
+
+bool Room::sentenceRemoved(int sentence, int number) {
+ if (number <= 0)
+ return false;
+ return (_sentenceRemoved[number - 1] & (1 << sentence));
+}
+
+bool Room::allSentencesRemoved(int maxSentence, int number) {
+ if (number <= 0)
+ return false;
+ for (int i = 0, flag = 1 ; i < maxSentence ; ++i, flag <<= 1)
+ if (!(_sentenceRemoved[number - 1] & flag))
+ return false;
+ return true;
+}
+
+Object *Room::getObject(uint index) {
+ return &_objectState[index];
+}
+
+void Room::animation() {
+}
+
+void Room::onEntrance() {
+}
+
+bool Room::interact(Action verb, Object &obj1, Object &obj2) {
+ return false;
+}
+
+
Intro::Intro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
@@ -523,6 +601,27 @@ void Intro::leaveCutscene() {
_vm->_allowLoadGame = true;
}
+ShipCorridor::ShipCorridor(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 17;
+ _id = CORRIDOR;
+ _shown[0] = kShownTrue;
+ _shown[4] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringHatch, kStringDefaultDescription, HATCH1, OPENABLE | EXIT, 0, 6, 1, CABIN_L1, 15);
+ _objectState[1] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 1, 7, 2, CABIN_L2, 10);
+ _objectState[2] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 2, 8, 3, CABIN_L3, 5);
+ _objectState[3] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 5, 11, 6, CABIN_R1, 19);
+ _objectState[4] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 4, 10, 5, CABIN_R2, 14);
+ _objectState[5] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT | OPENED, 9, 3, 4, CABIN_R3, 9);
+ _objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 12, 12, 0, AIRLOCK, 2);
+ _objectState[7] = Object(_id, kStringButton, kStringHatchButtonDescription, BUTTON, PRESS, 13, 13, 0, NULLROOM, 0);
+ _objectState[8] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 14, 14, 0, NULLROOM, 0);
+ _objectState[9] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 15, 15, 0, HALL, 22);
+}
+
bool ShipCorridor::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_PRESS) && (obj1._id == BUTTON)) {
if (_objectState[6].hasProperty(OPENED)) {
@@ -551,6 +650,22 @@ bool ShipCorridor::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
+ShipHall::ShipHall(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 15;
+ _id = HALL;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringHatch, kStringCockpitHatchDescription, NULLOBJECT, OPENABLE | EXIT, 4, 5, 1, COCKPIT, 10);
+ _objectState[1] = Object(_id, kStringHatch, kStringKitchenHatchDescription, KITCHEN_HATCH, OPENABLE | EXIT, 0, 0, 0, NULLROOM, 1);
+ _objectState[2] = Object(_id, kStringHatch, kStringStasisHatchDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 1, 1, 2, SLEEP, 8);
+ _objectState[3] = Object(_id, kStringSlot, kStringSlotDescription, SLEEP_SLOT, COMBINABLE, 2, 2, 0, NULLROOM, 0);
+ _objectState[4] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 3, SLEEP, 0, NULLROOM, 0);
+ _objectState[5] = Object(_id, kStringCorridor, kStringDefaultDescription, NULLOBJECT, EXIT, 6, 6, 0, CORRIDOR, 19);
+}
+
bool ShipHall::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_OPEN) && (obj1._id == KITCHEN_HATCH)) {
_vm->renderMessage(kStringShipHall1);
@@ -582,6 +697,20 @@ bool ShipHall::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ShipSleepCabin::ShipSleepCabin(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 33;
+ _id = SLEEP;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
+ _objectState[1] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
+ _objectState[2] = Object(_id, kStringComputer, kStringDefaultDescription, COMPUTER, NULLTYPE, 2, 2, 0, NULLROOM, 0);
+ _objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
+}
+
bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
Room *room;
Common::String input;
@@ -780,6 +909,20 @@ void ShipSleepCabin::onEntrance() {
}
}
+ShipCockpit::ShipCockpit(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 9;
+ _id = COCKPIT;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringInstruments, kStringInstrumentsDescription1, INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
+ _objectState[1] = Object(_id, kStringMonitor, kStringDefaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
+ _objectState[2] = Object(_id, kStringMonitor, kStringMonitorDescription, NULLOBJECT, TAKE, 1, 0, 0, NULLROOM, 0);
+ _objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
+}
+
bool ShipCockpit::interact(Action verb, Object &obj1, Object &obj2) {
// TODO: distance and remaining time not accurate
@@ -850,6 +993,69 @@ void ShipCockpit::onEntrance() {
setRoomSeen(true);
}
+ShipCabinL1::ShipCabinL1(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 21;
+ _id = CABIN_L1;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[2] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringImage, kStringGenericDescription1, NULLOBJECT, UNNECESSARY, 5, 5, 0, NULLROOM, 0);
+ _objectState[1] = Object(_id, kStringImage, kStringGenericDescription2, NULLOBJECT, UNNECESSARY, 6, 6, 0, NULLROOM, 0);
+ _objectState[2] = Object(_id, kStringImage, kStringGenericDescription3, NULLOBJECT, UNNECESSARY, 7, 7, 0, NULLROOM, 0);
+ _objectState[3] = Object(_id, kStringMagnete, kStringMagneteDescription, NULLOBJECT, UNNECESSARY, 8, 8, 0, NULLROOM, 0);
+ _objectState[4] = Object(_id, kStringImage, kStringGenericDescription4, NULLOBJECT, UNNECESSARY, 9, 9, 0);
+ _objectState[5] = Object(_id, kStringPen, kStringPenDescription, PEN, TAKE | COMBINABLE, 10, 10, 5 | 128);
+ _objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | OPENED | EXIT, 3, 3, 24 | 128, CORRIDOR, 9);
+ _objectState[7] = Object(_id, kStringSlot, kStringSlotDescription, NULLOBJECT, COMBINABLE, 0, 0, 0);
+ _objectState[8] = Object(_id, kStringShelf, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 1, 1, 0);
+ _objectState[9] = Object(_id, kStringCompartment, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 2, 2, 0);
+ _objectState[10] = Object(_id, kStringSocket, kStringDefaultDescription, SOCKET, COMBINABLE, 4, 4, 0);
+ _objectState[11] = Object(_id, kStringToilet, kStringDefaultDescription, BATHROOM_DOOR, EXIT, 255, 255, 0, BATHROOM, 22);
+}
+
+ShipCabinL2::ShipCabinL2(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 21;
+ _id = CABIN_L2;
+ _shown[0] = kShownTrue;
+ _shown[16] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL1,COMBINABLE,31,31,0);
+ _objectState[1] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL2,COMBINABLE,32,32,0);
+ _objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL3,COMBINABLE,33,33,0);
+ _objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL4,COMBINABLE,45,45,0);
+ _objectState[4] = Object(_id, kStringShelf,kStringDefaultDescription,SHELF_L1,OPENABLE | CLOSED,25,26,17);
+ _objectState[5] = Object(_id, kStringPistol,kStringPistolDescription,PISTOL,TAKE,39,39,20);
+ _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L2,OPENABLE | CLOSED,27,28,18);
+ _objectState[7] = Object(_id, kStringBooks,kStringBooksDescription,NULLOBJECT,UNNECESSARY,40,40,0);
+ _objectState[8] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L3,OPENABLE | CLOSED,29,30,19);
+ _objectState[9] = Object(_id, kStringSpool,kStringSpoolDescription, SPOOL,TAKE | COMBINABLE,41,41,21);
+ _objectState[10] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L4,OPENABLE | CLOSED,43,44,22);
+ _objectState[11] = Object(_id, kStringBook,kStringDefaultDescription,BOOK2,TAKE,46,46,23);
+ _objectState[12] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,34,34,0);
+ _objectState[13] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,35,35,0);
+ _objectState[14] = Object(_id, kStringClothes,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,36,36,0);
+ _objectState[15] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,37,37,0);
+ _objectState[16] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,38,38,0);
+ _objectState[17] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,23,23,0);
+ _objectState[18] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+ _objectState[19] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
+ _objectState[20] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
+ _objectState[21] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
+ _objectState[22] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
+ _objectState[23] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
+ _objectState[24] = Object(_id, kStringFolders,kStringFoldersDescription,NULLOBJECT,UNNECESSARY,49,49,0);
+}
+
bool ShipCabinL2::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_USE) && Object::combine(obj1, obj2, SLOT_KL1, KEYCARD2)) {
_gm->openLocker(this, getObject(4), getObject(0), 17);
@@ -892,6 +1098,38 @@ bool ShipCabinL2::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ShipCabinL3::ShipCabinL3(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 21;
+ _id = CABIN_L3;
+ _shown[0] = kShownTrue;
+ _shown[6] = kShownTrue;
+ _shown[7] = kShownTrue;
+ _shown[8] = kShownTrue;
+ _shown[9] = kShownTrue;
+ _shown[12] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringPoster,kStringPosterDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
+ _objectState[1] = Object(_id, kStringPoster,kStringPosterDescription2,NULLOBJECT,UNNECESSARY,12,12,0);
+ _objectState[2] = Object(_id, kStringSpeaker,kStringDefaultDescription,NULLOBJECT,NULLTYPE,13,13,0);
+ _objectState[3] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,14,14,0);
+ _objectState[4] = Object(_id, kStringRecord,kStringRecordDescription,RECORD,TAKE | COMBINABLE,15,15,8 | 128);
+ _objectState[5] = Object(_id, kStringRecordStand,kStringRecordStandDescription,NULLOBJECT,UNNECESSARY,16,16,0);
+ _objectState[6] = Object(_id, kStringButton,kStringDefaultDescription,TURNTABLE_BUTTON,PRESS,22,22,0);
+ _objectState[7] = Object(_id, kStringTurntable,kStringTurntableDescription,TURNTABLE,UNNECESSARY | COMBINABLE,17,17,0);
+ _objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,WIRE,COMBINABLE,18,18,0);
+ _objectState[9] = Object(_id, kStringWire,kStringDefaultDescription,WIRE2,COMBINABLE,19,19,0);
+ _objectState[10] = Object(_id, kStringPlug,kStringDefaultDescription,PLUG,COMBINABLE,20,20,0);
+ _objectState[11] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
+ _objectState[12] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
+ _objectState[13] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
+ _objectState[14] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
+ _objectState[15] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
+ _objectState[16] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+}
+
bool ShipCabinL3::interact(Action verb, Object &obj1, Object &obj2) {
Room *r;
@@ -973,6 +1211,86 @@ bool ShipCabinL3::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ShipCabinR1::ShipCabinR1(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 22;
+ _id = CABIN_R1;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[2] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringImage,kStringImageDescription1,NULLOBJECT,UNNECESSARY,5,5,0);
+ _objectState[1] = Object(_id, kStringDrawingInstruments,kStringDrawingInstrumentsDescription,NULLOBJECT,UNNECESSARY,6,6,0);
+ _objectState[2] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,7,7,0);
+ _objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
+ _objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
+ _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
+ _objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
+ _objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+}
+
+ShipCabinR2::ShipCabinR2(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 22;
+ _id = CABIN_R2;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
+ _objectState[1] = Object(_id, kStringTennisRacket,kStringTennisRacketDescription,NULLOBJECT,UNNECESSARY,8,8,0);
+ _objectState[2] = Object(_id, kStringTennisBall,kStringGenericDescription2,NULLOBJECT,UNNECESSARY,9,9,0);
+ _objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
+ _objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
+ _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
+ _objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
+ _objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+}
+
+ShipCabinR3::ShipCabinR3(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 22;
+ _id = CABIN_R3;
+ _shown[0] = kShownTrue;
+ _shown[7] = kShownTrue;
+ _shown[8] = kShownTrue;
+ _shown[15] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription2,CHESS,TAKE | COMBINABLE,12,12,7 | 128);
+ _objectState[1] = Object(_id, kStringBed,kStringBedDescription,NULLOBJECT,NULLTYPE,13,13,0);
+ _objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K1,COMBINABLE,27,27,0);
+ _objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K2,COMBINABLE,28,28,0);
+ _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K3,COMBINABLE,29,29,0);
+ _objectState[5] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K4,COMBINABLE,30,30,0);
+ _objectState[6] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF1,OPENABLE | CLOSED,14,18,9);
+ _objectState[7] = Object(_id, kStringAlbums,kStringAlbumsDescription,NULLOBJECT,UNNECESSARY,14,14,0);
+ _objectState[8] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF2,OPENABLE | CLOSED,15,19,10);
+ _objectState[9] = Object(_id, kStringRope,kStringRopeDescription,ROPE,TAKE | COMBINABLE,15,15,12);
+ _objectState[10] = Object(_id, kStringShelf,kStringShelfDescription,SHELF3,OPENABLE | CLOSED,16,17,11);
+ _objectState[11] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,20,20,0);
+ _objectState[12] = Object(_id, kStringClothes,kStringClothesDescription,NULLOBJECT,UNNECESSARY,21,21,0);
+ _objectState[13] = Object(_id, kStringUnderwear,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,22,22,0);
+ _objectState[14] = Object(_id, kStringSocks,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,23,23,0);
+ _objectState[15] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF4,OPENABLE | CLOSED,24,25,13);
+ _objectState[16] = Object(_id, kStringBook,kStringBookHitchhiker,BOOK,TAKE,26,26,14);
+ _objectState[17] = Object(_id, kStringDiscman,kStringDiscmanDescription,DISCMAN,TAKE | COMBINABLE,33,33,16);
+ _objectState[18] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[19] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
+ _objectState[20] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
+ _objectState[21] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
+ _objectState[22] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
+ _objectState[23] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+}
+
bool ShipCabinR3::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_USE) && Object::combine(obj1, obj2, SLOT_K1, KEYCARD))
_gm->openLocker(this, getObject(6), getObject(2), 9);
@@ -1024,6 +1342,36 @@ void ShipCabinR3::onEntrance() {
setRoomSeen(true);
}
+ShipCabinBathroom::ShipCabinBathroom(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 23;
+ _id = BATHROOM;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringBathroom,kStringBathroomDescription,TOILET,NULLTYPE,0,0,0);
+ _objectState[1] = Object(_id, kStringShower,kStringDefaultDescription,SHOWER,NULLTYPE,1,1,0);
+ _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,BATHROOM_EXIT,EXIT,255,255,0,CABIN_R3,2);
+}
+
+ShipAirlock::ShipAirlock(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 34;
+ _id = AIRLOCK;
+ _shown[0] = kShownTrue;
+ _shown[6] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringHatch,kStringHatchDescription1,NULLOBJECT,EXIT | OPENABLE | OPENED | CLOSED,0,0,0,CORRIDOR,10);
+ _objectState[1] = Object(_id, kStringHatch,kStringHatchDescription2,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,HOLD,14);
+ _objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,2,2,0);
+ _objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,3,3,0);
+ _objectState[4] = Object(_id, kStringHelmet,kStringHelmetDescription,HELMET,TAKE,4,4,7);
+ _objectState[5] = Object(_id, kStringSuit,kStringSuitDescription,SUIT,TAKE,5,5,8);
+ _objectState[6] = Object(_id, kStringLifeSupport,kStringLifeSupportDescription,LIFESUPPORT,TAKE,6,6,9);
+}
bool ShipAirlock::interact(Action verb, Object &obj1, Object &obj2) {
Room *r;
@@ -1133,6 +1481,28 @@ void ShipAirlock::onEntrance() {
setRoomSeen(true);
}
+ShipHold::ShipHold(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 24;
+ _id = HOLD;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kNoString,kStringDefaultDescription,HOLD_WIRE,COMBINABLE,255,255,0);
+ _objectState[1] = Object(_id, kStringScrap,kStringScrapDescription1,SCRAP_LK,NULLTYPE,4,4,0);
+ _objectState[2] = Object(_id, kStringTerminalStrip,kStringDefaultDescription,TERMINALSTRIP,COMBINABLE,255,255,0);
+ _objectState[3] = Object(_id, kStringScrap,kStringScrapDescription2,NULLOBJECT,NULLTYPE,5,5,0);
+ _objectState[4] = Object(_id, kStringReactor,kStringReactorDescription,NULLOBJECT,NULLTYPE,6,6,0);
+ _objectState[5] = Object(_id, kStringNozzle,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
+ _objectState[6] = Object(_id, kStringPumpkin,kStringPumpkinDescription,NULLOBJECT,NULLTYPE,8,8,0);
+ _objectState[7] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_OUTERHATCH,EXIT | OPENABLE,1,2,2,LANDINGMODULE,6);
+ _objectState[8] = Object(_id, kStringLandingModule,kStringLandingModuleDescription,NULLOBJECT,NULLTYPE,0,0,0);
+ _objectState[9] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,AIRLOCK,22);
+ _objectState[10] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH_TOP,EXIT | OPENABLE | OPENED,3,3,0,GENERATOR,8);
+ _objectState[11] = Object(_id, kStringGenerator,kStringGeneratorDescription,GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8);
+}
+
bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
Room *room;
@@ -1189,6 +1559,22 @@ void ShipHold::onEntrance() {
_gm->_rooms[COCKPIT]->setRoomSeen(true);
}
+ShipLandingModule::ShipLandingModule(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 25;
+ _id = LANDINGMODULE;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringSocket,kStringDefaultDescription,LANDINGMOD_SOCKET,COMBINABLE,1,1,0);
+ _objectState[1] = Object(_id, kStringButton,kSafetyButtonDescription,LANDINGMOD_BUTTON,PRESS | COMBINABLE,2,2,0);
+ _objectState[2] = Object(_id, kStringMonitor,kStringDefaultDescription,LANDINGMOD_MONITOR,NULLTYPE,3,3,0);
+ _objectState[3] = Object(_id, kStringKeyboard,kStringDefaultDescription,KEYBOARD,NULLTYPE,4,4,0);
+ _objectState[4] = Object(_id, kNoString,kStringDefaultDescription,LANDINGMOD_WIRE,COMBINABLE,255,255,0);
+ _objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_HATCH,EXIT | OPENABLE | OPENED | COMBINABLE, 0,0,1 | 128,HOLD,10);
+}
+
bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_PRESS) && (obj1._id == LANDINGMOD_BUTTON))
_vm->renderMessage(obj1._description);
@@ -1287,6 +1673,30 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ShipGenerator::ShipGenerator(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 18;
+ _id = GENERATOR;
+ _shown[0] = kShownTrue;
+ _shown[5] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringGeneratorWire,kStringDefaultDescription,GENERATOR_WIRE,COMBINABLE,255,255,0);
+ _objectState[1] = Object(_id, kStringEmptySpool,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
+ _objectState[2] = Object(_id, kStringKeycard2,kStringKeycard2Description,KEYCARD2,COMBINABLE | TAKE,12,12,5 | 128);
+ _objectState[3] = Object(_id, kStringRope,kStringDefaultDescription,GENERATOR_ROPE,COMBINABLE,255,255,0);
+ _objectState[4] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH,EXIT | OPENABLE,1,2,1,OUTSIDE,22);
+ _objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,3,3,0);
+ _objectState[6] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,4,4,0);
+ _objectState[7] = Object(_id, kStringTrap,kStringDefaultDescription,TRAP,OPENABLE,5,6,2);
+ _objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
+ _objectState[9] = Object(_id, kStringVoltmeter,kStringDefaultDescription,VOLTMETER,NULLTYPE,9,9,0,NULLROOM,0);
+ _objectState[10] = Object(_id, kStringClip,kStringDefaultDescription,CLIP,COMBINABLE,8,8,0);
+ _objectState[11] = Object(_id, kStringWire,kStringWireDescription,SHORT_WIRE,COMBINABLE,10,10,0);
+ _objectState[12] = Object(_id, kStringLadder,kStringDefaultDescription,LADDER,EXIT,0,0,0,HOLD,1);
+}
+
bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_OPEN) && (obj1._id == OUTERHATCH)) {
if (obj1.hasProperty(OPENED))
@@ -1430,7 +1840,34 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ShipOuterSpace::ShipOuterSpace(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 4;
+ _id = OUTSIDE;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,GENERATOR,3);
+ _objectState[1] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
+}
+
+
// Arsano
+ArsanoRocks::ArsanoRocks(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 12;
+ _id = OUTSIDE;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY | EXIT,0,0,0,GENERATOR,12);
+ _objectState[1] = Object(_id, kStringStone,kStringDefaultDescription,STONE,NULLTYPE,1,1,0);
+ _objectState[2] = Object(_id, kStringStone,kStringDefaultDescription,NULLOBJECT,NULLTYPE,2,2,0);
+ _objectState[3] = Object(_id, kStringCaveOpening,kStringCaveOpeningDescription,NULLOBJECT,NULLTYPE,255,255,0,CAVE,1);
+}
+
void ArsanoRocks::onEntrance() {
_gm->great(8);
}
@@ -1452,6 +1889,33 @@ bool ArsanoRocks::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
+ArsanoCave::ArsanoCave(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 12;
+ _id = CAVE;
+
+ _objectState[0] = Object(_id, kStringExit,kStringExitDescription,NULLOBJECT,EXIT,255,255,0,ROCKS,22);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,2);
+}
+
+ArsanoMeetup::ArsanoMeetup(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 37;
+ _id = MEETUP;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
+ _objectState[1] = Object(_id, kStringSign,kStringSignDescription,MEETUP_SIGN,NULLTYPE,0,0,0);
+ _objectState[2] = Object(_id, kStringEntrance,kStringDefaultDescription,DOOR,EXIT,1,1,0,ENTRANCE,7);
+ _objectState[3] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,2,2,0);
+ _objectState[4] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIPS,COMBINABLE,3,3,0);
+ _objectState[5] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIP,COMBINABLE,4,4,0);
+}
+
void ArsanoMeetup::onEntrance() {
if (isSectionVisible(7)) {
_gm->wait(3);
@@ -1525,6 +1989,51 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ArsanoEntrance::ArsanoEntrance(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 10;
+ _id = ENTRANCE;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringPorter,kStringPorterDescription,PORTER,TALK,0,0,0);
+ _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,NULLROOM,5);
+ _objectState[2] = Object(_id, kStringSign,kStringSignDescription,KITCHEN_SIGN,NULLTYPE,2,2,0);
+ _objectState[3] = Object(_id, kStringChewingGum,kStringDefaultDescription,SCHNUCK,TAKE,255,255,10+128);
+ _objectState[4] = Object(_id, kStringGummyBears,kStringDefaultDescription,SCHNUCK,TAKE,255,255,11+128);
+ _objectState[5] = Object(_id, kStringChocolateBall,kStringDefaultDescription,SCHNUCK,TAKE,255,255,12+128);
+ _objectState[6] = Object(_id, kStringEgg,kStringDefaultDescription,EGG,TAKE,255,255,13+128);
+ _objectState[7] = Object(_id, kStringLiquorice,kStringDefaultDescription,SCHNUCK,TAKE,255,255,14+128);
+ _objectState[8] = Object(_id, kStringPill,kStringPillDescription,PILL,TAKE,255,255,0);
+ _objectState[9] = Object(_id, kStringSlot,kStringDefaultDescription,CAR_SLOT,COMBINABLE,6,6,0);
+ _objectState[10] = Object(_id, kStringVendingMachine,kStringVendingMachineDescription,NULLOBJECT,NULLTYPE,5,5,0);
+ _objectState[11] = Object(_id, kStringToilet,kStringToiletDescription,ARSANO_BATHROOM,NULLTYPE,255,255,0);
+ _objectState[12] = Object(_id, kStringButton,kStringDefaultDescription,BATHROOM_BUTTON,PRESS,3,3,0);
+ _objectState[13] = Object(_id, kStringSign,kStringSignDescription,BATHROOM_SIGN,NULLTYPE,4,4,0);
+ _objectState[14] = Object(_id, kStringStaircase,kStringDefaultDescription,STAIRCASE,EXIT,8,8,0,REST,3);
+ _objectState[15] = Object(_id, kStringExit,kStringDefaultDescription,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22);
+ _objectState[16] = Object(_id, kStringCoins,kStringCoinsDescription,COINS,TAKE|COMBINABLE,255,255,0);
+ _objectState[17] = Object(_id, kStringTabletPackage,kStringTabletPackageDescription,PILL_HULL,TAKE,255,255,0);
+
+ _dialog1[0] = kStringArsanoDialog7;
+ _dialog1[1] = kStringArsanoDialog1;
+ _dialog1[2] = kStringArsanoDialog8;
+ _dialog1[3] = kStringArsanoDialog9;
+ _dialog1[4] = kStringDialogSeparator;
+
+ _dialog2[0] = kStringArsanoDialog1;
+ _dialog2[1] = kStringArsanoDialog2;
+ _dialog2[2] = kStringArsanoDialog3;
+ _dialog2[3] = kStringArsanoDialog4;
+ _dialog2[4] = kStringDialogSeparator;
+
+ _dialog3[0] = kStringArsanoDialog5;
+ _dialog3[1] = kStringArsanoDialog6;
+
+ _eyewitness = 5;
+}
+
void ArsanoEntrance::animation() {
if (!_vm->_screen->isMessageShown() && isSectionVisible(kMaxSection - 5)) {
_gm->animationOff(); // to avoid recursive call
@@ -1751,6 +2260,21 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ArsanoRemaining::ArsanoRemaining(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 28;
+ _id = REST;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringStaircase,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,ENTRANCE,17);
+ _objectState[1] = Object(_id, kStringChair,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,ROGER,2);
+ _objectState[2] = Object(_id, kStringShoes,kStringShoesDescription,NULLOBJECT,NULLTYPE,2,2,0);
+
+ _chewing = kShownTrue;
+}
+
void ArsanoRemaining::animation() {
switch (_i) {
case 0:
@@ -1911,6 +2435,32 @@ void ArsanoRemaining::animation() {
_gm->setAnimationTimer(3);
}
+ArsanoRoger::ArsanoRoger(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 29;
+ _id = ROGER;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,REST,19);
+ _objectState[1] = Object(_id, kStringFrogFace,kStringDefaultDescription,ROGER_W,TALK,0,0,0);
+ _objectState[2] = Object(_id, kStringScrible,kStringScribleDescription,NULLOBJECT,NULLTYPE,3,3,0);
+ _objectState[3] = Object(_id, kStringWallet,kStringDefaultDescription,WALLET,TAKE,1,1,4);
+ _objectState[4] = Object(_id, kStringMenu,kStringMenuDescription,NULLOBJECT,UNNECESSARY,2,2,0);
+ _objectState[5] = Object(_id, kStringCup,kStringCupDescription,CUP,UNNECESSARY,4,4,0);
+ _objectState[6] = Object(_id, kStringChessGame,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
+ _objectState[7] = Object(_id, kStringBill,kStringBillDescription,NULLOBJECT,TAKE|COMBINABLE,255,255,0);
+ _objectState[8] = Object(_id, kStringKeycard3,kStringDefaultDescription,KEYCARD_R,TAKE|COMBINABLE,255,255,0);
+
+ _dialog1[0] = kStringDialogArsanoRoger1;
+ _dialog1[1] = kStringDialogArsanoRoger2;
+ _dialog1[2] = kStringDialogArsanoRoger3;
+ _dialog1[3] = kStringDialogSeparator;
+
+ _eyewitness = 5;
+}
+
void ArsanoRoger::onEntrance() {
if (!sentenceRemoved(0, 2)) {
_gm->say(kStringArsanoRoger1);
@@ -2035,6 +2585,27 @@ bool ArsanoRoger::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ArsanoGlider::ArsanoGlider(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 19;
+ _id = GLIDER;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,15);
+ _objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON1,PRESS,0,0,0);
+ _objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON2,PRESS,1,1,0);
+ _objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON3,PRESS,2,2,0);
+ _objectState[4] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON4,PRESS,3,3,0);
+ _objectState[5] = Object(_id, kStringKeycard,kStringDefaultDescription,GLIDER_KEYCARD,TAKE|COMBINABLE,255,255,0);
+ _objectState[6] = Object(_id, kStringSlot,kStringDefaultDescription,GLIDER_SLOT,COMBINABLE,4,4,0);
+ _objectState[7] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE,5,6,6);
+ _objectState[8] = Object(_id, kStringKeyboard,kStringDefaultDescription,GLIDER_BUTTONS,NULLTYPE,7,7,0);
+ _objectState[9] = Object(_id, kStringAnnouncement,kStringAnnouncementDescription,GLIDER_DISPLAY,NULLTYPE,8,8,0);
+ _objectState[10] = Object(_id, kStringInstruments,kStringAnnouncementDescription,GLIDER_INSTRUMENTS,NULLTYPE,9,9,0);
+}
+
void ArsanoGlider::animation() {
if (isSectionVisible(8)) {
setSectionVisible(24 + _sinus, false);
@@ -2112,6 +2683,31 @@ bool ArsanoGlider::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+ArsanoMeetup2::ArsanoMeetup2(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 38;
+ _id = MEETUP2;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringRoger, kStringDefaultDescription, ROGER_W, TALK, 255, 255, 0);
+ _objectState[1] = Object(_id, kStringSpaceshift, kStringDefaultDescription, SPACESHIP, COMBINABLE, 255, 255, 0);
+ _objectState[2] = Object(_id, kStringCave, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CAVE, 22);
+
+ _dialog1[0] = kStringDialogArsanoMeetup2_1;
+ _dialog1[1] = kStringDialogArsanoMeetup2_2;
+ _dialog2[0] = kStringDialogArsanoMeetup2_3;
+ _dialog2[1] = kStringDialogArsanoMeetup2_4;
+ _dialog3[0] = kStringDialogArsanoMeetup2_5;
+ _dialog3[1] = kStringDialogArsanoMeetup2_6;
+ _dialog3[2] = kStringDialogArsanoMeetup2_7;
+ _dialog3[3] = kStringDialogArsanoMeetup2_8;
+ _dialog4[0] = kStringDialogArsanoMeetup2_9;
+ _dialog4[1] = kStringDialogArsanoMeetup2_10;
+ _dialog4[2] = kStringDialogArsanoMeetup2_11;
+}
+
void ArsanoMeetup2::onEntrance() {
if (sentenceRemoved(0, 1)) {
if (sentenceRemoved(1, 1))
@@ -2243,6 +2839,30 @@ void ArsanoMeetup2::shipStart() {
_vm->renderImage(11 + 128);
}
+ArsanoMeetup3::ArsanoMeetup3(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 39;
+ _id = MEETUP3;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringUfo,kStringUfoDescription,UFO,EXIT,0,0,0,NULLROOM,3);
+ _objectState[1] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,1,1,0);
+ _objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
+
+ _dialog2[0] = kStringArsanoDialog1;
+ _dialog2[1] = kStringDialogArsanoMeetup3_1;
+ _dialog2[2] = kStringDialogArsanoMeetup3_2;
+ _dialog2[3] = kStringDialogArsanoMeetup3_3;
+ _dialog3[0] = kStringDialogArsanoMeetup3_4;
+ _dialog3[1] = kStringDialogArsanoMeetup3_5;
+
+ _dialogsX[0] = kStringDialogX1;
+ _dialogsX[1] = kStringDialogX2;
+ _dialogsX[2] = kStringDialogX3;
+}
+
bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
byte row2[6] = {1, 1, 1, 1, 0, 0};
byte row3[6] = {1, 1, 0, 0, 0, 0};
@@ -2360,6 +2980,29 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+// Axacuss
+AxacussCell::AxacussCell(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 43;
+ _id = CELL;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[31] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,CELL_BUTTON,PRESS,1,1,0);
+ _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,CELL_DOOR,EXIT|OPENABLE|CLOSED,0,0,31+128,CORRIDOR4,1);
+ _objectState[2] = Object(_id, kStringTray,kStringTrayDescription,TRAY,UNNECESSARY,255,255,0);
+ _objectState[3] = Object(_id, kStringLamp,kStringLampDescription,NULLOBJECT,COMBINABLE,3,3,0);
+ _objectState[4] = Object(_id, kStringEyes,kStringEyesDescription,NULLOBJECT,NULLTYPE,4,4,0);
+ _objectState[5] = Object(_id, kStringWire,kStringDefaultDescription,CELL_WIRE,COMBINABLE|TAKE,6,6,0);
+ _objectState[6] = Object(_id, kStringSocket,kStringSocketDescription,SOCKET,COMBINABLE,5,5,0);
+ _objectState[7] = Object(_id, kStringMetalBlock,kStringMetalBlockDescription,MAGNET,TAKE|COMBINABLE,255,255,30);
+ _objectState[8] = Object(_id, kStringRobot,kStringRobotDescription,NULLOBJECT,NULLTYPE,255,255,0);
+ _objectState[9] = Object(_id, kStringTable,kStringTableDescription,CELL_TABLE,COMBINABLE,2,2,0);
+}
+
void AxacussCell::onEntrance() {
if (_gm->_state._dream) {
_vm->renderMessage(kStringAxacussCell_1);
@@ -2533,15 +3176,69 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussCorridor1::AxacussCorridor1(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR1;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[13] = kShownTrue;
+ _shown[21] = kShownTrue;
+ _shown[23] = kShownTrue;
+ _shown[25] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,GUARD3,2);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR2,22);
+}
void AxacussCorridor1::onEntrance() {
_gm->corridorOnEntrance();
}
+
+AxacussCorridor2::AxacussCorridor2(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR2;
+ _shown[0] = kShownTrue;
+ _shown[2] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[17] = kShownTrue;
+ _shown[21] = kShownTrue;
+ _shown[24] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR1,2);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR3,22);
+ _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,CORRIDOR4,14);
+}
+
void AxacussCorridor2::onEntrance() {
_gm->corridorOnEntrance();
}
+AxacussCorridor3::AxacussCorridor3(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR3;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[19] = kShownTrue;
+ _shown[23] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR2,2);
+}
+
void AxacussCorridor3::onEntrance() {
_gm->corridorOnEntrance();
}
@@ -2553,6 +3250,31 @@ void AxacussCorridor4::onEntrance() {
_gm->busted(0);
}
+AxacussCorridor4::AxacussCorridor4(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR4;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[2] = kShownTrue;
+ _shown[8] = kShownTrue;
+ _shown[9] = kShownTrue;
+ _shown[11] = kShownTrue;
+ _shown[15] = kShownTrue;
+ _shown[18] = kShownTrue;
+ _shown[20] = kShownTrue;
+ _shown[26] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,CORRIDOR2,10);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,GUARD,14);
+ _objectState[2] = Object(_id, kStringCellDoor,kStringCellDoorDescription,DOOR,EXIT|OPENABLE|OPENED|CLOSED,7,7,0,CELL,16);
+ _objectState[3] = Object(_id, kStringLaptop,kStringDefaultDescription,NEWSPAPER,TAKE,6,6,8);
+ _objectState[4] = Object(_id, kStringWristwatch,kStringDefaultDescription,WATCH,TAKE|COMBINABLE,255,255,8);
+ _objectState[5] = Object(_id, kStringTable,kStringDefaultDescription,TABLE,COMBINABLE,5,5,0);
+}
+
void AxacussCorridor4::animation() {
}
@@ -2583,6 +3305,41 @@ bool AxacussCorridor4::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussCorridor5::AxacussCorridor5(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR5;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[12] = kShownTrue;
+ _shown[22] = kShownTrue;
+ _shown[23] = kShownTrue;
+ _shown[24] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,2,2,0,NULLROOM,2);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR6,22);
+
+ _dialog1[0] = kStringDialogAxacussCorridor5_1;
+ _dialog1[1] = kStringDialogAxacussCorridor5_2;
+ _dialog2[0] = kStringDialogAxacussCorridor5_3;
+ _dialog2[1] = kStringDialogAxacussCorridor5_4;
+ _dialog3[0] = kStringDialogAxacussCorridor5_5;
+ _dialog3[1] = kStringDialogAxacussCorridor5_6;
+ _dialog3[2] = kStringDialogAxacussCorridor5_7;
+ _dialog3[3] = kStringDialogAxacussCorridor5_7;
+
+ _rows[0] = 1;
+ _rows[1] = 1;
+ _rows[2] = 1;
+ _rows[3] = 1;
+ _rows[4] = 0;
+ _rows[5] = 0;
+}
+
void AxacussCorridor5::onEntrance() {
_gm->corridorOnEntrance();
}
@@ -2665,6 +3422,26 @@ bool AxacussCorridor5::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
+AxacussCorridor6::AxacussCorridor6(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR6;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[6] = kShownTrue;
+ _shown[22] = kShownTrue;
+ _shown[24] = kShownTrue;
+ _shown[25] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR5,2);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,22);
+ _objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,OPENABLE|CLOSED,255,255,0,CORRIDOR8,13);
+}
+
void AxacussCorridor6::onEntrance() {
_gm->corridorOnEntrance();
}
@@ -2685,10 +3462,47 @@ bool AxacussCorridor6::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussCorridor7::AxacussCorridor7(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR7;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[10] = kShownTrue;
+ _shown[21] = kShownTrue;
+ _shown[24] = kShownTrue;
+ _shown[25] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR6,2);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,GUARD,22);
+}
+
void AxacussCorridor7::onEntrance() {
_gm->corridorOnEntrance();
}
+AxacussCorridor8::AxacussCorridor8(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR8;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[4] = kShownTrue;
+ _shown[15] = kShownTrue;
+ _shown[20] = kShownTrue;
+ _shown[22] = kShownTrue;
+ _shown[28] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,CORRIDOR6,10);
+ _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,BCORRIDOR,22);
+}
+
void AxacussCorridor8::onEntrance() {
_gm->corridorOnEntrance();
}
@@ -2717,6 +3531,24 @@ bool AxacussCorridor8::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussCorridor9::AxacussCorridor9(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 16;
+ _id = CORRIDOR9;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[14] = kShownTrue;
+ _shown[19] = kShownTrue;
+ _shown[23] = kShownTrue;
+ _shown[28] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,BCORRIDOR,2);
+ _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,GUARD,10);
+}
+
void AxacussCorridor9::onEntrance() {
_gm->corridorOnEntrance();
}
@@ -2744,6 +3576,25 @@ bool AxacussCorridor9::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussBcorridor::AxacussBcorridor(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 6;
+ _id = BCORRIDOR;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR1,NULLTYPE,4,4,0);
+ _objectState[1] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR2,NULLTYPE,5,5,0);
+ _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,6,6,0,CORRIDOR8,2);
+ _objectState[3] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,7,7,0,CORRIDOR9,22);
+ _objectState[4] = Object(_id, kStringDoor,kStringDoorDescription1,DOOR1,EXIT|OPENABLE|CLOSED|OCCUPIED,0,0,1,OFFICE_L1,6);
+ _objectState[5] = Object(_id, kStringDoor,kStringDoorDescription2,DOOR2,EXIT|OPENABLE|CLOSED|OCCUPIED,1,1,2,OFFICE_L2,16);
+ _objectState[6] = Object(_id, kStringDoor,kStringDoorDescription3,DOOR3,EXIT|OPENABLE|OPENED,2,2,3,OFFICE_R1,8);
+ _objectState[7] = Object(_id, kStringDoor,kStringDoorDescription4,DOOR4,EXIT|OPENABLE|CLOSED|OCCUPIED,3,3,4,OFFICE_R2,18);
+}
+
void AxacussBcorridor::onEntrance() {
_gm->corridorOnEntrance();
if (isSectionVisible(7))
@@ -2827,6 +3678,26 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussIntersection::AxacussIntersection(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 40;
+ _id = GUARD;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CORRIDOR4, 21);
+ _objectState[1] = Object(_id, kStringCorridor, kStringDefaultDescription, NULLOBJECT, EXIT, 3, 3, 0, CORRIDOR7, 5);
+ _objectState[2] = Object(_id, kStringDoor, kStringDefaultDescription, DOOR, EXIT | OPENABLE, 1, 1, 6, CORRIDOR9, 3);
+ _objectState[3] = Object(_id, kStringAxacussan, kStringAxacussanDescription, GUARDIAN, TALK, 0, 0, 0);
+ _objectState[4] = Object(_id, kStringImage, kStringImageDescription2, NULLOBJECT, NULLTYPE, 2, 2, 0);
+ _objectState[5] = Object(_id, kStringMastercard, kStringMastercardDescription, MASTERKEYCARD, TAKE | COMBINABLE, 255, 255, 1);
+
+ _dialogsX[0] = kStringDialogX1;
+ _dialogsX[1] = kStringDialogX2;
+ _dialogsX[2] = kStringDialogX3;
+}
+
bool AxacussIntersection::interact(Action verb, Object &obj1, Object &obj2) {
byte rowsX[6] = {1, 1, 1, 0, 0, 0};
@@ -2857,6 +3728,27 @@ bool AxacussIntersection::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussExit::AxacussExit(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 42;
+ _id = GUARD3;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR1,22);
+ _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,0,0,0,NULLROOM,20);
+ _objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,15);
+ _objectState[3] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,2,2,11,OFFICE_L,0);
+ _objectState[4] = Object(_id, kStringLamp2,kStringDefaultDescription,LAMP,COMBINABLE,3,3,0);
+ _objectState[5] = Object(_id, kStringAxacussan,kStringDefaultDescription,GUARDIAN,TALK,5,5,0);
+ _objectState[6] = Object(_id, kStringImage,kStringGenericDescription5,NULLOBJECT,NULLTYPE,4,4,0);
+
+ _dialogsX[0] = kStringDialogX1;
+ _dialogsX[1] = kStringDialogX2;
+ _dialogsX[2] = kStringDialogX3;
+}
+
bool AxacussExit::interact(Action verb, Object &obj1, Object &obj2) {
byte rowsX[6] = {1, 1, 1, 0, 0, 0};
@@ -2887,6 +3779,25 @@ bool AxacussExit::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussOffice1::AxacussOffice1(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 7;
+ _id = OFFICE_L1;
+ _shown[0] = kShownTrue;
+ _shown[2] = kShownTrue;
+ _shown[7] = kShownTrue;
+ _shown[9] = kShownTrue;
+ _shown[16] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
+ _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
+ _objectState[2] = Object(_id, kStringMoney,kStringMoneyDescription1,MONEY,TAKE,255,255,0);
+ _objectState[3] = Object(_id, kStringLocker,kStringLockerDescription,LOCKER,OPENABLE|CLOSED,5,5,0);
+ _objectState[4] = Object(_id, kStringLetter,kStringDefaultDescription,LETTER,UNNECESSARY,3,3,0);
+}
+
bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
Common::String input;
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
@@ -2972,6 +3883,24 @@ bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussOffice2::AxacussOffice2(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 7;
+ _id = OFFICE_L2;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[9] = kShownTrue;
+ _shown[16] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
+ _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
+ _objectState[2] = Object(_id, kStringCube,kStringGenericDescription6,NULLOBJECT,NULLTYPE,0,0,0);
+ _objectState[3] = Object(_id, kStringImage,kStringGenericDescription7,NULLOBJECT,NULLTYPE,1,1,0);
+ _objectState[4] = Object(_id, kStringStrangeThing,kStringGenericDescription8,NULLOBJECT,UNNECESSARY,2,2,0);
+}
+
bool AxacussOffice2::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
obj1.hasProperty(OPENED)) {
@@ -2999,6 +3928,24 @@ bool AxacussOffice2::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussOffice3::AxacussOffice3(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 8;
+ _id = OFFICE_R1;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+ _shown[3] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
+ _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
+ _objectState[2] = Object(_id, kStringImage,kStringImageDescription2,NULLOBJECT,UNNECESSARY,1,1,0);
+ _objectState[3] = Object(_id, kStringImage,kStringImageDescription2,PAINTING,UNNECESSARY,2,2,0);
+ _objectState[4] = Object(_id, kStringPlant,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,3,3,0);
+ _objectState[5] = Object(_id, kNoString,kStringDefaultDescription,MONEY,TAKE|COMBINABLE,255,255,0);
+}
+
bool AxacussOffice3::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
obj1.hasProperty(OPENED)) {
@@ -3030,6 +3977,22 @@ bool AxacussOffice3::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussOffice4::AxacussOffice4(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 8;
+ _id = OFFICE_R2;
+ _shown[0] = kShownTrue;
+ _shown[2] = kShownTrue;
+ _shown[3] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
+ _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
+ _objectState[2] = Object(_id, kStringStatue,kStringStatueDescription,NULLOBJECT,UNNECESSARY,6,6,0);
+ _objectState[3] = Object(_id, kStringPlant,kStringPlantDescription,NULLOBJECT,UNNECESSARY,5,5,0);
+}
+
bool AxacussOffice4::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) && obj1.hasProperty(OPENED)) {
_vm->renderImage(_gm->invertSection(3));
@@ -3056,6 +4019,23 @@ bool AxacussOffice4::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussOffice5::AxacussOffice5(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 7;
+ _id = OFFICE_L;
+ _shown[0] = kShownTrue;
+ _shown[3] = kShownTrue;
+ _shown[5] = kShownTrue;
+ _shown[17] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,17,GUARD3,9);
+ _objectState[1] = Object(_id, kStringComputer,kStringComputerDescription,COMPUTER,COMBINABLE,4,4,0);
+ _objectState[2] = Object(_id, kStringGraffiti,kStringGraffitiDescription,NULLOBJECT,NULLTYPE,7,7,0);
+ _objectState[3] = Object(_id, kStringMoney,kStringMoneyDescription2,MONEY,TAKE,8,8,0);
+}
+
void AxacussOffice5::onEntrance() {
_gm->great(5);
}
@@ -3074,6 +4054,20 @@ bool AxacussOffice5::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussElevator::AxacussElevator(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 3;
+ _id = ELEVATOR;
+ _shown[0] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,0,0,0);
+ _objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,1,1,0);
+ _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,255,255,0,NULLROOM,22);
+ _objectState[3] = Object(_id, kStringJungle,kStringJungleDescription,JUNGLE,NULLTYPE,255,255,0,STATION,2);
+}
+
bool AxacussElevator::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_WALK) && (obj1._id == DOOR)) {
g_system->fillScreen(kColorBlack);
@@ -3135,6 +4129,17 @@ bool AxacussElevator::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussStation::AxacussStation(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 5;
+ _id = STATION;
+ _shown[0] = kShownTrue;
+ _objectState[0] = Object(_id, kStringSign,kStringDefaultDescription,STATION_SIGN,NULLTYPE,0,0,0);
+ _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,7);
+}
+
bool AxacussStation::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_LOOK) && (obj1._id == STATION_SIGN)) {
_gm->changeRoom(SIGN);
@@ -3150,6 +4155,19 @@ bool AxacussStation::interact(Action verb, Object &obj1, Object &obj2) {
return true;
}
+AxacussSign::AxacussSign(SupernovaEngine *vm, GameManager *gm) {
+ _vm = vm;
+ _gm = gm;
+
+ _fileNumber = 32;
+ _id = SIGN;
+ _shown[0] = kShownTrue;
+ _shown[1] = kShownTrue;
+
+ _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,STATION,22);
+ _objectState[1] = Object(_id, kStringSlot,kStringDefaultDescription,STATION_SLOT,COMBINABLE,0,0,0);
+}
+
bool AxacussSign::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_USE) && Object::combine(obj1, obj2, STATION_SLOT, MONEY) &&
isSectionVisible(1)) {
@@ -3163,6 +4181,7 @@ bool AxacussSign::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
+
Outro::Outro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h
index b76c01f..e544997 100644
--- a/engines/supernova/rooms.h
+++ b/engines/supernova/rooms.h
@@ -39,76 +39,25 @@ class SupernovaEngine;
class Room {
public:
- Room() {
- _seen = false;
- for (int i = 0; i < kMaxSection; ++i)
- _shown[i] = kShownFalse;
- for (int i = 0; i < kMaxDialog; ++i)
- _sentenceRemoved[i] = 0;
- }
-
- bool hasSeen() {
- return _seen;
- }
- void setRoomSeen(bool seen) {
- _seen = seen;
- }
-
- int getFileNumber() const {
- return _fileNumber;
- }
- RoomId getId() const {
- return _id;
- }
-
- void setSectionVisible(uint section, bool visible) {
- _shown[section] = visible ? kShownTrue : kShownFalse;
- }
-
- bool isSectionVisible(uint index) const {
- return _shown[index] == kShownTrue;
- }
-
- void removeSentence(int sentence, int number) {
- if (number > 0)
- _sentenceRemoved[number - 1] |= (1 << sentence);
- }
-
- void addSentence(int sentence, int number) {
- if (number > 0)
- _sentenceRemoved[number - 1] &= ~(1 << sentence);
- }
-
- void addAllSentences(int number) {
- if (number > 0)
- _sentenceRemoved[number - 1] = 0;
- }
-
- bool sentenceRemoved(int sentence, int number) {
- if (number <= 0)
- return false;
- return (_sentenceRemoved[number - 1] & (1 << sentence));
- }
-
- bool allSentencesRemoved(int maxSentence, int number) {
- if (number <= 0)
- return false;
- for (int i = 0, flag = 1 ; i < maxSentence ; ++i, flag <<= 1)
- if (!(_sentenceRemoved[number - 1] & flag))
- return false;
- return true;
- }
-
- Object *getObject(uint index) {
- return &_objectState[index];
- }
-
- virtual ~Room() {}
- virtual void animation() {}
- virtual void onEntrance() {}
- virtual bool interact(Action verb, Object &obj1, Object &obj2) {
- return false;
- }
+ Room();
+
+ bool hasSeen();
+ void setRoomSeen(bool seen);
+ int getFileNumber() const;
+ RoomId getId() const;
+ void setSectionVisible(uint section, bool visible);
+ bool isSectionVisible(uint index) const;
+ void removeSentence(int sentence, int number);
+ void addSentence(int sentence, int number);
+ void addAllSentences(int number);
+ bool sentenceRemoved(int sentence, int number);
+ bool allSentencesRemoved(int maxSentence, int number);
+ Object *getObject(uint index);
+
+ virtual ~Room();
+ virtual void animation();
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual bool serialize(Common::WriteStream *out);
virtual bool deserialize(Common::ReadStream *in, int version);
@@ -150,66 +99,21 @@ private:
// Spaceship
class ShipCorridor : public Room {
public:
- ShipCorridor(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 17;
- _id = CORRIDOR;
- _shown[0] = kShownTrue;
- _shown[4] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringHatch, kStringDefaultDescription, HATCH1, OPENABLE | EXIT, 0, 6, 1, CABIN_L1, 15);
- _objectState[1] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 1, 7, 2, CABIN_L2, 10);
- _objectState[2] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 2, 8, 3, CABIN_L3, 5);
- _objectState[3] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 5, 11, 6, CABIN_R1, 19);
- _objectState[4] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 4, 10, 5, CABIN_R2, 14);
- _objectState[5] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT | OPENED, 9, 3, 4, CABIN_R3, 9);
- _objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 12, 12, 0, AIRLOCK, 2);
- _objectState[7] = Object(_id, kStringButton, kStringHatchButtonDescription, BUTTON, PRESS, 13, 13, 0, NULLROOM, 0);
- _objectState[8] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 14, 14, 0, NULLROOM, 0);
- _objectState[9] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 15, 15, 0, HALL, 22);
- }
+ ShipCorridor(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipHall: public Room {
public:
- ShipHall(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 15;
- _id = HALL;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringHatch, kStringCockpitHatchDescription, NULLOBJECT, OPENABLE | EXIT, 4, 5, 1, COCKPIT, 10);
- _objectState[1] = Object(_id, kStringHatch, kStringKitchenHatchDescription, KITCHEN_HATCH, OPENABLE | EXIT, 0, 0, 0, NULLROOM, 1);
- _objectState[2] = Object(_id, kStringHatch, kStringStasisHatchDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 1, 1, 2, SLEEP, 8);
- _objectState[3] = Object(_id, kStringSlot, kStringSlotDescription, SLEEP_SLOT, COMBINABLE, 2, 2, 0, NULLROOM, 0);
- _objectState[4] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 3, SLEEP, 0, NULLROOM, 0);
- _objectState[5] = Object(_id, kStringCorridor, kStringDefaultDescription, NULLOBJECT, EXIT, 6, 6, 0, CORRIDOR, 19);
- }
+ ShipHall(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipSleepCabin: public Room {
public:
- ShipSleepCabin(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 33;
- _id = SLEEP;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
- _objectState[1] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
- _objectState[2] = Object(_id, kStringComputer, kStringDefaultDescription, COMPUTER, NULLTYPE, 2, 2, 0, NULLROOM, 0);
- _objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
- }
+ ShipSleepCabin(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void animation();
@@ -221,19 +125,7 @@ private:
class ShipCockpit : public Room {
public:
- ShipCockpit(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 9;
- _id = COCKPIT;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringInstruments, kStringInstrumentsDescription1, INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
- _objectState[1] = Object(_id, kStringMonitor, kStringDefaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
- _objectState[2] = Object(_id, kStringMonitor, kStringMonitorDescription, NULLOBJECT, TAKE, 1, 0, 0, NULLROOM, 0);
- _objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
- }
+ ShipCockpit(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void animation();
@@ -245,199 +137,36 @@ private:
class ShipCabinL1: public Room {
public:
- ShipCabinL1(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 21;
- _id = CABIN_L1;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[2] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringImage, kStringGenericDescription1, NULLOBJECT, UNNECESSARY, 5, 5, 0, NULLROOM, 0);
- _objectState[1] = Object(_id, kStringImage, kStringGenericDescription2, NULLOBJECT, UNNECESSARY, 6, 6, 0, NULLROOM, 0);
- _objectState[2] = Object(_id, kStringImage, kStringGenericDescription3, NULLOBJECT, UNNECESSARY, 7, 7, 0, NULLROOM, 0);
- _objectState[3] = Object(_id, kStringMagnete, kStringMagneteDescription, NULLOBJECT, UNNECESSARY, 8, 8, 0, NULLROOM, 0);
- _objectState[4] = Object(_id, kStringImage, kStringGenericDescription4, NULLOBJECT, UNNECESSARY, 9, 9, 0);
- _objectState[5] = Object(_id, kStringPen, kStringPenDescription, PEN, TAKE | COMBINABLE, 10, 10, 5 | 128);
- _objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | OPENED | EXIT, 3, 3, 24 | 128, CORRIDOR, 9);
- _objectState[7] = Object(_id, kStringSlot, kStringSlotDescription, NULLOBJECT, COMBINABLE, 0, 0, 0);
- _objectState[8] = Object(_id, kStringShelf, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 1, 1, 0);
- _objectState[9] = Object(_id, kStringCompartment, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 2, 2, 0);
- _objectState[10] = Object(_id, kStringSocket, kStringDefaultDescription, SOCKET, COMBINABLE, 4, 4, 0);
- _objectState[11] = Object(_id, kStringToilet, kStringDefaultDescription, BATHROOM_DOOR, EXIT, 255, 255, 0, BATHROOM, 22);
- }
+ ShipCabinL1(SupernovaEngine *vm, GameManager *gm);
};
class ShipCabinL2 : public Room {
public:
- ShipCabinL2(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 21;
- _id = CABIN_L2;
- _shown[0] = kShownTrue;
- _shown[16] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL1,COMBINABLE,31,31,0);
- _objectState[1] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL2,COMBINABLE,32,32,0);
- _objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL3,COMBINABLE,33,33,0);
- _objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL4,COMBINABLE,45,45,0);
- _objectState[4] = Object(_id, kStringShelf,kStringDefaultDescription,SHELF_L1,OPENABLE | CLOSED,25,26,17);
- _objectState[5] = Object(_id, kStringPistol,kStringPistolDescription,PISTOL,TAKE,39,39,20);
- _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L2,OPENABLE | CLOSED,27,28,18);
- _objectState[7] = Object(_id, kStringBooks,kStringBooksDescription,NULLOBJECT,UNNECESSARY,40,40,0);
- _objectState[8] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L3,OPENABLE | CLOSED,29,30,19);
- _objectState[9] = Object(_id, kStringSpool,kStringSpoolDescription, SPOOL,TAKE | COMBINABLE,41,41,21);
- _objectState[10] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L4,OPENABLE | CLOSED,43,44,22);
- _objectState[11] = Object(_id, kStringBook,kStringDefaultDescription,BOOK2,TAKE,46,46,23);
- _objectState[12] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,34,34,0);
- _objectState[13] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,35,35,0);
- _objectState[14] = Object(_id, kStringClothes,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,36,36,0);
- _objectState[15] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,37,37,0);
- _objectState[16] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,38,38,0);
- _objectState[17] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,23,23,0);
- _objectState[18] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
- _objectState[19] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
- _objectState[20] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
- _objectState[21] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
- _objectState[22] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
- _objectState[23] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
- _objectState[24] = Object(_id, kStringFolders,kStringFoldersDescription,NULLOBJECT,UNNECESSARY,49,49,0);
- }
+ ShipCabinL2(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipCabinL3 : public Room {
public:
- ShipCabinL3(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 21;
- _id = CABIN_L3;
- _shown[0] = kShownTrue;
- _shown[6] = kShownTrue;
- _shown[7] = kShownTrue;
- _shown[8] = kShownTrue;
- _shown[9] = kShownTrue;
- _shown[12] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringPoster,kStringPosterDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
- _objectState[1] = Object(_id, kStringPoster,kStringPosterDescription2,NULLOBJECT,UNNECESSARY,12,12,0);
- _objectState[2] = Object(_id, kStringSpeaker,kStringDefaultDescription,NULLOBJECT,NULLTYPE,13,13,0);
- _objectState[3] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,14,14,0);
- _objectState[4] = Object(_id, kStringRecord,kStringRecordDescription,RECORD,TAKE | COMBINABLE,15,15,8 | 128);
- _objectState[5] = Object(_id, kStringRecordStand,kStringRecordStandDescription,NULLOBJECT,UNNECESSARY,16,16,0);
- _objectState[6] = Object(_id, kStringButton,kStringDefaultDescription,TURNTABLE_BUTTON,PRESS,22,22,0);
- _objectState[7] = Object(_id, kStringTurntable,kStringTurntableDescription,TURNTABLE,UNNECESSARY | COMBINABLE,17,17,0);
- _objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,WIRE,COMBINABLE,18,18,0);
- _objectState[9] = Object(_id, kStringWire,kStringDefaultDescription,WIRE2,COMBINABLE,19,19,0);
- _objectState[10] = Object(_id, kStringPlug,kStringDefaultDescription,PLUG,COMBINABLE,20,20,0);
- _objectState[11] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
- _objectState[12] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
- _objectState[13] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
- _objectState[14] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
- _objectState[15] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
- _objectState[16] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
- }
+ ShipCabinL3(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipCabinR1 : public Room {
public:
- ShipCabinR1(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 22;
- _id = CABIN_R1;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[2] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringImage,kStringImageDescription1,NULLOBJECT,UNNECESSARY,5,5,0);
- _objectState[1] = Object(_id, kStringDrawingInstruments,kStringDrawingInstrumentsDescription,NULLOBJECT,UNNECESSARY,6,6,0);
- _objectState[2] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,7,7,0);
- _objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
- _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
- _objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
- _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
- _objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
- _objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
- }
+ ShipCabinR1(SupernovaEngine *vm, GameManager *gm);
};
class ShipCabinR2 : public Room {
public:
- ShipCabinR2(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 22;
- _id = CABIN_R2;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
- _objectState[1] = Object(_id, kStringTennisRacket,kStringTennisRacketDescription,NULLOBJECT,UNNECESSARY,8,8,0);
- _objectState[2] = Object(_id, kStringTennisBall,kStringGenericDescription2,NULLOBJECT,UNNECESSARY,9,9,0);
- _objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
- _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
- _objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
- _objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
- _objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
- _objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
- }
+ ShipCabinR2(SupernovaEngine *vm, GameManager *gm);
};
class ShipCabinR3 : public Room {
public:
- ShipCabinR3(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 22;
- _id = CABIN_R3;
- _shown[0] = kShownTrue;
- _shown[7] = kShownTrue;
- _shown[8] = kShownTrue;
- _shown[15] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription2,CHESS,TAKE | COMBINABLE,12,12,7 | 128);
- _objectState[1] = Object(_id, kStringBed,kStringBedDescription,NULLOBJECT,NULLTYPE,13,13,0);
- _objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K1,COMBINABLE,27,27,0);
- _objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K2,COMBINABLE,28,28,0);
- _objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K3,COMBINABLE,29,29,0);
- _objectState[5] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K4,COMBINABLE,30,30,0);
- _objectState[6] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF1,OPENABLE | CLOSED,14,18,9);
- _objectState[7] = Object(_id, kStringAlbums,kStringAlbumsDescription,NULLOBJECT,UNNECESSARY,14,14,0);
- _objectState[8] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF2,OPENABLE | CLOSED,15,19,10);
- _objectState[9] = Object(_id, kStringRope,kStringRopeDescription,ROPE,TAKE | COMBINABLE,15,15,12);
- _objectState[10] = Object(_id, kStringShelf,kStringShelfDescription,SHELF3,OPENABLE | CLOSED,16,17,11);
- _objectState[11] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,20,20,0);
- _objectState[12] = Object(_id, kStringClothes,kStringClothesDescription,NULLOBJECT,UNNECESSARY,21,21,0);
- _objectState[13] = Object(_id, kStringUnderwear,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,22,22,0);
- _objectState[14] = Object(_id, kStringSocks,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,23,23,0);
- _objectState[15] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF4,OPENABLE | CLOSED,24,25,13);
- _objectState[16] = Object(_id, kStringBook,kStringBookHitchhiker,BOOK,TAKE,26,26,14);
- _objectState[17] = Object(_id, kStringDiscman,kStringDiscmanDescription,DISCMAN,TAKE | COMBINABLE,33,33,16);
- _objectState[18] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | EXIT,3,3,15 | 128,CORRIDOR,5);
- _objectState[19] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
- _objectState[20] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
- _objectState[21] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
- _objectState[22] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
- _objectState[23] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
- }
+ ShipCabinR3(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void onEntrance();
@@ -445,39 +174,12 @@ public:
class ShipCabinBathroom : public Room {
public:
- ShipCabinBathroom(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 23;
- _id = BATHROOM;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringBathroom,kStringBathroomDescription,TOILET,NULLTYPE,0,0,0);
- _objectState[1] = Object(_id, kStringShower,kStringDefaultDescription,SHOWER,NULLTYPE,1,1,0);
- _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,BATHROOM_EXIT,EXIT,255,255,0,CABIN_R3,2);
- }
+ ShipCabinBathroom(SupernovaEngine *vm, GameManager *gm);
};
class ShipAirlock : public Room {
public:
- ShipAirlock(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 34;
- _id = AIRLOCK;
- _shown[0] = kShownTrue;
- _shown[6] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringHatch,kStringHatchDescription1,NULLOBJECT,EXIT | OPENABLE | OPENED | CLOSED,0,0,0,CORRIDOR,10);
- _objectState[1] = Object(_id, kStringHatch,kStringHatchDescription2,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,HOLD,14);
- _objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,2,2,0);
- _objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,3,3,0);
- _objectState[4] = Object(_id, kStringHelmet,kStringHelmetDescription,HELMET,TAKE,4,4,7);
- _objectState[5] = Object(_id, kStringSuit,kStringSuitDescription,SUIT,TAKE,5,5,8);
- _objectState[6] = Object(_id, kStringLifeSupport,kStringLifeSupportDescription,LIFESUPPORT,TAKE,6,6,9);
- }
+ ShipAirlock(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void onEntrance();
@@ -485,27 +187,7 @@ public:
class ShipHold : public Room {
public:
- ShipHold(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 24;
- _id = HOLD;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kNoString,kStringDefaultDescription,HOLD_WIRE,COMBINABLE,255,255,0);
- _objectState[1] = Object(_id, kStringScrap,kStringScrapDescription1,SCRAP_LK,NULLTYPE,4,4,0);
- _objectState[2] = Object(_id, kStringTerminalStrip,kStringDefaultDescription,TERMINALSTRIP,COMBINABLE,255,255,0);
- _objectState[3] = Object(_id, kStringScrap,kStringScrapDescription2,NULLOBJECT,NULLTYPE,5,5,0);
- _objectState[4] = Object(_id, kStringReactor,kStringReactorDescription,NULLOBJECT,NULLTYPE,6,6,0);
- _objectState[5] = Object(_id, kStringNozzle,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
- _objectState[6] = Object(_id, kStringPumpkin,kStringPumpkinDescription,NULLOBJECT,NULLTYPE,8,8,0);
- _objectState[7] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_OUTERHATCH,EXIT | OPENABLE,1,2,2,LANDINGMODULE,6);
- _objectState[8] = Object(_id, kStringLandingModule,kStringLandingModuleDescription,NULLOBJECT,NULLTYPE,0,0,0);
- _objectState[9] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,AIRLOCK,22);
- _objectState[10] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH_TOP,EXIT | OPENABLE | OPENED,3,3,0,GENERATOR,8);
- _objectState[11] = Object(_id, kStringGenerator,kStringGeneratorDescription,GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8);
- }
+ ShipHold(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void onEntrance();
@@ -513,119 +195,41 @@ public:
class ShipLandingModule : public Room {
public:
- ShipLandingModule(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 25;
- _id = LANDINGMODULE;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringSocket,kStringDefaultDescription,LANDINGMOD_SOCKET,COMBINABLE,1,1,0);
- _objectState[1] = Object(_id, kStringButton,kSafetyButtonDescription,LANDINGMOD_BUTTON,PRESS | COMBINABLE,2,2,0);
- _objectState[2] = Object(_id, kStringMonitor,kStringDefaultDescription,LANDINGMOD_MONITOR,NULLTYPE,3,3,0);
- _objectState[3] = Object(_id, kStringKeyboard,kStringDefaultDescription,KEYBOARD,NULLTYPE,4,4,0);
- _objectState[4] = Object(_id, kNoString,kStringDefaultDescription,LANDINGMOD_WIRE,COMBINABLE,255,255,0);
- _objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_HATCH,EXIT | OPENABLE | OPENED | COMBINABLE, 0,0,1 | 128,HOLD,10);
- }
+ ShipLandingModule(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipGenerator : public Room {
public:
- ShipGenerator(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 18;
- _id = GENERATOR;
- _shown[0] = kShownTrue;
- _shown[5] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringGeneratorWire,kStringDefaultDescription,GENERATOR_WIRE,COMBINABLE,255,255,0);
- _objectState[1] = Object(_id, kStringEmptySpool,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
- _objectState[2] = Object(_id, kStringKeycard2,kStringKeycard2Description,KEYCARD2,COMBINABLE | TAKE,12,12,5 | 128);
- _objectState[3] = Object(_id, kStringRope,kStringDefaultDescription,GENERATOR_ROPE,COMBINABLE,255,255,0);
- _objectState[4] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH,EXIT | OPENABLE,1,2,1,OUTSIDE,22);
- _objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,3,3,0);
- _objectState[6] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,4,4,0);
- _objectState[7] = Object(_id, kStringTrap,kStringDefaultDescription,TRAP,OPENABLE,5,6,2);
- _objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
- _objectState[9] = Object(_id, kStringVoltmeter,kStringDefaultDescription,VOLTMETER,NULLTYPE,9,9,0,NULLROOM,0);
- _objectState[10] = Object(_id, kStringClip,kStringDefaultDescription,CLIP,COMBINABLE,8,8,0);
- _objectState[11] = Object(_id, kStringWire,kStringWireDescription,SHORT_WIRE,COMBINABLE,10,10,0);
- _objectState[12] = Object(_id, kStringLadder,kStringDefaultDescription,LADDER,EXIT,0,0,0,HOLD,1);
- }
+ ShipGenerator(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
class ShipOuterSpace : public Room {
public:
- ShipOuterSpace(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 4;
- _id = OUTSIDE;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,GENERATOR,3);
- _objectState[1] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
- }
+ ShipOuterSpace(SupernovaEngine *vm, GameManager *gm);
};
+
// Arsano
class ArsanoRocks : public Room {
public:
- ArsanoRocks(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 12;
- _id = OUTSIDE;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY | EXIT,0,0,0,GENERATOR,12);
- _objectState[1] = Object(_id, kStringStone,kStringDefaultDescription,STONE,NULLTYPE,1,1,0);
- _objectState[2] = Object(_id, kStringStone,kStringDefaultDescription,NULLOBJECT,NULLTYPE,2,2,0);
- _objectState[3] = Object(_id, kStringCaveOpening,kStringCaveOpeningDescription,NULLOBJECT,NULLTYPE,255,255,0,CAVE,1);
- }
+ ArsanoRocks(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class ArsanoCave : public Room {
public:
- ArsanoCave(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 12;
- _id = CAVE;
-
- _objectState[0] = Object(_id, kStringExit,kStringExitDescription,NULLOBJECT,EXIT,255,255,0,ROCKS,22);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,2);
- }
+ ArsanoCave(SupernovaEngine *vm, GameManager *gm);
};
+
class ArsanoMeetup : public Room {
public:
- ArsanoMeetup(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 37;
- _id = MEETUP;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
- _objectState[1] = Object(_id, kStringSign,kStringSignDescription,MEETUP_SIGN,NULLTYPE,0,0,0);
- _objectState[2] = Object(_id, kStringEntrance,kStringDefaultDescription,DOOR,EXIT,1,1,0,ENTRANCE,7);
- _objectState[3] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,2,2,0);
- _objectState[4] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIPS,COMBINABLE,3,3,0);
- _objectState[5] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIP,COMBINABLE,4,4,0);
- }
+ ArsanoMeetup(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual void animation();
@@ -635,52 +239,10 @@ private:
byte _sign;
byte _beacon;
};
+
class ArsanoEntrance : public Room {
public:
- ArsanoEntrance(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 10;
- _id = ENTRANCE;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringPorter,kStringPorterDescription,PORTER,TALK,0,0,0);
- _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,NULLROOM,5);
- _objectState[2] = Object(_id, kStringSign,kStringSignDescription,KITCHEN_SIGN,NULLTYPE,2,2,0);
- _objectState[3] = Object(_id, kStringChewingGum,kStringDefaultDescription,SCHNUCK,TAKE,255,255,10+128);
- _objectState[4] = Object(_id, kStringGummyBears,kStringDefaultDescription,SCHNUCK,TAKE,255,255,11+128);
- _objectState[5] = Object(_id, kStringChocolateBall,kStringDefaultDescription,SCHNUCK,TAKE,255,255,12+128);
- _objectState[6] = Object(_id, kStringEgg,kStringDefaultDescription,EGG,TAKE,255,255,13+128);
- _objectState[7] = Object(_id, kStringLiquorice,kStringDefaultDescription,SCHNUCK,TAKE,255,255,14+128);
- _objectState[8] = Object(_id, kStringPill,kStringPillDescription,PILL,TAKE,255,255,0);
- _objectState[9] = Object(_id, kStringSlot,kStringDefaultDescription,CAR_SLOT,COMBINABLE,6,6,0);
- _objectState[10] = Object(_id, kStringVendingMachine,kStringVendingMachineDescription,NULLOBJECT,NULLTYPE,5,5,0);
- _objectState[11] = Object(_id, kStringToilet,kStringToiletDescription,ARSANO_BATHROOM,NULLTYPE,255,255,0);
- _objectState[12] = Object(_id, kStringButton,kStringDefaultDescription,BATHROOM_BUTTON,PRESS,3,3,0);
- _objectState[13] = Object(_id, kStringSign,kStringSignDescription,BATHROOM_SIGN,NULLTYPE,4,4,0);
- _objectState[14] = Object(_id, kStringStaircase,kStringDefaultDescription,STAIRCASE,EXIT,8,8,0,REST,3);
- _objectState[15] = Object(_id, kStringExit,kStringDefaultDescription,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22);
- _objectState[16] = Object(_id, kStringCoins,kStringCoinsDescription,COINS,TAKE|COMBINABLE,255,255,0);
- _objectState[17] = Object(_id, kStringTabletPackage,kStringTabletPackageDescription,PILL_HULL,TAKE,255,255,0);
-
- _dialog1[0] = kStringArsanoDialog7;
- _dialog1[1] = kStringArsanoDialog1;
- _dialog1[2] = kStringArsanoDialog8;
- _dialog1[3] = kStringArsanoDialog9;
- _dialog1[4] = kStringDialogSeparator;
-
- _dialog2[0] = kStringArsanoDialog1;
- _dialog2[1] = kStringArsanoDialog2;
- _dialog2[2] = kStringArsanoDialog3;
- _dialog2[3] = kStringArsanoDialog4;
- _dialog2[4] = kStringDialogSeparator;
-
- _dialog3[0] = kStringArsanoDialog5;
- _dialog3[1] = kStringArsanoDialog6;
-
- _eyewitness = 5;
- }
+ ArsanoEntrance(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void animation();
@@ -691,22 +253,10 @@ private:
StringId _dialog3[5];
byte _eyewitness;
};
+
class ArsanoRemaining : public Room {
public:
- ArsanoRemaining(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 28;
- _id = REST;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringStaircase,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,ENTRANCE,17);
- _objectState[1] = Object(_id, kStringChair,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,ROGER,2);
- _objectState[2] = Object(_id, kStringShoes,kStringShoesDescription,NULLOBJECT,NULLTYPE,2,2,0);
-
- _chewing = kShownTrue;
- }
+ ArsanoRemaining(SupernovaEngine *vm, GameManager *gm);
virtual void animation();
@@ -714,33 +264,10 @@ private:
bool _chewing;
int _i;
};
+
class ArsanoRoger : public Room {
public:
- ArsanoRoger(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 29;
- _id = ROGER;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,REST,19);
- _objectState[1] = Object(_id, kStringFrogFace,kStringDefaultDescription,ROGER_W,TALK,0,0,0);
- _objectState[2] = Object(_id, kStringScrible,kStringScribleDescription,NULLOBJECT,NULLTYPE,3,3,0);
- _objectState[3] = Object(_id, kStringWallet,kStringDefaultDescription,WALLET,TAKE,1,1,4);
- _objectState[4] = Object(_id, kStringMenu,kStringMenuDescription,NULLOBJECT,UNNECESSARY,2,2,0);
- _objectState[5] = Object(_id, kStringCup,kStringCupDescription,CUP,UNNECESSARY,4,4,0);
- _objectState[6] = Object(_id, kStringChessGame,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
- _objectState[7] = Object(_id, kStringBill,kStringBillDescription,NULLOBJECT,TAKE|COMBINABLE,255,255,0);
- _objectState[8] = Object(_id, kStringKeycard3,kStringDefaultDescription,KEYCARD_R,TAKE|COMBINABLE,255,255,0);
-
- _dialog1[0] = kStringDialogArsanoRoger1;
- _dialog1[1] = kStringDialogArsanoRoger2;
- _dialog1[2] = kStringDialogArsanoRoger3;
- _dialog1[3] = kStringDialogSeparator;
-
- _eyewitness = 5;
- }
+ ArsanoRoger(SupernovaEngine *vm, GameManager *gm);
virtual void animation();
virtual void onEntrance();
@@ -751,28 +278,10 @@ private:
byte _eyewitness;
byte _hands;
};
+
class ArsanoGlider : public Room {
public:
- ArsanoGlider(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 19;
- _id = GLIDER;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,15);
- _objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON1,PRESS,0,0,0);
- _objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON2,PRESS,1,1,0);
- _objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON3,PRESS,2,2,0);
- _objectState[4] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON4,PRESS,3,3,0);
- _objectState[5] = Object(_id, kStringKeycard,kStringDefaultDescription,GLIDER_KEYCARD,TAKE|COMBINABLE,255,255,0);
- _objectState[6] = Object(_id, kStringSlot,kStringDefaultDescription,GLIDER_SLOT,COMBINABLE,4,4,0);
- _objectState[7] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE,5,6,6);
- _objectState[8] = Object(_id, kStringKeyboard,kStringDefaultDescription,GLIDER_BUTTONS,NULLTYPE,7,7,0);
- _objectState[9] = Object(_id, kStringAnnouncement,kStringAnnouncementDescription,GLIDER_DISPLAY,NULLTYPE,8,8,0);
- _objectState[10] = Object(_id, kStringInstruments,kStringAnnouncementDescription,GLIDER_INSTRUMENTS,NULLTYPE,9,9,0);
- }
+ ArsanoGlider(SupernovaEngine *vm, GameManager *gm);
virtual void animation();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -780,32 +289,10 @@ public:
private:
byte _sinus;
};
+
class ArsanoMeetup2 : public Room {
public:
- ArsanoMeetup2(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 38;
- _id = MEETUP2;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringRoger, kStringDefaultDescription, ROGER_W, TALK, 255, 255, 0);
- _objectState[1] = Object(_id, kStringSpaceshift, kStringDefaultDescription, SPACESHIP, COMBINABLE, 255, 255, 0);
- _objectState[2] = Object(_id, kStringCave, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CAVE, 22);
-
- _dialog1[0] = kStringDialogArsanoMeetup2_1;
- _dialog1[1] = kStringDialogArsanoMeetup2_2;
- _dialog2[0] = kStringDialogArsanoMeetup2_3;
- _dialog2[1] = kStringDialogArsanoMeetup2_4;
- _dialog3[0] = kStringDialogArsanoMeetup2_5;
- _dialog3[1] = kStringDialogArsanoMeetup2_6;
- _dialog3[2] = kStringDialogArsanoMeetup2_7;
- _dialog3[3] = kStringDialogArsanoMeetup2_8;
- _dialog4[0] = kStringDialogArsanoMeetup2_9;
- _dialog4[1] = kStringDialogArsanoMeetup2_10;
- _dialog4[2] = kStringDialogArsanoMeetup2_11;
- }
+ ArsanoMeetup2(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -823,31 +310,10 @@ private:
//bool _found;
//bool _flug;
};
+
class ArsanoMeetup3 : public Room {
public:
- ArsanoMeetup3(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 39;
- _id = MEETUP3;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringUfo,kStringUfoDescription,UFO,EXIT,0,0,0,NULLROOM,3);
- _objectState[1] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,1,1,0);
- _objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
-
- _dialog2[0] = kStringArsanoDialog1;
- _dialog2[1] = kStringDialogArsanoMeetup3_1;
- _dialog2[2] = kStringDialogArsanoMeetup3_2;
- _dialog2[3] = kStringDialogArsanoMeetup3_3;
- _dialog3[0] = kStringDialogArsanoMeetup3_4;
- _dialog3[1] = kStringDialogArsanoMeetup3_5;
-
- _dialogsX[0] = kStringDialogX1;
- _dialogsX[1] = kStringDialogX2;
- _dialogsX[2] = kStringDialogX3;
- }
+ ArsanoMeetup3(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -857,171 +323,52 @@ private:
// TODO: Hack, to be move away and renamed when the other uses are found
StringId _dialogsX[6];
- //
};
+
// Axacuss
class AxacussCell : public Room {
public:
- AxacussCell(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 43;
- _id = CELL;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[31] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,CELL_BUTTON,PRESS,1,1,0);
- _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,CELL_DOOR,EXIT|OPENABLE|CLOSED,0,0,31+128,CORRIDOR4,1);
- _objectState[2] = Object(_id, kStringTray,kStringTrayDescription,TRAY,UNNECESSARY,255,255,0);
- _objectState[3] = Object(_id, kStringLamp,kStringLampDescription,NULLOBJECT,COMBINABLE,3,3,0);
- _objectState[4] = Object(_id, kStringEyes,kStringEyesDescription,NULLOBJECT,NULLTYPE,4,4,0);
- _objectState[5] = Object(_id, kStringWire,kStringDefaultDescription,CELL_WIRE,COMBINABLE|TAKE,6,6,0);
- _objectState[6] = Object(_id, kStringSocket,kStringSocketDescription,SOCKET,COMBINABLE,5,5,0);
- _objectState[7] = Object(_id, kStringMetalBlock,kStringMetalBlockDescription,MAGNET,TAKE|COMBINABLE,255,255,30);
- _objectState[8] = Object(_id, kStringRobot,kStringRobotDescription,NULLOBJECT,NULLTYPE,255,255,0);
- _objectState[9] = Object(_id, kStringTable,kStringTableDescription,CELL_TABLE,COMBINABLE,2,2,0);
- }
+ AxacussCell(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void animation();
virtual void onEntrance();
};
+
class AxacussCorridor1 : public Room {
public:
- AxacussCorridor1(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR1;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[13] = kShownTrue;
- _shown[21] = kShownTrue;
- _shown[23] = kShownTrue;
- _shown[25] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,GUARD3,2);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR2,22);
- }
+ AxacussCorridor1(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
};
+
class AxacussCorridor2 : public Room {
public:
- AxacussCorridor2(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR2;
- _shown[0] = kShownTrue;
- _shown[2] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[17] = kShownTrue;
- _shown[21] = kShownTrue;
- _shown[24] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR1,2);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR3,22);
- _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,CORRIDOR4,14);
- }
+ AxacussCorridor2(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
};
+
class AxacussCorridor3 : public Room {
public:
- AxacussCorridor3(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR3;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[19] = kShownTrue;
- _shown[23] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR2,2);
- }
+ AxacussCorridor3(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
};
+
class AxacussCorridor4 : public Room {
public:
- AxacussCorridor4(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR4;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[2] = kShownTrue;
- _shown[8] = kShownTrue;
- _shown[9] = kShownTrue;
- _shown[11] = kShownTrue;
- _shown[15] = kShownTrue;
- _shown[18] = kShownTrue;
- _shown[20] = kShownTrue;
- _shown[26] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,CORRIDOR2,10);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,GUARD,14);
- _objectState[2] = Object(_id, kStringCellDoor,kStringCellDoorDescription,DOOR,EXIT|OPENABLE|OPENED|CLOSED,7,7,0,CELL,16);
- _objectState[3] = Object(_id, kStringLaptop,kStringDefaultDescription,NEWSPAPER,TAKE,6,6,8);
- _objectState[4] = Object(_id, kStringWristwatch,kStringDefaultDescription,WATCH,TAKE|COMBINABLE,255,255,8);
- _objectState[5] = Object(_id, kStringTable,kStringDefaultDescription,TABLE,COMBINABLE,5,5,0);
- }
+ AxacussCorridor4(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual void animation();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussCorridor5 : public Room {
public:
- AxacussCorridor5(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR5;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[12] = kShownTrue;
- _shown[22] = kShownTrue;
- _shown[23] = kShownTrue;
- _shown[24] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,2,2,0,NULLROOM,2);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR6,22);
-
- _dialog1[0] = kStringDialogAxacussCorridor5_1;
- _dialog1[1] = kStringDialogAxacussCorridor5_2;
- _dialog2[0] = kStringDialogAxacussCorridor5_3;
- _dialog2[1] = kStringDialogAxacussCorridor5_4;
- _dialog3[0] = kStringDialogAxacussCorridor5_5;
- _dialog3[1] = kStringDialogAxacussCorridor5_6;
- _dialog3[2] = kStringDialogAxacussCorridor5_7;
- _dialog3[3] = kStringDialogAxacussCorridor5_7;
-
- _rows[0] = 1;
- _rows[1] = 1;
- _rows[2] = 1;
- _rows[3] = 1;
- _rows[4] = 0;
- _rows[5] = 0;
- }
+ AxacussCorridor5(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -1040,118 +387,38 @@ private:
class AxacussCorridor6 : public Room {
public:
- AxacussCorridor6(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR6;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[6] = kShownTrue;
- _shown[22] = kShownTrue;
- _shown[24] = kShownTrue;
- _shown[25] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR5,2);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,22);
- _objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,OPENABLE|CLOSED,255,255,0,CORRIDOR8,13);
- }
+ AxacussCorridor6(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussCorridor7 : public Room {
public:
- AxacussCorridor7(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR7;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[10] = kShownTrue;
- _shown[21] = kShownTrue;
- _shown[24] = kShownTrue;
- _shown[25] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR6,2);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,GUARD,22);
- }
+ AxacussCorridor7(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
};
+
class AxacussCorridor8 : public Room {
public:
- AxacussCorridor8(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR8;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[4] = kShownTrue;
- _shown[15] = kShownTrue;
- _shown[20] = kShownTrue;
- _shown[22] = kShownTrue;
- _shown[28] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,CORRIDOR6,10);
- _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,BCORRIDOR,22);
- }
+ AxacussCorridor8(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussCorridor9 : public Room {
public:
- AxacussCorridor9(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 16;
- _id = CORRIDOR9;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[14] = kShownTrue;
- _shown[19] = kShownTrue;
- _shown[23] = kShownTrue;
- _shown[28] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,BCORRIDOR,2);
- _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,GUARD,10);
- }
+ AxacussCorridor9(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussBcorridor : public Room {
public:
- AxacussBcorridor(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 6;
- _id = BCORRIDOR;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR1,NULLTYPE,4,4,0);
- _objectState[1] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR2,NULLTYPE,5,5,0);
- _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,6,6,0,CORRIDOR8,2);
- _objectState[3] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,7,7,0,CORRIDOR9,22);
- _objectState[4] = Object(_id, kStringDoor,kStringDoorDescription1,DOOR1,EXIT|OPENABLE|CLOSED|OCCUPIED,0,0,1,OFFICE_L1,6);
- _objectState[5] = Object(_id, kStringDoor,kStringDoorDescription2,DOOR2,EXIT|OPENABLE|CLOSED|OCCUPIED,1,1,2,OFFICE_L2,16);
- _objectState[6] = Object(_id, kStringDoor,kStringDoorDescription3,DOOR3,EXIT|OPENABLE|OPENED,2,2,3,OFFICE_R1,8);
- _objectState[7] = Object(_id, kStringDoor,kStringDoorDescription4,DOOR4,EXIT|OPENABLE|CLOSED|OCCUPIED,3,3,4,OFFICE_R2,18);
- }
+ AxacussBcorridor(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -1159,25 +426,7 @@ public:
class AxacussIntersection : public Room {
public:
- AxacussIntersection(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 40;
- _id = GUARD;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CORRIDOR4, 21);
- _objectState[1] = Object(_id, kStringCorridor, kStringDefaultDescription, NULLOBJECT, EXIT, 3, 3, 0, CORRIDOR7, 5);
- _objectState[2] = Object(_id, kStringDoor, kStringDefaultDescription, DOOR, EXIT | OPENABLE, 1, 1, 6, CORRIDOR9, 3);
- _objectState[3] = Object(_id, kStringAxacussan, kStringAxacussanDescription, GUARDIAN, TALK, 0, 0, 0);
- _objectState[4] = Object(_id, kStringImage, kStringImageDescription2, NULLOBJECT, NULLTYPE, 2, 2, 0);
- _objectState[5] = Object(_id, kStringMastercard, kStringMastercardDescription, MASTERKEYCARD, TAKE | COMBINABLE, 255, 255, 1);
-
- _dialogsX[0] = kStringDialogX1;
- _dialogsX[1] = kStringDialogX2;
- _dialogsX[2] = kStringDialogX3;
- }
+ AxacussIntersection(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@@ -1187,188 +436,67 @@ private:
class AxacussExit : public Room {
public:
- AxacussExit(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 42;
- _id = GUARD3;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR1,22);
- _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,0,0,0,NULLROOM,20);
- _objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,15);
- _objectState[3] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,2,2,11,OFFICE_L,0);
- _objectState[4] = Object(_id, kStringLamp2,kStringDefaultDescription,LAMP,COMBINABLE,3,3,0);
- _objectState[5] = Object(_id, kStringAxacussan,kStringDefaultDescription,GUARDIAN,TALK,5,5,0);
- _objectState[6] = Object(_id, kStringImage,kStringGenericDescription5,NULLOBJECT,NULLTYPE,4,4,0);
-
- _dialogsX[0] = kStringDialogX1;
- _dialogsX[1] = kStringDialogX2;
- _dialogsX[2] = kStringDialogX3;
- }
+ AxacussExit(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
private:
StringId _dialogsX[6];
};
+
class AxacussOffice1 : public Room {
public:
- AxacussOffice1(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 7;
- _id = OFFICE_L1;
- _shown[0] = kShownTrue;
- _shown[2] = kShownTrue;
- _shown[7] = kShownTrue;
- _shown[9] = kShownTrue;
- _shown[16] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
- _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
- _objectState[2] = Object(_id, kStringMoney,kStringMoneyDescription1,MONEY,TAKE,255,255,0);
- _objectState[3] = Object(_id, kStringLocker,kStringLockerDescription,LOCKER,OPENABLE|CLOSED,5,5,0);
- _objectState[4] = Object(_id, kStringLetter,kStringDefaultDescription,LETTER,UNNECESSARY,3,3,0);
- }
+ AxacussOffice1(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussOffice2 : public Room {
public:
- AxacussOffice2(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 7;
- _id = OFFICE_L2;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[9] = kShownTrue;
- _shown[16] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
- _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
- _objectState[2] = Object(_id, kStringCube,kStringGenericDescription6,NULLOBJECT,NULLTYPE,0,0,0);
- _objectState[3] = Object(_id, kStringImage,kStringGenericDescription7,NULLOBJECT,NULLTYPE,1,1,0);
- _objectState[4] = Object(_id, kStringStrangeThing,kStringGenericDescription8,NULLOBJECT,UNNECESSARY,2,2,0);
- }
+ AxacussOffice2(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussOffice3 : public Room {
public:
- AxacussOffice3(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 8;
- _id = OFFICE_R1;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
- _shown[3] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
- _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
- _objectState[2] = Object(_id, kStringImage,kStringImageDescription2,NULLOBJECT,UNNECESSARY,1,1,0);
- _objectState[3] = Object(_id, kStringImage,kStringImageDescription2,PAINTING,UNNECESSARY,2,2,0);
- _objectState[4] = Object(_id, kStringPlant,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,3,3,0);
- _objectState[5] = Object(_id, kNoString,kStringDefaultDescription,MONEY,TAKE|COMBINABLE,255,255,0);
- }
+ AxacussOffice3(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussOffice4 : public Room {
public:
- AxacussOffice4(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 8;
- _id = OFFICE_R2;
- _shown[0] = kShownTrue;
- _shown[2] = kShownTrue;
- _shown[3] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
- _objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
- _objectState[2] = Object(_id, kStringStatue,kStringStatueDescription,NULLOBJECT,UNNECESSARY,6,6,0);
- _objectState[3] = Object(_id, kStringPlant,kStringPlantDescription,NULLOBJECT,UNNECESSARY,5,5,0);
- }
+ AxacussOffice4(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussOffice5 : public Room {
public:
- AxacussOffice5(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 7;
- _id = OFFICE_L;
- _shown[0] = kShownTrue;
- _shown[3] = kShownTrue;
- _shown[5] = kShownTrue;
- _shown[17] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,17,GUARD3,9);
- _objectState[1] = Object(_id, kStringComputer,kStringComputerDescription,COMPUTER,COMBINABLE,4,4,0);
- _objectState[2] = Object(_id, kStringGraffiti,kStringGraffitiDescription,NULLOBJECT,NULLTYPE,7,7,0);
- _objectState[3] = Object(_id, kStringMoney,kStringMoneyDescription2,MONEY,TAKE,8,8,0);
- }
+ AxacussOffice5(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussElevator : public Room {
public:
- AxacussElevator(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 3;
- _id = ELEVATOR;
- _shown[0] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,0,0,0);
- _objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,1,1,0);
- _objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,255,255,0,NULLROOM,22);
- _objectState[3] = Object(_id, kStringJungle,kStringJungleDescription,JUNGLE,NULLTYPE,255,255,0,STATION,2);
- }
+ AxacussElevator(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussStation : public Room {
public:
- AxacussStation(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 5;
- _id = STATION;
- _shown[0] = kShownTrue;
- _objectState[0] = Object(_id, kStringSign,kStringDefaultDescription,STATION_SIGN,NULLTYPE,0,0,0);
- _objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,7);
- }
+ AxacussStation(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+
class AxacussSign : public Room {
public:
- AxacussSign(SupernovaEngine *vm, GameManager *gm) {
- _vm = vm;
- _gm = gm;
-
- _fileNumber = 32;
- _id = SIGN;
- _shown[0] = kShownTrue;
- _shown[1] = kShownTrue;
-
- _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,STATION,22);
- _objectState[1] = Object(_id, kStringSlot,kStringDefaultDescription,STATION_SLOT,COMBINABLE,0,0,0);
- }
+ AxacussSign(SupernovaEngine *vm, GameManager *gm);
virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
Commit: c20b960d80376653682e3eac0299f8a931cf66e3
https://github.com/scummvm/scummvm/commit/c20b960d80376653682e3eac0299f8a931cf66e3
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Adds renderImage overload for ImageId
Changed paths:
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 74d815a..833589c 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -247,6 +247,10 @@ void SupernovaEngine::renderImage(int section) {
_screen->renderImage(section);
}
+void SupernovaEngine::renderImage(ImageId id, bool removeImage) {
+ _screen->renderImage(id, removeImage);
+}
+
bool SupernovaEngine::setCurrentImage(int filenumber) {
return _screen->setCurrentImage(filenumber);
}
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index b4af8b4..c66fd50 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -35,6 +35,7 @@
#include "supernova/msn_def.h"
#include "supernova/rooms.h"
#include "supernova/sound.h"
+#include "supernova/imageid.h"
namespace Common {
class MemoryReadWriteStream;
@@ -102,6 +103,7 @@ public:
void paletteFadeOut();
void paletteBrightness();
void renderImage(int section);
+ void renderImage(ImageId id, bool removeImage = false);
bool setCurrentImage(int filenumber);
void saveScreen(int x, int y, int width, int height);
void saveScreen(const GuiElement &guiElement);
Commit: ebaa6739ec68cf18b8c8a272df8d992a36a4728e
https://github.com/scummvm/scummvm/commit/ebaa6739ec68cf18b8c8a272df8d992a36a4728e
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Adds Outro image
msn_data.055 that stores the outro image was missed to be added
to imageInfo and thus not loaded during the engine init/
Changed paths:
engines/supernova/imageid.h
engines/supernova/resman.cpp
engines/supernova/resman.h
engines/supernova/screenstatic.cpp
diff --git a/engines/supernova/imageid.h b/engines/supernova/imageid.h
index c1168c3..a05b06c 100644
--- a/engines/supernova/imageid.h
+++ b/engines/supernova/imageid.h
@@ -647,7 +647,9 @@ enum ImageId {
kImageCellRobotSparks,
kImageCellRobotBroken,
kImageCellDoorClosed,
- kImageCellDummy1
+ kImageCellDummy1,
+ // file 55
+ kImageOutroScreen
};
}
diff --git a/engines/supernova/resman.cpp b/engines/supernova/resman.cpp
index 1c17884..d7ea0b3 100644
--- a/engines/supernova/resman.cpp
+++ b/engines/supernova/resman.cpp
@@ -163,10 +163,12 @@ void ResourceManager::initCursorGraphics() {
}
void ResourceManager::initImages() {
- for (int i = 0; i < kNumImageFiles; ++i) {
+ for (int i = 0; i < 44; ++i) {
if (!_images[i].init(i))
error("Failed reading image file msn_data.%03d", i);
}
+ if (!_images[44].init(55))
+ error("Failed reading image file msn_data.055");
}
Audio::SeekableAudioStream *ResourceManager::getSoundStream(AudioId index) {
@@ -190,9 +192,12 @@ Audio::AudioStream *ResourceManager::getSoundStream(MusicId index) {
}
const MSNImage *ResourceManager::getImage(int filenumber) const {
- assert(filenumber < kNumImageFiles);
-
- return &_images[filenumber];
+ if (filenumber < 44)
+ return &_images[filenumber];
+ else if (filenumber == 55)
+ return &_images[44];
+ else
+ return nullptr;
}
const byte *ResourceManager::getImage(CursorId id) const {
diff --git a/engines/supernova/resman.h b/engines/supernova/resman.h
index 080ecc5..080497e 100644
--- a/engines/supernova/resman.h
+++ b/engines/supernova/resman.h
@@ -44,7 +44,7 @@ public:
};
public:
- static const int kNumImageFiles = 44;
+ static const int kNumImageFiles = 45;
public:
ResourceManager();
diff --git a/engines/supernova/screenstatic.cpp b/engines/supernova/screenstatic.cpp
index db987bf..796c148 100644
--- a/engines/supernova/screenstatic.cpp
+++ b/engines/supernova/screenstatic.cpp
@@ -139,7 +139,8 @@ static const Screen::ImageInfo imageInfo[] = {
{43, 12}, {43, 13}, {43, 14}, {43, 15}, {43, 16}, {43, 17},
{43, 18}, {43, 19}, {43, 20}, {43, 21}, {43, 22}, {43, 23},
{43, 24}, {43, 25}, {43, 26}, {43, 27}, {43, 28}, {43, 29},
- {43, 30}, {43, 31}
+ {43, 30}, {43, 31},
+ {55, 0}
};
// Default palette
Commit: 437b1c00036fbdf38688281a898133c3cb7a394f
https://github.com/scummvm/scummvm/commit/437b1c00036fbdf38688281a898133c3cb7a394f
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Updates NOTES
The audio samples' offset and corresponding file number are better
described in sound.h. Also the variable timer2 was renamed quite a while
ago and served only as a reference to the original source code.
Changed paths:
engines/supernova/NOTES
diff --git a/engines/supernova/NOTES b/engines/supernova/NOTES
index 909f4eb..db6d4e2 100644
--- a/engines/supernova/NOTES
+++ b/engines/supernova/NOTES
@@ -1,39 +1,3 @@
-Audio
------------
-
-There may be several sound effects in one file.
-This list shows them and their offsets.
-
-46:
- 0 - Voice "Halt!"
- 2510 -
- 4020 -
-
-47:
- 0 - Voice "Mission Supernova"
- 24010 - Voice "Yeaahh.."
-
-48:
- 0 -
- 2510 -
- 10520 - electric shock
- 13530 - (playing turntable)
-
-50:
- 0 -
- 12786 -
-
-51:
-
-53: Death sound
-
-54:
- 0 - Alarm
- 8010 -
- 24020 - Door sound
- 30030 - Door open
- 31040 - Door close
-
Engine
----------
MouseFields
@@ -50,9 +14,6 @@ Dimensions
Exit Maps: (283, 163) (317, 197)
-timer2 == animation timer
-
-
Text
-------
AE - 216 ae - 204
Commit: bd298f3b3d9159c4d1be7d007994a69324c3c745
https://github.com/scummvm/scummvm/commit/bd298f3b3d9159c4d1be7d007994a69324c3c745
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Removes GameManager dependency for Screen
All calls from Screen member functions to the GameManager instance
are relocated to the wrapper functions in SupernovaEngine.
Changed paths:
engines/supernova/screen.cpp
engines/supernova/screen.h
engines/supernova/supernova.cpp
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
index 2c441ac..124bddd 100644
--- a/engines/supernova/screen.cpp
+++ b/engines/supernova/screen.cpp
@@ -168,9 +168,8 @@ void Marquee::renderCharacter() {
}
}
-Screen::Screen(SupernovaEngine *vm, GameManager *gm, ResourceManager *resMan)
+Screen::Screen(SupernovaEngine *vm, ResourceManager *resMan)
: _vm(vm)
- , _gm(gm)
, _resMan(resMan)
, _currentImage(nullptr)
, _viewportBrightness(255)
@@ -208,6 +207,10 @@ const MSNImage *Screen::getCurrentImage() const {
return _currentImage;
}
+const Screen::ImageInfo *Screen::getImageInfo(ImageId id) const {
+ return &imageInfo[(int)id];
+}
+
bool Screen::isMessageShown() const {
return _messageShown;
}
@@ -327,21 +330,16 @@ void Screen::renderText(StringId stringId, int x, int y, byte color) {
renderText(_vm->getGameString(stringId), x, y, color);
}
-void Screen::renderImageSection(const MSNImage *image, int section) {
+void Screen::renderImageSection(const MSNImage *image, int section, bool invert) {
// Note: inverting means we are removing the section. So we should get the rect for that
// section but draw the background (section 0) instead.
- bool invert = false;
- if (section > 128) {
- section -= 128;
- invert = true;
- }
if (section > image->_numSections - 1)
return;
Common::Rect sectionRect(image->_section[section].x1,
- image->_section[section].y1,
- image->_section[section].x2 + 1,
- image->_section[section].y2 + 1);
+ image->_section[section].y1,
+ image->_section[section].x2 + 1,
+ image->_section[section].y2 + 1);
if (image->_filenumber == 1 || image->_filenumber == 2) {
sectionRect.setWidth(640);
sectionRect.setHeight(480);
@@ -383,11 +381,7 @@ void Screen::renderImage(ImageId id, bool removeImage) {
}
do {
- if (removeImage)
- renderImageSection(image, info.section + 128);
- else
- renderImageSection(image, info.section);
-
+ renderImageSection(image, info.section, removeImage);
info.section = image->_section[info.section].next;
} while (info.section != 0);
}
@@ -396,20 +390,14 @@ void Screen::renderImage(int section) {
if (!_currentImage)
return;
- bool sectionVisible = true;
-
+ bool removeImage = false;
if (section > 128) {
- sectionVisible = false;
+ removeImage = true;
section -= 128;
}
- _gm->_currentRoom->setSectionVisible(section, sectionVisible);
-
do {
- if (sectionVisible)
- renderImageSection(_currentImage, section);
- else
- renderImageSection(_currentImage, section + 128);
+ renderImageSection(_currentImage, section, removeImage);
section = _currentImage->_section[section].next;
} while (section != 0);
}
@@ -443,7 +431,7 @@ void Screen::renderRoom(Room &room) {
int section = i;
if (room.isSectionVisible(section)) {
do {
- renderImageSection(_currentImage, section);
+ renderImageSection(_currentImage, section, false);
section = _currentImage->_section[section].next;
} while (section != 0);
}
@@ -554,7 +542,6 @@ void Screen::renderMessage(const char *text, MessagePosition position) {
}
_messageShown = true;
- _gm->_messageDuration = (Common::strnlen(text, 512) + 20) * _vm->_textSpeed / 10;
}
void Screen::removeMessage() {
@@ -613,9 +600,9 @@ void Screen::paletteFadeOut() {
_vm->_system->updateScreen();
}
-void Screen::paletteFadeIn() {
+void Screen::paletteFadeIn(int maxViewportBrightness) {
while (_guiBrightness < 245) {
- if (_viewportBrightness < _gm->_roomBrightness)
+ if (_viewportBrightness < maxViewportBrightness)
_viewportBrightness += 10;
_guiBrightness += 10;
paletteBrightness();
@@ -623,7 +610,7 @@ void Screen::paletteFadeIn() {
_vm->_system->delayMillis(_vm->_delay);
}
_guiBrightness = 255;
- _viewportBrightness = _gm->_roomBrightness;
+ _viewportBrightness = maxViewportBrightness;
paletteBrightness();
_vm->_system->updateScreen();
}
diff --git a/engines/supernova/screen.h b/engines/supernova/screen.h
index d57fb53..bcffe61 100644
--- a/engines/supernova/screen.h
+++ b/engines/supernova/screen.h
@@ -132,15 +132,16 @@ public:
static int textWidth(const Common::String &text);
public:
- Screen(SupernovaEngine *vm, GameManager *gm, ResourceManager *resMan);
+ Screen(SupernovaEngine *vm, ResourceManager *resMan);
int getViewportBrightness() const;
void setViewportBrightness(int brightness);
int getGuiBrightness() const;
void setGuiBrightness(int brightness);
const MSNImage *getCurrentImage() const;
+ const ImageInfo *getImageInfo(ImageId id) const;
bool isMessageShown() const;
- void paletteFadeIn();
+ void paletteFadeIn(int maxViewportBrightness);
void paletteFadeOut();
void paletteBrightness();
void renderImage(ImageId id, bool removeImage = false);
@@ -174,11 +175,10 @@ public:
void update();
private:
- void renderImageSection(const MSNImage *image, int section);
+ void renderImageSection(const MSNImage *image, int section, bool invert);
private:
SupernovaEngine *_vm;
- GameManager *_gm;
ResourceManager *_resMan;
const MSNImage *_currentImage;
ScreenBufferStack _screenBuffer;
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 833589c..34d4064 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -136,7 +136,7 @@ void SupernovaEngine::init() {
_resMan = new ResourceManager();
_sound = new Sound(_mixer, _resMan);
_gm = new GameManager(this, _sound);
- _screen = new Screen(this, _gm, _resMan);
+ _screen = new Screen(this, _resMan);
_console = new Console(this, _gm);
setTotalPlayTime(0);
@@ -244,10 +244,16 @@ void SupernovaEngine::playSound(MusicId index) {
}
void SupernovaEngine::renderImage(int section) {
+ if (section > 128)
+ _gm->_currentRoom->setSectionVisible(section - 128, false);
+ else
+ _gm->_currentRoom->setSectionVisible(section, true);
+
_screen->renderImage(section);
}
void SupernovaEngine::renderImage(ImageId id, bool removeImage) {
+ _gm->_currentRoom->setSectionVisible(_screen->getImageInfo(id)->section, !removeImage);
_screen->renderImage(id, removeImage);
}
@@ -271,14 +277,17 @@ void SupernovaEngine::renderRoom(Room &room) {
}
void SupernovaEngine::renderMessage(const char *text, MessagePosition position) {
+ _gm->_messageDuration = (Common::strnlen(text, 512) + 20) * _textSpeed / 10;
_screen->renderMessage(text, position);
}
void SupernovaEngine::renderMessage(const Common::String &text, MessagePosition position) {
+ _gm->_messageDuration = (text.size() + 20) * _textSpeed / 10;
_screen->renderMessage(text, position);
}
void SupernovaEngine::renderMessage(StringId stringId, MessagePosition position, Common::String var1, Common::String var2) {
+ _gm->_messageDuration = (getGameString(stringId).size() + 20) * _textSpeed / 10;
_screen->renderMessage(stringId, position, var1, var2);
}
@@ -329,6 +338,7 @@ void SupernovaEngine::renderBox(int x, int y, int width, int height, byte color)
void SupernovaEngine::renderBox(const GuiElement &guiElement) {
_screen->renderBox(guiElement);
}
+
void SupernovaEngine::paletteBrightness() {
_screen->paletteBrightness();
}
@@ -338,7 +348,8 @@ void SupernovaEngine::paletteFadeOut() {
}
void SupernovaEngine::paletteFadeIn() {
- _screen->paletteFadeIn();
+ _gm->roomBrightness();
+ _screen->paletteFadeIn(_gm->_roomBrightness);
}
void SupernovaEngine::setColor63(byte value) {
Commit: 536630aece6dc26a9066e2d68944b924f45eccf7
https://github.com/scummvm/scummvm/commit/536630aece6dc26a9066e2d68944b924f45eccf7
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Removes invalid ImageId entry
Changed paths:
engines/supernova/imageid.h
diff --git a/engines/supernova/imageid.h b/engines/supernova/imageid.h
index a05b06c..95c5b8e 100644
--- a/engines/supernova/imageid.h
+++ b/engines/supernova/imageid.h
@@ -252,7 +252,6 @@ enum ImageId {
kImageAxacussCorridorAlienLeft,
kImageAxacussCorridorAlienBottom,
kImageAxacussCorridorAlienTop,
- kImageAxacussCorridorDummy1,
// file 17
kImageShipCorridorCabinBackground,
kImageShipCorridorCabinL1Open,
Commit: 641a4307f230152931adb49940c5c72cc839f0cb
https://github.com/scummvm/scummvm/commit/641a4307f230152931adb49940c5c72cc839f0cb
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Uses setCurrentImage in renderImage
Although renderImage for ImageId doesn't use _currentImage, it needs to
be set for compatibility with the section based renderImage function.
The functionality doesn't change with this commit, except that the
palette brightness gets updated if the image is in a different file.
Changed paths:
engines/supernova/screen.cpp
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
index 124bddd..105025e 100644
--- a/engines/supernova/screen.cpp
+++ b/engines/supernova/screen.cpp
@@ -375,10 +375,8 @@ void Screen::renderImage(ImageId id, bool removeImage) {
ImageInfo info = imageInfo[id];
const MSNImage *image = _resMan->getImage(info.filenumber);
- if (_currentImage != image) {
- _currentImage = image;
- _vm->_system->getPaletteManager()->setPalette(image->getPalette(), 16, 239);
- }
+ if (_currentImage != image)
+ setCurrentImage(info.filenumber);
do {
renderImageSection(image, info.section, removeImage);
Commit: 21c9c885baddf198552c1468878ce32ed3f872aa
https://github.com/scummvm/scummvm/commit/21c9c885baddf198552c1468878ce32ed3f872aa
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Stops time and animations when reading the newspaper
After leaving the cell on Arsano there's a desk you need to attach your
watch to and set the alarm to attract the guard in the next room. If the
alarm goes off while reading the newspaper, the game glitches out with
wrong palette colors, scene, ..
Changed paths:
engines/supernova/state.cpp
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index fa53b5e..92a8dfe 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -2004,6 +2004,9 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
takeObject(*_rooms[ROGER]->getObject(8));
}
} else if ((verb == ACTION_LOOK) && (obj1._id == NEWSPAPER)) {
+ animationOff();
+ saveTime();
+
_vm->renderMessage(kStringGenericInteract_10);
waitOnInput(_messageDuration);
_vm->removeMessage();
@@ -2017,6 +2020,9 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
_vm->renderRoom(*_currentRoom);
roomBrightness();
_vm->renderMessage(kStringGenericInteract_12);
+
+ loadTime();
+ animationOn();
} else if ((verb == ACTION_LOOK) && (obj1._id == KEYCARD2)) {
_vm->renderMessage(obj1._description);
obj1._description = kStringKeycard2Description2;
Commit: 1d00e625cf4c5248e073a71fc3e6e75780b1c0ca
https://github.com/scummvm/scummvm/commit/1d00e625cf4c5248e073a71fc3e6e75780b1c0ca
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Fixing header file includes
Changed paths:
engines/supernova/msn_def.h
engines/supernova/rooms.h
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h
index 6ce16b8..cb473e7 100644
--- a/engines/supernova/msn_def.h
+++ b/engines/supernova/msn_def.h
@@ -23,6 +23,8 @@
#ifndef SUPERNOVA_MSN_DEF_H
#define SUPERNOVA_MSN_DEF_H
+#include "common/scummsys.h"
+
namespace Supernova {
const int kTextSpeed[] = {19, 14, 10, 7, 4};
diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h
index e544997..801bfc4 100644
--- a/engines/supernova/rooms.h
+++ b/engines/supernova/rooms.h
@@ -23,9 +23,9 @@
#ifndef SUPERNOVA_ROOMS_H
#define SUPERNOVA_ROOMS_H
-#include "common/scummsys.h"
+#include "common/str.h"
-#include "msn_def.h"
+#include "supernova/msn_def.h"
namespace Common {
class ReadStream;
Commit: ff36f94c1f6112b4f6318a25c3376d6d53b07b53
https://github.com/scummvm/scummvm/commit/ff36f94c1f6112b4f6318a25c3376d6d53b07b53
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Adds missing initializations
Changed paths:
engines/supernova/graphics.cpp
engines/supernova/rooms.cpp
engines/supernova/state.cpp
engines/supernova/state.h
diff --git a/engines/supernova/graphics.cpp b/engines/supernova/graphics.cpp
index 9a05a42..ff385f9 100644
--- a/engines/supernova/graphics.cpp
+++ b/engines/supernova/graphics.cpp
@@ -42,6 +42,24 @@ MSNImage::MSNImage() {
_pitch = 0;
_numSections = 0;
_numClickFields = 0;
+
+ for (int i = 0; i < kMaxSections; ++i) {
+ _section[i].x1 = 0;
+ _section[i].x2 = 0;
+ _section[i].y1 = 0;
+ _section[i].y2 = 0;
+ _section[i].next = 0;
+ _section[i].addressLow = 0xFFFF;
+ _section[i].addressHigh = 0xFF;
+ }
+
+ for (int i = 0; i < kMaxClickFields; ++i) {
+ _clickField[i].x1 = 0;
+ _clickField[i].x2 = 0;
+ _clickField[i].y1 = 0;
+ _clickField[i].y2 = 0;
+ _clickField[i].next = 0;
+ }
}
MSNImage::~MSNImage() {
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index ce274d6..18fd64e 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -32,6 +32,11 @@ namespace Supernova {
Room::Room() {
_seen = false;
+ _fileNumber = 0;
+ _id = NULLROOM;
+ _vm = nullptr;
+ _gm = nullptr;
+
for (int i = 0; i < kMaxSection; ++i)
_shown[i] = kShownFalse;
for (int i = 0; i < kMaxDialog; ++i)
@@ -704,6 +709,7 @@ ShipSleepCabin::ShipSleepCabin(SupernovaEngine *vm, GameManager *gm) {
_fileNumber = 33;
_id = SLEEP;
_shown[0] = kShownTrue;
+ _color = kColorBlack;
_objectState[0] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
_objectState[1] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
@@ -916,6 +922,7 @@ ShipCockpit::ShipCockpit(SupernovaEngine *vm, GameManager *gm) {
_fileNumber = 9;
_id = COCKPIT;
_shown[0] = kShownTrue;
+ _color = kColorBlack;
_objectState[0] = Object(_id, kStringInstruments, kStringInstrumentsDescription1, INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
_objectState[1] = Object(_id, kStringMonitor, kStringDefaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
@@ -1907,6 +1914,8 @@ ArsanoMeetup::ArsanoMeetup(SupernovaEngine *vm, GameManager *gm) {
_fileNumber = 37;
_id = MEETUP;
_shown[0] = kShownTrue;
+ _sign = 0;
+ _beacon = 0;
_objectState[0] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_objectState[1] = Object(_id, kStringSign,kStringSignDescription,MEETUP_SIGN,NULLTYPE,0,0,0);
@@ -2273,6 +2282,7 @@ ArsanoRemaining::ArsanoRemaining(SupernovaEngine *vm, GameManager *gm) {
_objectState[2] = Object(_id, kStringShoes,kStringShoesDescription,NULLOBJECT,NULLTYPE,2,2,0);
_chewing = kShownTrue;
+ _i = 0;
}
void ArsanoRemaining::animation() {
@@ -2459,6 +2469,7 @@ ArsanoRoger::ArsanoRoger(SupernovaEngine *vm, GameManager *gm) {
_dialog1[3] = kStringDialogSeparator;
_eyewitness = 5;
+ _hands = 0;
}
void ArsanoRoger::onEntrance() {
@@ -2592,6 +2603,7 @@ ArsanoGlider::ArsanoGlider(SupernovaEngine *vm, GameManager *gm) {
_fileNumber = 19;
_id = GLIDER;
_shown[0] = kShownTrue;
+ _sinus = 0;
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,15);
_objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON1,PRESS,0,0,0);
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 92a8dfe..8d54bd7 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -290,7 +290,8 @@ StringId GameManager::guiStatusCommands[] = {
GameManager::GameManager(SupernovaEngine *vm, Sound *sound)
: _inventory(&_nullObject, _inventoryScroll)
, _vm(vm)
- , _sound(sound) {
+ , _sound(sound)
+ , _mouseClickType(Common::EVENT_INVALID) {
initRooms();
changeRoom(INTRO);
initState();
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index 7d7b228..c044670 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -68,8 +68,10 @@ public:
Inventory(Object *nullObject, int &inventoryScroll)
: _numObjects(0)
, _nullObject(nullObject)
- , _inventoryScroll(inventoryScroll)
- {}
+ , _inventoryScroll(inventoryScroll) {
+ for (int i = 0; i < kMaxCarry; ++i)
+ _inventory[i] = nullptr;
+ }
void add(Object &obj);
void remove(Object &obj);
Commit: 498de6347e969720958960e9fea266fad9959c4c
https://github.com/scummvm/scummvm/commit/498de6347e969720958960e9fea266fad9959c4c
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Fixes OOB read
Changed paths:
engines/supernova/rooms.cpp
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index 18fd64e..10cb988 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -57,7 +57,7 @@ bool Room::serialize(Common::WriteStream *out) {
out->writeByte(_sentenceRemoved[i]);
int numObjects = 0;
- while ((_objectState[numObjects]._id != INVALIDOBJECT) && (numObjects < kMaxObject))
+ while ((numObjects < kMaxObject) && (_objectState[numObjects]._id != INVALIDOBJECT))
++numObjects;
out->writeSint32LE(numObjects);
Commit: 5ff4764442b3829e2664e35f211a6c78c49ae11e
https://github.com/scummvm/scummvm/commit/5ff4764442b3829e2664e35f211a6c78c49ae11e
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-02-06T09:42:11+01:00
Commit Message:
SUPERNOVA: Fixes possible OOB read
Changed paths:
engines/supernova/screen.cpp
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
index 105025e..1fa112b 100644
--- a/engines/supernova/screen.cpp
+++ b/engines/supernova/screen.cpp
@@ -385,15 +385,15 @@ void Screen::renderImage(ImageId id, bool removeImage) {
}
void Screen::renderImage(int section) {
- if (!_currentImage)
- return;
-
bool removeImage = false;
if (section > 128) {
removeImage = true;
section -= 128;
}
+ if (!_currentImage || section >= kMaxSection)
+ return;
+
do {
renderImageSection(_currentImage, section, removeImage);
section = _currentImage->_section[section].next;
More information about the Scummvm-git-logs
mailing list