X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fevents.c;h=4fecf14437dd6b978217d74840d7f6fcc37734d0;hp=ed43f4ec90d015436452eb51ec7fd486ad17c093;hb=afcc2462852f4f44f50b303d60f02b3c15c15f28;hpb=33df7a5ca87e883c2b718171fd7d05c22fc0353f diff --git a/src/events.c b/src/events.c index ed43f4ec..4fecf144 100644 --- a/src/events.c +++ b/src/events.c @@ -61,7 +61,7 @@ void EventLoop(void) else /* got no event, but don't be lazy... */ { HandleNoXEvent(); - Delay(10000); /* don't use all CPU time when idle */ + Delay(1000); /* don't use all CPU time when idle */ } XSync(display,FALSE); @@ -160,6 +160,11 @@ void HandleExposeEvent(XExposeEvent *event) SetDrawtoField(DRAW_DIRECT); } + if (soft_scrolling_on && game_status==PLAYING) + XCopyArea(display,fieldbuffer,backbuffer,gc, + FX,FY, SXSIZE,SYSIZE, + SX,SY); + XCopyArea(display,drawto,window,gc, x,y, width,height, x,y); XFlush(display); @@ -202,6 +207,7 @@ void HandleFocusEvent(XFocusChangeEvent *event) XAutoRepeatOn(display); old_joystick_status = joystick_status; joystick_status = JOYSTICK_OFF; + key_joystick_mapping = 0; } else if (event->type == FocusIn) { @@ -262,10 +268,8 @@ void HandleButton(int mx, int my, int button) } } -int Gamespeed = 4; -int Movemethod = 1; -int Movespeed[2] = { 10, 4 }; -char *Movespeed_text[2] = { "asynchron", "syncron" }; +int GameSpeed = 2; +int MoveSpeed = 8; void HandleKey(KeySym key, int key_status) { @@ -464,34 +468,36 @@ void HandleKey(KeySym key, int key_status) case XK_7: case XK_8: case XK_9: - Movespeed[Movemethod] = (Movemethod == 0 ? 4 : 0) + (key - XK_0); - printf("method == %d, speed == %d (%s)\n", - Movemethod, Movespeed[Movemethod], - Movespeed_text[Movemethod]); + if (key == XK_0) + GameSpeed = 50; + else + GameSpeed = key - XK_0; + printf("GameSpeed == %d\n", GameSpeed); break; case XK_a: - Movemethod = !Movemethod; - printf("method == %d, speed == %d (%s)\n", - Movemethod, Movespeed[Movemethod], - Movespeed_text[Movemethod]); + if (ScrollStepSize == TILEX/8) + ScrollStepSize = TILEX/4; + else + ScrollStepSize = TILEX/8; + printf("ScrollStepSize == %d\n", ScrollStepSize); break; case XK_f: - Gamespeed = 2; - printf("gamespeed == %d\n", Gamespeed); + ScrollStepSize = TILEX/8; + printf("ScrollStepSize == %d (1/8)\n", ScrollStepSize); break; case XK_g: - Gamespeed = 3; - printf("gamespeed == %d\n", Gamespeed); + ScrollStepSize = TILEX/4; + printf("ScrollStepSize == %d (1/4)\n", ScrollStepSize); break; case XK_h: - Gamespeed = 4; - printf("gamespeed == %d\n", Gamespeed); + ScrollStepSize = TILEX/2; + printf("ScrollStepSize == %d (1/2)\n", ScrollStepSize); break; case XK_l: - Gamespeed = 50; - printf("gamespeed == %d\n", Gamespeed); + ScrollStepSize = TILEX; + printf("ScrollStepSize == %d (1/1)\n", ScrollStepSize); break; case XK_Q: @@ -502,13 +508,13 @@ void HandleKey(KeySym key, int key_status) case XK_x: { - int i,j,k, num_steps = 16, step_size = TILEX / num_steps; + int i,j,k, num_steps = 8, step_size = TILEX / num_steps; static long scroll_delay=0; long scroll_delay_value = 4*4 / num_steps; printf("Scroll test\n"); - for(i=0;i<10;i++) + for(i=0;i<3;i++) { for(j=0;j