[Quest-ed-checkins] CVS: quest-3b/src/cmd cam.c,1.2,1.3
Brought to you by:
alexm
|
From: Alexander M. <al...@us...> - 2002-05-18 18:38:11
|
Update of /cvsroot/quest-ed/quest-3b/src/cmd
In directory usw-pr-cvs1:/tmp/cvs-serv31107/src/cmd
Modified Files:
cam.c
Log Message:
Add back ability to move around in a viewport by right-clicking and dragging.
Index: cam.c
===================================================================
RCS file: /cvsroot/quest-ed/quest-3b/src/cmd/cam.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** cam.c 23 Aug 2001 20:54:54 -0000 1.2
--- cam.c 18 May 2002 18:38:09 -0000 1.3
***************
*** 17,20 ****
--- 17,21 ----
#include "status.h"
#include "fe/3d.h"
+ #include "fe/int.h"
#include "fe/message.h"
#include "fe/render.h"
***************
*** 163,166 ****
--- 164,206 ----
+ static void C_camera_move_drag(void)
+ {
+ s_event_t e;
+ int tx,ty;
+ int sx,sy,ox,oy;
+
+ S_I_Setup(&e,S_I_MOTION|S_I_RELEASE,NULL);
+ tx=ty=0;
+ ox=oy=0;
+ while (1)
+ {
+ S_I_Wait(&e);
+ if (e.type==S_I_CLICK || e.type==S_I_RELEASE)
+ break;
+ if (e.type==S_I_MOTION)
+ {
+ tx+=e.dx;
+ ty+=e.dy;
+
+ sx=-tx/4-ox;
+ sy=-ty/4-oy;
+ ox+=sx;
+ oy+=sy;
+
+ while (sx>0) Camera_Move(S_cur_vport,MOVE_LEFT),sx--;
+ while (sx<0) Camera_Move(S_cur_vport,MOVE_RIGHT),sx++;
+ while (sy>0) Camera_Move(S_cur_vport,MOVE_UP),sy--;
+ while (sy<0) Camera_Move(S_cur_vport,MOVE_DOWN),sy++;
+
+ S_UpdateAllViewports();
+ }
+ }
+ S_I_Done();
+ }
+ static func_t F_camera_move_drag=
+ {"camera.move_drag",FUNC_VOID,{fv:C_camera_move_drag},NULL,NULL,0,
+ };
+
+
static void C_camera_rotate(qatom_t l)
{
***************
*** 185,189 ****
! static func_t *funcs[]={&F_camera_move,&F_camera_rotate,
&F_camera_zoom_in,&F_camera_zoom_out,
&F_camera_zoom_to,&F_camera_reset};
--- 225,230 ----
! static func_t *funcs[]={&F_camera_move,&F_camera_move_drag,
! &F_camera_rotate,
&F_camera_zoom_in,&F_camera_zoom_out,
&F_camera_zoom_to,&F_camera_reset};
|