void InitExplosions(){ for(int i=0;i<MaxExpl;i++)GAnm[i]=new AnmObject; for(i=0;i<257;i++){ TSin[i]=short(256*sin(2*3.1415927*i/256)); TCos[i]=short(256*cos(2*3.1415927*i/256)); TAtg[i]=short(128*atan2(i,256)/3.1415927); }; memset(&EUsage,0,MaxExpl); LastReq=0; nEused=0; ResFile rf=RReset("random.lst"); RBlockRead(rf,randoma,16384); RClose(rf); // for(i=0;i<8192;i++){ // randoma[i]=rand(); // }; rpos=0; //ResFile rf=RRewrite("random.lst"); //RBlockWrite(rf,randoma,16384); //RClose(rf); };
void ProcessFog(){ byte z=0;//byte(rando()&1); __asm{ mov ecx,msx inc ecx lab1: mov ax,[fmap+ecx*2] mov [fmap+512+ecx*2],ax; mov ax,[fmap+256*255*2+ecx*2] mov [fmap+256*254*2+ecx*2],ax loop lab1 mov ecx,msy mov ebx,offset fmap+512 lab2: mov ax,[ebx] mov [ebx+2],ax mov ax,[ebx+510] mov [ebx+508],ax add ebx,512 loop lab2 cmp z,0 jne Process1 //Process0 mov bl,byte ptr msx mov bh,byte ptr msy mov ecx,offset fmap add ecx,514 lab3: mov dx,[ecx-512] add dx,[ecx+512] add dx,[ecx-2] add dx,[ecx+2] mov ax,dx //shr dx,8 //sub ax,dx shr ax,2 //cmp ax,MaxShad //ja iii or ax,63 sub ax,63 iii: mov [ecx],ax add ecx,2 dec bl jnz lab3 add ecx,512 sub ecx,msx sub ecx,msx mov bl,byte ptr msx dec bh jnz lab3 jmp ProcessFinished Process1: xor ebx,ebx mov bl,byte ptr msx mov bh,byte ptr msy mov ecx,offset fmap add ecx,ebx add ecx,ebx //add ecx,514 lab4: mov dx,[ecx-512] add dx,[ecx+512] add dx,[ecx-2] add dx,[ecx+2] mov ax,dx //shr dx,8 //sub ax,dx shr ax,2 //cmp ax,MaxShad //ja ioo or ax,63 sub ax,63 ioo: mov [ecx],ax sub ecx,2 dec bl jnz lab4 sub ecx,512 add ecx,msx add ecx,msx mov bl,byte ptr msx dec bh jnz lab3 ProcessFinished: }; }; void LoadFog(){ ResFile fx=RReset("darkb.grd");//004g.grd"); RBlockRead(fx,&fog[1024],8192); memcpy(&fog[0],&fog[1024],256); memcpy(&fog[256],&fog[1024],256); memcpy(&fog[512],&fog[1024],256); memcpy(&fog[512+256],&fog[1024],256); RClose(fx); //fx=RReset("003xw.grd"); fx=RReset("darkw.grd");//003cm.grd"); RBlockRead(fx,&wfog,8192); RClose(fx); fx=RReset("003xr.grd"); RBlockRead(fx,&yfog,8192); RClose(fx); fx=RReset("003xr1.grd"); RBlockRead(fx,&rfog,8192); RClose(fx); fx=RReset("darkfog.grd"); RBlockRead(fx,&darkfog,40960); RClose(fx); };