Improved the avi playback function

This commit is contained in:
NovaRain
2020-01-17 21:42:01 +08:00
parent d1868d2eaf
commit 201fa1da0c
9 changed files with 469 additions and 262 deletions
+1
View File
@@ -68,6 +68,7 @@ WRAP_WATCOM_FUNC1(void, gdialogDisplayMsg, const char*, message)
WRAP_WATCOM_FUNC0(long, gmouse_3d_get_mode)
WRAP_WATCOM_FUNC1(void, gmouse_3d_set_mode, long, mode)
WRAP_WATCOM_FUNC1(long, gmouse_set_cursor, long, picNum)
WRAP_WATCOM_FUNC1(long, gsound_background_volume_get_set, long, setVolume)
WRAP_WATCOM_FUNC1(Window*, GNW_find, long, winRef)
WRAP_WATCOM_FUNC2(long, intface_get_attack, DWORD*, hitMode, DWORD*, isSecondary)
WRAP_WATCOM_FUNC0(long, intface_is_item_right_hand)
+1
View File
@@ -214,6 +214,7 @@
#define FO_VAR_stack_offset 0x59E844
#define FO_VAR_stat_data 0x51D53C
#define FO_VAR_stat_flag 0x66452A
#define FO_VAR_subtitles 0x663974
#define FO_VAR_sWindows 0x6727B0
#define FO_VAR_Tag_ 0x5708B0
#define FO_VAR_tag_skill 0x668070
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -47,6 +47,11 @@ public:
static void SetHeadTex(IDirect3DTexture9* tex, int width, int height, int xoff, int yoff, int showHighlight);
static void SetHeadTechnique();
static void SetDefaultTechnique();
static void ShowMovieFrame();
static void SetMovieTexture(IDirect3DTexture9* tex);
static bool PlayAviMovie;
};
extern IDirect3D9* d3d9;
@@ -55,9 +60,6 @@ extern IDirect3DDevice9* d3d9Device;
int _stdcall GetShaderVersion();
void RefreshGraphics();
void GetFalloutWindowInfo(DWORD* width, DWORD* height, HWND* window);
void SetMovieTexture(void* tex);
void _stdcall PlayMovieFrame();
HWND GetFalloutWindowInfo(RECT* rect);
}
+277 -171
View File
File diff suppressed because it is too large Load Diff
+10 -6
View File
@@ -84,13 +84,13 @@ __declspec(naked) void FakeDirectDrawEnumerateW() {
_asm jmp [ddraw.DirectDrawEnumerateW];
}
//__declspec(naked) void FakeDllCanUnloadNow() {
// _asm jmp [ddraw.DllCanUnloadNow];
//}
__declspec(naked) void FakeDllCanUnloadNow() {
_asm jmp [ddraw.DllCanUnloadNow];
}
//__declspec(naked) void FakeDllGetClassObject() {
// _asm jmp [ddraw.DllGetClassObject];
//}
__declspec(naked) void FakeDllGetClassObject() {
_asm jmp [ddraw.DllGetClassObject];
}
__declspec(naked) void FakeGetDDSurfaceLocal() {
_asm jmp [ddraw.GetDDSurfaceLocal];
@@ -111,3 +111,7 @@ __declspec(naked) void FakeRegisterSpecialCase() {
__declspec(naked) void FakeReleaseDDThreadLock() {
_asm jmp [ddraw.ReleaseDDThreadLock];
}
__declspec(naked) void FakeSetAppCompatData() {
_asm jmp [ddraw.SetAppCompatData];
}
+6 -4
View File
@@ -16,13 +16,15 @@ DirectDrawEnumerateA = FakeDirectDrawEnumerateA @12
DirectDrawEnumerateExA = FakeDirectDrawEnumerateExA @13
DirectDrawEnumerateExW = FakeDirectDrawEnumerateExW @14
DirectDrawEnumerateW = FakeDirectDrawEnumerateW @15
;DllCanUnloadNow = FakeDllCanUnloadNow @16
;DllGetClassObject = FakeDllGetClassObject @17
DllCanUnloadNow = FakeDllCanUnloadNow PRIVATE
DllGetClassObject = FakeDllGetClassObject PRIVATE
GetDDSurfaceLocal = FakeGetDDSurfaceLocal @18
GetOLEThunkData = FakeGetOLEThunkData @19
GetSurfaceFromDC = FakeGetSurfaceFromDC @20
RegisterSpecialCase = FakeRegisterSpecialCase @21
ReleaseDDThreadLock = FakeReleaseDDThreadLock @22
SetAppCompatData = FakeSetAppCompatData @23
DirectDrawCreat2 = FakeDirectDrawCreate2
DirectInputCreateA = FakeDirectInputCreate
; sfall override
DirectDrawCreat2 = FakeDirectDrawCreate2 @24
DirectInputCreateA = FakeDirectInputCreate @25
+3 -2
View File
@@ -353,13 +353,14 @@ static bool LoadOriginalDll(DWORD dwReason) {
ddraw.DirectDrawEnumerateExA = GetProcAddress(ddraw.dll, "DirectDrawEnumerateExA");
ddraw.DirectDrawEnumerateExW = GetProcAddress(ddraw.dll, "DirectDrawEnumerateExW");
ddraw.DirectDrawEnumerateW = GetProcAddress(ddraw.dll, "DirectDrawEnumerateW");
//ddraw.DllCanUnloadNow = GetProcAddress(ddraw.dll, "DllCanUnloadNow");
//ddraw.DllGetClassObject = GetProcAddress(ddraw.dll, "DllGetClassObject");
ddraw.DllCanUnloadNow = GetProcAddress(ddraw.dll, "DllCanUnloadNow");
ddraw.DllGetClassObject = GetProcAddress(ddraw.dll, "DllGetClassObject");
ddraw.GetDDSurfaceLocal = GetProcAddress(ddraw.dll, "GetDDSurfaceLocal");
ddraw.GetOLEThunkData = GetProcAddress(ddraw.dll, "GetOLEThunkData");
ddraw.GetSurfaceFromDC = GetProcAddress(ddraw.dll, "GetSurfaceFromDC");
ddraw.RegisterSpecialCase = GetProcAddress(ddraw.dll, "RegisterSpecialCase");
ddraw.ReleaseDDThreadLock = GetProcAddress(ddraw.dll, "ReleaseDDThreadLock");
ddraw.SetAppCompatData = GetProcAddress(ddraw.dll, "SetAppCompatData");
}
return true;
case DLL_PROCESS_DETACH:
+3 -2
View File
@@ -51,12 +51,13 @@ struct ddrawDll {
FARPROC DirectDrawEnumerateA;
FARPROC DirectDrawEnumerateExW;
FARPROC DirectDrawEnumerateW;
//FARPROC DllCanUnloadNow;
//FARPROC DllGetClassObject;
FARPROC DllCanUnloadNow;
FARPROC DllGetClassObject;
FARPROC GetDDSurfaceLocal;
FARPROC GetOLEThunkData;
FARPROC GetSurfaceFromDC;
FARPROC RegisterSpecialCase;
FARPROC SetAppCompatData;
};
namespace sfall