mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-06 06:30:36 +00:00
gr-sim: more dot changes
This commit is contained in:
parent
0c81be5e23
commit
59e302544b
@ -30,10 +30,6 @@ static struct {
|
|||||||
short x; // 0
|
short x; // 0
|
||||||
short y; // 2
|
short y; // 2
|
||||||
short z; // 4
|
short z; // 4
|
||||||
short old1; // 6 oldpos shadow
|
|
||||||
short old2; // 8 oldpos
|
|
||||||
short old3; // 10
|
|
||||||
short old4; // 12
|
|
||||||
short yadd; // 14
|
short yadd; // 14
|
||||||
} dot[MAXDOTS];
|
} dot[MAXDOTS];
|
||||||
|
|
||||||
@ -44,11 +40,11 @@ static void drawdots(void) {
|
|||||||
int temp32;
|
int temp32;
|
||||||
int yy;
|
int yy;
|
||||||
|
|
||||||
cx=dotnum; // mov cx,cs:_dotnum
|
// cx=dotnum; // mov cx,cs:_dotnum
|
||||||
si=0; // mov si,OFFSET dot
|
// si=0; // mov si,OFFSET dot
|
||||||
|
|
||||||
label1:
|
for(si=0;si<512;si+=SKIP) {
|
||||||
push(cx); // push cx
|
// push(cx); // push cx
|
||||||
ax=dot[si].x; // mov ax,ds:[si+0] ;X
|
ax=dot[si].x; // mov ax,ds:[si+0] ;X
|
||||||
imul_16(rotsin); // imul ds:_rotsin
|
imul_16(rotsin); // imul ds:_rotsin
|
||||||
ax=ax; // mov ax,ax
|
ax=ax; // mov ax,ax
|
||||||
@ -117,7 +113,7 @@ label1:
|
|||||||
push(ax); // push ax
|
push(ax); // push ax
|
||||||
|
|
||||||
|
|
||||||
/* draw new shadow (?) */
|
/* draw shadow */
|
||||||
|
|
||||||
// bx/320 -> 200 200->48 *48/200
|
// bx/320 -> 200 200->48 *48/200
|
||||||
|
|
||||||
@ -166,6 +162,7 @@ label4:
|
|||||||
bx=rows[bx]; // mov bx,ds:_rows[bx]
|
bx=rows[bx]; // mov bx,ds:_rows[bx]
|
||||||
|
|
||||||
ax=pop(); // pop ax
|
ax=pop(); // pop ax
|
||||||
|
push(ax);
|
||||||
bx=bx+ax; // add bx,ax
|
bx=bx+ax; // add bx,ax
|
||||||
bp=bp>>6; // shr bp,6
|
bp=bp>>6; // shr bp,6
|
||||||
bp=bp&(~3L); // and bp,not 3
|
bp=bp&(~3L); // and bp,not 3
|
||||||
@ -185,32 +182,12 @@ label_t2:
|
|||||||
yy=((bx/320)*48)/200;
|
yy=((bx/320)*48)/200;
|
||||||
color_equals(6);
|
color_equals(6);
|
||||||
plot( (bx%320)/8,yy);
|
plot( (bx%320)/8,yy);
|
||||||
cx=pop(); // pop cx
|
|
||||||
si=si+SKIP; // add si,16 point to next dot
|
|
||||||
cx=cx-SKIP;
|
|
||||||
if (cx!=0) goto label1; // loop @@1
|
|
||||||
label0:
|
|
||||||
return;
|
|
||||||
// @@0: CEND
|
|
||||||
|
|
||||||
label2:
|
label2:
|
||||||
/* This is called when we are off the screen */
|
|
||||||
/* erases old but didn't draw new */
|
|
||||||
bx=pop(); // pop bx
|
|
||||||
cx=pop(); // pop cx
|
|
||||||
si=si+SKIP; // add si,16
|
|
||||||
cx=cx-SKIP; // loop @@1
|
|
||||||
if (cx!=0) goto label1;
|
|
||||||
goto label0; // jmp @@0
|
|
||||||
|
|
||||||
label3:
|
label3:
|
||||||
|
|
||||||
bx=pop(); // pop bx
|
bx=pop(); // pop bx
|
||||||
cx=pop(); // pop cx
|
|
||||||
si=si+SKIP; // add si,16
|
}
|
||||||
cx=cx-SKIP; // loop @@1
|
return;
|
||||||
if (cx!=0) goto label1;
|
|
||||||
goto label0; // jmp @@0
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,9 +202,6 @@ static short dis_waitb(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static char pal[768];
|
|
||||||
static char pal2[768];
|
|
||||||
|
|
||||||
static short isin(short deg) {
|
static short isin(short deg) {
|
||||||
return(sin1024[deg&1023]);
|
return(sin1024[deg&1023]);
|
||||||
}
|
}
|
||||||
@ -299,8 +273,9 @@ int main(int argc,char **argv) {
|
|||||||
|
|
||||||
ram[DRAW_PAGE]=0;
|
ram[DRAW_PAGE]=0;
|
||||||
|
|
||||||
while(frame<2450) {
|
while(frame<2360) {
|
||||||
|
|
||||||
|
/* re-draw background */
|
||||||
color_equals(0);
|
color_equals(0);
|
||||||
for(a=0;a<24;a++) hlin(0,0,40,a);
|
for(a=0;a<24;a++) hlin(0,0,40,a);
|
||||||
color_equals(5);
|
color_equals(5);
|
||||||
@ -308,6 +283,7 @@ int main(int argc,char **argv) {
|
|||||||
|
|
||||||
frame++;
|
frame++;
|
||||||
if(frame==500) f=0;
|
if(frame==500) f=0;
|
||||||
|
|
||||||
i=dottaul[j];
|
i=dottaul[j];
|
||||||
j++; j%=dotnum;
|
j++; j%=dotnum;
|
||||||
|
|
||||||
@ -341,32 +317,7 @@ int main(int argc,char **argv) {
|
|||||||
dot[i].yadd=0;
|
dot[i].yadd=0;
|
||||||
if(frame>1900 && !(frame&31) && grav>0) grav--;
|
if(frame>1900 && !(frame&31) && grav>0) grav--;
|
||||||
}
|
}
|
||||||
/* palette to white */
|
|
||||||
else if(frame<2400) {
|
|
||||||
a=frame-2360;
|
|
||||||
for(b=0;b<768;b+=3) {
|
|
||||||
c=pal[b+0]+a*3;
|
|
||||||
if(c>63) c=63;
|
|
||||||
pal2[b+0]=c;
|
|
||||||
c=pal[b+1]+a*3;
|
|
||||||
if(c>63) c=63;
|
|
||||||
pal2[b+1]=c;
|
|
||||||
c=pal[b+2]+a*4;
|
|
||||||
if(c>63) c=63;
|
|
||||||
pal2[b+2]=c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* palette to black */
|
|
||||||
else if(frame<2440) {
|
|
||||||
a=frame-2400;
|
|
||||||
for(b=0;b<768;b+=3) {
|
|
||||||
c=63-a*2;
|
|
||||||
if(c<0) c=0;
|
|
||||||
pal2[b+0]=c;
|
|
||||||
pal2[b+1]=c;
|
|
||||||
pal2[b+2]=c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(dropper>4000) dropper-=100;
|
if(dropper>4000) dropper-=100;
|
||||||
|
|
||||||
rotcos=icos(rot)*64; rotsin=isin(rot)*64;
|
rotcos=icos(rot)*64; rotsin=isin(rot)*64;
|
||||||
@ -382,7 +333,6 @@ int main(int argc,char **argv) {
|
|||||||
gravity=grav;
|
gravity=grav;
|
||||||
gravityd=gravd;
|
gravityd=gravd;
|
||||||
|
|
||||||
|
|
||||||
drawdots();
|
drawdots();
|
||||||
|
|
||||||
grsim_update();
|
grsim_update();
|
||||||
|
Loading…
Reference in New Issue
Block a user