42484156

From SimsWiki
Revision as of 02:21, 29 December 2004 by Delphy (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
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/42484156
==== BHAV====

__All BHAVs have a similar basic format:__ 64 - Filename (null terminated) 12 - Header var - Instruction 1 var - Instruction 2 var - Instruction n ...

__Each header also uses a similar format:__ 2 - signature (0x8000 through 0x8007) 2 - count (number of instructions in file) 1 - tree type (Deprecated) 1 - args (number of Parameters passed to the subroutine) 1 - locals (number of local variables used in the subroutine) 1 - header flag 4 - Tree Version #


The signature also defines the structure of the individual instructions, as follows:

  • 8001 & 8002 (instruction length: 12 bytes)

- 2 - Function/OpCode - 1 - Goto on True - 1 - Goto on False - 8 - Operands

  • 8003 & 8004 (instruction length: 20 bytes)

- 2 - Function/OpCode - 1 - Goto on True - 1 - Goto on False - 16 - Operands

  • 8005 & 8006 (instruction length: 21 bytes)

- 2 - Function/OpCode - 1 - Goto on True - 1 - Goto on False - 1 - Node Version (Flag - 0x00 or 0x01) - 16 - Operands

  • 8007 (instruction length: 23 bytes)

- 2 - Function/OpCode - 2 - Goto on True - 2 - Goto on False - 1 - Node Version (Flag - 0x00 or 0x01) - 16 - Operands

Notes: The 1-byte Goto statements in 8001-8006 appear to be the same as

 was used in TS1: 0xFD as Error, 0xFE as False, and 0xFF as True.

The 2-byte Goto statements in 8007 appear to be using

 0xFFFC as Error, 0xFFFD as True, and 0xFFFE as False.

The 8007 format can contain more than 256 seperate instructions,

 thus the use of 2-byte Goto statements.

Number of each signature type (0x8000 - 0x8007) contained in objects.package: 0x8000 - 1 0x8001 - 2 0x8002 - 25 0x8003 - 75 0x8004 - 4 0x8005 - 285 0x8006 - 1,357 0x8007 - 15,507

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox