mirror of
https://github.com/jmarshall23/CnC_Remastered_Collection.git
synced 2026-08-11 23:50:51 +02:00
64bit version now works. Temp hack in for WSA x64 crash.
This commit is contained in:
Binary file not shown.
Vendored
+1
-1
@@ -724,5 +724,5 @@ add_executable(RedAlert ${src_io} ${src_win32lib} ${src_redalert} ${src_external
|
|||||||
|
|
||||||
set_target_properties(RedAlert PROPERTIES OUTPUT_NAME "RedAlert" LINK_FLAGS "/PDB:\"RedAlert.pdb\" /SUBSYSTEM:WINDOWS" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../" )
|
set_target_properties(RedAlert PROPERTIES OUTPUT_NAME "RedAlert" LINK_FLAGS "/PDB:\"RedAlert.pdb\" /SUBSYSTEM:WINDOWS" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../" )
|
||||||
target_include_directories(RedAlert PRIVATE ./external/xml/;./external/devil/;./external/;./redalert/win32lib;./external/lua/;./external/imgui;./external/dxsdk/Include;./external/ffmpeg-win32/include;./external/sdl2/include;./win32lib;./external/openal/include)
|
target_include_directories(RedAlert PRIVATE ./external/xml/;./external/devil/;./external/;./redalert/win32lib;./external/lua/;./external/imgui;./external/dxsdk/Include;./external/ffmpeg-win32/include;./external/sdl2/include;./win32lib;./external/openal/include)
|
||||||
target_link_libraries(RedAlert "opengl32.lib" "winmm.lib" "Ws2_32.lib" "${CMAKE_SOURCE_DIR}/external/devil/ilu.lib" "${CMAKE_SOURCE_DIR}/external/devil/DevIL.lib" "${CMAKE_SOURCE_DIR}/external/sdl2/lib/x86/SDL2.lib" "${CMAKE_SOURCE_DIR}/external/openal/out/build/x86-Release/OpenAL32.lib")
|
target_link_libraries(RedAlert "opengl32.lib" "winmm.lib" "Ws2_32.lib" "${CMAKE_SOURCE_DIR}/external/devil/ilu.lib" "${CMAKE_SOURCE_DIR}/external/devil/DevIL.lib" "${CMAKE_SOURCE_DIR}/external/sdl2/lib/x64/SDL2.lib" "${CMAKE_SOURCE_DIR}/external/openal/out/build/x64-Release/OpenAL32.lib")
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "x86-Debug",
|
"name": "x64-Debug",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"configurationType": "Debug",
|
"configurationType": "Debug",
|
||||||
"buildRoot": "${projectDir}\\out\\build\\${name}",
|
"buildRoot": "${projectDir}\\out\\build\\${name}",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"cmakeCommandArgs": "",
|
"cmakeCommandArgs": "",
|
||||||
"buildCommandArgs": "",
|
"buildCommandArgs": "",
|
||||||
"ctestCommandArgs": "",
|
"ctestCommandArgs": "",
|
||||||
"inheritEnvironments": [ "msvc_x86" ],
|
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||||
"variables": []
|
"variables": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "x86-Release",
|
"name": "x64-Release",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"configurationType": "RelWithDebInfo",
|
"configurationType": "RelWithDebInfo",
|
||||||
"buildRoot": "${projectDir}\\out\\build\\${name}",
|
"buildRoot": "${projectDir}\\out\\build\\${name}",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"cmakeCommandArgs": "",
|
"cmakeCommandArgs": "",
|
||||||
"buildCommandArgs": "",
|
"buildCommandArgs": "",
|
||||||
"ctestCommandArgs": "",
|
"ctestCommandArgs": "",
|
||||||
"inheritEnvironments": [ "msvc_x86" ],
|
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||||
"variables": []
|
"variables": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3656,7 +3656,7 @@ void CC_Draw_Shape(void const * shapefile, int shapenum, int x, int y, WindowNum
|
|||||||
{
|
{
|
||||||
int predoffset;
|
int predoffset;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
unsigned long shape_pointer;
|
INT_PTR shape_pointer;
|
||||||
#endif //WIN32
|
#endif //WIN32
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -715,7 +715,7 @@ long __cdecl Buffer_Frame_To_Page(int shapeNum, int x, int y, int w, int h, Imag
|
|||||||
/*
|
/*
|
||||||
** KEYFRAME.CPP
|
** KEYFRAME.CPP
|
||||||
*/
|
*/
|
||||||
unsigned long Build_Frame(void const *dataptr, unsigned short framenumber, void *buffptr);
|
INT_PTR Build_Frame(void const *dataptr, unsigned short framenumber, void *buffptr);
|
||||||
unsigned short Get_Build_Frame_Count(void const *dataptr);
|
unsigned short Get_Build_Frame_Count(void const *dataptr);
|
||||||
unsigned short Get_Build_Frame_X(void const *dataptr);
|
unsigned short Get_Build_Frame_X(void const *dataptr);
|
||||||
unsigned short Get_Build_Frame_Y(void const *dataptr);
|
unsigned short Get_Build_Frame_Y(void const *dataptr);
|
||||||
|
|||||||
@@ -1260,9 +1260,9 @@ void* Build_Frame2(void* shape, uint16_t frame, void* buffer)
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long Build_Frame(void const* dataptr, unsigned short framenumber, void* buffptr) {
|
INT_PTR Build_Frame(void const* dataptr, unsigned short framenumber, void* buffptr) {
|
||||||
UseBigShapeBuffer = false;
|
UseBigShapeBuffer = false;
|
||||||
return (unsigned long)Build_Frame2((void *)dataptr, framenumber, buffptr); // 32 bit to 64 bit issue
|
return (INT_PTR)Build_Frame2((void *)dataptr, framenumber, buffptr); // 32 bit to 64 bit issue
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short Get_Build_Frame_Count(void* shape)
|
unsigned short Get_Build_Frame_Count(void* shape)
|
||||||
|
|||||||
@@ -854,7 +854,7 @@ int VectorClass<T>::operator == (VectorClass<T> const & vector) const
|
|||||||
template<class T>
|
template<class T>
|
||||||
inline int VectorClass<T>::ID(T const * ptr)
|
inline int VectorClass<T>::ID(T const * ptr)
|
||||||
{
|
{
|
||||||
return(((unsigned long)ptr - (unsigned long)&(*this)[0]) / sizeof(T));
|
return(((INT_PTR)ptr - (INT_PTR)&(*this)[0]) / sizeof(T));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ void GraphicBufferClass::Init(int w, int h, void *buffer, long size, GBC_Enum fl
|
|||||||
Buffer = new BYTE[Size]; // otherwise allocate it and
|
Buffer = new BYTE[Size]; // otherwise allocate it and
|
||||||
Allocated = TRUE; // mark it system alloced
|
Allocated = TRUE; // mark it system alloced
|
||||||
}
|
}
|
||||||
Offset = (long)Buffer; // Get offset to the buffer
|
Offset = (INT_PTR)Buffer; // Get offset to the buffer
|
||||||
IsDirectDraw = FALSE;
|
IsDirectDraw = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -502,7 +502,7 @@ BOOL GraphicBufferClass::Lock(void)
|
|||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Offset = (unsigned long)backbuffer_data_raw; // 32bit to 64bit issue here.
|
Offset = (INT_PTR)backbuffer_data_raw;
|
||||||
//Pitch = Width;
|
//Pitch = Width;
|
||||||
|
|
||||||
LockCount++; // increment count so we can track if
|
LockCount++; // increment count so we can track if
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ class GraphicViewPortClass {
|
|||||||
/*===================================================================*/
|
/*===================================================================*/
|
||||||
/* define functions to get at the private data members */
|
/* define functions to get at the private data members */
|
||||||
/*===================================================================*/
|
/*===================================================================*/
|
||||||
long Get_Offset(void);
|
INT_PTR Get_Offset(void);
|
||||||
int Get_Height(void);
|
int Get_Height(void);
|
||||||
int Get_Width(void);
|
int Get_Width(void);
|
||||||
int Get_XAdd(void);
|
int Get_XAdd(void);
|
||||||
@@ -351,7 +351,7 @@ class GraphicViewPortClass {
|
|||||||
/*===================================================================*/
|
/*===================================================================*/
|
||||||
/* Define the data used by a GraphicViewPortClass */
|
/* Define the data used by a GraphicViewPortClass */
|
||||||
/*===================================================================*/
|
/*===================================================================*/
|
||||||
long Offset; // offset to graphic page
|
INT_PTR Offset; // offset to graphic page
|
||||||
int Width; // width of graphic page
|
int Width; // width of graphic page
|
||||||
int Height; // height of graphic page
|
int Height; // height of graphic page
|
||||||
int XAdd; // xadd for graphic page (0)
|
int XAdd; // xadd for graphic page (0)
|
||||||
@@ -506,10 +506,10 @@ inline BOOL GraphicViewPortClass::Unlock(void)
|
|||||||
* HISTORY: *
|
* HISTORY: *
|
||||||
* 06/07/1994 PWG : Created. *
|
* 06/07/1994 PWG : Created. *
|
||||||
*=========================================================================*/
|
*=========================================================================*/
|
||||||
inline long GraphicViewPortClass::Get_Offset(void)
|
inline INT_PTR GraphicViewPortClass::Get_Offset(void)
|
||||||
{
|
{
|
||||||
if(Offset == 0) {
|
if(Offset == 0) {
|
||||||
return (long)Get_Graphic_Buffer()->GetMemoryBuffer();
|
return (INT_PTR)Get_Graphic_Buffer()->GetMemoryBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return(Offset);
|
return(Offset);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline void *Add_Long_To_Pointer(void const *ptr, long size)
|
inline void *Add_Long_To_Pointer(void const *ptr, INT_PTR size)
|
||||||
{
|
{
|
||||||
return ((void *) ( (char const *) ptr + size));
|
return ((void *) ( (char const *) ptr + size));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ WinTimerClass::WinTimerClass (UINT freq, BOOL partial)
|
|||||||
//
|
//
|
||||||
//TimerHandle = timeSetEvent ( 1000/freq , 1 , Timer_Callback , 0 , TIME_PERIODIC);
|
//TimerHandle = timeSetEvent ( 1000/freq , 1 , Timer_Callback , 0 , TIME_PERIODIC);
|
||||||
// Add TIME_KILL_SYNCHRONOUS flag. ST - 2/13/2019 5:07PM
|
// Add TIME_KILL_SYNCHRONOUS flag. ST - 2/13/2019 5:07PM
|
||||||
TimerHandle = timeSetEvent ( 1000/freq , 1 , Timer_Callback , 0 , TIME_PERIODIC | TIME_KILL_SYNCHRONOUS);
|
TimerHandle = timeSetEvent ( 1000/freq , 1 , (LPTIMECALLBACK)Timer_Callback , 0 , TIME_PERIODIC | TIME_KILL_SYNCHRONOUS);
|
||||||
TimerSystemOn = success = ( TimerHandle !=0 );
|
TimerSystemOn = success = ( TimerHandle !=0 );
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
@@ -185,7 +185,7 @@ WinTimerClass::~WinTimerClass( void )
|
|||||||
*=============================================================================================*/
|
*=============================================================================================*/
|
||||||
|
|
||||||
|
|
||||||
void CALLBACK Timer_Callback (UINT , UINT , DWORD , DWORD , DWORD)
|
void CALLBACK Timer_Callback (UINT , UINT , DWORD , DWORD, DWORD)
|
||||||
{
|
{
|
||||||
//CONTEXT context;
|
//CONTEXT context;
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ typedef struct {
|
|||||||
/* The following PRIVATE functions are in this file: */
|
/* The following PRIVATE functions are in this file: */
|
||||||
/*=========================================================================*/
|
/*=========================================================================*/
|
||||||
|
|
||||||
PRIVATE unsigned long Get_Resident_Frame_Offset( char *file_buffer, int frame );
|
PRIVATE INT_PTR Get_Resident_Frame_Offset( char *file_buffer, int frame );
|
||||||
PRIVATE unsigned long Get_File_Frame_Offset( int file_handle, int frame, int palette_adjust);
|
PRIVATE unsigned long Get_File_Frame_Offset( int file_handle, int frame, int palette_adjust);
|
||||||
PRIVATE BOOL Apply_Delta(SysAnimHeaderType *sys_header, int curr_frame, char *dest_ptr, int dest_w);
|
PRIVATE BOOL Apply_Delta(SysAnimHeaderType *sys_header, int curr_frame, char *dest_ptr, int dest_w);
|
||||||
/*= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/
|
/*= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/
|
||||||
@@ -1029,13 +1029,13 @@ unsigned long __cdecl Get_Animation_Size(void const *handle)
|
|||||||
* HISTORY: *
|
* HISTORY: *
|
||||||
* 11/26/1991 SB : Created. *
|
* 11/26/1991 SB : Created. *
|
||||||
*=========================================================================*/
|
*=========================================================================*/
|
||||||
PRIVATE unsigned long Get_Resident_Frame_Offset( char *file_buffer, int frame )
|
PRIVATE INT_PTR Get_Resident_Frame_Offset( char *file_buffer, int frame )
|
||||||
{
|
{
|
||||||
unsigned long frame0_size;
|
INT_PTR frame0_size;
|
||||||
unsigned long *lptr;
|
unsigned int *lptr;
|
||||||
|
|
||||||
// If there is a frame 0, the calculate its size.
|
// If there is a frame 0, the calculate its size.
|
||||||
lptr = (unsigned long *) file_buffer;
|
lptr = (unsigned int *) file_buffer;
|
||||||
|
|
||||||
if (*lptr) {
|
if (*lptr) {
|
||||||
frame0_size = lptr[1] - *lptr;
|
frame0_size = lptr[1] - *lptr;
|
||||||
@@ -1096,7 +1096,7 @@ PRIVATE BOOL Apply_Delta(SysAnimHeaderType *sys_header, int curr_frame, char *de
|
|||||||
{
|
{
|
||||||
char *data_ptr, *delta_back;
|
char *data_ptr, *delta_back;
|
||||||
int file_handle, palette_adjust;
|
int file_handle, palette_adjust;
|
||||||
unsigned long frame_data_size, frame_offset;
|
INT_PTR frame_data_size, frame_offset;
|
||||||
|
|
||||||
|
|
||||||
palette_adjust = ((sys_header->flags & WSA_PALETTE_PRESENT) ? 768 : 0);
|
palette_adjust = ((sys_header->flags & WSA_PALETTE_PRESENT) ? 768 : 0);
|
||||||
@@ -1110,14 +1110,18 @@ PRIVATE BOOL Apply_Delta(SysAnimHeaderType *sys_header, int curr_frame, char *de
|
|||||||
// copy it into buffer
|
// copy it into buffer
|
||||||
|
|
||||||
frame_offset = Get_Resident_Frame_Offset(sys_header->file_buffer, curr_frame);
|
frame_offset = Get_Resident_Frame_Offset(sys_header->file_buffer, curr_frame);
|
||||||
|
// jmarshall - hack for crash!
|
||||||
|
if (frame_offset < 0)
|
||||||
|
return 0;
|
||||||
frame_data_size = Get_Resident_Frame_Offset(sys_header->file_buffer, curr_frame + 1) - frame_offset;
|
frame_data_size = Get_Resident_Frame_Offset(sys_header->file_buffer, curr_frame + 1) - frame_offset;
|
||||||
|
|
||||||
data_ptr = (char *)Add_Long_To_Pointer(sys_header->file_buffer, frame_offset);
|
data_ptr = (char *)Add_Long_To_Pointer(sys_header->file_buffer, frame_offset);
|
||||||
delta_back = (char *)Add_Long_To_Pointer(delta_back,
|
delta_back = (char *)Add_Long_To_Pointer(delta_back,
|
||||||
sys_header->largest_frame_size - frame_data_size);
|
sys_header->largest_frame_size - frame_data_size);
|
||||||
|
// jmarshall - 64bit
|
||||||
Mem_Copy( data_ptr, delta_back, frame_data_size );
|
//Mem_Copy( data_ptr, delta_back, frame_data_size );
|
||||||
|
memcpy(delta_back, data_ptr, frame_data_size);
|
||||||
|
// jmarshall end1
|
||||||
} else if (sys_header -> flags & WSA_FILE) {
|
} else if (sys_header -> flags & WSA_FILE) {
|
||||||
|
|
||||||
// Open up file because not file not in RAM.
|
// Open up file because not file not in RAM.
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ void GraphicBufferClass::Init(int w, int h, void *buffer, long size, GBC_Enum fl
|
|||||||
Buffer = new BYTE[Size]; // otherwise allocate it and
|
Buffer = new BYTE[Size]; // otherwise allocate it and
|
||||||
Allocated = TRUE; // mark it system alloced
|
Allocated = TRUE; // mark it system alloced
|
||||||
}
|
}
|
||||||
Offset = (long)Buffer; // Get offset to the buffer
|
Offset = (INT_PTR)Buffer; // Get offset to the buffer
|
||||||
IsDirectDraw = FALSE;
|
IsDirectDraw = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.7 KiB |
Reference in New Issue
Block a user