The following inheritance tree gives all classes present in the source code, in alphabetical order at each level, along with short descriptions.
-
AnimationManager - Utility class for setting animation markers and querying animation length.
-
App
-
Audio - Layer which handles the Lua-facing side of loading and playing audio.
-
Button - A region of a `Panel` which causes some action when clicked.
-
CallsDispatcher
-
Command
-
CommandStack
-
Entity - Abstraction for visible gameplay things which sit somewhere on the map.
-
Humanoid - An `Entity` which occupies a single tile and is capable of moving around the map.
-
Patient - A `Humanoid` who is in the hospital for diagnosis and/or treatment.
-
Staff - A Doctor, Nurse, Receptionist, Handyman, or Surgeon
-
Vip - A `Vip` who is in the hospital to evaluate the hospital and produce a report
-
Litter
-
Object - An `Entity` which occupies at least a single map tile and does not move.
-
FileSystem - Layer for abstracting away differences in file systems
-
Graphics - Layer for loading (and subsequently caching) graphical resources.
-
Hospital
-
Map - Lua extensions to the C++ THMap class
-
MoviePlayer
-
Panel - The basic component which makes up most `Window`s.
-
Queue - Manages a list of `Humanoid`s which are waiting to use an `Object`.
-
ResearchDepartment - Notes about research speed.
Original game times at 20 % in all categories with a medium doctor at level 3:
Slicer discovered in about 120 days. (10000 points)
Pump improved in about 60 days. (30000 points * 20 % as first improvement)
Invisibility improved in about 90 days. (10000 points)
Note that the original requires a nurse and a pharmacy before drugs
get improved. On the other hand it appears that the research is
stored for future use anyway.
--
-
Room
-
Scrollbar - A window element used to scroll in lists
-
StaffProfile
-
Strings - Layer which handles the loading of localised text.
-
Textbox - A window element used to enter text
-
TreeNode - Iterface for items within a UI tree control
-
DummyRootNode - A tree node which can be used as a root node to give the effect of having
multiple root nodes.
-
FileTreeNode - A tree node representing a file (or directory) in the physical file-system.
-
DirTreeNode - A tree node representing a directory in the physical file-system.
-
InstallDirTreeNode - This tree only shows directories and highlights valid TH directories.
-
FilteredFileTreeNode - A tree node representing a file (or directory) in the physical file-system
that meets a given file extension criterion.
-
UIMenu
-
Window - Base class for user-interface dialogs.
-
TreeControl - A control (to be placed on a window) which allows the user to navigate a
tree of items and select one item from it.
-
FilteredTreeControl - A sortable tree control that accomodates a certain file type and also possibly shows
their last modification dates.
-
UI - Top-level container for all other user-interface components.
-
GameUI - Variant of UI for running games
-
UIAdviser - The (ideally) helpful advisor who pops up from the bottom dialog during a game.
-
UIBottomPanel - The multi-purpose panel for launching dialogs / screens and dynamic information.
-
UIBuildRoom
-
UIConfirmDialog - Dialog for "Are you sure you want to quit?" and similar yes/no questions.
-
UIFullscreen - Base class for 640x480px dialogs (fullscreen in original game resolution).
-
UIAnnualReport - Annual Report fullscreen window shown at the start of each year.
-
UIBankManager - Bank manager (for loans / insurance companies) and bank statement fullscreen windows.
-
UICasebook - Drug Casebook fullscreen window (view disease statistics and set prices).
-
UIFax
-
UIGraphs - Charts fullscreen window
-
UIPolicy - Hospital policy fullscreen window (set staff tiredness and patient cure thresholds, etc.).
-
UIProgressReport - Progress Report fullscreen window (check level goals, competitors and alerts).
-
UIResearch
-
UIStaffManagement - Staff management screen
-
UITownMap - Town map fullscreen window (purchase land, set radiator levels, map overview).
-
UIFurnishCorridor - Dialog for purchasing `Object`s (for the corridor or for rooms).
-
UIHireStaff
-
UIInformation - Dialog that informs the player of for example what the goals for the level are.
-
UIJukebox
-
UIMachine
-
UIMapEditor
-
UIMenuBar - The ingame menu bar which sits (nominally hidden) at the top of the screen.
-
UIMessage - Small fax notification window which sits on the bottom bar.
-
UIPatient - Individual patient information dialog
-
UIPlaceObjects - The dialog shown when placing objects.
-
UIPlaceStaff - Invisible window which handles placing a `Staff` member in the world.
-
UIQueue - Room / door / reception desk queue visualisation dialog.
-
UIQueuePopup
-
UIResizable - Class for resizable windows.
-
UICallsDispatcher - Calls Dispatcher Window
-
UICheats - A dialog for activating cheats
-
UICustomise - Customise window used in the main menu and ingame.
-
UIDirectoryBrowser - Prompter for Theme Hospital install directory
-
UIDropdown - Dropdown "window" used for selection of one item from a list.
-
UIFileBrowser - A file browser with a scrollbar. Used by load_game and save_game.
-
UIFolder - Customise window used in the main menu and ingame.
-
UILuaConsole - Interactive Lua Console for ingame debugging.
-
UIMainMenu - Class for main menu window.
-
UIMenuList - A menu list with a scrollbar. Used by load_game, save_game and custom_game.
-
UINewGame - Class for the difficulty choice window.
-
UIOptions - Options window used in the main menu and ingame.
-
UIResolution - A custom resolution selection window
-
UITipOfTheDay - Tip of the Day Window
-
UIUpdate - Options window used in the main menu and ingame.
-
UIStaff - Individual staff information dialog
-
UIStaffRise - Dialog for staff member requesting a salaray raise.
-
UIWatch - Timer / clock / watch / countdown dialog for emergencies / level start
-
World - Manages entities, rooms, and the date.