From a19d7592507e5f7aa91f4a6b6611e021bd1a3e8d Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sun, 23 Nov 2014 14:05:53 -0600 Subject: [PATCH] modified: 16/modex16/scroll.c modified: 16/modex16/scroll.exe modified: Project 16.bfproject modified: modex16.c modified: modex16.h modified: pcxtest.exe modified: scroll.c modified: scroll.exe modified: test.exe modified: test2.exe --- 16/modex16/scroll.c | 48 ++++++++++++++++++------------------ 16/modex16/scroll.exe | Bin 20320 -> 21064 bytes Project 16.bfproject | 45 +++++++++++++++++++--------------- modex16.c | 55 ++++++++++++++++++++++++++++++++++++++++++ modex16.h | 3 ++- pcxtest.exe | Bin 36196 -> 36428 bytes scroll.c | 48 ++++++++++++++++++------------------ scroll.exe | Bin 20320 -> 21064 bytes test.exe | Bin 17260 -> 17508 bytes test2.exe | Bin 17028 -> 17260 bytes 10 files changed, 130 insertions(+), 69 deletions(-) diff --git a/16/modex16/scroll.c b/16/modex16/scroll.c index 78733026..65ea0279 100644 --- a/16/modex16/scroll.c +++ b/16/modex16/scroll.c @@ -67,7 +67,7 @@ void main() { page_t screen, screen2; map_t map; map_view_t mv, mv2; - map_view_t *draw, *show, *tmp; + map_view_t *draw, *spri, *tmp; byte *ptr; setkb(1); @@ -90,13 +90,13 @@ void main() { modexShowPage(mv.page); /* set up paging */ - show = &mv; - draw = &mv2; + draw = &mv; + spri = &mv2; // draw = &mv; //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(draw, 0, 0); - mapGoTo(show, 0, 0); + mapGoTo(spri, 0, 0); //TODO: put player in starting position of spot //default player position on the viewable map @@ -233,9 +233,6 @@ void main() { player.ty--; } } -// modexDrawBmp(draw->page, player.x, player.y, &bmp); - //modexShowPage(draw->page); - } modexLeave(); @@ -477,32 +474,35 @@ void animatePlayer(map_view_t *mv, short d1, short d2, int x, int y, int ls, bit { case 0: //up - if(ls<2) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 48, 0, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 0, 0, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 48, 0, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 0, 0, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); } break; case 1: // right - //right - if(ls<2) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 48, 32, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 0, 32, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 48, 32, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 0, 32, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); } break; case 2: //down - if(ls<2) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 48, 64, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 0, 64, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 48, 64, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 0, 64, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); } break; case 3: //left - if(ls<2) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 48, 96, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 0, 96, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 48, 96, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 0, 96, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); } break; } } diff --git a/16/modex16/scroll.exe b/16/modex16/scroll.exe index fcf55ffd86b1148dbcb2aa78729787b06022e707..6bf9ba9fd85f584bba6a5abed8e1aa711c547a48 100755 GIT binary patch delta 5571 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 ShvoN@Liv4B?&~575c)q@FvU9n diff --git a/Project 16.bfproject b/Project 16.bfproject index c75ec9aa..3a2786fe 100644 --- a/Project 16.bfproject +++ b/Project 16.bfproject @@ -1,7 +1,9 @@ c2e.convert_special: 0 e2c.convert_num: 0 openfiles: /dos/z/16/doc/project.txt:0:0:0: -openfiles: /dos/z/16/scroll.c:82:0:1: +openfiles: /dos/z/16/scroll.c:12102:11962:1: +openfiles: /dos/z/16/modex16.c:6464:6244:0: +openfiles: /dos/z/16/modex16.h:1191:2119:0: snr_recursion_level: 0 convertcolumn_horizontally: 0 adv_open_matchname: 0 @@ -16,7 +18,7 @@ c2e.convert_iso: 0 opendir: file:///dos/z/16 wrap_text_default: 0 bookmarks_filename_mode: 1 -ssearch_text: mapScrollRight +ssearch_text: color snr_casesens: 1 view_blocks: 1 name: project 16 @@ -25,6 +27,9 @@ replacelist: \t replacelist: putPixel_X replacelist: SCREEN_WIDTH replacelist: SCREEN_HEIGHT +replacelist: animatePlayer(spri +replacelist: animatePlayer(draw +replacelist: modexClearPlayer(mv->page fb_show_hidden_f: 0 editor_tab_width: 4 show_visible_spacing: 1 @@ -38,8 +43,6 @@ ssearch_regex: 0 e2c.convert_iso: 0 ssearch_casesens: 0 charmap_block: 1 -recent_files: file:///dos/z/16/16/lib/x/MXPN.ASM -recent_files: file:///dos/z/4x4_16/!/c/TUT10.C recent_files: file:///dos/z/16/16/lib/x/MXVS.ASM recent_files: file:///dos/z/16/16/lib/x/MAKEFILE recent_files: file:///dos/z/16/16/lib/x/MODEX.DEF @@ -86,10 +89,12 @@ recent_files: file:///dos/z/16/16/lib/x/MODEX.H recent_files: file:///dos/z/16/16/modex16/dos_kb.h recent_files: file:///dos/z/16/doc/16.16 recent_files: file:///dos/z/16/doc/16story.txt -recent_files: file:///dos/z/16/doc/project.txt recent_files: file:///dos/z/16/scroll.c +recent_files: file:///dos/z/16/doc/project.txt +recent_files: file:///dos/z/16/modex16.h +recent_files: file:///dos/z/16/modex16.c snr_replacetype: 0 -savedir: file:///dos/z/16/16/modex16 +savedir: file:///dos/z/16 spell_check_default: 1 spell_insert_entities: 0 last_filefilter: @@ -99,21 +104,21 @@ snr_escape_chars: 0 htmlbar_view: 0 spell_lang: en ssearch_dotmatchall: 0 -searchlist: QUADWH -searchlist: pdump -searchlist: #include "modex16.h"\r\n#include \r\n\r\nword far* clock= (word far*) 0x046C; /* 18.2hz clock */\r\n\r\nvoid main() {\r\n#include "modex16.h"\r\n#include \r\n\r\nword far* clock= (word far*) 0x046C; /* 18.2hz clock */\r\n\r\nvoid main() {\r\n -searchlist: extern -searchlist: VGA -searchlist: vga -searchlist: clock -searchlist: setvideo -searchlist: gq -searchlist: SC_INDEX -searchlist: draw -searchlist: int index -searchlist: map.dat -searchlist: 32 searchlist: mapScrollRight +searchlist: 32 +searchlist: map.dat +searchlist: int index +searchlist: draw +searchlist: SC_INDEX +searchlist: gq +searchlist: setvideo +searchlist: clock +searchlist: vga +searchlist: color 0 +searchlist: sprite +searchlist: clear +searchlist: modexClearRegion(mv->page +searchlist: color autocomplete: 1 outputb_show_all_output: 0 bookmarks_show_mode: 0 diff --git a/modex16.c b/modex16.c index f01116b5..256a08ef 100644 --- a/modex16.c +++ b/modex16.c @@ -213,7 +213,62 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte color) { JNZ SCAN_START } } + + +void +modexClearPlayer(page_t *page, int x, int y, int w, int h) { + word pageOff = (word) page->data; + word xoff=x/4; /* xoffset that begins each row */ + word scanCount=w/4; /* number of iterations per row (excluding right clip)*/ + word poffset = pageOff + y*(page->width/4) + xoff; /* starting offset */ + word nextRow = page->width/4-scanCount-1; /* loc of next row */ + byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08}; /* clips for rectangles not on 4s */ + byte rclip[] = {0x00, 0x01, 0x03, 0x07}; + byte left = lclip[x&0x03]; + byte right = rclip[(x+w)&0x03]; + + /* handle the case which requires an extra group */ + if((x & 0x03) && !((x+w) & 0x03)) { + right=0x0f; + } + + __asm { + MOV AX, SCREEN_SEG ; go to the VGA memory + MOV ES, AX + MOV DI, poffset ; go to the first pixel + MOV DX, SC_INDEX ; point to the map mask + MOV AL, MAP_MASK + OUT DX, AL + INC DX + MOV AL, NULL ; get ready to write colors + SCAN_START: + MOV CX, scanCount ; count the line + MOV BL, AL ; remember color + MOV AL, left ; do the left clip + OUT DX, AL ; set the left clip + MOV AL, BL ; restore color + STOSB ; write the color + DEC CX + JZ SCAN_DONE ; handle 1 group stuff + ;-- write the main body of the scanline + MOV BL, AL ; remember color + MOV AL, 0x0f ; write to all pixels + OUT DX, AL + MOV AL, BL ; restore color + REP STOSB ; write the color + SCAN_DONE: + MOV BL, AL ; remeber color + MOV AL, right + OUT DX, AL ; do the right clip + MOV AL, BL ; restore color + STOSB ; write pixel + ADD DI, nextRow ; go to the next row + DEC h + JNZ SCAN_START + } +} + void modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp) { diff --git a/modex16.h b/modex16.h index 77573105..855042ff 100644 --- a/modex16.h +++ b/modex16.h @@ -29,7 +29,8 @@ page_t modexNextPage(page_t *p); void modexShowPage(page_t *page); void modexPanPage(page_t *page, int dx, int dy); void modexSelectPlane(byte plane); -void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color); +void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color); +void modexClearPlayer(page_t *page, int x, int y, int w, int h); void modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp); void modexDrawBmpRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp); void modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp); diff --git a/pcxtest.exe b/pcxtest.exe index de765ece05216f2d419837866388d044bac54429..f70b085bfa92773d4756b5beeab180b1fd06946c 100644 GIT binary patch delta 6735 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 P3W5JnXpQwfPf>pdaUkpage, player.x, player.y, &bmp); - //modexShowPage(draw->page); - } modexLeave(); @@ -477,32 +474,35 @@ void animatePlayer(map_view_t *mv, short d1, short d2, int x, int y, int ls, bit { case 0: //up - if(ls<2) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 48, 0, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 0, 0, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 48, 0, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 0, 0, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); } break; case 1: // right - //right - if(ls<2) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 48, 32, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 0, 32, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 48, 32, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 0, 32, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); } break; case 2: //down - if(ls<2) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 48, 64, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 0, 64, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 48, 64, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 0, 64, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); } break; case 3: //left - if(ls<2) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); - if(4>ls && ls>=2) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 48, 96, 24, 32, bmp); - if(6>ls && ls>=4) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 0, 96, 24, 32, bmp); - if(ls>6) modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); + //if(ls==0) modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); + if(ls<1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); } + if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 48, 96, 24, 32, bmp); } + if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 0, 96, 24, 32, bmp); } + if(ls>=7) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); } break; } } diff --git a/scroll.exe b/scroll.exe index fcf55ffd86b1148dbcb2aa78729787b06022e707..6bf9ba9fd85f584bba6a5abed8e1aa711c547a48 100644 GIT binary patch delta 5571 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 ShvoN@Liv4B?&~575c)q@FvU9n diff --git a/test.exe b/test.exe index 99404b1a3666201b98a9dba2cbe162f0e6a6d49f..38a4eb9d6596306360b08a7fdc25434840ee765a 100644 GIT binary patch delta 3854 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 delta 3576 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 -- 2.39.5