Hi Andrej! Hi Martin! Attached you find a patch for the guru meditation issue. I will incoporate the changes in a new version and publish an updated version of the game soon. You can safely close the bug now, I think.
Thank you for helping to make rockdodger a better game! RobertÂ
diff -r 6f4d2c79329b data/iff.configdata.rock Binary file data/iff.configdata.rock has changed diff -r 6f4d2c79329b helpers/make_iff_parameters.hs --- a/helpers/make_iff_parameters.hs Fri Jul 31 21:34:40 2015 +0200 +++ b/helpers/make_iff_parameters.hs Mon May 29 16:26:58 2017 +0200 @@ -28,7 +28,9 @@ chunkHot = Cons (chunkIdFromString "CMAP") $ Chunk $ B.pack $ concat hotCol chunkCool = Cons (chunkIdFromString "CMAP") $ Chunk $ B.pack $ concat coolCol chunkMDOT = Cons (chunkIdFromString "MDOT") $ Chunk $ B.concat $ BL.toChunks $ runPut f - where f = do putWord32be 0x1D543 + where f = do putWord32be 0x1f040 + putWord16be 0x0000 + formSpacedots = Cons (chunkIdFromString "SPDT") $ Form [ chunkSparkleNDOT ] formSparkles = Cons (chunkIdFromString "SPRK") $ Form [ chunkHot, chunkCool, chunkMDOT ] diff -r 6f4d2c79329b sparkles.c --- a/sparkles.c Fri Jul 31 21:34:40 2015 +0200 +++ b/sparkles.c Mon May 29 16:26:58 2017 +0200 @@ -33,6 +33,7 @@ static sparkle_t *sparkles; static sparkle_t *sparkles_end; uint32_t max_bang_dots = MAX_BANG_DOTS; +uint16_t mdot_flags = 0; sparkle_t *init_sparkles(uiff_ctx_t iff) { int32_t size; @@ -50,6 +51,11 @@ max_bang_dots = read32(iff.f); assert(printf("FORM.ROCK FORM.SPRK MDOT size = $%08X mdot = $%08X\n", size, max_bang_dots)); } + if(size >= 6) { + //Chunk found and it is long enough... + mdot_flags = read16(iff.f); + assert(printf("FORM.ROCK FORM.SPRK MDOT size = $%08X mdot_flags = $%04hX\n", size, mdot_flags)); + } uiff_rewind_group(&iff); index = 0; while((size = uiff_find_chunk_ctx(&iff, MakeID('C', 'M', 'A', 'P'))) > 0) { @@ -158,7 +164,13 @@ assert(hot_colours.clist != NULL); assert(cool_colours.clist != NULL); if(sparkles_end - sparkles >= max_bang_dots) { +#ifdef DEBUG guru_meditation(GM_FLAGS_GREEN, GM_SS_Intuition | GM_GE_ProcCreate | GURU_SEC_bangdots, &create_sparkle); +#else + if(mdot_flags != 0) { + guru_meditation(GM_FLAGS_GREEN, GM_SS_Intuition | GM_GE_ProcCreate | GURU_SEC_bangdots, &create_sparkle); + } +#endif } else { sparkles_end->x = x; sparkles_end->y = y;