From 73cdc41e91970231d364a68336ac8dbab143fd4db61c0b8a104ff1f37bff7013 Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Sun, 6 Oct 2002 20:05:26 +0000 Subject: [PATCH] mouse --- ediv/CHANGE_LOG.txt | 5 ++++ ediv/bin/test_mouse.prg | 11 ++++++++ ediv/src/dlls/dlls.suo | Bin 19968 -> 22016 bytes ediv/src/dlls/graphics/main.c | 3 +- ediv/src/dlls/input/input.c | 51 ++++++++++++++++++++++++++++++++++ ediv/src/ediv/parser.c | 1 - ediv/src/visual c/ediv_ws.suo | Bin 25600 -> 25600 bytes 7 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 ediv/bin/test_mouse.prg diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index cf31b16..84f1305 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -1,3 +1,8 @@ +6/10/2002 +--------- + * Añadida estructura mouse en la input.dll. Lo malo es que peta al hacer + el blit :P supongo que no uso bien fp->Dibuja. (Er_Makina) + 28/9/2002 --------- * El título por defecto de la ventana del juego compilado es el nombre in- diff --git a/ediv/bin/test_mouse.prg b/ediv/bin/test_mouse.prg new file mode 100644 index 0000000..f3a8ac6 --- /dev/null +++ b/ediv/bin/test_mouse.prg @@ -0,0 +1,11 @@ +program test_mouse; +private + mi_mapa; + +begin + mi_mapa=load_bmp("hola.bmp"); + mouse.graph=mi_mapa; + loop + frame; + end +end diff --git a/ediv/src/dlls/dlls.suo b/ediv/src/dlls/dlls.suo index 181b14be6271a3a8e6a1e2b03d5a198a9ed76c704d99578f2bfa64640e58bd9b..fc792bf08a4e03dd6b4766cc8bd7ed1a28ba09674cf18e69871b331e9f3fb734 100644 GIT binary patch delta 1692 zcmb_cTTD|~6y4`?3$5*Kv4AbUtAz+g(%Ry)sT3F#iepV?G81EFqKJ=(NaSh=plyu5 zn&>9+#~8o-K@&6gQ(}ymXrhexJLB6Ko$>vs3Yv)PT#BesVvOfx-Mi1)>zuRiKKq{3 zA(1*JPIM{Um7QyJDXYZ+waJ;P`Sn7}mNO!Yh)zejU9HtbE^HMTLgVq)Sv;V|H8DQJ znCxZM&lOgc+blhfzu@QxUIJW^J)jQ4Fd{iUs(5A$+LsE>wNyzB2>9gafU`|G zXXSS1E^(d*ok_*-;&xY^qW}UKwQP*YjkIfpqER7eE#s0j>+TiYYY%dI_-*KU3E^-< zVgFE-&QCbJAo4yW^@4=MlOaa8DcGm+pM}}U7|o>``hn(C7|$Thp-R&Z!3v^RQvg=X z^u=HW&|?6a1K32()I!@yhut6#rx9t~L_4SzluT&13~~c)qczZNgsTBAL@2e;tbs?a zvB6~RNIPwTRELx(?!-eb*9@`|z#dYu9#j*EjG`55ZlkTBnn1mg3LV}yGpPG~c!t+V z`Frh}kY7Iu-jOV@9@rxe@n9g%XYBz)4?YpetMLB~Tmjxfcn$CCzzyIga0|E%`~&<8 z+yU+a{{jC4_kjDr1K=SbtKc#41b7NO1D*qE-~}M}c!l@Cu&oTe=Kac~Kf=|j)lSzH z87xmO4I8Niy%tT#TATokenB+hfQV$K-jnI*C9bjrjr5X>HcpgIF|O7w5uRzEuVy0@ zcZN8*IAL2<(uxykpw&3KR`f=UbSeWA!MU_x z+)Pmv^f+3_Pm4VvSsdGGE%YPh^1FFpEl_`9Ci~QUzEv0zoqTDTk59(^+`lZJ57w6O zjk<`>H+Il&!Kb|Sn7h1a4(1kfqG+mU;79SFS&O@TGsd2+2=1RKXP>JqGIu^-=^dS& zEFNpNLUp(%zV$DwLV^QGv+PwAqMg)i`N>Pvi delta 706 zcmZva&ubGw6vy98X8S9<+cZDi6g^46VxhLQ^#_C+up%*sMB1YVORa4nttDM0MA3zM z7R>8KD4vQZ5$Rlu6m#*QX#WPU3O($h0kM8(Yas_0-p+fU_nkNI4HLW*!M6CYCH0QH zD_-48v{cRA?_J&fxbjKFh$y(sO;vO#0bjw6@$pdK2p_2uw+AM;(5JXz?b&~j_zrFH<0MoT0q zDW1?YU889WfvND*BKi&U_`pf^A3}sOBu&(E8*)=}(|soL+;N}F_bxXFZ`-M;(!U7~ zR8EJ3W$B1vU2PCy zjHkRr83`L!r8QcoN94ngnX6sGl~n05Z2+0e`H{qLnd-Cv-3n5RNCBHER{?!MqS00^ zeY5StGrQN2S%MMWFtP_gH2|VXqu4-+Iz0rcA=)$wAK6CK!y>;qpVdLG9gjx$$6tso z?u?i0vyhoqPH#v16NiF#MuNB)pOTKL|ZpN(wH{UD0?==1I-|1y1nLP5=M^ diff --git a/ediv/src/dlls/graphics/main.c b/ediv/src/dlls/graphics/main.c index 92e1d71..fc7b1f8 100644 --- a/ediv/src/dlls/graphics/main.c +++ b/ediv/src/dlls/graphics/main.c @@ -1326,7 +1326,7 @@ int eDIV_FADE(FUNCTION_PARAMS2) return 1 ; } - +#include //*********************************** Entry Points **********************************************// FILE * fichero ; @@ -1465,6 +1465,7 @@ void frame(FUNCTION_PARAMS) //if ( last_map >= 2 ) // Mapa[2]->flags |= SDL_SRCALPHA ; + assert(0); // Volcamos la pila de bliteos for ( i = 0 ; i <= last_blit ; i++ ) { diff --git a/ediv/src/dlls/input/input.c b/ediv/src/dlls/input/input.c index 3fb938f..13f8275 100644 --- a/ediv/src/dlls/input/input.c +++ b/ediv/src/dlls/input/input.c @@ -143,6 +143,7 @@ Uint8 *keys ; +Uint8 mbuttons; int SDLtoDIV[1024] ; @@ -264,6 +265,27 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS) _KEY(_c_del) ; FUNCTION("key",1,eDiv_Key) ; + + GLOBAL_STRUCT("mouse",0); + _INT("x",0); /* Coordenada x */ + _INT("y",0); /* Coordenada y */ + _INT("graph",0); /* Gráfico */ + _INT("file",0); /* FPG */ + _INT("z",-512); /* Profundidad (TODO) */ + _INT("angle",0); /* Ángulo (TODO) */ + _INT("size",100); /* Tamaño (TODO) */ + _INT("flags",0); /* Banderas (TODO) */ + _INT("region",0); /* Región (TODO) */ + _INT("left",0); /* Botón izquierdo */ + _INT("middle",0); /* Botón central o de ruedecilla */ + _INT("right",0); /* Botón derecho */ + _INT("wheelup",0); /* Ruedecilla arriba (NUEVO) */ + _INT("wheeldown",0); /* Ruedecilla abajo (NUEVO) */ + _INT("cursor",0); /* Emulación con teclas de cursor (TODO) */ + _INT("speed",0); /* Velocidad del ratón (TODO) */ + _INT("transparency",0); /* Transparencia (NUEVO) (TODO) */ + END_STRUCT; + ENTRYPOINT(first_load) ; ENTRYPOINT(frame) ; @@ -504,9 +526,38 @@ void first_load(FUNCTION_PARAMS) void frame(FUNCTION_PARAMS) { int numkeys ; + int _mouse=globalptr("mouse"); + SDL_Rect srcrect,dstrect; keys = SDL_GetKeyState(&numkeys ) ; + + mbuttons = SDL_GetMouseState(&fp->mem[_mouse],&fp->mem[_mouse+1]); + /* Ponemos los 5 botones a 0 */ + memset(&fp->mem[_mouse+9],0,5*4); + + if(mbuttons&SDL_BUTTON(1)) + fp->mem[_mouse+9]=1; + + if(mbuttons&SDL_BUTTON(2)) + fp->mem[_mouse+10]=1; + + if(mbuttons&SDL_BUTTON(3)) + fp->mem[_mouse+11]=1; + + if(mbuttons&SDL_BUTTON(4)) /* podria no funcionar ¿necesario sdl_event? */ + fp->mem[_mouse+12]=1; + + if(mbuttons&SDL_BUTTON(5)) /* podria no funcionar ¿necesario sdl_event? */ + fp->mem[_mouse+13]=1; + + srcrect.x=srcrect.y=srcrect.w=srcrect.h=dstrect.w=dstrect.h=0; + dstrect.x=fp->mem[_mouse]; + dstrect.y=fp->mem[_mouse+1]; + + // TODO: añadir chequeo de error si no existe file o mapa + fp->Dibuja(fp->files[fp->mem[_mouse+3]].mapa[fp->mem[_mouse+2]].Surface,srcrect,dstrect,fp->mem[_mouse+4],0); + //FILE* fichero ; //fichero = fopen( "input.txt" , "w+" ) ; //for ( i = 0 ; i < 256 ; i++ ) diff --git a/ediv/src/ediv/parser.c b/ediv/src/ediv/parser.c index 0d0b890..e429542 100644 --- a/ediv/src/ediv/parser.c +++ b/ediv/src/ediv/parser.c @@ -326,7 +326,6 @@ void sintactico(void) hacer_strfix=1; optimizar=1;*/ - printf("** CHECKPOINT 1\n"); if(case_sensitive) { memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35); memcpy(lower+'A',"ABCDEFGHIJKLMNOPQRSTUVWXYZ",26); diff --git a/ediv/src/visual c/ediv_ws.suo b/ediv/src/visual c/ediv_ws.suo index d46e351f23a059019c13352d24b22db85eb503086751ff9fdc1c8ddc272b256c..194fcd2dbad34f766073726fd969f1a1e36480af659821a5b2b04e6c23e1bb19 100644 GIT binary patch delta 502 zcmZoT!PszuaYGIZ+lDW(mkV+?7qJ8}^85z^K?Vi}5Iy-Ki^}FNtQS~#B!ME#D56}+ zEP{)q;+0{L{ov{nG9t>mN5sANMbNzNCVQ!Ah}|O5}^7d zAnWwz_54%WC%Xt3OfC@*;9&&{f$RkVh~45Bgn9UZq5@DEh^TfZv)~4hbHHGk1Vhb< zoDG}v^rP50_<%wP?Pk4<(ijSv8KD~gP3HIao&3_`2o}TkS;{eTS_4&jfK*Su$R|Ac zht)%zhA}aGfg0vEncISI@>H7)EQa#gN;6^+wz3n(CLCw~8k=yGqcA>C{g}Mo&3E!u MCv2WtBoA+gGE@BB{CLa+q*!+bn znMIJB3n-Vukk63KPzq#uOHBT2Catp@B$^5o&txbAvNm%7i6jOihBP3Z4U#KnC;_TZ z0