Lastexpress/Internals
Entities
The AI logic for the game was originally written in a script language and then compiled to native code.
Each character (plus some specific non-characters) in the game - called entities in the ScummVM engine - has a set of logic functions:
- a global setup function, called on engine startup and once for each chapter
- a CallFunction method that increments the current call index and calls a function pointer with the passed arguments
- a set of logic functions that comes in pair: a setup function that prepares the arguments and store them in a custom structure, and the function itself
- shared functions (they are mostly identical between each entity, but duplicated in the original engine)
- chapter setup/handler functions
- per-chapter functions