This page is located on the SimsWiki. To view it in it's original form, click here.
This article is imported from the old MTS2 wiki. You can help Sims2Wiki by cleaning it up. It's original page with comments can be found at http://old_wiki.modthesims2.com/LUA

LUA is an imperative programming language, designed in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes, members of the Computer Graphics Technology Group (Tecgraf) at PUC-Rio, the Pontifical University of Rio de Janeiro, in Brazil. "Lua" means "Moon" in Portuguese.

There is a wikipedia entry on Lua: Lua (programming language).

General LUA Text

Specific Types (Simcity4) (by Karybdis)

Instance by: CRC24Polynomial = 0x01864cfb, CRC24Seed = 0x00b704ce, return (CRC24(from, false) | 0xFF000000)

LUAAdvice LUADefs LUAAdvisors LUAMission LUAObject LUASystem LUATutorials


BINARY LUA - By Quaxi

Here are the first things I found out about the .objLua and .globalObjLua

general Format:

	DWord: 1b 4c 75 61   (ID)
	Byte: Version    
	16-Bytes: Header
	    ---> Root "Function Block"

Function Block:

	Dword: Character count n
	n-Byte: Name of the Function (null terminated)
	5-Byte: unknown
	Byte: argument Count
	Byte: unknown
	Byte: stack Size
	
	12-Byte: 00

	4-Byte: constant counter 
	    ---> Loop Constant Block
	
	4-Byte: functions counter
	    ---> Loop Function Block

	4-Byte: instruction counter
	    ---> Loop Instruction Block

Instruction Block (a=Operand a, b=Operand b, c=Operand c, o=Opcode):

	Dword: aaaa aaaa bbbb bbbb bccc cccc ccoo oooo    

This Document lists the available opcodes: http:www.tecgraf.puc-rio.br/~lhf/ftp/doc/sblp2005.pdf

Constant Block:

	Byte: ConstantType
	    ----> Constant Data

List of know Constant Data Types


-0x00 = Empty, Null This seems to mark an empty block -0x03 = Number

	DWord: Unknown
	DWord: Unknown

-0x04 = Strings

	DWord: Length n of the following PString
	n-Bytes: Instruction Name, null-terminated