Glk::Scott::Scott Class Reference

Scott Adams game interpreter. More...

#include <scott.h>

+ Inheritance diagram for Glk::Scott::Scott:
+ Collaboration diagram for Glk::Scott::Scott:

Public Member Functions

 Scott (OSystem *syst, const GlkGameDescription &gameDesc)
 Constructor. More...
InterpreterType getInterpreterType () const override
 Returns the running interpreter type. More...
void runGame () override
 Execute the game. More...
Common::Error readSaveData (Common::SeekableReadStream *rs) override
 Load a savegame from the passed Quetzal file chunk stream. More...
Common::Error writeGameData (Common::WriteStream *ws) override
 Save the game. More...
- Public Member Functions inherited from Glk::GlkAPI
 GlkAPI (OSystem *syst, const GlkGameDescription &gameDesc)
 Constructor. More...
 ~GlkAPI () override
void glk_exit (void)
void glk_set_interrupt_handler (void(*func)(void))
void glk_tick (void)
uint glk_gestalt (uint id, uint val)
uint glk_gestalt_ext (uint id, uint val, uint *arr, uint arrlen)
unsigned char glk_char_to_lower (unsigned char ch)
unsigned char glk_char_to_upper (unsigned char ch)
winid_t glk_window_get_root (void) const
 Get the root window of the window hierarchy. More...
winid_t glk_window_open (winid_t split, uint method, uint size, uint wintype, uint rock=0) const
 Open a new window. More...
