Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function function_queue() {
- var pos = 0;
- var queue = arguments;
- return function() {
- if ( pos < queue.length )
- queue[pos++]();
- }
- }
- var scroll_x;
- var scroll_y;
- function scroll_map(direction) {
- switch(direction) {
- case 'west' :
- scroll_x = -16;
- scroll_y = -32;
- start_y += 1;
- break;
- case 'east' :
- scroll_x = 16;
- scroll_y = 32;
- start_y -= 1;
- break;
- case 'north' :
- scroll_x = 16;
- scroll_y = -32;
- start_x -= 1;
- break;
- case 'south' :
- scroll_x = -16;
- scroll_y = 32;
- start_x += 1;
- break;
- }
- run_scroll_sequence();
- }
- function run_scroll_sequence(x,y) {
- var q = function_queue(
- function(){move_tiles(q,start_x,start_y);},
- function(){draw_temp_tiles(q);},
- function(){hide_front_tiles(q);},
- function(){reset_front_tiles(q);},
- function(){copy_new_tiles(q);},
- function(){reveal_new_tiles(q);},
- function(){clear_temp(q);}
- );
- q();
- }
- function move_tiles(whenDone,iso_x,iso_y) {
- new Effect.MoveBy('tiles_center',scroll_x,scroll_y);
- new Ajax.Request('/game/tiles/' + iso_x + '/' + iso_y, {onComplete:function(t){eval(t.responseText)}});
- whenDone();
- }
- function draw_temp_tiles(whenDone) {
- draw_map(tiles,paths,'tiles_temp',apex_tile);
- whenDone();
- }
- function hide_front_tiles(whenDone) {
- Element.hide('tiles_center');
- whenDone();
- }
- function reset_front_tiles(whenDone) {
- $('tiles_center').innerHTML = '';
- $('tiles_center').style.left = '0px';
- $('tiles_center').style.top = '0px';
- whenDone();
- }
- function copy_new_tiles(whenDone) {
- $('tiles_center').innerHTML = $('tiles_temp').innerHTML;
- whenDone();
- }
- function reveal_new_tiles(whenDone) {
- Element.show('tiles_center');
- whenDone();
- }
- function clear_temp(whenDone) {
- $('tiles_temp').innerHTML = '';
- whenDone;
- }
Add Comment
Please, Sign In to add comment