X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_tail.c;h=6ebe442dac85b44c365608ca8932f11e1284ceb2;hb=a12907289fc04c1d213e5155962a855609b6ab0f;hp=414e51a17c3bb33a5ce82106c127d7a9a19d13b0;hpb=2e3fb239b58cf341ceb5b4e7b39b6542f5581cae;p=16.git diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c index 414e51a1..6ebe442d 100755 --- a/src/lib/16_tail.c +++ b/src/lib/16_tail.c @@ -24,6 +24,7 @@ */ #include "src/lib/16_tail.h" +#include "src/lib/16text.h" /* ========================== @@ -38,6 +39,8 @@ void Startup16(global_game_variables_t *gvar) { #ifdef __WATCOMC__ + start_timer(gvar); + // DOSLIB: check our environment probe_dos(); @@ -61,24 +64,26 @@ void Startup16(global_game_variables_t *gvar) if (_DEBUG_INIT() == 0) { #ifdef DEBUGSERIAL - printf("WARNING: Failed to initialize DEBUG output\n"); + //printf("WARNING: Failed to initialize DEBUG output\n"); #endif } _DEBUG("Serial debug output started\n"); // NTS: All serial output must end messages with newline, or DOSBox-X will not emit text to log _DEBUGF("Serial debug output printf test %u %u %u\n",1U,2U,3U); + + textInit(); #endif gvar->mm.mmstarted=0; gvar->pm.PMStarted=0; MM_Startup(gvar); -if(!dbg_noplayerinpu) +#ifdef __WATCOMC__ +#ifdef __DEBUG_InputMgr__ + if(!dbg_nointest) +#endif IN_Startup(gvar); +#endif PM_Startup(gvar); PM_UnlockMainMem(gvar); CA_Startup(gvar); -#ifdef __WATCOMC__ - start_timer(gvar); -#endif - } //=========================================================================== @@ -96,13 +101,162 @@ if(!dbg_noplayerinpu) void Shutdown16(global_game_variables_t *gvar) { PM_Shutdown(gvar); -if(!dbg_noplayerinpu) +#ifdef __WATCOMC__ +#ifdef __DEBUG_InputMgr__ + if(!dbg_nointest) +#endif IN_Shutdown(gvar); +#endif CA_Shutdown(gvar); MM_Shutdown(gvar); } +//=========================================================================== + +/* +==================== += += ReadConfig += +==================== +*/ + +/*void ReadConfig(void) +{ + int file; + SDMode sd; + SMMode sm; + SDSMode sds; + + + if ( (file = open(configname,O_BINARY | O_RDONLY)) != -1) + { + // + // valid config file + // + read(file,Scores,sizeof(HighScore) * MaxScores); + + read(file,&sd,sizeof(sd)); + read(file,&sm,sizeof(sm)); + read(file,&sds,sizeof(sds)); + + read(file,&mouseenabled,sizeof(mouseenabled)); + read(file,&joystickenabled,sizeof(joystickenabled)); + read(file,&joypadenabled,sizeof(joypadenabled)); + read(file,&joystickprogressive,sizeof(joystickprogressive)); + read(file,&joystickport,sizeof(joystickport)); + + read(file,&dirscan,sizeof(dirscan)); + read(file,&buttonscan,sizeof(buttonscan)); + read(file,&buttonmouse,sizeof(buttonmouse)); + read(file,&buttonjoy,sizeof(buttonjoy)); + + read(file,&viewsize,sizeof(viewsize)); + read(file,&mouseadjustment,sizeof(mouseadjustment)); + + close(file); + + if (sd == sdm_AdLib && !AdLibPresent && !SoundBlasterPresent) + { + sd = sdm_PC; + sd = smm_Off; + } + + if ((sds == sds_SoundBlaster && !SoundBlasterPresent) || + (sds == sds_SoundSource && !SoundSourcePresent)) + sds = sds_Off; + + if (!MousePresent) + mouseenabled = false; + if (!JoysPresent[joystickport]) + joystickenabled = false; + + MainMenu[6].active=1; + MainItems.curpos=0; + } + else + { + // + // no config file, so select by hardware + // + if (SoundBlasterPresent || AdLibPresent) + { + sd = sdm_AdLib; + sm = smm_AdLib; + } + else + { + sd = sdm_PC; + sm = smm_Off; + } + + if (SoundBlasterPresent) + sds = sds_SoundBlaster; + else if (SoundSourcePresent) + sds = sds_SoundSource; + else + sds = sds_Off; + + if (MousePresent) + mouseenabled = true; + + joystickenabled = false; + joypadenabled = false; + joystickport = 0; + joystickprogressive = false; + + viewsize = 15; + mouseadjustment=5; + } + + SD_SetMusicMode (sm); + SD_SetSoundMode (sd); + SD_SetDigiDevice (sds); +}*/ + + +/* +==================== += += WriteConfig += +==================== +*/ + +/*void WriteConfig(void) +{ + int file; + + file = open(configname,O_CREAT | O_BINARY | O_WRONLY, + S_IREAD | S_IWRITE | S_IFREG); + + if (file != -1) + { + write(file,Scores,sizeof(HighScore) * MaxScores); + + write(file,&SoundMode,sizeof(SoundMode)); + write(file,&MusicMode,sizeof(MusicMode)); + write(file,&DigiMode,sizeof(DigiMode)); + + write(file,&mouseenabled,sizeof(mouseenabled)); + write(file,&joystickenabled,sizeof(joystickenabled)); + write(file,&joypadenabled,sizeof(joypadenabled)); + write(file,&joystickprogressive,sizeof(joystickprogressive)); + write(file,&joystickport,sizeof(joystickport)); + + write(file,&dirscan,sizeof(dirscan)); + write(file,&buttonscan,sizeof(buttonscan)); + write(file,&buttonmouse,sizeof(buttonmouse)); + write(file,&buttonjoy,sizeof(buttonjoy)); + + write(file,&viewsize,sizeof(viewsize)); + write(file,&mouseadjustment,sizeof(mouseadjustment)); + + close(file); + } +}*/ + //=========================================================================== /* @@ -141,11 +295,26 @@ void DebugMemory_(global_game_variables_t *gvar, boolean q) printf("With purge:"); if(q) printf(" "); printf("%uk\n", MM_TotalFree(gvar)/1024); if(q) printf("------------\n"); #ifdef __WATCOMC__ - IN_Ack (); + //IN_Ack (); #endif if(q) MM_ShowMemory (gvar); } -#ifdef __WATCOMC__ + +/* +========================== += += ClearMemory += +========================== +*/ + +void ClearMemory (global_game_variables_t *gvar) +{ + PM_UnlockMainMem(gvar); + //snd + MM_SortMem (gvar); +} + /* ========================== = @@ -154,46 +323,43 @@ void DebugMemory_(global_game_variables_t *gvar, boolean q) ========================== */ -void Quit (char *error) +void Quit (global_game_variables_t *gvar, char *error) { //unsigned finscreen; memptr screen=0; - union REGS in, out; - //ClearMemory (); + ClearMemory (gvar); if (!*error) { - //WriteConfig (); +// #ifndef JAPAN +// CA_CacheGrChunk (ORDERSCREEN); +// screen = grsegs[ORDERSCREEN]; +// #endif +// WriteConfig (); } else { - //CA_CacheGrChunk (ERRORSCREEN); - //screen = grsegs[ERRORSCREEN]; +// CA_CacheGrChunk (ERRORSCREEN); +// screen = grsegs[ERRORSCREEN]; } - - //ShutdownId (); - IN_Shutdown(); - //modexLeave(); - in.h.ah = 0x00; - in.h.al = 0x3; - int86(0x10, &in, &out); + Shutdown16(gvar); if (error && *error) { - //movedata ((unsigned)screen,7,0xb800,0,7*160); - //gotoxy (10,4); - fprintf(stderr, "%s\n", error); - //gotoxy (1,8); - exit(1); + movedata((unsigned)screen,7,0xb800,0,7*160); + gotoxy (10,4); + fprintf(stderr, "%s\n", error); + gotoxy (1,8); + exit(1); } else if (!error || !(*error)) { - //clrscr(); - //#ifndef JAPAN + clrscr(); +#ifndef JAPAN movedata ((unsigned)screen,7,0xb800,0,4000); - //gotoxy(1,24); - //#endif + gotoxy(1,24); +#endif //asm mov bh,0 //asm mov dh,23 // row //asm mov dl,0 // collumn @@ -203,10 +369,25 @@ void Quit (char *error) exit(0); } -#endif //=========================================================================== +void walktypeinfo(player_t *player, word pn) +{ + switch(player[pn].walktype) + { + case 0: //bump + sprintf(global_temp_status_text, "%s", "b"); + break; + case 1: //walk no scroll + sprintf(global_temp_status_text, "%s", "w"); + break; + case 2: //scrolling walk + sprintf(global_temp_status_text, "%s", "s"); + break; + } +} + const char *nibble_to_binary(nibble x) { static char b[9];