void glk_window_close (winid_t win, stream_result_t *result=nullptr)
void glk_window_get_size (winid_t win, uint *width, uint *height)
void glk_window_set_arrangement (winid_t win, uint method, uint size, winid_t keyWin)
void glk_window_get_arrangement (winid_t win, uint *method, uint *size, winid_t *keyWin)
winid_t glk_window_iterate (winid_t win, uint *rock=0)
uint glk_window_get_rock (winid_t win)
uint glk_window_get_type (winid_t win)
winid_t glk_window_get_parent (winid_t win)
winid_t glk_window_get_sibling (winid_t win)
void glk_window_clear (winid_t win)
void glk_window_move_cursor (winid_t win, uint xpos, uint ypos)
strid_t glk_window_get_stream (winid_t win)
void glk_window_set_echo_stream (winid_t win, strid_t str)
strid_t glk_window_get_echo_stream (winid_t win)
void glk_set_window (winid_t win)
strid_t glk_stream_open_file (frefid_t fileref, FileMode fmode, uint rock=0)
strid_t glk_stream_open_memory (char *buf, uint buflen, FileMode fmode, uint rock=0)
void glk_stream_close (strid_t str, stream_result_t *result=nullptr)
strid_t glk_stream_iterate (strid_t str, uint *rockptr) const
uint glk_stream_get_rock (strid_t str) const
void glk_stream_set_position (strid_t str, int pos, uint seekMode)
uint glk_stream_get_position (strid_t str) const
void glk_stream_set_current (strid_t str)
strid_t glk_stream_get_current (void)
void glk_put_char (unsigned char ch)
void glk_put_char_stream (strid_t str, unsigned char ch)
void glk_put_string (const char *s)
void glk_put_string_stream (strid_t str, const char *s)
void glk_put_buffer (const char *buf, uint len)
void glk_put_buffer_stream (strid_t str, const char *buf, uint len)
void glk_set_style (uint styl)
void glk_set_style_stream (strid_t str, uint styl)
int glk_get_char_stream (strid_t str)
uint glk_get_line_stream (strid_t str, char *buf, uint len)
uint glk_get_buffer_stream (strid_t str, char *buf, uint len)
void glk_stylehint_set (uint wintype, uint styl, uint hint, int val)
void glk_stylehint_clear (uint wintype, uint style, uint hint)
uint glk_style_distinguish (winid_t win, uint style1, uint style2)
bool glk_style_measure (winid_t win, uint style, uint hint, uint *result)
frefid_t glk_fileref_create_temp (uint usage, uint rock=0)
frefid_t glk_fileref_create_by_name (uint usage, const char *name, uint rock=0)
frefid_t glk_fileref_create_by_prompt (uint usage, FileMode fmode, uint rock=0)
frefid_t glk_fileref_create_from_fileref (uint usage, frefid_t fref, uint rock=0)
void glk_fileref_destroy (frefid_t fref)
frefid_t glk_fileref_iterate (frefid_t fref, uint *rockptr)
uint glk_fileref_get_rock (frefid_t fref)
void glk_fileref_delete_file (frefid_t fref)
uint glk_fileref_does_file_exist (frefid_t fref)
void glk_select (event_t *event)
void glk_select_poll (event_t *event)
void glk_request_timer_events (uint millisecs)
void glk_request_line_event (winid_t win, char *buf, uint maxlen, uint initlen)
void glk_request_char_event (winid_t win)
void glk_request_mouse_event (winid_t win)
void glk_cancel_line_event (winid_t win, event_t *event)
void glk_cancel_char_event (winid_t win)
void glk_cancel_mouse_event (winid_t win)
void glk_set_echo_line_event (winid_t win, uint val)
void glk_set_terminators_line_event (winid_t win, const uint32 *keycodes, uint count)
uint glk_buffer_to_lower_case_uni (uint32 *buf, uint len, uint numchars)
uint glk_buffer_to_upper_case_uni (uint32 *buf, uint len, uint numchars)
uint glk_buffer_to_title_case_uni (uint32 *buf, uint len, uint numchars, uint lowerrest)
void glk_put_char_uni (uint32 ch)
void glk_put_string_uni (const uint32 *s)
void glk_put_buffer_uni (const uint32 *buf, uint len)
void glk_put_char_stream_uni (strid_t str, uint32 ch)
void glk_put_string_stream_uni (strid_t str, const uint32 *s)
void glk_put_buffer_stream_uni (strid_t str, const uint32 *buf, uint len)
int glk_get_char_stream_uni (strid_t str)
uint glk_get_buffer_stream_uni (strid_t str, uint32 *buf, uint len)
uint glk_get_line_stream_uni (strid_t str, uint32 *buf, uint len)
strid_t glk_stream_open_file_uni (frefid_t fileref, FileMode fmode, uint rock=0)
strid_t glk_stream_open_memory_uni (uint32 *buf, uint buflen, FileMode fmode, uint rock=0)
void glk_request_char_event_uni (winid_t win)
void glk_request_line_event_uni (winid_t win, uint32 *buf, uint maxlen, uint initlen)
uint glk_buffer_canon_decompose_uni (uint32 *buf, uint len, uint numchars)
uint glk_buffer_canon_normalize_uni (uint32 *buf, uint len, uint numchars)
bool glk_image_draw (winid_t win, uint image, int val1, int val2)
bool glk_image_draw_scaled (winid_t win, uint image, int val1, int val2, uint width, uint height)
bool glk_image_draw (winid_t win, const Graphics::Surface &image, uint transColor=(uint) -1, int xp=0, int yp=0)
bool glk_image_draw_scaled (winid_t win, const Graphics::Surface &image, uint transColor, int xp, int yp, uint width, uint height)
bool glk_image_get_info (uint image, uint *width, uint *height)
void glk_window_flow_break (winid_t win)
void glk_window_erase_rect (winid_t win, int left, int top, uint width, uint height)
void glk_window_fill_rect (winid_t win, uint color, int left, int top, uint width, uint height)
void glk_window_set_background_color (winid_t win, uint color)
schanid_t glk_schannel_create (uint rock=0)
void glk_schannel_destroy (schanid_t chan)
schanid_t glk_schannel_iterate (schanid_t chan, uint *rockptr)
uint glk_schannel_get_rock (schanid_t chan)
uint glk_schannel_play (schanid_t chan, uint snd)
uint glk_schannel_play_ext (schanid_t chan, uint snd, uint repeats, uint notify)
void glk_schannel_stop (schanid_t chan)
void glk_schannel_set_volume (schanid_t chan, uint vol)
void glk_sound_load_hint (uint snd, uint flag)
schanid_t glk_schannel_create_ext (uint rock, uint volume)
uint glk_schannel_play_multi (schanid_t *chanarray, uint chancount, uint *sndarray, uint soundcount, uint notify)
void glk_schannel_pause (schanid_t chan)
void glk_schannel_unpause (schanid_t chan)
void glk_schannel_set_volume_ext (schanid_t chan, uint vol, uint duration, uint notify)
void glk_set_hyperlink (uint linkval)
void glk_set_hyperlink_stream (strid_t str, uint linkval)
void glk_request_hyperlink_event (winid_t win)
void glk_cancel_hyperlink_event (winid_t win)
void glk_current_time (glktimeval_t *time)
int glk_current_simple_time (uint factor)
void glk_time_to_date_utc (const glktimeval_t *time, glkdate_t *date)
void glk_time_to_date_local (const glktimeval_t *time, glkdate_t *date)
void glk_simple_time_to_date_utc (int time, uint factor, glkdate_t *date)
void glk_simple_time_to_date_local (int time, uint factor, glkdate_t *date)
void glk_date_to_time_utc (const glkdate_t *date, glktimeval_t *time)
void glk_date_to_time_local (const glkdate_t *date, glktimeval_t *time)
int glk_date_to_simple_time_utc (const glkdate_t *date, uint factor)
int glk_date_to_simple_time_local (const glkdate_t *date, uint factor)
const char * garglk_fileref_get_name (frefid_t fref) const
void garglk_set_program_name (const char *name)
void garglk_set_program_info (const char *info)
void garglk_set_story_name (const char *name)
void garglk_set_story_title (const char *title)
void garglk_set_config (const char *name)
void garglk_unput_string (const char *str)
 Removes the specified string from the end of the output buffer, if indeed it is there. More...
