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(); } }
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); }
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(); }
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)); }
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"; }
/** * 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(); } }
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(); } }
/*! 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 ); }
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); }
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)); }
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); }
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); }