[Scummvm-git-logs] scummvm master -> 715a7b3d2a7dda8b13f0c8b2d9063a55f6d9828b
neuromancer
noreply at scummvm.org
Wed Jan 26 08:42:13 UTC 2022
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ca298f7699 HYPNO: added some code to start parsing segments in arcade sequences
7eec5ba937 HYPNO: fixed uninitialized variable of Talk in spider
715a7b3d2a HYPNO: fixed uninitialized variable of ArcadeSequence
Commit: ca298f7699f049b587a8b89114cbe21ad9b0c825
https://github.com/scummvm/scummvm/commit/ca298f7699f049b587a8b89114cbe21ad9b0c825
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-01-26T09:39:16+01:00
Commit Message:
HYPNO: added some code to start parsing segments in arcade sequences
Changed paths:
engines/hypno/arcade.cpp
engines/hypno/grammar.h
engines/hypno/grammar_arc.cpp
engines/hypno/grammar_arc.y
engines/hypno/lexer_arc.cpp
engines/hypno/lexer_arc.l
engines/hypno/tokens_arc.h
engines/hypno/wet/arcade.cpp
engines/hypno/wet/wet.cpp
diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 90ea86dae0f..ea6a9d6f98d 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -45,6 +45,8 @@ void HypnoEngine::splitArcadeFile(const Common::String &filename, Common::String
break;
list += x;
}
+ if (list[1] == 'L')
+ list = "";
break; // No need to keep parsing
}
}
@@ -133,7 +135,8 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
_maxHealth = _health;
changeCursor("arcade");
_shoots.clear();
- _playerFrames = decodeFrames(arc->player);
+ if (!arc->player.empty())
+ _playerFrames = decodeFrames(arc->player);
_playerFrameSep = 0;
// Only used in spider
_currentPlayerPosition = PlayerLeft;
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 093beb3cac7..087207f1b3f 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -396,6 +396,16 @@ public:
typedef Common::List<ShootInfo> ShootSequence;
typedef Common::Array<Common::String> Sounds;
+
+class Segment {
+public:
+ byte type;
+ uint32 start;
+ uint32 size;
+};
+
+typedef Common::Array<Segment> Segments;
+
class ArcadeShooting : public Level {
public:
ArcadeShooting() {
@@ -406,6 +416,7 @@ public:
uint32 id;
Common::String mode;
uint32 transitionTime;
+ Segments segments;
// Videos
Filename transitionVideo;
diff --git a/engines/hypno/grammar_arc.cpp b/engines/hypno/grammar_arc.cpp
index 6dba36b58cf..818dc11eaa8 100644
--- a/engines/hypno/grammar_arc.cpp
+++ b/engines/hypno/grammar_arc.cpp
@@ -139,44 +139,49 @@ enum yysymbol_kind_t
YYSYMBOL_KNTOK = 7, /* KNTOK */
YYSYMBOL_YXTOK = 8, /* YXTOK */
YYSYMBOL_NUM = 9, /* NUM */
- YYSYMBOL_COMMENT = 10, /* COMMENT */
- YYSYMBOL_CTOK = 11, /* CTOK */
- YYSYMBOL_DTOK = 12, /* DTOK */
- YYSYMBOL_HTOK = 13, /* HTOK */
- YYSYMBOL_HETOK = 14, /* HETOK */
- YYSYMBOL_RETTOK = 15, /* RETTOK */
- YYSYMBOL_QTOK = 16, /* QTOK */
- YYSYMBOL_ENCTOK = 17, /* ENCTOK */
- YYSYMBOL_PTOK = 18, /* PTOK */
- YYSYMBOL_FTOK = 19, /* FTOK */
- YYSYMBOL_TTOK = 20, /* TTOK */
- YYSYMBOL_TPTOK = 21, /* TPTOK */
- YYSYMBOL_ATOK = 22, /* ATOK */
- YYSYMBOL_VTOK = 23, /* VTOK */
- YYSYMBOL_OTOK = 24, /* OTOK */
- YYSYMBOL_ONTOK = 25, /* ONTOK */
- YYSYMBOL_NTOK = 26, /* NTOK */
- YYSYMBOL_RTOK = 27, /* RTOK */
- YYSYMBOL_R0TOK = 28, /* R0TOK */
- YYSYMBOL_ITOK = 29, /* ITOK */
- YYSYMBOL_JTOK = 30, /* JTOK */
- YYSYMBOL_ZTOK = 31, /* ZTOK */
- YYSYMBOL_FNTOK = 32, /* FNTOK */
- YYSYMBOL_NONETOK = 33, /* NONETOK */
- YYSYMBOL_A0TOK = 34, /* A0TOK */
- YYSYMBOL_P0TOK = 35, /* P0TOK */
- YYSYMBOL_WTOK = 36, /* WTOK */
- YYSYMBOL_XTOK = 37, /* XTOK */
- YYSYMBOL_CB3TOK = 38, /* CB3TOK */
- YYSYMBOL_C02TOK = 39, /* C02TOK */
- YYSYMBOL_YYACCEPT = 40, /* $accept */
- YYSYMBOL_start = 41, /* start */
- YYSYMBOL_42_1 = 42, /* $@1 */
- YYSYMBOL_header = 43, /* header */
- YYSYMBOL_hline = 44, /* hline */
- YYSYMBOL_enc = 45, /* enc */
- YYSYMBOL_body = 46, /* body */
- YYSYMBOL_bline = 47 /* bline */
+ YYSYMBOL_BYTE = 10, /* BYTE */
+ YYSYMBOL_COMMENT = 11, /* COMMENT */
+ YYSYMBOL_CTOK = 12, /* CTOK */
+ YYSYMBOL_DTOK = 13, /* DTOK */
+ YYSYMBOL_HTOK = 14, /* HTOK */
+ YYSYMBOL_HETOK = 15, /* HETOK */
+ YYSYMBOL_HLTOK = 16, /* HLTOK */
+ YYSYMBOL_HUTOK = 17, /* HUTOK */
+ YYSYMBOL_RETTOK = 18, /* RETTOK */
+ YYSYMBOL_QTOK = 19, /* QTOK */
+ YYSYMBOL_ENCTOK = 20, /* ENCTOK */
+ YYSYMBOL_RESTOK = 21, /* RESTOK */
+ YYSYMBOL_PTOK = 22, /* PTOK */
+ YYSYMBOL_FTOK = 23, /* FTOK */
+ YYSYMBOL_TTOK = 24, /* TTOK */
+ YYSYMBOL_TPTOK = 25, /* TPTOK */
+ YYSYMBOL_ATOK = 26, /* ATOK */
+ YYSYMBOL_VTOK = 27, /* VTOK */
+ YYSYMBOL_OTOK = 28, /* OTOK */
+ YYSYMBOL_ONTOK = 29, /* ONTOK */
+ YYSYMBOL_NTOK = 30, /* NTOK */
+ YYSYMBOL_NSTOK = 31, /* NSTOK */
+ YYSYMBOL_RTOK = 32, /* RTOK */
+ YYSYMBOL_R0TOK = 33, /* R0TOK */
+ YYSYMBOL_ITOK = 34, /* ITOK */
+ YYSYMBOL_JTOK = 35, /* JTOK */
+ YYSYMBOL_ZTOK = 36, /* ZTOK */
+ YYSYMBOL_FNTOK = 37, /* FNTOK */
+ YYSYMBOL_NONETOK = 38, /* NONETOK */
+ YYSYMBOL_A0TOK = 39, /* A0TOK */
+ YYSYMBOL_P0TOK = 40, /* P0TOK */
+ YYSYMBOL_WTOK = 41, /* WTOK */
+ YYSYMBOL_XTOK = 42, /* XTOK */
+ YYSYMBOL_CB3TOK = 43, /* CB3TOK */
+ YYSYMBOL_C02TOK = 44, /* C02TOK */
+ YYSYMBOL_YYACCEPT = 45, /* $accept */
+ YYSYMBOL_start = 46, /* start */
+ YYSYMBOL_47_1 = 47, /* $@1 */
+ YYSYMBOL_header = 48, /* header */
+ YYSYMBOL_hline = 49, /* hline */
+ YYSYMBOL_enc = 50, /* enc */
+ YYSYMBOL_body = 51, /* body */
+ YYSYMBOL_bline = 52 /* bline */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -504,19 +509,19 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 6
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 125
+#define YYLAST 133
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 40
+#define YYNTOKENS 45
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 8
/* YYNRULES -- Number of rules. */
-#define YYNRULES 66
+#define YYNRULES 70
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 134
+#define YYNSTATES 142
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 294
+#define YYMAXUTOK 299
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -559,7 +564,7 @@ static const yytype_int8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
};
#if HYPNO_ARC_DEBUG
@@ -567,12 +572,13 @@ static const yytype_int8 yytranslate[] =
static const yytype_int16 yyrline[] =
{
0, 75, 75, 75, 76, 79, 80, 81, 84, 87,
- 88, 89, 90, 91, 92, 93, 94, 99, 104, 105,
- 109, 112, 116, 117, 131, 143, 144, 145, 150, 151,
- 154, 155, 156, 159, 164, 169, 174, 178, 182, 186,
- 190, 194, 198, 202, 206, 210, 214, 218, 222, 226,
- 230, 234, 238, 241, 245, 246, 247, 248, 254, 258,
- 261, 262, 265, 268, 272, 279, 280
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 101,
+ 106, 107, 111, 115, 118, 122, 123, 137, 149, 152,
+ 155, 158, 163, 164, 167, 168, 169, 172, 177, 182,
+ 187, 191, 195, 199, 203, 207, 211, 215, 219, 223,
+ 227, 231, 235, 239, 243, 247, 251, 254, 258, 259,
+ 260, 261, 267, 271, 274, 275, 278, 281, 285, 292,
+ 293
};
#endif
@@ -589,12 +595,12 @@ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
static const char *const yytname[] =
{
"\"end of file\"", "error", "\"invalid token\"", "NAME", "FILENAME",
- "BNTOK", "SNTOK", "KNTOK", "YXTOK", "NUM", "COMMENT", "CTOK", "DTOK",
- "HTOK", "HETOK", "RETTOK", "QTOK", "ENCTOK", "PTOK", "FTOK", "TTOK",
- "TPTOK", "ATOK", "VTOK", "OTOK", "ONTOK", "NTOK", "RTOK", "R0TOK",
- "ITOK", "JTOK", "ZTOK", "FNTOK", "NONETOK", "A0TOK", "P0TOK", "WTOK",
- "XTOK", "CB3TOK", "C02TOK", "$accept", "start", "$@1", "header", "hline",
- "enc", "body", "bline", YY_NULLPTR
+ "BNTOK", "SNTOK", "KNTOK", "YXTOK", "NUM", "BYTE", "COMMENT", "CTOK",
+ "DTOK", "HTOK", "HETOK", "HLTOK", "HUTOK", "RETTOK", "QTOK", "ENCTOK",
+ "RESTOK", "PTOK", "FTOK", "TTOK", "TPTOK", "ATOK", "VTOK", "OTOK",
+ "ONTOK", "NTOK", "NSTOK", "RTOK", "R0TOK", "ITOK", "JTOK", "ZTOK",
+ "FNTOK", "NONETOK", "A0TOK", "P0TOK", "WTOK", "XTOK", "CB3TOK", "C02TOK",
+ "$accept", "start", "$@1", "header", "hline", "enc", "body", "bline", YY_NULLPTR
};
static const char *
@@ -604,7 +610,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-37)
+#define YYPACT_NINF (-75)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -618,20 +624,21 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int8 yypact[] =
{
- -3, -37, -3, 9, 57, -37, -37, 7, 13, 4,
- 11, -20, -23, 57, 19, 26, 30, -1, 37, 36,
- 39, 47, 50, 42, 60, 61, 35, 57, -37, 68,
- -37, -37, 58, 65, 78, -37, 79, 80, -37, 81,
- 82, 83, 84, 85, 86, 87, -37, -37, -37, 88,
- -37, -37, -37, 89, 90, 91, -37, -37, -37, -37,
- 93, -37, -37, -37, -37, -5, -37, -37, -37, -37,
- 92, 98, 95, 96, 97, 99, -5, 103, 100, -37,
- 101, 102, 31, 104, -37, 0, 105, 106, 107, 75,
- -5, 108, 68, 109, -37, -37, -37, -37, -37, 110,
- 111, 112, -37, -37, -37, -37, -37, -37, -37, -37,
- -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
- -37, 113, 114, -37, -37, -37, -37, -37, -37, -37,
- -37, -37, -37, -37
+ -2, -75, -2, 11, 67, -75, -75, 8, 13, 6,
+ 10, 12, 23, 30, 33, 67, 35, 37, 38, -1,
+ 17, 42, 5, 43, 44, 41, 50, 52, 53, 25,
+ 67, -75, 45, -75, -75, 54, 58, 60, 65, -75,
+ 66, 68, -75, 69, 78, 79, 91, 93, -75, 94,
+ 95, -75, -75, -75, -75, 87, -75, -75, -75, 97,
+ 98, 99, 100, -75, -75, -75, -75, 72, -75, -75,
+ -75, -75, -5, -75, -75, -75, -75, -75, 101, 107,
+ 103, 104, 105, 106, -5, 112, 108, -75, 109, 110,
+ 36, 111, -75, 0, 113, 114, 115, 83, -5, 117,
+ 45, 118, -75, -75, -75, -75, -75, 119, 120, 121,
+ -75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
+ -75, -75, -75, -75, -75, -75, -75, -75, -75, 122,
+ 123, -75, -75, -75, -75, -75, -75, -75, -75, -75,
+ -75, -75
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -640,31 +647,32 @@ static const yytype_int8 yypact[] =
static const yytype_int8 yydefact[] =
{
0, 2, 0, 0, 7, 4, 1, 0, 0, 0,
- 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 23, 29,
- 8, 10, 0, 0, 0, 6, 0, 0, 9, 0,
- 0, 0, 0, 0, 0, 0, 19, 20, 21, 0,
- 5, 28, 24, 0, 0, 0, 22, 11, 17, 18,
- 0, 12, 13, 14, 15, 32, 27, 26, 25, 16,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 65,
- 0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
- 32, 0, 29, 0, 60, 63, 61, 31, 35, 0,
- 0, 0, 36, 37, 50, 39, 40, 42, 48, 47,
- 41, 51, 38, 46, 45, 49, 43, 44, 52, 33,
- 34, 0, 0, 62, 3, 30, 56, 64, 57, 59,
- 54, 55, 53, 58
+ 0, 0, 0, 0, 0, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 26, 33, 8, 10, 0, 0, 0, 0, 6,
+ 0, 0, 9, 0, 0, 0, 0, 0, 14, 0,
+ 17, 21, 22, 23, 24, 0, 5, 32, 27, 0,
+ 0, 0, 0, 25, 11, 19, 20, 0, 12, 13,
+ 15, 16, 36, 31, 28, 29, 30, 18, 0, 0,
+ 0, 0, 0, 0, 36, 0, 0, 69, 0, 0,
+ 0, 0, 70, 0, 0, 0, 0, 0, 36, 0,
+ 33, 0, 64, 67, 65, 35, 39, 0, 0, 0,
+ 40, 41, 54, 43, 44, 46, 52, 51, 45, 55,
+ 42, 50, 49, 53, 47, 48, 56, 37, 38, 0,
+ 0, 66, 3, 34, 60, 68, 61, 63, 58, 59,
+ 57, 62
};
/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
+static const yytype_int16 yypgoto[] =
{
- -37, 122, -37, 25, -37, 33, -36, -37
+ -75, 131, -75, -10, -75, 21, -74, -75
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- 0, 3, 4, 26, 27, 52, 89, 90
+ 0, 3, 4, 29, 30, 58, 97, 98
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -672,80 +680,85 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 70, 71, 72, 39, 119, 1, 73, 74, 75, 6,
- 76, 28, 2, 30, 77, 33, 34, 29, 32, 78,
- 31, 79, 80, 81, 82, 83, 84, 85, 36, 86,
- 87, 88, 40, 120, 102, 37, 103, 104, 35, 38,
- 97, 41, 105, 106, 107, 42, 46, 108, 43, 109,
- 110, 111, 50, 112, 125, 113, 44, 114, 115, 45,
- 116, 117, 7, 8, 47, 48, 49, 53, 9, 10,
- 11, 12, 13, 14, 54, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 51, 25, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 69, 66, 67,
- 68, 91, 92, 65, 93, 94, 95, 98, 96, 99,
- 100, 101, 124, 118, 121, 122, 123, 126, 128, 129,
- 130, 131, 132, 133, 5, 127
+ 78, 79, 80, 43, 127, 39, 1, 81, 82, 83,
+ 105, 6, 31, 84, 47, 33, 2, 32, 85, 34,
+ 56, 45, 35, 86, 133, 87, 48, 88, 89, 90,
+ 91, 92, 93, 36, 94, 95, 96, 44, 128, 110,
+ 37, 111, 112, 38, 40, 51, 41, 42, 113, 114,
+ 115, 46, 49, 50, 52, 116, 53, 54, 117, 118,
+ 119, 55, 120, 59, 121, 57, 122, 60, 123, 61,
+ 124, 125, 7, 8, 62, 63, 77, 64, 65, 9,
+ 10, 11, 12, 13, 14, 15, 16, 66, 67, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 68, 28, 69, 70, 71, 72, 73, 74, 75, 76,
+ 99, 100, 101, 102, 103, 104, 106, 107, 108, 109,
+ 126, 135, 129, 130, 131, 132, 134, 136, 137, 138,
+ 139, 140, 141, 5
};
static const yytype_int8 yycheck[] =
{
- 5, 6, 7, 4, 4, 8, 11, 12, 13, 0,
- 15, 4, 15, 9, 19, 38, 39, 4, 38, 24,
- 9, 26, 27, 28, 29, 30, 31, 32, 9, 34,
- 35, 36, 33, 33, 3, 9, 5, 6, 13, 9,
- 76, 4, 11, 12, 13, 9, 4, 16, 9, 18,
- 19, 20, 27, 22, 90, 24, 9, 26, 27, 9,
- 29, 30, 5, 6, 4, 4, 31, 9, 11, 12,
- 13, 14, 15, 16, 9, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 17, 29, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 4, 9, 9,
- 9, 9, 4, 15, 9, 9, 9, 4, 9, 9,
- 9, 9, 37, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 2, 92
+ 5, 6, 7, 4, 4, 15, 8, 12, 13, 14,
+ 84, 0, 4, 18, 9, 9, 18, 4, 23, 9,
+ 30, 4, 10, 28, 98, 30, 21, 32, 33, 34,
+ 35, 36, 37, 10, 39, 40, 41, 38, 38, 3,
+ 10, 5, 6, 10, 9, 4, 9, 9, 12, 13,
+ 14, 9, 9, 9, 4, 19, 4, 4, 22, 23,
+ 24, 36, 26, 9, 28, 20, 30, 9, 32, 9,
+ 34, 35, 5, 6, 9, 9, 4, 9, 9, 12,
+ 13, 14, 15, 16, 17, 18, 19, 9, 9, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 9, 34, 9, 9, 9, 18, 9, 9, 9, 9,
+ 9, 4, 9, 9, 9, 9, 4, 9, 9, 9,
+ 9, 100, 9, 9, 9, 42, 9, 9, 9, 9,
+ 9, 9, 9, 2
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
state STATE-NUM. */
static const yytype_int8 yystos[] =
{
- 0, 8, 15, 41, 42, 41, 0, 5, 6, 11,
- 12, 13, 14, 15, 16, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 29, 43, 44, 4, 4,
- 9, 9, 38, 38, 39, 43, 9, 9, 9, 4,
- 33, 4, 9, 9, 9, 9, 4, 4, 4, 31,
- 43, 17, 45, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 15, 9, 9, 9, 4,
- 5, 6, 7, 11, 12, 13, 15, 19, 24, 26,
- 27, 28, 29, 30, 31, 32, 34, 35, 36, 46,
- 47, 9, 4, 9, 9, 9, 9, 46, 4, 9,
- 9, 9, 3, 5, 6, 11, 12, 13, 16, 18,
- 19, 20, 22, 24, 26, 27, 29, 30, 9, 4,
- 33, 9, 9, 9, 37, 46, 9, 45, 9, 9,
- 9, 9, 9, 9
+ 0, 8, 18, 46, 47, 46, 0, 5, 6, 12,
+ 13, 14, 15, 16, 17, 18, 19, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 34, 48,
+ 49, 4, 4, 9, 9, 10, 10, 10, 10, 48,
+ 9, 9, 9, 4, 38, 4, 9, 9, 21, 9,
+ 9, 4, 4, 4, 4, 36, 48, 20, 50, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 18, 9, 9, 9, 9, 4, 5, 6,
+ 7, 12, 13, 14, 18, 23, 28, 30, 32, 33,
+ 34, 35, 36, 37, 39, 40, 41, 51, 52, 9,
+ 4, 9, 9, 9, 9, 51, 4, 9, 9, 9,
+ 3, 5, 6, 12, 13, 14, 19, 22, 23, 24,
+ 26, 28, 30, 32, 34, 35, 9, 4, 38, 9,
+ 9, 9, 42, 51, 9, 50, 9, 9, 9, 9,
+ 9, 9
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] =
{
- 0, 40, 42, 41, 41, 43, 43, 43, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 45, 45,
- 46, 46, 46, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47
+ 0, 45, 47, 46, 46, 48, 48, 48, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 50, 50, 51, 51, 51, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 0, 7, 2, 2, 2, 0, 2, 2,
- 2, 3, 3, 3, 3, 3, 4, 3, 3, 2,
- 2, 2, 3, 2, 3, 4, 4, 4, 1, 0,
- 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
+ 2, 3, 3, 3, 2, 3, 3, 2, 4, 3,
+ 3, 2, 2, 2, 2, 3, 2, 3, 4, 4,
+ 4, 4, 1, 0, 2, 2, 0, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
- 2, 2, 2, 2, 3, 1, 1
+ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
+ 3, 3, 3, 3, 2, 2, 2, 2, 3, 1,
+ 1
};
@@ -1211,7 +1224,7 @@ yyreduce:
case 2: /* $@1: %empty */
#line 75 "engines/hypno/grammar_arc.y"
{ g_parsedArc->mode = (yyvsp[0].s); }
-#line 1215 "engines/hypno/grammar_arc.cpp"
+#line 1228 "engines/hypno/grammar_arc.cpp"
break;
case 8: /* hline: CTOK NUM */
@@ -1219,111 +1232,132 @@ yyreduce:
{
g_parsedArc->id = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "C %d", (yyvsp[0].i)); }
-#line 1223 "engines/hypno/grammar_arc.cpp"
+#line 1236 "engines/hypno/grammar_arc.cpp"
break;
case 9: /* hline: FTOK NUM */
#line 87 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "F %d", (yyvsp[0].i)); }
-#line 1229 "engines/hypno/grammar_arc.cpp"
+#line 1242 "engines/hypno/grammar_arc.cpp"
break;
case 10: /* hline: DTOK NUM */
#line 88 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "D %d", (yyvsp[0].i)); }
-#line 1235 "engines/hypno/grammar_arc.cpp"
+#line 1248 "engines/hypno/grammar_arc.cpp"
break;
case 11: /* hline: PTOK NUM NUM */
#line 89 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "P %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1241 "engines/hypno/grammar_arc.cpp"
+#line 1254 "engines/hypno/grammar_arc.cpp"
break;
case 12: /* hline: ATOK NUM NUM */
#line 90 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "A %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1247 "engines/hypno/grammar_arc.cpp"
+#line 1260 "engines/hypno/grammar_arc.cpp"
break;
case 13: /* hline: VTOK NUM NUM */
#line 91 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "V %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1253 "engines/hypno/grammar_arc.cpp"
+#line 1266 "engines/hypno/grammar_arc.cpp"
break;
- case 14: /* hline: OTOK NUM NUM */
+ case 14: /* hline: VTOK RESTOK */
#line 92 "engines/hypno/grammar_arc.y"
- { debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1259 "engines/hypno/grammar_arc.cpp"
+ { debugC(1, kHypnoDebugParser, "V 320,200"); }
+#line 1272 "engines/hypno/grammar_arc.cpp"
break;
- case 15: /* hline: ONTOK NUM NUM */
+ case 15: /* hline: OTOK NUM NUM */
#line 93 "engines/hypno/grammar_arc.y"
- { debugC(1, kHypnoDebugParser, "ON %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1265 "engines/hypno/grammar_arc.cpp"
+ { debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
+#line 1278 "engines/hypno/grammar_arc.cpp"
break;
- case 16: /* hline: TPTOK FILENAME NUM FILENAME */
+ case 16: /* hline: ONTOK NUM NUM */
#line 94 "engines/hypno/grammar_arc.y"
+ { debugC(1, kHypnoDebugParser, "ON %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
+#line 1284 "engines/hypno/grammar_arc.cpp"
+ break;
+
+ case 17: /* hline: ONTOK NUM */
+#line 95 "engines/hypno/grammar_arc.y"
+ { debugC(1, kHypnoDebugParser, "ON %d", (yyvsp[0].i)); }
+#line 1290 "engines/hypno/grammar_arc.cpp"
+ break;
+
+ case 18: /* hline: TPTOK FILENAME NUM FILENAME */
+#line 96 "engines/hypno/grammar_arc.y"
{
g_parsedArc->transitionVideo = (yyvsp[-2].s);
g_parsedArc->transitionTime = (yyvsp[-1].i);
debugC(1, kHypnoDebugParser, "Tp %s %d %s", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].s));
}
-#line 1275 "engines/hypno/grammar_arc.cpp"
+#line 1300 "engines/hypno/grammar_arc.cpp"
break;
- case 17: /* hline: TTOK FILENAME NUM */
-#line 99 "engines/hypno/grammar_arc.y"
+ case 19: /* hline: TTOK FILENAME NUM */
+#line 101 "engines/hypno/grammar_arc.y"
{
g_parsedArc->transitionVideo = (yyvsp[-1].s);
g_parsedArc->transitionTime = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "T %s %d", (yyvsp[-1].s), (yyvsp[0].i));
}
-#line 1285 "engines/hypno/grammar_arc.cpp"
+#line 1310 "engines/hypno/grammar_arc.cpp"
break;
- case 18: /* hline: TTOK NONETOK NUM */
-#line 104 "engines/hypno/grammar_arc.y"
+ case 20: /* hline: TTOK NONETOK NUM */
+#line 106 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "T NONE %d", (yyvsp[0].i)); }
-#line 1291 "engines/hypno/grammar_arc.cpp"
+#line 1316 "engines/hypno/grammar_arc.cpp"
break;
- case 19: /* hline: NTOK FILENAME */
-#line 105 "engines/hypno/grammar_arc.y"
+ case 21: /* hline: NTOK FILENAME */
+#line 107 "engines/hypno/grammar_arc.y"
{
g_parsedArc->background = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "N %s", (yyvsp[0].s));
}
-#line 1300 "engines/hypno/grammar_arc.cpp"
+#line 1325 "engines/hypno/grammar_arc.cpp"
break;
- case 20: /* hline: RTOK FILENAME */
-#line 109 "engines/hypno/grammar_arc.y"
+ case 22: /* hline: NSTOK FILENAME */
+#line 111 "engines/hypno/grammar_arc.y"
+ {
+ g_parsedArc->background = (yyvsp[0].s);
+ debugC(1, kHypnoDebugParser, "N* %s", (yyvsp[0].s));
+ }
+#line 1334 "engines/hypno/grammar_arc.cpp"
+ break;
+
+ case 23: /* hline: RTOK FILENAME */
+#line 115 "engines/hypno/grammar_arc.y"
{
g_parsedArc->palette = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "R %s", (yyvsp[0].s)); }
-#line 1308 "engines/hypno/grammar_arc.cpp"
+#line 1342 "engines/hypno/grammar_arc.cpp"
break;
- case 21: /* hline: ITOK FILENAME */
-#line 112 "engines/hypno/grammar_arc.y"
+ case 24: /* hline: ITOK FILENAME */
+#line 118 "engines/hypno/grammar_arc.y"
{
g_parsedArc->player = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
}
-#line 1317 "engines/hypno/grammar_arc.cpp"
+#line 1351 "engines/hypno/grammar_arc.cpp"
break;
- case 22: /* hline: QTOK NUM NUM */
-#line 116 "engines/hypno/grammar_arc.y"
+ case 25: /* hline: QTOK NUM NUM */
+#line 122 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "Q %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1323 "engines/hypno/grammar_arc.cpp"
+#line 1357 "engines/hypno/grammar_arc.cpp"
break;
- case 23: /* hline: BNTOK FILENAME */
-#line 117 "engines/hypno/grammar_arc.y"
+ case 26: /* hline: BNTOK FILENAME */
+#line 123 "engines/hypno/grammar_arc.y"
{
if (Common::String("B0") == (yyvsp[-1].s))
g_parsedArc->intros.push_back((yyvsp[0].s));
@@ -1338,11 +1372,11 @@ yyreduce:
debugC(1, kHypnoDebugParser, "BN %s", (yyvsp[0].s));
}
-#line 1342 "engines/hypno/grammar_arc.cpp"
+#line 1376 "engines/hypno/grammar_arc.cpp"
break;
- case 24: /* hline: SNTOK FILENAME enc */
-#line 131 "engines/hypno/grammar_arc.y"
+ case 27: /* hline: SNTOK FILENAME enc */
+#line 137 "engines/hypno/grammar_arc.y"
{
if (Common::String("S0") == (yyvsp[-2].s))
g_parsedArc->music = (yyvsp[-1].s);
@@ -1355,299 +1389,311 @@ yyreduce:
debugC(1, kHypnoDebugParser, "SN %s", (yyvsp[-1].s));
}
-#line 1359 "engines/hypno/grammar_arc.cpp"
+#line 1393 "engines/hypno/grammar_arc.cpp"
break;
- case 25: /* hline: HETOK C02TOK NUM NUM */
-#line 143 "engines/hypno/grammar_arc.y"
- { debugC(1, kHypnoDebugParser, "HE %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1365 "engines/hypno/grammar_arc.cpp"
+ case 28: /* hline: HETOK BYTE NUM NUM */
+#line 149 "engines/hypno/grammar_arc.y"
+ {
+ debugC(1, kHypnoDebugParser, "HE %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
+ }
+#line 1401 "engines/hypno/grammar_arc.cpp"
+ break;
+
+ case 29: /* hline: HLTOK BYTE NUM NUM */
+#line 152 "engines/hypno/grammar_arc.y"
+ {
+ debugC(1, kHypnoDebugParser, "HL %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
+ }
+#line 1409 "engines/hypno/grammar_arc.cpp"
break;
- case 26: /* hline: HETOK CB3TOK NUM NUM */
-#line 144 "engines/hypno/grammar_arc.y"
- { debugC(1, kHypnoDebugParser, "HE %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1371 "engines/hypno/grammar_arc.cpp"
+ case 30: /* hline: HUTOK BYTE NUM NUM */
+#line 155 "engines/hypno/grammar_arc.y"
+ {
+ debugC(1, kHypnoDebugParser, "HU %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
+ }
+#line 1417 "engines/hypno/grammar_arc.cpp"
break;
- case 27: /* hline: HTOK CB3TOK NUM NUM */
-#line 145 "engines/hypno/grammar_arc.y"
- {
- debugC(1, kHypnoDebugParser, "H %d %d", (yyvsp[-1].i), (yyvsp[0].i));
+ case 31: /* hline: HTOK BYTE NUM NUM */
+#line 158 "engines/hypno/grammar_arc.y"
+ {
+ debugC(1, kHypnoDebugParser, "H %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
}
-#line 1379 "engines/hypno/grammar_arc.cpp"
+#line 1425 "engines/hypno/grammar_arc.cpp"
break;
- case 33: /* bline: FNTOK FILENAME */
-#line 159 "engines/hypno/grammar_arc.y"
+ case 37: /* bline: FNTOK FILENAME */
+#line 172 "engines/hypno/grammar_arc.y"
{
shoot = new Shoot();
shoot->animation = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "FN %s", (yyvsp[0].s));
}
-#line 1389 "engines/hypno/grammar_arc.cpp"
+#line 1435 "engines/hypno/grammar_arc.cpp"
break;
- case 34: /* bline: FNTOK NONETOK */
-#line 164 "engines/hypno/grammar_arc.y"
+ case 38: /* bline: FNTOK NONETOK */
+#line 177 "engines/hypno/grammar_arc.y"
{
shoot = new Shoot();
shoot->animation = "NONE";
debugC(1, kHypnoDebugParser, "FN NONE");
}
-#line 1399 "engines/hypno/grammar_arc.cpp"
+#line 1445 "engines/hypno/grammar_arc.cpp"
break;
- case 35: /* bline: FTOK FILENAME */
-#line 169 "engines/hypno/grammar_arc.y"
+ case 39: /* bline: FTOK FILENAME */
+#line 182 "engines/hypno/grammar_arc.y"
{
shoot = new Shoot();
shoot->animation = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "FN %s", (yyvsp[0].s));
}
-#line 1409 "engines/hypno/grammar_arc.cpp"
+#line 1455 "engines/hypno/grammar_arc.cpp"
break;
- case 36: /* bline: ITOK NAME */
-#line 174 "engines/hypno/grammar_arc.y"
+ case 40: /* bline: ITOK NAME */
+#line 187 "engines/hypno/grammar_arc.y"
{
shoot->name = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
}
-#line 1418 "engines/hypno/grammar_arc.cpp"
+#line 1464 "engines/hypno/grammar_arc.cpp"
break;
- case 37: /* bline: ITOK BNTOK */
-#line 178 "engines/hypno/grammar_arc.y"
+ case 41: /* bline: ITOK BNTOK */
+#line 191 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == B1
shoot->name = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
}
-#line 1427 "engines/hypno/grammar_arc.cpp"
+#line 1473 "engines/hypno/grammar_arc.cpp"
break;
- case 38: /* bline: ITOK ATOK */
-#line 182 "engines/hypno/grammar_arc.y"
+ case 42: /* bline: ITOK ATOK */
+#line 195 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == A
shoot->name = "A";
debugC(1, kHypnoDebugParser, "I A");
}
-#line 1436 "engines/hypno/grammar_arc.cpp"
+#line 1482 "engines/hypno/grammar_arc.cpp"
break;
- case 39: /* bline: ITOK CTOK */
-#line 186 "engines/hypno/grammar_arc.y"
+ case 43: /* bline: ITOK CTOK */
+#line 199 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == C
shoot->name = "C";
debugC(1, kHypnoDebugParser, "I C");
}
-#line 1445 "engines/hypno/grammar_arc.cpp"
+#line 1491 "engines/hypno/grammar_arc.cpp"
break;
- case 40: /* bline: ITOK DTOK */
-#line 190 "engines/hypno/grammar_arc.y"
+ case 44: /* bline: ITOK DTOK */
+#line 203 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == D
shoot->name = "D";
debugC(1, kHypnoDebugParser, "I D");
}
-#line 1454 "engines/hypno/grammar_arc.cpp"
+#line 1500 "engines/hypno/grammar_arc.cpp"
break;
- case 41: /* bline: ITOK FTOK */
-#line 194 "engines/hypno/grammar_arc.y"
+ case 45: /* bline: ITOK FTOK */
+#line 207 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == F
shoot->name = "F";
debugC(1, kHypnoDebugParser, "I F");
}
-#line 1463 "engines/hypno/grammar_arc.cpp"
+#line 1509 "engines/hypno/grammar_arc.cpp"
break;
- case 42: /* bline: ITOK HTOK */
-#line 198 "engines/hypno/grammar_arc.y"
+ case 46: /* bline: ITOK HTOK */
+#line 211 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == H
shoot->name = "H";
debugC(1, kHypnoDebugParser, "I H");
}
-#line 1472 "engines/hypno/grammar_arc.cpp"
+#line 1518 "engines/hypno/grammar_arc.cpp"
break;
- case 43: /* bline: ITOK ITOK */
-#line 202 "engines/hypno/grammar_arc.y"
+ case 47: /* bline: ITOK ITOK */
+#line 215 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == I
shoot->name = "I";
debugC(1, kHypnoDebugParser, "I I");
}
-#line 1481 "engines/hypno/grammar_arc.cpp"
+#line 1527 "engines/hypno/grammar_arc.cpp"
break;
- case 44: /* bline: ITOK JTOK */
-#line 206 "engines/hypno/grammar_arc.y"
+ case 48: /* bline: ITOK JTOK */
+#line 219 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == I
shoot->name = "J";
debugC(1, kHypnoDebugParser, "I J");
}
-#line 1490 "engines/hypno/grammar_arc.cpp"
+#line 1536 "engines/hypno/grammar_arc.cpp"
break;
- case 45: /* bline: ITOK NTOK */
-#line 210 "engines/hypno/grammar_arc.y"
+ case 49: /* bline: ITOK NTOK */
+#line 223 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == N
shoot->name = "N";
debugC(1, kHypnoDebugParser, "I N");
}
-#line 1499 "engines/hypno/grammar_arc.cpp"
+#line 1545 "engines/hypno/grammar_arc.cpp"
break;
- case 46: /* bline: ITOK OTOK */
-#line 214 "engines/hypno/grammar_arc.y"
+ case 50: /* bline: ITOK OTOK */
+#line 227 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == O
shoot->name = "O";
debugC(1, kHypnoDebugParser, "I O");
}
-#line 1508 "engines/hypno/grammar_arc.cpp"
+#line 1554 "engines/hypno/grammar_arc.cpp"
break;
- case 47: /* bline: ITOK PTOK */
-#line 218 "engines/hypno/grammar_arc.y"
+ case 51: /* bline: ITOK PTOK */
+#line 231 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == P
shoot->name = "P";
debugC(1, kHypnoDebugParser, "I P");
}
-#line 1517 "engines/hypno/grammar_arc.cpp"
+#line 1563 "engines/hypno/grammar_arc.cpp"
break;
- case 48: /* bline: ITOK QTOK */
-#line 222 "engines/hypno/grammar_arc.y"
+ case 52: /* bline: ITOK QTOK */
+#line 235 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == Q
shoot->name = "Q";
debugC(1, kHypnoDebugParser, "I Q");
}
-#line 1526 "engines/hypno/grammar_arc.cpp"
+#line 1572 "engines/hypno/grammar_arc.cpp"
break;
- case 49: /* bline: ITOK RTOK */
-#line 226 "engines/hypno/grammar_arc.y"
+ case 53: /* bline: ITOK RTOK */
+#line 239 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == R
shoot->name = "R";
debugC(1, kHypnoDebugParser, "I R");
}
-#line 1535 "engines/hypno/grammar_arc.cpp"
+#line 1581 "engines/hypno/grammar_arc.cpp"
break;
- case 50: /* bline: ITOK SNTOK */
-#line 230 "engines/hypno/grammar_arc.y"
+ case 54: /* bline: ITOK SNTOK */
+#line 243 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == S1
shoot->name = (yyvsp[0].s);
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
}
-#line 1544 "engines/hypno/grammar_arc.cpp"
+#line 1590 "engines/hypno/grammar_arc.cpp"
break;
- case 51: /* bline: ITOK TTOK */
-#line 234 "engines/hypno/grammar_arc.y"
+ case 55: /* bline: ITOK TTOK */
+#line 247 "engines/hypno/grammar_arc.y"
{ // Workaround for NAME == T
shoot->name = "T";
debugC(1, kHypnoDebugParser, "I T");
}
-#line 1553 "engines/hypno/grammar_arc.cpp"
+#line 1599 "engines/hypno/grammar_arc.cpp"
break;
- case 52: /* bline: JTOK NUM */
-#line 238 "engines/hypno/grammar_arc.y"
+ case 56: /* bline: JTOK NUM */
+#line 251 "engines/hypno/grammar_arc.y"
{
debugC(1, kHypnoDebugParser, "J %d", (yyvsp[0].i));
}
-#line 1561 "engines/hypno/grammar_arc.cpp"
+#line 1607 "engines/hypno/grammar_arc.cpp"
break;
- case 53: /* bline: A0TOK NUM NUM */
-#line 241 "engines/hypno/grammar_arc.y"
+ case 57: /* bline: A0TOK NUM NUM */
+#line 254 "engines/hypno/grammar_arc.y"
{
shoot->position = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "A0 %d %d", (yyvsp[-1].i), (yyvsp[0].i));
}
-#line 1570 "engines/hypno/grammar_arc.cpp"
+#line 1616 "engines/hypno/grammar_arc.cpp"
break;
- case 54: /* bline: RTOK NUM NUM */
-#line 245 "engines/hypno/grammar_arc.y"
+ case 58: /* bline: RTOK NUM NUM */
+#line 258 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "R %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1576 "engines/hypno/grammar_arc.cpp"
+#line 1622 "engines/hypno/grammar_arc.cpp"
break;
- case 55: /* bline: R0TOK NUM NUM */
-#line 246 "engines/hypno/grammar_arc.y"
+ case 59: /* bline: R0TOK NUM NUM */
+#line 259 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "R0 %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1582 "engines/hypno/grammar_arc.cpp"
+#line 1628 "engines/hypno/grammar_arc.cpp"
break;
- case 56: /* bline: BNTOK NUM NUM */
-#line 247 "engines/hypno/grammar_arc.y"
+ case 60: /* bline: BNTOK NUM NUM */
+#line 260 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "BN %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1588 "engines/hypno/grammar_arc.cpp"
+#line 1634 "engines/hypno/grammar_arc.cpp"
break;
- case 57: /* bline: KNTOK NUM NUM */
-#line 248 "engines/hypno/grammar_arc.y"
+ case 61: /* bline: KNTOK NUM NUM */
+#line 261 "engines/hypno/grammar_arc.y"
{
shoot->explosionFrame = (yyvsp[0].i);
if (shoot->attackFrame == 0) // Override attack frame if it is not specified
shoot->attackFrame = (yyvsp[0].i) - 4;
debugC(1, kHypnoDebugParser, "KN %d %d", (yyvsp[-1].i), (yyvsp[0].i));
}
-#line 1599 "engines/hypno/grammar_arc.cpp"
+#line 1645 "engines/hypno/grammar_arc.cpp"
break;
- case 58: /* bline: P0TOK NUM NUM */
-#line 254 "engines/hypno/grammar_arc.y"
+ case 62: /* bline: P0TOK NUM NUM */
+#line 267 "engines/hypno/grammar_arc.y"
{
shoot->paletteSize = (yyvsp[-1].i);
shoot->paletteOffset = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "P0 %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1608 "engines/hypno/grammar_arc.cpp"
+#line 1654 "engines/hypno/grammar_arc.cpp"
break;
- case 59: /* bline: OTOK NUM NUM */
-#line 258 "engines/hypno/grammar_arc.y"
+ case 63: /* bline: OTOK NUM NUM */
+#line 271 "engines/hypno/grammar_arc.y"
{
debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i));
}
-#line 1616 "engines/hypno/grammar_arc.cpp"
+#line 1662 "engines/hypno/grammar_arc.cpp"
break;
- case 60: /* bline: CTOK NUM */
-#line 261 "engines/hypno/grammar_arc.y"
+ case 64: /* bline: CTOK NUM */
+#line 274 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "C %d", (yyvsp[0].i)); }
-#line 1622 "engines/hypno/grammar_arc.cpp"
+#line 1668 "engines/hypno/grammar_arc.cpp"
break;
- case 61: /* bline: HTOK NUM */
-#line 262 "engines/hypno/grammar_arc.y"
+ case 65: /* bline: HTOK NUM */
+#line 275 "engines/hypno/grammar_arc.y"
{
shoot->attackFrame = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "H %d", (yyvsp[0].i)); }
-#line 1630 "engines/hypno/grammar_arc.cpp"
+#line 1676 "engines/hypno/grammar_arc.cpp"
break;
- case 62: /* bline: WTOK NUM */
-#line 265 "engines/hypno/grammar_arc.y"
+ case 66: /* bline: WTOK NUM */
+#line 278 "engines/hypno/grammar_arc.y"
{
shoot->attackWeight = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "W %d", (yyvsp[0].i)); }
-#line 1638 "engines/hypno/grammar_arc.cpp"
+#line 1684 "engines/hypno/grammar_arc.cpp"
break;
- case 63: /* bline: DTOK NUM */
-#line 268 "engines/hypno/grammar_arc.y"
+ case 67: /* bline: DTOK NUM */
+#line 281 "engines/hypno/grammar_arc.y"
{
shoot->pointsToShoot = (yyvsp[0].i);
debugC(1, kHypnoDebugParser, "D %d", (yyvsp[0].i));
}
-#line 1647 "engines/hypno/grammar_arc.cpp"
+#line 1693 "engines/hypno/grammar_arc.cpp"
break;
- case 64: /* bline: SNTOK FILENAME enc */
-#line 272 "engines/hypno/grammar_arc.y"
+ case 68: /* bline: SNTOK FILENAME enc */
+#line 285 "engines/hypno/grammar_arc.y"
{
if (Common::String("S1") == (yyvsp[-2].s))
shoot->deathSound = (yyvsp[-1].s);
@@ -1655,28 +1701,28 @@ yyreduce:
shoot->hitSound = (yyvsp[-1].s);
debugC(1, kHypnoDebugParser, "SN %s", (yyvsp[-1].s)); }
-#line 1659 "engines/hypno/grammar_arc.cpp"
+#line 1705 "engines/hypno/grammar_arc.cpp"
break;
- case 65: /* bline: NTOK */
-#line 279 "engines/hypno/grammar_arc.y"
+ case 69: /* bline: NTOK */
+#line 292 "engines/hypno/grammar_arc.y"
{ debugC(1, kHypnoDebugParser, "N"); }
-#line 1665 "engines/hypno/grammar_arc.cpp"
+#line 1711 "engines/hypno/grammar_arc.cpp"
break;
- case 66: /* bline: ZTOK */
-#line 280 "engines/hypno/grammar_arc.y"
+ case 70: /* bline: ZTOK */
+#line 293 "engines/hypno/grammar_arc.y"
{
g_parsedArc->shoots.push_back(*shoot);
//delete shoot;
//shoot = nullptr;
debugC(1, kHypnoDebugParser, "Z");
}
-#line 1676 "engines/hypno/grammar_arc.cpp"
+#line 1722 "engines/hypno/grammar_arc.cpp"
break;
-#line 1680 "engines/hypno/grammar_arc.cpp"
+#line 1726 "engines/hypno/grammar_arc.cpp"
default: break;
}
diff --git a/engines/hypno/grammar_arc.y b/engines/hypno/grammar_arc.y
index e9dd28bbedf..8ab25ab5fd2 100644
--- a/engines/hypno/grammar_arc.y
+++ b/engines/hypno/grammar_arc.y
@@ -56,10 +56,10 @@ using namespace Hypno;
}
%token<s> NAME FILENAME BNTOK SNTOK KNTOK YXTOK
-%token<i> NUM
+%token<i> NUM BYTE
// header
-%token COMMENT CTOK DTOK HTOK HETOK RETTOK QTOK ENCTOK
-%token PTOK FTOK TTOK TPTOK ATOK VTOK OTOK ONTOK NTOK RTOK R0TOK ITOK JTOK ZTOK
+%token COMMENT CTOK DTOK HTOK HETOK HLTOK HUTOK RETTOK QTOK ENCTOK RESTOK
+%token PTOK FTOK TTOK TPTOK ATOK VTOK OTOK ONTOK NTOK NSTOK RTOK R0TOK ITOK JTOK ZTOK
// body
%token FNTOK NONETOK A0TOK P0TOK WTOK
@@ -89,8 +89,10 @@ hline: CTOK NUM {
| PTOK NUM NUM { debugC(1, kHypnoDebugParser, "P %d %d", $2, $3); }
| ATOK NUM NUM { debugC(1, kHypnoDebugParser, "A %d %d", $2, $3); }
| VTOK NUM NUM { debugC(1, kHypnoDebugParser, "V %d %d", $2, $3); }
+ | VTOK RESTOK { debugC(1, kHypnoDebugParser, "V 320,200"); }
| OTOK NUM NUM { debugC(1, kHypnoDebugParser, "O %d %d", $2, $3); }
| ONTOK NUM NUM { debugC(1, kHypnoDebugParser, "ON %d %d", $2, $3); }
+ | ONTOK NUM { debugC(1, kHypnoDebugParser, "ON %d", $2); }
| TPTOK FILENAME NUM FILENAME {
g_parsedArc->transitionVideo = $2;
g_parsedArc->transitionTime = $3;
@@ -106,6 +108,10 @@ hline: CTOK NUM {
g_parsedArc->background = $2;
debugC(1, kHypnoDebugParser, "N %s", $2);
}
+ | NSTOK FILENAME {
+ g_parsedArc->background = $2;
+ debugC(1, kHypnoDebugParser, "N* %s", $2);
+ }
| RTOK FILENAME {
g_parsedArc->palette = $2;
debugC(1, kHypnoDebugParser, "R %s", $2); }
@@ -140,10 +146,17 @@ hline: CTOK NUM {
debugC(1, kHypnoDebugParser, "SN %s", $2);
}
- | HETOK C02TOK NUM NUM { debugC(1, kHypnoDebugParser, "HE %d %d", $3, $4); }
- | HETOK CB3TOK NUM NUM { debugC(1, kHypnoDebugParser, "HE %d %d", $3, $4); }
- | HTOK CB3TOK NUM NUM {
- debugC(1, kHypnoDebugParser, "H %d %d", $3, $4);
+ | HETOK BYTE NUM NUM {
+ debugC(1, kHypnoDebugParser, "HE %x %d %d", $2, $3, $4);
+ }
+ | HLTOK BYTE NUM NUM {
+ debugC(1, kHypnoDebugParser, "HL %x %d %d", $2, $3, $4);
+ }
+ | HUTOK BYTE NUM NUM {
+ debugC(1, kHypnoDebugParser, "HU %x %d %d", $2, $3, $4);
+ }
+ | HTOK BYTE NUM NUM {
+ debugC(1, kHypnoDebugParser, "H %x %d %d", $2, $3, $4);
}
;
diff --git a/engines/hypno/lexer_arc.cpp b/engines/hypno/lexer_arc.cpp
index 12dca3e270d..7d1cfeab1c1 100644
--- a/engines/hypno/lexer_arc.cpp
+++ b/engines/hypno/lexer_arc.cpp
@@ -633,8 +633,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 42
-#define YY_END_OF_BUFFER 43
+#define YY_NUM_RULES 44
+#define YY_END_OF_BUFFER 45
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -642,38 +642,39 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[68] =
+static const flex_int16_t yy_accept[76] =
{ 0,
- 0, 0, 43, 41, 38, 40, 36, 36, 41, 32,
- 32, 32, 41, 7, 33, 2, 3, 33, 23, 5,
- 14, 15, 33, 11, 9, 6, 16, 12, 33, 20,
- 8, 18, 19, 33, 17, 33, 37, 40, 32, 35,
- 32, 32, 32, 0, 34, 25, 33, 26, 22, 4,
- 27, 33, 10, 28, 13, 24, 21, 29, 33, 31,
- 31, 30, 30, 39, 33, 1, 0
+ 0, 0, 45, 43, 42, 40, 40, 43, 35, 35,
+ 35, 35, 43, 9, 36, 2, 3, 36, 26, 7,
+ 17, 18, 36, 13, 11, 8, 19, 15, 36, 23,
+ 10, 21, 22, 36, 20, 36, 42, 35, 38, 35,
+ 35, 35, 35, 0, 37, 28, 36, 29, 25, 4,
+ 5, 6, 30, 14, 36, 12, 31, 16, 27, 24,
+ 32, 36, 34, 34, 33, 33, 35, 41, 36, 0,
+ 1, 0, 0, 39, 0
} ;
static const YY_CHAR yy_ec[256] =
{ 0,
- 1, 2, 1, 1, 1, 1, 1, 1, 3, 4,
- 1, 1, 5, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 5, 1, 6, 7, 8, 1, 9, 10, 11,
+ 12, 13, 13, 13, 13, 13, 13, 1, 14, 1,
+ 1, 1, 1, 1, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 21, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 1, 8, 1, 1, 40, 1, 41, 41, 41, 41,
+
+ 41, 41, 41, 41, 41, 41, 42, 41, 41, 41,
+ 41, 43, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 1, 44, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 6, 7, 1, 8, 9, 10,
- 11, 11, 11, 11, 11, 11, 11, 1, 12, 1,
- 1, 1, 1, 1, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 19, 19, 24, 25, 26,
- 27, 28, 29, 30, 19, 31, 32, 33, 34, 35,
- 1, 7, 1, 1, 36, 1, 37, 37, 37, 37,
-
- 37, 37, 37, 37, 37, 37, 38, 37, 37, 37,
- 37, 39, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 1, 40, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 41, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -685,101 +686,109 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static const YY_CHAR yy_meta[42] =
+static const YY_CHAR yy_meta[45] =
{ 0,
- 1, 1, 1, 2, 1, 1, 3, 4, 4, 4,
- 4, 1, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 1, 2, 1, 1, 1, 1, 3, 4, 4,
+ 4, 4, 4, 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1
+ 4, 4, 4, 1
} ;
-static const flex_int16_t yy_base[74] =
+static const flex_int16_t yy_base[82] =
{ 0,
- 0, 0, 152, 179, 179, 148, 179, 179, 34, 38,
- 42, 46, 0, 51, 53, 143, 141, 140, 65, 70,
- 139, 138, 71, 58, 77, 81, 137, 83, 85, 90,
- 136, 135, 134, 94, 133, 0, 179, 136, 94, 0,
- 98, 126, 75, 133, 0, 121, 120, 119, 118, 117,
- 116, 92, 115, 114, 113, 112, 111, 110, 0, 0,
- 179, 0, 179, 109, 93, 105, 179, 164, 168, 170,
- 172, 107, 174
+ 0, 0, 200, 201, 189, 201, 201, 36, 41, 46,
+ 51, 56, 0, 62, 64, 178, 176, 175, 77, 83,
+ 174, 173, 84, 93, 95, 91, 172, 98, 102, 100,
+ 171, 170, 165, 108, 164, 0, 169, 113, 0, 118,
+ 143, 93, 132, 166, 0, 161, 159, 158, 157, 156,
+ 155, 154, 153, 201, 111, 152, 151, 139, 138, 137,
+ 134, 0, 0, 201, 0, 201, 133, 136, 125, 125,
+ 126, 123, 111, 201, 201, 185, 189, 191, 193, 74,
+ 195
} ;
-static const flex_int16_t yy_def[74] =
+static const flex_int16_t yy_def[82] =
{ 0,
- 67, 1, 67, 67, 67, 67, 67, 67, 67, 68,
- 68, 68, 69, 70, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 71, 70, 72, 67, 67, 67, 68,
- 68, 68, 42, 69, 73, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, 72, 68,
- 67, 68, 67, 69, 70, 70, 0, 67, 67, 67,
- 67, 67, 67
+ 75, 1, 75, 75, 75, 75, 75, 75, 76, 76,
+ 76, 76, 77, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 79, 78, 80, 75, 75, 76, 76,
+ 76, 41, 41, 77, 81, 78, 78, 78, 78, 78,
+ 78, 78, 78, 75, 78, 78, 78, 78, 78, 78,
+ 78, 80, 76, 75, 76, 75, 41, 77, 78, 75,
+ 78, 75, 75, 75, 0, 75, 75, 75, 75, 75,
+ 75
} ;
-static const flex_int16_t yy_nxt[221] =
+static const flex_int16_t yy_nxt[246] =
{ 0,
- 4, 5, 6, 7, 8, 9, 4, 10, 11, 12,
- 10, 13, 14, 15, 16, 17, 18, 19, 18, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 18, 18, 18, 8,
- 37, 39, 39, 39, 39, 41, 41, 41, 41, 41,
- 42, 41, 41, 41, 41, 43, 41, 45, 46, 45,
- 48, 48, 48, 48, 45, 48, 48, 48, 48, 48,
- 48, 45, 49, 49, 49, 49, 45, 45, 51, 51,
- 51, 51, 52, 45, 53, 53, 50, 45, 54, 45,
- 55, 45, 56, 56, 56, 56, 45, 62, 45, 45,
-
- 45, 39, 39, 39, 39, 41, 41, 41, 41, 66,
- 59, 45, 62, 64, 63, 65, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 57, 47,
- 47, 47, 47, 41, 41, 41, 41, 64, 38, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 60, 45,
- 38, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 60, 67, 61, 40, 40, 44, 67,
- 44, 44, 47, 47, 58, 58, 45, 45, 3, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
-
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67
+ 4, 5, 6, 7, 4, 4, 8, 4, 9, 10,
+ 11, 12, 9, 13, 14, 15, 16, 17, 18, 19,
+ 18, 20, 21, 22, 23, 18, 24, 25, 26, 27,
+ 28, 29, 30, 18, 31, 32, 33, 34, 35, 36,
+ 18, 18, 18, 7, 38, 38, 38, 38, 38, 40,
+ 40, 40, 40, 40, 40, 41, 40, 40, 40, 40,
+ 40, 42, 40, 40, 40, 40, 43, 40, 40, 45,
+ 46, 45, 48, 48, 48, 48, 48, 62, 48, 48,
+ 48, 48, 48, 48, 45, 49, 49, 49, 49, 49,
+ 45, 45, 53, 53, 53, 53, 53, 54, 45, 57,
+
+ 45, 50, 45, 56, 56, 45, 58, 45, 51, 45,
+ 59, 59, 59, 59, 59, 45, 52, 65, 45, 74,
+ 55, 38, 38, 38, 38, 38, 40, 40, 40, 40,
+ 40, 73, 45, 45, 65, 72, 66, 69, 70, 68,
+ 67, 45, 60, 71, 45, 45, 45, 47, 47, 47,
+ 47, 40, 40, 40, 40, 40, 39, 39, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 63, 45, 68,
+ 37, 45, 45, 39, 39, 75, 75, 45, 45, 45,
+ 45, 45, 45, 45, 63, 45, 64, 39, 39, 44,
+ 37, 44, 44, 47, 47, 61, 61, 45, 45, 75,
+
+ 3, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75
} ;
-static const flex_int16_t yy_chk[221] =
+static const flex_int16_t yy_chk[246] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 9, 9, 9, 9, 10, 10, 10, 10, 11,
- 11, 11, 11, 12, 12, 12, 12, 14, 14, 15,
- 15, 15, 15, 15, 24, 15, 15, 15, 15, 15,
- 15, 19, 19, 19, 19, 19, 20, 23, 23, 23,
- 23, 23, 24, 25, 25, 25, 20, 26, 26, 28,
- 28, 29, 29, 29, 29, 29, 30, 43, 52, 65,
-
- 34, 39, 39, 39, 39, 41, 41, 41, 41, 65,
- 72, 66, 43, 64, 43, 52, 58, 57, 56, 55,
- 54, 53, 51, 50, 49, 48, 47, 46, 30, 34,
- 34, 34, 34, 42, 42, 42, 42, 44, 38, 35,
- 33, 32, 31, 27, 22, 21, 18, 17, 42, 16,
- 6, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 42, 0, 42, 68, 68, 69, 0,
- 69, 69, 70, 70, 71, 71, 73, 73, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
-
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67
+ 1, 1, 1, 1, 8, 8, 8, 8, 8, 9,
+ 9, 9, 9, 9, 10, 10, 10, 10, 10, 11,
+ 11, 11, 11, 11, 12, 12, 12, 12, 12, 14,
+ 14, 15, 15, 15, 15, 15, 15, 80, 15, 15,
+ 15, 15, 15, 15, 19, 19, 19, 19, 19, 19,
+ 20, 23, 23, 23, 23, 23, 23, 24, 26, 26,
+
+ 24, 20, 25, 25, 25, 28, 28, 30, 20, 29,
+ 29, 29, 29, 29, 29, 34, 20, 42, 55, 73,
+ 24, 38, 38, 38, 38, 38, 40, 40, 40, 40,
+ 40, 72, 69, 71, 42, 70, 42, 55, 67, 68,
+ 43, 61, 30, 69, 60, 59, 58, 34, 34, 34,
+ 34, 41, 41, 41, 41, 41, 43, 67, 57, 56,
+ 53, 52, 51, 50, 49, 48, 47, 41, 46, 44,
+ 37, 35, 33, 43, 67, 43, 67, 32, 31, 27,
+ 22, 21, 18, 17, 41, 16, 41, 76, 76, 77,
+ 5, 77, 77, 78, 78, 79, 79, 81, 81, 3,
+
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75
} ;
/* Table of booleans, true if rule could match eol. */
-static const flex_int32_t yy_rule_can_match_eol[43] =
+static const flex_int32_t yy_rule_can_match_eol[45] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, };
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, };
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
@@ -826,8 +835,8 @@ char *yytext;
#include "hypno/grammar.h"
#include "hypno/tokens_arc.h"
-#line 829 "engines/hypno/lexer_arc.cpp"
-#line 830 "engines/hypno/lexer_arc.cpp"
+#line 838 "engines/hypno/lexer_arc.cpp"
+#line 839 "engines/hypno/lexer_arc.cpp"
#define INITIAL 0
@@ -1044,7 +1053,7 @@ YY_DECL
{
#line 42 "engines/hypno/lexer_arc.l"
-#line 1047 "engines/hypno/lexer_arc.cpp"
+#line 1056 "engines/hypno/lexer_arc.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1071,13 +1080,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 68 )
+ if ( yy_current_state >= 76 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 67 );
+ while ( yy_current_state != 75 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1130,195 +1139,205 @@ return HETOK;
case 5:
YY_RULE_SETUP
#line 47 "engines/hypno/lexer_arc.l"
-return HTOK;
+return HLTOK;
YY_BREAK
case 6:
YY_RULE_SETUP
#line 48 "engines/hypno/lexer_arc.l"
-return PTOK;
+return HUTOK;
YY_BREAK
case 7:
YY_RULE_SETUP
#line 49 "engines/hypno/lexer_arc.l"
-return ATOK;
+return HTOK;
YY_BREAK
case 8:
YY_RULE_SETUP
#line 50 "engines/hypno/lexer_arc.l"
-return VTOK;
+return PTOK;
YY_BREAK
case 9:
YY_RULE_SETUP
#line 51 "engines/hypno/lexer_arc.l"
-return OTOK;
+return ATOK;
YY_BREAK
case 10:
YY_RULE_SETUP
#line 52 "engines/hypno/lexer_arc.l"
-return ONTOK;
+return VTOK;
YY_BREAK
case 11:
YY_RULE_SETUP
#line 53 "engines/hypno/lexer_arc.l"
-return NTOK;
+return OTOK;
YY_BREAK
case 12:
YY_RULE_SETUP
#line 54 "engines/hypno/lexer_arc.l"
-return RTOK;
+return ONTOK;
YY_BREAK
case 13:
YY_RULE_SETUP
#line 55 "engines/hypno/lexer_arc.l"
-return R0TOK;
+return NTOK;
YY_BREAK
case 14:
YY_RULE_SETUP
#line 56 "engines/hypno/lexer_arc.l"
-return ITOK;
+return NSTOK;
YY_BREAK
case 15:
YY_RULE_SETUP
#line 57 "engines/hypno/lexer_arc.l"
-return JTOK;
+return RTOK;
YY_BREAK
case 16:
YY_RULE_SETUP
#line 58 "engines/hypno/lexer_arc.l"
-return QTOK;
+return R0TOK;
YY_BREAK
case 17:
YY_RULE_SETUP
#line 59 "engines/hypno/lexer_arc.l"
-return ZTOK;
+return ITOK;
YY_BREAK
case 18:
YY_RULE_SETUP
#line 60 "engines/hypno/lexer_arc.l"
-return WTOK;
+return JTOK;
YY_BREAK
case 19:
YY_RULE_SETUP
#line 61 "engines/hypno/lexer_arc.l"
-return XTOK;
+return QTOK;
YY_BREAK
case 20:
YY_RULE_SETUP
#line 62 "engines/hypno/lexer_arc.l"
-return TTOK;
+return ZTOK;
YY_BREAK
case 21:
YY_RULE_SETUP
#line 63 "engines/hypno/lexer_arc.l"
-return TPTOK;
+return WTOK;
YY_BREAK
case 22:
YY_RULE_SETUP
#line 64 "engines/hypno/lexer_arc.l"
-return FNTOK;
+return XTOK;
YY_BREAK
case 23:
YY_RULE_SETUP
#line 65 "engines/hypno/lexer_arc.l"
-return FTOK;
+return TTOK;
YY_BREAK
case 24:
YY_RULE_SETUP
#line 66 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return SNTOK;
+return TPTOK;
YY_BREAK
case 25:
YY_RULE_SETUP
#line 67 "engines/hypno/lexer_arc.l"
-return A0TOK;
+return FNTOK;
YY_BREAK
case 26:
YY_RULE_SETUP
#line 68 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return BNTOK;
+return FTOK;
YY_BREAK
case 27:
YY_RULE_SETUP
#line 69 "engines/hypno/lexer_arc.l"
-return KNTOK;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return SNTOK;
YY_BREAK
case 28:
YY_RULE_SETUP
#line 70 "engines/hypno/lexer_arc.l"
-return P0TOK;
+return A0TOK;
YY_BREAK
case 29:
YY_RULE_SETUP
#line 71 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return YXTOK;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return BNTOK;
YY_BREAK
case 30:
YY_RULE_SETUP
#line 72 "engines/hypno/lexer_arc.l"
-return ENCTOK;
+return KNTOK;
YY_BREAK
case 31:
YY_RULE_SETUP
#line 73 "engines/hypno/lexer_arc.l"
-return ENCTOK;
+return P0TOK;
YY_BREAK
case 32:
YY_RULE_SETUP
#line 74 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.i = atoi(HYPNO_ARC_text); return NUM;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return YXTOK;
YY_BREAK
case 33:
YY_RULE_SETUP
#line 75 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return NAME;
+return ENCTOK;
YY_BREAK
case 34:
YY_RULE_SETUP
#line 76 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
+return ENCTOK;
YY_BREAK
case 35:
YY_RULE_SETUP
#line 77 "engines/hypno/lexer_arc.l"
-HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
+HYPNO_ARC_lval.i = atoi(HYPNO_ARC_text); return NUM;
YY_BREAK
case 36:
-/* rule 36 can match eol */
YY_RULE_SETUP
#line 78 "engines/hypno/lexer_arc.l"
-return RETTOK;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return NAME;
YY_BREAK
case 37:
YY_RULE_SETUP
#line 79 "engines/hypno/lexer_arc.l"
-return CB3TOK;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
YY_BREAK
case 38:
YY_RULE_SETUP
#line 80 "engines/hypno/lexer_arc.l"
-return C02TOK;
+HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
YY_BREAK
case 39:
YY_RULE_SETUP
#line 81 "engines/hypno/lexer_arc.l"
-/* ignore comment */
+return RESTOK;
YY_BREAK
case 40:
+/* rule 40 can match eol */
YY_RULE_SETUP
#line 82 "engines/hypno/lexer_arc.l"
-/* ignore whitespace */;
+return RETTOK;
YY_BREAK
case 41:
YY_RULE_SETUP
#line 83 "engines/hypno/lexer_arc.l"
-debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
+/* ignore comment */
YY_BREAK
case 42:
YY_RULE_SETUP
#line 84 "engines/hypno/lexer_arc.l"
+/* ignore whitespace */;
+ YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 85 "engines/hypno/lexer_arc.l"
+HYPNO_ARC_lval.i = HYPNO_ARC_text[0]; return BYTE;
+ YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 86 "engines/hypno/lexer_arc.l"
ECHO;
YY_BREAK
-#line 1321 "engines/hypno/lexer_arc.cpp"
+#line 1340 "engines/hypno/lexer_arc.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1616,7 +1635,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 68 )
+ if ( yy_current_state >= 76 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1644,11 +1663,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 68 )
+ if ( yy_current_state >= 76 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 67);
+ yy_is_jam = (yy_current_state == 75);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2295,7 +2314,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 84 "engines/hypno/lexer_arc.l"
+#line 86 "engines/hypno/lexer_arc.l"
namespace Hypno {
diff --git a/engines/hypno/lexer_arc.l b/engines/hypno/lexer_arc.l
index 83b69c8dfbc..a28e87b0143 100644
--- a/engines/hypno/lexer_arc.l
+++ b/engines/hypno/lexer_arc.l
@@ -44,6 +44,8 @@ NONE return NONETOK;
C return CTOK;
D return DTOK;
HE return HETOK;
+HL return HLTOK;
+HU return HUTOK;
H return HTOK;
P return PTOK;
A return ATOK;
@@ -51,6 +53,7 @@ V return VTOK;
O return OTOK;
O[0-1] return ONTOK;
N return NTOK;
+N\* return NSTOK;
R return RTOK;
R0 return R0TOK;
I return ITOK;
@@ -75,12 +78,11 @@ Y[A-Z0-9] HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return YXTOK;
[A-Za-z_][A-Za-z_0-9]* HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return NAME;
[A-Za-z][A-Za-z_0-9\\\.]+ HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
[0-9][A-Za-z_0-9\\\.]+ HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FILENAME;
+320\,200 return RESTOK;
[\n|\r\n] return RETTOK;
-\xb3 return CB3TOK;
-\x02 return C02TOK;
\;.+\r /* ignore comment */
[ \t]+ /* ignore whitespace */;
-. debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
+. HYPNO_ARC_lval.i = HYPNO_ARC_text[0]; return BYTE;
%%
namespace Hypno {
diff --git a/engines/hypno/tokens_arc.h b/engines/hypno/tokens_arc.h
index e29be529382..2b9f6bf2d70 100644
--- a/engines/hypno/tokens_arc.h
+++ b/engines/hypno/tokens_arc.h
@@ -69,36 +69,41 @@ extern int HYPNO_ARC_debug;
KNTOK = 262, /* KNTOK */
YXTOK = 263, /* YXTOK */
NUM = 264, /* NUM */
- COMMENT = 265, /* COMMENT */
- CTOK = 266, /* CTOK */
- DTOK = 267, /* DTOK */
- HTOK = 268, /* HTOK */
- HETOK = 269, /* HETOK */
- RETTOK = 270, /* RETTOK */
- QTOK = 271, /* QTOK */
- ENCTOK = 272, /* ENCTOK */
- PTOK = 273, /* PTOK */
- FTOK = 274, /* FTOK */
- TTOK = 275, /* TTOK */
- TPTOK = 276, /* TPTOK */
- ATOK = 277, /* ATOK */
- VTOK = 278, /* VTOK */
- OTOK = 279, /* OTOK */
- ONTOK = 280, /* ONTOK */
- NTOK = 281, /* NTOK */
- RTOK = 282, /* RTOK */
- R0TOK = 283, /* R0TOK */
- ITOK = 284, /* ITOK */
- JTOK = 285, /* JTOK */
- ZTOK = 286, /* ZTOK */
- FNTOK = 287, /* FNTOK */
- NONETOK = 288, /* NONETOK */
- A0TOK = 289, /* A0TOK */
- P0TOK = 290, /* P0TOK */
- WTOK = 291, /* WTOK */
- XTOK = 292, /* XTOK */
- CB3TOK = 293, /* CB3TOK */
- C02TOK = 294 /* C02TOK */
+ BYTE = 265, /* BYTE */
+ COMMENT = 266, /* COMMENT */
+ CTOK = 267, /* CTOK */
+ DTOK = 268, /* DTOK */
+ HTOK = 269, /* HTOK */
+ HETOK = 270, /* HETOK */
+ HLTOK = 271, /* HLTOK */
+ HUTOK = 272, /* HUTOK */
+ RETTOK = 273, /* RETTOK */
+ QTOK = 274, /* QTOK */
+ ENCTOK = 275, /* ENCTOK */
+ RESTOK = 276, /* RESTOK */
+ PTOK = 277, /* PTOK */
+ FTOK = 278, /* FTOK */
+ TTOK = 279, /* TTOK */
+ TPTOK = 280, /* TPTOK */
+ ATOK = 281, /* ATOK */
+ VTOK = 282, /* VTOK */
+ OTOK = 283, /* OTOK */
+ ONTOK = 284, /* ONTOK */
+ NTOK = 285, /* NTOK */
+ NSTOK = 286, /* NSTOK */
+ RTOK = 287, /* RTOK */
+ R0TOK = 288, /* R0TOK */
+ ITOK = 289, /* ITOK */
+ JTOK = 290, /* JTOK */
+ ZTOK = 291, /* ZTOK */
+ FNTOK = 292, /* FNTOK */
+ NONETOK = 293, /* NONETOK */
+ A0TOK = 294, /* A0TOK */
+ P0TOK = 295, /* P0TOK */
+ WTOK = 296, /* WTOK */
+ XTOK = 297, /* XTOK */
+ CB3TOK = 298, /* CB3TOK */
+ C02TOK = 299 /* C02TOK */
};
typedef enum HYPNO_ARC_tokentype HYPNO_ARC_token_kind_t;
#endif
@@ -112,7 +117,7 @@ union HYPNO_ARC_STYPE
char *s; /* string value */
int i; /* integer value */
-#line 116 "engines/hypno/tokens_arc.h"
+#line 121 "engines/hypno/tokens_arc.h"
};
typedef union HYPNO_ARC_STYPE HYPNO_ARC_STYPE;
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index 12a139d845e..8173b6ca975 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -50,6 +50,8 @@ void WetEngine::drawShoot(const Common::Point &mousePos) {
}
void WetEngine::drawPlayer() {
+ if (_arcadeMode == "Y1")
+ return;
if (_playerFrameIdx < _playerFrameSep) {
// TARGET ACQUIRED frame
@@ -81,6 +83,9 @@ void WetEngine::drawPlayer() {
}
void WetEngine::drawHealth() {
+ if (_arcadeMode == "Y1")
+ return;
+
uint32 c = 253; //_pixelFormat.RGBToColor(252, 252, 0);
int p = (100 * _health) / _maxHealth;
int s = _score;
diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index 790bdf53bb1..e2726f8fb63 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -221,7 +221,6 @@ void WetEngine::loadAssetsFullGame() {
_levels["c112.mi_"]->intros.push_front("c_misc/intros.smk");
loadArcadeLevel("c100.mi_", "", "");
- assert(0);
loadArcadeLevel("c200.mi_", "???", "");
loadArcadeLevel("c201.mi_", "???", "");
Commit: 7eec5ba937229b545ef666970ed0247fffb8f2af
https://github.com/scummvm/scummvm/commit/7eec5ba937229b545ef666970ed0247fffb8f2af
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-01-26T09:39:16+01:00
Commit Message:
HYPNO: fixed uninitialized variable of Talk in spider
Changed paths:
engines/hypno/grammar.h
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 087207f1b3f..81734773044 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -299,6 +299,7 @@ public:
type = TalkAction;
boxPos = Common::Point(0, 0);
escape = false;
+ active = true;
}
TalkCommands commands;
bool active;
Commit: 715a7b3d2a7dda8b13f0c8b2d9063a55f6d9828b
https://github.com/scummvm/scummvm/commit/715a7b3d2a7dda8b13f0c8b2d9063a55f6d9828b
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-01-26T09:39:16+01:00
Commit Message:
HYPNO: fixed uninitialized variable of ArcadeSequence
Changed paths:
engines/hypno/grammar.h
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 81734773044..1eddb9d84ae 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -413,6 +413,7 @@ public:
type = ArcadeLevel;
health = 100;
transitionTime = 0;
+ id = 0;
}
uint32 id;
Common::String mode;
More information about the Scummvm-git-logs
mailing list