void garglk_unput_string_uni (const uint32 *str)
 Removes the specified string from the end of the output buffer, if indeed it is there. More...
void garglk_set_zcolors (uint fg, uint bg)
void garglk_set_zcolors_stream (strid_t str, uint fg, uint bg)
void garglk_set_reversevideo (uint reverse)
void garglk_set_reversevideo_stream (strid_t str, uint reverse)
void garglk_window_get_cursor (winid_t win, uint *xpos, uint *ypos)
void garglk_window_get_cursor_current (uint *xpos, uint *ypos)
void gidispatch_set_object_registry (gidispatch_rock_t(*regi)(void *obj, uint objclass), void(*unregi)(void *obj, uint objclass, gidispatch_rock_t objrock))
void gidispatch_set_retained_registry (gidispatch_rock_t(*regi)(void *array, uint len, const char *typecode), void(*unregi)(void *array, uint len, const char *typecode, gidispatch_rock_t objrock))
uint32 gidispatch_count_classes () const
const gidispatch_intconst_tgidispatch_get_class (uint32 index) const
uint32 gidispatch_count_intconst () const
const gidispatch_intconst_tgidispatch_get_intconst (uint32 index) const
const char * gidispatch_prototype (uint32 funcnum) const
void gidispatch_call (uint32 funcnum, uint32 numargs, gluniversal_t *arglist)
gidispatch_rock_t gidispatch_get_objrock (void *obj, uint objclass)
- Public Member Functions inherited from Glk::GlkEngine
 GlkEngine (OSystem *syst, const GlkGameDescription &gameDesc)
 ~GlkEngine () override
bool canLoadGameStateCurrently () override
 Returns true if a savegame can be loaded. More...
bool canSaveGameStateCurrently () override
 Returns true if the game can be saved. More...
Common::Language getLanguage () const
 Returns the language. More...
const Common::StringgetGameID () const
 Returns the game's Id. More...
const Common::StringgetGameMD5 () const
 Returns the game's md5. More...
const Common::StringgetFilename () const
 Returns the primary filename for the game. More...
uint getOptions () const
 Returns any options returned with the game's detection entry. More...
const Common::StringgetTargetName () const
 Return the game engine's target name. More...
Common::String getSaveName (uint slot) const
 Return the filename for a given save slot. More...
Common::Error loadGame ()
 Prompt the user for a savegame to load, and then load it. More...
Common::Error saveGame ()
 Prompt the user to save their game, and then save it. More...
Common::Error loadGameState (int slot) override
 Load a savegame from a given slot. More...
Common::Error saveGameState (int slot, const Common::String &desc, bool isAutosave=false) override
 Save the game to a given slot. More...
void syncSoundSettings () override
 Updates sound settings. More...
void beep ()
 Generate a beep. More...
uint getRandomNumber (uint max)
 Get a random number. More...
void setRandomNumberSeed (uint seed)
 Set a random number seed. More...
