Mercurial > hg > index.fcgi > lj > lj046
comparison src/ljreplay.h @ 0:c84446dfb3f5
initial add
author | paulo@localhost |
---|---|
date | Fri, 13 Mar 2009 00:39:12 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:10410704b487 |
---|---|
1 /* Replay functionality for LOCKJAW, an implementation of the Soviet Mind Game | |
2 | |
3 Copyright (C) 2006 Damian Yerrick <tepples+lj@spamcop.net> | |
4 | |
5 This work is free software; you can redistribute it and/or modify | |
6 it under the terms of the GNU General Public License as published by | |
7 the Free Software Foundation; either version 2 of the License, or | |
8 (at your option) any later version. | |
9 | |
10 This program is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
15 You should have received a copy of the GNU General Public License | |
16 along with this program; if not, write to the Free Software | |
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | |
19 Original game concept and design by Alexey Pajitnov. | |
20 The Software is not sponsored or endorsed by Alexey Pajitnov, Elorg, | |
21 or The Tetris Company LLC. | |
22 | |
23 */ | |
24 #ifndef LJREPLAY_H | |
25 #define LJREPLAY_H | |
26 | |
27 #include "lj.h" | |
28 #include "ljcontrol.h" | |
29 | |
30 #define LJREPLAY_EOF (-1) | |
31 | |
32 typedef struct LJReplay LJReplay; | |
33 | |
34 /** | |
35 * Creates a new replay. | |
36 * @param filename The name of the file to which the replay is recorded. | |
37 * @param p The field that is observed. | |
38 * @return A pointer to the replay object, | |
39 * or NULL if allocation failed. | |
40 */ | |
41 LJReplay *newReplay(const char *filename, LJField *p); | |
42 | |
43 /** | |
44 * Records a single frame of input in the replay. | |
45 * If spawn or hold sound is played, records the new piece. | |
46 * @param r The replay object. | |
47 */ | |
48 void replayRecord(LJReplay *r, LJBits keys, const LJInput *in); | |
49 | |
50 /** | |
51 * Stops recording the replay and dumps it to the file. | |
52 */ | |
53 void replayClose(LJReplay *r); | |
54 | |
55 /** | |
56 * Opens an existing replay. | |
57 * @param filename The name of the file to which the replay is recorded. | |
58 * @param p The field that is observed. | |
59 * @return A pointer to the replay object, | |
60 * or NULL if allocation failed. | |
61 */ | |
62 LJReplay *openReplay(const char *filename, LJField *p); | |
63 | |
64 /** | |
65 * @param d The structure to be filled with input | |
66 * @return The keys pressed, or REPLAY_EOF. | |
67 */ | |
68 int getReplayFrame(LJReplay *r, LJInput *d); | |
69 | |
70 #endif |