Programming Ideas

Toby edited this page Feb 26, 2018 · 21 revisions

AKA the TODO list

This is a summary of ideas for programmers of things we know are not yet in the game or not yet fully working.

When you are considering starting work on a missing feature or on finishing off something that is not fully working, you can choose to join us in the IRC channel or the developer group where we can help and coordinate efforts.

Note: WIP = Work In Progress, which means that there is currently a programmer working on this feature. They may accept help, or you may take over if they are dormant.

Bug Fixes

See the issue tracker.

Estimated Difficulty: 1/5 to 5/5, depending on bug.


Level Configurations

Started by: ? , Date verified: ? , Target release: ?

There are still a lot of information in the level configuration files that is not used. We don't want to use some of it, but many things are also needed.

Estimated Difficulty 2/5


Started by: benckx , Date verified: Oct 2014 , Target release: 0.70?

Buildup of litter should result in rat holes appearing in walls, and rats running out of them, which the player can shoot. PR 328.

Estimated Difficulty: 4/5

Mini Game

There is also a random mini game that would appear sometimes between level changes in the campaign. It is a challenge to clean up a messy hospital full of rats and litter. The menus are different, the handymen cannot be picked up and there is a timer. The aim was to kill as many rats as the player could before the timer ran out or before the litter had been cleaned up by the handymen. Players had four different types of gun to use that would change (based on what?). The count of the killed rats would be carried forward into the next level, this could be seen in the awards at the end of the first year for the rat killing trophy (or was this a bug?). One of the guns would produce a large explosion similar to a machine exploding.

Estimated Difficulty: 4/5

Graphs Dialog

The main graphs menu were implemented in version 0.20.

Still to do are for the headings at the end of each line, which were implemented in black for technical reasons, but which should be a different colour for each line to match the original. See google code issue 659.

Also remaining to do are the graphs for insurance.

Progress Report and Status

There should be a pie chart representing the four hospitals and their share of the total spawn rate. This also requires new rendering primitives, see the Graphs Dialog above.

Hall of Fame/Shame and trophies

||Mostly implemented. Those not yet in are mentioned in the game guide||

There are still some awards which have not been implemented.

Other UI

Animated Main Menu

Started by: ? , Date verified: ? , Target release: ?

The main menu animations are finished?, but this will need some coding (C/C++) to be implemented into the game. There will need to be sort of interaction with the mouse and animation to be able to have the trainers pointer to select the right menu items, i.e. continue last game, start new game, start network game and load saved game. These were the options in TH (do we want the same or to do things differently – this has yet to be decided).

The animation can be found here: Forums: Main Menu

Estimated Difficulty: 4/5

Offer Letter

Started by: Joe.w , Date verified: 07/04/2013, Target release: ?

Here and also here on the Forum there is what Joe has produced so far.

In TH once you had achieved all of the goals you would be sent an offer letter and be given the chance to take on your next challenge or stay where you are. This letter is a movie file and there is also an overlay of text. The text comes from the language files and is already being used, as we are presently using the fax machine. To replicate TH we need the movie to stop on the last frame whist the text appears to be typed onto the letter. There is also an overlay of two buttons (accept or decline). We could use the existing movie or create our own or give players the choice.

Estimated Difficulty: 4/5

Various cut scene videos

Started by: Stephen E. Baker , Date verified: 02/01/2013, Target release: 0.70?

The coding for this is being tested. The newspaper headline at the end of each film is not implemented. For these to be added there would need to be some sort of overlay. The text is available in the language files. There is a large selection to choose from and would appear to be grouped into themes which match the movies. The movies may also be close to the ways the player can lose, but how they actually matchup is still to be agreed. Currently the lose movies are selected at random, do we change this so that they match the reason or do we leave them as random?

Estimated Difficulty: 4/5

Advisor being helpful in more situations

The Advisor is a lot more helpful now, but there are still places where he could offer some advice: feel free to say where you think he could do this. Regular players know these things, but they are very helpful for anyone who has never played this game before - or maybe not played for a long time. If a player finds him annoying, they can now turn him off with the "Shift" + "A" key or by unchecking this in the in-game Options menu.

Examples - objective updates issue 1514

