Example #1
0
void vramdraw_destroy(void) {

	int		i;

	for (i=0; i<GAMECORE_MAXVRAM; i++) {
		vram_destroy(gamecore.vram[i]);
	}

	vram_destroy(mainvram);
	mainvram = NULL;
}
Example #2
0
void menubase_close(void) {

	MENUBASE	*mb;
	VRAMHDL		hdl;
	int			num;

	mb = &menubase;
	num = mb->num;
	if (num) {
		mb->num = 0;
		if (num == 1) {
			menusys_close();
		}
		else {
			menudlg_destroy();
		}
		hdl = menuvram;
		if (hdl) {
			menubase_draw(NULL, NULL);
			menuvram = NULL;
			vram_destroy(hdl);
		}
		scrnmng_leavemenu();
	}
}
Example #3
0
/*
 * menu
 */
BOOL
scrnmng_entermenu(SCRNMENU *smenu)
{
	int bpp;

	if (smenu == NULL) {
		goto smem_err;
	}
	bpp = scrnmng.sm.bpp;
	if (bpp == 32) {
		bpp = 24;
	}
	vram_destroy(scrnmng.vram);
	scrnmng.vram = vram_create(scrnmng.width, scrnmng.height, FALSE, bpp);
	if (scrnmng.vram == NULL) {
		goto smem_err;
	}
	scrndraw_redraw();

	smenu->width = scrnmng.width;
	smenu->height = scrnmng.height;
	smenu->bpp = bpp;

	return SUCCESS;

smem_err:
	return FAILURE;
}
Example #4
0
static void wndclose(MENUSYS *sys, int depth) {

	MSYSWND		wnd;

	sys->depth = depth;
	wnd = sys->wnd + depth;
	while(depth < MENUSYS_MAX) {
		menubase_clrrect(wnd->vram);
		vram_destroy(wnd->vram);
		wnd->vram = NULL;
		wnd++;
		depth++;
	}
}
Example #5
0
void gamecore_reset(void) {

	_SYSTIME	st;

	vram_destroy(gamecore.mouseevt.map);
	gamecore.mouseevt.map = NULL;
	textdisp_multireset();
	effect_trush();
	textwin_allclose();
	anime_alltrush();

	timemng_gettime(&st);
	srand(((st.day[0] << 24) | (st.hour[0] << 16) |
			(st.minute[0] << 8) | st.second[0]));

	gamecore.event = GAMEEV_SUCCESS;
}
Example #6
0
void screen_disclaimer ( bool force )
{
	if ( DEV > 1 ) return;

	vram_init ( VRAM_DEFAULT );


	bool nolddor_released_ZoS = 0;

	if ( nolddor_released_ZoS || force )
	{
		_disclaimer_cool ();
	}
	else
	{
		_disclaimer_simple ( );
	}

	vram_destroy();
}
Example #7
0
BOOL scrnmng_entermenu(SCRNMENU *smenu) {

	if (smenu == NULL) {
		goto smem_err;
	}
	vram_destroy(scrnmng.vram);
	scrnmng.vram = vram_create(scrnmng.width, scrnmng.height, FALSE,
																scrnmng.bpp);
	if (scrnmng.vram == NULL) {
		goto smem_err;
	}
	scrndraw_redraw();
	smenu->width = scrnmng.width;
	smenu->height = scrnmng.height;
	smenu->bpp = (scrnmng.bpp == 32)?24:scrnmng.bpp;
	return(SUCCESS);

smem_err:
	return(FAILURE);
}
Example #8
0
static void creditmix(VRAMHDL vram, int pos, const char *label, UINT32 col) {

	VRAMHDL	tmp;

	if ((vram == NULL) || (label == NULL)) {
		goto cmix_exit;
	}
	tmp = NULL;
	cgload_data(&tmp, ARCTYPE_GRAPHICS, label);
	if (tmp == NULL) {
		goto cmix_exit;
	}
	tmp->posy = vram->height - tmp->height;
	if (pos) {
		tmp->posx = vram->width - tmp->width;
	}
	vrammix_mixalpha(vram, tmp, col, NULL);
	vram_destroy(tmp);

cmix_exit:
	return;
}
Example #9
0
// VSET : 仮想VRAMの設定 Nonaka.K, T.Yui
int isfcmd_50(SCR_OPE *op) {

	SINT32	num;
	POINT_T	pt;
	VRAMHDL	*vram;

	if ((scr_getval(op, &num) != SUCCESS) ||
		(scr_getpt(op, &pt) != SUCCESS)) {
		return(GAMEEV_WRONGLENG);
	}
	if ((num >= 0) && (num < GAMECORE_MAXVRAM)) {
		vram = gamecore.vram + num;
		if (*vram) {
			vram_destroy(*vram);
		}
#ifdef SIZE_QVGA
		vramdraw_halfsize(&pt);
#endif
		*vram = vram_create(pt.x, pt.y, TRUE, DEFAULT_BPP);
		effect_vramdraw(num, NULL);
	}
	return(GAMEEV_SUCCESS);
}
Example #10
0
// SGL : セーブイメージを読み込む (T.Yui)
int isfcmd_6f(SCR_OPE *op) {

	SINT32		savenum;
	SINT32		num;
	POINT_T		pt;
	VRAMHDL		dst;
	SAVEHDL		sh;
	_SAVEINF	inf;
	BOOL		r;

	if ((scr_getval(op, &savenum) != SUCCESS) ||
		(scr_getval(op, &num) != SUCCESS) ||
		(scr_getpt(op, &pt) != SUCCESS)) {
		return(GAMEEV_WRONGLENG);
	}
	if ((num < 0) || (num >= GAMECORE_MAXVRAM)) {
		goto cmd6f_exit;
	}
	dst = gamecore.vram[num];
	if (dst == NULL) {
		goto cmd6f_exit;
	}

	sh = savefile_open(FALSE);
	r = sh->readinf(sh, savenum, &inf, -1, -1);
	sh->close(sh);
	if (r == SUCCESS) {
#ifdef SIZE_QVGA
		vramdraw_halfpoint(&pt);
#endif
		vramcpy_cpy(dst, (VRAMHDL)inf.preview, &pt, NULL);
		vram_destroy((VRAMHDL)inf.preview);
	}

cmd6f_exit:
	return(GAMEEV_SUCCESS);
}
Example #11
0
void vramdraw_savebmp(int num, const char *dir, const char *name,
						int pos, const char *credit0, const char *credit1) {

	int		i;
	char	path[MAX_PATH];
	char	work[32];
	BMPDATA	inf;
	VRAMHDL	vram;
	UINT	tmp;
	UINT	bmpsize;
	BMPFILE	bf;
	BMPINFO	bi;
	BYTE	*dat;
	FILEH	fh;

	if ((num < 0) || (num >= GAMECORE_MAXVRAM) || (name == NULL)) {
		goto vdsb_err1;
	}
	if (dir == NULL) {
		dir = "";
	}
	for (i=0; i<100; i++) {
		milstr_ncpy(path, dir, sizeof(path));
		milstr_ncat(path, name, sizeof(path));
		sprintf(work, "%02u.bmp", i);
		milstr_ncat(path, work, sizeof(path));
		if (file_attr(path) == -1) {
			break;
		}
		taskmng_rol();
	}
	if (i >= 100) {
		goto vdsb_err1;
	}

	vram = vram_copy(gamecore.vram[num]);
	if (vram == NULL) {
		goto vdsb_err1;
	}
	creditmix(vram, pos, credit1, 0x000000);
	creditmix(vram, pos, credit0, 0xffffff);

	inf.width = vram->width;
	inf.height = vram->height;
	inf.bpp = 24;

	bmpdata_setinfo(&bi, &inf, TRUE);
	bmpsize = bmpdata_getdatasize(&bi);

	ZeroMemory(&bf, sizeof(bf));
	bf.bfType[0] = 'B';
	bf.bfType[1] = 'M';
	tmp = sizeof(BMPFILE) + sizeof(BMPINFO);
	STOREINTELDWORD(bf.bfOffBits, tmp);
	tmp += bmpsize;
	STOREINTELDWORD(bf.bfSize, tmp);

	dat = bmpdata_bmp24cnv(&bi, vram);
	if (dat == NULL) {
		goto vdsb_err2;
	}
	fh = file_create(path);
	if (fh == FILEH_INVALID) {
		goto vdsb_err3;
	}
	file_write(fh, &bf, sizeof(bf));
	file_write(fh, &bi, sizeof(bi));
	file_write(fh, dat, bmpsize);
	file_close(fh);

vdsb_err3:
	_MFREE(dat);

vdsb_err2:
	vram_destroy(vram);

vdsb_err1:
	return;
}
Example #12
0
static BOOL readinf(SAVEHDL hdl, int num, SAVEINF inf,
													int width, int height) {

	SAVEISF		isf;
	SAVEDATA	dat;
	int			remain;
	BYTE		*ptr;
	BMPINFO		*bi;
	UINT		bmpsize;

	if (inf == NULL) {
		goto sfrt_err1;
	}
	ZeroMemory(inf, sizeof(_SAVEINF));
	isf = (SAVEISF)(hdl + 1);
	if ((num < 0) || (num >= isf->gamesaves)) {
		goto sfrt_err1;
	}

	dat = saveread(isf, num);
	if (dat == NULL) {
		goto sfrt_err1;
	}

	ptr = dat->ptr;
	remain = dat->size;

	remain -= sizeof(_SYSTIME);
	if (remain < 0) {
		goto sfrt_err2;
	}
	savefile_cnvdate(&inf->date, ptr);
	ptr += sizeof(_SYSTIME);

	if (gamecore.sys.type & GAME_SAVEGRPH) {
		remain -= sizeof(BMPINFO);
		if (remain < 0) {
			goto sfrt_err2;
		}
		bi = (BMPINFO *)ptr;
		if (LOADINTELDWORD(bi->biSize) != sizeof(BMPINFO)) {
			goto sfrt_err2;
		}
		ptr += sizeof(BMPINFO);
		bmpsize = bmpdata_getdatasizeex(bi, FALSE);
		remain -= bmpsize;
		if (remain < 0) {
			goto sfrt_err2;
		}
		if (width < 0) {
			width = LOADINTELDWORD(bi->biWidth);
#ifdef SIZE_QVGA
			width = vramdraw_half(width);
#endif
		}
		if (height < 0) {
			height = (SINT32)LOADINTELDWORD(bi->biHeight);
			if (height < 0) {
				height *= -1;
			}
#ifdef SIZE_QVGA
			height = vramdraw_half(height);
#endif
		}
		inf->preview = bmpdata_vram24cnvex(width, height, bi, ptr, FALSE);
		ptr += bmpsize;
	}

	inf->comment[0] = '\0';
	if (gamecore.sys.type & GAME_SAVECOM) {
		remain -= isf->commsize;
		if (remain < 0) {
			goto sfrt_err2;
		}
		CopyMemory(inf->comment, ptr, isf->commsize);
		inf->comment[isf->commsize] = '\0';
		ptr += isf->commsize;
	}

	_MFREE(dat);
	return(SUCCESS);

sfrt_err2:
	vram_destroy((VRAMHDL)inf->preview);
	inf->preview = NULL;
	_MFREE(dat);

sfrt_err1:
	return(FAILURE);
}