Laserlicht 1 år sedan
förälder
incheckning
2cfbcd067b

BIN
Mods/vcmi/Video/tutorial/AbortSpell.webm


BIN
Mods/vcmi/Video/tutorial/BattleDirection.webm


BIN
Mods/vcmi/Video/tutorial/BattleDirectionAbort.webm


BIN
Mods/vcmi/Video/tutorial/MapPanning.webm


BIN
Mods/vcmi/Video/tutorial/MapZooming.webm


BIN
Mods/vcmi/Video/tutorial/RightClick.webm


+ 29 - 0
client/windows/CTutorialWindow.cpp

@@ -14,6 +14,8 @@
 #include "../../lib/CConfigHandler.h"
 #include "../../lib/CondSh.h"
 #include "../CPlayerInterface.h"
+#include "../CGameInfo.h"
+#include "../CVideoHandler.h"
 
 #include "../gui/CGuiHandler.h"
 #include "../gui/Shortcut.h"
@@ -21,6 +23,7 @@
 #include "../widgets/Images.h"
 #include "../widgets/Buttons.h"
 #include "../widgets/TextControls.h"
+#include "../render/Canvas.h"
 
 CTutorialWindow::CTutorialWindow(const TutorialMode & m)
 	: CWindowObject(BORDERED, ImagePath::builtin("DIBOXBCK")), mode { m }
@@ -76,3 +79,29 @@ void CTutorialWindow::previous()
 {
 	
 }
+
+void CTutorialWindow::show(Canvas & to)
+{
+	CCS->videoh->update(pos.x + 200, pos.y + 200, to.getInternalSurface(), true, false,
+	[&]()
+	{
+		CCS->videoh->close();
+		CCS->videoh->open(VideoPath::builtin(video));
+	});
+	redraw();
+
+	CIntObject::show(to);
+}
+
+void CTutorialWindow::activate()
+{
+	video = "tutorial/BattleDirection";
+
+	CCS->videoh->open(VideoPath::builtin(video));
+	CIntObject::activate();
+}
+
+void CTutorialWindow::deactivate()
+{
+	CCS->videoh->close();
+}

+ 6 - 0
client/windows/CTutorialWindow.h

@@ -34,6 +34,8 @@ class CTutorialWindow : public CWindowObject
 	std::shared_ptr<CLabel> labelTitle;
 	std::shared_ptr<CMultiLineLabel> labelInformation;
 
+	std::string video;
+
 	void close();
 	void next();
 	void previous();
@@ -41,4 +43,8 @@ class CTutorialWindow : public CWindowObject
 public:
 	CTutorialWindow(const TutorialMode & m);
 	static void openWindowFirstTime(const TutorialMode & m);	
+
+	void show(Canvas & to) override;
+	void activate() override;
+	void deactivate() override;
 };

+ 1 - 0
lib/filesystem/ResourcePath.cpp

@@ -119,6 +119,7 @@ EResType EResTypeHelper::getTypeFromExtension(std::string extension)
 		{".MJPG",  EResType::VIDEO},
 		{".MPG",   EResType::VIDEO},
 		{".AVI",   EResType::VIDEO},
+		{".WEBM",  EResType::VIDEO},
 		{".ZIP",   EResType::ARCHIVE_ZIP},
 		{".LOD",   EResType::ARCHIVE_LOD},
 		{".PAC",   EResType::ARCHIVE_LOD},

+ 1 - 1
lib/filesystem/ResourcePath.h

@@ -28,7 +28,7 @@ class JsonSerializeFormat;
  * Font: .fnt
  * Image: .bmp, .jpg, .pcx, .png, .tga
  * Sound: .wav .82m
- * Video: .smk, .bik .mjpg .mpg
+ * Video: .smk, .bik .mjpg .mpg .webm
  * Music: .mp3, .ogg
  * Archive: .lod, .snd, .vid .pac .zip
  * Palette: .pal