浏览代码

* compilation error fix

mateuszb 16 年之前
父节点
当前提交
20676e8f95
共有 3 个文件被更改,包括 204 次插入201 次删除
  1. 3 0
      client/GUIClasses.cpp
  2. 38 38
      hch/CVideoHandler.cpp
  3. 163 163
      hch/CVideoHandler.h

+ 3 - 0
client/GUIClasses.cpp

@@ -58,6 +58,9 @@ extern TTF_Font * GEOR16;
 extern std::queue<SDL_Event*> events;
 extern boost::mutex eventsM;
 
+#undef min
+#undef max
+
 static StackState* getStackState(const CGObjectInstance *obj, int pos, bool town)
 {
 	const CGHeroInstance *h = dynamic_cast<const CGHeroInstance *>(obj);

+ 38 - 38
hch/CVideoHandler.cpp

@@ -103,8 +103,8 @@ CBIKHandler::CBIKHandler()
 	//binkGetError = FindAddress("_BinkGetError@0");
 	binkOpen = (BinkOpen)FindAddress("_BinkOpen@8");
 	binkSetSoundSystem = (BinkSetSoundSystem)FindAddress("_BinkSetSoundSystem@8");
-	//getPalette = (BinkGetPalette)FindAddress("_BinkGetPalette@4");
-	binkNextFrame = (BinkNextFrame)FindAddress("_BinkNextFrame@4");
+	//getPalette = (BinkGetPalette)FindAddress("_BinkGetPalette@4");
+	binkNextFrame = (BinkNextFrame)FindAddress("_BinkNextFrame@4");
 	binkDoFrame = (BinkDoFrame)FindAddress("_BinkDoFrame@4");
 	binkCopyToBuffer = (BinkCopyToBuffer)FindAddress("_BinkCopyToBuffer@28");
 	binkWait = (BinkWait)FindAddress("_BinkWait@4");
@@ -228,8 +228,8 @@ void CSmackPlayer::close()
 
 void CSmackPlayer::open( std::string name )
 {
-	Uint32 flags[2] = {0xff400, 0xfe400};
-
+	Uint32 flags[2] = {0xff400, 0xfe400};
+
 	data = ptrSmackOpen( (void*)name.c_str(), flags[1], -1);
 	if (!data) 
 	{
@@ -301,32 +301,32 @@ void CSmackPlayer::redraw( int x, int y, SDL_Surface *dst, bool update )
 		SDL_UpdateRect(dst, x, y, w, h);
 }
 
-CVideoPlayer::CVideoPlayer()
+CVideoPlayer::CVideoPlayer()
 {
 	vidh = new CVidHandler(std::string(DATA_DIR "Data" PATHSEPARATOR "VIDEO.VID"));
-	current = NULL;
-}
-
-CVideoPlayer::~CVideoPlayer()
-{
-	delete vidh;
-}
-
-void CVideoPlayer::open(std::string name)
-{
-	if(boost::algorithm::ends_with(name, ".BIK"))
-		current = &bikPlayer;
-	else
-		current = &smkPlayer;
-
-	fname = name;
-	first = true;
-
-	//extract video from video.vid so we can play it
-	vidh->extract(name, name);
-	current->open(name);
-}
-
+	current = NULL;
+}
+
+CVideoPlayer::~CVideoPlayer()
+{
+	delete vidh;
+}
+
+void CVideoPlayer::open(std::string name)
+{
+	if(boost::algorithm::ends_with(name, ".BIK"))
+		current = &bikPlayer;
+	else
+		current = &smkPlayer;
+
+	fname = name;
+	first = true;
+
+	//extract video from video.vid so we can play it
+	vidh->extract(name, name);
+	current->open(name);
+}
+
 void CVideoPlayer::close()
 {
 	if(!current)
@@ -355,16 +355,16 @@ void CVideoPlayer::show(int x, int y, SDL_Surface *dst, bool update)
 	current->show(x, y, dst, update);
 }
 
-bool CVideoPlayer::wait()
-{
-	return current->wait();
-}
-
-int CVideoPlayer::curFrame() const
-{
-	return current->curFrame();
-}
-
+bool CVideoPlayer::wait()
+{
+	return current->wait();
+}
+
+int CVideoPlayer::curFrame() const
+{
+	return current->curFrame();
+}
+
 int CVideoPlayer::frameCount() const
 {
 	return current->frameCount();

+ 163 - 163
hch/CVideoHandler.h

@@ -1,103 +1,103 @@
-#ifndef __CVIDEOHANDLER_H__
-#define __CVIDEOHANDLER_H__
-#include "../global.h"
-
-#ifdef _WIN32
-
-#include <windows.h>
-
-struct SDL_Surface;
-
-#pragma pack(push,1)
-struct BINK_STRUCT
-{
-	si32 width;
-	si32 height;
-	si32 frameCount;
-	si32 currentFrame;
-	si32 lastFrame;
-	si32 FPSMul;
-	si32 FPSDiv;
-	si32 unknown0;
-	ui8 flags;
-	ui8 unknown1[260];
-	si32 CurPlane;		// current plane
-	void *plane0;		// posi32er to plane 0
-	void *plane1;		// posi32er to plane 1
-	si32 unknown2;
-	si32 unknown3;
-	si32 yWidth;			// Y plane width
-	si32 yHeight;		// Y plane height
-	si32 uvWidth;		// U&V plane width
-	si32 uvHeight;		// U&V plane height
-};
-#pragma pack(pop)
-
-typedef BINK_STRUCT* HBINK;
-
-class DLLHandler
-{
-public:
-	std::string name;
-	HINSTANCE dll;
-	void Instantiate(const char *filename);
-	const char *GetLibExtension();
-	void *FindAddress(const char *symbol);
-
-	DLLHandler();
-	virtual ~DLLHandler(); //d-tor
-};
-
-typedef void*(__stdcall*  BinkSetSoundSystem)(void * soundfun, void*);
-typedef HBINK(__stdcall*  BinkOpen)(HANDLE bikfile, int flags);
-typedef void(__stdcall*  BinkClose)(HBINK);
-//typedef si32(__stdcall*  BinkGetPalette)(HBINK);
-typedef void(__stdcall*  BinkNextFrame)(HBINK);
-typedef void(__stdcall*  BinkDoFrame)(HBINK);
-typedef ui8(__stdcall*  BinkWait)(HBINK);
-typedef si32(__stdcall*  BinkCopyToBuffer)(HBINK, void* buffer, int stride, int height, int x, int y, int mode);
+#ifndef __CVIDEOHANDLER_H__
+#define __CVIDEOHANDLER_H__
+#include "../global.h"
+
+#ifdef _WIN32
+
+#include <windows.h>
+
+struct SDL_Surface;
+
+#pragma pack(push,1)
+struct BINK_STRUCT
+{
+	si32 width;
+	si32 height;
+	si32 frameCount;
+	si32 currentFrame;
+	si32 lastFrame;
+	si32 FPSMul;
+	si32 FPSDiv;
+	si32 unknown0;
+	ui8 flags;
+	ui8 unknown1[260];
+	si32 CurPlane;		// current plane
+	void *plane0;		// posi32er to plane 0
+	void *plane1;		// posi32er to plane 1
+	si32 unknown2;
+	si32 unknown3;
+	si32 yWidth;			// Y plane width
+	si32 yHeight;		// Y plane height
+	si32 uvWidth;		// U&V plane width
+	si32 uvHeight;		// U&V plane height
+};
+#pragma pack(pop)
+
+typedef BINK_STRUCT* HBINK;
+
+class DLLHandler
+{
+public:
+	std::string name;
+	HINSTANCE dll;
+	void Instantiate(const char *filename);
+	const char *GetLibExtension();
+	void *FindAddress(const char *symbol);
+
+	DLLHandler();
+	virtual ~DLLHandler(); //d-tor
+};
+
+typedef void*(__stdcall*  BinkSetSoundSystem)(void * soundfun, void*);
+typedef HBINK(__stdcall*  BinkOpen)(HANDLE bikfile, int flags);
+typedef void(__stdcall*  BinkClose)(HBINK);
+//typedef si32(__stdcall*  BinkGetPalette)(HBINK);
+typedef void(__stdcall*  BinkNextFrame)(HBINK);
+typedef void(__stdcall*  BinkDoFrame)(HBINK);
+typedef ui8(__stdcall*  BinkWait)(HBINK);
+typedef si32(__stdcall*  BinkCopyToBuffer)(HBINK, void* buffer, int stride, int height, int x, int y, int mode);
 
 
 class IVideoPlayer
 {
-public:
-	virtual void open(std::string name)=0;
+public:
+	virtual void open(std::string name)=0;
 	virtual void close()=0;
 	virtual void nextFrame()=0;
 	virtual void show(int x, int y, SDL_Surface *dst, bool update = true)=0;
 	virtual void redraw(int x, int y, SDL_Surface *dst, bool update = true)=0; //reblits buffer
-	virtual bool wait()=0;
-	virtual int curFrame() const =0;
+	virtual bool wait()=0;
+	virtual int curFrame() const =0;
 	virtual int frameCount() const =0;
 };
-
-class CBIKHandler : public DLLHandler, public IVideoPlayer
-{
-public:
-	HANDLE hBinkFile;
-	HBINK hBink;
-	char * buffer;
-	BinkSetSoundSystem binkSetSoundSystem;
-	BinkOpen binkOpen;
-	//BinkGetPalette getPalette;
-	BinkNextFrame binkNextFrame;
-	BinkDoFrame binkDoFrame;
-	BinkCopyToBuffer binkCopyToBuffer;
-	BinkWait binkWait;
-	BinkClose binkClose;
-
-	CBIKHandler();
-	void open(std::string name);
+
+class CBIKHandler : public DLLHandler, public IVideoPlayer
+{
+public:
+	HANDLE hBinkFile;
+	HBINK hBink;
+	char * buffer;
+	BinkSetSoundSystem binkSetSoundSystem;
+	BinkOpen binkOpen;
+	//BinkGetPalette getPalette;
+	BinkNextFrame binkNextFrame;
+	BinkDoFrame binkDoFrame;
+	BinkCopyToBuffer binkCopyToBuffer;
+	BinkWait binkWait;
+	BinkClose binkClose;
+
+	CBIKHandler();
+	void open(std::string name);
 	void close();
 	void nextFrame();
 	void show(int x, int y, SDL_Surface *dst, bool update = true);
 	void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
-	bool wait();
-	int curFrame() const;
-	int frameCount() const;
-};
-
-//////////SMK Player ///////////////////////////////////////////////////////
+	bool wait();
+	int curFrame() const;
+	int frameCount() const;
+};
+
+//////////SMK Player ///////////////////////////////////////////////////////
 
 struct SmackStruct
 {
@@ -124,8 +124,8 @@ typedef bool (__stdcall* SmackWait)(SmackStruct*);
 typedef void (__stdcall* SmackSoundOnOff) (SmackStruct*, bool);
 
 
-
-class CSmackPlayer: public DLLHandler, public IVideoPlayer
+
+class CSmackPlayer: public DLLHandler, public IVideoPlayer
 {
 public:
 	SmackOpen ptrSmackOpen;
@@ -140,89 +140,89 @@ public:
 	SmackStruct* data;
 
 	CSmackPlayer();
-	~CSmackPlayer();
-	void open(std::string name);
+	~CSmackPlayer();
+	void open(std::string name);
 	void close();
 	void nextFrame();
 	void show(int x, int y, SDL_Surface *dst, bool update = true);
 	void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
-	bool wait();
-	int curFrame() const;
+	bool wait();
+	int curFrame() const;
 	int frameCount() const;
 };
-
-class CVidHandler;
-
-class CVideoPlayer : public IVideoPlayer
-{
-private:
-	CVidHandler * vidh; //.vid file handling
-
-	CSmackPlayer smkPlayer; //for .SMK
-	CBIKHandler bikPlayer; //for .BIK
-	IVideoPlayer *current; //points to bik or smk player, appropriate to type of currently played video
-
-	std::string fname; //name of current video file (empty if idle)
-	bool first; //are we about to display the first frame (blocks update)
-public:
-	CVideoPlayer(); //c-tor
-	~CVideoPlayer(); //d-tor
-
-
-	void open(std::string name);
+
+class CVidHandler;
+
+class CVideoPlayer : public IVideoPlayer
+{
+private:
+	CVidHandler * vidh; //.vid file handling
+
+	CSmackPlayer smkPlayer; //for .SMK
+	CBIKHandler bikPlayer; //for .BIK
+	IVideoPlayer *current; //points to bik or smk player, appropriate to type of currently played video
+
+	std::string fname; //name of current video file (empty if idle)
+	bool first; //are we about to display the first frame (blocks update)
+public:
+	CVideoPlayer(); //c-tor
+	~CVideoPlayer(); //d-tor
+
+
+	void open(std::string name);
 	void close();
 	void nextFrame(); //move animation to the next frame
 	void show(int x, int y, SDL_Surface *dst, bool update = true); //blit current frame
 	void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
 	void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true); //moves to next frame if appropriate, and blits it or blits only if redraw paremeter is set true
-	bool wait(); //true if we should wait before displaying next frame (for keeping FPS)
-	int curFrame() const; //current frame number <1, framecount>
-	int frameCount() const;
-
-	bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false); //opens video, calls playVideo, closes video; returns playVideo result (if whole video has been played)
-	bool playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey = false); //plays whole opened video; returns: true when whole video has been shown, false when it has been interrupted
-};
-
-#else
-
-#include <SDL_video.h>
-
-typedef struct AVFormatContext AVFormatContext;
-typedef struct AVCodecContext AVCodecContext;
-typedef struct AVCodec AVCodec;
-typedef struct AVFrame AVFrame;
-struct SwsContext;
-class CVidHandler;
-
-class CVideoPlayer
-{
-private:
-	int stream;					// stream index in video
-	AVFormatContext *format;
-	AVCodecContext *codecContext; // codec context for stream
-	AVCodec *codec;
-	AVFrame *frame; 
-	struct SwsContext *sws;
-
-	SDL_Overlay *overlay;
-	SDL_Rect pos;				// overlay position
-
-	CVidHandler *vidh;
-
-public:
-	CVideoPlayer();
-	~CVideoPlayer();
-
-	bool init();
-	bool open(std::string fname, int x, int y);
-	void close();
-	bool nextFrame();			// display next frame
-
-	const char *data;			// video buffer
-	int length;					// video size
-	unsigned int offset;		// current data offset
-};
-
-#endif
-
-#endif // __CVIDEOHANDLER_H__
+	bool wait(); //true if we should wait before displaying next frame (for keeping FPS)
+	int curFrame() const; //current frame number <1, framecount>
+	int frameCount() const;
+
+	bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false); //opens video, calls playVideo, closes video; returns playVideo result (if whole video has been played)
+	bool playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey = false); //plays whole opened video; returns: true when whole video has been shown, false when it has been interrupted
+};
+
+#else
+
+#include <SDL_video.h>
+
+typedef struct AVFormatContext AVFormatContext;
+typedef struct AVCodecContext AVCodecContext;
+typedef struct AVCodec AVCodec;
+typedef struct AVFrame AVFrame;
+struct SwsContext;
+class CVidHandler;
+
+class CVideoPlayer
+{
+private:
+	int stream;					// stream index in video
+	AVFormatContext *format;
+	AVCodecContext *codecContext; // codec context for stream
+	AVCodec *codec;
+	AVFrame *frame; 
+	struct SwsContext *sws;
+
+	SDL_Overlay *overlay;
+	SDL_Rect pos;				// overlay position
+
+	CVidHandler *vidh;
+
+public:
+	CVideoPlayer();
+	~CVideoPlayer();
+
+	bool init();
+	bool open(std::string fname, int x, int y);
+	void close();
+	bool nextFrame();			// display next frame
+
+	const char *data;			// video buffer
+	int length;					// video size
+	unsigned int offset;		// current data offset
+};
+
+#endif
+
+#endif // __CVIDEOHANDLER_H__