projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added using callback function when sound channel is finished
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index 9a82f34625db6adc01bf345b869bf18514d1ffe8..a4dad466928ffb62ef7de2475a7fd2e4f9cccdbd 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-1517,6
+1517,11
@@
void SetRandomAnimationValue(int x, int y)
gfx.anim_random_frame = GfxRandom[x][y];
}
gfx.anim_random_frame = GfxRandom[x][y];
}
+void SetAnimationFirstLevel(int first_level)
+{
+ gfx.anim_first_level = first_level;
+}
+
int getGraphicAnimationFrame(int graphic, int sync_frame)
{
// animation synchronized with global frame counter, not move position
int getGraphicAnimationFrame(int graphic, int sync_frame)
{
// animation synchronized with global frame counter, not move position
@@
-3071,7
+3076,11
@@
void DrawEnvelopeRequestToScreen(int drawing_target)
game.request_active &&
drawing_target == DRAW_TO_SCREEN)
{
game.request_active &&
drawing_target == DRAW_TO_SCREEN)
{
- if (graphic_info[IMG_BACKGROUND_REQUEST].draw_masked)
+ struct GraphicInfo *g = &graphic_info[IMG_BACKGROUND_REQUEST];
+
+ SetBitmapAlphaNextBlit(request.bitmap, g->alpha);
+
+ if (g->draw_masked)
BlitToScreenMasked(request.bitmap, 0, 0, request.xsize, request.ysize,
request.sx, request.sy);
else
BlitToScreenMasked(request.bitmap, 0, 0, request.xsize, request.ysize,
request.sx, request.sy);
else
@@
-4604,11
+4613,12
@@
static int RequestHandleEvents(unsigned int req_state, int draw_buffer_game)
break;
default:
break;
default:
- // only check clickable animations if no request gadget clicked
- HandleGlobalAnimClicks(mx, my, button_status, FALSE);
break;
}
break;
}
+ // only needed to handle clickable pointer animations here
+ HandleGlobalAnimClicks(mx, my, button_status, FALSE);
+
break;
}
break;
}
@@
-8539,14
+8549,14
@@
unsigned int InitRND(int seed)
return InitEngineRandom_RND(seed);
}
return InitEngineRandom_RND(seed);
}
-static struct Mapping_EM_to_RND_object object_mapping[GAME_TILE_MAX];
-static struct Mapping_EM_to_RND_player player_mapping[MAX_PLAYERS][PLY_MAX];
+static struct Mapping_EM_to_RND_object
em_
object_mapping[GAME_TILE_MAX];
+static struct Mapping_EM_to_RND_player
em_
player_mapping[MAX_PLAYERS][PLY_MAX];
static int get_effective_element_EM(int tile, int frame_em)
{
static int get_effective_element_EM(int tile, int frame_em)
{
- int element = object_mapping[tile].element_rnd;
- int action = object_mapping[tile].action;
- boolean is_backside = object_mapping[tile].is_backside;
+ int element =
em_
object_mapping[tile].element_rnd;
+ int action =
em_
object_mapping[tile].action;
+ boolean is_backside =
em_
object_mapping[tile].is_backside;
boolean action_removing = (action == ACTION_DIGGING ||
action == ACTION_SNAPPING ||
action == ACTION_COLLECTING);
boolean action_removing = (action == ACTION_DIGGING ||
action == ACTION_SNAPPING ||
action == ACTION_COLLECTING);
@@
-8694,8
+8704,8
@@
void ResetGfxAnimation_EM(int x, int y, int tile)
void SetGfxAnimation_EM(struct GraphicInfo_EM *g_em,
int tile, int frame_em, int x, int y)
{
void SetGfxAnimation_EM(struct GraphicInfo_EM *g_em,
int tile, int frame_em, int x, int y)
{
- int action = object_mapping[tile].action;
- int direction = object_mapping[tile].direction;
+ int action =
em_
object_mapping[tile].action;
+ int direction =
em_
object_mapping[tile].direction;
int effective_element = get_effective_element_EM(tile, frame_em);
int graphic = (direction == MV_NONE ?
el_act2img(effective_element, action) :
int effective_element = get_effective_element_EM(tile, frame_em);
int graphic = (direction == MV_NONE ?
el_act2img(effective_element, action) :
@@
-8734,11
+8744,11
@@
void SetGfxAnimation_EM(struct GraphicInfo_EM *g_em,
}
else if (action_moving)
{
}
else if (action_moving)
{
- boolean is_backside = object_mapping[tile].is_backside;
+ boolean is_backside =
em_
object_mapping[tile].is_backside;
if (is_backside)
{
if (is_backside)
{
- int direction = object_mapping[tile].direction;
+ int direction =
em_
object_mapping[tile].direction;
int move_dir = (action_falling ? MV_DOWN : direction);
GfxFrame[x][y]++;
int move_dir = (action_falling ? MV_DOWN : direction);
GfxFrame[x][y]++;
@@
-8793,9
+8803,9
@@
void SetGfxAnimation_EM(struct GraphicInfo_EM *g_em,
void getGraphicSourceObjectExt_EM(struct GraphicInfo_EM *g_em,
int tile, int frame_em, int x, int y)
{
void getGraphicSourceObjectExt_EM(struct GraphicInfo_EM *g_em,
int tile, int frame_em, int x, int y)
{
- int action = object_mapping[tile].action;
- int direction = object_mapping[tile].direction;
- boolean is_backside = object_mapping[tile].is_backside;
+ int action =
em_
object_mapping[tile].action;
+ int direction =
em_
object_mapping[tile].direction;
+ boolean is_backside =
em_
object_mapping[tile].is_backside;
int effective_element = get_effective_element_EM(tile, frame_em);
int effective_action = action;
int graphic = (direction == MV_NONE ?
int effective_element = get_effective_element_EM(tile, frame_em);
int effective_action = action;
int graphic = (direction == MV_NONE ?
@@
-8859,9
+8869,9
@@
void getGraphicSourceObjectExt_EM(struct GraphicInfo_EM *g_em,
void getGraphicSourcePlayerExt_EM(struct GraphicInfo_EM *g_em,
int player_nr, int anim, int frame_em)
{
void getGraphicSourcePlayerExt_EM(struct GraphicInfo_EM *g_em,
int player_nr, int anim, int frame_em)
{
- int element = player_mapping[player_nr][anim].element_rnd;
- int action = player_mapping[player_nr][anim].action;
- int direction = player_mapping[player_nr][anim].direction;
+ int element =
em_
player_mapping[player_nr][anim].element_rnd;
+ int action =
em_
player_mapping[player_nr][anim].action;
+ int direction =
em_
player_mapping[player_nr][anim].direction;
int graphic = (direction == MV_NONE ?
el_act2img(element, action) :
el_act_dir2img(element, action, direction));
int graphic = (direction == MV_NONE ?
el_act2img(element, action) :
el_act_dir2img(element, action, direction));
@@
-8891,10
+8901,10
@@
void InitGraphicInfo_EM(void)
// always start with reliable default values
for (i = 0; i < GAME_TILE_MAX; i++)
{
// always start with reliable default values
for (i = 0; i < GAME_TILE_MAX; i++)
{
- object_mapping[i].element_rnd = EL_UNKNOWN;
- object_mapping[i].is_backside = FALSE;
- object_mapping[i].action = ACTION_DEFAULT;
- object_mapping[i].direction = MV_NONE;
+
em_
object_mapping[i].element_rnd = EL_UNKNOWN;
+
em_
object_mapping[i].is_backside = FALSE;
+
em_
object_mapping[i].action = ACTION_DEFAULT;
+
em_
object_mapping[i].direction = MV_NONE;
}
// always start with reliable default values
}
// always start with reliable default values
@@
-8902,9
+8912,9
@@
void InitGraphicInfo_EM(void)
{
for (i = 0; i < PLY_MAX; i++)
{
{
for (i = 0; i < PLY_MAX; i++)
{
- player_mapping[p][i].element_rnd = EL_UNKNOWN;
- player_mapping[p][i].action = ACTION_DEFAULT;
- player_mapping[p][i].direction = MV_NONE;
+
em_
player_mapping[p][i].element_rnd = EL_UNKNOWN;
+
em_
player_mapping[p][i].action = ACTION_DEFAULT;
+
em_
player_mapping[p][i].direction = MV_NONE;
}
}
}
}
@@
-8912,14
+8922,14
@@
void InitGraphicInfo_EM(void)
{
int e = em_object_mapping_list[i].element_em;
{
int e = em_object_mapping_list[i].element_em;
- object_mapping[e].element_rnd = em_object_mapping_list[i].element_rnd;
- object_mapping[e].is_backside = em_object_mapping_list[i].is_backside;
+
em_
object_mapping[e].element_rnd = em_object_mapping_list[i].element_rnd;
+
em_
object_mapping[e].is_backside = em_object_mapping_list[i].is_backside;
if (em_object_mapping_list[i].action != -1)
if (em_object_mapping_list[i].action != -1)
- object_mapping[e].action = em_object_mapping_list[i].action;
+
em_
object_mapping[e].action = em_object_mapping_list[i].action;
if (em_object_mapping_list[i].direction != -1)
if (em_object_mapping_list[i].direction != -1)
- object_mapping[e].direction =
+
em_
object_mapping[e].direction =
MV_DIR_FROM_BIT(em_object_mapping_list[i].direction);
}
MV_DIR_FROM_BIT(em_object_mapping_list[i].direction);
}
@@
-8928,22
+8938,22
@@
void InitGraphicInfo_EM(void)
int a = em_player_mapping_list[i].action_em;
int p = em_player_mapping_list[i].player_nr;
int a = em_player_mapping_list[i].action_em;
int p = em_player_mapping_list[i].player_nr;
- player_mapping[p][a].element_rnd = em_player_mapping_list[i].element_rnd;
+
em_
player_mapping[p][a].element_rnd = em_player_mapping_list[i].element_rnd;
if (em_player_mapping_list[i].action != -1)
if (em_player_mapping_list[i].action != -1)
- player_mapping[p][a].action = em_player_mapping_list[i].action;
+
em_
player_mapping[p][a].action = em_player_mapping_list[i].action;
if (em_player_mapping_list[i].direction != -1)
if (em_player_mapping_list[i].direction != -1)
- player_mapping[p][a].direction =
+
em_
player_mapping[p][a].direction =
MV_DIR_FROM_BIT(em_player_mapping_list[i].direction);
}
for (i = 0; i < GAME_TILE_MAX; i++)
{
MV_DIR_FROM_BIT(em_player_mapping_list[i].direction);
}
for (i = 0; i < GAME_TILE_MAX; i++)
{
- int element = object_mapping[i].element_rnd;
- int action = object_mapping[i].action;
- int direction = object_mapping[i].direction;
- boolean is_backside = object_mapping[i].is_backside;
+ int element =
em_
object_mapping[i].element_rnd;
+ int action =
em_
object_mapping[i].action;
+ int direction =
em_
object_mapping[i].direction;
+ boolean is_backside =
em_
object_mapping[i].is_backside;
boolean action_exploding = ((action == ACTION_EXPLODING ||
action == ACTION_SMASHED_BY_ROCK ||
action == ACTION_SMASHED_BY_SPRING) &&
boolean action_exploding = ((action == ACTION_EXPLODING ||
action == ACTION_SMASHED_BY_ROCK ||
action == ACTION_SMASHED_BY_SPRING) &&
@@
-9215,10
+9225,10
@@
void InitGraphicInfo_EM(void)
{
for (j = 0; j < 8; j++)
{
{
for (j = 0; j < 8; j++)
{
- int element = object_mapping[i].element_rnd;
- int action = object_mapping[i].action;
- int direction = object_mapping[i].direction;
- boolean is_backside = object_mapping[i].is_backside;
+ int element =
em_
object_mapping[i].element_rnd;
+ int action =
em_
object_mapping[i].action;
+ int direction =
em_
object_mapping[i].direction;
+ boolean is_backside =
em_
object_mapping[i].is_backside;
int graphic_action = el_act_dir2img(element, action, direction);
int graphic_default = el_act_dir2img(element, ACTION_DEFAULT, direction);
int graphic_action = el_act_dir2img(element, action, direction);
int graphic_default = el_act_dir2img(element, ACTION_DEFAULT, direction);
@@
-9258,9
+9268,9
@@
void InitGraphicInfo_EM(void)
{
for (i = 0; i < PLY_MAX; i++)
{
{
for (i = 0; i < PLY_MAX; i++)
{
- int element = player_mapping[p][i].element_rnd;
- int action = player_mapping[p][i].action;
- int direction = player_mapping[p][i].direction;
+ int element =
em_
player_mapping[p][i].element_rnd;
+ int action =
em_
player_mapping[p][i].action;
+ int direction =
em_
player_mapping[p][i].direction;
for (j = 0; j < 8; j++)
{
for (j = 0; j < 8; j++)
{