Game Object (Dynamic Type)

From Heavy Iron Modding
Revision as of 14:06, 13 May 2020 by Battlepedia>Igorseabra4

This page contains the format of the DYNA types which inherit from game_object. All offsets are relative to 0x10 (start of the type-specific data in DYNA assets).

game_object:BoulderGenerator

game_object:BoulderGenerator
Version1
Hash0xBB4864D8
Games usedThe Incredibles
Offset Type Variable Description
0x00 AssetID (Placeable/Marker) object
0x04 Vector3 offset
0x10 float offsetRand
0x14 Vector3 initvel
0x20 float velAngleRand
0x24 float velMagRand
0x28 Vector3 initaxis
0x34 float angvel

game_object:bungee_drop

game_object:bungee_drop
Version1
Hash0x574749A4
Offset Type Description
0x00 AssetID (Marker) marker
0x04 int set_view_angle
0x08 float view_angle

game_object:bungee_hook

game_object:bungee_hook
Version13
Hash0x57CFB6F0
Offset Type Description
0x00 AssetID (Placeable) entity
0x04 Vector3 enter
0x10 float attach.dist
0x14 float attach.travel_time
0x18 float detach.dist
0x1C float detach.free_fall_time
0x20 float detach.accel
0x24 float turn.unused0
0x28 float turn.unused1
0x2C float vertical.frequency
0x30 float vertical.gravity
0x34 float vertical.dive
0x38 float vertical.min_dist
0x3C float vertical.max_dist
0x40 float vertical.damp
0x44 float horizontal.max_dist
0x48 float camera.rest_dist
0x4C float camera.view_angle
0x50 float camera.offset
0x54 float camera.offset_dir
0x58 float camera.turn_speed
0x5C float camera.vel_scale
0x60 float camera.roll_speed
0x64 Vector3 camera.unused0
0x70 float collision.hit_loss
0x74 float collision.damage_velocity
0x78 float collision.hit_velocity

game_object:BusStop

game_object:BusStop
Version2
Hash0x8F012778

This asset defines a Bus Stop, which is used to switch the playable character between SpongeBob and either Patrick or Sandy.

It is very similar to a Taxi Stop, in that it creates a trigger at a Marker's position and uses a Camera and bus Simple Object to play a drive-by animation.

In the original game, levels that use Bus Stops only contain assets for either Patrick or Sandy, but not both. If, for example, you try to make a Bus Stop switch to Patrick in a level that only has Sandy's assets, nothing will happen. However, it is possible to use both Patrick and Sandy if you port the missing character's assets to the level, specifically the MODL, RWTX, ANIM, ATBL, and MINF assets.

Note that, similar to Taxi Stops, the busstop SIMP itself is completely separate from the Bus Stop game object and is not required for the Bus Stop to work.

Offset Type Variable Description
0x00 AssetID (Marker) marker Position of the Bus Stop. Typically placed right next to a busstop SIMP.
0x04 int character Which character to switch to. Note that the character's assets must be present in the level for the switch to work.
  • 0 = Patrick
  • 1 = Sandy
0x08 AssetID (Camera) cameraID Camera to switch to for the bus drive-by animation.
0x0C AssetID (Simple Object) busID Simple Object to play the bus drive-by animation with.
0x10 float delay Time in seconds after the bus drive-by animation starts to switch the character. The animation is about 2 seconds long, so this is commonly set to 1 or 1.5 to ensure the switch is hidden behind the bus simp. The approximate range allowed is 0.09 to 1.96, any values outside of this range will cause the switch to not work.

Events

  • Bus Switch Character

game_object:Camera_Tweak

game_object:Camera_Tweak
Version1
Hash0x9092FB14
Games usedThe Incredibles
Offset Type Variable Description
0x00 int priority
0x04 float time
0x08 float pitch_adjust
0x0C float dist_adjust

game_object:Flythrough

game_object:Flythrough
Version1
Hash0x85BFDF34
Offset Type Variable Description
0x00 AssetID (Fly) flyID

game_object:flame_emitter

game_object:flame_emitter
Version4
Hash0xE6120704
Games usedThe Incredibles
Offset Type Variable Description
0x00 int unknown
0x04 [Vector3]] position
0x10 float Unknown
0x14 float Unknown
0x18 float Unknown
0x1C float Unknown
0x20 float Unknown
0x24 float Unknown
0x28 float Unknown
0x2C float Unknown
0x30 float Unknown
0x34 float Unknown

game_object:NPCSettings

