#include "tape.h"
#include "network.h"
-/* values for key_status */
-#define KEY_NOT_PRESSED FALSE
-#define KEY_RELEASED FALSE
-#define KEY_PRESSED TRUE
-
static boolean cursor_inside_playfield = FALSE;
static boolean playfield_cursor_set = FALSE;
}
/* skip mouse motion events without pressed button outside level editor */
- if (button_status == MB_RELEASED && game_status != GAME_MODE_EDITOR)
+ if (button_status == MB_RELEASED && game_status != GAME_MODE_EDITOR &&
+ game_status != GAME_MODE_PLAYING)
return 0;
else
return 1;
void EventLoop(void)
{
- while(1)
+ while (1)
{
if (PendingEvent()) /* got event */
{
/* simulate key release events for still pressed keys */
key_joystick_mapping = 0;
- for (i=0; i<MAX_PLAYERS; i++)
+ for (i = 0; i < MAX_PLAYERS; i++)
stored_player[i].action = 0;
}
KeyboardAutoRepeatOn();
- while(window_unmapped)
+ while (window_unmapped)
{
Event event;
int key_status = (event->type==EVENT_KEYPRESS ? KEY_PRESSED : KEY_RELEASED);
boolean with_modifiers = (game_status == GAME_MODE_PLAYING ? FALSE : TRUE);
Key key = GetEventKey(event, with_modifiers);
+ Key keymod = (with_modifiers ? GetEventKey(event, FALSE) : key);
+ HandleKeyModState(keymod, key_status);
HandleKey(key, key_status);
}
break;
case GAME_MODE_INFO:
- HandleHelpScreen(button);
+ HandleInfoScreen(button);
break;
case GAME_MODE_SETUP:
if (!IN_LEV_FIELD(x, y))
break;
- printf(" Feld[%d][%d] == %d\n", x,y, Feld[x][y]);
+ printf(" Feld[%d][%d] == %d ('%s')\n", x,y, Feld[x][y],
+ element_info[Feld[x][y]].token_name);
+ printf(" Back[%d][%d] == %d\n", x,y, Back[x][y]);
printf(" Store[%d][%d] == %d\n", x,y, Store[x][y]);
printf(" Store2[%d][%d] == %d\n", x,y, Store2[x][y]);
printf(" StorePlayer[%d][%d] == %d\n", x,y, StorePlayer[x][y]);
printf(" MovPos[%d][%d] == %d\n", x,y, MovPos[x][y]);
printf(" MovDir[%d][%d] == %d\n", x,y, MovDir[x][y]);
printf(" MovDelay[%d][%d] == %d\n", x,y, MovDelay[x][y]);
+ printf(" ChangeDelay[%d][%d] == %d\n", x,y, ChangeDelay[x][y]);
printf(" GfxElement[%d][%d] == %d\n", x,y, GfxElement[x][y]);
+ printf(" GfxAction[%d][%d] == %d\n", x,y, GfxAction[x][y]);
+ printf(" GfxFrame[%d][%d] == %d\n", x,y, GfxFrame[x][y]);
printf("\n");
}
}
static boolean bomb_placed[MAX_PLAYERS] = { FALSE,FALSE,FALSE,FALSE };
int pnr;
- for (pnr=0; pnr<MAX_PLAYERS; pnr++)
+ for (pnr = 0; pnr < MAX_PLAYERS; pnr++)
{
int i;
byte key_action = 0;
custom_key = setup.input[pnr].key;
- for (i=0; i<6; i++)
+ for (i = 0; i < 6; i++)
if (key == *key_info[i].key_custom)
key_action |= key_info[i].action;
{
int i;
- for (i=0; i<6; i++)
+ for (i = 0; i < 6; i++)
if (key == key_info[i].key_default)
joy |= key_info[i].action;
}
case KSYM_Page_Up:
if (game_status == GAME_MODE_LEVELS)
- HandleChooseLevel(0,0, 0,-SCR_FIELDY, MB_MENU_MARK);
+ HandleChooseLevel(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SETUP)
- HandleSetupScreen(0,0, 0,-SCR_FIELDY, MB_MENU_MARK);
+ HandleSetupScreen(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK);
break;
case KSYM_Page_Down:
if (game_status == GAME_MODE_LEVELS)
- HandleChooseLevel(0,0, 0,SCR_FIELDY, MB_MENU_MARK);
+ HandleChooseLevel(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SETUP)
- HandleSetupScreen(0,0, 0,SCR_FIELDY, MB_MENU_MARK);
+ HandleSetupScreen(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK);
break;
#ifdef DEBUG
break;
case GAME_MODE_INFO:
- HandleHelpScreen(MB_RELEASED);
+ HandleInfoScreen(MB_RELEASED);
break;
case GAME_MODE_SCORES:
break;
case KSYM_Page_Up:
- HandleHallOfFame(0,0, 0,-SCR_FIELDY, MB_MENU_MARK);
+ HandleHallOfFame(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK);
break;
case KSYM_Page_Down:
- HandleHallOfFame(0,0, 0,SCR_FIELDY, MB_MENU_MARK);
+ HandleHallOfFame(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK);
break;
default:
case KSYM_Q:
case KSYM_q:
- local_player->dynamite = 1000;
- break;
+ {
+ int i;
+
+ for (i = 0; i < MAX_INVENTORY_SIZE; i++)
+ if (local_player->inventory_size < MAX_INVENTORY_SIZE)
+ local_player->inventory_element[local_player->inventory_size++] =
+ EL_DYNAMITE;
+ }
+ break;
#if 0
{
int i;
- for(i=0; i<MAX_PLAYERS; i++)
+ for (i = 0; i < MAX_PLAYERS; i++)
{
printf("Player %d:\n", i);
printf(" jx == %d, jy == %d\n",
int i;
int result = 0;
- for (i=0; i<MAX_PLAYERS; i++)
+ for (i = 0; i < MAX_PLAYERS; i++)
{
byte joy_action = 0;
break;
case GAME_MODE_INFO:
- HandleHelpScreen(!newbutton);
+ HandleInfoScreen(!newbutton);
break;
case GAME_MODE_EDITOR: