History
2004
September: Weak queues get added with the introduction of Make-X.
2005
???: Strong queues get added.
???: Region commands get added to create and manipulate instances.
???: The p_loaddelay command gets added.
2009
???: Structs get added - Ash convinced Andrew.
Our Implementation
Our RuneScript implementation deviates in a few ways. This is because we continued to learn history during the project's development. We want to support the original language behaviors 100%.
- We support some language features that were introduced later: local variables, procs, booleans, structs, enums, dbtables, and debugprocs. Macros are not supported currently.
- Our pointer checking supports inversions:
if (p_finduid(uid) = false) { return; }
is valid code, and code following it will have the pointer set. - We support local variable declarations at any scope. Traditionally the real game must have them at the top level.
- We split strings on the pipe
|
character to continue text on newlines if we need a manual break to match screenshots.