X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=95256480249e9e672862aed626d16d9629e8358f;hb=91601455766f1749465cd064b54b8158313c0d51;hp=d38858203b8fb2a5e527bedd43e22a28c9cbb18b;hpb=6460301d715f72f7247b3070a5d98c0b56cfdb67;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index d3885820..95256480 100644 --- a/src/files.c +++ b/src/files.c @@ -7623,9 +7623,10 @@ static int getTapePosSize(struct TapeInfo *tape) { 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; - 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 @@ -7764,15 +7765,7 @@ static int LoadTape_BODY(File *file, int chunk_size, struct TapeInfo *tape) 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++) { @@ -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) @@ -8133,19 +8133,20 @@ static void SaveTape_BODY(FILE *file, struct TapeInfo *tape) 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]); } + 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); } }