projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20040314-1-src
[rocksndiamonds.git]
/
src
/
tape.c
diff --git
a/src/tape.c
b/src/tape.c
index 85fd29030b61446c3af148f5fd48df9681e2313b..642ce5c399d814bac1b65a967fe35aa09b306390 100644
(file)
--- a/
src/tape.c
+++ b/
src/tape.c
@@
-177,7
+177,7
@@
void DrawVideoDisplay(unsigned long state, unsigned long value)
VY + VIDEO_REC_LABEL_YPOS);
}
VY + VIDEO_REC_LABEL_YPOS);
}
- for
(i=0;i<10;
i++)
+ for
(i = 0; i < 10;
i++)
{
if (state & (1<<i))
{
{
if (state & (1<<i))
{
@@
-316,7
+316,12
@@
void TapeErase()
tape.game_version = GAME_VERSION_ACTUAL;
tape.engine_version = level.game_version;
tape.game_version = GAME_VERSION_ACTUAL;
tape.engine_version = level.game_version;
- for(i=0; i<MAX_PLAYERS; i++)
+#if 0
+ printf("::: tape.engine_version = level.game_version = %d \n",
+ level.game_version);
+#endif
+
+ for (i = 0; i < MAX_PLAYERS; i++)
tape.player_participates[i] = FALSE;
}
tape.player_participates[i] = FALSE;
}
@@
-415,8
+420,13
@@
void TapeRecordAction(byte action[MAX_PLAYERS])
{
int i;
{
int i;
+#if 1
+ if (!tape.recording) /* record action even when tape is paused! */
+ return;
+#else
if (!tape.recording || tape.pausing)
return;
if (!tape.recording || tape.pausing)
return;
+#endif
if (tape.counter >= MAX_TAPELEN - 1)
{
if (tape.counter >= MAX_TAPELEN - 1)
{
@@
-424,11
+434,15
@@
void TapeRecordAction(byte action[MAX_PLAYERS])
return;
}
return;
}
+#if 0
+ printf("::: %05d: recording action: %d\n", FrameCounter, action[0]);
+#endif
+
if (tape.pos[tape.counter].delay > 0) /* already stored action */
{
boolean changed_events = FALSE;
if (tape.pos[tape.counter].delay > 0) /* already stored action */
{
boolean changed_events = FALSE;
- for
(i=0; i<
MAX_PLAYERS; i++)
+ for
(i = 0; i <
MAX_PLAYERS; i++)
if (tape.pos[tape.counter].action[i] != action[i])
changed_events = TRUE;
if (tape.pos[tape.counter].action[i] != action[i])
changed_events = TRUE;
@@
-443,7
+457,12
@@
void TapeRecordAction(byte action[MAX_PLAYERS])
if (tape.pos[tape.counter].delay == 0) /* store new action */
{
if (tape.pos[tape.counter].delay == 0) /* store new action */
{
- for(i=0; i<MAX_PLAYERS; i++)
+
+#if 0
+ printf("::: %05d: new sequence\n", FrameCounter);
+#endif
+
+ for (i = 0; i < MAX_PLAYERS; i++)
tape.pos[tape.counter].action[i] = action[i];
tape.pos[tape.counter].delay++;
tape.pos[tape.counter].action[i] = action[i];
tape.pos[tape.counter].delay++;
@@
-481,7
+500,9
@@
void TapeTogglePause(boolean toggle_manual)
tape.quick_resume = FALSE;
TapeAppendRecording();
tape.quick_resume = FALSE;
TapeAppendRecording();
+#if 0
TapeTogglePause(toggle_manual);
TapeTogglePause(toggle_manual);
+#endif
}
}
}
}
}
}
@@
-566,7
+587,7
@@
byte *TapePlayAction()
return NULL;
}
return NULL;
}
- for
(i=0; i<
MAX_PLAYERS; i++)
+ for
(i = 0; i <
MAX_PLAYERS; i++)
action[i] = tape.pos[tape.counter].action[i];
tape.delay_played++;
action[i] = tape.pos[tape.counter].action[i];
tape.delay_played++;
@@
-576,11
+597,22
@@
byte *TapePlayAction()
tape.delay_played = 0;
}
tape.delay_played = 0;
}
+#if 0
+ printf("::: %05d: replaying action: %d\n", FrameCounter, action[0]);
+#endif
+
return action;
}
void TapeStop()
{
return action;
}
void TapeStop()
{
+#if 0
+ if (tape.recording)
+ printf("::: stopped recording: %d\n", FrameCounter);
+ else if (tape.playing)
+ printf("::: stopped playing: %d\n\n", FrameCounter);
+#endif
+
TapeStopRecording();
TapeStopPlaying();
TapeStopRecording();
TapeStopPlaying();
@@
-591,8
+623,10
@@
void TapeStop()
DrawVideoDisplay(VIDEO_STATE_TIME_ON, tape.length_seconds);
}
DrawVideoDisplay(VIDEO_STATE_TIME_ON, tape.length_seconds);
}
+#if 0
if (tape.auto_play)
AutoPlayTape(); /* continue automatically playing next tape */
if (tape.auto_play)
AutoPlayTape(); /* continue automatically playing next tape */
+#endif
}
unsigned int GetTapeLength()
}
unsigned int GetTapeLength()
@@
-603,7
+637,7
@@
unsigned int GetTapeLength()
if (TAPE_IS_EMPTY(tape))
return(0);
if (TAPE_IS_EMPTY(tape))
return(0);
- for
(i=0;i<tape.length;
i++)
+ for
(i = 0; i < tape.length;
i++)
tape_length += tape.pos[i].delay;
return(tape_length * GAME_FRAME_DELAY / 1000);
tape_length += tape.pos[i].delay;
return(tape_length * GAME_FRAME_DELAY / 1000);
@@
-629,8
+663,13
@@
static void TapeStopIndexSearch()
SetDrawDeactivationMask(REDRAW_NONE);
audio.sound_deactivated = FALSE;
SetDrawDeactivationMask(REDRAW_NONE);
audio.sound_deactivated = FALSE;
- RedrawPlayfield(TRUE, 0,0,0,0);
- DrawGameDoorValues();
+#if 1
+ if (game_status == GAME_MODE_PLAYING)
+#endif
+ {
+ RedrawPlayfield(TRUE, 0,0,0,0);
+ DrawGameDoorValues();
+ }
}
static void TapeSingleStep()
}
static void TapeSingleStep()
@@
-680,6
+719,19
@@
void TapeQuickLoad()
}
}
}
}
+void InsertSolutionTape()
+{
+ if (!TAPE_IS_EMPTY(tape))
+ return;
+
+ LoadSolutionTape(level_nr);
+
+ if (TAPE_IS_EMPTY(tape))
+ Request("No solution tape for this level !", REQ_CONFIRM);
+
+ DrawCompleteVideoDisplay();
+}
+
/* ------------------------------------------------------------------------- *
* tape autoplay functions
/* ------------------------------------------------------------------------- *
* tape autoplay functions
@@
-740,7
+792,7
@@
void AutoPlayTape()
printf_line("=", 79);
printf("\n");
printf_line("=", 79);
printf("\n");
- for (i
=0; i<
MAX_NUM_AUTOPLAY_LEVELS; i++)
+ for (i
= 0; i <
MAX_NUM_AUTOPLAY_LEVELS; i++)
levels_failed[i] = FALSE;
autoplay_initialized = TRUE;
levels_failed[i] = FALSE;
autoplay_initialized = TRUE;
@@
-755,14
+807,18
@@
void AutoPlayTape()
printf("Level %03d: ", level_nr);
LoadLevel(level_nr);
printf("Level %03d: ", level_nr);
LoadLevel(level_nr);
- if (level.no_
level
_file)
+ if (level.no_
valid
_file)
{
printf("(no level)\n");
continue;
}
{
printf("(no level)\n");
continue;
}
- LoadTape(level_nr);
+ LoadSolutionTape(level_nr);
+#if 1
+ if (tape.no_valid_file)
+#else
if (TAPE_IS_EMPTY(tape))
if (TAPE_IS_EMPTY(tape))
+#endif
{
printf("(no tape)\n");
continue;
{
printf("(no tape)\n");
continue;
@@
-789,7
+845,7
@@
void AutoPlayTape()
if (num_levels_played != num_levels_solved)
{
printf(", FAILED:");
if (num_levels_played != num_levels_solved)
{
printf(", FAILED:");
- for (i
=0; i<
MAX_NUM_AUTOPLAY_LEVELS; i++)
+ for (i
= 0; i <
MAX_NUM_AUTOPLAY_LEVELS; i++)
if (levels_failed[i])
printf(" %03d", i);
}
if (levels_failed[i])
printf(" %03d", i);
}
@@
-858,7
+914,7
@@
void CreateTapeButtons()
{
int i;
{
int i;
- for (i
=0; i<
NUM_TAPE_BUTTONS; i++)
+ for (i
= 0; i <
NUM_TAPE_BUTTONS; i++)
{
Bitmap *gd_bitmap = graphic_info[IMG_GLOBAL_DOOR].bitmap;
struct GadgetInfo *gi;
{
Bitmap *gd_bitmap = graphic_info[IMG_GLOBAL_DOOR].bitmap;
struct GadgetInfo *gi;
@@
-903,7
+959,7
@@
void FreeTapeButtons()
{
int i;
{
int i;
- for (i
=0; i<
NUM_TAPE_BUTTONS; i++)
+ for (i
= 0; i <
NUM_TAPE_BUTTONS; i++)
FreeGadget(tape_gadget[i]);
}
FreeGadget(tape_gadget[i]);
}
@@
-923,7
+979,7
@@
void MapTapeButtons()
{
int i;
{
int i;
- for (i
=0; i<
NUM_TAPE_BUTTONS; i++)
+ for (i
= 0; i <
NUM_TAPE_BUTTONS; i++)
if (i != TAPE_CTRL_ID_INDEX)
MapGadget(tape_gadget[i]);
if (i != TAPE_CTRL_ID_INDEX)
MapGadget(tape_gadget[i]);
@@
-935,7
+991,7
@@
void UnmapTapeButtons()
{
int i;
{
int i;
- for (i
=0; i<
NUM_TAPE_BUTTONS; i++)
+ for (i
= 0; i <
NUM_TAPE_BUTTONS; i++)
UnmapGadget(tape_gadget[i]);
}
UnmapGadget(tape_gadget[i]);
}