mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-14 16:07:39 +00:00
HYPNO: added objective support for arcade sequences and some fixes in palettes and frame delay
This commit is contained in:
parent
09153dac9f
commit
15724b853f
@ -59,7 +59,8 @@ void HypnoEngine::parseArcadeShooting(const Common::String &prefix, const Common
|
||||
ArcadeShooting *arcade = new ArcadeShooting();
|
||||
*arcade = *g_parsedArc;
|
||||
_levels[filename] = (Level*) arcade;
|
||||
g_parsedArc->background.clear();
|
||||
g_parsedArc->backgroundVideo.clear();
|
||||
g_parsedArc->transitionPalette.clear();
|
||||
g_parsedArc->player.clear();
|
||||
g_parsedArc->shoots.clear();
|
||||
g_parsedArc->intros.clear();
|
||||
@ -163,14 +164,18 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
|
||||
_playerFrameIdx = -1;
|
||||
|
||||
MVideo background = MVideo(arc->background, Common::Point(0, 0), false, false, false);
|
||||
MVideo background = MVideo(arc->backgroundVideo, Common::Point(0, 0), false, false, false);
|
||||
|
||||
changeCursor("arcade");
|
||||
playVideo(background);
|
||||
loadPalette(arc->palette);
|
||||
loadPalette(arc->backgroundPalette);
|
||||
bool shootingPrimary = false;
|
||||
bool shootingSecondary = false;
|
||||
bool needsUpdate = true;
|
||||
bool transition = false;
|
||||
_obj1KillsCount = 0;
|
||||
_obj1MissesCount = 0;
|
||||
debugC(1, kHypnoDebugArcade, "Using frame delay: %d", arc->frameDelay);
|
||||
|
||||
Common::Event event;
|
||||
while (!shouldQuit()) {
|
||||
@ -237,8 +242,11 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
|
||||
if (_health <= 0) {
|
||||
skipVideo(background);
|
||||
if (!arc->defeatNoEnergyVideo.empty()) {
|
||||
MVideo video(arc->defeatNoEnergyVideo, Common::Point(0, 0), false, true, false);
|
||||
if (!arc->defeatNoEnergySecondVideo.empty() && transition) {
|
||||
MVideo video(arc->defeatNoEnergySecondVideo, Common::Point(0, 0), false, true, false);
|
||||
runIntro(video);
|
||||
} else if (!arc->defeatNoEnergyFirstVideo.empty()) {
|
||||
MVideo video(arc->defeatNoEnergyFirstVideo, Common::Point(0, 0), false, true, false);
|
||||
runIntro(video);
|
||||
}
|
||||
assert(!arc->levelIfLose.empty());
|
||||
@ -247,19 +255,19 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!arc->transitionVideo.empty() && background.decoder->getCurFrame() >= (int)arc->transitionTime) {
|
||||
const byte *videoPalette = nullptr;
|
||||
videoPalette = background.decoder->getPalette();
|
||||
if (!arc->transitionVideo.empty() && !transition && background.decoder->getCurFrame() >= (int)arc->transitionTime) {
|
||||
transition = true;
|
||||
background.decoder->pauseVideo(true);
|
||||
|
||||
debugC(1, kHypnoDebugArcade, "Playing transition %s", arc->transitionVideo.c_str());
|
||||
arc->transitionTime = background.decoder->getFrameCount() + 1;
|
||||
loadPalette(arc->transitionPalette);
|
||||
MVideo video(arc->transitionVideo, Common::Point(0, 0), false, true, false);
|
||||
runIntro(video);
|
||||
|
||||
if (!arc->transitionPalette.empty())
|
||||
loadPalette(arc->transitionPalette);
|
||||
else
|
||||
loadPalette(arc->backgroundPalette);
|
||||
background.decoder->pauseVideo(false);
|
||||
g_system->getPaletteManager()->setPalette(videoPalette, 0, 256);
|
||||
updateScreen(background);
|
||||
drawScreen();
|
||||
}
|
||||
@ -273,6 +281,19 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
|
||||
if (checkArcadeLevelCompleted(background, segments[segmentIdx])) {
|
||||
skipVideo(background);
|
||||
// Objectives
|
||||
if (arc->obj1KillsRequired > 0 || arc->obj1MissesAllowed > 0) {
|
||||
if (_obj1KillsCount < arc->obj1KillsRequired || _obj1MissesCount > arc->obj1MissesAllowed) {
|
||||
MVideo video(arc->defeatMissBossVideo, Common::Point(0, 0), false, true, false);
|
||||
runIntro(video);
|
||||
assert(!arc->levelIfLose.empty());
|
||||
_nextLevel = arc->levelIfLose;
|
||||
_arcadeMode = "";
|
||||
debugC(1, kHypnoDebugArcade, "Losing level (objectives) and jumping to %s", _nextLevel.c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!arc->nextLevelVideo.empty()) {
|
||||
MVideo video(arc->nextLevelVideo, Common::Point(0, 0), false, true, false);
|
||||
runIntro(video);
|
||||
@ -322,7 +343,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
if (it->video && it->video->decoder) {
|
||||
int frame = it->video->decoder->getCurFrame();
|
||||
if (frame > 0 && frame >= (int)(it->attackFrame) && !it->destroyed) {
|
||||
_health = _health - it->attackWeight;
|
||||
//_health = _health - it->attackWeight;
|
||||
hitPlayer();
|
||||
it->attackFrame = it->video->decoder->getFrameCount() + 1; // It will never attack again
|
||||
}
|
||||
@ -362,7 +383,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
|
||||
drawHealth();
|
||||
}
|
||||
|
||||
g_system->delayMillis(10);
|
||||
g_system->delayMillis(arc->frameDelay);
|
||||
}
|
||||
|
||||
// Deallocate shoots
|
||||
@ -412,8 +433,10 @@ bool HypnoEngine::clickedPrimaryShoot(const Common::Point &mousePos) { return tr
|
||||
void HypnoEngine::shoot(const Common::Point &mousePos) {
|
||||
int i = detectTarget(mousePos);
|
||||
if (i >= 0) {
|
||||
playSound(_soundPath + _shoots[i].hitSound, 1);
|
||||
playSound(_soundPath + _shoots[i].deathSound, 1);
|
||||
if (!_shoots[i].hitSound.empty())
|
||||
playSound(_soundPath + _shoots[i].hitSound, 1);
|
||||
if (!_shoots[i].deathSound.empty())
|
||||
playSound(_soundPath + _shoots[i].deathSound, 1);
|
||||
_score = _score + _shoots[i].pointsToShoot;
|
||||
_shoots[i].destroyed = true;
|
||||
|
||||
@ -423,9 +446,10 @@ void HypnoEngine::shoot(const Common::Point &mousePos) {
|
||||
_shoots[i].video->position = Common::Point(mousePos.x - w / 2, mousePos.y - h / 2);
|
||||
_shoots[i].video->decoder->forceSeekToFrame(_shoots[i].explosionFrame + 2);
|
||||
} else {
|
||||
byte p[3] = {}; // Always black?
|
||||
byte p[3] = {0x00, 0x00, 0x00}; // Always black?
|
||||
assert(_shoots[i].paletteSize == 1 || _shoots[i].paletteSize == 0);
|
||||
loadPalette((byte *) &p, _shoots[i].paletteOffset, _shoots[i].paletteSize);
|
||||
_obj1KillsCount = _obj1KillsCount + _shoots[i].obj1KillsCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -361,6 +361,9 @@ public:
|
||||
paletteSize = 0;
|
||||
attackFrame = 0;
|
||||
explosionFrame = 0;
|
||||
obj1KillsCount = 0;
|
||||
obj1MissesCount = 0;
|
||||
animation = "NONE";
|
||||
}
|
||||
Common::String name;
|
||||
Filename animation;
|
||||
@ -371,6 +374,10 @@ public:
|
||||
uint32 pointsToShoot;
|
||||
uint32 attackWeight;
|
||||
|
||||
// Objectives
|
||||
uint32 obj1KillsCount;
|
||||
uint32 obj1MissesCount;
|
||||
|
||||
// Palette
|
||||
uint32 paletteOffset;
|
||||
uint32 paletteSize;
|
||||
@ -420,22 +427,30 @@ public:
|
||||
health = 100;
|
||||
transitionTime = 0;
|
||||
id = 0;
|
||||
obj1KillsRequired = 0;
|
||||
obj1MissesAllowed = 0;
|
||||
}
|
||||
uint32 id;
|
||||
uint32 frameDelay;
|
||||
Common::String mode;
|
||||
uint32 transitionTime;
|
||||
Segments segments;
|
||||
Segments segments;
|
||||
|
||||
// Objectives
|
||||
uint32 obj1KillsRequired;
|
||||
uint32 obj1MissesAllowed;
|
||||
|
||||
// Videos
|
||||
Filename transitionVideo;
|
||||
Filename transitionPalette;
|
||||
Filename nextLevelVideo;
|
||||
Filename defeatNoEnergyVideo;
|
||||
Filename defeatNoEnergyFirstVideo;
|
||||
Filename defeatNoEnergySecondVideo;
|
||||
Filename defeatMissBossVideo;
|
||||
|
||||
Filename background;
|
||||
Filename backgroundVideo;
|
||||
Filename backgroundPalette;
|
||||
Filename player;
|
||||
Filename palette;
|
||||
int health;
|
||||
Shoots shoots;
|
||||
ShootSequence shootSequence;
|
||||
|
@ -138,35 +138,35 @@ enum yysymbol_kind_t
|
||||
YYSYMBOL_SNTOK = 6, /* SNTOK */
|
||||
YYSYMBOL_KNTOK = 7, /* KNTOK */
|
||||
YYSYMBOL_YXTOK = 8, /* YXTOK */
|
||||
YYSYMBOL_NUM = 9, /* NUM */
|
||||
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_FNTOK = 9, /* FNTOK */
|
||||
YYSYMBOL_NUM = 10, /* NUM */
|
||||
YYSYMBOL_BYTE = 11, /* BYTE */
|
||||
YYSYMBOL_COMMENT = 12, /* COMMENT */
|
||||
YYSYMBOL_CTOK = 13, /* CTOK */
|
||||
YYSYMBOL_DTOK = 14, /* DTOK */
|
||||
YYSYMBOL_HTOK = 15, /* HTOK */
|
||||
YYSYMBOL_HETOK = 16, /* HETOK */
|
||||
YYSYMBOL_HLTOK = 17, /* HLTOK */
|
||||
YYSYMBOL_HUTOK = 18, /* HUTOK */
|
||||
YYSYMBOL_RETTOK = 19, /* RETTOK */
|
||||
YYSYMBOL_QTOK = 20, /* QTOK */
|
||||
YYSYMBOL_ENCTOK = 21, /* ENCTOK */
|
||||
YYSYMBOL_RESTOK = 22, /* RESTOK */
|
||||
YYSYMBOL_PTOK = 23, /* PTOK */
|
||||
YYSYMBOL_FTOK = 24, /* FTOK */
|
||||
YYSYMBOL_TTOK = 25, /* TTOK */
|
||||
YYSYMBOL_TPTOK = 26, /* TPTOK */
|
||||
YYSYMBOL_ATOK = 27, /* ATOK */
|
||||
YYSYMBOL_VTOK = 28, /* VTOK */
|
||||
YYSYMBOL_OTOK = 29, /* OTOK */
|
||||
YYSYMBOL_ONTOK = 30, /* ONTOK */
|
||||
YYSYMBOL_NTOK = 31, /* NTOK */
|
||||
YYSYMBOL_NSTOK = 32, /* NSTOK */
|
||||
YYSYMBOL_RTOK = 33, /* RTOK */
|
||||
YYSYMBOL_R0TOK = 34, /* R0TOK */
|
||||
YYSYMBOL_ITOK = 35, /* ITOK */
|
||||
YYSYMBOL_JTOK = 36, /* JTOK */
|
||||
YYSYMBOL_ZTOK = 37, /* ZTOK */
|
||||
YYSYMBOL_NONETOK = 38, /* NONETOK */
|
||||
YYSYMBOL_A0TOK = 39, /* A0TOK */
|
||||
YYSYMBOL_P0TOK = 40, /* P0TOK */
|
||||
@ -509,7 +509,7 @@ union yyalloc
|
||||
/* YYFINAL -- State number of the termination state. */
|
||||
#define YYFINAL 6
|
||||
/* YYLAST -- Last index in YYTABLE. */
|
||||
#define YYLAST 133
|
||||
#define YYLAST 138
|
||||
|
||||
/* YYNTOKENS -- Number of terminals. */
|
||||
#define YYNTOKENS 45
|
||||
@ -572,13 +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, 95, 96, 102,
|
||||
107, 108, 112, 116, 119, 123, 124, 138, 150, 155,
|
||||
158, 161, 168, 169, 172, 173, 174, 177, 182, 187,
|
||||
192, 196, 200, 204, 208, 212, 216, 220, 224, 228,
|
||||
232, 236, 240, 244, 248, 252, 256, 259, 263, 264,
|
||||
265, 266, 272, 276, 279, 280, 283, 286, 290, 297,
|
||||
298
|
||||
88, 92, 93, 94, 95, 96, 101, 102, 103, 109,
|
||||
114, 115, 119, 123, 126, 130, 131, 147, 159, 164,
|
||||
167, 170, 177, 178, 181, 182, 183, 186, 192, 197,
|
||||
202, 206, 210, 214, 218, 222, 226, 230, 234, 238,
|
||||
242, 246, 250, 254, 258, 262, 266, 269, 273, 278,
|
||||
279, 280, 286, 290, 293, 294, 297, 300, 304, 311,
|
||||
312
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -595,11 +595,11 @@ 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", "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",
|
||||
"BNTOK", "SNTOK", "KNTOK", "YXTOK", "FNTOK", "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", "NONETOK", "A0TOK", "P0TOK", "WTOK", "XTOK", "CB3TOK", "C02TOK",
|
||||
"$accept", "start", "$@1", "header", "hline", "enc", "body", "bline", YY_NULLPTR
|
||||
};
|
||||
|
||||
@ -610,7 +610,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define YYPACT_NINF (-75)
|
||||
#define YYPACT_NINF (-79)
|
||||
|
||||
#define yypact_value_is_default(Yyn) \
|
||||
((Yyn) == YYPACT_NINF)
|
||||
@ -624,21 +624,21 @@ yysymbol_name (yysymbol_kind_t yysymbol)
|
||||
STATE-NUM. */
|
||||
static const yytype_int8 yypact[] =
|
||||
{
|
||||
-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
|
||||
4, -79, 4, 11, 67, -79, -79, 12, 13, 5,
|
||||
8, 16, 22, 31, 32, 67, 34, 36, 37, -1,
|
||||
18, 41, 3, 42, 43, 50, 52, 53, 57, 26,
|
||||
67, -79, 24, -79, -79, 55, 59, 64, 65, -79,
|
||||
66, 68, -79, 69, 78, 79, 91, 93, -79, 94,
|
||||
95, -79, -79, -79, -79, 48, -79, -79, -79, 96,
|
||||
97, 98, 99, -79, -79, -79, -79, 73, -79, -79,
|
||||
-79, -79, -5, -79, -79, -79, -79, -79, 100, 107,
|
||||
102, 1, 103, 104, 105, -5, 112, 108, -79, 109,
|
||||
110, 35, 111, -79, 113, 114, 115, 75, -5, 116,
|
||||
24, 117, -79, -79, -79, -79, -79, -79, -79, 118,
|
||||
119, 120, -79, -79, -79, -79, -79, -79, -79, -79,
|
||||
-79, -79, -79, -79, -79, -79, -79, -79, -79, 121,
|
||||
122, -79, -79, -79, -79, -79, -79, -79, -79, -79,
|
||||
-79, -79
|
||||
};
|
||||
|
||||
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
||||
@ -654,11 +654,11 @@ static const yytype_int8 yydefact[] =
|
||||
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, 0, 0, 0, 0, 36, 0, 0, 69, 0,
|
||||
0, 0, 0, 70, 0, 0, 0, 0, 36, 0,
|
||||
33, 0, 37, 38, 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, 0,
|
||||
0, 66, 3, 34, 60, 68, 61, 63, 58, 59,
|
||||
57, 62
|
||||
};
|
||||
@ -666,7 +666,7 @@ static const yytype_int8 yydefact[] =
|
||||
/* YYPGOTO[NTERM-NUM]. */
|
||||
static const yytype_int16 yypgoto[] =
|
||||
{
|
||||
-75, 131, -75, -10, -75, 21, -74, -75
|
||||
-79, 131, -79, -9, -79, 38, -78, -79
|
||||
};
|
||||
|
||||
/* YYDEFGOTO[NTERM-NUM]. */
|
||||
@ -680,59 +680,59 @@ static const yytype_int8 yydefgoto[] =
|
||||
number is the opposite. If YYTABLE_NINF, syntax error. */
|
||||
static const yytype_uint8 yytable[] =
|
||||
{
|
||||
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
|
||||
78, 79, 80, 43, 81, 102, 39, 107, 82, 83,
|
||||
84, 6, 1, 47, 85, 33, 31, 32, 34, 86,
|
||||
133, 56, 45, 2, 87, 48, 88, 35, 89, 90,
|
||||
91, 92, 93, 36, 94, 95, 96, 44, 112, 103,
|
||||
113, 114, 37, 38, 40, 57, 41, 42, 115, 116,
|
||||
117, 46, 49, 50, 51, 118, 52, 53, 119, 120,
|
||||
121, 54, 122, 55, 123, 59, 124, 72, 125, 60,
|
||||
126, 127, 7, 8, 61, 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, 73, 74, 75, 76,
|
||||
99, 100, 101, 104, 105, 106, 108, 132, 109, 110,
|
||||
111, 128, 0, 129, 130, 131, 134, 136, 137, 138,
|
||||
139, 140, 141, 5, 0, 0, 0, 0, 135
|
||||
};
|
||||
|
||||
static const yytype_int8 yycheck[] =
|
||||
{
|
||||
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,
|
||||
5, 6, 7, 4, 9, 4, 15, 85, 13, 14,
|
||||
15, 0, 8, 10, 19, 10, 4, 4, 10, 24,
|
||||
98, 30, 4, 19, 29, 22, 31, 11, 33, 34,
|
||||
35, 36, 37, 11, 39, 40, 41, 38, 3, 38,
|
||||
5, 6, 11, 11, 10, 21, 10, 10, 13, 14,
|
||||
15, 10, 10, 10, 4, 20, 4, 4, 23, 24,
|
||||
25, 4, 27, 37, 29, 10, 31, 19, 33, 10,
|
||||
35, 36, 5, 6, 10, 10, 10, 4, 10, 10,
|
||||
13, 14, 15, 16, 17, 18, 19, 20, 10, 10,
|
||||
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
|
||||
33, 10, 35, 10, 10, 10, 10, 10, 10, 10,
|
||||
10, 4, 10, 10, 10, 10, 4, 42, 10, 10,
|
||||
10, 10, -1, 10, 10, 10, 10, 10, 10, 10,
|
||||
10, 10, 10, 2, -1, -1, -1, -1, 100
|
||||
};
|
||||
|
||||
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||
state STATE-NUM. */
|
||||
static const yytype_int8 yystos[] =
|
||||
{
|
||||
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
|
||||
0, 8, 19, 46, 47, 46, 0, 5, 6, 13,
|
||||
14, 15, 16, 17, 18, 19, 20, 23, 24, 25,
|
||||
26, 27, 28, 29, 30, 31, 32, 33, 35, 48,
|
||||
49, 4, 4, 10, 10, 11, 11, 11, 11, 48,
|
||||
10, 10, 10, 4, 38, 4, 10, 10, 22, 10,
|
||||
10, 4, 4, 4, 4, 37, 48, 21, 50, 10,
|
||||
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
||||
10, 10, 19, 10, 10, 10, 10, 4, 5, 6,
|
||||
7, 9, 13, 14, 15, 19, 24, 29, 31, 33,
|
||||
34, 35, 36, 37, 39, 40, 41, 51, 52, 10,
|
||||
4, 10, 4, 38, 10, 10, 10, 51, 4, 10,
|
||||
10, 10, 3, 5, 6, 13, 14, 15, 20, 23,
|
||||
24, 25, 27, 29, 31, 33, 35, 36, 10, 10,
|
||||
10, 10, 42, 51, 10, 50, 10, 10, 10, 10,
|
||||
10, 10
|
||||
};
|
||||
|
||||
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
|
||||
@ -1243,122 +1243,129 @@ yyreduce:
|
||||
|
||||
case 10: /* hline: DTOK NUM */
|
||||
#line 88 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "D %d", (yyvsp[0].i)); }
|
||||
#line 1248 "engines/hypno/grammar_arc.cpp"
|
||||
{
|
||||
g_parsedArc->frameDelay = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "D %d", (yyvsp[0].i));
|
||||
}
|
||||
#line 1251 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 11: /* hline: PTOK NUM NUM */
|
||||
#line 89 "engines/hypno/grammar_arc.y"
|
||||
#line 92 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "P %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1254 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1257 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 12: /* hline: ATOK NUM NUM */
|
||||
#line 90 "engines/hypno/grammar_arc.y"
|
||||
#line 93 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "A %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1260 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1263 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 13: /* hline: VTOK NUM NUM */
|
||||
#line 91 "engines/hypno/grammar_arc.y"
|
||||
#line 94 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "V %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1266 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1269 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 14: /* hline: VTOK RESTOK */
|
||||
#line 92 "engines/hypno/grammar_arc.y"
|
||||
#line 95 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "V 320,200"); }
|
||||
#line 1272 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1275 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 15: /* hline: OTOK NUM NUM */
|
||||
#line 93 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1278 "engines/hypno/grammar_arc.cpp"
|
||||
#line 96 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->obj1KillsRequired = (yyvsp[-1].i);
|
||||
g_parsedArc->obj1MissesAllowed = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1285 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 16: /* hline: ONTOK NUM NUM */
|
||||
#line 94 "engines/hypno/grammar_arc.y"
|
||||
#line 101 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "ON %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1284 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1291 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 17: /* hline: ONTOK NUM */
|
||||
#line 95 "engines/hypno/grammar_arc.y"
|
||||
#line 102 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "ON %d", (yyvsp[0].i)); }
|
||||
#line 1290 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1297 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 18: /* hline: TPTOK FILENAME NUM FILENAME */
|
||||
#line 96 "engines/hypno/grammar_arc.y"
|
||||
#line 103 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->transitionVideo = (yyvsp[-2].s);
|
||||
g_parsedArc->transitionTime = (yyvsp[-1].i);
|
||||
g_parsedArc->transitionPalette = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "Tp %s %d %s", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].s));
|
||||
}
|
||||
#line 1301 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1308 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 19: /* hline: TTOK FILENAME NUM */
|
||||
#line 102 "engines/hypno/grammar_arc.y"
|
||||
#line 109 "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 1311 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1318 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 20: /* hline: TTOK NONETOK NUM */
|
||||
#line 107 "engines/hypno/grammar_arc.y"
|
||||
#line 114 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "T NONE %d", (yyvsp[0].i)); }
|
||||
#line 1317 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1324 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 21: /* hline: NTOK FILENAME */
|
||||
#line 108 "engines/hypno/grammar_arc.y"
|
||||
#line 115 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->background = (yyvsp[0].s);
|
||||
g_parsedArc->backgroundVideo = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "N %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1326 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1333 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 22: /* hline: NSTOK FILENAME */
|
||||
#line 112 "engines/hypno/grammar_arc.y"
|
||||
#line 119 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->background = (yyvsp[0].s);
|
||||
g_parsedArc->backgroundVideo = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "N* %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1335 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1342 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 23: /* hline: RTOK FILENAME */
|
||||
#line 116 "engines/hypno/grammar_arc.y"
|
||||
#line 123 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->palette = (yyvsp[0].s);
|
||||
g_parsedArc->backgroundPalette = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "R %s", (yyvsp[0].s)); }
|
||||
#line 1343 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1350 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 24: /* hline: ITOK FILENAME */
|
||||
#line 119 "engines/hypno/grammar_arc.y"
|
||||
#line 126 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->player = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1352 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1359 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 25: /* hline: QTOK NUM NUM */
|
||||
#line 123 "engines/hypno/grammar_arc.y"
|
||||
#line 130 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "Q %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1358 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1365 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 26: /* hline: BNTOK FILENAME */
|
||||
#line 124 "engines/hypno/grammar_arc.y"
|
||||
#line 131 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
if (Common::String("B0") == (yyvsp[-1].s))
|
||||
g_parsedArc->intros.push_back((yyvsp[0].s));
|
||||
@ -1367,17 +1374,19 @@ yyreduce:
|
||||
else if (Common::String("B2") == (yyvsp[-1].s))
|
||||
g_parsedArc->nextLevelVideo = (yyvsp[0].s);
|
||||
else if (Common::String("B3") == (yyvsp[-1].s))
|
||||
g_parsedArc->defeatNoEnergyVideo = (yyvsp[0].s);
|
||||
g_parsedArc->defeatNoEnergyFirstVideo = (yyvsp[0].s);
|
||||
else if (Common::String("B4") == (yyvsp[-1].s))
|
||||
g_parsedArc->defeatMissBossVideo = (yyvsp[0].s);
|
||||
else if (Common::String("B5") == (yyvsp[-1].s))
|
||||
g_parsedArc->defeatNoEnergySecondVideo = (yyvsp[0].s);
|
||||
|
||||
debugC(1, kHypnoDebugParser, "BN %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1377 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1386 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 27: /* hline: SNTOK FILENAME enc */
|
||||
#line 138 "engines/hypno/grammar_arc.y"
|
||||
#line 147 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
if (Common::String("S0") == (yyvsp[-2].s))
|
||||
g_parsedArc->music = (yyvsp[-1].s);
|
||||
@ -1390,315 +1399,320 @@ yyreduce:
|
||||
|
||||
debugC(1, kHypnoDebugParser, "SN %s", (yyvsp[-1].s));
|
||||
}
|
||||
#line 1394 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1403 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 28: /* hline: HETOK BYTE NUM NUM */
|
||||
#line 150 "engines/hypno/grammar_arc.y"
|
||||
#line 159 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
Segment segment((yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
g_parsedArc->segments.push_back(segment);
|
||||
debugC(1, kHypnoDebugParser, "HE %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1404 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1413 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 29: /* hline: HLTOK BYTE NUM NUM */
|
||||
#line 155 "engines/hypno/grammar_arc.y"
|
||||
#line 164 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
debugC(1, kHypnoDebugParser, "HL %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1412 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1421 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 30: /* hline: HUTOK BYTE NUM NUM */
|
||||
#line 158 "engines/hypno/grammar_arc.y"
|
||||
#line 167 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
debugC(1, kHypnoDebugParser, "HU %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1420 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1429 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 31: /* hline: HTOK BYTE NUM NUM */
|
||||
#line 161 "engines/hypno/grammar_arc.y"
|
||||
#line 170 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
Segment segment((yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
g_parsedArc->segments.push_back(segment);
|
||||
debugC(1, kHypnoDebugParser, "H %x %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1430 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1439 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 37: /* bline: FNTOK FILENAME */
|
||||
#line 177 "engines/hypno/grammar_arc.y"
|
||||
#line 186 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot = new Shoot();
|
||||
shoot->animation = (yyvsp[0].s);
|
||||
if (Common::String("F0") == (yyvsp[-1].s))
|
||||
shoot->animation = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "FN %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1440 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1450 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 38: /* bline: FNTOK NONETOK */
|
||||
#line 182 "engines/hypno/grammar_arc.y"
|
||||
#line 192 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot = new Shoot();
|
||||
shoot->animation = "NONE";
|
||||
debugC(1, kHypnoDebugParser, "FN NONE");
|
||||
}
|
||||
#line 1450 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1460 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 39: /* bline: FTOK FILENAME */
|
||||
#line 187 "engines/hypno/grammar_arc.y"
|
||||
#line 197 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot = new Shoot();
|
||||
shoot->animation = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "FN %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1460 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1470 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 40: /* bline: ITOK NAME */
|
||||
#line 192 "engines/hypno/grammar_arc.y"
|
||||
#line 202 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->name = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1469 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1479 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 41: /* bline: ITOK BNTOK */
|
||||
#line 196 "engines/hypno/grammar_arc.y"
|
||||
#line 206 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == B1
|
||||
shoot->name = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1478 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1488 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 42: /* bline: ITOK ATOK */
|
||||
#line 200 "engines/hypno/grammar_arc.y"
|
||||
#line 210 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == A
|
||||
shoot->name = "A";
|
||||
debugC(1, kHypnoDebugParser, "I A");
|
||||
}
|
||||
#line 1487 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1497 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 43: /* bline: ITOK CTOK */
|
||||
#line 204 "engines/hypno/grammar_arc.y"
|
||||
#line 214 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == C
|
||||
shoot->name = "C";
|
||||
debugC(1, kHypnoDebugParser, "I C");
|
||||
}
|
||||
#line 1496 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1506 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 44: /* bline: ITOK DTOK */
|
||||
#line 208 "engines/hypno/grammar_arc.y"
|
||||
#line 218 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == D
|
||||
shoot->name = "D";
|
||||
debugC(1, kHypnoDebugParser, "I D");
|
||||
}
|
||||
#line 1505 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1515 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 45: /* bline: ITOK FTOK */
|
||||
#line 212 "engines/hypno/grammar_arc.y"
|
||||
#line 222 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == F
|
||||
shoot->name = "F";
|
||||
debugC(1, kHypnoDebugParser, "I F");
|
||||
}
|
||||
#line 1514 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1524 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 46: /* bline: ITOK HTOK */
|
||||
#line 216 "engines/hypno/grammar_arc.y"
|
||||
#line 226 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == H
|
||||
shoot->name = "H";
|
||||
debugC(1, kHypnoDebugParser, "I H");
|
||||
}
|
||||
#line 1523 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1533 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 47: /* bline: ITOK ITOK */
|
||||
#line 220 "engines/hypno/grammar_arc.y"
|
||||
#line 230 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == I
|
||||
shoot->name = "I";
|
||||
debugC(1, kHypnoDebugParser, "I I");
|
||||
}
|
||||
#line 1532 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1542 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 48: /* bline: ITOK JTOK */
|
||||
#line 224 "engines/hypno/grammar_arc.y"
|
||||
#line 234 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == I
|
||||
shoot->name = "J";
|
||||
debugC(1, kHypnoDebugParser, "I J");
|
||||
}
|
||||
#line 1541 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1551 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 49: /* bline: ITOK NTOK */
|
||||
#line 228 "engines/hypno/grammar_arc.y"
|
||||
#line 238 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == N
|
||||
shoot->name = "N";
|
||||
debugC(1, kHypnoDebugParser, "I N");
|
||||
}
|
||||
#line 1550 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1560 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 50: /* bline: ITOK OTOK */
|
||||
#line 232 "engines/hypno/grammar_arc.y"
|
||||
#line 242 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == O
|
||||
shoot->name = "O";
|
||||
debugC(1, kHypnoDebugParser, "I O");
|
||||
}
|
||||
#line 1559 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1569 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 51: /* bline: ITOK PTOK */
|
||||
#line 236 "engines/hypno/grammar_arc.y"
|
||||
#line 246 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == P
|
||||
shoot->name = "P";
|
||||
debugC(1, kHypnoDebugParser, "I P");
|
||||
}
|
||||
#line 1568 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1578 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 52: /* bline: ITOK QTOK */
|
||||
#line 240 "engines/hypno/grammar_arc.y"
|
||||
#line 250 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == Q
|
||||
shoot->name = "Q";
|
||||
debugC(1, kHypnoDebugParser, "I Q");
|
||||
}
|
||||
#line 1577 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1587 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 53: /* bline: ITOK RTOK */
|
||||
#line 244 "engines/hypno/grammar_arc.y"
|
||||
#line 254 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == R
|
||||
shoot->name = "R";
|
||||
debugC(1, kHypnoDebugParser, "I R");
|
||||
}
|
||||
#line 1586 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1596 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 54: /* bline: ITOK SNTOK */
|
||||
#line 248 "engines/hypno/grammar_arc.y"
|
||||
#line 258 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == S1
|
||||
shoot->name = (yyvsp[0].s);
|
||||
debugC(1, kHypnoDebugParser, "I %s", (yyvsp[0].s));
|
||||
}
|
||||
#line 1595 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1605 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 55: /* bline: ITOK TTOK */
|
||||
#line 252 "engines/hypno/grammar_arc.y"
|
||||
#line 262 "engines/hypno/grammar_arc.y"
|
||||
{ // Workaround for NAME == T
|
||||
shoot->name = "T";
|
||||
debugC(1, kHypnoDebugParser, "I T");
|
||||
}
|
||||
#line 1604 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1614 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 56: /* bline: JTOK NUM */
|
||||
#line 256 "engines/hypno/grammar_arc.y"
|
||||
#line 266 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
debugC(1, kHypnoDebugParser, "J %d", (yyvsp[0].i));
|
||||
}
|
||||
#line 1612 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1622 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 57: /* bline: A0TOK NUM NUM */
|
||||
#line 259 "engines/hypno/grammar_arc.y"
|
||||
#line 269 "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 1621 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1631 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 58: /* bline: RTOK NUM NUM */
|
||||
#line 263 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "R %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1627 "engines/hypno/grammar_arc.cpp"
|
||||
#line 273 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->obj1KillsCount = (yyvsp[-1].i);
|
||||
shoot->obj1MissesCount = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "R %d %d", (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1641 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 59: /* bline: R0TOK NUM NUM */
|
||||
#line 264 "engines/hypno/grammar_arc.y"
|
||||
#line 278 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "R0 %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1633 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1647 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 60: /* bline: BNTOK NUM NUM */
|
||||
#line 265 "engines/hypno/grammar_arc.y"
|
||||
#line 279 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "BN %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
|
||||
#line 1639 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1653 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 61: /* bline: KNTOK NUM NUM */
|
||||
#line 266 "engines/hypno/grammar_arc.y"
|
||||
#line 280 "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 1650 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1664 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 62: /* bline: P0TOK NUM NUM */
|
||||
#line 272 "engines/hypno/grammar_arc.y"
|
||||
#line 286 "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 1659 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 63: /* bline: OTOK NUM NUM */
|
||||
#line 276 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1667 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 64: /* bline: CTOK NUM */
|
||||
#line 279 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "C %d", (yyvsp[0].i)); }
|
||||
#line 1673 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 65: /* bline: HTOK NUM */
|
||||
#line 280 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->attackFrame = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "H %d", (yyvsp[0].i)); }
|
||||
case 63: /* bline: OTOK NUM NUM */
|
||||
#line 290 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
debugC(1, kHypnoDebugParser, "O %d %d", (yyvsp[-1].i), (yyvsp[0].i));
|
||||
}
|
||||
#line 1681 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 64: /* bline: CTOK NUM */
|
||||
#line 293 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "C %d", (yyvsp[0].i)); }
|
||||
#line 1687 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 65: /* bline: HTOK NUM */
|
||||
#line 294 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->attackFrame = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "H %d", (yyvsp[0].i)); }
|
||||
#line 1695 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 66: /* bline: WTOK NUM */
|
||||
#line 283 "engines/hypno/grammar_arc.y"
|
||||
#line 297 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->attackWeight = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "W %d", (yyvsp[0].i)); }
|
||||
#line 1689 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1703 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 67: /* bline: DTOK NUM */
|
||||
#line 286 "engines/hypno/grammar_arc.y"
|
||||
#line 300 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
shoot->pointsToShoot = (yyvsp[0].i);
|
||||
debugC(1, kHypnoDebugParser, "D %d", (yyvsp[0].i));
|
||||
}
|
||||
#line 1698 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1712 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 68: /* bline: SNTOK FILENAME enc */
|
||||
#line 290 "engines/hypno/grammar_arc.y"
|
||||
#line 304 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
if (Common::String("S1") == (yyvsp[-2].s))
|
||||
shoot->deathSound = (yyvsp[-1].s);
|
||||
@ -1706,28 +1720,28 @@ yyreduce:
|
||||
shoot->hitSound = (yyvsp[-1].s);
|
||||
|
||||
debugC(1, kHypnoDebugParser, "SN %s", (yyvsp[-1].s)); }
|
||||
#line 1710 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1724 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 69: /* bline: NTOK */
|
||||
#line 297 "engines/hypno/grammar_arc.y"
|
||||
#line 311 "engines/hypno/grammar_arc.y"
|
||||
{ debugC(1, kHypnoDebugParser, "N"); }
|
||||
#line 1716 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1730 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
case 70: /* bline: ZTOK */
|
||||
#line 298 "engines/hypno/grammar_arc.y"
|
||||
#line 312 "engines/hypno/grammar_arc.y"
|
||||
{
|
||||
g_parsedArc->shoots.push_back(*shoot);
|
||||
//delete shoot;
|
||||
//shoot = nullptr;
|
||||
debugC(1, kHypnoDebugParser, "Z");
|
||||
}
|
||||
#line 1727 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1741 "engines/hypno/grammar_arc.cpp"
|
||||
break;
|
||||
|
||||
|
||||
#line 1731 "engines/hypno/grammar_arc.cpp"
|
||||
#line 1745 "engines/hypno/grammar_arc.cpp"
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
@ -55,14 +55,14 @@ using namespace Hypno;
|
||||
int i; /* integer value */
|
||||
}
|
||||
|
||||
%token<s> NAME FILENAME BNTOK SNTOK KNTOK YXTOK
|
||||
%token<s> NAME FILENAME BNTOK SNTOK KNTOK YXTOK FNTOK
|
||||
%token<i> NUM BYTE
|
||||
// header
|
||||
%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
|
||||
%token NONETOK A0TOK P0TOK WTOK
|
||||
|
||||
// end
|
||||
%token XTOK
|
||||
@ -85,12 +85,19 @@ hline: CTOK NUM {
|
||||
g_parsedArc->id = $2;
|
||||
debugC(1, kHypnoDebugParser, "C %d", $2); }
|
||||
| FTOK NUM { debugC(1, kHypnoDebugParser, "F %d", $2); }
|
||||
| DTOK NUM { debugC(1, kHypnoDebugParser, "D %d", $2); }
|
||||
| DTOK NUM {
|
||||
g_parsedArc->frameDelay = $2;
|
||||
debugC(1, kHypnoDebugParser, "D %d", $2);
|
||||
}
|
||||
| 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); }
|
||||
| OTOK NUM NUM {
|
||||
g_parsedArc->obj1KillsRequired = $2;
|
||||
g_parsedArc->obj1MissesAllowed = $3;
|
||||
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 {
|
||||
@ -106,15 +113,15 @@ hline: CTOK NUM {
|
||||
}
|
||||
| TTOK NONETOK NUM { debugC(1, kHypnoDebugParser, "T NONE %d", $3); }
|
||||
| NTOK FILENAME {
|
||||
g_parsedArc->background = $2;
|
||||
g_parsedArc->backgroundVideo = $2;
|
||||
debugC(1, kHypnoDebugParser, "N %s", $2);
|
||||
}
|
||||
| NSTOK FILENAME {
|
||||
g_parsedArc->background = $2;
|
||||
g_parsedArc->backgroundVideo = $2;
|
||||
debugC(1, kHypnoDebugParser, "N* %s", $2);
|
||||
}
|
||||
| RTOK FILENAME {
|
||||
g_parsedArc->palette = $2;
|
||||
g_parsedArc->backgroundPalette = $2;
|
||||
debugC(1, kHypnoDebugParser, "R %s", $2); }
|
||||
| ITOK FILENAME {
|
||||
g_parsedArc->player = $2;
|
||||
@ -129,9 +136,11 @@ hline: CTOK NUM {
|
||||
else if (Common::String("B2") == $1)
|
||||
g_parsedArc->nextLevelVideo = $2;
|
||||
else if (Common::String("B3") == $1)
|
||||
g_parsedArc->defeatNoEnergyVideo = $2;
|
||||
g_parsedArc->defeatNoEnergyFirstVideo = $2;
|
||||
else if (Common::String("B4") == $1)
|
||||
g_parsedArc->defeatMissBossVideo = $2;
|
||||
else if (Common::String("B5") == $1)
|
||||
g_parsedArc->defeatNoEnergySecondVideo = $2;
|
||||
|
||||
debugC(1, kHypnoDebugParser, "BN %s", $2);
|
||||
}
|
||||
@ -176,7 +185,8 @@ body: bline body
|
||||
|
||||
bline: FNTOK FILENAME {
|
||||
shoot = new Shoot();
|
||||
shoot->animation = $2;
|
||||
if (Common::String("F0") == $1)
|
||||
shoot->animation = $2;
|
||||
debugC(1, kHypnoDebugParser, "FN %s", $2);
|
||||
}
|
||||
| FNTOK NONETOK {
|
||||
@ -260,7 +270,11 @@ bline: FNTOK FILENAME {
|
||||
shoot->position = Common::Point($2, $3);
|
||||
debugC(1, kHypnoDebugParser, "A0 %d %d", $2, $3);
|
||||
}
|
||||
| RTOK NUM NUM { debugC(1, kHypnoDebugParser, "R %d %d", $2, $3); }
|
||||
| RTOK NUM NUM {
|
||||
shoot->obj1KillsCount = $2;
|
||||
shoot->obj1MissesCount = $3;
|
||||
debugC(1, kHypnoDebugParser, "R %d %d", $2, $3);
|
||||
}
|
||||
| R0TOK NUM NUM { debugC(1, kHypnoDebugParser, "R0 %d %d", $2, $3); }
|
||||
| BNTOK NUM NUM { debugC(1, kHypnoDebugParser, "BN %d %d", $2, $3); }
|
||||
| KNTOK NUM NUM {
|
||||
|
@ -55,6 +55,7 @@ HypnoEngine::HypnoEngine(OSystem *syst, const ADGameDescription *gd)
|
||||
_countdown(0), _timerStarted(false), _score(0),
|
||||
_defaultCursor(""), _checkpoint(""),
|
||||
_currentPlayerPosition(kPlayerLeft), _lastPlayerPosition(kPlayerLeft),
|
||||
_obj1KillsCount(0), _obj1MissesCount(0),
|
||||
_screenW(0), _screenH(0) { // Every games initializes its own resolution
|
||||
_rnd = new Common::RandomSource("hypno");
|
||||
|
||||
|
@ -239,6 +239,10 @@ public:
|
||||
int _playerFrameIdx;
|
||||
int _playerFrameSep;
|
||||
|
||||
// Objectives
|
||||
uint32 _obj1KillsCount;
|
||||
uint32 _obj1MissesCount;
|
||||
|
||||
void loadFont(const Filename &name);
|
||||
void drawString(const Common::String &str, int x, int y, int w, uint32 c);
|
||||
const Graphics::Font *_font;
|
||||
|
@ -1239,7 +1239,7 @@ return TPTOK;
|
||||
case 25:
|
||||
YY_RULE_SETUP
|
||||
#line 67 "engines/hypno/lexer_arc.l"
|
||||
return FNTOK;
|
||||
HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FNTOK;
|
||||
YY_BREAK
|
||||
case 26:
|
||||
YY_RULE_SETUP
|
||||
|
@ -64,7 +64,7 @@ W return WTOK;
|
||||
X return XTOK;
|
||||
T return TTOK;
|
||||
Tp return TPTOK;
|
||||
F[0-9] return FNTOK;
|
||||
F[0-9] HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return FNTOK;
|
||||
F return FTOK;
|
||||
S[0-9] HYPNO_ARC_lval.s = scumm_strdup(HYPNO_ARC_text); return SNTOK;
|
||||
A0 return A0TOK;
|
||||
|
@ -68,35 +68,35 @@ extern int HYPNO_ARC_debug;
|
||||
SNTOK = 261, /* SNTOK */
|
||||
KNTOK = 262, /* KNTOK */
|
||||
YXTOK = 263, /* YXTOK */
|
||||
NUM = 264, /* NUM */
|
||||
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 */
|
||||
FNTOK = 264, /* FNTOK */
|
||||
NUM = 265, /* NUM */
|
||||
BYTE = 266, /* BYTE */
|
||||
COMMENT = 267, /* COMMENT */
|
||||
CTOK = 268, /* CTOK */
|
||||
DTOK = 269, /* DTOK */
|
||||
HTOK = 270, /* HTOK */
|
||||
HETOK = 271, /* HETOK */
|
||||
HLTOK = 272, /* HLTOK */
|
||||
HUTOK = 273, /* HUTOK */
|
||||
RETTOK = 274, /* RETTOK */
|
||||
QTOK = 275, /* QTOK */
|
||||
ENCTOK = 276, /* ENCTOK */
|
||||
RESTOK = 277, /* RESTOK */
|
||||
PTOK = 278, /* PTOK */
|
||||
FTOK = 279, /* FTOK */
|
||||
TTOK = 280, /* TTOK */
|
||||
TPTOK = 281, /* TPTOK */
|
||||
ATOK = 282, /* ATOK */
|
||||
VTOK = 283, /* VTOK */
|
||||
OTOK = 284, /* OTOK */
|
||||
ONTOK = 285, /* ONTOK */
|
||||
NTOK = 286, /* NTOK */
|
||||
NSTOK = 287, /* NSTOK */
|
||||
RTOK = 288, /* RTOK */
|
||||
R0TOK = 289, /* R0TOK */
|
||||
ITOK = 290, /* ITOK */
|
||||
JTOK = 291, /* JTOK */
|
||||
ZTOK = 292, /* ZTOK */
|
||||
NONETOK = 293, /* NONETOK */
|
||||
A0TOK = 294, /* A0TOK */
|
||||
P0TOK = 295, /* P0TOK */
|
||||
|
@ -55,7 +55,7 @@ void WetEngine::drawPlayer() {
|
||||
|
||||
if (_playerFrameIdx < _playerFrameSep) {
|
||||
// TARGET ACQUIRED frame
|
||||
uint32 c = 251;
|
||||
uint32 c = 251; // green
|
||||
_compositeSurface->drawLine(113, 1, 119, 1, c);
|
||||
_compositeSurface->drawLine(200, 1, 206, 1, c);
|
||||
|
||||
@ -65,7 +65,7 @@ void WetEngine::drawPlayer() {
|
||||
_compositeSurface->drawLine(113, 9, 119, 9, c);
|
||||
_compositeSurface->drawLine(200, 9, 206, 9, c);
|
||||
|
||||
c = _pixelFormat.RGBToColor(255, 0, 0);
|
||||
c = 250; // red ?
|
||||
Common::Point mousePos = g_system->getEventManager()->getMousePos();
|
||||
int i = detectTarget(mousePos);
|
||||
if (i > 0)
|
||||
|
@ -28,6 +28,9 @@ namespace Hypno {
|
||||
|
||||
static const chapterEntry rawChapterTable[] = {
|
||||
{11, {44, 172}, {218, 172}, {0, 0}}, // c11
|
||||
{20, {44, 172}, {218, 172}, {0, 0}}, // c20
|
||||
{21, {70, 160}, {180, 160}, {220, 185}}, // c21
|
||||
{22, {70, 160}, {180, 160}, {220, 185}}, // c22
|
||||
{31, {70, 160}, {180, 160}, {220, 185}}, // c31
|
||||
{52, {60, 167}, {190, 167}, {135, 187}}, // c52
|
||||
{0, {0, 0}, {0, 0}, {0, 0}} // NULL
|
||||
@ -216,23 +219,28 @@ void WetEngine::loadAssetsFullGame() {
|
||||
_levels["<main_menu>"]->levelIfWin = "c11";
|
||||
|
||||
loadArcadeLevel("c110.mi_", "c10", "");
|
||||
_levels["c110.mi_"]->levelIfLose = "<quit>";
|
||||
_levels["c110.mi_"]->intros.push_front("c_misc/intros.smk");
|
||||
|
||||
loadArcadeLevel("c111.mi_", "c10", "");
|
||||
_levels["c111.mi_"]->levelIfLose = "<quit>";
|
||||
_levels["c111.mi_"]->intros.push_front("c_misc/intros.smk");
|
||||
|
||||
loadArcadeLevel("c112.mi_", "c10", "");
|
||||
_levels["c112.mi_"]->intros.push_front("c_misc/intros.smk");
|
||||
loadArcadeLevel("c112.mi_", "c10", "");
|
||||
_levels["c112.mi_"]->levelIfLose = "<quit>";
|
||||
_levels["c112.mi_"]->intros.push_front("c_misc/intros.smk");
|
||||
|
||||
loadArcadeLevel("c100.mi_", "c20", "");
|
||||
loadArcadeLevel("c101.mi_", "c20", "");
|
||||
loadArcadeLevel("c102.mi_", "c20", "");
|
||||
loadArcadeLevel("c100.mi_", "c21", "");
|
||||
loadArcadeLevel("c101.mi_", "c21", "");
|
||||
loadArcadeLevel("c102.mi_", "c21", "");
|
||||
|
||||
//loadArcadeLevel("c300.mi_", "???", "");
|
||||
//loadArcadeLevel("c201.mi_", "???", "");
|
||||
//loadArcadeLevel("c202.mi_", "???", "");
|
||||
loadArcadeLevel("c210.mi_", "c22", "");
|
||||
loadArcadeLevel("c211.mi_", "c22", "");
|
||||
loadArcadeLevel("c212.mi_", "c22", "");
|
||||
|
||||
//loadArcadeLevel("c20", "", "");
|
||||
loadArcadeLevel("c220.mi_", "???", "");
|
||||
loadArcadeLevel("c201.mi_", "???", "");
|
||||
loadArcadeLevel("c202.mi_", "???", "");
|
||||
|
||||
loadLib("", "c_misc/fonts.lib", true);
|
||||
loadLib("sound/", "c_misc/sound.lib", true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user