Estimated Difficulty: 1/5

Interface & font scaling

Currently there is no support for scaling the interface and fonts (menus and text). This would be very handy for people running on either very small or very big screens. Or who just has poor eyesight. A zoom in feature to enlarge the hospital plan or the ability to left click on the plan so it can double in size - so we can see the detail.

Estimated Difficulty: 3/5


The jukebox currently orders music randomly. It should order by track number, such as in the file name. If the game was compiled without audio there should be a message on opening the jukebox. Additionally, Issue 143 and Issue 540.


DNA Fixer

Alien patients can now visit the hospital. There are still a few glitches to fix concerning this disease though.

Estimated Difficulty: 1/5


This is mostly implemented, however the Doctor should sit at the console before the scanning starts.
The Doctors actions with the console should affect the scanner so that when the doctor presses some buttons -> scanner goes down, press buttons -> goes up, pulls handle -> scanner tilts. That is not possible at the moment as we need some new functionality in use_object. see issue 375

Estimated Difficulty: 2/5

Operating theatre

  1. Surgeons are only using one side of the sink to wash their hands, both sides should be used and if they wash hands at the same time they should stand next to each other - see issue 694.

  2. Surgeons do not pair up, so will instead opt to go to separate rooms and both wait for a second surgeon to join them. This did also happen in TH, but I am sure we can do it better - see issue 776. Ideally they should go to a theatre where there is already a surgeon waiting before going to an empty theatre.

  3. The placement of the x-ray viewer has caused problems if there was an object that blocked its path to the door. This has been somewhat fixed, but it would be better if small objects were passable (see notes on radiators)

Estimated Difficulty: 2/5


Patients in queues

When hovering over a patient in the queue dialog the corresponding patient in the world should flash.

Estimated Difficulty: 3/5

Editing a room

When the player click on "edit room" button, the room should flash on hover over a room and a blue skeleton effect frame should appear on the room during the first stage of room editing (Re-arrangement rather than room size changing). See issue 271

It should be possible to use the "edit room" button to pick up and move objects in the corridors. During hover over the object it should flash or flicker much the same as a room will.

Estimated Difficulty: 2/5

Graphical scaling

Currently there is no support for scaling the graphics and a quick reset to 100%. This would be very handy for people running on either very small or big screens. Or who just has bad eyesight.

Estimated Difficulty: 4?/5

Announcement Queue System

There are times when the announcements overlap each other, at times there can be three or more at the same time; which makes it hard to know what has been said. Advisor messages are now queued (priorities may need tweaking), we need a similar system for announcements so that information announcements have a higher priority to random funny announcements.

Estimated Difficulty: 4/5

Key bindings

Key bindings are currently configured in various places. There is also a key mapping file to allow the player to choose some for themselves. However, this has already caused a conflict i.e. A was used to turn off and on the Advisor. In the key mapping file A is offered as an alternative for navigating the map in place of arrow keys. So we have changed this and we now use Shift + A for the advisor, which is the same as TH!

It would be better if they were all in the same place (and maybe they should also be the same as TH), maybe in a config file. In addition there could be a user interface menu, so that they could be changed easily and independently by the player. Listed below are the bindings from Theme Hospital and the equivalent from CorsixTH; if there is one.

