Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int LADDER_TILE = 369;
- int GRAM[512];
- const int DRAW_LADDER = 511;
- void DrawLadder(bool v){ GRAM[DRAW_LADDER] = Cond(v, 1, 0);}
- bool DrawLadder(){ return GRAM[DRAW_LADDER];}
- bool isLadder(int x, int y){
- int loc = ComboAt(x,y);
- if (Screen->ComboT[loc]==CT_LADDERHOOKSHOT) return true;
- if ( Screen->ComboT[loc]==CT_LADDERONLY) return true;
- return false;
- }
- bool ScriptedLadder()
- {
- if (!(Link->Item[I_LADDER1])) return false;
- if ( Link->InputRight )
- {
- if ( Link->InputUp ) { //diagonal up-right}
- else if ( Link->InputDown ){ //diagonal down-right}
- else
- {
- if((isLadder(Link->X+17,Link->Y+8) ) { Link->X+=2; return true; }
- if ( isLadder(Link->X+17, Link->Y) ) { Link->X+=2; return true; }
- if ( isLadder(Link->X+17, Link->Y+15) ) { Link->X+=2; return true; }
- if ( isLadder(Link->X+1,Link->Y+8) ) { Link->X+=2; return true; }
- if ( isLadder(Link->X+1, Link->Y) ) { Link->X+=2; return true; }
- if (IsLadder(Link->X+1, Link->Y+15)) { Link->X+=2; return true; }
- }
- if ( Link->InputLeft )
- {
- if ( Link->InputUp ) { //diagonal up-left}
- else if ( Link->InputDown ){ //diagonal down-right}
- else
- {
- if((isLadder(Link->X-1,Link->Y+8) ) { Link->X-=2; return true;}
- if (isLadder(Link->X-1,Link->Y)) { Link->X-=2; return true;}
- if (isLadder(Link->X-1,Link->Y+15)) { Link->X-=2; return true;}
- if (isLadder(Link->X+15,Link->Y+8)) { Link->X-=2; return true;}
- if (IsLadder(Link->X+15,Link->Y)) { Link->X-=2; return true;}
- if (isLadder(Link->X+15,Link->Y+15)) { Link->X-=2; return true;}
- }
- //only non-diagonals are not covered
- if ( Link->InputUp )
- {
- if( (isLadder(Link->X+8,Link->Y-1)) { Link->Y-=2; return true; }
- if( isLadder(Link->X,Link->Y-1)) { Link->Y-=2; return true; }
- if ( isLadder(Link->X+15,Link->Y-1)) { Link->Y-=2; return true; }
- if ( isLadder(Link->X+8,Link->Y+15)) { Link->Y-=2; return true; }
- if ( isLadder(Link->X,Link->Y+15)) { Link->Y-=2; return true; }
- if ( isLadder(Link->X+15,Link->Y+15)) { Link->Y-=2; return true; }
- }
- if ( Link->InputDown)
- {
- if((isLadder(Link->X+8,Link->Y+17)) { Link->Y+=2; return true;}
- if ( isLadder(Link->X,Link->Y+17)) { Link->Y+=2; return true;}
- if (isLadder(Link->X+15,Link->Y+17)) { Link->Y+=2; return true;}
- if ( isLadder(Link->X+8,Link->Y)) { Link->Y+=2; return true;}
- if ( isLadder(Link->X,Link->Y)) { Link->Y+=2; return true;}
- if ( isLadder(Link->X+15,Link->Y)) { Link->Y+=2; return true;}
- }
- return false;
- }
- void DoLadder()
- {
- DrawLadder( ScriptedLadder() );
- if(DrawLadder() )
- {
- Screen->FastTile(0,Link->X,Link->Y,LADDER_TILE,0,128);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement