|
|
| version 1.3, 2003/12/12 01:04:40 | version 1.4, 2004/02/20 15:20:30 |
|---|---|
| Line 16 typedef struct { | Line 16 typedef struct { |
| BYTE patleng; | BYTE patleng; |
| BYTE off[2]; | BYTE off[2]; |
| BYTE seg[2]; | BYTE seg[2]; |
| } MEMGLINE; | } GLINE; |
| static void nor_linebox(SINT16 x1, SINT16 y1, | static void nor_linebox(const _LIOWORK *lio, SINT16 x1, SINT16 y1, |
| SINT16 x2, SINT16 y2, BYTE pal) { | SINT16 x2, SINT16 y2, REG8 pal) { |
| lio_line(x1, x2, y1, pal); | lio_line(lio, x1, x2, y1, pal); |
| if (y1 != y2) { | if (y1 != y2) { |
| lio_line(x1, x2, y2, pal); | lio_line(lio, x1, x2, y2, pal); |
| } | } |
| for (; y1<y2; y1++) { | for (; y1<y2; y1++) { |
| lio_pset(x1, y1, pal); | lio_pset(lio, x1, y1, pal); |
| lio_pset(x2, y1, pal); | lio_pset(lio, x2, y1, pal); |
| } | } |
| } | } |
| static void nor_lineboxfill(SINT16 x1, SINT16 y1, | static void nor_lineboxfill(const _LIOWORK *lio, SINT16 x1, SINT16 y1, |
| SINT16 x2, SINT16 y2, BYTE pal) { | SINT16 x2, SINT16 y2, REG8 pal) { |
| for (; y1<=y2; y1++) { | for (; y1<=y2; y1++) { |
| lio_line(x1, x2, y1, pal); | lio_line(lio, x1, x2, y1, pal); |
| } | } |
| } | } |
| BYTE lio_gline(void) { | |
| MEMGLINE dat; | // ---- |
| SINT16 x1; | |
| SINT16 y1; | |
| SINT16 x2; | |
| SINT16 y2; | |
| REG8 lio_gline(LIOWORK lio) { | |
| GLINE dat; | |
| SINT16 x1; | |
| SINT16 y1; | |
| SINT16 x2; | |
| SINT16 y2; | |
| lio_updaterange(lio); | |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| if (dat.pal == 0xff) { | if (dat.pal == 0xff) { |
| dat.pal = lio.gcolor1.fgcolor; | dat.pal = lio->gcolor1.fgcolor; |
| } | } |
| else if (dat.pal >= lio.gcolor1.palmax) { | else if (dat.pal >= lio->gcolor1.palmax) { |
| return(5); | return(5); |
| } | } |
| x1 = (SINT16)LOADINTELWORD(dat.x1); | x1 = (SINT16)LOADINTELWORD(dat.x1); |
| Line 64 BYTE lio_gline(void) { | Line 68 BYTE lio_gline(void) { |
| break; | break; |
| case 1: | case 1: |
| nor_linebox(x1, y1, x2, y2, dat.pal); | nor_linebox(lio, x1, y1, x2, y2, dat.pal); |
| break; | break; |
| case 2: | case 2: |
| nor_lineboxfill(x1, y1, x2, y2, dat.pal); | nor_lineboxfill(lio, x1, y1, x2, y2, dat.pal); |
| break; | break; |
| default: | default: |