Example #1
0
qload_overlay()
{
int how;
char buf1[30];
char buf2[30];
char *iname;

iname = ink_word();
sprintf(buf1, overlay_107 /* "Overlay %s" */, iname);
sprintf(buf2, overlay_108 /* "Underlay %s" */, iname);
overlay_options[0] = buf1;
overlay_options[1] = buf2;
how = qchoice(overlay_109 /* "Composite functions" */, 
	overlay_options, Array_els(overlay_options) );
if (how != 0)
	{
	unzoom();
	push_inks();
	ink_push_cel();
	load_overlay(how-1);
	ink_pop_cel();
	pop_inks();
	rezoom();
	}
}
Example #2
0
Errcode resize_default_temps(SHORT width, SHORT height)

/* called from poco and the like to reset to default settings */
{
Errcode err, ret;

	ret = Success;
	hide_mp();
	unzoom();
	push_most();
	close_tflx();

	if(width > 0 && height > 0)
	{
		if((ret = set_penwndo_size(width,height)) < 0)
			ret = flisize_error(ret,width,height);
	}

	if((err = open_default_flx()) < 0)
		return(err);

	pop_most();
	rezoom();
	show_mp();
	return(ret);
}
Example #3
0
set_zoom_level()
{
char *zs;

hide_mp();
unzoom();
zoom_choices[0][0] = ' ';
zoom_choices[1][0] = ' ';
if (vs.zoom4)
	zs = zoom_choices[1];
else
	zs = zoom_choices[0];
zs[0] = '*';
switch (qchoice(zoom_103 /* "Set zoom level" */, zoom_choices, Array_els(zoom_choices) ))
	{
	case 1:
		vs.zoom4 = 0;
		break;
	case 2:
		vs.zoom4 = 1;
		break;
	}
calc_zoom_w();
clip_zoom();
rezoom();
draw_mp();
}
Example #4
0
static Errcode load_vsettings(char *path)
{
Errcode err;
SHORT oframe_ix;
SHORT obframe_ix;
UBYTE ozoom_open;

	hide_mp();
	unzoom();

	/* keep some things the same */

	oframe_ix = vs.frame_ix;	/* keep frame ix */
	obframe_ix = vs.bframe_ix; /* and back frame cashe */
	ozoom_open = vs.zoom_open;

	if((err = load_file_settings(path, NULL, FALSE)) < Success)
		goto error;

	vs.frame_ix = oframe_ix;
	vs.bframe_ix = obframe_ix;
	vs.zoom_open = ozoom_open;

	rewrite_config();  /* save new loaded menu colors in config file */
	rethink_settings();
	menu_to_quickcent(&quick_menu);
error:

	rezoom();
	show_mp();
	return(cant_load(err,path));
}
Example #5
0
void getSelectedTileXY(int mouseX, int mouseY, int& mapX, int& mapY)
{
	SDL_Rect rect;
	rect.x = mouseX;
	rect.y = mouseY;
	rect.w = 0;
	rect.h = 0;
	
	screenToWorld(rect.x, rect.y);
	rect.x -= tileSizeX / 2;
	unzoom(rect);
	isoToMap(rect.x, rect.y, mapX, mapY);

// 	const int tileSizeX = 32;
// 	const int tileWidth = 16;
// 	const double cst = (2 * tileSizeX*tileWidth);
// 	const double fx = -camX + tileSizeX;
// 	const double fy = -camY;//-(tileSizeY*input_scale - tileWidth*input_scale);
// 	double x = (tileWidth*mouseX + tileSizeX*mouseY + (-fx*tileWidth - fy*tileSizeX));
// 	double y = (-tileWidth*mouseX + tileSizeX*mouseY + (fx*tileWidth - fy*tileSizeX));
// 	x /= cst;
// 	y /= cst;
// 	mapX = x;
// 	mapY = y;

	std::cout << mouseX << "," << mouseY << "\n";
	std::cout << rect.x << "," << rect.y << "\n";
}
Example #6
0
/**
  * Process the mouse press event.
  */
void InputControllerMoveUnwrapped::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton)
    {
        m_isButtonPressed = true;
        m_rect.setTopLeft(QPoint(event->x(),event->y()));
    }
    else if (event->button() == Qt::RightButton)
    {
        emit unzoom();
    }
}
Example #7
0
void qload_overlay(void)
{
int how;

	how = soft_qchoice(NULL, "!%s", "composit_mu", vl.ink->ot.name );
	
	if (how >= 0)
	{
		unzoom();
		push_inks();
		ink_push_cel();
		load_overlay(how);
		ink_pop_cel();
		pop_inks();
		rezoom();
	}
}
Example #8
0
/*!
  Handle a key press event for the observed widget.

  \param ke Key event
*/
void QwtPolarMagnifier::widgetKeyPressEvent( QKeyEvent *ke )
{
  const int key = ke->key();
#if QT_VERSION < 0x040000
  const int state = ke->state();
#else
  const int state = ke->modifiers();
#endif

  if ( key == d_data->unzoomKey &&
       state == d_data->unzoomKeyModifiers )
  {
    unzoom();
    return;
  }

  QwtMagnifier::widgetKeyPressEvent( ke );
}
Example #9
0
Errcode save_fli(char *name)

