projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20031210-1-src
[rocksndiamonds.git]
/
src
/
tape.c
diff --git
a/src/tape.c
b/src/tape.c
index 60d49c8a8ca4596eb4ad5a1ae3a3e767b0908230..51dcd8a2e0d85e4b47f12267cba9fef24ae118f2 100644
(file)
--- a/
src/tape.c
+++ b/
src/tape.c
@@
-50,7
+50,7
@@
static struct GadgetInfo *tape_gadget[NUM_TAPE_BUTTONS];
#define VIDEO_DATE_LABEL_YPOS (VIDEO_DISPLAY1_YPOS)
#define VIDEO_DATE_LABEL_XSIZE (VIDEO_DISPLAY_XSIZE)
#define VIDEO_DATE_LABEL_YSIZE (VIDEO_DISPLAY_YSIZE)
#define VIDEO_DATE_LABEL_YPOS (VIDEO_DISPLAY1_YPOS)
#define VIDEO_DATE_LABEL_XSIZE (VIDEO_DISPLAY_XSIZE)
#define VIDEO_DATE_LABEL_YSIZE (VIDEO_DISPLAY_YSIZE)
-#define VIDEO_DATE_XPOS (VIDEO_DISPLAY1_XPOS +
1
)
+#define VIDEO_DATE_XPOS (VIDEO_DISPLAY1_XPOS +
2
)
#define VIDEO_DATE_YPOS (VIDEO_DISPLAY1_YPOS + 14)
#define VIDEO_DATE_XSIZE (VIDEO_DISPLAY_XSIZE)
#define VIDEO_DATE_YSIZE 16
#define VIDEO_DATE_YPOS (VIDEO_DISPLAY1_YPOS + 14)
#define VIDEO_DATE_XSIZE (VIDEO_DISPLAY_XSIZE)
#define VIDEO_DATE_YSIZE 16
@@
-78,7
+78,7
@@
static struct GadgetInfo *tape_gadget[NUM_TAPE_BUTTONS];
#define VIDEO_PAUSE_SYMBOL_YPOS (VIDEO_DISPLAY2_YPOS)
#define VIDEO_PAUSE_SYMBOL_XSIZE 17
#define VIDEO_PAUSE_SYMBOL_YSIZE 13
#define VIDEO_PAUSE_SYMBOL_YPOS (VIDEO_DISPLAY2_YPOS)
#define VIDEO_PAUSE_SYMBOL_XSIZE 17
#define VIDEO_PAUSE_SYMBOL_YSIZE 13
-#define VIDEO_TIME_XPOS (VIDEO_DISPLAY2_XPOS + 3
8
)
+#define VIDEO_TIME_XPOS (VIDEO_DISPLAY2_XPOS + 3
9
)
#define VIDEO_TIME_YPOS (VIDEO_DISPLAY2_YPOS + 14)
#define VIDEO_TIME_XSIZE 50
#define VIDEO_TIME_YSIZE 16
#define VIDEO_TIME_YPOS (VIDEO_DISPLAY2_YPOS + 14)
#define VIDEO_TIME_XSIZE 50
#define VIDEO_TIME_YSIZE 16
@@
-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))
{
@@
-240,11
+240,11
@@
void DrawVideoDisplay(unsigned long state, unsigned long value)
int jahr = (value/10000);
DrawText(VX + VIDEO_DATE_XPOS, VY + VIDEO_DATE_YPOS,
int jahr = (value/10000);
DrawText(VX + VIDEO_DATE_XPOS, VY + VIDEO_DATE_YPOS,
- int2str(tag, 2), FONT_
SPECIAL_TAPE
);
+ int2str(tag, 2), FONT_
TAPE_RECORDER
);
DrawText(VX + VIDEO_DATE_XPOS + 27, VY + VIDEO_DATE_YPOS,
DrawText(VX + VIDEO_DATE_XPOS + 27, VY + VIDEO_DATE_YPOS,
- monatsname[monat], FONT_
SPECIAL_TAPE
);
+ monatsname[monat], FONT_
TAPE_RECORDER
);
DrawText(VX + VIDEO_DATE_XPOS + 64, VY + VIDEO_DATE_YPOS,
DrawText(VX + VIDEO_DATE_XPOS + 64, VY + VIDEO_DATE_YPOS,
- int2str(jahr, 2), FONT_
SPECIAL_TAPE
);
+ int2str(jahr, 2), FONT_
TAPE_RECORDER
);
}
if (state & VIDEO_STATE_TIME_ON)
}
if (state & VIDEO_STATE_TIME_ON)
@@
-253,9
+253,9
@@
void DrawVideoDisplay(unsigned long state, unsigned long value)
int sec = value % 60;
DrawText(VX + VIDEO_TIME_XPOS, VY + VIDEO_TIME_YPOS,
int sec = value % 60;
DrawText(VX + VIDEO_TIME_XPOS, VY + VIDEO_TIME_YPOS,
- int2str(min, 2), FONT_
SPECIAL_TAPE
);
+ int2str(min, 2), FONT_
TAPE_RECORDER
);
DrawText(VX + VIDEO_TIME_XPOS + 27, VY + VIDEO_TIME_YPOS,
DrawText(VX + VIDEO_TIME_XPOS + 27, VY + VIDEO_TIME_YPOS,
- int2str(sec, 2), FONT_
SPECIAL_TAPE
);
+ int2str(sec, 2), FONT_
TAPE_RECORDER
);
}
if (state & VIDEO_STATE_DATE)
}
if (state & VIDEO_STATE_DATE)
@@
-302,6
+302,9
@@
void TapeErase()
tape.length = 0;
tape.counter = 0;
tape.length = 0;
tape.counter = 0;
+ if (leveldir_current)
+ setString(&tape.level_identifier, leveldir_current->identifier);
+
tape.level_nr = level_nr;
tape.pos[tape.counter].delay = 0;
tape.changed = TRUE;
tape.level_nr = level_nr;
tape.pos[tape.counter].delay = 0;
tape.changed = TRUE;
@@
-313,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;
}
@@
-363,7
+371,7
@@
static void TapeStartGameRecording()
else
#endif
{
else
#endif
{
- game_status = PLAYING;
+ game_status =
GAME_MODE_
PLAYING;
StopAnimation();
InitGame();
}
StopAnimation();
InitGame();
}
@@
-425,7
+433,7
@@
void TapeRecordAction(byte action[MAX_PLAYERS])
{
boolean changed_events = FALSE;
{
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;
@@
-440,7
+448,7
@@
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++)
+ 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++;
@@
-508,7
+516,7
@@
static void TapeStartGamePlaying()
{
TapeStartPlaying();
{
TapeStartPlaying();
- game_status = PLAYING;
+ game_status =
GAME_MODE_
PLAYING;
StopAnimation();
InitGame();
}
StopAnimation();
InitGame();
}
@@
-563,7
+571,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++;
@@
-588,8
+596,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()
@@
-600,7
+610,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);
@@
-643,7
+653,7
@@
static void TapeSingleStep()
void TapeQuickSave()
{
void TapeQuickSave()
{
- if (game_status == PLAYING)
+ if (game_status ==
GAME_MODE_
PLAYING)
{
if (tape.recording)
TapeHaltRecording(); /* prepare tape for saving on-the-fly */
{
if (tape.recording)
TapeHaltRecording(); /* prepare tape for saving on-the-fly */
@@
-653,13
+663,13
@@
void TapeQuickSave()
else
SaveTape(tape.level_nr);
}
else
SaveTape(tape.level_nr);
}
- else if (game_status ==
MAINMENU
)
+ else if (game_status ==
GAME_MODE_MAIN
)
Request("No game that can be saved !", REQ_CONFIRM);
}
void TapeQuickLoad()
{
Request("No game that can be saved !", REQ_CONFIRM);
}
void TapeQuickLoad()
{
- if (game_status ==
PLAYING || game_status == MAINMENU
)
+ if (game_status ==
GAME_MODE_PLAYING || game_status == GAME_MODE_MAIN
)
{
TapeStop();
TapeErase();
{
TapeStop();
TapeErase();
@@
-677,6
+687,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
@@
-737,7
+760,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;
@@
-758,7
+781,7
@@
void AutoPlayTape()
continue;
}
continue;
}
- LoadTape(level_nr);
+ Load
Solution
Tape(level_nr);
if (TAPE_IS_EMPTY(tape))
{
printf("(no tape)\n");
if (TAPE_IS_EMPTY(tape))
{
printf("(no tape)\n");
@@
-786,7
+809,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);
}
@@
-855,7
+878,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;
@@
-900,7
+923,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]);
}
@@
-920,7
+943,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]);
@@
-932,7
+955,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]);
}
@@
-940,7
+963,7
@@
static void HandleTapeButtons(struct GadgetInfo *gi)
{
int id = gi->custom_id;
{
int id = gi->custom_id;
- if (game_status !=
MAINMENU && game_status !=
PLAYING)
+ if (game_status !=
GAME_MODE_MAIN && game_status != GAME_MODE_
PLAYING)
return;
switch (id)
return;
switch (id)