projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed name of game element in EM engine
[rocksndiamonds.git]
/
src
/
game_em
/
reademc.c
diff --git
a/src/game_em/reademc.c
b/src/game_em/reademc.c
index 0ee0e17b0dfdd26bcf722233195df85877e87be0..40b0a609dd92d20b077d75d68eaaeff266bf9cc8 100644
(file)
--- a/
src/game_em/reademc.c
+++ b/
src/game_em/reademc.c
@@
-41,7
+41,6
@@
*/
#define GET_BE16(x) ((&x)[0] << 8 | (&x)[1])
*/
#define GET_BE16(x) ((&x)[0] << 8 | (&x)[1])
-#define PUT_BE16(x, y) {(&x)[0] = (y) >> 8; (&x)[1] = (y) & 0xff;}
static const short map_emc[256] =
{
static const short map_emc[256] =
{
@@
-98,7
+97,7
@@
static const short map_emc[256] =
Xfake_grass, Xlenses, Xmagnify, Xfake_blank,
Xfake_grass, Xswitch, Xswitch, Xblank,
Xdecor_8, Xdecor_9, Xdecor_10, Xdecor_5,
Xfake_grass, Xlenses, Xmagnify, Xfake_blank,
Xfake_grass, Xswitch, Xswitch, Xblank,
Xdecor_8, Xdecor_9, Xdecor_10, Xdecor_5,
- Xalpha_comma, Xalpha_
quote
, Xalpha_minus, Xdynamite,
+ Xalpha_comma, Xalpha_
apost
, Xalpha_minus, Xdynamite,
Xsteel_3, Xdecor_6, Xdecor_7, Xsteel_2,
Xroundwall_2, Xdecor_2, Xdecor_4, Xdecor_3,
Xsteel_3, Xdecor_6, Xdecor_7, Xsteel_2,
Xroundwall_2, Xdecor_2, Xdecor_4, Xdecor_3,
@@
-329,11
+328,8
@@
void convert_em_level(unsigned char *src, int file_version)
/* common to all emc caves */
/* common to all emc caves */
- cav.time_seconds = GET_BE16(src[2110]);
- if (cav.time_seconds > 9999)
- cav.time_seconds = 9999;
-
- cav.required_initial = src[2095];
+ cav.time_seconds = MIN(GET_BE16(src[2110]), 9999);
+ cav.gems_needed = src[2095];
/* scores */
/* scores */
@@
-354,62
+350,57
@@
void convert_em_level(unsigned char *src, int file_version)
/* times */
/* times */
- cav.android_move_time = GET_BE16(src[2164]);
- cav.android_clone_time = GET_BE16(src[2166]);
- cav.ball_time = GET_BE16(src[2160]);
-
- cav.lenses_time = GET_BE16(src[2154]);
- cav.magnify_time = GET_BE16(src[2156]);
- cav.wheel_time = GET_BE16(src[2104]);
+ cav.android_move_time = MIN(GET_BE16(src[2164]), 9999);
+ cav.android_clone_time = MIN(GET_BE16(src[2166]), 9999);
+ cav.ball_time = MIN(GET_BE16(src[2160]), 9999);
- temp = GET_BE16(src[2100]) * 28;
- if (temp > 9999)
- temp = 9999;
- cav.amoeba_time = temp;
+ cav.lenses_time = MIN(GET_BE16(src[2154]), 9999);
+ cav.magnify_time = MIN(GET_BE16(src[2156]), 9999);
+ cav.wheel_time = MIN(GET_BE16(src[2104]), 9999);
- cav.wonderwall_time_initial = GET_BE16(src[2102]);
+ cav.amoeba_time = MIN(GET_BE16(src[2100]) * 28, 9999);
+ cav.wonderwall_time = MIN(GET_BE16(src[2102]), 9999);
- cav.wind_cnt
_initial
= src[2149] & 15 ? cav.wind_time : 0;
+ cav.wind_cnt = src[2149] & 15 ? cav.wind_time : 0;
temp = src[2149];
temp = src[2149];
- cav.wind_direction_initial = (temp & 8 ? 0 :
- temp & 1 ? 1 :
- temp & 2 ? 2 :
- temp & 4 ? 3 : 0);
+ cav.wind_direction = (temp & 8 ? 0 :
+ temp & 1 ? 1 :
+ temp & 2 ? 2 :
+ temp & 4 ? 3 : 0);
+
/* global flags */
/* global flags */
- cav.ball_random
= src[2162] & 1 ? 1 : 0;
- cav.ball_state
_initial
= src[2162] & 128 ? 1 : 0;
+ cav.ball_random = src[2162] & 1 ? 1 : 0;
+ cav.ball_state
= src[2162] & 128 ? 1 : 0;
for (temp = 1; temp < 2047; temp++)
{
switch (src[temp])
{
case 36: /* wonderwall */
for (temp = 1; temp < 2047; temp++)
{
switch (src[temp])
{
case 36: /* wonderwall */
- cav.wonderwall_state
_initial
= 1;
- cav.wonderwall_time
_initial
= 9999;
+ cav.wonderwall_state = 1;
+ cav.wonderwall_time = 9999;
break;
case 40: /* wheel */
break;
case 40: /* wheel */
- cav.wheel_x
_initial
= temp & 63;
- cav.wheel_y
_initial
= temp >> 6;
- cav.wheel_cnt
_initial
= cav.wheel_time;
+ cav.wheel_x = temp & 63;
+ cav.wheel_y = temp >> 6;
+ cav.wheel_cnt = cav.wheel_time;
break;
case 163: /* fake blank */
break;
case 163: /* fake blank */
- cav.lenses_cnt
_initial
= 9999;
+ cav.lenses_cnt = 9999;
break;
case 164: /* fake grass */
break;
case 164: /* fake grass */
- cav.magnify_cnt
_initial
= 9999;
+ cav.magnify_cnt = 9999;
break;
}
}
/* android */
break;
}
}
/* android */
- temp = GET_BE16(src[2168]);
-
- init_android_clone_table(temp);
+ init_android_clone_table(GET_BE16(src[2168]));
/* eaters */
/* eaters */
@@
-456,18
+447,18
@@
void convert_em_level(unsigned char *src, int file_version)
/* first fill the complete playfield with the default border element */
for (y = 0; y < CAVE_HEIGHT; y++)
for (x = 0; x < CAVE_WIDTH; x++)
/* first fill the complete playfield with the default border element */
for (y = 0; y < CAVE_HEIGHT; y++)
for (x = 0; x < CAVE_WIDTH; x++)
- cav.cave
_raw
[x][y] = Zborder;
+ cav.cave[x][y] = Zborder;
/* then copy the real level contents from level file into the playfield */
temp = 0;
for (y = 0; y < cav.height; y++)
for (x = 0; x < cav.width; x++)
/* then copy the real level contents from level file into the playfield */
temp = 0;
for (y = 0; y < cav.height; y++)
for (x = 0; x < cav.width; x++)
- cav.cave
_raw
[x][y] = map_emc[src[temp++]];
+ cav.cave[x][y] = map_emc[src[temp++]];
/* at last, set the two players at their positions in the playfield */
/* (native EM[C] levels always have exactly two players in a level) */
for (i = 0; i < 2; i++)
/* at last, set the two players at their positions in the playfield */
/* (native EM[C] levels always have exactly two players in a level) */
for (i = 0; i < 2; i++)
- cav.cave
_raw
[cav.player_x[i]][cav.player_y[i]] = Zplayer;
+ cav.cave[cav.player_x[i]][cav.player_y[i]] = Zplayer;
native_em_level.file_version = file_version;
}
native_em_level.file_version = file_version;
}
@@
-824,53
+815,21
@@
int cleanup_em_level(unsigned char *src, int length, char *filename)
src[2098] &= 7;
src[GET_BE16(src[2098])] = 128;
src[2098] &= 7;
src[GET_BE16(src[2098])] = 128;
- /* amoeba speed */
- if (GET_BE16(src[2100]) > 9999)
- PUT_BE16(src[2100], 9999);
-
- /* time wonderwall */
- if (GET_BE16(src[2102]) > 9999)
- PUT_BE16(src[2102], 9999);
-
- /* time */
- if (GET_BE16(src[2110]) > 9999)
- PUT_BE16(src[2110], 9999);
-
/* wind direction */
i = src[2149];
i &= 15;
i &= -i;
src[2149] = i;
/* wind direction */
i = src[2149];
i &= 15;
i &= -i;
src[2149] = i;
- /* time lenses */
- if (GET_BE16(src[2154]) > 9999)
- PUT_BE16(src[2154], 9999);
-
- /* time magnify */
- if (GET_BE16(src[2156]) > 9999)
- PUT_BE16(src[2156], 9999);
-
/* ball object */
src[2158] = 0;
src[2159] = map_v6[src[2159]];
/* ball object */
src[2158] = 0;
src[2159] = map_v6[src[2159]];
- /* ball pause */
- if (GET_BE16(src[2160]) > 9999)
- PUT_BE16(src[2160], 9999);
-
/* ball data */
src[2162] &= 129;
if (src[2162] & 1)
src[2163] = 0;
/* ball data */
src[2162] &= 129;
if (src[2162] & 1)
src[2163] = 0;
- /* android move pause */
- if (GET_BE16(src[2164]) > 9999)
- PUT_BE16(src[2164], 9999);
-
- /* android clone pause */
- if (GET_BE16(src[2166]) > 9999)
- PUT_BE16(src[2166], 9999);
-
/* android data */
src[2168] &= 31;
/* android data */
src[2168] &= 31;