projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added support for tapes with both keyboard/joystick and mouse actions
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index d38858203b8fb2a5e527bedd43e22a28c9cbb18b..95256480249e9e672862aed626d16d9629e8358f 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-7623,9
+7623,10
@@
static int getTapePosSize(struct TapeInfo *tape)
{
int tape_pos_size = 0;
{
int tape_pos_size = 0;
- if (tape->event_mask
==
GAME_EVENTS_KEYS)
+ if (tape->event_mask
&
GAME_EVENTS_KEYS)
tape_pos_size += tape->num_participating_players;
tape_pos_size += tape->num_participating_players;
- else
+
+ if (tape->event_mask & GAME_EVENTS_MOUSE)
tape_pos_size += 3; // x and y position and mouse button mask
tape_pos_size += 1; // tape action delay value
tape_pos_size += 3; // x and y position and mouse button mask
tape_pos_size += 1; // tape action delay value
@@
-7764,15
+7765,7
@@
static int LoadTape_BODY(File *file, int chunk_size, struct TapeInfo *tape)
break;
}
break;
}
- if (tape->event_mask == GAME_EVENTS_MOUSE)
- {
- tape->pos[i].action[TAPE_ACTION_LX] = getFile8Bit(file);
- tape->pos[i].action[TAPE_ACTION_LY] = getFile8Bit(file);
- tape->pos[i].action[TAPE_ACTION_BUTTON] = getFile8Bit(file);
-
- tape->pos[i].action[TAPE_ACTION_UNUSED] = 0;
- }
- else
+ if (tape->event_mask & GAME_EVENTS_KEYS)
{
for (j = 0; j < MAX_PLAYERS; j++)
{
{
for (j = 0; j < MAX_PLAYERS; j++)
{
@@
-7783,6
+7776,13
@@
static int LoadTape_BODY(File *file, int chunk_size, struct TapeInfo *tape)
}
}
}
}
+ if (tape->event_mask & GAME_EVENTS_MOUSE)
+ {
+ tape->pos[i].action[TAPE_ACTION_LX] = getFile8Bit(file);
+ tape->pos[i].action[TAPE_ACTION_LY] = getFile8Bit(file);
+ tape->pos[i].action[TAPE_ACTION_BUTTON] = getFile8Bit(file);
+ }
+
tape->pos[i].delay = getFile8Bit(file);
if (tape->file_version == FILE_VERSION_1_0)
tape->pos[i].delay = getFile8Bit(file);
if (tape->file_version == FILE_VERSION_1_0)
@@
-8133,19
+8133,20
@@
static void SaveTape_BODY(FILE *file, struct TapeInfo *tape)
for (i = 0; i < tape->length; i++)
{
for (i = 0; i < tape->length; i++)
{
- if (tape->event_mask == GAME_EVENTS_MOUSE)
- {
- putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_LX]);
- putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_LY]);
- putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_BUTTON]);
- }
- else
+ if (tape->event_mask & GAME_EVENTS_KEYS)
{
for (j = 0; j < MAX_PLAYERS; j++)
if (tape->player_participates[j])
putFile8Bit(file, tape->pos[i].action[j]);
}
{
for (j = 0; j < MAX_PLAYERS; j++)
if (tape->player_participates[j])
putFile8Bit(file, tape->pos[i].action[j]);
}
+ if (tape->event_mask & GAME_EVENTS_MOUSE)
+ {
+ putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_LX]);
+ putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_LY]);
+ putFile8Bit(file, tape->pos[i].action[TAPE_ACTION_BUTTON]);
+ }
+
putFile8Bit(file, tape->pos[i].delay);
}
}
putFile8Bit(file, tape->pos[i].delay);
}
}