//------------------------------------------------------------------------- // ShowSystem() //------------------------------------------------------------------------- void ShowSystem() { char avail[2][8]={"None","Present"}; MM_Startup (); CA_Startup (); IN_Startup (); PM_Startup (); SD_Startup (); fprint(show_text1); fprint(show_text2); fprint(show_text3); fprint(show_text5); printf(" Mouse: %s\n",avail[MousePresent]); printf(" Joystick: %s\n",avail[JoysPresent[0]||JoysPresent[1]]); printf(" AdLib: %s\n",avail[AdLibPresent&&!SoundBlasterPresent]); printf("Sound Blaster: %s\n",avail[SoundBlasterPresent]); printf(" Sound Source: %s\n\n",avail[SoundSourcePresent]); fprint(show_text2); SD_Shutdown (); PM_Shutdown (); IN_Shutdown (); CA_Shutdown (); MM_Shutdown (); }
static void InitGame(void) { #ifndef SPEARDEMO boolean didjukebox=false; #endif /* initialize SDL */ if(LR_Init(0) < 0) exit(1); atexit(LR_Quit); SignonScreen (); VH_Startup (); IN_Startup (); PM_Startup (); SD_Startup (); CA_Startup (); US_Startup (); /* TODO: Will any memory checking be needed someday?? */ /* build some tables */ InitDigiMap (); ReadConfig (); SetupSaveGames(); /* HOLDING DOWN 'M' KEY? */ #ifndef SPEARDEMO if (Keyboard[sc_M]) { DoJukebox(); didjukebox=true; } else #endif /* draw intro screen stuff */ IntroScreen (); /* load in and lock down some basic chunks */ CA_CacheGrChunk(STARTFONT); CA_CacheGrChunk(STATUSBARPIC); LoadLatchMem (); BuildTables (); /* trig tables */ SetupWalls (); NewViewSize (viewsize); /* initialize variables */ InitRedShifts (); #ifndef SPEARDEMO if(!didjukebox) #endif FinishSignon(); }
void InitGame (void) { //id0_unsigned_t segstart,seglength; id0_int_t i,x,y; id0_unsigned_t *blockstart; if (refkeen_current_gamever == BE_GAMEVER_CAT3D100) { US_TextScreen(); } MM_Startup (); VW_Startup (); #ifndef PROFILE IN_Startup (); SD_Startup (); #endif US_Startup (); if (refkeen_current_gamever == BE_GAMEVER_CAT3D100) { US_UpdateTextScreen(); } CA_Startup (); US_Setup (); US_SetLoadSaveHooks(LoadTheGame,SaveTheGame,ResetGame); // // load in and lock down some basic chunks // CA_ClearMarks (); CA_MarkGrChunk(STARTFONT); CA_MarkGrChunk(STARTTILE8); CA_MarkGrChunk(STARTTILE8M); CA_MarkGrChunk(HAND1PICM); CA_MarkGrChunk(HAND2PICM); CA_MarkGrChunk(ENTERPLAQUEPIC); CA_CacheMarks (NULL); MM_SetLock (&grsegs[STARTFONT],true); MM_SetLock (&grsegs[STARTTILE8],true); MM_SetLock (&grsegs[STARTTILE8M],true); MM_SetLock (&grsegs[HAND1PICM],true); MM_SetLock (&grsegs[HAND2PICM],true); MM_SetLock (&grsegs[ENTERPLAQUEPIC],true); fontcolor = WHITE; // // build some tables // for (i=0;i<MAPSIZE;i++) nearmapylookup[i] = &tilemap[0][0]+MAPSIZE*i; for (i=0;i<PORTTILESHIGH;i++) uwidthtable[i] = UPDATEWIDE*i; blockstart = &blockstarts[0]; for (y=0;y<UPDATEHIGH;y++) for (x=0;x<UPDATEWIDE;x++) *blockstart++ = SCREENWIDTH*16*y+x*TILEWIDTH; BuildTables (); // 3-d tables SetupScaling (); #ifndef PROFILE if (refkeen_current_gamever == BE_GAMEVER_CAT3D100) { US_FinishTextScreen(); } #endif // // reclaim the memory from the linked in text screen // // REFKEEN DIFFERENCE (FIXME: Should we "fix" this at all?) // - Don't handle this, a bit more complicated with our setup and the // difference is (probably) insignificant with well-defined behaviors // anyway... #if 0 segstart = FP_SEG(&introscn); seglength = 4000/16; if (FP_OFF(&introscn)) { segstart++; seglength--; } MML_UseSpace (segstart,seglength); #endif VW_SetScreenMode (GRMODE); VW_ColorBorder (3); VW_ClearVideo (BLACK); // // initialize variables // updateptr = &update[0]; // REFKEEN - Safe unaligned accesses *(updateptr + UPDATEWIDE*PORTTILESHIGH) = 1; *(updateptr + UPDATEWIDE*PORTTILESHIGH + 1) = 3; //*(id0_unsigned_t *)(updateptr + UPDATEWIDE*PORTTILESHIGH) = UPDATETERMINATE; bufferofs = 0; displayofs = 0; VW_SetLineWidth(SCREENWIDTH); }
void CK_InitGame() { // Can't do much without memory! MM_Startup(); //TODO: Get filenames/etc from config/episode // Load the core datafiles CA_Startup(); // Setup saved games handling US_Setup(); // Set a few Menu Callbacks // TODO: Finish this! US_SetMenuFunctionPointers(&CK_LoadGame, &CK_SaveGame, &CK_ExitMenu); // Set ID engine Callbacks ca_beginCacheBox = CK_BeginCacheBox; ca_updateCacheBox = CK_UpdateCacheBox; ca_finishCacheBox = CK_FinishCacheBox; // Mark some chunks we'll need. CA_ClearMarks(); CA_MarkGrChunk(FON_MAINFONT); CA_MarkGrChunk(ca_gfxInfoE.offTiles8); CA_MarkGrChunk(ca_gfxInfoE.offTiles8m); CA_MarkGrChunk(MPIC_STATUSLEFT); CA_MarkGrChunk(MPIC_STATUSRIGHT); CA_MarkGrChunk(PIC_TITLESCREEN); // Moved from CA_Startup CA_CacheMarks(0); // Lock them chunks in memory. CA_LockGrChunk(FON_MAINFONT); MM_SetLock(&ca_graphChunks[ca_gfxInfoE.offTiles8], true); MM_SetLock(&ca_graphChunks[ca_gfxInfoE.offTiles8m], true); MM_SetLock(&ca_graphChunks[MPIC_STATUSLEFT], true); MM_SetLock(&ca_graphChunks[MPIC_STATUSRIGHT], true); // Compile the actions CK_ACT_SetupFunctions(); CK_KeenSetupFunctions(); CK_OBJ_SetupFunctions(); CK_Map_SetupFunctions(); CK_Misc_SetupFunctions(); ck_currentEpisode->setupFunctions(); CK_ACT_LoadActions("ACTION.EXT"); // Setup the screen VL_InitScreen(); // TODO: Palette initialization should be done in the terminator code VL_SetDefaultPalette(); // Setup input IN_Startup(); // Setup audio SD_Startup(); US_Startup(); // Wolf loads fonts here, but we do it in CA_Startup()? RF_Startup(); VL_ColorBorder(3); VL_ClearScreen(0); VL_Present(); // Create a surface for the dropdown menu ck_statusSurface = VL_CreateSurface(STATUS_W+64, STATUS_H+16); }
void InitGame() { MM_Startup(); id0_int_t i; /*#if 0 // Handle piracy screen... // movedata(FP_SEG(PIRACY),(id0_unsigned_t)PIRACY,0xb800,displayofs,4000); while (BE_ST_BiosScanCode(0) != sc_Return); //while ((bioskey(0)>>8) != sc_Return); #endif*/ #if GRMODE == EGAGR if (mminfo.mainmem < 335l*1024) { //#pragma warn -pro //#pragma warn -nod #ifdef REFKEEN_VER_KDREAMS_CGA_ALL BE_ST_textcolor(7); #endif #ifndef REFKEEN_VER_KDREAMS_CGA_ALL if (refkeen_current_gamever == BE_GAMEVER_KDREAMSE113) #endif { BE_ST_textbackground(0); } //#pragma warn +nod //#pragma warn +pro BE_ST_clrscr(); // we can't include CONIO because of a name conflict //#pragma warn +nod //#pragma warn +pro BE_ST_puts ("There is not enough memory available to play the game reliably. You can"); BE_ST_puts ("play anyway, but an out of memory condition will eventually pop up. The"); BE_ST_puts ("correct solution is to unload some TSRs or rename your CONFIG.SYS and"); BE_ST_puts ("AUTOEXEC.BAT to free up more memory.\n"); BE_ST_puts ("Do you want to (Q)uit, or (C)ontinue?"); //i = bioskey (0); //if ( (i>>8) != sc_C) i = BE_ST_BiosScanCode (0); if (i != sc_C) Quit (""); } #endif US_TextScreen(); VW_Startup (); RF_Startup (); IN_Startup (); SD_Startup (); US_Startup (); #ifdef REFKEEN_VER_KDREAMS_CGA_ALL US_UpdateTextScreen(); #endif CA_Startup (); US_Setup (); // // load in and lock down some basic chunks // CA_ClearMarks (); CA_MarkGrChunk(STARTFONT); CA_MarkGrChunk(STARTFONTM); CA_MarkGrChunk(STARTTILE8); CA_MarkGrChunk(STARTTILE8M); for ( id0_int_t j=KEEN_LUMP_START ; j<=KEEN_LUMP_END ; j++) { CA_MarkGrChunk(j); } #ifdef REFKEEN_VER_KDREAMS_CGA_ALL CA_CacheMarks (NULL); #elif defined REFKEEN_VER_KDREAMS_ANYEGA_ALL CA_CacheMarks (NULL, 0); #endif MM_SetLock (&grsegs[STARTFONT],true); MM_SetLock (&grsegs[STARTFONTM],true); MM_SetLock (&grsegs[STARTTILE8],true); MM_SetLock (&grsegs[STARTTILE8M],true); for ( id0_int_t j=KEEN_LUMP_START ; j<=KEEN_LUMP_END ; j++) { MM_SetLock (&grsegs[j],true); } setupAudio(); fontcolor = WHITE; RefKeen_FillObjStatesWithDOSPointers(); // Saved games compatibility US_FinishTextScreen(); }
void InitGame (void) { //id0_unsigned_t segstart,seglength; id0_int_t i,x,y; id0_unsigned_t *blockstart; // US_TextScreen(); MM_Startup (); VW_Startup (); #ifndef PROFILE IN_Startup (); SD_Startup (); #endif US_Startup (); CA_Startup (); US_Setup (); US_SetLoadSaveHooks(LoadTheGame,SaveTheGame,ResetGame); // // load in and lock down some basic chunks // CA_ClearMarks (); CA_MarkGrChunk(STARTFONT); CA_MarkGrChunk(STARTTILE8); CA_MarkGrChunk(STARTTILE8M); CA_MarkGrChunk(HAND1PICM); CA_MarkGrChunk(NORTHICONSPR); CA_CacheMarks (NULL); MM_SetLock (&grsegs[STARTFONT],true); MM_SetLock (&grsegs[STARTTILE8],true); MM_SetLock (&grsegs[STARTTILE8M],true); MM_SetLock (&grsegs[HAND1PICM],true); fontcolor = WHITE; // // build some tables // for (i=0;i<MAPSIZE;i++) nearmapylookup[i] = &tilemap[0][0]+MAPSIZE*i; for (i=0;i<PORTTILESHIGH;i++) uwidthtable[i] = UPDATEWIDE*i; blockstart = &blockstarts[0]; for (y=0;y<UPDATEHIGH;y++) for (x=0;x<UPDATEWIDE;x++) *blockstart++ = SCREENWIDTH*16*y+x*TILEWIDTH; BuildTables (); // 3-d tables SetupScaling (); #ifndef PROFILE // US_FinishTextScreen(); #endif #if 0 // // reclaim the memory from the linked in text screen // segstart = FP_SEG(&introscn); seglength = 4000/16; if (FP_OFF(&introscn)) { segstart++; seglength--; } MML_UseSpace (segstart,seglength); #endif VW_SetScreenMode (GRMODE); ge_textmode = false; // VW_ColorBorder (3); VW_ClearVideo (BLACK); // // initialize variables // updateptr = &update[0]; // REFKEEN - Safe unaligned accesses *(updateptr + UPDATEWIDE*PORTTILESHIGH) = 1; *(updateptr + UPDATEWIDE*PORTTILESHIGH + 1) = 3; //*(id0_unsigned_t *)(updateptr + UPDATEWIDE*PORTTILESHIGH) = UPDATETERMINATE; bufferofs = 0; displayofs = 0; VW_SetLineWidth(SCREENWIDTH); }
//------------------------------------------------------------------------ // InitGame() //------------------------------------------------------------------------ void InitGame (void) { Sint16 i,x,y; Uint16 *blockstart; //long mmsize; MM_Startup (); // so the signon screen can be freed #if IN_DEVELOPMENT || GEORGE_CHEAT || SHOW_CHECKSUM if (MS_CheckParm("checksum")) { ShowChecksums(); MM_Shutdown(); exit(0); } #endif CA_Startup (); // Any problems with this version of the game? // #if IN_DEVELOPMENT || TECH_SUPPORT_VERSION if (!MS_CheckParm("nochex")) #endif #if !SKIP_CHECKSUMS CheckValidity("MAPTEMP.",MAPTEMP_CHECKSUM); #if GAME_VERSION != SHAREWARE_VERSION if (ChecksumFile("FILE_ID.DIZ",0) != DIZFILE_CHECKSUM) gamestate.flags |= GS_BAD_DIZ_FILE; #endif #endif VL_SetVGAPlaneMode (); VL_SetPalette (0,256,vgapal); VW_Startup (); IN_Startup (); PM_Startup (); SD_Startup (); US_Startup (); if (CheckForSpecialCode(POWERBALLTEXT)) #if IN_DEVELOPMENT DebugOk = true; #else PowerBall = true; #endif if (CheckForSpecialCode(TICSTEXT)) gamestate.flags |= GS_TICS_FOR_SCORE; if (CheckForSpecialCode(MUSICTEXT)) gamestate.flags |= GS_MUSIC_TEST; if (CheckForSpecialCode(RADARTEXT)) gamestate.flags |= GS_SHOW_OVERHEAD; #if IN_DEVELOPMENT // // Clear Monocrome // _fmemset(MK_FP(0xb000,0x0000),0,4000); #endif // // build some tables // InitDigiMap (); for (i=0;i<MAPSIZE;i++) { nearmapylookup[i] = &tilemap[0][0]+MAPSIZE*i; farmapylookup[i] = i*64; } for (i=0;i<PORTTILESHIGH;i++) uwidthtable[i] = UPDATEWIDE*i; blockstart = &blockstarts[0]; for (y=0;y<UPDATEHIGH;y++) for (x=0;x<UPDATEWIDE;x++) *blockstart++ = SCREENWIDTH*16*y+x*TILEWIDTH; updateptr = &update[0]; bufferofs = 0; displayofs = 0; ReadConfig (); // // draw intro screen stuff // // if (!(gamestate.flags & GS_QUICKRUN)) // IntroScreen (); // // load in and lock down some basic chunks // LoadFonts(); LoadLatchMem (); BuildTables (); // trig tables SetupWalls (); NewViewSize (); // // initialize variables // InitRedShifts (); }
static void InitGame() { #ifndef SPEARDEMO boolean didjukebox=false; #endif // initialize SDL #if defined _WIN32 putenv("SDL_VIDEODRIVER=directx"); #endif if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) < 0) { printf("Unable to init SDL: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); int numJoysticks = SDL_NumJoysticks(); if(param_joystickindex && (param_joystickindex < -1 || param_joystickindex >= numJoysticks)) { if(!numJoysticks) printf("No joysticks are available to SDL!\n"); else printf("The joystick index must be between -1 and %i!\n", numJoysticks - 1); exit(1); } #if defined(GP2X_940) GP2X_MemoryInit(); #endif SignonScreen (); #if defined _WIN32 if(!fullscreen) { struct SDL_SysWMinfo wmInfo; SDL_VERSION(&wmInfo.version); if(SDL_GetWMInfo(&wmInfo) != -1) { HWND hwndSDL = wmInfo.window; DWORD style = GetWindowLong(hwndSDL, GWL_STYLE) & ~WS_SYSMENU; SetWindowLong(hwndSDL, GWL_STYLE, style); SetWindowPos(hwndSDL, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); } } #endif VW_UpdateScreen(); VH_Startup (); IN_Startup (); PM_Startup (); SD_Startup (); CA_Startup (); US_Startup (); // TODO: Will any memory checking be needed someday?? #ifdef NOTYET #ifndef SPEAR if (mminfo.mainmem < 235000L) #else if (mminfo.mainmem < 257000L && !MS_CheckParm("debugmode")) #endif { byte *screen; CA_CacheGrChunk (ERRORSCREEN); screen = grsegs[ERRORSCREEN]; ShutdownId(); /* memcpy((byte *)0xb8000,screen+7+7*160,17*160); gotoxy (1,23);*/ exit(1); } #endif // // build some tables // InitDigiMap (); ReadConfig (); SetupSaveGames(); // // HOLDING DOWN 'M' KEY? // IN_ProcessEvents(); #ifndef SPEARDEMO if (Keyboard[sc_M]) { DoJukebox(); didjukebox=true; } else #endif // // draw intro screen stuff // IntroScreen (); #ifdef _arch_dreamcast //TODO: VMU Selection Screen #endif // // load in and lock down some basic chunks // CA_CacheGrChunk(STARTFONT); CA_CacheGrChunk(STATUSBARPIC); LoadLatchMem (); BuildTables (); // trig tables SetupWalls (); NewViewSize (viewsize); // // initialize variables // InitRedShifts (); #ifndef SPEARDEMO if(!didjukebox) #endif FinishSignon(); #ifdef NOTYET vdisp = (byte *) (0xa0000+PAGE1START); vbuf = (byte *) (0xa0000+PAGE2START); #endif }