/* save whole fli without altering records */
{
Errcode err;
int oix;

	unzoom();
	if((err = sv_fli(name)) >= 0)
	{
		oix = vs.frame_ix;
		make_tempflx(name,0);
		vs.frame_ix = oix;
	}
	else
		pj_delete(name);

	rezoom();
	return(err);
}
Example #10
0
Errcode resize_load_fli(char *flicname)
/* Make sure that a file-name refers to an existing FLI file 
 * or a valid pic format.
 * attempt reset of current fli window environment to 
 * the new image size. and attempt to load the images.
 * if a failure in resizing or loading you will end up with an
 * empty fli and an error reported */
{
Errcode err;
Anim_info ainfo;
char pdr_name[PATH_SIZE];

	hide_mp();

	if((err = find_pdr_loader(flicname, TRUE, &ainfo, 
							  pdr_name,vb.pencel)) < Success)
	{
		goto reshow_out; 
	}

	unzoom();
	push_most();
	close_tflx();

	if((err = set_penwndo_size(ainfo.width,ainfo.height)) < Success)
	{
		err = flisize_error(err,ainfo.width,ainfo.height);
		empty_tempflx(1);
		goto error;
	}
	else
	{
		if(is_fli_pdr_name(pdr_name))
		{
			err = load_fli(flicname);
			goto done;
		}

		if(ainfo.num_frames == 1)
		{
			empty_tempflx(1);
			if((err = pdr_load_picture(pdr_name,flicname,vb.pencel)) < Success)
			{
				goto error;
			}
			dirties();
			goto done;
		}
		/* try to load animation file using pdr */

		if(!soft_yes_no_box("!%d%s", "fliload_slow",
						    ainfo.num_frames, flicname ))
		{
			err = Err_abort;
			goto error;
		}

		vs.frame_ix = 0;
		if((err = make_pdr_tempflx(pdr_name,flicname,&ainfo)) >= Success
		     || err == Err_abort)
		{
			if((err = unfli(vb.pencel,0,1)) >= Success)
			{
				goto done;
			}
		}
		kill_seq();
		goto error;	
	}

done:
error:
	pop_most();
	rezoom();
reshow_out:
	show_mp();
	vs.bframe_ix = 0; /* back frame buffer no good now */
	return(softerr(err,"!%s", "fli_load", flicname));
}
Example #11
0
Errcode sub_cur_frame(void)
/* returns frame index left in undo buffer errcode if not possible */
{
Errcode err;
int pushed = 0;
int unzoomed = 0;
long cbufsz;
Fli_frame *cbuf;
Fli_frame *cbuf2;
void *alloc2;
SHORT undoix;
Boolean overwrite;
Flx ocurflx;

	if (!flix.fd)
		return(Err_bad_input);

	flx_clear_olays(); /* undraw cels cursors etc */

	if (vs.frame_ix == vs.bframe_ix)	/* mark buffer frame as no good */
		vs.bframe_ix = 0;
	/* grovel for memory... freeing up more and more ... */

	cbufsz = pj_fli_cbuf_size(vb.pencel->width,vb.pencel->height,
					   vb.pencel->cmap->num_colors);

	if ((cbuf = pj_malloc(cbufsz)) == NULL)
	{
		unzoomed = 1;
		unzoom();
		if ((cbuf = pj_malloc(cbufsz)) == NULL)
		{
			pushed = 1;
			push_most();
			if ((cbuf = begmem(cbufsz)) == NULL)
			{
				err = Err_reported;
				goto error;
			}
		}
	}

	/* put old frame 0 in undo buffer if not compressing the one and 
	 * only first frame */

	if(flix.hdr.frame_count != 1)
	{
		if ((err = gb_unfli(undof,0,0,cbuf)) < 0)
			goto error;
	}

	overwrite = TRUE; /* allow current record to be overwritten unless
					   * we find we can't allocate buffers etc */

	if(vs.frame_ix == 0)
	{
		undoix = 0;
		pj_fli_comp_frame1(cbuf,vb.pencel,flix.comp_type);
		if((err = write_flx_frame(&flix,0,cbuf))<0)
			goto error;
		if(flix.hdr.frame_count == 1)
		{
			save_undo();
			undoix = 0;
			goto done;
		}
	}
	else
	{
		/* seek to frame before and compress current delta */
		if(vs.frame_ix > 1)
		{
			if ((err = gb_fli_tseek(undof,0,vs.frame_ix-1, cbuf)) < 0)
				goto error;
		}
		ocurflx = flix.idx[vs.frame_ix];
		if(ocurflx.fsize == 0)
			ocurflx.fsize = sizeof(Fli_frame);

		pj_fli_comp_cel(cbuf,undof,vb.pencel,COMP_DELTA_FRAME,flix.comp_type);

		if((cbufsz - cbuf->size) >= ocurflx.fsize)
		{
			cbuf2 = OPTR(cbuf,cbuf->size);
			alloc2 = NULL;
		}
		else 
		{
			if((alloc2 = pj_malloc(ocurflx.fsize)) == NULL)
				overwrite = FALSE;
			cbuf2 = alloc2;
		}
		if(overwrite) /* unfli old frame via cbuf2 we may overwrite it */
		{
			err = gb_unfli(undof,vs.frame_ix,0,cbuf2);
			pj_freez(&alloc2); /* get rid of any alloc'd buffers */
			if(err < Success)
				goto error;
		}

		if(cbuf->size <= sizeof(Fli_frame))
			cbuf->size = 0;

		if((err = make_flx_record(&flix,vs.frame_ix,
								  cbuf,cbuf->size,overwrite)) < 0)
		{
			goto error;
		}

		/* re read old record from its old file slot */
		if(!overwrite && ocurflx.fsize > sizeof(Fli_frame))
		{
			if((err = pj_readoset(flix.fd,cbuf,ocurflx.foff,ocurflx.fsize))<0)
				goto error;
			if(cbuf->type != FCID_FRAME)
			{
				err = Err_bad_magic;
				goto error;
			}
			pj_fli_uncomp_frame(undof,cbuf,0);
		}
	}

	/* unfli to next frame */
	undoix = vs.frame_ix+1;
	if((err = gb_unfli(undof,undoix,0,cbuf)) < 0)
		goto error;

	pj_fli_comp_cel(cbuf,vb.pencel,undof,COMP_DELTA_FRAME,flix.comp_type);

	if((err = write_flx_frame(&flix,undoix,cbuf)) < 0)
		goto error;

	/* possibly have to update last loop frame if changing first frame 
	 * and more than one frame in fli */

	if(vs.frame_ix == 0)
	{
		/* advance undo to last frame in file */
		if((err = gb_fli_tseek(undof,undoix,flix.hdr.frame_count-1,cbuf))<0)
			goto error;
		undoix = flix.hdr.frame_count-1;
		pj_fli_comp_cel(cbuf,undof,vb.pencel,COMP_DELTA_FRAME,flix.comp_type);
		if((err = write_flx_frame(&flix,flix.hdr.frame_count,cbuf)) < 0)
			goto error;
	}

done:
	flush_tflx();
	err = wrap_frame(undoix);
error:
	pj_gentle_free(cbuf);
	if (pushed)
		pop_most();
	if (unzoomed)
		rezoom();
	flx_draw_olays(); /* restore cels and such */
	return(err);
}
Example #12
0
static Errcode save_flx_segment(char *title,SHORT sstart, SHORT send)