game_object:NPCSettings
Version2
Hash0x8768334A
Offset Type Variable Description
0x00 int (enum?) basisType null
0x04 byte allowDetect
0x05 byte allowPatrol
0x06 byte allowWander
0x07 byte reduceCollide
0x08 byte useNavSplines
0x09 byte[3] pad padding
0x0C byte allowChase
0x0D byte allowAttack
0x0E byte assumeLOS
0x0F byte assumeFOV
0x10 enum (en_dupowavmod) duploWaveMode
  • 0 - NPCP_DUPOWAVE_CONTINUOUS (Continuously respawn enemies)
  • 1 - NPCP_DUPOWAVE_DISCREET (Respawn enemies after all die, also fires Duplotron_WaveComplete event )
0x14 float duploSpawnDelay

Delay between spawning

0x18 int duploSpawnLifeMax

game_object:talk_box

game_object:talk_box
Version11
Hash0x0934B196
Games usedThe Incredibles
Offset Type Description
0x00 AssetID (game_object:text_box) dialog_box
0x04 AssetID (game_object:text_box) prompt_box
0x08 AssetID (game_object:text_box) quit_box
0x0C char/bool trap
0x0D char/bool pause
0x0E char/bool allow_quit
0x0F char/bool trigger_pads
0x10 char/bool page
0x11 char/bool show
0x12 char/bool hide
0x13 char/bool audio_effect
0x14 AssetID (pointer) teleport
0x18 char/bool auto_wait.type.time
0x19 char/bool auto_wait.type.prompt
0x1A char/bool auto_wait.type.sound
0x1B char/bool auto_wait.type.event
0x1C float auto_wait.delay
0x20 int auto_wait.which_event
0x24 AssetID (Text) prompt.skip
0x28 AssetID (Text) prompt.noskip
0x2C AssetID (Text) prompt.quit
0x30 AssetID (Text) prompt.noquit
0x34 AssetID (Text) prompt.yesno

game_object:task_box

game_object:task_box
Version2
Hash0xE9D2C1BB
Games usedThe Incredibles
Offset Type Description
0x10 char/bool persistent
0x11 char/bool loop
0x12 char/bool enable
0x13 char/bool retry
0x14 AssetID (game_object:talk_box) talk_box
0x18 AssetID (game_object:task_box) next_task
0x1C AssetID[6] (Text) stages
  • 0 - begin text
  • 1 - description text
  • 2 - reminder text
  • 3 - success text
  • 4 - failure text
  • 5 - end text

game_object:Taxi

game_object:Taxi
Version1
Hash0x4DC449FC

This asset defines a Taxi Stand, which lets SpongeBob take the taxi to another area of Bikini Bottom.

Its position is defined by a Marker, which is usually placed at the bottom center of a taxistand Simple Object. The game uses the marker as the base position at which to create a sphere (or cylinder?) shaped trigger. When SpongeBob enters this trigger a Talk Box​​ is displayed, usually asking the player if they want to enter a specific area of the game. If the player answers Yes then a taxi drive-by animation plays using a taxi SIMP and a Camera, and two internal timers are started, which when expired make SpongeBob invisible and teleport the player to a different level using a Portal. However, if Sandy or Patrick enters the trigger, a default "Only SpongeBob can use the Taxi" talk box is displayed instead.

Note that the taxistand SIMP is completely separate from the Taxi Stand game object, it doesn't have to be at the same place as the marker or even exist in the first place.

Offset Type Variable Description
0x00 AssetID (Marker) marker Center point of the Taxi Stand trigger. Typically placed at the bottom center of a taxistand SIMP.
0x04 AssetID (Camera) cameraID Camera to switch to for the taxi drive-by animation. Usually it's pointed directly towards the taxistand simp and placed relatively low so as to maintain the illusion of SpongeBob being "picked up" by the taxi.
0x08 AssetID (Portal) portalID Portal to teleport the player with after portalDelay expires. Note that if the destination level is the same as the current one, the game will soft-lock.
0x0C AssetID (game_object:talk_box​​) talkBoxID Talk Box to start conversation with upon the player entering the Taxi Stand trigger.
0x10 AssetID (Text​) textID Text to display on the talkbox.
0x14 AssetID (Simple Object​) taxiID Simple Object to use for the taxi drive-by animation. The position of the taxi is the where the midpoint of the animation will be, so usually it's placed right in front of the taxistand simp and rotated perpendicular to it.
0x18 float invTimer Time in seconds after the taxi drive-by animation starts to make the player invisible.
0x1C float portalDelay Time in seconds after the taxi drive-by animation starts to teleport the player with the portal.

game_object:Teleport

game_object:Teleport
Version1 or 2
Hash0x70ADB7F9

This asset defines a Teleport Box, which is used for quick travel to another area within a level. Typically, they are defined in pairs, where the 1st one warps to the 2nd one and the 2nd one warps back to the 1st one. However, a Teleport Box can warp to any other Teleport Box in the level, and therefore any number of Teleport Boxes can be linked together.

Its position is defined by a Marker, which the game uses to place an instance of the teleportation_box_bind model (boot.hip) in the world. It is not possible to change the rotation or scale of a Teleport Box.

Note that you do not need to manually create a trigger around the teleport box to open it, it opens automatically when the player walks close up to it.

Offset Type Variable Description
0x00 AssetID (Marker) marker Position of the Teleport Box.
0x04 int opened 0 or 1.
0x08 int launchAngle Rotation (in degrees) to set the player when hopping out of the Teleport Box.
0x0C int camAngle Rotation (in degrees) to set the camera. Not present in version 1 in BFBB, or in Movie regardless of version.
0x10 AssetID (game_object:Teleport) targetID Teleport Box to teleport the player to. The other Teleport Box must be opened before the player will be able to use this one.

Events

  • Open Teleport Box
  • Close Teleport Box

game_object:text_box

game_object:text_box
Version1
Hash0x442E1337
Games usedThe Incredibles
Offset Type Description
0x00 AssetID (Text) text
0x04 float bounds.x - X position (0 to 1)
0x08 float bounds.y - Y position (0 to 1)
0x0C float bounds.w - Width (0 to 1)
0x10 float bounds.h - Height (0 to 1)
0x14 uint font
  • 0 - Default (SpongeBob font)
  • 1 - Arial (Copyright screen)
  • 2 - System (Debug screen)
  • 3 - Numbers (HUD)
0x18 float size.width - Text width (0 to 1)
0x1C float size.height - Text height (0 to 1)
0x20 float space.x - Char X spacing (0 to 1)
0x24 float space.y - Char Y spacing (0 to 1)
0x28 Color color
0x2C float inset.left (0 to 1)
0x30 float inset.top (0 to 1)
0x34 float inset.right (0 to 1)
0x38 float inset.bottom (0 to 1)
0x3C int xjustify (text alignment)
  • 0 - XJ_LEFT
  • 1 - XJ_CENTER
  • 2 or higher - XJ_RIGHT
0x40 int expand (expand mode)
  • 0 - EX_UP - Expand textbox up to fit text
  • 1 - EX_CENTER - Expand textbox up+down to fit text?
  • 2 - EX_DOWN - Expand textbox down to fit text
  • 3 or higher (usually 100 for some reason) - MAX_EX - Don't expand textbox, instead clip the text if it takes up too much space
0x44 float max_height (0 to 1)
  • If expand is EX_UP, EX_CENTER, or EX_DOWN, this is the maximum height the textbox will grow to fit the text inside of it. If there's still more text beyond this height, it will be cut off.
  • If expand is MAX_EX, this is always 0.
0x48 uint backdrop.type
  • 0 - Solid Color
  • 1 - Texture
  • 100 - None
0x4C Color backdrop.color
0x50 AssetID (Texture) backdrop.texture - this is 0 if backdrop.type isn't set to Texture.

game_object:Vent

game_object:Vent
Version1
Hash0x4E09EC43

This object defines a steam emitter.

Offset Type Variable Description
0x00 Asset ID game_object:VentType Vent type Asset ID
0x04 Vector3 Position X, Y, Z
0x10 Vector3 Rotation Yaw, Pitch, Roll
0x1C float Unknown
0x20 float Unknown
0x24 float Unknown
0x28 float Unknown
0x2C float Unknown
0x30 float Unknown
0x34 float Unknown
0x38 int Unknown
0x3C float Unknown
0x40 float Unknown
0x44 float Unknown

game_object:VentType

game_object:VentType
Version1
Hash0x5E5B5165

This object defines properties for a steam emitter.

Offset Type Variable Description
0x00 Asset ID PARE Constant particle type
0x04 Asset ID SGRP Constant sound group
0x08 Asset ID PARE Warning particle type
0x0C Asset ID SGRP Warning sound group
0x10 Asset ID PARE Emit particle type
0x14 Asset ID SGRP Emit sound group