Browse Source

Fix compiling on 64bit (only menu works)

pull/25/head
Anders Jenbo 7 years ago
parent
commit
d4d5683d5b
  1. 3
      CMakeLists.txt
  2. 4
      Source/gmenu.cpp
  3. 780
      Source/multi.cpp
  4. 40
      Source/multi.h
  5. 4
      Stub/sdlrender.cpp
  6. 1
      defs.h
  7. 5
      structs.h

3
CMakeLists.txt

@ -123,7 +123,8 @@ set(STUB_SOURCES
Stub/miniwin_io.cpp
Stub/miniwin_msg_sdl.cpp
Stub/storm_net.cpp
Stub/validate.cpp
#Stub/validate.cpp
Stub/effects.cpp
Stub/sdlrender.cpp
Stub/diablo.cpp
Stub/gamemenu.cpp

4
Source/gmenu.cpp

@ -360,7 +360,7 @@ void __cdecl gmenu_init_menu()
gdwCursorWidth = dwData[0];
gdwCursorHeight = dwData[1];
LoadArtImage("ui_art\\logo.pcx", &pPcxLogoImage, 15, dwData);
LoadArtImage("ui_art\\smlogo.pcx", &pPcxLogoImage, 15, dwData);
gdwLogoWidth = dwData[0];
gdwLogoHeight = dwData[1];
@ -389,8 +389,6 @@ void __cdecl gmenu_init_menu()
LoadArtImage("ui_art\\font42g.pcx", &pPcxFont42gImage, 256, dwData);
gdwFont42Width = dwData[0];
gdwFont42Height = dwData[1];
}
// 634464: using guessed type char byte_634464;
// 634478: using guessed type char byte_634478;

780
Source/multi.cpp

File diff suppressed because it is too large Load Diff

40
Source/multi.h

@ -3,40 +3,26 @@
#define __MULTI_H__
extern char gbSomebodyWonGameKludge; // weak
extern char pkdata_6761C0[4100];
extern char szPlayerDescript[128];
extern short sgwPackPlrOffsetTbl[MAX_PLRS];
extern PkPlayerStruct netplr[MAX_PLRS];
extern char sgbPlayerTurnBitTbl[MAX_PLRS];
extern char sgbPlayerLeftGameTbl[MAX_PLRS];
extern int multi_cpp_init_value; // weak
extern int sgbSentThisCycle; // idb
extern int dword_678628; // weak
extern char gbActivePlayers; // weak
extern BYTE gbActivePlayers;
extern char gbGameDestroyed; // weak
extern char sgbSendDeltaTbl[MAX_PLRS];
extern _gamedata sgGameInitInfo;
extern char byte_678640; // weak
extern int sglTimeoutStart; // weak
extern int sgdwPlayerLeftReasonTbl[MAX_PLRS];
extern char pkdata_678658[4100];
extern unsigned int sgdwGameLoops; // idb
extern UCHAR gbMaxPlayers;
extern char sgbTimeout; // weak
extern char byte_678640; // weak
extern BYTE gbMaxPlayers;
extern char szPlayerName[128];
extern char gbDeltaSender; // weak
extern int sgbNetInited; // weak
extern BYTE gbDeltaSender; // weak
extern int player_state[MAX_PLRS];
void __cdecl multi_cpp_init();
void __fastcall multi_msg_add(unsigned char *a1, unsigned char a2);
void __fastcall NetSendLoPri(unsigned char *pbMsg, unsigned char bLen);
void __fastcall multi_copy_packet(void *a1, void *packet, int size);
void __fastcall multi_send_packet(void *packet, int dwSize);
void __fastcall multi_msg_add(BYTE *a1, unsigned char a2);
void __fastcall NetSendLoPri(BYTE *pbMsg, BYTE bLen);
void __fastcall multi_copy_packet(TBuffer *a1, void *packet, BYTE size);
void __fastcall multi_send_packet(void *packet, BYTE dwSize);
void __fastcall NetRecvPlrData(TPkt *pkt);
void __fastcall NetSendHiPri(unsigned char *pbMsg, unsigned char bLen);
unsigned char *__fastcall multi_recv_packet(void *packet, unsigned char *a2, int *a3);
void __fastcall multi_send_msg_packet(int a1, unsigned char *a2, unsigned char len);
void __fastcall NetSendHiPri(BYTE *pbMsg, BYTE bLen);
unsigned char *__fastcall multi_recv_packet(TBuffer *packet, unsigned char *a2, int *a3);
void __fastcall multi_send_msg_packet(int a1, BYTE *a2, BYTE len);
void __cdecl multi_msg_countdown();
void __fastcall multi_parse_turn(int pnum, int turn);
void __fastcall multi_handle_turn_upper_bit(int pnum);
@ -45,7 +31,7 @@ void __cdecl multi_clear_left_tbl();
void __fastcall multi_player_left_msg(int pnum, int left);
void __cdecl multi_net_ping();
int __cdecl multi_handle_delta();
int __fastcall multi_check_pkt_valid(char *a1);
int __fastcall multi_check_pkt_valid(TBuffer *a1);
void __cdecl multi_mon_seeds();
void __cdecl multi_begin_timeout();
void __cdecl multi_check_drop_player();
@ -57,7 +43,7 @@ void __cdecl NetClose();
char __fastcall multi_event_handler(int a1);
void __stdcall multi_handle_events(_SNETEVENT *pEvt);
int __fastcall NetInit(int bSinglePlayer, int *pfExitProgram);
void __fastcall multi_clear_pkt(char *a1);
void __fastcall buffer_init(TBuffer *pBuf);
void __fastcall multi_send_pinfo(int pnum, char cmd);
int __fastcall InitNewSeed(int newseed);
void __cdecl SetupLocalCoords();

4
Stub/sdlrender.cpp

@ -909,8 +909,8 @@ void SDL_RenderDiabloMainPage()
PrintText16Silver(17, 444, gszProductName);
ADD_PlrStringXY(0, 600 - 150, 640, "DedicaTed To David Brevik, Erich Schaefer, Max Schaefer,", COL_BLUE);// Red isn't red
ADD_PlrStringXY(0, 600 - 130, 640, " MaTT Uelman, and The Blizzard North Team ThaT Gave Us A Childhood.", COL_BLUE);
//ADD_PlrStringXY(0, 600 - 150, 640, "DedicaTed To David Brevik, Erich Schaefer, Max Schaefer,", COL_BLUE);// Red isn't red
//ADD_PlrStringXY(0, 600 - 130, 640, " MaTT Uelman, and The Blizzard North Team ThaT Gave Us A Childhood.", COL_BLUE);
}
void SDL_RenderDiabloSinglePlayerPage()

1
defs.h

@ -118,6 +118,7 @@ typedef ull uint64;
#define _WORD uint16
#define _DWORD uint32
#define _QWORD uint64
#define BOOLEAN bool
// Some convenience macros to make partial accesses nicer
#define LAST_IND(x,part_type) (sizeof(x)/sizeof(part_type) - 1)

5
structs.h

@ -1008,6 +1008,11 @@ struct TMegaPkt
unsigned char data[32000];
};
typedef struct TBuffer {
DWORD dwNextWriteOffset;
BYTE bData[4096];
} TBuffer;
//////////////////////////////////////////////////
// quests
//////////////////////////////////////////////////

Loading…
Cancel
Save