Browse Source

Remove redundant code

pull/25/head
Anders Jenbo 7 years ago
parent
commit
bd1949a8e6
  1. 4
      Stub/diabloui.cpp
  2. 20
      Stub/init.cpp
  3. 43
      Stub/sdlrender.cpp
  4. 45
      Stub/sdlrender.h

4
Stub/diabloui.cpp

@ -8,6 +8,10 @@ int MenuItem[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int PreviousItem[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int submenu = 0;
bool CreateSinglePlayerChar;
bool StartNewGame;
int HeroChosen = 0;
void __cdecl UiDestroy()
{
DUMMY();

20
Stub/init.cpp

@ -1,19 +1,23 @@
//HEADER_GOES_HERE
#include "../types.h"
#ifndef NO_GLOBALS
_SNETVERSIONDATA fileinfo;
int gbActive; // weak
char diablo_exe_path[260];
void *unused_mpq;
char patch_rt_mpq_path[260];
WNDPROC CurrentProc;
void *diabdat_mpq;
char diabdat_mpq_path[260];
void *patch_rt_mpq;
int killed_mom_parent; // weak
BOOLEAN screensaver_enabled_prev;
_SNETVERSIONDATA fileinfo;
WNDPROC CurrentProc;
int gbActive;
#endif
/* data */
char gszVersionNumber[260] = "internal version unknown";
char gszProductName[260] = "Diablo v1.09";
bool StartNewGame;
bool CreateSinglePlayerChar;
int HeroChosen = 0;
/**
* Case insensitive search for a file name in a directory.

43
Stub/sdlrender.cpp

@ -57,8 +57,6 @@ void *MenuPentegram16;
void *MenuPentegram;
void *MenuPentegram42;
void *pDiabfrCel;
char HeroUndecidedName[17];
_uiheroinfo heroarray[10];
@ -543,7 +541,7 @@ BOOL nottheend = TRUE;
/////////////////////////////////////////
PALETTEENTRY pcxPal[256];
void __fastcall LoadPalInMem(PALETTEENTRY *pPal)
void LoadPalInMem(PALETTEENTRY *pPal)
{
int i;
@ -555,7 +553,7 @@ void __fastcall LoadPalInMem(PALETTEENTRY *pPal)
}
}
BOOL __cdecl LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data)
BOOL LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data)
{
DWORD width;
DWORD height;
@ -746,26 +744,14 @@ void SdlDiabloMainWindow()
j_lock_buf_priv(0); //FIXME 0?
}
void DrawArtImage(int SX, int SY, int SW, int SH, int nFrame, void *pBuffer)
{
BYTE *src = (BYTE *)pBuffer + (SW * SH * nFrame);
BYTE *dst = (BYTE *)&gpBuffer->row[SY].pixels[SX];
for (int i = 0; i < SH && i + SY < SCREEN_HEIGHT; i++, src += SW, dst += 768) {
for (int j = 0; j < SW && j + SX < SCREEN_WIDTH; j++) {
dst[j] = src[j];
}
}
}
void DrawArtWithMask(int SX, int SY, int SW, int SH, int nFrame, BYTE bMask, void *pBuffer)
void DrawArtImage(int SX, int SY, int SW, int SH, int nFrame, void *pBuffer, BYTE *bMask = NULL)
{
BYTE *src = (BYTE *)pBuffer + (SW * SH * nFrame);
BYTE *dst = (BYTE *)&gpBuffer->row[SY].pixels[SX];
for (int i = 0; i < SH && i + SY < SCREEN_HEIGHT; i++, src += SW, dst += 768) {
for (int j = 0; j < SW && j + SX < SCREEN_WIDTH; j++) {
if (src[j] != bMask)
if (bMask == NULL || src[j] != *bMask)
dst[j] = src[j];
}
}
@ -782,11 +768,13 @@ int GetCenterOffset(int w, int bw = 0)
void DrawPCXString(int x, int y, int w, int h, BYTE *str, BYTE *font, void *pBuff)
{
int i;
int len = 0;
BYTE mask = 32;
BYTE chr;
int i;
for (i = 0; i < strlen(str); i++) {
DrawArtWithMask(x + len, y, w, h, str[i], 32, pBuff);
DrawArtImage(x + len, y, w, h, str[i], pBuff, &mask);
chr = font[str[i] + 2];
if (chr)
len += chr;
@ -795,7 +783,7 @@ void DrawPCXString(int x, int y, int w, int h, BYTE *str, BYTE *font, void *pBuf
}
}
int __fastcall GetPCXFontWidth(unsigned char *str, BYTE *font)
int GetPCXFontWidth(unsigned char *str, BYTE *font)
{
int i;
int len = 0;
@ -996,9 +984,10 @@ BOOL ShowCredts()
void AnimateDiabloLogo(int t, int w, int h, void *pBuffer)
{
BYTE mask = 250;
int frame = GetAnimationFrame(15);
DrawArtWithMask(GetCenterOffset(w), t, w, h, frame, 250, pBuffer);
DrawArtImage(GetCenterOffset(w), t, w, h, frame, pBuffer, &mask);
}
void RenderDiabloLogo()
@ -1013,6 +1002,8 @@ void RenderDiabloLogoSm()
void DrawMouse()
{
BYTE mask = 0;
SDL_GetMouseState(&MouseX, &MouseY);
float scaleX;
@ -1025,18 +1016,20 @@ void DrawMouse()
MouseX -= view.x;
MouseY -= view.y;
DrawArtWithMask(MouseX, MouseY, gdwCursorWidth, gdwCursorHeight, 0, 0, pPcxCursorImage);
DrawArtImage(MouseX, MouseY, gdwCursorWidth, gdwCursorHeight, 0, pPcxCursorImage, &mask);
}
void AnimateSelector(int x, int y, int width, int padding, int spacing, int swidth, void *pBuffer)
{
BYTE mask = 250;
width = width ? width : SCREEN_WIDTH;
x += GetCenterOffset(swidth, width);
y += (SelectedItem - 1) * spacing;
int frame = GetAnimationFrame(8);
DrawArtWithMask(x - width / 2 + padding, y, swidth, swidth, frame, 250, pBuffer);
DrawArtWithMask(x + width / 2 - padding, y, swidth, swidth, frame, 250, pBuffer);
DrawArtImage(x - width / 2 + padding, y, swidth, swidth, frame, pBuffer, &mask);
DrawArtImage(x + width / 2 - padding, y, swidth, swidth, frame, pBuffer, &mask);
}
void DrawSelector16(int x, int y, int width, int padding, int spacing)

45
Stub/sdlrender.h

@ -8,11 +8,11 @@ extern int gdwFont16Height;
extern void *pPcxFont16sImage;
extern void *pPcxFont16gImage;
extern unsigned char *pFont24;
extern int gdwFont24Width;
extern int gdwFont24Height;
extern void *pPcxFont24sImage;
extern void *pPcxFont24gImage;
extern unsigned char *pFont24;
extern unsigned char *pFont30;
extern int gdwFont30Width;
@ -25,9 +25,6 @@ extern int gdwFont42Width;
extern int gdwFont42Height;
extern void *pPcxFont42gImage;
extern void *pTitlqtxtCel;
extern void *pDiabfrCel;
extern void *pPcxLogoImage;
extern int gdwLogoWidth;
extern int gdwLogoHeight;
@ -49,11 +46,6 @@ extern int gdwSHeroWidth;
extern void *pPcxSHeroImage;
extern void *pMedTextCels;
extern void *pPcxGameImage;
extern void *pPcxCreditsImage;
extern int gdwCreditsWidth;
extern int gdwCreditsHeight;
extern int fadeValue;
extern int lineCount;
extern int creditline;
@ -63,60 +55,27 @@ extern int lastYbase;
extern bool TitleImageLoaded;
extern int SelectedItem;
extern int totalFrames;
//extern SDL_Texture* spriteSheet;
extern SDL_Surface *DiabloTitle;
extern SDL_Event input;
extern int SCREEN_WIDTH;
extern int SCREEN_HEIGHT;
extern int TotalPlayers;
extern SDL_Rect textureRect;
extern SDL_Rect windowRect;
//Menu0 //Main Menu rects
extern SDL_Rect SinglePlrBox;
extern SDL_Rect MultiPlrBox;
extern SDL_Rect ReplayIntroBox;
extern SDL_Rect ShowCreditsBox;
extern SDL_Rect ExitBox;
extern bool StartNewGame;
extern bool CreateSinglePlayerChar;
extern int HeroChosen;
extern void *TitleMenuText;
extern void *MenuPentegram16;
extern void *MenuPentegram;
extern void *MenuPentegram42;
extern char HeroUndecidedName[17];
extern SDL_Rect SinglePlayerMenuCancelBox;
extern SDL_Rect CreateHeroBox;
void CreateMenuDialogBox();
void CreateDiabloMainMenuz();
void SdlDiabloMainWindow();
void RenderDiabloSplashPage();
void RenderDiabloMainPage(char *name);
char *GetWorkingDirectory();
void CreateMainDiabloMenu();
void RenderDiabloSinglePlayerPage();
BOOL ShowCredts();
void RenderCharNames();
void FreeMenuItems();
BOOL __cdecl LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data);
void DrawMouse();
void DrawCursor(int mx, int my);
BOOL LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data);
void CreateHeroMenu();
void RenderUndecidedHeroName(int HeroClass);
void LoadHeroStats();
void RenderDefaultStats(int HeroClass);
void DrawPreGameOptions(int HeroClass, int ShowClasses);
void DrawPreGameDifficultySelection(int HeroClass, int ShowClasses);
void DrawSelMultiConnection();
int GetCenterOffset(int w, int bw = 0);
void DrawPCXString(int x, int y, int w, int h, BYTE *str, BYTE *font, void *pBuff);
void DrawArtWithMask(int SX, int SY, int SW, int SH, int nFrame, BYTE bMask, void *pBuffer);

Loading…
Cancel
Save