Switch Objects - LordNed/WindEditor GitHub Wiki

Switches allow the player to cause things to happen in the environment. Below are the names and parameters of the switch actors and their related objects.

Kbota_A

A common floor switch.

Parameters

/*0x08*/ byte switchType; //0x40 means normal/permanent, 0x41 means normal/temporary, 0x42 means inverted
/*0x09*/ byte unkwn1; //Always 0x00
/*0x0A*/ byte setFlag; //Any objects that have this flag will be activated when the switch is pressed
/*0x0B*/ byte dzsEventIndex //DZS Event indexed will play when the switch is pressed. 0xFF means no event

Notes

An "inverted" switch acts like a normal switch, except for the fact that it is in a pressed state while its setFlag value is unset. It will become a normal, pressable switch once the flag is set, and pressing it at this point causes the flag to become unset.

SW_HIT0

A common crystal switch.

Parameters

/*0x08*/ byte unkwn1;
/*0x09*/ byte hitEvent; //An event to be played when the crystal is hit. Whether it is from the DZS' EVNT chunk is unknown.
/*0x0A*/ byte unkwn3;
/*0x0B*/ byte setFlag;

MhmrSW0

A switch that must be whacked with the Skull Hammer to activate.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x00
/*0x09*/ byte unkwn2; //Usually 0x03
/*0x0A*/ byte setFlag;
/*0x0B*/ byte unkwn3; //Usually 0xFF

Hhbot1N

A switch that is activated when walked on while wearing the Iron Boots.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x03
/*0x09*/ byte unkwn2; //Usually 0x00
/*0x0A*/ byte setFlag;
/*0x0B*/ byte unkwn3; //Usually 0xFF

Hhyu1

This is a floor panel that can be destroyed by walking over it with the Iron Boots. Doing so sets a flag specified in its parameters.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x00
/*0x09*/ byte unkwn2; //Usually 0x00
/*0x0A*/ byte unkwn3; //Usually 0x00
/*0x0B*/ byte setFlag; //Flag to set when destroyed

AND_SW0

When this object is activated, it waits for a specified number of switches to be activated before setting a flag itself. The switch that activated the AND_SW0 counts as one of these switches.

Parameters

/*0x08*/ byte setFlag; //Flag that the object sets when numSwitches switches are activated
/*0x09*/ byte activationFlag; //Flag that activates the object
/*0x0A*/ byte unkwn1; //Usually 0x02
/*0x0B*/ byte numSwitches; //Number of switches to wait for before setting setFlag

AND_SW2

When this object is activated, it waits for a specified number of switches to be activated before setting a flag itself. The switch that activated the AND_SW2 counts as one of these switches.

Parameters

/*0x08*/ byte activationFlag; //Flag that activates the object
/*0x09*/ byte setFlag; //Flag that the object sets when numSwitches switches are activated
/*0x0A*/ byte unkwn1; //Usually 0x00
/*0x0B*/ byte numSwitches; //Number of switches to wait for before setting setFlag

ObjTime

When this object is activated, it begins to count down to zero from a specified time value. When the timer runs out, the flag that activated the object is unset.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x00
/*0x09*/ byte checkFlag; //When this flag is set, ObjTime is activated. When timerValue reaches 0, this flag is unset.
/*0x0A*/ byte unkwn3; //Usually 0x00
/*0x0B*/ byte timerValue; //Amount of time before the flag is unset. Unit of time measurement unknown

ALLdie

Sets a flag when all of the enemies in a room have been killed.

Parameters

/*0x08*/ byte unkwn1; //Usually 0xFF
/*0x09*/ byte unkwn2; //Usually 0xFF
/*0x0A*/ byte setFlag;
/*0x0B*/ byte ukwn3; //Usually 0xFF

SW_C00

Sets a flag when Link walks into its range. This switch object is found in the SOBx chunks of a DZS or DZR file.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x00
/*0x09*/ byte unkwn2; //Usually 0x03
/*0x0A*/ byte checkFlag; //Wait to set setFlag until checkFlag has been activated. 0xFF means no waiting
/*0x0B*/ byte setFlag;

SWtact

This sets a flag when a song is played on the Wind Waker while standing within its range. It is found in the SCOx chunk of the DZS and DZR files.

Parameters

/*0x08*/ byte unkwn1; //Usually 0x00
/*0x09*/ byte areaMarker; //The model from Itact.arc, scaled to the object's scale params. 0x00 means marker isn't spawned, 0x01 means it is
/*0x0A*/ byte triggerSong; //Song used to activate the switch. 0x00 is Wind's Requiem, 0x01 is Ballad of Gales, 0x02 is Command Melody, 0x03 is Earth God's Lyric, 0x04 is Wind God's Aria, 0x05 is Song of Passing
/*0x0B*/ byte setFlag;