Is there any reason for these checks to differ in the way they query for whether the video is playing? (SmushMode vs g_movie->isPlaying()). The two cases probably should share a check like:

if ((_mode == SmushMode && g_grim->getGameType() == GType_MONKEY4) && (g_grim->getGamePlatform == Common::kPlatformPS2 || getGameFlags() & ADGF_DEMO).

But, it all boils down to what is most readable, which I'll let someone else look into.

I _think_ that SmushMode is always true when playing a movie in EMI (while Grim Fandango has smaller movies that play as part of normal gameplay, for instance the postbox-tube at the start, or Glottis leaving his shack).