void initstuff(void) { win_openwindow("Map Editor V1.26", NULL); win_setmousemode(MOUSE_ALWAYS_HIDDEN); win_fullscreen = 1; setscreenmode(); kbd_init(); mou_init(); if (!gfx_loadsprites(SPR_FONTS, "fonts.spr")) { win_messagebox("Sprite load error (FONTS.SPR)"); exit(1); } if (!gfx_loadsprites(SPR_EDITOR, "editor.spr")) { win_messagebox("Sprite load error (FONTS.SPR)"); exit(1); } io_setfilemode(0); /* Rest of file access happens without datafile */ }
void initstuff(void) { FILE *handle; win_openwindow("Block-info Editor V1.26", NULL); win_fullscreen = 1; win_setmousemode(MOUSE_ALWAYS_HIDDEN); setscreenmode(); kbd_init(); mou_init(); if (!gfx_loadsprites(SPR_FONTS, "fonts.spr")) { win_messagebox("Sprite load error (FONTS.SPR)"); exit(1); } if (!gfx_loadsprites(SPR_EDITOR, "editor.spr")) { win_messagebox("Sprite load error (EDITOR.SPR)"); exit(1); } blkinfdata = malloc((MAXBLOCKS+1)*16); if (!blkinfdata) { win_messagebox("No memory for blockinfotable!"); exit(1); } memset(blkinfdata, 0, (MAXBLOCKS+1)*16); io_setfilemode(0); // Rest of file access happens without datafile gfx_loadblocks(blkname); gfx_loadpalette(palname); gfx_calcpalette(64,0,0,0); gfx_setpalette(); handle = fopen(infname, "rb"); if (!handle) return; fread(&blkinfdata[0], (gfx_nblocks+1) * 16, 1, handle); fclose(handle); }
int gfx_init(unsigned xsize, unsigned ysize, unsigned framerate, unsigned flags) { int sdlflags = SDL_HWSURFACE; // Prevent re-entry (by window procedure) if (gfx_initexec) return BME_OK; gfx_initexec = 1; gfx_last_xsize = xsize; gfx_last_ysize = ysize; gfx_last_framerate = framerate; gfx_last_flags = flags & ~(GFX_FULLSCREEN | GFX_WINDOW); // Store the options contained in the flags gfx_scanlinemode = flags & (GFX_SCANLINES | GFX_DOUBLESIZE); if (flags & GFX_NOSWITCHING) gfx_preventswitch = 1; else gfx_preventswitch = 0; if (win_fullscreen) sdlflags |= SDL_FULLSCREEN; if (flags & GFX_FULLSCREEN) sdlflags |= SDL_FULLSCREEN; if (flags & GFX_WINDOW) sdlflags &= ~SDL_FULLSCREEN; if (sdlflags & SDL_FULLSCREEN) { sdlflags |= SDL_DOUBLEBUF; gfx_fullscreen = 1; } else gfx_fullscreen = 0; // Calculate virtual window size gfx_virtualxsize = xsize; gfx_virtualxsize /= 16; gfx_virtualxsize *= 16; gfx_virtualysize = ysize; gfx_vscreen = NULL; if ((!gfx_virtualxsize) || (!gfx_virtualysize)) { gfx_initexec = 0; gfx_uninit(); bme_error = BME_ILLEGAL_CONFIG; return BME_ERROR; } // Calculate actual window size (for scanline mode & doublesize mode // this is double the virtual) gfx_windowxsize = gfx_virtualxsize; gfx_windowysize = gfx_virtualysize; if (gfx_scanlinemode) { gfx_windowxsize <<= 1; gfx_windowysize <<= 1; } gfx_vscreen = malloc(gfx_virtualysize*gfx_virtualxsize); if (!gfx_vscreen) { gfx_initexec = 0; gfx_uninit(); bme_error = BME_OUT_OF_MEMORY; return BME_ERROR; } gfx_setclipregion(0, 0, gfx_virtualxsize, gfx_virtualysize); // Colors 0 & 255 are always black & white gfx_sdlpalette[0].r = 0; gfx_sdlpalette[0].g = 0; gfx_sdlpalette[0].b = 0; gfx_sdlpalette[255].r = 255; gfx_sdlpalette[255].g = 255; gfx_sdlpalette[255].b = 255; gfx_screen = SDL_SetVideoMode(gfx_windowxsize, gfx_windowysize, 8, sdlflags); gfx_initexec = 0; if (gfx_screen) { gfx_initted = 1; gfx_setpalette(); win_setmousemode(win_mousemode); return BME_OK; } else return BME_ERROR; }