X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_tail.c;h=e9b0be9ad9b0ad9f7b4a7750777bf4c82d516859;hb=050d28da3358d5c1434fda542ec11adbee182ea5;hp=ce2733d3c4b8107d299bed4aac03c8a4f1835e06;hpb=320be82ab5e414d1b771b295403218b614ed9d13;p=16.git diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c index ce2733d3..e9b0be9a 100755 --- a/src/lib/16_tail.c +++ b/src/lib/16_tail.c @@ -36,25 +36,19 @@ ========================== */ -void Startup16(global_game_variables_t *gvar) +void Startup16 (global_game_variables_t *gvar) { gvar->video.VL_Started=0; TL_VidInit(gvar); gvar->mm.mmstarted=0; gvar->pm.PMStarted=0; - MM_Startup(gvar); + StartupCAMMPM(gvar); #ifdef __WATCOMC__ #ifdef __DEBUG_InputMgr__ if(!dbg_nointest) #endif IN_Startup(gvar); #endif -#ifdef __16_PM__ - PM_Startup(gvar); - PM_CheckMainMem(gvar); - PM_UnlockMainMem(gvar); -#endif - CA_Startup(gvar); } //=========================================================================== @@ -69,19 +63,15 @@ void Startup16(global_game_variables_t *gvar) ========================== */ -void Shutdown16(global_game_variables_t *gvar) +void Shutdown16 (global_game_variables_t *gvar) { -#ifdef __16_PM__ - PM_Shutdown(gvar); -#endif #ifdef __WATCOMC__ #ifdef __DEBUG_InputMgr__ if(!dbg_nointest) #endif IN_Shutdown(gvar); #endif - CA_Shutdown(gvar); - MM_Shutdown(gvar); + ShutdownCAMMPM(gvar); #ifdef __WATCOMC__ if(gvar->video.VL_Started) VL_Shutdown (gvar);//VGAmodeX(0, 1, gvar); @@ -90,6 +80,68 @@ void Shutdown16(global_game_variables_t *gvar) //=========================================================================== +/* +========================== += += StartupCAMMPM += +========================== +*/ + +void StartupCAMMPM (global_game_variables_t *gvar) +{ +/* + MM_Startup (); // so the signon screen can be freed + + SignonScreen (); + + VW_Startup (); + IN_Startup (); + PM_Startup (); + PM_UnlockMainMem (); + SD_Startup (); + CA_Startup (); + US_Startup (); +*/ + MM_Startup(gvar); +#ifdef __16_PM__ + PM_Startup(gvar); +//???? PM_CheckMainMem(gvar); + PM_UnlockMainMem(gvar); +#endif + CA_Startup(gvar); +} + +//=========================================================================== + +/* +========================== += += ShutdownCAMMPM += +========================== +*/ + +void ShutdownCAMMPM (global_game_variables_t *gvar) +{ +/* + US_Shutdown (); + SD_Shutdown (); + PM_Shutdown (); + IN_Shutdown (); + VW_Shutdown (); + CA_Shutdown (); + MM_Shutdown () +*/ +#ifdef __16_PM__ + PM_Shutdown(gvar); +#endif + CA_Shutdown(gvar); + MM_Shutdown(gvar); +} + +//=========================================================================== + /* ==================== = @@ -243,27 +295,38 @@ void Shutdown16(global_game_variables_t *gvar) =================== */ -#define PIXPERFRAME 1600 - boolean FizzleFade (unsigned source, unsigned dest, unsigned width, unsigned height, unsigned frames, boolean abortable, global_game_variables_t *gvar) { word p,pixperframe; unsigned drawofs,pagedelta; byte mask,maskb[8] = {1,2,4,8}; - unsigned x,y,frame ,esorig,q; - dword rndval; - word screenseg = SCREENSEG; + unsigned x,y,frame; + long rndval; + word screenseg; +#ifdef __WATCOMC__ + unsigned esorig;//,q; +#endif pagedelta = dest-source; - rndval = 1; esorig = 0; q = 16; + rndval = 1; +#ifdef __WATCOMC__ + esorig = 0;// q = 16; +#endif x = y = 0; - pixperframe = 76800/(dword)frames; + pixperframe = (dword)(gvar->video.page[0].width*gvar->video.page[0].height)/frames; + screenseg = SCREENSEG; IN_StartAck (gvar); +// modexClearRegion(&(gvar->video.page[0]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 0); +// modexClearRegion(&(gvar->video.page[1]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 15); + +#ifdef __WATCOMC__ __asm { mov [esorig],es } +#endif +// TimeCount= frame=0; do // while (1) { @@ -308,21 +371,19 @@ noxor: mov [WORD PTR rndval+2],dx } - if ((x>width || y>height) && (xwidth || y>height) +// if ((x>width || y>height) && (xvideo.ofs.ylookup[y]) + (x>>2); +// drawofs = source+(gvar->video.ofs.ylookup[y]) + (x>>2); + drawofs = source+(y*gvar->video.page[0].stridew) + (x>>2); // // copy one pixel // -//* mask = x&3; VGAREADMAP(mask); mask = maskb[mask]; VGAMAPMASK(mask); -//*/ -// modexputPixel(&(gvar->video.page[0]), x, y, rand()%8); -// VL_Plot (x, y, 15, &(gvar->video.ofs)); __asm { mov di,[drawofs] @@ -336,11 +397,14 @@ noxor: } frame++; //-- while (TimeCount