Sims 3:0x02D5DF13

From SimsWiki
Revision as of 06:38, 19 July 2009 by Tiger (Talk | contribs)

Jump to: navigation, search

Contents

Overview

Coordinates animations(and sounds?).

Format

Follows the RCOL format, with its own custom chunks. All data is aligned on DWORD boundries. These chunks have a lot of filler data(0xDEADBEEF) which is a "serialization sentinel" according to enum definitions. There are two types of chunks, definition chunks and decision graph node chunks. The definition chunks form a simple structure with data about the state machine. Decision graph nodes form a recursive data structure. References to decision graph node indexes can validly refer to any decision graph node.

Definition Chunks

S_SM - State Machine Definition

DWORD 'S_SM'
DWORD Version    // 0x202
DWORD Name       // Hashed state machine name (Typically same as filename w/o path or extension)
DWORD count1     // Actor definitions
REP count1
  DWORD [S_AD index]
DWORD count2     // Property definitions
REP count2
  DWORD [S_PD index]
DWORD count3     // States
REP count3
  DWORD [S_St index]
REP count4
  DWORD filename //Hash of a .ma filename with extension
  DWORD actor1   //hash of actor name - animation parameter?
  DWORD actor2   //hash of actor name - animation parameter?
DWORD 0xDEADBEEF
DWORD Properties // State machine properties
DWORD Priority   // Automation priority
DWORD            // Value that's 0-5
DWORD Empty
DWORD Empty
DWORD Empty
DWORD Empty

S_St - State Definition

DWORD 'S_St'
DWORD version        // 0x101
DWORD Name           // Hashed state name
DWORD Priority       // Automation Priority
DWORD [S_DG index]   // State decision graph
DWORD count          // State transitions
REP count
  DWORD [S_St index] // Valid transitions out
DWORD // Values 0-6

S_PD - Parameter Definition

DWORD 'S_PD'
DWORD version // 0x100
DWORD hash    // Hashed parameter name
DWORD hash    // Default value

S_AD - Actor Definition

DWORD 'S_AD'
DWORD version // 0x100
DWORD Name    //hashed actor parameter name
DWORD Empty   //null in all JazzData.package cases

S_DG - Decision Graph

DWORD 'S_DG'
DWORD version         // 0x101
DWORD blank           // In all cases in JazzData.package
DWORD count1
REP count1
    DWORD [DGN index] // List of all decision graph nodes descendant from this S_DG
DWORD count2
REP count2
    DWORD [DGN index] // Root of the decision graph
DWORD (DEADBEEF filler)

Decision Graph Node Chunks

SoPn - Select on Parameter Node

DWORD 'SoPn'
DWORD version             // 0x101
DWORD index               // Parameter to select on
DWORD count               // Possible cases to select
REP count
    DWORD Value           //hashed value to compare
    DWORD indexcount
    REP indexcount
        DWORD [DGN index] // Action to take on match
4BYTE filler(DEADBEEF)
DWORD '/DGN'

SNSN - Next State Node

DWORD 'SNSN'
DWORD version             // 0x101
DWORD S_St index          // Next state
DWORD '/DGN' (end entry)

Rand - Random Node

DWORD 'Rand'
DWORD version             // 0x101
DWORD count               // Possible outcomes
REP count
    FLOAT                 // Random weight
    DWORD subcount
    REP subcount
        DWORD [DGN index] // Action on selection
DWORD - DEADBEEF
DWORD flags               // Random node flags
DWORD '/DGN'

Play - Play Animation Node

DWORD 'Play'
DWORD version     // 0x105
TGI64 (CLIP)
TGI64 (TkMk)
DWORD count1
DWORD
DWORD
DWORD
REP count1
  DWORD Empty
  DWORD Empty
  DWORD Actor      // Hashed actor parameter name
  DWORD Slot       // Hashed slot name (Only one instance of this in jazzdata.package)
DWORD count2
REP count2
  DWORD            // Hashed name
  DWORD            // Hashed name
DWORD filler(DEADBEEF)
DWORD
DWORD
DWORD
DWORD
DWORD len
STRING char16[len] // Padded to DWORD boundry w/ null termination included if longer than 0
if (len > 0){BYTE[4-((2*len)%4)]} '00'
DWORD
DWORD filler(DEADBEEF)
DWORD
DWORD Priority     // Animation Priroity
DWORD
FLOAT
FLOAT
FLOAT
FLOAT
DWORD [S_AD Index] // Actor to animate
DWORD Priority     // Animation Priroity
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD filler(DEADBEEF)
DWORD count3
REP count3
  DWORD [DGN Index] // Additional actions (On animation complete?)
DWORD '/DGN'

Prop - Create Prop Node

DWORD 'Prop' 
DWORD version       // 0x100
DWORD [S_Ad Index]  // Prop actor to create
DWORD blank
TGI64 propobject    // Catalog reference of prop to create - the type ID doesn't exist in any packages, but the instance ID is correct
5 DWORDS blank      // Could be another blank + TGI64
DWORD count
REP count
    DWORD [DGN index]
DWORD '/DGN'

AcOp - Actor Operation Node

DWORD 'AcOp'
DWORD version // 0x100
DWORD index   // Actor to operate on
DWORD 1       // Count? Always 1 in jazzdata.package, but there is also only one defined operation
DWORD op      // Actor operation
3 DWORDS blank
DWORD count
REP count
  DWORD [DGN index]
DWORD '/DGN'

Stop - Stop Animation Node

DWORD 'Stop'
DWORD version      // 0x104
DWORD
DWORD
DWORD
FLOAT
FLOAT
DWORD
FLOAT
DWORD [S_AD index] // Actor to stop animating
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD 0xDEADBEEF
DWORD count
REP count
  DWORD [DGN index]
DWORD '/DGN'
Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox