Skip to content

num0005/HaloScriptExtended

Repository files navigation

HaloScriptExtended

.NET 5 CodeQL

An extension to the HaloScript language used in the Halo game series and Stubbs the Zombie.

Features

Loops

Loops are supported if the start and end values can be evaulated at compile time

; (loop <iterator> <start> <end> [expressions])

(loop i 1 (+ 2 2) 
	(physics_set_gravity i)
	(sleep (* i 15))
)

Macros

; (script macro <return type> <name> (<argument type> <argument name) ...) [expressions])

(script macro void record (string message)
	(print message)
	(log_print message)
)

(script startup example_script_main
	(record project)
)

Macros are not currently type checked.

Constant globals

Similar to standard HaloScript globals but readonly.

Optimisation

The transpiler will attempt to optimise the code.