Here is the codeblock:
Code:
if ( SWITCHHOOK_USE_LAYER_2 ) { //2
for ( int q = 0; q < 176; q++ ) { //Pass through the screen combos to find a match...
int cmb2 = GetLayerComboI(2,q); //loading them along the way...
cmb2X = ComboX(q); //The combo number for the for loop pass...
cmb2Y = ComboY(q); //... X and Y
int loc = ComboAt(cmb2X,cmb2Y);
if ( ( comboF && cmb2 == comboF ) || ( !comboF && cmb2 == CF_SWITCHHOOK ) ) {
//If D0 is assigned a value above 0, check to see if it matches
//that combo inherent flag, otherwise check if it matches the one
//assigned to the constant CF_SWITCHSHOT.
//If it does....
//int cmb_under =
//if ( switching ) {
if ( ComboCollision(loc,l) ) { //and there is collision between that combo and the hookshot...
//!We need to check every layer...too..for combos on layers higher than 0. (?)
l->DeadState = WDS_DEAD; //Kill the hookshot.
if ( sfx ) Game->PlaySound(sfx); //Play the sound defined in the item script,
if ( !sfx && SFX_SWITCHHOOK ) Game->PlaySound(SFX_SWITCHHOOK); //or the constant if the item editor arg isn't set.
//Store Link's starting position.
lx = CenterLinkX();
ly = CenterLinkY();
//Store the switchshot combo to move.
cmb2X = ComboX(q); //The combo number for the for loop pass...
cmb2Y = ComboY(q); //... X and Y
cmb2D = GetLayerComboD(2,q); //The original data of the switchhook combo.
cmb2S = GetLayerComboS(2,q); //The original solidity of the switchshot combo.
cmb2C = GetLayerComboC(2,q); //The original CSet.
//Store the combo datum for the cumbo that Link is on.
cmb2LD = GetLayerComboD(2,ComboAt(Link->X, Link->Y)); //The combo under Link.
cmb2LS = GetLayerComboS(2,ComboAt(Link->X, Link->Y)); //The solidity of the combo under Link.
cmb2LX = GridX(lx); //The X position
cmb2LY = GridY(ly); //The Y position
cmb2L = ComboAt(cmb2LX,cmb2LY); //The screen index for that combo (Nth of 276).
cmb2LC = GetLayerComboC(2,ComboAt(Link->X, Link->Y));
//Change the combo where Link WAS, to the switchshot combo.
SetLayerComboD(2,cmb2L,cmb2D); //Set its data
SetLayerComboS(2,cmb2L,cmb2S); //and solidity.
//!Setting solidity on layer 2 crashes ZC....BUT
//!the solidity seems to be preserved anyway.
SetLayerComboC(2,cmb2L,cmb2C); //and CSet.
//Move Link to where the old switchshot combo that we moved, WAS.
Link->X = cmb2X;
Link->Y = cmb2Y;
//Move the switchshot combo to where LINK was before he moved...
SetLayerComboD(2,q,cmb2LD); //Set the combo data
SetLayerComboS(2,q,cmb2LS); //and the solidity.
SetLayerComboC(2,q,cmb2LC); //and CSet.
this->Script = 0; //Free the FFC for later use.
this->Data = 0;
Quit();
}
}
}
}