summaryrefslogtreecommitdiff
path: root/utils/xbox/xbox_loader/xbox_loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/xbox/xbox_loader/xbox_loader.h')
-rw-r--r--utils/xbox/xbox_loader/xbox_loader.h171
1 files changed, 171 insertions, 0 deletions
diff --git a/utils/xbox/xbox_loader/xbox_loader.h b/utils/xbox/xbox_loader/xbox_loader.h
new file mode 100644
index 0000000..b37b2d5
--- /dev/null
+++ b/utils/xbox/xbox_loader/xbox_loader.h
@@ -0,0 +1,171 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// XBOX_LOADER.H
+//
+// Master Include
+//=====================================================================================//
+
+#pragma once
+
+#include <xtl.h>
+#include <XBApp.h>
+#include <XBFont.h>
+#include <XBHelp.h>
+#include <xgraphics.h>
+#include <xfont.h>
+#include <xmv.h>
+#include <xbdm.h>
+#include <math.h>
+#include "XBResource.h"
+#include "xmvhelper.h"
+#include "toollib.h"
+#include "scriplib.h"
+#include "loader.h"
+#include "jcalg1.h"
+#include "xbox/xbox_launch.h"
+
+#define XBOX_FORENSIC_LOG
+
+#define SCREEN_WIDTH 640
+#define SCREEN_HEIGHT 480
+#define MAX_FILES 500
+#define MAX_SLIDESHOW_TEXTURES 9
+
+#define LEGAL_DISPLAY_TIME 6000
+#define LOADINGBAR_UPTIME 500.0f // slid up or down
+#define LOADINGBAR_SLIDETIME 1500.0f // progress speed
+#define LOADINGBAR_WAITTIME 500.0f // delay after up to begin slide
+#define SLIDESHOW_SLIDETIME 7000
+#define SLIDESHOW_FLIPTIME 1000
+
+#define LEGAL_MAIN 0
+#define LEGAL_SOURCE 1
+
+#define FOOTER_W 512
+
+#define SEGMENT_W 10
+#define SEGMENT_GAP 1
+#define SEGMENT_COUNT 26
+
+#define PROGRESS_Y 405
+#define PROGRESS_W (SEGMENT_COUNT*(SEGMENT_W+SEGMENT_GAP))
+#define PROGRESS_H 15
+#define PROGRESS_X 124
+
+#define PROGRESS_FOOTER_COLOR 0x88FFFFFF
+#define PROGRESS_INSET_COLOR 0xFF222222
+#define PROGRESS_SEGMENT_COLOR 0xFFCC6C00
+#define PROGRESS_TEXT_COLOR 0xFFFFFFFF
+
+//-----------------------------------------------------------------------------
+// Main class to run this application. Most functionality is inherited
+// from the CXBApplication base class.
+//-----------------------------------------------------------------------------
+class CXBoxLoader : public CXBApplication
+{
+public:
+ CXBoxLoader();
+
+ virtual HRESULT Initialize( void );
+ virtual HRESULT Render( void );
+ virtual HRESULT FrameMove( void );
+
+ void DrawRect( int x, int y, int w, int h, DWORD color );
+ void DrawLegals();
+ void DrawDebug();
+ BOOL PlayVideoFrame();
+ HRESULT StartVideo( const CHAR* strFilename, bool bFromMemory, bool bFatalOnError );
+ void StopVideo();
+ bool StartInstall( void );
+ bool LoadInstallScript( void );
+ D3DTexture *LoadTexture( int resourceID );
+ HRESULT LoadFont( CXBFont *pFont, int resourceID );
+ void DrawTexture( D3DTexture *pD3DTexture, int x, int y, int w, int h, int color );
+ void StartLegalScreen( int legal );
+ void DrawProgressBar();
+ void DrawLoadingMarquee();
+ void DrawSlideshow();
+ bool VerifyInstall();
+ void StartDashboard( bool bGotoMemory );
+ void LoadLogFile();
+ void DrawLog();
+ void FatalMediaError();
+ void LaunchHL2( unsigned int contextCode );
+ void TickVideo();
+
+private:
+ IDirect3DTexture8 *m_pLastMovieFrame;
+ D3DTexture *m_pFooterTexture;
+ D3DTexture *m_pLoadingIconTexture;
+ D3DTexture *m_pMainLegalTexture;
+ D3DTexture *m_pSourceLegalTexture;
+ D3DTexture *m_pLegalTexture;
+ D3DTexture *m_pSlideShowTextures[MAX_SLIDESHOW_TEXTURES];
+
+ CXMVPlayer m_player;
+
+ D3DVertexBuffer *m_pVB;
+ CXBPackedResource m_xprResource;
+
+ CXBFont m_Font;
+
+ int m_contextCode;
+
+ char *m_fileSrc[MAX_FILES];
+ char *m_fileDest[MAX_FILES];
+ xCompressHeader *m_fileCompressionHeaders[MAX_FILES];
+ DWORD m_fileDestSizes[MAX_FILES];
+ int m_numFiles;
+
+ bool m_bAllowAttractAbort;
+ bool m_bDrawLoading;
+ bool m_bDrawProgress;
+ bool m_bDrawDebug;
+ bool m_bLaunch;
+ DWORD m_dwLoading;
+ bool m_bDrawLegal;
+ HANDLE m_installThread;
+ DWORD m_LegalTime;
+ int m_State;
+ DWORD m_LoadingBarStartTime;
+ DWORD m_LoadingBarEndTime;
+ DWORD m_LegalStartTime;
+ bool m_bInstallComplete;
+ int m_Version;
+ int m_FrameCounter;
+ int m_MovieCount;
+ bool m_bMovieErrorIsFatal;
+ bool m_bCaptureLastMovieFrame;
+ DWORD m_SlideShowStartTime;
+ bool m_bDrawSlideShow;
+ int m_SlideShowCount;
+ bool m_bFinalSlide;
+ char *m_pLogData;
+ XFONT* m_pDefaultTrueTypeFont;
+};
+
+struct CopyStats_t
+{
+ char m_srcFilename[MAX_PATH];
+ char m_dstFilename[MAX_PATH];
+ DWORD m_readSize;
+ DWORD m_writeSize;
+ DWORD m_bytesCopied;
+ DWORD m_totalReadTime;
+ DWORD m_totalWriteTime;
+ DWORD m_totalReadSize;
+ DWORD m_totalWriteSize;
+ DWORD m_bufferReadSize;
+ DWORD m_bufferWriteSize;
+ DWORD m_bufferReadTime;
+ DWORD m_bufferWriteTime;
+ DWORD m_inflateSize;
+ DWORD m_inflateTime;
+ DWORD m_copyTime;
+ DWORD m_copyErrors;
+ DWORD m_numReadBuffers;
+ DWORD m_numWriteBuffers;
+};
+
+extern bool CopyFileOverlapped( const char *pSrc, const char *pDest, xCompressHeader *pxcHeader, CopyStats_t *pCopyStats );
+extern bool CreateFilePath( const char *inPath );