indexing description: "[ Implements the features declared in ENGINE_INTERFACE. See ENGINE_INTERFACE for explanation. This class is part of the XAE Extended Adventure Engine Project. ]" author: "Adrian Rabenseifner, radrian@student.ethz.ch" date: "$Date$" revision: "$Revision$" class ENGINE inherit ENGINE_INTERFACE create make feature {NONE} -- Initialization make is -- Initialize `Current'. do end feature -- Access event_occured(event: EVENT) is -- used by GUI to inform Model about changes require else game /= void do -- reset game flags game.reset_flags -- reset message game.set_message("") -- process event on clicked item event.trigger.process_event(event, game) end get_current_scene:SCENE is -- Returns current scene in game context require else game /= void do game.current_scene.set_visibility_flags(game) Result := game.current_scene end get_closeup: CLOSEUP is -- Returns current closeup, otherwise: void require else game /= void do Result := game.current_closeup end get_repository: LIST[ITEM] is -- Get a dump of current repository items require else game /= void do Result := game.repository.dump end get_message: STRING is -- get message require else game /= void do Result := game.message end scene_changed: BOOLEAN is -- checks if scene has changed since last event do Result := game.has_scene_changed end items_picked_up: BOOLEAN is -- checks if scene has changed since last event do Result := game.have_items_been_picked_up end repository_changed: BOOLEAN is -- checks if repository has changed since last event do Result := game.repository.has_changed end set_game(pgame: GAME) is -- load a GAME object into the model and start game do game := pgame end get_game: GAME is -- get game (for serialization) do Result := game end game: GAME end -- class ENGINE