From 8fb89def3db02672e845b1145f7ed28a6ca1009d Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 3 Sep 2014 21:34:02 -0500 Subject: [PATCH] modified: 16/modex16/scroll.c \ modified: 16/modex16/scroll.exe --- 16/modex16/scroll.c | 59 ++++++++++++++++++++++++++++++++---------- 16/modex16/scroll.exe | Bin 17744 -> 17950 bytes 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/16/modex16/scroll.c b/16/modex16/scroll.c index 1a637919..4b9ca122 100644 --- a/16/modex16/scroll.c +++ b/16/modex16/scroll.c @@ -39,6 +39,8 @@ void mapScrollUp(map_view_t *mv, byte offset); void mapScrollDown(map_view_t *mv, byte offset); void mapGoTo(map_view_t *mv, byte tx, byte ty); void mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y); +void mapDrawRow(map_view_t *mv, int tx, int ty, word y); +void mapDrawCol(map_view_t *mv, int tx, int ty, word x); void main() { int show1=1; @@ -62,17 +64,9 @@ void main() { mv.page = &screen; mapGoTo(&mv, 0, 0); - /* scroll all the way to the right */ - /*for(x=0; x<((80)*16-SCREEN_WIDTH); x++) { - mapScrollRight(&mv, 1); - modexShowPage(mv.page); - } - for(x=0; x<((80+0.50625)*16-SCREEN_WIDTH); x++) { - mapScrollLeft(&mv, 1); - modexShowPage(mv.page); - }*/ - + /* scroll all the way to the right */ + for(x=0; x<((20)*16-SCREEN_WIDTH); x++) { mapScrollRight(&mv, 1); modexShowPage(mv.page); @@ -80,7 +74,7 @@ void main() { for(x=0; x<((40/*+0.50625*/)*16-SCREEN_WIDTH); x++) { mapScrollLeft(&mv, 1); modexShowPage(mv.page); - } + } /* spin for a time */ for(x=0; x<500; x++) { @@ -173,7 +167,7 @@ mapScrollRight(map_view_t *mv, byte offset) { void -mapScrollLeft(map_view_t *mv, byte offset) { +mapScrollLeft(map_view_t *mv, byte offset) { word x, y; /* coordinate for drawing */ unsigned int i; @@ -195,8 +189,8 @@ mapScrollLeft(map_view_t *mv, byte offset) { for(y=0; ymap->tiles, mv->map->data[i], mv->page, (int)mv->page->dx + x, (int)mv->page->dy+y); i += mv->map->width; - } -} + } + } } @@ -244,3 +238,40 @@ mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) { ry = (i / t->cols) * t->tileHeight; modexDrawBmpRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, t->data); } + + +void +mapDrawRow(map_view_t *mv, int tx, int ty, word y) { + word x; + int i; + + /* the position within the map array */ + i=ty * mv->map->width + tx; + for(x=0; xmap->width; x+=mv->map->tiles->tileWidth, tx++) { + if(i>=0) { + /* we are in the map, so copy! */ + mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, y); + } + i++; /* next! */ + } +} + + +void +mapDrawCol(map_view_t *mv, int tx, int ty, word x) { + int y; + int i; + + /* location in the map array */ + i=ty * mv->map->width + tx; + + /* We'll copy all of the columns in the screen, + i + 1 row above and one below */ + for(y=0; ymap->height; y+=mv->map->tiles->tileHeight, ty++) { + if(i>=0) { + /* we are in the map, so copy away! */ + mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, y); + } + i += mv->map->width; + } +} diff --git a/16/modex16/scroll.exe b/16/modex16/scroll.exe index 90af5276230027a9c5f8f948cb3471c2d4aa21ac..8e82eda415c2b002337fda79a192677051dac29a 100644 GIT binary patch delta 8839 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 delta 8549 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 bE`XU#$wJ%8Nwj^dkhWQqp-pU