void quitGame ()
 Flags to quit the game. More...
bool shouldQuit () const
 Returns true if the game should be quit. More...
- Public Member Functions inherited from Engine
 Engine (OSystem *syst)
virtual ~Engine ()
virtual void initializePath (const Common::FSNode &gamePath)
 Init SearchMan according to the game path. More...
virtual void errorString (const char *buf_input, char *buf_output, int buf_output_size)
 Prepare an error string, which is printed by the error() function. More...
virtual GUI::DebuggergetDebugger ()
 Return the engine's debugger instance, if any. More...
void setDebugger (GUI::Debugger *debugger)
 Sets the engine's debugger. More...
GUI::DebuggergetOrCreateDebugger ()
 Return the engine's debugger instance, or create one if none is present. More...
virtual void flipMute ()
 Flip mute all sound option. More...
virtual Common::String getSaveStateName (int slot) const
 Generates the savegame filename. More...
virtual Common::Error loadGameStream (Common::SeekableReadStream *stream)
 Load a game state. More...
void setGameToLoadSlot (int slot)
 Sets the game slot for a savegame to be loaded after global main menu execution. More...
virtual Common::Error saveGameStream (Common::WriteStream *stream, bool isAutosave=false)
 Save a game state. More...
bool saveGameDialog ()
 Shows the ScummVM save dialog, allowing users to save their game. More...
bool loadGameDialog ()
 Shows the ScummVM Restore dialog, allowing users to load a game. More...
void pauseEngine (bool pause)
 Pause or resume the engine. More...
bool isPaused () const
 Return whether the engine is currently paused or not. More...
void openMainMenuDialog ()
 Run the Global Main Menu Dialog. More...
uint32 getTotalPlayTime () const
 Get the total play time. More...
void setTotalPlayTime (uint32 time=0)
 Set the game time counter to the specified time. More...
Common::TimerManagergetTimerManager ()
Common::EventManagergetEventManager ()
Common::SaveFileManagergetSaveFileManager ()
void checkCD ()
 On some systems, check if the game appears to be run from CD. More...
void handleAutoSave ()
 Checks for whether it's time to do an autosave, and if so, does it. More...
void saveAutosaveIfEnabled ()
 Does an autosave immediately if autosaves are turned on. More...
virtual bool canSaveAutosaveCurrently ()
 Indicates whether an autosave can currently be saved. More...
virtual int getAutosaveSlot () const
 Returns the slot that should be used for autosaves. More...
bool shouldPerformAutoSave (int lastSaveTime)

Private Member Functions

void initialize ()
 Initialization code. More...
void display (winid_t w, const char *fmt,...)
void delay (int seconds)
void fatal (const char *x)
void clearScreen (void)
bool randomPercent (uint n)
int countCarried (void)
const char * mapSynonym (const char *word)
int matchUpItem (const char *text, int loc)
Common::String readString (Common::SeekableReadStream *f)
void loadDatabase (Common::SeekableReadStream *f, bool loud)
void output (const Common::String &a)
void outputNumber (int a)
void look (void)
int whichWord (const char *word, const Common::StringArray &list)
void lineInput (char *buf, size_t n)
int getInput (int *vb, int *no)
int performLine (int ct)
int performActions (int vb, int no)
void readInts (Common::SeekableReadStream *f, size_t count,...)

Private Attributes

Header _gameHeader
Common::Array< Item_items
Common::Array< Room_rooms
Common::StringArray _verbs
Common::StringArray _nouns
Common::StringArray _messages
Common::Array< Action_actions
int _lightRefill
char _nounText [16]
int _counters [16]
 Range unknown. More...
int _currentCounter
int _savedRoom
int _roomSaved [16]
 Range unknown. More...
int _options
 Option flags set. More...
int _width
 Terminal width. More...
int _topHeight
 Height of top window. More...
bool _splitScreen
winid_t _bottomWindow
winid_t _topWindow
uint32 _bitFlags
 Might be >32 flags - I haven't seen >32 yet. More...
int _saveSlot
 Save slot when loading savegame from launcher. More...

Additional Inherited Members

- Public Types inherited from Engine
enum  EngineFeature { kSupportsSubtitleOptions, kSupportsRTL, kSupportsLoadingDuringRuntime, kSupportsSavingDuringRuntime }
 A feature in this context means an ability of the engine which can be either available or not. More...
- Static Public Member Functions inherited from Engine
static void quitGame ()
 Request the engine to quit. More...
static bool shouldQuit ()
 Return whether the ENGINE should quit respectively should return to the launcher. More...
static MetaEnginegetMetaEngine ()
static bool warnUserAboutUnsupportedGame ()
 Display a warning to the user that the game is not fully supported. More...
- Public Attributes inherited from Glk::GlkEngine
bool _copySelect
bool _terminated
gidispatch_rock_t(* gli_register_obj )(void *obj, uint objclass)
void(* gli_unregister_obj )(void *obj, uint objclass, gidispatch_rock_t objrock)
gidispatch_rock_t(* gli_register_arr )(void *array, uint len, const char *typecode)
void(* gli_unregister_arr )(void *array, uint len, const char *typecode, gidispatch_rock_t objrock)
- Public Attributes inherited from Engine
- Protected Member Functions inherited from Glk::GlkEngine
Common::Error run () override
 Init the engine and start its main loop. More...
bool hasFeature (EngineFeature f) const override
 Returns true whether a given feature is supported by the engine. More...
virtual void initGraphicsMode ()
 Setup the video mode. More...
virtual ScreencreateScreen ()
 Create the screen. More...
- Protected Member Functions inherited from Engine
virtual int runDialog (GUI::Dialog &dialog)
virtual void pauseEngineIntern (bool pause)
 Actual implementation of pauseEngine by subclasses. More...
- Protected Attributes inherited from Glk::GlkEngine
const GlkGameDescription _gameDescription
Common::RandomSource _random
int _loadSaveSlot
Common::File _gameFile
bool _quitFlag
- Protected Attributes inherited from Engine
const Common::String _targetName

Detailed Description

Scott Adams game interpreter.

Definition at line 114 of file scott.h.

Constructor & Destructor Documentation

◆ Scott()

Glk::Scott::Scott::Scott ( OSystem syst,
const GlkGameDescription gameDesc 


Definition at line 31 of file scott.cpp.

Member Function Documentation

◆ clearScreen()

void Glk::Scott::Scott::clearScreen ( void  )

Definition at line 188 of file scott.cpp.

◆ countCarried()

int Glk::Scott::Scott::countCarried ( void  )

Definition at line 196 of file scott.cpp.

◆ delay()

void Glk::Scott::Scott::delay ( int  seconds)

Definition at line 169 of file scott.cpp.

◆ display()

void Glk::Scott::Scott::display ( winid_t  w,
const char *  fmt,

Definition at line 159 of file scott.cpp.

◆ fatal()

void Glk::Scott::Scott::fatal ( const char *  x)

Definition at line 184 of file scott.cpp.

◆ getInput()

int Glk::Scott::Scott::getInput ( int *  vb,
int *  no 

Definition at line 565 of file scott.cpp.

◆ getInterpreterType()

InterpreterType Glk::Scott::Scott::getInterpreterType ( ) const

Returns the running interpreter type.

Implements Glk::GlkEngine.

Definition at line 172 of file scott.h.

◆ initialize()

void Glk::Scott::Scott::initialize ( )

Initialization code.

Definition at line 142 of file scott.cpp.

◆ lineInput()

void Glk::Scott::Scott::lineInput ( char *  buf,
size_t  n 

Definition at line 494 of file scott.cpp.

◆ loadDatabase()

void Glk::Scott::Scott::loadDatabase ( Common::SeekableReadStream f,
bool  loud 

Definition at line 285 of file scott.cpp.

◆ look()

void Glk::Scott::Scott::look ( void  )

Definition at line 392 of file scott.cpp.

◆ mapSynonym()

const char * Glk::Scott::Scott::mapSynonym ( const char *  word)

Definition at line 207 of file scott.cpp.

◆ matchUpItem()

int Glk::Scott::Scott::matchUpItem ( const char *  text,
int  loc 

Definition at line 224 of file scott.cpp.

◆ output()

void Glk::Scott::Scott::output ( const Common::String a)

Definition at line 383 of file scott.cpp.

◆ outputNumber()

void Glk::Scott::Scott::outputNumber ( int  a)

Definition at line 388 of file scott.cpp.

◆ performActions()

int Glk::Scott::Scott::performActions ( int  vb,
int  no 

Definition at line 973 of file scott.cpp.

◆ performLine()

int Glk::Scott::Scott::performLine ( int  ct)

Definition at line 634 of file scott.cpp.

◆ randomPercent()

bool Glk::Scott::Scott::randomPercent ( uint  n)

Definition at line 192 of file scott.cpp.

◆ readInts()

void Glk::Scott::Scott::readInts ( Common::SeekableReadStream f,
size_t  count,

Definition at line 1165 of file scott.cpp.

◆ readSaveData()

Common::Error Glk::Scott::Scott::readSaveData ( Common::SeekableReadStream rs)

Load a savegame from the passed Quetzal file chunk stream.

Implements Glk::GlkEngine.

Definition at line 537 of file scott.cpp.

◆ readString()

Common::String Glk::Scott::Scott::readString ( Common::SeekableReadStream f)

Definition at line 241 of file scott.cpp.

◆ runGame()

void Glk::Scott::Scott::runGame ( )

Execute the game.

Implements Glk::GlkEngine.

Definition at line 39 of file scott.cpp.

◆ whichWord()

int Glk::Scott::Scott::whichWord ( const char *  word,
const Common::StringArray list 

Definition at line 477 of file scott.cpp.

◆ writeGameData()

Common::Error Glk::Scott::Scott::writeGameData ( Common::WriteStream ws)

Save the game.

The passed write stream represents access to the UMem chunk in the Quetzal save file that will be created

Implements Glk::GlkEngine.

Definition at line 512 of file scott.cpp.

Member Data Documentation

◆ _actions

Common::Array<Action> Glk::Scott::Scott::_actions

Definition at line 122 of file scott.h.

◆ _bitFlags

uint32 Glk::Scott::Scott::_bitFlags

Might be >32 flags - I haven't seen >32 yet.

Definition at line 135 of file scott.h.

◆ _bottomWindow

winid_t Glk::Scott::Scott::_bottomWindow

Definition at line 134 of file scott.h.

◆ _counters

int Glk::Scott::Scott::_counters[16]

Range unknown.

Definition at line 125 of file scott.h.

◆ _currentCounter

int Glk::Scott::Scott::_currentCounter

Definition at line 126 of file scott.h.

◆ _gameHeader

Header Glk::Scott::Scott::_gameHeader

Definition at line 116 of file scott.h.

◆ _items

Common::Array<Item> Glk::Scott::Scott::_items

Definition at line 117 of file scott.h.

◆ _lightRefill

int Glk::Scott::Scott::_lightRefill

Definition at line 123 of file scott.h.

◆ _messages

Common::StringArray Glk::Scott::Scott::_messages

Definition at line 121 of file scott.h.

◆ _nouns

Common::StringArray Glk::Scott::Scott::_nouns

Definition at line 120 of file scott.h.

◆ _nounText

char Glk::Scott::Scott::_nounText[16]

Definition at line 124 of file scott.h.

◆ _options

int Glk::Scott::Scott::_options

Option flags set.

Definition at line 129 of file scott.h.

◆ _rooms

Common::Array<Room> Glk::Scott::Scott::_rooms

Definition at line 118 of file scott.h.

◆ _roomSaved

int Glk::Scott::Scott::_roomSaved[16]

Range unknown.

Definition at line 128 of file scott.h.

◆ _savedRoom

int Glk::Scott::Scott::_savedRoom

Definition at line 127 of file scott.h.

◆ _saveSlot

int Glk::Scott::Scott::_saveSlot

Save slot when loading savegame from launcher.

Definition at line 136 of file scott.h.

◆ _splitScreen

bool Glk::Scott::Scott::_splitScreen

Definition at line 133 of file scott.h.

◆ _topHeight

int Glk::Scott::Scott::_topHeight

Height of top window.

Definition at line 131 of file scott.h.

◆ _topWindow

winid_t Glk::Scott::Scott::_topWindow

Definition at line 134 of file scott.h.

◆ _verbs

Common::StringArray Glk::Scott::Scott::_verbs

Definition at line 119 of file scott.h.

◆ _width

int Glk::Scott::Scott::_width

Terminal width.

Definition at line 130 of file scott.h.

The documentation for this class was generated from the following files: