Furnitureinfo

From LMHack

Original Author(s)

weirdboo

Description

Documentation on the rather large and complex jump table furnitureinfo. This file spawns in BIN furniture models from room archives in root/Iwamoto with a variety of options.

furnitureinfo can be edited with Dollhouse and Jumpah.

Field Type Proper Values Description
name String Any string. Nintendo always set this string to "furniture", but it can be anything you want.
dmd_name String The name of any BIN furniture model in a room's archive. If no model is desired, then simply put (null). The string name of the BIN furniture model. This model will need to be in the room archive for the room you're putting it in. These archives are located in root/Iwamoto. Note that the file size for each room archive must be under 450 kilobytes.
access_name String Must match access_name in an enemyinfo entry. If not, then simply put (null). Checks if the given string matches with access_name in any enemyinfo entry. If there's a match, the actor will be hidden in the furniture, and only allowed to spawn once the furniture has been opened.
pos_x Float Coordinates within the room's bounding box. These are the spawn coordinates for the furniture.
pos_y Float
pos_z Float
dir_x Float -360.000000 < n < 360.000000 The degree (n) of x-axis rotation for the furniture. Negative values tilt backwards, while positive values tilt forwards. Note that move types 5, 7, 13, 17, 19, and 20 are not compatible with dir_x.
dir_y Float The degree (n) of y-axis rotation for the furniture. Negative values turn left, while positive values turn right.
dir_z Float The degree (n) of z-axis rotation for the furniture. Negative values tilt left, while positive values tilt right. Note that move types 0-4, 7, 9, 10, 13-22, 24-28, 34-36, 38, 39, 42, and 43 are not compatible with dir_z.
scale_x Float N/A Useless.
scale_y Float
scale_z Float
room_no Integer map0, map5, map6, map7, and map8: 0-3. The room that the furniture should spawn in.
map1, map3, map4, map9, map10, map11, and map12: 0.
map2: 0-71.
item_offset_y Float Any float. How high/low to spawn the item listed in item_table. It starts from the value of pos_y.
item_table Integer The number of an entry in itemappeartable. The item that will come out of the furniture once opened. The item should be defined in iteminfotable in order for it to spawn properly. If the item is money, then the type must be specified with generate.
generate_num Integer Any non-negative integer. If the item defined in item_table is money, then generate_num tells the game how much of the money to spawn.
telesa_hide Integer Any non-negative integer. How likely a furniture will have a Boo hiding in it. Higher values mean it's more likely a boo will spawn there. A value of 0 will make it impossible for a Boo to spawn from the furniture. If all furniture in a room is set to 0, the Boo Radar will turn blue and no Boo will spawn in the room at all. A good way to imagine telesa_hide is to think of it as the number of "raffle tickets" that each furniture has when a Boo spawns. The Boo "picks a ticket" to hide in a furniture, so furniture with more "tickets" will have a higher chance of a Boo picking them.
move_level Integer Any non-negative integer. How much the furniture shakes when Luigi vacuums it. The higher the number, the more intense the shaking effect will be (0 = no shaking effect at all).
arg0 Float Any float. Move Types
arg1 Float
arg2 Float
appear_flag Integer 0-255. This flag will allow the furniture to spawn.
disappear_flag Integer 0-255. This flag will prevent the furniture from spawning.
furniture_x Integer Any non-negative integer.

These coordinates make an invisible scanbox around the furniture that detects if Luigi is interacting with it. These interactions include: pressing the A button near the furniture and scanning the furniture with the GBH. Setting these coordinates to 0 will prevent Luigi from knocking on / shaking the furniture or scanning it with the GBH, but vacuuming it will still work just fine. Rotating the furniture via dir_x, dir_y, and dir_z will also rotate this invisible scanbox. Note: if you are making invisible furniture such as posters, these coordinates will determine the size.

furniture_y Integer
furniture_z Integer
counter Integer 0-255. This value will be passed to event77 and processed with <COUNTJMP2> when Luigi scans a furniture's scanbox with the GBH. The resulting jump will display Luigi's dialogue.
move Integer 0-43. Move Types
furniture_sound Integer 0-25. Furniture Sounds
sheet Integer 0-25. Sheet Behaviors
generate Integer 0-8. Furniture Money
sheet_texture Integer 0-15. Sheet Textures
not_transparent Boolean 0 or 1. If set to 1, the furniture will always be solid. If set to 0, the furniture will turn transparent when Luigi walks behind it.
sheet_gum Boolean If sheet ≠ 0, then 0 or 1. If set to 0, Luigi can vacuum up the sheet normally. If set to 1, Luigi will not be able to vacuum up the sheet. If Luigi keeps vacuuming and moves far enough backwards, he will be knocked back and lose some health, revealing the Boo "Get out of here!" texture. Luigi can also preemptively let go of the sheet to reveal that texture. Note that sheet_gum was designed to be used with sheet behavior types 9-12 (posters), so using it with other sheet types won't look very good.
telesa_appear Integer N/A Useless.