/* returns ecode if cant do */
{
int i, last;
Flifile flif;
Fli_frame *cbuf;
Errcode err;
char pdr_name[PATH_SIZE];
Boolean fli_format;
SHORT oframe_ix;

	if(!flix.fd)
		return(Err_bad_input);

	if(sstart >= flix.hdr.frame_count)
		sstart = flix.hdr.frame_count-1;
	if(send >= flix.hdr.frame_count)
		send = flix.hdr.frame_count-1;

	oframe_ix = vs.frame_ix;
	clear_struct(&flif); /* for error out */
	cbuf = NULL;

	fli_format = (is_fli_pdr_name(get_flisave_pdr(pdr_name)));

	if(fli_format && sstart == 0 && send == flix.hdr.frame_count-1)
		return(save_fli(title));

	hide_mp();
	unzoom();
	push_most();
	scrub_cur_frame();

	if(!fli_format)
	{
		if((err = pdr_save_flx_segment(pdr_name,title,sstart,send)) < Success)
			goto error;
		goto done;
	}

	if((err = pj_fli_cel_alloc_cbuf(&cbuf,vb.pencel)) < 0)
		goto error;

	save_undo();
	gb_fli_tseek(undof,vs.frame_ix,sstart,cbuf);

	if((err = save_fli_start(title, &flif)) < 0)
		goto error;

	if((err = pj_fli_add_frame1(title, &flif, cbuf, undof)) < 0)
		goto error;

	if(sstart > send)
	{
		last = sstart;
		i = last - 1;
		while(i >= send)
		{
			zoom_unundo();
			gb_fli_tseek(undof,last,i,cbuf);
			last = i--;
			if((err = pj_fli_add_next(title, &flif, 
									   cbuf,vb.pencel,undof)) < 0)
			{
				goto error;
			}
		}
	}
	else /* forward, no recompression needed */
	{
		i = sstart+1;
		while(i <= send)
		{
			if((err = read_flx_frame(&flix,cbuf,i)) < 0)
				goto error;
			if((err = pj_i_add_next_rec(title, &flif, cbuf)) < 0)
				goto error;
			++i;
		}
		gb_fli_tseek(undof,sstart,send,cbuf);
	}

	zoom_unundo();
	gb_fli_tseek(undof,send,sstart,cbuf);
	if((err = pj_fli_add_ring(title,&flif,cbuf,vb.pencel,undof)) < 0)
		goto error;

	goto done;
error:
	pj_delete(title);
done:
	pj_gentle_free(cbuf);
	pj_fli_close(&flif);
	fli_abs_tseek(undof,(vs.frame_ix = oframe_ix));
	zoom_unundo();
	pop_most();
	rezoom();
	show_mp();
	return(err);
}