summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-07-23 16:10:54 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-02 13:26:44 (GMT)
commitdaeddd551969e3546c2870de59f4e2c8fbdf6786 (patch)
tree00681a1f55f9d8ebcb51b2a24d8c8a9393fc7117 /src
parent23f9de6f811550a0cf5091b0415f141ee04e9ddb (diff)
downloadpowder-daeddd551969e3546c2870de59f4e2c8fbdf6786.zip
powder-daeddd551969e3546c2870de59f4e2c8fbdf6786.tar.gz
move some key stuff out of sdl_poll, zoom won't be triggered even when disabled by lua now
Conflicts: src/interface.c src/main.c
Diffstat (limited to 'src')
-rw-r--r--src/interface.c148
-rw-r--r--src/main.c55
2 files changed, 106 insertions, 97 deletions
diff --git a/src/interface.c b/src/interface.c
index 42a1fac..babece7 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -46,7 +46,7 @@
#include "save.h"
SDLMod sdl_mod;
-int sdl_key, sdl_rkey, sdl_wheel, sdl_caps=0, sdl_ascii, sdl_zoom_trig=0;
+int sdl_key, sdl_rkey, sdl_wheel, sdl_ascii, sdl_zoom_trig=0;
#if (defined(LIN32) || defined(LIN64)) && defined(SDL_VIDEO_DRIVER_X11)
SDL_SysWMinfo sdl_wminfo;
Atom XA_CLIPBOARD, XA_TARGETS;
@@ -2891,93 +2891,18 @@ int sdl_poll(void)
case SDL_KEYDOWN:
sdl_key=event.key.keysym.sym;
sdl_ascii=event.key.keysym.unicode;
- if (event.key.keysym.sym == SDLK_CAPSLOCK)
- sdl_caps = 1;
- if (event.key.keysym.sym=='z')
- {
- if (event.key.keysym.mod&KMOD_ALT)//toggle
- sdl_zoom_trig = (!sdl_zoom_trig)*2;
- else
- sdl_zoom_trig = 1;
- }
- if ( event.key.keysym.sym == SDLK_PLUS)
+ if (event.key.keysym.sym == SDLK_PLUS)
{
sdl_wheel++;
}
- if ( event.key.keysym.sym == SDLK_MINUS)
+ if (event.key.keysym.sym == SDLK_MINUS)
{
sdl_wheel--;
}
- // 4
- //1 8 2
- if (event.key.keysym.sym == SDLK_RIGHT)
- {
- player.comm = (int)(player.comm)|0x02; //Go right command
- }
- if (event.key.keysym.sym == SDLK_LEFT)
- {
- player.comm = (int)(player.comm)|0x01; //Go left command
- }
- if (event.key.keysym.sym == SDLK_DOWN && ((int)(player.comm)&0x08)!=0x08)
- {
- player.comm = (int)(player.comm)|0x08; //Go left command
- }
- if (event.key.keysym.sym == SDLK_UP && ((int)(player.comm)&0x04)!=0x04)
- {
- player.comm = (int)(player.comm)|0x04; //Jump command
- }
-
- if (event.key.keysym.sym == SDLK_d)
- {
- player2.comm = (int)(player2.comm)|0x02; //Go right command
- }
- if (event.key.keysym.sym == SDLK_a)
- {
- player2.comm = (int)(player2.comm)|0x01; //Go left command
- }
- if (event.key.keysym.sym == SDLK_s && ((int)(player2.comm)&0x08)!=0x08)
- {
- player2.comm = (int)(player2.comm)|0x08; //Go left command
- }
- if (event.key.keysym.sym == SDLK_w && ((int)(player2.comm)&0x04)!=0x04)
- {
- player2.comm = (int)(player2.comm)|0x04; //Jump command
- }
break;
case SDL_KEYUP:
sdl_rkey=event.key.keysym.sym;
- if (event.key.keysym.sym == SDLK_CAPSLOCK)
- sdl_caps = 0;
- if (event.key.keysym.sym == 'z' && sdl_zoom_trig==1)//if ==2 then it was toggled with alt+z, don't turn off on keyup
- sdl_zoom_trig = 0;
- if (event.key.keysym.sym == SDLK_RIGHT || event.key.keysym.sym == SDLK_LEFT)
- {
- player.pcomm = player.comm; //Saving last movement
- player.comm = (int)(player.comm)&12; //Stop command
- }
- if (event.key.keysym.sym == SDLK_UP)
- {
- player.comm = (int)(player.comm)&11;
- }
- if (event.key.keysym.sym == SDLK_DOWN)
- {
- player.comm = (int)(player.comm)&7;
- }
-
- if (event.key.keysym.sym == SDLK_d || event.key.keysym.sym == SDLK_a)
- {
- player2.pcomm = player2.comm; //Saving last movement
- player2.comm = (int)(player2.comm)&12; //Stop command
- }
- if (event.key.keysym.sym == SDLK_w)
- {
- player2.comm = (int)(player2.comm)&11;
- }
- if (event.key.keysym.sym == SDLK_s)
- {
- player2.comm = (int)(player2.comm)&7;
- }
break;
case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_WHEELUP)
@@ -3037,6 +2962,73 @@ int sdl_poll(void)
return 0;
}
+void stickmen_keys()
+{
+ // 4
+ //1 8 2
+ if (sdl_key == SDLK_RIGHT)
+ {
+ player.comm = (int)(player.comm)|0x02; //Go right command
+ }
+ if (sdl_key == SDLK_LEFT)
+ {
+ player.comm = (int)(player.comm)|0x01; //Go left command
+ }
+ if (sdl_key == SDLK_DOWN && ((int)(player.comm)&0x08)!=0x08)
+ {
+ player.comm = (int)(player.comm)|0x08; //Use element command
+ }
+ if (sdl_key == SDLK_UP && ((int)(player.comm)&0x04)!=0x04)
+ {
+ player.comm = (int)(player.comm)|0x04; //Jump command
+ }
+
+ if (sdl_key == SDLK_d)
+ {
+ player2.comm = (int)(player2.comm)|0x02; //Go right command
+ }
+ if (sdl_key == SDLK_a)
+ {
+ player2.comm = (int)(player2.comm)|0x01; //Go left command
+ }
+ if (sdl_key == SDLK_s && ((int)(player2.comm)&0x08)!=0x08)
+ {
+ player2.comm = (int)(player2.comm)|0x08; //Use element command
+ }
+ if (sdl_key == SDLK_w && ((int)(player2.comm)&0x04)!=0x04)
+ {
+ player2.comm = (int)(player2.comm)|0x04; //Jump command
+ }
+
+ if (sdl_rkey == SDLK_RIGHT || sdl_rkey == SDLK_LEFT)
+ {
+ player.pcomm = player.comm; //Saving last movement
+ player.comm = (int)(player.comm)&12; //Stop command
+ }
+ if (sdl_rkey == SDLK_UP)
+ {
+ player.comm = (int)(player.comm)&11;
+ }
+ if (sdl_rkey == SDLK_DOWN)
+ {
+ player.comm = (int)(player.comm)&7;
+ }
+
+ if (sdl_rkey == SDLK_d || sdl_rkey == SDLK_a)
+ {
+ player2.pcomm = player2.comm; //Saving last movement
+ player2.comm = (int)(player2.comm)&12; //Stop command
+ }
+ if (sdl_rkey == SDLK_w)
+ {
+ player2.comm = (int)(player2.comm)&11;
+ }
+ if (sdl_rkey == SDLK_s)
+ {
+ player2.comm = (int)(player2.comm)&7;
+ }
+}
+
void set_cmode(int cm) // sets to given view mode
{
int cmode = cm;
diff --git a/src/main.c b/src/main.c
index 1654fa8..4dfa6f2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1287,6 +1287,7 @@ int main(int argc, char *argv[])
#endif
if (sys_shortcuts==1)//all shortcuts can be disabled by python scripts
{
+ stickmen_keys();
if (sdl_key=='q' || sdl_key==SDLK_ESCAPE)
{
if (confirm_ui(vid_buf, "You are about to quit", "Are you sure you want to quit?", "Quit"))
@@ -1713,31 +1714,47 @@ int main(int argc, char *argv[])
if (it > 50)
it = 50;
}*/
- if (sdl_key=='z'&&(sdl_mod & (KMOD_LCTRL|KMOD_RCTRL))) // Undo
+ if (sdl_key=='z') // Undo
{
- int cbx, cby, cbi;
+ if (sdl_mod & (KMOD_LCTRL|KMOD_RCTRL))
+ {
+ int cbx, cby, cbi;
- for (cbi=0; cbi<NPART; cbi++)
- parts[cbi] = cb_parts[cbi];
- parts_lastActiveIndex = NPART-1;
+ for (cbi=0; cbi<NPART; cbi++)
+ parts[cbi] = cb_parts[cbi];
+ parts_lastActiveIndex = NPART-1;
- for (cby = 0; cby<YRES; cby++)
- for (cbx = 0; cbx<XRES; cbx++)
- pmap[cby][cbx] = cb_pmap[cby][cbx];
+ for (cby = 0; cby<YRES; cby++)
+ for (cbx = 0; cbx<XRES; cbx++)
+ pmap[cby][cbx] = cb_pmap[cby][cbx];
- for (cby = 0; cby<(YRES/CELL); cby++)
- for (cbx = 0; cbx<(XRES/CELL); cbx++)
- {
- vx[cby][cbx] = cb_vx[cby][cbx];
- vy[cby][cbx] = cb_vy[cby][cbx];
- pv[cby][cbx] = cb_pv[cby][cbx];
- hv[cby][cbx] = cb_hv[cby][cbx];
- bmap[cby][cbx] = cb_bmap[cby][cbx];
- emap[cby][cbx] = cb_emap[cby][cbx];
- }
+ for (cby = 0; cby<(YRES/CELL); cby++)
+ for (cbx = 0; cbx<(XRES/CELL); cbx++)
+ {
+ vx[cby][cbx] = cb_vx[cby][cbx];
+ vy[cby][cbx] = cb_vy[cby][cbx];
+ pv[cby][cbx] = cb_pv[cby][cbx];
+ hv[cby][cbx] = cb_hv[cby][cbx];
+ bmap[cby][cbx] = cb_bmap[cby][cbx];
+ emap[cby][cbx] = cb_emap[cby][cbx];
+ }
- force_stacking_check = 1;//check for excessive stacking of particles next time update_particles is run
+ force_stacking_check = 1;//check for excessive stacking of particles next time update_particles is run
+ }
+ else
+ {
+ if (sdl_mod & KMOD_ALT)//toggle
+ sdl_zoom_trig = (!sdl_zoom_trig)*2;
+ else
+ sdl_zoom_trig = 1;
+ }
}
+<<<<<<< HEAD
+=======
+ if (sdl_rkey == 'z' && sdl_zoom_trig==1)//if ==2 then it was toggled with alt+z, don't turn off on keyup
+ sdl_zoom_trig = 0;
+ SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
+>>>>>>> 230ab97... move some key stuff out of sdl_poll, zoom won't be triggered even when disabled by lua now
}
#ifdef INTERNAL
int counterthing;