if (setup.direct_draw)
SetDrawtoField(DRAW_BACKBUFFER);
- for(xx=BX1; xx<=BX2; xx++)
- for(yy=BY1; yy<=BY2; yy++)
+ for (xx = BX1; xx <= BX2; xx++)
+ for (yy = BY1; yy <= BY2; yy++)
if (xx >= x1 && xx <= x2 && yy >= y1 && yy <= y2)
DrawScreenField(xx, yy);
DrawAllPlayers();
if (redraw_mask & REDRAW_TILES)
{
- for(x=0; x<SCR_FIELDX; x++)
- for(y=0; y<SCR_FIELDY; y++)
+ for (x = 0; x < SCR_FIELDX; x++)
+ for (y =0 ; y < SCR_FIELDY; y++)
if (redraw[redraw_x1 + x][redraw_y1 + y])
BlitBitmap(buffer, window,
FX + x * TILEX, FX + y * TILEY, TILEX, TILEY,
FlushDisplay();
- for(x=0; x<MAX_BUF_XSIZE; x++)
- for(y=0; y<MAX_BUF_YSIZE; y++)
+ for (x = 0; x < MAX_BUF_XSIZE; x++)
+ for (y = 0; y < MAX_BUF_YSIZE; y++)
redraw[x][y] = 0;
redraw_tiles = 0;
redraw_mask = REDRAW_NONE;
ClearRectangle(window, REAL_SX,REAL_SY,FULL_SXSIZE,FULL_SYSIZE);
FlushDisplay();
- for(i=0;i<2*FULL_SYSIZE;i++)
+ for (i = 0; i < 2 * FULL_SYSIZE; i++)
{
- for(y=0;y<FULL_SYSIZE;y++)
+ for (y = 0; y < FULL_SYSIZE; y++)
{
BlitBitmap(backbuffer, window,
REAL_SX,REAL_SY+i, FULL_SXSIZE,1, REAL_SX,REAL_SY+i);
#endif
#if 0
- for(i=1;i<FULL_SYSIZE;i+=2)
+ for (i = 1; i < FULL_SYSIZE; i+=2)
BlitBitmap(backbuffer, window,
REAL_SX,REAL_SY+i, FULL_SXSIZE,1, REAL_SX,REAL_SY+i);
FlushDisplay();
BorderElement = EL_EMPTY;
- for(y=0; y<lev_fieldy && BorderElement == EL_EMPTY; y++)
+ for (y = 0; y < lev_fieldy && BorderElement == EL_EMPTY; y++)
{
- for(x=0; x<lev_fieldx; x++)
+ for (x = 0; x < lev_fieldx; x++)
{
if (!IS_INDESTRUCTIBLE(Feld[x][y]))
BorderElement = EL_STEELWALL;
DrawLevelFieldCrumbledSand(x, y);
}
+static int getPlayerAction(struct PlayerInfo *player, int move_dir)
+{
+ int action = (player->is_pushing ? ACTION_PUSHING :
+ player->is_digging ? ACTION_DIGGING :
+ player->is_collecting ? ACTION_COLLECTING :
+ player->is_moving ? ACTION_MOVING :
+ player->is_snapping ? ACTION_SNAPPING :
+ player->is_sleeping ? ACTION_SLEEPING :
+ player->is_bored ? ACTION_BORING :
+ player->is_waiting ? ACTION_WAITING : ACTION_DEFAULT);
+
+ if (player->is_sleeping)
+ {
+ if (player->num_special_action_sleeping > 0)
+ {
+ if (player->anim_delay_counter == 0 && player->post_delay_counter == 0)
+ {
+ int last_special_action = player->special_action_sleeping;
+ int num_special_action = player->num_special_action_sleeping;
+ int special_action =
+ (last_special_action == ACTION_DEFAULT ? ACTION_SLEEPING_1 :
+ last_special_action == ACTION_SLEEPING ? ACTION_SLEEPING :
+ last_special_action < ACTION_SLEEPING_1 + num_special_action - 1 ?
+ last_special_action + 1 : ACTION_SLEEPING);
+ int special_graphic =
+ el_act_dir2img(player->element_nr, special_action, move_dir);
+
+ player->anim_delay_counter =
+ graphic_info[special_graphic].anim_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].anim_delay_random);
+ player->post_delay_counter =
+ graphic_info[special_graphic].post_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].post_delay_random);
+
+ player->special_action_sleeping = special_action;
+ }
+
+ if (player->anim_delay_counter > 0)
+ {
+ action = player->special_action_sleeping;
+ player->anim_delay_counter--;
+ }
+ else if (player->post_delay_counter > 0)
+ {
+ player->post_delay_counter--;
+ }
+ }
+ }
+ else if (player->is_bored)
+ {
+ if (player->num_special_action_bored > 0)
+ {
+ if (player->anim_delay_counter == 0 && player->post_delay_counter == 0)
+ {
+ int special_action =
+ ACTION_BORING_1 + SimpleRND(player->num_special_action_bored);
+ int special_graphic =
+ el_act_dir2img(player->element_nr, special_action, move_dir);
+
+ player->anim_delay_counter =
+ graphic_info[special_graphic].anim_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].anim_delay_random);
+ player->post_delay_counter =
+ graphic_info[special_graphic].post_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].post_delay_random);
+
+ player->special_action_bored = special_action;
+ }
+
+ if (player->anim_delay_counter > 0)
+ {
+ action = player->special_action_bored;
+ player->anim_delay_counter--;
+ }
+ else if (player->post_delay_counter > 0)
+ {
+ player->post_delay_counter--;
+ }
+ }
+ }
+
+ return action;
+}
+
static int getPlayerGraphic(struct PlayerInfo *player, int move_dir)
{
if (player->use_murphy_graphic)
{
int i;
- for(i=0; i<MAX_PLAYERS; i++)
+ for (i = 0; i < MAX_PLAYERS; i++)
if (stored_player[i].active)
DrawPlayer(&stored_player[i]);
}
if (element == EL_EXPLOSION)
return;
+#if 1
+
+ action = getPlayerAction(player, move_dir);
+
+#else
+
action = (player->is_pushing ? ACTION_PUSHING :
player->is_digging ? ACTION_DIGGING :
player->is_collecting ? ACTION_COLLECTING :
player->is_bored ? ACTION_BORING :
player->is_waiting ? ACTION_WAITING : ACTION_DEFAULT);
- if (player->is_bored || player->is_sleeping)
+ if (player->is_bored && player->num_special_action_bored > 0)
{
- /* ... */
+ if (player->anim_delay_counter == 0 && player->post_delay_counter == 0)
+ {
+ int graphic_waiting;
+
+ action = ACTION_BORING_1 + SimpleRND(player->num_special_action_bored);
+ special_graphic = el_act_dir2img(EL_SP_MURPHY, action, move_dir);
+
+ player->anim_delay_counter =
+ graphic_info[special_graphic].anim_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].anim_delay_random);
+ player->post_delay_counter =
+ graphic_info[special_graphic].post_delay_fixed +
+ SimpleRND(graphic_info[special_graphic].post_delay_random);
+ player->special_action_bored = action;
+ }
+
+ if (player->anim_delay_counter > 0)
+ {
+ action = player->special_action_bored;
+ player->anim_delay_counter--;
+ }
+
+ if (player->post_delay_counter > 0)
+ {
+ player->post_delay_counter--;
+ }
}
+#endif
#if 0
printf("::: '%s'\n", element_action_info[action].suffix);
getGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y);
- for(i=0; i<4; i++)
+ for (i = 0; i < 4; i++)
{
int xx = x + xy[i][0];
int yy = y + xy[i][1];
getGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y);
#endif
- for(i=0; i<4; i++)
+ for (i = 0; i < 4; i++)
{
int xx = x + xy[i][0];
int yy = y + xy[i][1];
};
int i;
- for(i=0; i<4; i++)
+ for (i = 0; i < 4; i++)
{
int xx = x + xy[i][0];
int yy = y + xy[i][1];
int ystep = (ystart < yend || xstep == 0 ? 1 : 0);
int x, y;
- for (x=xstart, y=ystart; x <= xend && y <= yend; x += xstep, y += ystep)
+ for (x = xstart, y = ystart; x <= xend && y <= yend; x += xstep, y += ystep)
{
int xsize = (action == ACTION_CLOSING ? xend - (x - xstart) : x) + 2;
int ysize = (action == ACTION_CLOSING ? yend - (y - ystart) : y) + 2;
SetDrawtoField(DRAW_BACKBUFFER);
- for (yy=0; yy < ysize; yy++) for (xx=0; xx < xsize; xx++)
+ for (yy = 0; yy < ysize; yy++) for (xx = 0; xx < xsize; xx++)
DrawEnvelopeBackground(envelope_nr, sx,sy, xx,yy, xsize, ysize, font_nr);
DrawTextToTextArea(SX + sx + font_width, SY + sy + font_height,
SetDrawBackgroundMask(REDRAW_NONE);
ClearWindow();
- for(x=BX1; x<=BX2; x++)
- for(y=BY1; y<=BY2; y++)
+ for (x = BX1; x <= BX2; x++)
+ for (y = BY1; y <= BY2; y++)
DrawScreenField(x, y);
redraw_mask |= REDRAW_FIELD;
{
int x,y;
- for(x=0; x<size_x; x++)
- for(y=0; y<size_y; y++)
+ for (x = 0; x < size_x; x++)
+ for (y = 0; y < size_y; y++)
DrawMiniElementOrWall(x, y, scroll_x, scroll_y);
redraw_mask |= REDRAW_FIELD;
xpos += MICRO_TILEX;
ypos += MICRO_TILEY;
- for(x=-1; x<=STD_LEV_FIELDX; x++)
+ for (x = -1; x <= STD_LEV_FIELDX; x++)
{
- for(y=-1; y<=STD_LEV_FIELDY; y++)
+ for (y = -1; y <= STD_LEV_FIELDY; y++)
{
int lx = from_x + x, ly = from_y + y;
game_status = GAME_MODE_PSEUDO_DOOR;
/* write text for request */
- for(ty=0; ty < MAX_REQUEST_LINES; ty++)
+ for (ty = 0; ty < MAX_REQUEST_LINES; ty++)
{
char text_line[MAX_REQUEST_LINE_LEN + 1];
int tx, tl, tc;
if (!*text)
break;
- for(tl=0,tx=0; tx < MAX_REQUEST_LINE_LEN; tl++,tx++)
+ for (tl = 0, tx = 0; tx < MAX_REQUEST_LINE_LEN; tl++, tx++)
{
tc = *(text + tx);
if (!tc || tc == ' ')
SetMouseCursor(CURSOR_DEFAULT);
#endif
- while(result < 0)
+ while (result < 0)
{
if (PendingEvent())
{
PlaySoundStereo(SND_DOOR_CLOSING, SOUND_MIDDLE);
}
- for(x = start; x <= end && !(door_1_done && door_2_done); x += stepsize)
+ for (x = start; x <= end && !(door_1_done && door_2_done); x += stepsize)
{
Bitmap *bitmap = graphic_info[IMG_GLOBAL_DOOR].bitmap;
GC gc = bitmap->stored_clip_gc;
{
int i;
- for (i=0; i<NUM_TOOL_BUTTONS; i++)
+ for (i = 0; i < NUM_TOOL_BUTTONS; i++)
{
Bitmap *gd_bitmap = graphic_info[IMG_GLOBAL_DOOR].bitmap;
Bitmap *deco_bitmap = None;
{
int i;
- for (i=0; i<NUM_TOOL_BUTTONS; i++)
+ for (i = 0; i < NUM_TOOL_BUTTONS; i++)
FreeGadget(tool_gadget[i]);
}
{
int i;
- for (i=0; i<NUM_TOOL_BUTTONS; i++)
+ for (i = 0; i < NUM_TOOL_BUTTONS; i++)
UnmapGadget(tool_gadget[i]);
}