Mercurial > might-and-magic-trilogy
diff CShow.h @ 0:8b8875f5b359
Initial commit
author | Nomad |
---|---|
date | Fri, 05 Oct 2012 16:07:14 +0200 |
parents | |
children | 2ca04ccb612a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CShow.h Fri Oct 05 16:07:14 2012 +0200 @@ -0,0 +1,111 @@ +#pragma once +#include "VideoPlayer.h" +#include "Mouse.h" + + + +/* 302 */ +enum MovieType +{ + MOVIE_Invalid = 0x0, + MOVIE_3DOLogo = 0x1, + MOVIE_NWCLogo = 0x2, + MOVIE_JVC = 0x3, + MOVIE_Intro = 0x4, + MOVIE_Emerald = 0x5, + MOVIE_Death = 0x6, + MOVIE_Outro = 0x7, +}; + + +#pragma pack(push, 1) +struct CShow +{ + //----- (004A9507) -------------------------------------------------------- + CShow() {} + + //----- (004A9510) -------------------------------------------------------- + virtual ~CShow() {} + + + //----- (004A952D) -------------------------------------------------------- + void CShow::PlayMovie(MovieType eVideo, bool bShowMouseAfterPlayback) + { + int v3; // edx@5 + const char *v4; // ecx@5 + std::string v5; // [sp-18h] [bp-24h]@4 + signed int v6; // [sp-Ch] [bp-18h]@10 + int v7; // [sp-8h] [bp-14h]@4 + int v8; // [sp-4h] [bp-10h]@4 + char v9; // [sp+0h] [bp-Ch]@14 + char v10; // [sp+4h] [bp-8h]@4 + int a3; // [sp+Bh] [bp-1h]@14 + + if ( pAsyncMouse ) + pAsyncMouse->Suspend(); + switch ( eVideo ) + { + case MOVIE_Invalid: + MessageBoxW(nullptr, L"No movie", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:40", 0); + break; + case MOVIE_3DOLogo: + v8 = 1; + v7 = 0; + v3 = 0; + v4 = "3dologo"; + goto LABEL_13; + case MOVIE_NWCLogo: + v8 = 1; + v7 = 1; + v3 = 0; + v4 = "new world logo"; + goto LABEL_13; + case MOVIE_JVC: + v8 = 1; + v7 = 1; + v3 = 0; + v4 = "jvc"; + goto LABEL_13; + case MOVIE_Emerald: + v8 = 1; + v7 = 1; + v3 = 0; + v4 = "Intro"; + goto LABEL_13; + case MOVIE_Intro: + v8 = 1; + v7 = 1; + v3 = 0; + v4 = "Intro Post"; + goto LABEL_13; + case MOVIE_Death: + v8 = 1; + v7 = 1; + v6 = 2; + v4 = "losegame"; + goto LABEL_12; + case MOVIE_Outro: + v8 = 1; + v7 = 1; + v6 = 20; + v4 = "end_seq1"; +LABEL_12: + v3 = v6; +LABEL_13: + VideoPlayer::MovieLoop(v4, v3, v7, v8); + break; + default: + MessageBoxW(nullptr, L"Invalid movie requested in CShow::Run()", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:72", 0); + break; + } + if ( bShowMouseAfterPlayback ) + { + if ( pAsyncMouse ) + pAsyncMouse->Resume(); + } +} + + + void (__thiscall ***vdestructor_ptr)(CShow *, bool); +}; +#pragma pack(pop) \ No newline at end of file