Command References Theme Hospital CorsixTH Equivalents
To move around the hospital press the arrow keys Same
To set a camera key go to where you want to focus press Alt + a function key. This stores your camera position. Not Implemented
To go back to that position press Ctrl + the function key Not Implemented
To increase/decrease the number of Corridor or Extra Room Items you want to buy in multiples of 5 hold down the shift key while increasing or decreasing the number of items you want to buy Same
To increase/decrease the number of items by 10 hold down Ctrl while increasing or decreasing the number of items you want to buy Same
To Quick Save your game press Alt + S Same
To Quick Restore the last game saved in the Quick Save slot press Alt + L Same
To open the save dialog Not Available Shift + S
To open the load dialog Not Available Shift + L
To turn off sound effects Not Available Alt + S
To turn off music Not Available Alt + M
To turn off the announcements Not Available Alt + A
To speed up scroll (with arrow keys Not Available Shift + Arrow key
To speed up scroll (with arrow keys Not Available Shift + Arrow key
To Zoom in Not Available + (DirectX only)
To Zoom out Not Available - (DirectX only)
To Zoom in or out more Not Available Press Shift +/- (DirectX only)
To Zoom in or out Not Available Mouse wheel (Not SDL)
To Pause/Un-pause the game press P Same
To Quit the game and return to your operating system Not available Alt + F4
To Quit the game and return to first menu Shift + Q Same
To change the speed of the game to slowest,slower, normal, max, or ‘and then some more’ press 1, 2, 3, 4 or 5. Same
To speed up your hospital to ‘And Then Some More’ speed hold down W (release returns to previous speed) hold down Z (release returns to previous speed)
To open the first message Not Available M
To open Bank Manager Screen F7 F1
To open Bank Statement Screen F1 F2
To open Staff Screen F6 F3
To open Town Map Not Available F4 or T
To open Casebook F2 F5 or C (we also now an option to change this in config.txt to Shift + C if volume control is opening casebook)
To open Research Screen F4 F6 or R
To open Status Screen F8 F7
To open Charts / Graphs Screen F5 F8
To open Hospital Policy Screen F3 F9
To Restart game Not Used Shift + F10
To open the cheat menu (Debug mode only) Not Available F11
To open the Lua console window (Debug mode only) Not Available F12
Turn off the Advisor Shift + A Same
Take a screenshot Not Available press Ctrl + S
Toggle Full Screen/Window mode Not Available press Alt + Enter
Turn off the Information boxes on new rooms Not Available I
To make walls transparent Not Available hold down X (returns to normal on release)
To open the jukebox J Same
From Town Map, to be taken to that part of the hospital right click on hospital plan and be taken to that location Same
To dump to the game log* Not Available press Ctrl + D !

Estimated Difficulty: from 1/5 (add them separately) to 3/5 (adding an interface menu)

Multiplayer Support

Requires some serious thoughts and group discussion on the implementation before the actual coding can be started. We will start introducing multiplayer once all the options from the original Theme Hospital are implemented. Consider the user's ability to pause or use cheats. This could start with something small, such as competing to finish a level but not influencing each other's spawn rates via relative reputation. It could also start with replays (which also helps with bug finding), google code issue 105.

If you have the skills needed to plan or code this and feel up to the challenge, then please let us know.

Estimated Difficulty: 5/5

Easier to make new diseases

In the future we want it to be easy to make a new disease, and in order to walk towards that the game needs to be able to read some basic information about a complete disease from one single file. At the moment some parts are in the level files while others are in the specific disease file. We also want to avoid the number id system used for the original diseases to avoid clashes. Additionally these new diseases are probably better off together with saves and the config file rather than the installation directory?

Spawning of Patients

Patients arriving is implemented. The spawn rates are picked up from the level file and should also be linked to player's current reputation compared to that of the competitors. So if all human players have the same reputation and four patients spawn, they will receive one each. As there are no computer players, at the moment the player gets a proportion which has been set in the code (more than half).

We might need to wait until we have the AIs before this can be changed.

One suggestion is that when the player first open the hospital that one patient is spawned (providing there is a staffed desk) so the player knows all is well - see issue 1647.

New Cheats

New cheats, such as disabling earthquakes or epidemics

Estimated Difficulty: 1/5

Portability on macOS

Add Apple specific code to let the executable look for Corsixth.lua relative to wherever it is (ie ../Resources/).

Greater compatibility between saves made in full game or demo hospitals

Currently a savegame made with the full game files and a dialog from the full game open will not be playable on the demo game files. Instead it should close the dialog. In the reverse situation, the full game will not suggest to the user that they build the research department on the demo level.

TODOs in code comments

Some comments in the code start with "TODO" followed by something not done at the time. This includes researching the original game, discuss with other developers, make graphics, code new or better functions. Some of the list above is noted in such way. These comments are usually up to date, but it is worth checking that they are.

Internal documentation

Update the documentation whether possible, including drafts for new features by you or others.


Doxygen outputs many errors, these may relate to outdated configuration or parts of the program.


Increase to 100% coverage.


Enable, improve and extend.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.