[Scummvm-git-logs] scummvm master -> 784da145ab49d6a581d485744b1f8b04f84b5739
neuromancer
neuromancer at users.noreply.github.com
Wed Nov 10 22:20:49 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
890df1ecda HYPNO: simplified video handling during conversations
784da145ab HYPNO: improved grammar to parse more scenes
Commit: 890df1ecdab28f24c3784e0571182cb80fd5c582
https://github.com/scummvm/scummvm/commit/890df1ecdab28f24c3784e0571182cb80fd5c582
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2021-11-10T23:19:02+01:00
Commit Message:
HYPNO: simplified video handling during conversations
Changed paths:
engines/hypno/scene.cpp
engines/hypno/spider/talk.cpp
diff --git a/engines/hypno/scene.cpp b/engines/hypno/scene.cpp
index afa248e1c6..d1769fc194 100644
--- a/engines/hypno/scene.cpp
+++ b/engines/hypno/scene.cpp
@@ -320,7 +320,6 @@ void HypnoEngine::runScene(Scene *scene) {
showConversation();
drawScreen();
_refreshConversation = false;
- _videosPlaying.clear();
}
// Movies
diff --git a/engines/hypno/spider/talk.cpp b/engines/hypno/spider/talk.cpp
index c8be9aea53..e51d9b8c15 100644
--- a/engines/hypno/spider/talk.cpp
+++ b/engines/hypno/spider/talk.cpp
@@ -121,6 +121,7 @@ void SpiderEngine::showConversation() {
void SpiderEngine::leftClickedConversation(const Common::Point &mousePos) {
Talk *t;
+ Videos videos;
for (Actions::const_iterator itt = _conversation.begin(); itt != _conversation.end(); ++itt) {
Talk *a = (Talk *)*itt;
if (a->active && a->rect.contains(mousePos)) {
@@ -138,7 +139,7 @@ void SpiderEngine::leftClickedConversation(const Common::Point &mousePos) {
_refreshConversation = true;
} else if (it->command == "P") {
debugC(1, kHypnoDebugScene, "Playing %s", it->path.c_str());
- _nextParallelVideoToPlay.push_back(MVideo(it->path, it->position, false, false, false));
+ videos.push_back(MVideo(it->path, it->position, false, false, false));
_refreshConversation = true;
} else if (it->command == "S") {
debugC(1, kHypnoDebugScene, "Enabling variable %s", it->variable.c_str());
@@ -157,9 +158,12 @@ void SpiderEngine::leftClickedConversation(const Common::Point &mousePos) {
loadImage(a->background, a->backgroundPos.x, a->backgroundPos.y, false);
}
}
+ if (videos.size() > 0)
+ runIntros(videos);
}
void SpiderEngine::rightClickedConversation(const Common::Point &mousePos) {
+ Videos videos;
for (Actions::const_iterator itt = _conversation.begin(); itt != _conversation.end(); ++itt) {
Talk *a = (Talk *)*itt;
if (a->active && a->rect.contains(mousePos)) {
@@ -167,11 +171,13 @@ void SpiderEngine::rightClickedConversation(const Common::Point &mousePos) {
if (it->command == "I") {
debugC(1, kHypnoDebugScene, "Playing %s", it->path.c_str());
// Not sure why position is 50, 50 since there is only one pixel
- _nextSequentialVideoToPlay.push_back(MVideo(it->path, Common::Point(0, 0), false, false, false));
+ videos.push_back(MVideo(it->path, Common::Point(0, 0), false, false, false));
}
}
}
}
+ if (videos.size() > 0)
+ runIntros(videos);
}
} // End of namespace Hypno
Commit: 784da145ab49d6a581d485744b1f8b04f84b5739
https://github.com/scummvm/scummvm/commit/784da145ab49d6a581d485744b1f8b04f84b5739
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2021-11-10T23:19:02+01:00
Commit Message:
HYPNO: improved grammar to parse more scenes
Changed paths:
engines/hypno/grammar_mis.cpp
engines/hypno/grammar_mis.y
engines/hypno/lexer_mis.cpp
engines/hypno/lexer_mis.l
engines/hypno/spider/spider.cpp
engines/hypno/tokens_mis.h
diff --git a/engines/hypno/grammar_mis.cpp b/engines/hypno/grammar_mis.cpp
index ee1a3d48ee..12686e1972 100644
--- a/engines/hypno/grammar_mis.cpp
+++ b/engines/hypno/grammar_mis.cpp
@@ -168,27 +168,28 @@ extern int HYPNO_MIS_debug;
ESCPTOK = 280,
NRTOK = 281,
AMBITOK = 282,
- GLOBTOK = 283,
- TONTOK = 284,
- TOFFTOK = 285,
- TALKTOK = 286,
- INACTOK = 287,
- FDTOK = 288,
- BOXXTOK = 289,
- ESCAPETOK = 290,
- SECONDTOK = 291,
- INTROTOK = 292,
- DEFAULTTOK = 293,
- PG = 294,
- PA = 295,
- PD = 296,
- PH = 297,
- PF = 298,
- PE = 299,
- PP = 300,
- PI = 301,
- PL = 302,
- PS = 303
+ SWPTTOK = 283,
+ GLOBTOK = 284,
+ TONTOK = 285,
+ TOFFTOK = 286,
+ TALKTOK = 287,
+ INACTOK = 288,
+ FDTOK = 289,
+ BOXXTOK = 290,
+ ESCAPETOK = 291,
+ SECONDTOK = 292,
+ INTROTOK = 293,
+ DEFAULTTOK = 294,
+ PG = 295,
+ PA = 296,
+ PD = 297,
+ PH = 298,
+ PF = 299,
+ PE = 300,
+ PP = 301,
+ PI = 302,
+ PL = 303,
+ PS = 304
};
#endif
@@ -202,7 +203,7 @@ union HYPNO_MIS_STYPE
char *s; /* string value */
int i; /* integer value */
-#line 206 "engines/hypno/grammar_mis.cpp" /* yacc.c:355 */
+#line 207 "engines/hypno/grammar_mis.cpp" /* yacc.c:355 */
};
typedef union HYPNO_MIS_STYPE HYPNO_MIS_STYPE;
@@ -219,7 +220,7 @@ int HYPNO_MIS_parse (void);
/* Copy the second part of user declarations. */
-#line 223 "engines/hypno/grammar_mis.cpp" /* yacc.c:358 */
+#line 224 "engines/hypno/grammar_mis.cpp" /* yacc.c:358 */
#ifdef short
# undef short
@@ -461,21 +462,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 114
+#define YYLAST 119
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 49
+#define YYNTOKENS 50
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 10
+#define YYNNTS 11
/* YYNRULES -- Number of rules. */
-#define YYNRULES 49
+#define YYNRULES 53
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 121
+#define YYNSTATES 127
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 303
+#define YYMAXUTOK 304
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -514,7 +515,7 @@ static const yytype_uint8 yytranslate[] =
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, 40, 41, 42, 43, 44,
- 45, 46, 47, 48
+ 45, 46, 47, 48, 49
};
#if HYPNO_MIS_DEBUG
@@ -522,10 +523,11 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyrline[] =
{
0, 74, 74, 77, 84, 85, 89, 101, 107, 122,
- 128, 129, 136, 143, 149, 155, 161, 168, 175, 182,
- 188, 194, 200, 206, 209, 216, 219, 220, 224, 227,
- 230, 234, 238, 243, 249, 250, 256, 262, 268, 275,
- 282, 288, 293, 294, 297, 298, 301, 302, 305, 306
+ 128, 129, 130, 137, 144, 150, 156, 162, 169, 176,
+ 183, 190, 196, 202, 208, 214, 217, 218, 221, 228,
+ 231, 232, 236, 239, 242, 246, 250, 255, 261, 262,
+ 268, 274, 280, 287, 294, 300, 305, 306, 309, 310,
+ 313, 314, 317, 318
};
#endif
@@ -538,11 +540,11 @@ static const char *const yytname[] =
"GSSWITCH", "COMMAND", "WALNTOK", "NUM", "HOTSTOK", "CUTSTOK", "BACKTOK",
"INTRTOK", "RETTOK", "TIMETOK", "PALETOK", "BBOXTOK", "OVERTOK",
"MICETOK", "PLAYTOK", "ENDTOK", "MENUTOK", "SMENTOK", "ESCPTOK", "NRTOK",
- "AMBITOK", "GLOBTOK", "TONTOK", "TOFFTOK", "TALKTOK", "INACTOK", "FDTOK",
- "BOXXTOK", "ESCAPETOK", "SECONDTOK", "INTROTOK", "DEFAULTTOK", "PG",
- "PA", "PD", "PH", "PF", "PE", "PP", "PI", "PL", "PS", "$accept", "start",
- "init", "lines", "line", "alloctalk", "talk", "mflag", "flag",
- "gsswitch", YY_NULLPTR
+ "AMBITOK", "SWPTTOK", "GLOBTOK", "TONTOK", "TOFFTOK", "TALKTOK",
+ "INACTOK", "FDTOK", "BOXXTOK", "ESCAPETOK", "SECONDTOK", "INTROTOK",
+ "DEFAULTTOK", "PG", "PA", "PD", "PH", "PF", "PE", "PP", "PI", "PL", "PS",
+ "$accept", "start", "init", "lines", "line", "anything", "alloctalk",
+ "talk", "mflag", "flag", "gsswitch", YY_NULLPTR
};
#endif
@@ -555,14 +557,14 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304
};
# endif
-#define YYPACT_NINF -75
+#define YYPACT_NINF -81
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-75)))
+ (!!((Yystate) == (-81)))
#define YYTABLE_NINF -1
@@ -573,19 +575,19 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int8 yypact[] =
{
- -75, 4, 64, -75, 1, -6, 9, 10, 13, -75,
- 8, 15, 17, 19, 20, 11, 25, -75, -75, 23,
- 22, -75, -75, 64, 21, 28, -75, 29, 30, -75,
- -75, 31, 32, 34, -75, -75, 25, 36, 27, 24,
- -75, 37, 38, 39, 40, 41, -75, 42, -75, 43,
- -75, 70, 24, 24, 72, -75, 86, 89, 90, 24,
- 24, 24, 24, 24, -75, 87, 88, 24, 24, -75,
- 26, 91, 26, -75, 94, 26, 94, 92, -75, -75,
- 93, 95, 96, 97, -75, -75, -75, -75, -75, 98,
- 99, -75, -75, -75, 94, 100, 94, -75, -75, 94,
- -75, 101, -75, 102, 103, 104, 24, 24, -75, -75,
- 94, -75, 26, -75, -75, -75, -75, -75, -75, 94,
- -75
+ -81, 5, 65, -81, 9, -4, 13, 14, 15, -81,
+ 11, 19, 20, 22, 23, 25, 26, -81, -81, 27,
+ 28, 32, -81, -81, 65, 30, 31, -81, 34, 36,
+ 26, -81, 37, 38, 39, 25, 17, -81, 26, 40,
+ -81, 48, 24, -81, 42, 43, 46, 73, -81, 81,
+ -81, 85, -81, -81, -81, 86, -81, 29, 24, 24,
+ 88, -81, 71, 95, 96, 24, 24, 24, 24, 24,
+ -81, 91, 92, 24, 24, -81, 35, 93, 35, -81,
+ 99, 35, 99, 97, -81, -81, 98, 100, 101, 102,
+ -81, -81, -81, -81, -81, 103, 104, -81, -81, -81,
+ 99, 105, 99, -81, -81, 99, -81, 106, -81, 107,
+ 108, 109, 24, 24, -81, -81, 99, -81, 35, -81,
+ -81, -81, -81, -81, -81, 99, -81
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -593,31 +595,33 @@ static const yytype_int8 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 3, 0, 5, 1, 0, 0, 0, 0, 0, 23,
- 0, 0, 0, 0, 0, 0, 45, 8, 9, 0,
- 0, 24, 2, 5, 0, 0, 18, 0, 0, 10,
- 16, 0, 0, 0, 22, 44, 45, 0, 0, 43,
- 4, 0, 0, 0, 0, 0, 20, 0, 6, 0,
- 12, 0, 43, 43, 0, 29, 0, 0, 0, 43,
- 43, 43, 43, 43, 42, 0, 0, 43, 43, 21,
- 49, 0, 49, 17, 47, 49, 47, 0, 25, 26,
- 0, 0, 0, 0, 33, 36, 37, 34, 35, 0,
- 0, 41, 40, 48, 47, 0, 47, 46, 15, 47,
- 13, 0, 28, 0, 0, 0, 43, 43, 19, 7,
- 47, 14, 49, 30, 31, 32, 38, 39, 11, 47,
- 27
+ 3, 0, 5, 1, 0, 0, 0, 0, 0, 25,
+ 0, 0, 0, 0, 0, 27, 49, 8, 9, 0,
+ 0, 0, 28, 2, 5, 0, 0, 20, 0, 19,
+ 49, 17, 0, 0, 0, 27, 0, 48, 49, 0,
+ 11, 0, 47, 4, 0, 0, 0, 0, 10, 0,
+ 22, 0, 26, 24, 6, 0, 13, 0, 47, 47,
+ 0, 33, 0, 0, 0, 47, 47, 47, 47, 47,
+ 46, 0, 0, 47, 47, 23, 53, 0, 53, 18,
+ 51, 53, 51, 0, 29, 30, 0, 0, 0, 0,
+ 37, 40, 41, 38, 39, 0, 0, 45, 44, 52,
+ 51, 0, 51, 50, 16, 51, 14, 0, 32, 0,
+ 0, 0, 47, 47, 21, 7, 51, 15, 53, 34,
+ 35, 36, 42, 43, 12, 51, 31
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -75, -75, -75, 12, -75, -75, -52, -4, -74, -69
+ -81, -81, -81, 6, -81, -1, -81, -58, -26, -80,
+ -75
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 1, 2, 22, 23, 39, 69, 36, 98, 94
+ -1, 1, 2, 23, 24, 36, 42, 75, 38, 104,
+ 100
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -625,73 +629,75 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 78, 79, 100, 96, 3, 24, 99, 84, 85, 86,
- 87, 88, 25, 26, 27, 91, 92, 28, 29, 30,
- 108, 31, 110, 32, 33, 111, 34, 37, 35, 38,
- 50, 41, 48, 93, 0, 40, 118, 51, 42, 43,
- 44, 45, 46, 119, 47, 120, 49, 70, 71, 72,
- 73, 74, 75, 76, 116, 117, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 4, 77, 5, 6, 7, 8, 9,
- 10, 11, 80, 12, 13, 14, 15, 16, 17, 18,
- 81, 19, 20, 82, 83, 21, 0, 89, 90, 97,
- 0, 95, 101, 102, 0, 103, 104, 105, 106, 107,
- 109, 112, 113, 114, 115
+ 84, 85, 106, 102, 48, 3, 105, 90, 91, 92,
+ 93, 94, 54, 25, 26, 97, 98, 27, 28, 29,
+ 114, 30, 116, 31, 32, 117, 33, 34, 35, 37,
+ 43, 39, 53, 83, 52, 0, 124, 57, 40, 41,
+ 44, 45, 99, 125, 46, 126, 47, 49, 50, 51,
+ 55, 56, 76, 77, 122, 123, 78, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 4, 87, 5, 6, 7, 8,
+ 9, 10, 11, 79, 12, 13, 14, 15, 16, 17,
+ 18, 80, 19, 20, 21, 81, 82, 22, 86, 88,
+ 89, 95, 96, 101, 103, 0, 0, 107, 108, 0,
+ 109, 110, 111, 112, 113, 115, 118, 119, 120, 121
};
static const yytype_int8 yycheck[] =
{
- 52, 53, 76, 72, 0, 4, 75, 59, 60, 61,
- 62, 63, 18, 4, 4, 67, 68, 4, 10, 4,
- 94, 4, 96, 4, 4, 99, 15, 4, 3, 7,
- 3, 10, 36, 7, -1, 23, 110, 13, 10, 10,
- 10, 10, 10, 112, 10, 119, 10, 10, 10, 10,
- 10, 10, 10, 10, 106, 107, 32, 33, 34, 35,
+ 58, 59, 82, 78, 30, 0, 81, 65, 66, 67,
+ 68, 69, 38, 4, 18, 73, 74, 4, 4, 4,
+ 100, 10, 102, 4, 4, 105, 4, 4, 3, 3,
+ 24, 4, 15, 4, 35, -1, 116, 13, 10, 7,
+ 10, 10, 7, 118, 10, 125, 10, 10, 10, 10,
+ 10, 3, 10, 10, 112, 113, 10, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 9, 4, 11, 12, 13, 14, 15,
- 16, 17, 10, 19, 20, 21, 22, 23, 24, 25,
- 4, 27, 28, 4, 4, 31, -1, 10, 10, 5,
- -1, 10, 10, 10, -1, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10
+ 46, 47, 48, 49, 9, 4, 11, 12, 13, 14,
+ 15, 16, 17, 10, 19, 20, 21, 22, 23, 24,
+ 25, 10, 27, 28, 29, 10, 10, 32, 10, 4,
+ 4, 10, 10, 10, 5, -1, -1, 10, 10, -1,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 50, 51, 0, 9, 11, 12, 13, 14, 15,
+ 0, 51, 52, 0, 9, 11, 12, 13, 14, 15,
16, 17, 19, 20, 21, 22, 23, 24, 25, 27,
- 28, 31, 52, 53, 4, 18, 4, 4, 4, 10,
- 4, 4, 4, 4, 15, 3, 56, 4, 7, 54,
- 52, 10, 10, 10, 10, 10, 10, 10, 56, 10,
- 3, 13, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 55,
- 10, 10, 10, 10, 10, 10, 10, 4, 55, 55,
- 10, 4, 4, 4, 55, 55, 55, 55, 55, 10,
- 10, 55, 55, 7, 58, 10, 58, 5, 57, 58,
- 57, 10, 10, 10, 10, 10, 10, 10, 57, 10,
- 57, 57, 10, 10, 10, 10, 55, 55, 57, 58,
- 57
+ 28, 29, 32, 53, 54, 4, 18, 4, 4, 4,
+ 10, 4, 4, 4, 4, 3, 55, 3, 58, 4,
+ 10, 7, 56, 53, 10, 10, 10, 10, 58, 10,
+ 10, 10, 55, 15, 58, 10, 3, 13, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 57, 10, 10, 10, 10,
+ 10, 10, 10, 4, 57, 57, 10, 4, 4, 4,
+ 57, 57, 57, 57, 57, 10, 10, 57, 57, 7,
+ 60, 10, 60, 5, 59, 60, 59, 10, 10, 10,
+ 10, 10, 10, 10, 59, 10, 59, 59, 10, 10,
+ 10, 10, 57, 57, 59, 60, 59
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 49, 50, 51, 52, 52, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 54, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 56, 56, 57, 57, 58, 58
+ 0, 50, 51, 52, 53, 53, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 55, 55, 56, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57, 58, 58,
+ 59, 59, 60, 60
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 2, 0, 2, 0, 3, 6, 1, 1,
- 2, 7, 3, 5, 6, 5, 2, 4, 2, 6,
- 3, 3, 2, 1, 0, 2, 2, 6, 3, 1,
- 4, 4, 4, 2, 2, 2, 2, 2, 4, 4,
- 2, 2, 1, 0, 1, 0, 1, 0, 1, 0
+ 3, 2, 7, 3, 5, 6, 5, 2, 4, 2,
+ 2, 6, 3, 3, 3, 1, 2, 0, 0, 2,
+ 2, 6, 3, 1, 4, 4, 4, 2, 2, 2,
+ 2, 2, 4, 4, 2, 2, 1, 0, 1, 0,
+ 1, 0, 1, 0
};
@@ -1375,14 +1381,14 @@ yyreduce:
stack = new Hypno::HotspotsStack();
stack->push_back(new Hotspots());
}
-#line 1379 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1385 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 6:
#line 89 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Hotspot *hot = new Hotspot(MakeMenu, (yyvsp[-1].s));
- debugC(1, kHypnoDebugParser, "MENU %d.", hot->type);
+ debugC(1, kHypnoDebugParser, "MENU %s %s", (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
cur->push_back(*hot);
@@ -1392,7 +1398,7 @@ yyreduce:
smenu_idx->pop_back();
smenu_idx->push_back(idx);
}
-#line 1396 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1402 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 7:
@@ -1403,7 +1409,7 @@ yyreduce:
Hotspots *cur = stack->back();
cur->push_back(*hot);
}
-#line 1407 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1413 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 8:
@@ -1423,7 +1429,7 @@ yyreduce:
stack->push_back(hot->smenu);
debugC(1, kHypnoDebugParser, "SUBMENU");
}
-#line 1427 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1433 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 9:
@@ -1434,17 +1440,23 @@ yyreduce:
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "ESC SUBMENU"); }
-#line 1438 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1444 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 10:
#line 128 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
- { debugC(1, kHypnoDebugParser, "TIME %d", (yyvsp[0].i)); }
-#line 1444 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+ { debugC(1, kHypnoDebugParser, "TIME %d", (yyvsp[-1].i)); }
+#line 1450 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 11:
#line 129 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ { debugC(1, kHypnoDebugParser, "SWPT %d", (yyvsp[0].i)); }
+#line 1456 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+ break;
+
+ case 12:
+#line 130 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Background *a = new Background((yyvsp[-5].s), Common::Point((yyvsp[-4].i), (yyvsp[-3].i)), (yyvsp[-2].s), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
@@ -1452,11 +1464,11 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "BACK");
}
-#line 1456 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1468 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 12:
-#line 136 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 13:
+#line 137 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Global *a = new Global((yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
@@ -1464,44 +1476,44 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "GLOB");
}
-#line 1468 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1480 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 13:
-#line 143 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 14:
+#line 144 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Ambient *a = new Ambient((yyvsp[-3].s), Common::Point((yyvsp[-2].i), (yyvsp[-1].i)), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "AMBI %d %d", (yyvsp[-2].i), (yyvsp[-1].i)); }
-#line 1479 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1491 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 14:
-#line 149 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 15:
+#line 150 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Play *a = new Play((yyvsp[-4].s), Common::Point((yyvsp[-3].i), (yyvsp[-2].i)), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "PLAY %s.", (yyvsp[-4].s)); }
-#line 1490 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1502 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 15:
-#line 155 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 16:
+#line 156 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Overlay *a = new Overlay((yyvsp[-3].s), Common::Point((yyvsp[-2].i), (yyvsp[-1].i)), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
}
-#line 1501 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1513 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 16:
-#line 161 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 17:
+#line 162 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Palette *a = new Palette((yyvsp[0].s));
Hotspots *cur = stack->back();
@@ -1509,11 +1521,11 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "PALE");
}
-#line 1513 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1525 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 17:
-#line 168 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 18:
+#line 169 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Cutscene *a = new Cutscene(Common::String("cine/") + (yyvsp[-2].s));
Hotspots *cur = stack->back();
@@ -1521,11 +1533,23 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i));
}
-#line 1525 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1537 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 18:
-#line 175 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 19:
+#line 176 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ {
+ Cutscene *a = new Cutscene(Common::String("cine/") + (yyvsp[0].s));
+ Hotspots *cur = stack->back();
+ Hotspot *hot = &cur->back();
+ hot->actions.push_back(a);
+ debugC(1, kHypnoDebugParser, "INTRO %s", (yyvsp[0].s));
+ }
+#line 1549 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+ break;
+
+ case 20:
+#line 183 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Cutscene *a = new Cutscene((yyvsp[0].s));
Hotspots *cur = stack->back();
@@ -1533,189 +1557,189 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "CUTS %s", (yyvsp[0].s));
}
-#line 1537 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1561 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 19:
-#line 182 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 21:
+#line 190 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
WalN *a = new WalN((yyvsp[-5].s), (yyvsp[-4].s), Common::Point((yyvsp[-3].i), (yyvsp[-2].i)), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "WALN %s %d %d", (yyvsp[-4].s), (yyvsp[-3].i), (yyvsp[-2].i)); }
-#line 1548 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1572 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 20:
-#line 188 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 22:
+#line 196 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Mice *a = new Mice((yyvsp[-1].s), (yyvsp[0].i)-1);
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
}
-#line 1559 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1583 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 21:
-#line 194 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 23:
+#line 202 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(talk_action);
talk_action = nullptr;
debugC(1, kHypnoDebugParser, "TALK"); }
-#line 1570 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1594 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 22:
-#line 200 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 24:
+#line 208 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
debugC(1, kHypnoDebugParser, "explicit END");
g_parsedHots = stack->back();
stack->pop_back();
smenu_idx->pop_back();
}
-#line 1581 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1605 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 23:
-#line 206 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 25:
+#line 214 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "implicit END"); }
-#line 1587 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1611 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 24:
-#line 209 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 28:
+#line 221 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
assert(talk_action == nullptr);
talk_action = new Talk();
talk_action->escape = false;
talk_action->active = true;
}
-#line 1598 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1622 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 25:
-#line 216 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 29:
+#line 228 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->active = false;
debugC(1, kHypnoDebugParser, "inactive"); }
-#line 1606 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1630 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 26:
-#line 219 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 30:
+#line 231 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "inactive"); }
-#line 1612 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1636 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 27:
-#line 220 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 31:
+#line 232 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->background = (yyvsp[-4].s);
talk_action->backgroundPos = Common::Point((yyvsp[-3].i), (yyvsp[-2].i));
debugC(1, kHypnoDebugParser, "BACK in TALK"); }
-#line 1621 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1645 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 28:
-#line 224 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 32:
+#line 236 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->boxPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "BOXX %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1629 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1653 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 29:
-#line 227 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 33:
+#line 239 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->escape = true;
debugC(1, kHypnoDebugParser, "ESCAPE"); }
-#line 1637 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1661 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 30:
-#line 230 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 34:
+#line 242 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->second = (yyvsp[-2].s);
talk_action->secondPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "SECOND %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1646 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1670 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 31:
-#line 234 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 35:
+#line 246 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->intro = (yyvsp[-2].s);
talk_action->introPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1655 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1679 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 32:
-#line 238 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 36:
+#line 250 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
// Unsure how this is different from second
talk_action->second = (yyvsp[-2].s);
talk_action->secondPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "DEFAULT %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
-#line 1665 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1689 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 33:
-#line 243 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 37:
+#line 255 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "G";
talk_cmd.path = (yyvsp[-1].s)+2;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
-#line 1676 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1700 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 34:
-#line 249 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 38:
+#line 261 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
-#line 1682 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1706 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 35:
-#line 250 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 39:
+#line 262 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "F";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
-#line 1693 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1717 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 36:
-#line 256 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 40:
+#line 268 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "A";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "|A%d", talk_cmd.num); }
-#line 1704 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1728 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 37:
-#line 262 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 41:
+#line 274 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "D";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
-#line 1715 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1739 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 38:
-#line 268 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 42:
+#line 280 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "P";
@@ -1723,11 +1747,11 @@ yyreduce:
talk_cmd.position = Common::Point((yyvsp[-2].i), (yyvsp[-1].i));
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s %d %d", (yyvsp[-3].s), (yyvsp[-2].i), (yyvsp[-1].i)); }
-#line 1727 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1751 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 39:
-#line 275 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 43:
+#line 287 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "I";
@@ -1735,74 +1759,74 @@ yyreduce:
talk_cmd.position = Common::Point((yyvsp[-2].i), (yyvsp[-1].i));
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s %d %d", (yyvsp[-3].s), (yyvsp[-2].i), (yyvsp[-1].i)); }
-#line 1739 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1763 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 40:
-#line 282 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 44:
+#line 294 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "S";
talk_cmd.variable = (yyvsp[-1].s)+2;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
-#line 1750 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1774 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 41:
-#line 288 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 45:
+#line 300 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "L";
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "|L"); }
-#line 1760 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1784 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 42:
-#line 293 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 46:
+#line 305 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "|E"); }
-#line 1766 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1790 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 44:
-#line 297 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
- { (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "name: %s", (yyvsp[0].s)); }
-#line 1772 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+ case 48:
+#line 309 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ { (yyval.s) = (yyvsp[0].s); }
+#line 1796 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 45:
-#line 298 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 49:
+#line 310 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
-#line 1778 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1802 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 46:
-#line 301 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 50:
+#line 313 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "flag: %s", (yyvsp[0].s)); }
-#line 1784 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1808 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 47:
-#line 302 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 51:
+#line 314 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
-#line 1790 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1814 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 48:
-#line 305 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 52:
+#line 317 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "switch %s", (yyvsp[0].s)); }
-#line 1796 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1820 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
- case 49:
-#line 306 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
+ case 53:
+#line 318 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
-#line 1802 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1826 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
-#line 1806 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
+#line 1830 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
diff --git a/engines/hypno/grammar_mis.y b/engines/hypno/grammar_mis.y
index 09d3864a06..f221754ed8 100644
--- a/engines/hypno/grammar_mis.y
+++ b/engines/hypno/grammar_mis.y
@@ -62,7 +62,7 @@ using namespace Hypno;
%token<s> NAME FILENAME FLAG COMMENT GSSWITCH COMMAND WALNTOK
%token<i> NUM
%token HOTSTOK CUTSTOK BACKTOK INTRTOK RETTOK TIMETOK PALETOK BBOXTOK OVERTOK MICETOK PLAYTOK ENDTOK
-%token MENUTOK SMENTOK ESCPTOK NRTOK AMBITOK
+%token MENUTOK SMENTOK ESCPTOK NRTOK AMBITOK SWPTTOK
%token GLOBTOK TONTOK TOFFTOK
%token TALKTOK INACTOK FDTOK BOXXTOK ESCAPETOK SECONDTOK INTROTOK DEFAULTTOK
%token<s> PG PA PD PH PF PE PP PI PL PS
@@ -88,7 +88,7 @@ lines: line lines
line: MENUTOK mflag mflag {
Hotspot *hot = new Hotspot(MakeMenu, $2);
- debugC(1, kHypnoDebugParser, "MENU %d.", hot->type);
+ debugC(1, kHypnoDebugParser, "MENU %s %s", $2, $3);
Hotspots *cur = stack->back();
cur->push_back(*hot);
@@ -125,7 +125,8 @@ line: MENUTOK mflag mflag {
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "ESC SUBMENU"); }
- | TIMETOK NUM { debugC(1, kHypnoDebugParser, "TIME %d", $2); }
+ | TIMETOK NUM mflag { debugC(1, kHypnoDebugParser, "TIME %d", $2); }
+ | SWPTTOK NUM { debugC(1, kHypnoDebugParser, "SWPT %d", $2); }
| BACKTOK FILENAME NUM NUM gsswitch flag flag {
Background *a = new Background($2, Common::Point($3, $4), $5, $6, $7);
Hotspots *cur = stack->back();
@@ -172,6 +173,13 @@ line: MENUTOK mflag mflag {
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", $2, $3, $4);
}
+ | INTRTOK FILENAME {
+ Cutscene *a = new Cutscene(Common::String("cine/") + $2);
+ Hotspots *cur = stack->back();
+ Hotspot *hot = &cur->back();
+ hot->actions.push_back(a);
+ debugC(1, kHypnoDebugParser, "INTRO %s", $2);
+ }
| CUTSTOK FILENAME {
Cutscene *a = new Cutscene($2);
Hotspots *cur = stack->back();
@@ -197,7 +205,7 @@ line: MENUTOK mflag mflag {
hot->actions.push_back(talk_action);
talk_action = nullptr;
debugC(1, kHypnoDebugParser, "TALK"); }
- | ENDTOK RETTOK {
+ | ENDTOK anything RETTOK {
debugC(1, kHypnoDebugParser, "explicit END");
g_parsedHots = stack->back();
stack->pop_back();
@@ -206,6 +214,10 @@ line: MENUTOK mflag mflag {
| RETTOK { debugC(1, kHypnoDebugParser, "implicit END"); }
;
+anything: NAME anything
+ | // nothing
+ ;
+
alloctalk: {
assert(talk_action == nullptr);
talk_action = new Talk();
@@ -294,7 +306,7 @@ talk: INACTOK talk {
| /*nothing*/
;
-mflag: NAME { $$ = $1; debugC(1, kHypnoDebugParser, "name: %s", $1); }
+mflag: NAME { $$ = $1; }
| /* nothing */ { $$ = scumm_strdup(""); }
;
diff --git a/engines/hypno/lexer_mis.cpp b/engines/hypno/lexer_mis.cpp
index d1e0072b4a..f3c5c1385e 100644
--- a/engines/hypno/lexer_mis.cpp
+++ b/engines/hypno/lexer_mis.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 46
-#define YY_END_OF_BUFFER 47
+#define YY_NUM_RULES 47
+#define YY_END_OF_BUFFER 48
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -642,24 +642,24 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[144] =
+static const flex_int16_t yy_accept[147] =
{ 0,
- 0, 0, 47, 45, 44, 43, 43, 45, 39, 42,
- 42, 45, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 43, 44,
- 42, 0, 39, 39, 0, 1, 41, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 0, 0, 35, 0, 0, 0, 0, 36, 0, 0,
- 2, 39, 0, 40, 40, 40, 40, 40, 11, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 32, 33, 34, 28, 31,
-
- 30, 29, 27, 39, 0, 4, 5, 20, 6, 40,
- 40, 15, 7, 37, 9, 40, 24, 3, 10, 13,
- 8, 16, 40, 14, 17, 12, 26, 39, 19, 40,
- 40, 40, 23, 40, 38, 40, 21, 40, 22, 25,
- 40, 18, 0
+ 0, 0, 48, 46, 45, 44, 44, 46, 40, 43,
+ 43, 46, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 44, 45,
+ 43, 0, 40, 40, 0, 1, 42, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 0, 0, 36, 0, 0, 0, 0, 37, 0,
+ 0, 2, 40, 0, 41, 41, 41, 41, 41, 11,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 33, 34, 35,
+
+ 29, 32, 31, 30, 28, 40, 0, 4, 5, 20,
+ 6, 41, 41, 15, 7, 38, 9, 41, 24, 3,
+ 10, 13, 8, 16, 41, 14, 25, 17, 12, 27,
+ 40, 19, 41, 41, 41, 23, 41, 39, 41, 21,
+ 41, 22, 26, 41, 18, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -702,49 +702,49 @@ static const YY_CHAR yy_meta[40] =
5, 5, 5, 5, 5, 5, 5, 5, 1
} ;
-static const flex_int16_t yy_base[155] =
+static const flex_int16_t yy_base[158] =
{ 0,
- 0, 0, 299, 300, 296, 300, 300, 32, 36, 36,
- 39, 0, 45, 46, 47, 48, 50, 291, 51, 55,
- 52, 66, 56, 61, 71, 78, 58, 0, 87, 294,
- 84, 0, 287, 83, 277, 0, 0, 282, 54, 80,
- 63, 95, 96, 103, 106, 104, 107, 110, 112, 114,
- 117, 116, 118, 121, 122, 129, 123, 124, 130, 0,
- 142, 147, 300, 150, 0, 153, 0, 300, 0, 0,
- 0, 138, 258, 132, 158, 133, 142, 160, 276, 161,
- 163, 164, 165, 169, 170, 172, 173, 174, 176, 177,
- 179, 181, 182, 180, 186, 200, 206, 209, 0, 212,
-
- 0, 0, 0, 189, 244, 268, 265, 260, 255, 194,
- 195, 254, 252, 192, 251, 205, 185, 250, 249, 248,
- 247, 246, 219, 245, 244, 241, 238, 220, 300, 222,
- 223, 227, 237, 225, 300, 228, 236, 229, 233, 231,
- 232, 60, 300, 259, 264, 267, 58, 272, 275, 278,
- 281, 284, 287, 290
+ 0, 0, 305, 306, 302, 306, 306, 32, 36, 36,
+ 39, 0, 45, 46, 47, 48, 50, 297, 51, 55,
+ 52, 66, 56, 61, 71, 78, 58, 0, 93, 299,
+ 84, 0, 291, 83, 281, 0, 0, 286, 54, 80,
+ 63, 94, 97, 102, 101, 95, 96, 98, 113, 114,
+ 121, 118, 122, 124, 126, 125, 128, 133, 137, 139,
+ 0, 139, 142, 306, 145, 0, 150, 0, 306, 0,
+ 0, 0, 154, 262, 158, 159, 132, 160, 162, 280,
+ 163, 164, 165, 166, 168, 171, 167, 178, 179, 180,
+ 174, 182, 181, 183, 188, 187, 207, 208, 211, 214,
+
+ 0, 217, 0, 0, 0, 194, 246, 272, 267, 262,
+ 261, 196, 206, 260, 258, 192, 257, 200, 226, 256,
+ 255, 254, 253, 252, 229, 246, 245, 244, 241, 239,
+ 226, 306, 230, 231, 235, 238, 233, 306, 234, 237,
+ 236, 199, 186, 240, 60, 306, 266, 271, 274, 58,
+ 279, 282, 285, 288, 291, 294, 297
} ;
-static const flex_int16_t yy_def[155] =
+static const flex_int16_t yy_def[158] =
{ 0,
- 143, 1, 143, 143, 143, 143, 143, 143, 144, 143,
- 143, 145, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 147, 143, 143,
- 143, 148, 144, 144, 143, 145, 149, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 147,
- 143, 143, 143, 143, 150, 143, 151, 143, 152, 153,
- 148, 144, 143, 146, 146, 146, 146, 146, 146, 146,
- 146, 154, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 143, 143, 143, 150, 143,
-
- 151, 152, 153, 144, 143, 146, 146, 146, 146, 146,
- 146, 146, 146, 154, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 144, 143, 146,
- 146, 146, 146, 146, 143, 146, 146, 146, 146, 146,
- 146, 146, 0, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143
+ 146, 1, 146, 146, 146, 146, 146, 146, 147, 146,
+ 146, 148, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 150, 146, 146,
+ 146, 151, 147, 147, 146, 148, 152, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 150, 146, 146, 146, 146, 153, 146, 154, 146, 155,
+ 156, 151, 147, 146, 149, 149, 149, 149, 149, 149,
+ 149, 149, 157, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 146, 146, 146,
+
+ 153, 146, 154, 155, 156, 147, 146, 149, 149, 149,
+ 149, 149, 149, 149, 149, 157, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 147, 146, 149, 149, 149, 149, 149, 146, 149, 149,
+ 149, 149, 149, 149, 149, 0, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146
} ;
-static const flex_int16_t yy_nxt[340] =
+static const flex_int16_t yy_nxt[346] =
{ 0,
4, 5, 6, 7, 8, 4, 9, 10, 10, 11,
12, 4, 13, 14, 15, 16, 17, 18, 19, 20,
@@ -752,40 +752,41 @@ static const flex_int16_t yy_nxt[340] =
26, 18, 18, 27, 18, 18, 28, 18, 29, 31,
31, 31, 32, 31, 31, 31, 31, 31, 31, 34,
37, 37, 37, 37, 35, 37, 37, 37, 40, 37,
- 37, 37, 60, 37, 43, 37, 37, 74, 37, 39,
- 59, 37, 41, 53, 46, 44, 37, 49, 42, 45,
- 47, 48, 50, 37, 54, 37, 51, 55, 52, 143,
- 57, 31, 31, 31, 75, 56, 72, 76, 58, 61,
-
- 37, 37, 62, 63, 64, 65, 66, 67, 37, 37,
- 68, 37, 37, 78, 69, 37, 70, 37, 79, 37,
- 80, 37, 37, 37, 84, 77, 37, 37, 37, 37,
- 81, 87, 88, 90, 37, 37, 91, 37, 37, 86,
- 83, 89, 85, 82, 143, 92, 93, 37, 94, 96,
- 96, 96, 106, 95, 97, 97, 97, 98, 98, 98,
- 100, 100, 100, 37, 104, 37, 37, 108, 37, 37,
- 37, 109, 110, 111, 37, 37, 113, 37, 37, 37,
- 107, 37, 37, 116, 37, 37, 37, 37, 112, 119,
- 37, 37, 121, 127, 115, 143, 126, 37, 117, 37,
-
- 37, 38, 120, 118, 125, 123, 124, 96, 96, 96,
- 37, 133, 122, 97, 97, 97, 98, 98, 98, 100,
- 100, 100, 131, 128, 37, 130, 143, 37, 37, 38,
- 37, 135, 37, 37, 37, 132, 37, 37, 37, 137,
- 139, 37, 37, 37, 134, 136, 37, 138, 142, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 140, 37,
- 37, 141, 33, 33, 36, 37, 36, 36, 36, 38,
- 37, 38, 71, 37, 71, 71, 71, 37, 129, 37,
- 99, 37, 99, 101, 105, 101, 102, 37, 102, 103,
- 73, 103, 114, 143, 114, 30, 37, 30, 143, 3,
-
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143
+ 37, 37, 61, 37, 43, 37, 37, 75, 37, 39,
+ 60, 37, 41, 53, 46, 44, 37, 49, 42, 45,
+ 47, 48, 50, 37, 54, 37, 51, 55, 52, 146,
+ 58, 31, 31, 31, 76, 56, 73, 77, 59, 37,
+
+ 37, 37, 37, 37, 57, 62, 37, 37, 63, 64,
+ 65, 66, 67, 68, 79, 81, 69, 80, 37, 37,
+ 70, 82, 71, 37, 78, 85, 37, 37, 84, 37,
+ 37, 37, 83, 37, 89, 88, 91, 37, 37, 87,
+ 92, 93, 37, 86, 37, 90, 98, 98, 98, 99,
+ 99, 99, 100, 100, 100, 94, 95, 102, 102, 102,
+ 146, 96, 97, 37, 37, 37, 110, 37, 37, 37,
+ 37, 37, 37, 37, 112, 113, 37, 115, 108, 37,
+ 106, 109, 118, 37, 37, 37, 37, 37, 37, 111,
+ 114, 37, 37, 37, 121, 117, 123, 37, 120, 119,
+
+ 146, 37, 38, 129, 37, 37, 126, 122, 125, 124,
+ 128, 37, 37, 127, 130, 98, 98, 98, 99, 99,
+ 99, 100, 100, 100, 102, 102, 102, 133, 131, 38,
+ 135, 37, 146, 134, 37, 37, 37, 138, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 140, 142, 37,
+ 37, 37, 136, 139, 137, 141, 145, 37, 37, 37,
+ 37, 37, 37, 37, 143, 37, 37, 37, 144, 33,
+ 33, 36, 37, 36, 36, 36, 38, 37, 38, 72,
+ 132, 72, 72, 72, 37, 37, 37, 101, 107, 101,
+ 103, 37, 103, 104, 74, 104, 105, 146, 105, 116,
+
+ 30, 116, 37, 30, 146, 3, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146
} ;
-static const flex_int16_t yy_chk[340] =
+static const flex_int16_t yy_chk[346] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -793,45 +794,46 @@ static const flex_int16_t yy_chk[340] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 8,
8, 8, 9, 10, 10, 10, 11, 11, 11, 9,
13, 14, 15, 16, 11, 17, 19, 21, 14, 39,
- 20, 23, 147, 27, 16, 142, 24, 39, 41, 13,
+ 20, 23, 150, 27, 16, 145, 24, 39, 41, 13,
27, 22, 14, 24, 19, 17, 25, 21, 15, 17,
19, 20, 22, 26, 24, 40, 22, 25, 23, 34,
- 26, 31, 31, 31, 40, 25, 34, 41, 26, 29,
-
- 42, 43, 29, 29, 29, 29, 29, 29, 44, 46,
- 29, 45, 47, 43, 29, 48, 29, 49, 44, 50,
- 45, 52, 51, 53, 49, 42, 54, 55, 57, 58,
- 46, 51, 52, 54, 56, 59, 55, 74, 76, 50,
- 48, 53, 49, 47, 72, 56, 57, 77, 58, 61,
- 61, 61, 74, 59, 62, 62, 62, 64, 64, 64,
- 66, 66, 66, 75, 72, 78, 80, 76, 81, 82,
- 83, 77, 78, 80, 84, 85, 81, 86, 87, 88,
- 75, 89, 90, 84, 91, 94, 92, 93, 80, 87,
- 117, 95, 89, 95, 83, 104, 94, 114, 85, 110,
-
- 111, 82, 88, 86, 93, 91, 92, 96, 96, 96,
- 116, 117, 90, 97, 97, 97, 98, 98, 98, 100,
- 100, 100, 111, 104, 123, 110, 128, 130, 131, 114,
- 134, 128, 132, 136, 138, 116, 140, 141, 139, 131,
- 134, 137, 133, 127, 123, 130, 126, 132, 141, 125,
- 124, 122, 121, 120, 119, 118, 115, 113, 136, 112,
- 109, 138, 144, 144, 145, 108, 145, 145, 145, 146,
- 107, 146, 148, 106, 148, 148, 148, 149, 105, 149,
- 150, 79, 150, 151, 73, 151, 152, 38, 152, 153,
- 35, 153, 154, 33, 154, 30, 18, 5, 3, 143,
-
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143
+ 26, 31, 31, 31, 40, 25, 34, 41, 26, 42,
+
+ 46, 47, 43, 48, 25, 29, 45, 44, 29, 29,
+ 29, 29, 29, 29, 43, 45, 29, 44, 49, 50,
+ 29, 46, 29, 52, 42, 49, 51, 53, 48, 54,
+ 56, 55, 47, 57, 52, 51, 54, 77, 58, 50,
+ 55, 56, 59, 49, 60, 53, 62, 62, 62, 63,
+ 63, 63, 65, 65, 65, 57, 58, 67, 67, 67,
+ 73, 59, 60, 75, 76, 78, 77, 79, 81, 82,
+ 83, 84, 87, 85, 79, 81, 86, 82, 75, 91,
+ 73, 76, 85, 88, 89, 90, 93, 92, 94, 78,
+ 81, 143, 96, 95, 88, 84, 90, 116, 87, 86,
+
+ 106, 112, 83, 96, 142, 118, 93, 89, 92, 91,
+ 95, 113, 97, 94, 97, 98, 98, 98, 99, 99,
+ 99, 100, 100, 100, 102, 102, 102, 112, 106, 116,
+ 118, 119, 131, 113, 125, 133, 134, 131, 137, 139,
+ 135, 141, 140, 136, 130, 144, 129, 134, 137, 128,
+ 127, 126, 119, 133, 125, 135, 144, 124, 123, 122,
+ 121, 120, 117, 115, 139, 114, 111, 110, 141, 147,
+ 147, 148, 109, 148, 148, 148, 149, 108, 149, 151,
+ 107, 151, 151, 151, 152, 80, 152, 153, 74, 153,
+ 154, 38, 154, 155, 35, 155, 156, 33, 156, 157,
+
+ 30, 157, 18, 5, 3, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146
} ;
/* Table of booleans, true if rule could match eol. */
-static const flex_int32_t yy_rule_can_match_eol[47] =
+static const flex_int32_t yy_rule_can_match_eol[48] =
{ 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, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, };
+ 0, 0, 0, 0, 1, 0, 0, 0, };
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
@@ -878,8 +880,8 @@ char *yytext;
#include "hypno/grammar.h"
#include "hypno/tokens_mis.h"
-#line 882 "engines/hypno/lexer_mis.cpp"
-#line 883 "engines/hypno/lexer_mis.cpp"
+#line 884 "engines/hypno/lexer_mis.cpp"
+#line 885 "engines/hypno/lexer_mis.cpp"
#define INITIAL 0
@@ -1096,7 +1098,7 @@ YY_DECL
{
#line 42 "engines/hypno/lexer_mis.l"
-#line 1100 "engines/hypno/lexer_mis.cpp"
+#line 1102 "engines/hypno/lexer_mis.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1123,13 +1125,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 >= 144 )
+ if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 143 );
+ while ( yy_current_state != 146 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1282,115 +1284,120 @@ return INTRTOK;
case 25:
YY_RULE_SETUP
#line 67 "engines/hypno/lexer_mis.l"
-return DEFAULTTOK;
+return SWPTTOK;
YY_BREAK
case 26:
YY_RULE_SETUP
#line 68 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
+return DEFAULTTOK;
YY_BREAK
case 27:
YY_RULE_SETUP
#line 69 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
YY_BREAK
case 28:
YY_RULE_SETUP
#line 70 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PG;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;
YY_BREAK
case 29:
YY_RULE_SETUP
#line 71 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PP;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PG;
YY_BREAK
case 30:
YY_RULE_SETUP
#line 72 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PI;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PP;
YY_BREAK
case 31:
YY_RULE_SETUP
#line 73 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PH;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PI;
YY_BREAK
case 32:
YY_RULE_SETUP
#line 74 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PA;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PH;
YY_BREAK
case 33:
YY_RULE_SETUP
#line 75 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PD;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PA;
YY_BREAK
case 34:
YY_RULE_SETUP
#line 76 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PF;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PD;
YY_BREAK
case 35:
YY_RULE_SETUP
#line 77 "engines/hypno/lexer_mis.l"
-return PE;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PF;
YY_BREAK
case 36:
YY_RULE_SETUP
#line 78 "engines/hypno/lexer_mis.l"
-return PL;
+return PE;
YY_BREAK
case 37:
YY_RULE_SETUP
#line 79 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return GSSWITCH;
+return PL;
YY_BREAK
case 38:
YY_RULE_SETUP
#line 80 "engines/hypno/lexer_mis.l"
-return BBOXTOK;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return GSSWITCH;
YY_BREAK
case 39:
YY_RULE_SETUP
#line 81 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FLAG;
+return BBOXTOK;
YY_BREAK
case 40:
YY_RULE_SETUP
#line 82 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return NAME;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FLAG;
YY_BREAK
case 41:
YY_RULE_SETUP
#line 83 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FILENAME;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return NAME;
YY_BREAK
case 42:
YY_RULE_SETUP
#line 84 "engines/hypno/lexer_mis.l"
-HYPNO_MIS_lval.i = atoi(HYPNO_MIS_text); return NUM;
+HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FILENAME;
YY_BREAK
case 43:
-/* rule 43 can match eol */
YY_RULE_SETUP
#line 85 "engines/hypno/lexer_mis.l"
-return RETTOK;
+HYPNO_MIS_lval.i = atoi(HYPNO_MIS_text); return NUM;
YY_BREAK
case 44:
+/* rule 44 can match eol */
YY_RULE_SETUP
#line 86 "engines/hypno/lexer_mis.l"
-/* ignore whitespace */;
+return RETTOK;
YY_BREAK
case 45:
YY_RULE_SETUP
#line 87 "engines/hypno/lexer_mis.l"
-debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
+/* ignore whitespace */;
YY_BREAK
case 46:
YY_RULE_SETUP
#line 88 "engines/hypno/lexer_mis.l"
+debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
+ YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 89 "engines/hypno/lexer_mis.l"
ECHO;
YY_BREAK
-#line 1394 "engines/hypno/lexer_mis.cpp"
+#line 1401 "engines/hypno/lexer_mis.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1688,7 +1695,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 >= 144 )
+ if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1716,11 +1723,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 >= 144 )
+ if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 143);
+ yy_is_jam = (yy_current_state == 146);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2367,7 +2374,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 88 "engines/hypno/lexer_mis.l"
+#line 89 "engines/hypno/lexer_mis.l"
namespace Hypno {
diff --git a/engines/hypno/lexer_mis.l b/engines/hypno/lexer_mis.l
index 5e584a73ea..4da468bf79 100644
--- a/engines/hypno/lexer_mis.l
+++ b/engines/hypno/lexer_mis.l
@@ -64,6 +64,7 @@ ESCAPE return ESCAPETOK;
SECOND return SECONDTOK;
INTRO return INTROTOK;
INTR return INTRTOK;
+SWPT return SWPTTOK;
DEFAULT return DEFAULTTOK;
WAL[0-1] HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
\|S[A-Za-z_0-9\\\.]+ HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;
diff --git a/engines/hypno/spider/spider.cpp b/engines/hypno/spider/spider.cpp
index 2dbdbff5c3..7dea2ece18 100644
--- a/engines/hypno/spider/spider.cpp
+++ b/engines/hypno/spider/spider.cpp
@@ -75,7 +75,8 @@ void SpiderEngine::loadAssetsFullGame() {
sc->hots[4].actions.push_back(cl);
loadSceneLevel("bank.mi_", "", prefix);
- //loadSceneLevel("busintro.mi_", "", prefix);
+ loadSceneLevel("busintro.mi_", "buspuz.mi_", prefix);
+ loadSceneLevel("buspuz.mi_", "", prefix);
loadArcadeLevel("c1", "", "spider");
loadArcadeLevel("c2", "", "spider");
diff --git a/engines/hypno/tokens_mis.h b/engines/hypno/tokens_mis.h
index ebfa8d9d9a..fc601d5c87 100644
--- a/engines/hypno/tokens_mis.h
+++ b/engines/hypno/tokens_mis.h
@@ -78,27 +78,28 @@ extern int HYPNO_MIS_debug;
ESCPTOK = 280,
NRTOK = 281,
AMBITOK = 282,
- GLOBTOK = 283,
- TONTOK = 284,
- TOFFTOK = 285,
- TALKTOK = 286,
- INACTOK = 287,
- FDTOK = 288,
- BOXXTOK = 289,
- ESCAPETOK = 290,
- SECONDTOK = 291,
- INTROTOK = 292,
- DEFAULTTOK = 293,
- PG = 294,
- PA = 295,
- PD = 296,
- PH = 297,
- PF = 298,
- PE = 299,
- PP = 300,
- PI = 301,
- PL = 302,
- PS = 303
+ SWPTTOK = 283,
+ GLOBTOK = 284,
+ TONTOK = 285,
+ TOFFTOK = 286,
+ TALKTOK = 287,
+ INACTOK = 288,
+ FDTOK = 289,
+ BOXXTOK = 290,
+ ESCAPETOK = 291,
+ SECONDTOK = 292,
+ INTROTOK = 293,
+ DEFAULTTOK = 294,
+ PG = 295,
+ PA = 296,
+ PD = 297,
+ PH = 298,
+ PF = 299,
+ PE = 300,
+ PP = 301,
+ PI = 302,
+ PL = 303,
+ PS = 304
};
#endif
@@ -112,7 +113,7 @@ union HYPNO_MIS_STYPE
char *s; /* string value */
int i; /* integer value */
-#line 116 "engines/hypno/tokens_mis.h" /* yacc.c:1909 */
+#line 117 "engines/hypno/tokens_mis.h" /* yacc.c:1909 */
};
typedef union HYPNO_MIS_STYPE HYPNO_MIS_STYPE;
More information about the Scummvm-git-logs
mailing list