Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case wtSCROLL: // scrolling warp
- {
- int c = DMaps[currdmap].color;
- currmap = DMaps[wdmap].map;
- update_subscreens(wdmap);
- dlevel = DMaps[wdmap].level;
- //check if Link has the map for the new location before updating the subscreen. ? -Z
- //This works only in one direction, if Link had a map, to not having one.
- //If Link does not have a map, and warps somewhere where he does, then the map still briefly shows.
- update_subscreens(wdmap);
- if ( has_item(itype_map, dlevel) )
- {
- //Blank the map during an intra-dmap scrolling warp.
- dlevel = -1; //a hack for the minimap. This works!! -Z
- }
- // fix the scrolling direction, if it was a tile or instant warp
- if(type==0 || type>=3)
- {
- sdir = dir;
- }
- scrollscr(sdir, wscr+DMaps[wdmap].xoff, wdmap);
- dlevel = DMaps[wdmap].level; //Fix dlevel and draw the map (end hack). -Z
- reset_hookshot();
- if(!intradmap)
- {
- currdmap = wdmap;
- dlevel = DMaps[currdmap].level;
- homescr = currscr = wscr + DMaps[wdmap].xoff;
- init_dmap();
- int wrx,wry;
- if(get_bit(quest_rules,qr_NOARRIVALPOINT))
- {
- wrx=tmpscr->warpreturnx[0];
- wry=tmpscr->warpreturny[0];
- }
- else
- {
- wrx=tmpscr->warparrivalx;
- wry=tmpscr->warparrivaly;
- }
- if(((wrx>0||wry>0)||(get_bit(quest_rules,qr_WARPSIGNOREARRIVALPOINT)))&&(!get_bit(quest_rules,qr_NOSCROLLCONTINUE))&&(!(tmpscr->flags6&fNOCONTINUEHERE)))
- {
- if(dlevel)
- {
- lastentrance = currscr;
- }
- else
- {
- lastentrance = DMaps[currdmap].cont + DMaps[currdmap].xoff;
- }
- lastentrance_dmap = wdmap;
- }
- }
- if(DMaps[currdmap].color != c)
- {
- lighting(false, true);
- }
- playLevelMusic();
- currcset=DMaps[currdmap].color;
- dointro();
- }
- break;
Add Comment
Please, Sign In to add comment