From OpenTTD
Jump to: navigation, search
HAL (Hardware Abstraction Layer)


Window System

Using the Window System
Colour codes that exist in OpenTTD
Adding a text box
Understanding the widget focus system


Add a setting
Add a squirrel function
Do a savegame BUMP

The Map / Scenario

Understanding the Dynamic Landscape Array
Understanding the SaveGame Handler
HOWTO - Create good Scenarios
HOWTO - Add New Town Name Generators

The actual simulation

Using Orders
Train Acceleration

Language and Strings

Format of langfiles
Using OpenTTD Strings
List of Special Strings


The Core Interface

Starting a Server
Connecting to a Server
Using the list of LAN/Internet Games

The OpenTTD TCP Protocol
The OpenTTD UDP Protocol
HOWTO - Debug desyncs

Ingame Console

The Console Window
Using Console Scripting
HOWTO - Add Functions/Commands to the Console
HOWTO - Add Variables to the Console
HOWTO - Direct Variable Access using ICONSOLE_VAR_POINTER
OpenTTD Console Commands
OpenTTD Console Variables
Development History

Development History.


Revision #1

console features:

  • console window like in 3d ego shooters
  • internal command and variable handler
  • 80 lines console screen buffer [scrolling not possible yet]
  • error / debug message output
  • direct c++ integration over pointer access
  • dynamic string allocation


  • list_cmds [filter]
  • list_vars [filter]
  • echo [string]
  • echoc [color-code] [string]
  • printf [formatstring] [var] [var] [var]....
  • printfc [color-code] [formatstring] [var] [var] [var]....
  • screenshot ["big"]
  • debug_level [0-9]
  • exit


  • * developer
    • -> 0 = no output
    • -> 1 = console error output [like command not found]
    • -> 2 = console error and debug output
  • *cursor_rate
    • -> 1-12 = defines the cursor blink interval

Revision #2

console features:

  • scroll up CURSOR-UP PAGE-UP
  • scroll down CURSOR-DOWN PAGE-DOWN

console language features:

  • c-language independent variables
  • *temp_uint16 << random
  • the "<<" allows to put a return value of a function into an variable

new console commands:

  • help
  • quit
  • random (implented to test value passing to variable)
  • dump_vars [filter]

Revision #3

Console Language Enhancements:

  • Copy data from one data to another
  • Passing of variable-references

Console Enhancements:

  • new command buffer: saves 20 commandlines [UP and DOWN KEYS]
  • scrolling: SHIFT + UP / DOWN / PG_UP / PG_DOWN

new/changed commands:

  • screenshot [big/no_con]
  • varinfo

new variables:

  • *con_developer
    • -> true = console debugging output
    • -> false = no output

Revision #4 [planned]

Console Language Enhancements:

  • allowing script files with "exec [filename]"
  • dumping console to files with "script [filename]"
  • command and variable hooking
    • ACCESS
  • some more commands

Revision #5 [planned]

  • access to configuration and patch variables
  • dumping variables to file
Personal tools