Dummy Display Model Table - Lord-G-INC/Modular-PTD GitHub Wiki

Module Information

The Dummy Display Model Table allows new visual models to be displayed in supporting objects. Obj_arg6 of any DummyDisplayModel supporting actor now accesses a list defined in the new DummyDisplayModelTable BCSV file.
This module is by Evanbowl.
This is a new page and new information may be added at any time.

Files

Archive Type
/SystemData/DummyDisplayModelTable.arc Custom

You can get a sample table here. Or, you can find it in the disc folder inside the module.

Note 1: The first 15 rows of the Table, or Indices 0-14, are the DummyDisplayModel data entries used by the vanilla game. Editing them is possible but it is recommended to keep these as vanilla as possible.
Indices 15-23 are new and not in the original game. These are all of the Power Ups.

BCSV Field Information

Name Data Type JMap Hash Is In Lookup?
Index Int 043838B2 Yes
ModelName String FF974D34 Yes
InitName String 13D7AFDB No
OffsetX Float 06EDC605 Yes
OffsetY Float 06EDC606 Yes
OffsetZ Float 06EDC607 Yes
Param00Int Int 8F1F6D82 Yes
AnimName String D46BA45C Yes
ColorChange Int 81F680D3 Yes
RotateType Int 72209755 Yes
SetupType Int D452D737 No
NoLightCtrl Int E9CF93C0 No
BehaviorType Int 7DDC90CC No

(In Lookup means the hash is present in the hash databases of tools such as Whitehole or pyjmap)

This table uses hashes that do not exist in the lookup by default. It is recommened to copy and paste this into the bottom of Whitehole's hashlookup.txt

# DummyDisplayModelTable
InitName
SetupType
NoLightCtrl
BehaviorType

It is optional, but you would want these columns to actually be named, instead of being represented by a bunch of numbers.

Field Descriptions and Usages

These first columns populate a DummyDisplayModelInfo instance.

Index - Required This column connects Obj_arg7 to a row in the DummyDisplayModelTable. Obj_arg7 set to 9 would use Index #9, which is defined as Goomba Numerical order is not required, any index ID can be used as long as there is only one of each.

ModelName - Required

This defines the ObjectData file you intend to use as a model. Must be a valid model Pulls from /ObjectData/ModelName.arc

InitName - Defaults to 0

Defines an InitActor file to initialize. "Dummy" would read from "InitActorDummy.bcsv" If 0 (default), the game will read from "ActorInfo.bcsv"

Offset - Required

Makes up a vector used to offset the model's position.

Param00Int - Unknown

This function defined by this parameter is unknown, however models from the vanilla game define values here.

AnimName - Defaults to 0

Starts an animation after DummyDisplayModel initialization.

ColorChange - Defaults to 0

Determines whether or not the DummyDisplayModel is paired with a BTP or BRK animation. The BTPbr/K animation frame is controlled by Obj_arg6 -> This is used by Kinopio(1) and Tico(5)

These next columns are new and not part of DummyDisplayModelInfo.

RotateType - Defaults to 0

Defines how a model rotates. 1 = CoinRotator, 2 = Power Star. Any other values disable -> Note: DummyDisplayModels created by any of the CrystalCage actors will not spin, completely ignoring this setting.

SetupType - Defaults to 0

Determines what extra initialization process apply to a DummyDisplayModel . The list is as follows.

ID Function
1 Shadow Sphere
2 Power Star Setup Color
3 Grand Star Setup Color
4 SuperSpinDriver Start Color Animation
5 Create LodCtrl

-> Only one SetupType can be used at a time.

NoLightCtrl - Defaults to 0

If enabled, the DummyDisplayModel will not initialize LightCtrl.

BehaviorType - Defaults to 0

Determines how a DummyDisplayModel supporting actor uses the DummyDisplayModel
-> This is actor specific! A table is provided.

Behavior ID BreakableCage CrystalCage Teresa
0 -- Declares 1 Coin --
1 -- Plays SvKinopioPuha on break --
4 Declares 5 StarPieces Declares 5 StarPieces --
5 -- Plays OjCryCageMvTicoApr on break --
6 -- -- Constructs KeySwitch
7 -- Declares PowerStar --

Without this module, these functions are determined by the Model ID of each model. As such, all of the DummyDisplayModels from the original game have their BehaviorType set to their original Model IDs.

Other Notes

Kinopio, Index 1, is bugged in SMG2. It may appear invisible from outside CrystalCages.
To fix this bug, set InitName to "Dummy" and supply an InitActorDummy.bcsv with the Executor parameter set to "CrystalItem".

⚠️ **GitHub.com Fallback** ⚠️