42484156

From SimsWiki
Jump to: navigation, search
42484156
Short name: BHAV
Long name: Behavior function

This resource contains the SimAntics subroutines.

Contents

Format

64 bytes
File name (null terminated)
12 bytes
(see Header Format below)
for each entry
variable
(see Entry Format below)

Header Format

WORD
Signature (0x8000 through 0x8009)
WORD
Number of instructions in subroutine
Byte
tree type (deprecated)
Byte
Number of parameters passed to the subroutine
Byte
Number of local variables used in the subroutine
Byte
Header flag (deprecated)
DWORD
Tree version number (signed integer)

Entry Format

The signature defines the structure of the each instruction.

8000, 8001 & 8002

(instruction length: 12 bytes)

WORD
Function/OpCode
Byte
Goto on true
Byte
Goto on false
8 bytes
Operands

8003 & 8004

(instruction length: 20 bytes)

WORD
Function/OpCode
Byte
Goto on true
Byte
Goto on false
16 bytes
Operands

8005 & 8006

(instruction length: 21 bytes)

WORD
Function/OpCode
Byte
Goto on True
Byte
Goto on False
Byte
Node version (Flag - 0x00 or 0x01)
16 bytes
Operands

8007 & 8008

(instruction length: 23 bytes)

WORD
Function/OpCode
WORD
Goto on true
WORD
Goto on false
Byte
Node version (Flag - 0x00 or 0x01)
16 bytes
Operands

8009

(instruction length: 24 bytes)

WORD
Function/OpCode
WORD
Goto on true
WORD
Goto on false
Byte
Node version (Flag - 0x00 or 0x01)
16 bytes
Operands
Byte
Cache flags

Notes

The 1-byte Goto statements in 8001-8006 appear to use the same codes as was used in The Sims 1:

  • 0xFD as Error
  • 0xFE as True
  • 0xFF as False.

The 2-byte Goto statements in 8007-8009 use these Goto codes:

  • 0xFFFC as Error
  • 0xFFFD as True
  • 0xFFFE as False.

The 8007-8009 formats can contain more than 256 seperate instructions, thus the use of 2-byte Goto statements.

Notes

Number of each signature type (0x8000 - 0x8007) contained in (original) objects.package:

  • 0x8000 - 1
  • 0x8001 - 2
  • 0x8002 - 25
  • 0x8003 - 75
  • 0x8004 - 4
  • 0x8005 - 285
  • 0x8006 - 1,357
  • 0x8007 - 15,507
  • 0x8008 & 0x8009 introduced later

This article is one of several on this topic imported from the old MTS2 wiki. It's original pages, with comments, can be found at http://old_wiki.modthesims2.com/42484156 and http://old_wiki.modthesims2.com/BHAV

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox