From aa822df202faf7ca8bfca3b953851baf47e3f1f2 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 19 Jan 2019 17:47:43 +0100 Subject: [PATCH] Align code style --- Source/gmenu.cpp | 327 +++++--------- Stub/.clang-format | 23 +- Stub/init.cpp | 149 +++--- Stub/sdlrender.cpp | 1076 ++++++++++++++++++++++---------------------- 4 files changed, 718 insertions(+), 857 deletions(-) diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index 5ce134b5d..f591cdf90 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -11,7 +11,7 @@ int dword_634474; // weak char byte_634478; // weak void(__cdecl *dword_63447C)(); TMenuItem *dword_634480; // idb -int dword_63448C; // weak +int dword_63448C; // weak void *pPentSmall; void *BigTGold_cel; @@ -38,7 +38,6 @@ void *pPcxHeroImage; int gdwSHeroHeight; int gdwSHeroWidth; - int gdwFontWidth; int gdwFontHeight; void *pPcxFontImage; @@ -53,14 +52,12 @@ int gdwFont3Width; int gdwFont3Height; void *pPcxFont3Image; - void *GameTitle; int GameTitleHeight; int GameTitleWidth; -void * TitleMenuText; -void * MenuPentegram; - +void *TitleMenuText; +void *MenuPentegram; void *optbar_cel; void *PentSpin_cel; @@ -69,55 +66,50 @@ void *sgpLogo; void *pTitlgrayCel_sgpBackCel; void *pDiabfrCel; - - #endif -const unsigned char lfontframe[127] = - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 49, 38, 0, 39, 40, 47, - 42, 43, 41, 45, 52, 44, 53, 55, 36, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 51, 50, - 0, 46, 0, 54, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 42, 0, 43, 0, 0, 0, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 20, 0, 21, 0}; -const unsigned char lfontkern[56] = - { - 18, 33, 21, 26, 28, 19, 19, 26, 25, 11, - 12, 25, 19, 34, 28, 32, 20, 32, 28, 20, - 28, 36, 35, 46, 33, 33, 24, 11, 23, 22, - 22, 21, 22, 21, 21, 21, 32, 10, 20, 36, - 31, 17, 13, 12, 13, 18, 16, 11, 20, 21, - 11, 10, 12, 11, 21, 23}; +const unsigned char lfontframe[127] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 49, 38, 0, 39, 40, 47, + 42, 43, 41, 45, 52, 44, 53, 55, 36, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 51, 50, + 0, 46, 0, 54, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 42, 0, 43, 0, 0, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 20, 0, 21, 0 +}; +const unsigned char lfontkern[56] = { + 18, 33, 21, 26, 28, 19, 19, 26, 25, 11, + 12, 25, 19, 34, 28, 32, 20, 32, 28, 20, + 28, 36, 35, 46, 33, 33, 24, 11, 23, 22, + 22, 21, 22, 21, 21, 21, 32, 10, 20, 36, + 31, 17, 13, 12, 13, 18, 16, 11, 20, 21, + 11, 10, 12, 11, 21, 23 +}; void __cdecl gmenu_draw_pause() { if (currlevel) RedBack(); - if (!dword_634480) - { + if (!dword_634480) { light_table_index = 0; gmenu_print_text(316, 336, "Pause"); } } // 69BEF8: using guessed type int light_table_index; - PALETTEENTRY pcxPal[256]; void __fastcall LoadPalInMem(PALETTEENTRY *pPal) { int i; // eax - for (i = 0; i < 256; i++) - { + for (i = 0; i < 256; i++) { orig_palette[i].peFlags = 0; orig_palette[i].peRed = pPal[i].peRed; orig_palette[i].peGreen = pPal[i].peGreen; @@ -137,8 +129,7 @@ BOOL __cdecl LoadArtImage(char *pszFile, void **pBuffer, int frames, DWORD *data *pBuffer = SMemAlloc(height * width, "U:\\DiabloUI\\Ui\\local.cpp", 88); if (!SBmpLoadImage(pszFile, NULL, *pBuffer, height * width, 0, 0, 0)) return 0; - if (pBuffer && data) - { + if (pBuffer && data) { data[0] = width; data[1] = height / frames; } @@ -162,8 +153,7 @@ BOOL __cdecl LoadArtWithPal(char *pszFile, void **pBuffer, int frames, DWORD *da //lpDDPalette->SetEntries(0, 0, 256, orig_palette); - if (pBuffer && data) - { + if (pBuffer && data) { data[0] = width; data[1] = height / frames; } @@ -172,27 +162,27 @@ BOOL __cdecl LoadArtWithPal(char *pszFile, void **pBuffer, int frames, DWORD *da BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, void *pBuffer, DWORD dwBuffersize, DWORD *pdwWidth, DWORD *dwHeight, DWORD *pdwBpp) { - char *v7; // ebx - unsigned char *v8; // edi - PALETTEENTRY *v9; // esi - int v10; // esi - signed int v11; // ebx - int v12; // ebp - size_t v13; // ebp - unsigned char *v14; // eax - unsigned char *v15; // edx - int v16; // ebp - unsigned char v17; // cl - unsigned char v18; // al - int v19; // ecx - bool v20; // zf - bool v21; // sf - unsigned char(*v22)[3]; // eax - BYTE v23; // cl - unsigned char *Memory; // [esp+14h] [ebp-38Ch] - HANDLE hFile; // [esp+18h] [ebp-388h] MAPDST - DWORD v28; // [esp+1Ch] [ebp-384h] - PCXHeader pcxhdr; // [esp+20h] [ebp-380h] + char *v7; // ebx + unsigned char *v8; // edi + PALETTEENTRY *v9; // esi + int v10; // esi + signed int v11; // ebx + int v12; // ebp + size_t v13; // ebp + unsigned char *v14; // eax + unsigned char *v15; // edx + int v16; // ebp + unsigned char v17; // cl + unsigned char v18; // al + int v19; // ecx + bool v20; // zf + bool v21; // sf + unsigned char(*v22)[3]; // eax + BYTE v23; // cl + unsigned char *Memory; // [esp+14h] [ebp-38Ch] + HANDLE hFile; // [esp+18h] [ebp-388h] MAPDST + DWORD v28; // [esp+1Ch] [ebp-384h] + PCXHeader pcxhdr; // [esp+20h] [ebp-380h] unsigned char paldata[256][3]; // [esp+A0h] [ebp-300h] int z; @@ -203,20 +193,14 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo if (pdwBpp) *pdwBpp = 0; v7 = (char *)pszFileName; - if (pszFileName) - { - if (*pszFileName) - { + if (pszFileName) { + if (*pszFileName) { v8 = (unsigned char *)pBuffer; - if (!pBuffer || dwBuffersize) - { + if (!pBuffer || dwBuffersize) { v9 = pPalette; - if (pPalette || pBuffer || pdwWidth || dwHeight) - { - if (SFileOpenFile(pszFileName, &hFile)) - { - if (strchr(pszFileName, 92)) - { + if (pPalette || pBuffer || pdwWidth || dwHeight) { + if (SFileOpenFile(pszFileName, &hFile)) { + if (strchr(pszFileName, 92)) { do v7 = strchr(v7, 92) + 1; while (strchr(v7, 92)); @@ -229,8 +213,7 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo //v10 = sub_15001C70(hFile, pPalette, pBuffer, dwBuffersize, pdwWidth, dwHeight, pdwBpp); //goto LABEL_51; } - if (!SFileReadFile(hFile, &pcxhdr, 128u, 0, 0)) - { + if (!SFileReadFile(hFile, &pcxhdr, 128u, 0, 0)) { v10 = 0; LABEL_51: SFileCloseFile(hFile); @@ -245,8 +228,7 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo *dwHeight = v11; if (pdwBpp) *pdwBpp = v28; - if (!pBuffer) - { + if (!pBuffer) { SFileSetFilePointer(hFile, 0, 0, 2); goto LABEL_45; } @@ -254,16 +236,13 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo v13 = v12 - SFileSetFilePointer(hFile, 0, 0, 1); v14 = (unsigned char *)SMemAlloc(v13, "SBMP.CPP", 171); Memory = v14; - if (!v14) - { + if (!v14) { LABEL_45: - if (pPalette && v28 == 8) - { + if (pPalette && v28 == 8) { SFileSetFilePointer(hFile, -768, 0, 1); SFileReadFile(hFile, paldata, 768u, 0, 0); v22 = paldata; - for (z = 0; z < 256; z++) - { + for (z = 0; z < 256; z++) { v23 = *(_BYTE *)v22; ++v9; ++v22; @@ -282,21 +261,16 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo goto LABEL_43; LABEL_33: v16 = *(_DWORD *)&paldata[0][0]; - while (1) - { + while (1) { v17 = *v15++; - if (v17 < 0xC0u) - { + if (v17 < 0xC0u) { *v8++ = v17; --v16; - } - else - { + } else { v18 = *v15; v19 = v17 & 0x3F; ++v15; - for (; v19; --v16) - { + for (; v19; --v16) { v20 = v16 == 0; v21 = v16 < 0; if (!v16) @@ -308,10 +282,8 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo v20 = v16 == 0; v21 = v16 < 0; LABEL_41: - if (v21 || v20) - { - if (!--v11) - { + if (v21 || v20) { + if (!--v11) { LABEL_43: SMemFree(Memory, "SBMP.CPP", 178); goto LABEL_45; @@ -327,20 +299,11 @@ BOOL __stdcall SBmpLoadImage(const char *pszFileName, PALETTEENTRY *pPalette, vo return 0; } - - - - - - - - - void __fastcall gmenu_print_text(int x, int y, char *pszStr) { - char *v3; // edi - int v4; // ebp - int v5; // esi + char *v3; // edi + int v4; // ebp + int v5; // esi unsigned char i; // al unsigned char v7; // bl @@ -349,18 +312,15 @@ void __fastcall gmenu_print_text(int x, int y, char *pszStr) v4 = y; v5 = x; - for (i = *pszStr; *v3; i = *v3) - { + for (i = *pszStr; *v3; i = *v3) { ++v3; v7 = lfontframe[fontidx[i]]; if (v7) - if(gbRunGame == 1){ + if (gbRunGame == 1) { //CelDecodeLightOnly(v5, v4, (char *)BigTGold_cel, v7, 46); - DrawArtWithMask(v5-90, v4-250, 42, 42, 0, 242, pPcxFontImage); //pPcxFontImage - } - else{ - DrawArtWithMask(v5-90, v4-250, 42, 42, 0, 242, pPcxFontImage); //pPcxFontImage - + DrawArtWithMask(v5 - 90, v4 - 250, 42, 42, 0, 242, pPcxFontImage); //pPcxFontImage + } else { + DrawArtWithMask(v5 - 90, v4 - 250, 42, 42, 0, 242, pPcxFontImage); //pPcxFontImage } v5 += lfontkern[v7] + 2; @@ -381,11 +341,9 @@ void __cdecl gmenu_init_menu() dword_63448C = 0; byte_634464 = 0; -//Dont remove this pPanelText = LoadFileInMem("CtrlPan\\SmalText.CEL", 0); LoadArtImage("ui_art\\focus42.pcx", &MenuPentegram, 8, dwData); -// LoadArtImage("ui_art\\cursor.pcx", &pPcxCursorImage, 1, dwData); gdwCursorWidth = dwData[0]; gdwCursorHeight = dwData[1]; @@ -423,8 +381,8 @@ bool __cdecl gmenu_exception() void __fastcall gmenu_call_proc(TMenuItem *pItem, void(__cdecl *gmFunc)()) { - TMenuItem *v2; // eax - int v3; // ecx + TMenuItem *v2; // eax + int v3; // ecx void(__cdecl * *v4)(); // edx PauseMode = 0; @@ -432,18 +390,15 @@ void __fastcall gmenu_call_proc(TMenuItem *pItem, void(__cdecl *gmFunc)()) v2 = pItem; dword_63447C = gmFunc; dword_634480 = pItem; - if (gmFunc) - { + if (gmFunc) { gmFunc(); v2 = dword_634480; } v3 = 0; dword_63448C = 0; - if (v2) - { + if (v2) { v4 = &v2->fnMenu; - while (*v4) - { + while (*v4) { ++v3; v4 += 3; dword_63448C = v3; @@ -459,34 +414,28 @@ void __fastcall gmenu_call_proc(TMenuItem *pItem, void(__cdecl *gmFunc)()) void __fastcall gmenu_up_down(int a1) { TMenuItem *v1; // eax - int v2; // edi + int v2; // edi v1 = sgpCurrItem; - if (sgpCurrItem) - { + if (sgpCurrItem) { byte_634464 = 0; v2 = dword_63448C; - while (v2) - { + while (v2) { --v2; - if (a1) - { + if (a1) { ++v1; sgpCurrItem = v1; if (v1->fnMenu) goto LABEL_10; v1 = dword_634480; - } - else - { + } else { if (v1 == dword_634480) v1 = &dword_634480[dword_63448C]; --v1; } sgpCurrItem = v1; LABEL_10: - if ((v1->dwFlags & 0x80000000) != 0) - { + if ((v1->dwFlags & 0x80000000) != 0) { if (v2) PlaySFX(IS_TITLEMOV); return; @@ -499,24 +448,21 @@ void __fastcall gmenu_up_down(int a1) void __cdecl gmenu_draw() { - int v0; // edi + int v0; // edi TMenuItem *i; // esi - DWORD v2; // eax + DWORD v2; // eax - if (dword_634480) - { + if (dword_634480) { if (dword_63447C) dword_63447C(); // CelDecodeOnly(236, 262, sgpLogo, 1, 296); v0 = 320; - for (i = dword_634480; i->fnMenu; v0 += 45) - { + for (i = dword_634480; i->fnMenu; v0 += 45) { gmenu_draw_menu_item(i, v0); ++i; } v2 = GetTickCount(); - if ((signed int)(v2 - dword_634474) > 25) - { + if ((signed int)(v2 - dword_634474) > 25) { if (++byte_634478 == 9) byte_634478 = 1; dword_634474 = v2; @@ -528,24 +474,23 @@ void __cdecl gmenu_draw() void __fastcall gmenu_draw_menu_item(TMenuItem *pItem, int a2) { - int v2; // edi - TMenuItem *v3; // ebx + int v2; // edi + TMenuItem *v3; // ebx unsigned int v4; // eax unsigned int v5; // ebp - int v6; // esi + int v6; // esi unsigned int v7; // ecx unsigned int v8; // eax - int v9; // ecx + int v9; // ecx unsigned int v10; // ebp - int v11; // esi - int v12; // eax - int v13; // edi + int v11; // esi + int v12; // eax + int v13; // edi unsigned int v14; // [esp+10h] [ebp-4h] int MyPcxDelay = 60; int MyPcxFRAME = (SDL_GetTicks() / MyPcxDelay) % 15; - if (++MyPcxFRAME == 15) - { + if (++MyPcxFRAME == 15) { MyPcxFRAME = 1; } @@ -556,8 +501,7 @@ void __fastcall gmenu_draw_menu_item(TMenuItem *pItem, int a2) v4 = gmenu_get_lfont(pItem); v5 = v4; v14 = v4; - if (v3->dwFlags & 0x40000000) - { + if (v3->dwFlags & 0x40000000) { v6 = (v4 >> 1) + 80; //CelDecodeOnly(v6, v2 - 10, optbar_cel, 1, 287); v7 = (v3->dwFlags >> 12) & 0xFFF; @@ -575,8 +519,7 @@ void __fastcall gmenu_draw_menu_item(TMenuItem *pItem, int a2) _LOBYTE(v12) = v12 & 0xF1; light_table_index = v12 + 15; gmenu_print_text(384 - (v5 >> 1), v2, v3->pszStr); - if (v3 == sgpCurrItem) - { + if (v3 == sgpCurrItem) { v13 = v2 + 1; //CelDecodeOnly(v11 - 54, v13, PentSpin_cel, (unsigned char)byte_634478, 48); @@ -592,8 +535,7 @@ void __fastcall gmenu_clear_buffer(int x, int y, int width, int height) char *i; // esi v4 = height; - for (i = (char *)gpBuffer + screen_y_times_768[y] + x; v4; --v4) - { + for (i = (char *)gpBuffer + screen_y_times_768[y] + x; v4; --v4) { memset(i, 205, width); i -= 768; } @@ -601,15 +543,14 @@ void __fastcall gmenu_clear_buffer(int x, int y, int width, int height) int __fastcall gmenu_get_lfont(TMenuItem *pItem) { - char *v2; // eax - int i; // edx + char *v2; // eax + int i; // edx unsigned char v4; // cl if (pItem->dwFlags & 0x40000000) return 490; v2 = pItem->pszStr; - for (i = 0;; i += lfontkern[lfontframe[fontidx[v4]]] + 2) - { + for (i = 0;; i += lfontkern[lfontframe[fontidx[v4]]] + 2) { v4 = *v2; if (!*v2) break; @@ -625,11 +566,9 @@ int __fastcall gmenu_presskeys(int a1) if (!dword_634480) return 0; - switch (a1) - { + switch (a1) { case VK_RETURN: - if ((sgpCurrItem->dwFlags & 0x80000000) != 0) - { + if ((sgpCurrItem->dwFlags & 0x80000000) != 0) { PlaySFX(IS_TITLEMOV); ((void(__fastcall *)(signed int))sgpCurrItem->fnMenu)(1); } @@ -664,20 +603,16 @@ void __fastcall gmenu_left_right(int a1) { signed int v1; // edx unsigned int v2; // eax - int v3; // eax + int v3; // eax v1 = sgpCurrItem->dwFlags; - if (sgpCurrItem->dwFlags & 0x40000000) - { + if (sgpCurrItem->dwFlags & 0x40000000) { v2 = sgpCurrItem->dwFlags & 0xFFF; - if (a1) - { + if (a1) { if (v2 == ((v1 >> 12) & 0xFFF)) return; v3 = v2 + 1; - } - else - { + } else { if (!(v1 & 0xFFF)) return; v3 = v2 - 1; @@ -711,13 +646,11 @@ int __fastcall gmenu_on_mouse_move(LPARAM lParam) bool __fastcall gmenu_valid_mouse_pos(int *plOffset) { *plOffset = 282; - if (MouseX < 282) - { + if (MouseX < 282) { *plOffset = 0; return 0; } - if (MouseX > 538) - { + if (MouseX > 538) { *plOffset = 256; return 0; } @@ -727,7 +660,7 @@ bool __fastcall gmenu_valid_mouse_pos(int *plOffset) int __fastcall gmenu_left_mouse(int a1) { - int result; // eax + int result; // eax unsigned int v2; // eax unsigned int v3; // eax TMenuItem *v4; // esi @@ -735,40 +668,30 @@ int __fastcall gmenu_left_mouse(int a1) //LPARAM v6; // ecx int a1a; // [esp+4h] [ebp-4h] - if (a1) - { + if (a1) { if (!dword_634480 || MouseY >= 352) return 0; - if (MouseY - 117 >= 0) - { + if (MouseY - 117 >= 0) { v2 = (MouseY - 117) / 45; - if (v2 < dword_63448C) - { + if (v2 < dword_63448C) { v3 = v2; v4 = &dword_634480[v3]; - if ((v4->dwFlags & 0x80000000) != 0) - { + if ((v4->dwFlags & 0x80000000) != 0) { v5 = (unsigned int)gmenu_get_lfont(&dword_634480[v3]) >> 1; - if (MouseX >= 320 - v5 && MouseX <= v5 + 320) - { + if (MouseX >= 320 - v5 && MouseX <= v5 + 320) { sgpCurrItem = v4; PlaySFX(IS_TITLEMOV); - if (v4->dwFlags & 0x40000000) - { + if (v4->dwFlags & 0x40000000) { byte_634464 = gmenu_valid_mouse_pos(&a1a); gmenu_on_mouse_move(a1); /* v6 */ - } - else - { + } else { ((void(__fastcall *)(signed int))sgpCurrItem->fnMenu)(1); } } } } } - } - else - { + } else { result = 0; if (!byte_634464) return result; @@ -790,7 +713,7 @@ void __fastcall gmenu_enable(TMenuItem *pMenuItem, BOOL enable) void __fastcall gmenu_slider_1(TMenuItem *pItem, int min, int max, int gamma) { unsigned int v4; // esi - int v5; // eax + int v5; // eax v4 = pItem->dwFlags; v5 = (pItem->dwFlags >> 12) & 0xFFF; @@ -802,7 +725,7 @@ void __fastcall gmenu_slider_1(TMenuItem *pItem, int min, int max, int gamma) int __fastcall gmenu_slider_get(TMenuItem *pItem, int min, int max) { - int v3; // eax + int v3; // eax unsigned int v4; // ecx v3 = (pItem->dwFlags >> 12) & 0xFFF; diff --git a/Stub/.clang-format b/Stub/.clang-format index f54edb9db..7b78b7000 100644 --- a/Stub/.clang-format +++ b/Stub/.clang-format @@ -1,14 +1,9 @@ ---- -IndentWidth: 4 -TabWidth: 4 ---- -Language: Cpp -UseTab: ForIndentation -AlignTrailingComments: false -BreakBeforeBraces: Linux -ColumnLimit: 120 -IncludeBlocks: Preserve -AlignEscapedNewlines: DontAlign -AlignOperands: true -AllowShortFunctionsOnASingleLine: Inline -Standard: Cpp11 +{ + BasedOnStyle: webkit, + AlignTrailingComments: true, + AllowShortBlocksOnASingleLine: true, + AllowShortFunctionsOnASingleLine: None, + PointerAlignment: Right, + TabWidth: 4, + UseTab: ForIndentation, +} diff --git a/Stub/init.cpp b/Stub/init.cpp index d81bcdb71..cf623665d 100644 --- a/Stub/init.cpp +++ b/Stub/init.cpp @@ -8,7 +8,6 @@ void *diabdat_mpq; void *patch_rt_mpq; - _SNETVERSIONDATA fileinfo; WNDPROC CurrentProc; int gbActive; @@ -16,7 +15,7 @@ int gbActive; char gszVersionNumber[260] = "internal version unknown"; char gszProductName[260] = "Diablo v1.09"; -char HeroUndecidedName[17] = {0}; +char HeroUndecidedName[17] = { 0 }; bool StartNewGame; bool CreateSinglePlayerChar; int HeroChosen = 0; @@ -47,7 +46,7 @@ static std::string find_file_in_directory(const char *dirpath, const char *file) static std::string find_file_in_std_directories(const char *file) { - for (auto dir : {".", "..", "../.."}) { + for (auto dir : { ".", "..", "../.." }) { auto path = find_file_in_directory(dir, file); if (!path.empty()) { @@ -98,7 +97,9 @@ void __cdecl init_archives() SFileOpenArchive("patch_rt.mpq", 1000, 0, &patch_rt_mpq); } -void GetAvailableHeroes() {} +void GetAvailableHeroes() +{ +} void LoadCharNamesintoMemory(int start, int end) { @@ -148,7 +149,6 @@ void SDL_Diablo_UI() // I anticipate to move this later. snd_init(0); music_start(5); - int timestart = 0; signed int NewHeroNameIndex = 0; @@ -186,7 +186,6 @@ void SDL_Diablo_UI() // I anticipate to move this later. } if (menu == 2) { - LoadArtWithPal("ui_art\\selhero.pcx", &pPcxTitleImage, 1, dwData); gdwTitleWidth = dwData[0]; gdwTitleHeight = dwData[1]; @@ -253,7 +252,9 @@ void SDL_Diablo_UI() // I anticipate to move this later. case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_ESCAPE: - menu = 0; + if (menu != 0) { + menu = 0; + } break; case SDLK_BACKSPACE: @@ -293,10 +294,8 @@ void SDL_Diablo_UI() // I anticipate to move this later. if (event.type == SDL_MOUSEMOTION) { // Get the mouse offsets - x = event.motion.x; - y = event.motion.y; - MouseX = x; - MouseY = y; + MouseX = event.motion.x; + MouseY = event.motion.y; } // If a key was pressed @@ -314,26 +313,19 @@ void SDL_Diablo_UI() // I anticipate to move this later. int WidthOfBox = 430; int ClickListEnd = 343; - if ((x > ClickListStart) && (y > ClickListStart) && (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + sizeOfBox)) { // Single clicked + if ((x > ClickListStart) && (y > ClickListStart) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + sizeOfBox)) { // Single clicked printf("SinglePlayer Diablo\n"); menu = 2; } - if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox) + sizeOfBox)) { // MultiBox clicked + if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox) + sizeOfBox)) { // MultiBox clicked printf("MultiPlayer Diablo\n"); } - if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 2)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 2) + sizeOfBox)) { // Reply Intro clicked + if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 2)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 2) + sizeOfBox)) { // Reply Intro clicked printf("Credits\n"); menu = 10; } - if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 4)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 4) + sizeOfBox)) { // ShowCredits clicked + if ((x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 4)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 4) + sizeOfBox)) { // ShowCredits clicked printf("Exiting Diablo\n"); quit = true; SDL_Quit(); @@ -360,17 +352,14 @@ void SDL_Diablo_UI() // I anticipate to move this later. CreateHeroCancelBox.h = CreateHeroCancelBox.y + 30; // Render Clicks - if (TotalPlayers >= 1 && (x > ClickListStart) && (y > ClickListStart) && - (x < ClickListStart + WidthOfBox) && (y < ClickListStart + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 1 && (x > ClickListStart) && (y > ClickListStart) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + sizeOfBox)) { // MultiBox clicked strcpy(chr_name_str, hero_names[0]); printf("Player %s\n", chr_name_str); menu = 5; // break; } - if (TotalPlayers >= 2 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox) + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 2 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox) + sizeOfBox)) { // MultiBox clicked printf("Player 2 Diablo\n"); strcpy(chr_name_str, hero_names[1]); printf("Player %s\n", chr_name_str); @@ -378,9 +367,7 @@ void SDL_Diablo_UI() // I anticipate to move this later. // break; } - if (TotalPlayers >= 3 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 2)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 2) + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 3 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 2)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 2) + sizeOfBox)) { // MultiBox clicked printf("Player 3 Diablo\n"); strcpy(chr_name_str, hero_names[2]); printf("Player %s\n", chr_name_str); @@ -388,9 +375,7 @@ void SDL_Diablo_UI() // I anticipate to move this later. // break; } - if (TotalPlayers >= 4 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 3)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 3) + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 4 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 3)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 3) + sizeOfBox)) { // MultiBox clicked printf("Player 4 Diablo\n"); effects_play_sound("Sfx\\Items\\Titlslct.wav"); strcpy(chr_name_str, hero_names[3]); @@ -399,9 +384,7 @@ void SDL_Diablo_UI() // I anticipate to move this later. // break; } - if (TotalPlayers >= 5 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 4)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 4) + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 5 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 4)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 4) + sizeOfBox)) { // MultiBox clicked printf("Player 5 Diablo\n"); effects_play_sound("Sfx\\Items\\Titlslct.wav"); strcpy(chr_name_str, hero_names[4]); @@ -410,9 +393,7 @@ void SDL_Diablo_UI() // I anticipate to move this later. // break; } - if (TotalPlayers >= 6 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 5)) && - (x < ClickListStart + WidthOfBox) && - (y < ClickListStart + (sizeOfBox * 5) + sizeOfBox)) { // MultiBox clicked + if (TotalPlayers >= 6 && (x > ClickListStart) && (y > ClickListStart + (sizeOfBox * 5)) && (x < ClickListStart + WidthOfBox) && (y < ClickListStart + (sizeOfBox * 5) + sizeOfBox)) { // MultiBox clicked printf("Player 6 Diablo\n"); effects_play_sound("Sfx\\Items\\Titlslct.wav"); strcpy(chr_name_str, hero_names[5]); @@ -421,15 +402,13 @@ void SDL_Diablo_UI() // I anticipate to move this later. // break; } - if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && - (y < CreateHeroCancelBox.h)) { + if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && (y < CreateHeroCancelBox.h)) { HeroPortrait = 3; printf("Cancel\n\n\n"); menu = 0; } - if ((x > CreateHeroX) && (y > CreateHeroY) && (x < CreateHeroX + WidthOfBox) && - (y < CreateHeroY + sizeOfBox)) { + if ((x > CreateHeroX) && (y > CreateHeroY) && (x < CreateHeroX + WidthOfBox) && (y < CreateHeroY + sizeOfBox)) { printf("Clicked Create Hero Box\n"); menu = 3; } @@ -480,32 +459,28 @@ void SDL_Diablo_UI() // I anticipate to move this later. CreateHeroCancelBox.w = CreateHeroCancelBox.x + 100; CreateHeroCancelBox.h = CreateHeroCancelBox.y + 30; - if ((x > WarriorSelectBox.x) && (y > WarriorSelectBox.y) && (x < WarriorSelectBox.w) && - (y < WarriorSelectBox.h)) { + if ((x > WarriorSelectBox.x) && (y > WarriorSelectBox.y) && (x < WarriorSelectBox.w) && (y < WarriorSelectBox.h)) { printf(" warrior I was hit\n\n\n"); HeroPortrait = 0; HeroChosen = 0; menu = 4; } - if ((x > RogueSelectBox.x) && (y > RogueSelectBox.y) && (x < RogueSelectBox.w) && - (y < RogueSelectBox.h)) { + if ((x > RogueSelectBox.x) && (y > RogueSelectBox.y) && (x < RogueSelectBox.w) && (y < RogueSelectBox.h)) { printf(" rogue I was hit\n\n\n"); HeroPortrait = 1; HeroChosen = 1; menu = 4; } - if ((x > SorcerorSelectBox.x) && (y > SorcerorSelectBox.y) && (x < SorcerorSelectBox.w) && - (y < SorcerorSelectBox.h)) { + if ((x > SorcerorSelectBox.x) && (y > SorcerorSelectBox.y) && (x < SorcerorSelectBox.w) && (y < SorcerorSelectBox.h)) { HeroPortrait = 2; printf("sorceror I was hit\n\n\n"); HeroChosen = 2; menu = 4; } - if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && - (y < CreateHeroCancelBox.h)) { + if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && (y < CreateHeroCancelBox.h)) { HeroPortrait = 3; printf("Cancel\n\n\n"); @@ -527,8 +502,7 @@ void SDL_Diablo_UI() // I anticipate to move this later. ClickOkBox.w = ClickOkBox.x + 30; ClickOkBox.h = ClickOkBox.y + 30; - if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && - (y < CreateHeroCancelBox.h)) { + if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && (y < CreateHeroCancelBox.h)) { memset(HeroUndecidedName, 0, 17); NewHeroNameIndex = 0; @@ -547,27 +521,22 @@ void SDL_Diablo_UI() // I anticipate to move this later. break; } } - - + clock_t start, end; - double cpu_time_used; - + double cpu_time_used; + if (menu == 5) { - if( timestart == 0 ){ - start = clock(); - timestart = 1; + if (timestart == 0) { + start = clock(); + timestart = 1; } - end = clock(); - - - cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; + end = clock(); - + cpu_time_used = ((double)(end - start)) / CLOCKS_PER_SEC; printf("TIEM DELAY %f\n", cpu_time_used); - int CreateHeroOkBoxX = 330; int CreateHeroOkBoxY = 441; int CreateHeroCanBBoxX = 445; @@ -599,26 +568,21 @@ void SDL_Diablo_UI() // I anticipate to move this later. CreateHeroCancelBox.w = CreateHeroCancelBox.x + 100; CreateHeroCancelBox.h = CreateHeroCancelBox.y + 30; - - - if ( cpu_time_used > 0.5 && (x > NewGameBox.x) && (y > NewGameBox.y) && (x < NewGameBox.w) && (y < NewGameBox.h)) { + if (cpu_time_used > 0.5 && (x > NewGameBox.x) && (y > NewGameBox.y) && (x < NewGameBox.w) && (y < NewGameBox.h)) { printf(" New Game I was hit\n\n\n"); menu = 6; cpu_time_used = 0; timestart = 0; start = 0; - } - if (cpu_time_used > 0.5 && (x > LoadGameBox.x) && (y > LoadGameBox.y) && (x < LoadGameBox.w) && (y < LoadGameBox.h)) { + if (cpu_time_used > 0.5 && (x > LoadGameBox.x) && (y > LoadGameBox.y) && (x < LoadGameBox.w) && (y < LoadGameBox.h)) { printf(" Load Game I was hit\n\n\n"); break; - } - if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && - (y < CreateHeroCancelBox.h)) { + if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && (y < CreateHeroCancelBox.h)) { HeroPortrait = 3; timestart = 0; cpu_time_used = 0; @@ -634,21 +598,15 @@ void SDL_Diablo_UI() // I anticipate to move this later. if (menu == 6) { // Choose difficulty - - - - - - if(timestart == 0){ - start = clock(); - timestart = 1; - } + if (timestart == 0) { + start = clock(); + timestart = 1; + } end = clock(); - cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; + cpu_time_used = ((double)(end - start)) / CLOCKS_PER_SEC; - int CreateHeroOkBoxX = 330; int CreateHeroOkBoxY = 441; int CreateHeroCanBBoxX = 445; @@ -683,34 +641,29 @@ void SDL_Diablo_UI() // I anticipate to move this later. CreateHeroCancelBox.w = CreateHeroCancelBox.x + 100; CreateHeroCancelBox.h = CreateHeroCancelBox.y + 30; - if (cpu_time_used > 0.5 && (x > NormalSelectBox.x) && (y > NormalSelectBox.y) && (x < NormalSelectBox.w) && - (y < NormalSelectBox.h)) { + if (cpu_time_used > 0.5 && (x > NormalSelectBox.x) && (y > NormalSelectBox.y) && (x < NormalSelectBox.w) && (y < NormalSelectBox.h)) { StartNewGame = 1; gnDifficulty = DIFF_NORMAL; break; } - if (cpu_time_used > 0.5 && (x > NightmareSelectBox.x) && (y > NightmareSelectBox.y) && (x < NightmareSelectBox.w) && - (y < NightmareSelectBox.h)) { + if (cpu_time_used > 0.5 && (x > NightmareSelectBox.x) && (y > NightmareSelectBox.y) && (x < NightmareSelectBox.w) && (y < NightmareSelectBox.h)) { StartNewGame = 1; gnDifficulty = DIFF_NIGHTMARE; break; } - if ( cpu_time_used > 1 && (x > HellSelectBox.x) && (y > HellSelectBox.y) && (x < HellSelectBox.w) && - (y < HellSelectBox.h)) { + if (cpu_time_used > 1 && (x > HellSelectBox.x) && (y > HellSelectBox.y) && (x < HellSelectBox.w) && (y < HellSelectBox.h)) { gnDifficulty = DIFF_HELL; StartNewGame = 1; break; } - if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && - (y < CreateHeroCancelBox.h)) { + if ((x > CreateHeroCancelBox.x) && (y > CreateHeroCancelBox.y) && (x < CreateHeroCancelBox.w) && (y < CreateHeroCancelBox.h)) { HeroPortrait = 3; timestart = 0; - cpu_time_used = 0; - start = 0; - end = 0; - cpu_time_used = 0; - + cpu_time_used = 0; + start = 0; + end = 0; + cpu_time_used = 0; printf("Cancel\n\n\n"); --menu; diff --git a/Stub/sdlrender.cpp b/Stub/sdlrender.cpp index 3199e081b..dad239570 100644 --- a/Stub/sdlrender.cpp +++ b/Stub/sdlrender.cpp @@ -2,7 +2,6 @@ #include "miniwin_sdl.h" #include "stubs.h" - int SCREEN_WIDTH = 640; // 1024×768 int SCREEN_HEIGHT = 480; @@ -69,492 +68,492 @@ int gb_Lfont_str_len; int gb_Lfont_pix_width; int the_pcx_frame; -char *the_long_credits[] = {"", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "$-- Devilution --", - "Reversed by Andi \"GalaXyHaXz\"", - "", - "$-- Meet the Team --", - "seritools", - "mewmew", - "nomdenom", - "AJenbo", - "ApertureSecurity", - "", - "$-- Special Thanks --", - "The Sanctuary preservation project", - "Jarulf's guide to the Devil himself", - "", - "", - "$...The Devil is in the details", - "", - "", - "$Game Design", - "Blizzard North", - "", - "$Senior Designers", - "Erich Schaefer, David Brevik", - "", - "$Additional Design", - "Max Schaefer, Eric Sexton, Kenneth Williams", - "", - "$Lead Programmer", - "David Brevik", - "", - "$Senior Programmers", - "Richard Seis, Doron Gartner,", - "Patrick Wyatt, Mike O'Brien", - "", - "$Programming", - "Peter Brevik, Robin van der Wel, Jon Morin", - "", - "$Special Guest Programmers", - "Collin Murray, Frank Pearce", - "", - "$Battle.net Programming", - "Mike O'Brien, Mike Morhaime, Dan Liebgold", - "", - "$Serial Communications Programming", - "Jeff Strain, Mike O'Brien", - "", - "$Installer Programming", - "Bob Fitch, Patrick Wyatt", - "", - "$Art Directors", - "Erich Schaefer, Samwise Didier", - "", - "$Artwork", - "Michio Okamura, Eric Sexton, Ben Haas, Patrick Tougas,", - "Kelly Johnson, Erich Schaefer, Max Schaefer, Hugh Tom", - "Byrne, Roman Kenney, Samwise Didier, Dave Berggren,", - "Micky Neilson, Eric Flannum, Justin Thavirat, Brian", - "Sousa, Stu Rose, Nick Carpenter, Joeyray Hall", - "", - "$Technical Artwork", - "Christopher Root, Mark Sutherland,", - "Robert Djordjevich, Jeffrey Vaughn", - "", - "$Cinematic Art Directors", - "Duane Stinnett, Matt Samia", - "", - "$3D Cinematic Artwork", - "Duane Stinnett, Matt Samia, Rob McNaughton,", - "Eric Flannum, Dave Pursley, Micky Neilson,", - "Maxx Marshall, Trevor Jacobs, Brian Sousa,", - "Samwise Didier, Ron Smorynski, Ben Haas, Patrick Tougas", - "", - "$Cinematic Technical Artwork", - "Joeyray Hall ", - "", - "$Executive Producer", - "Allen Adham", - "", - "$Producer", - "Bill Roper", - "", - "$Associate Producer", - "James Phinney", - "", - "$Diablo Strike Team", - "Allen Adham, Ron Millar, Mike O'Brien,", - "James Phinney, Bill Roper, Patrick Wyatt", - "", - "$Music", - "Matt Uelmen", - "", - "$Sound Design", - "Matt Uelmen, Glenn Stafford", - "", - "$Cinematic Music & Sound", - "Glenn Stafford, Matt Uelmen", - "", - "$Voice Production, Direction & Casting", - "Mark Schwarz, Glenn Stafford, Bill Roper", - "", - "$Script & Story", - "Erich Schaefer, Eric Sexton,", - "Chris Metzen, Bill Roper", - "", - "$Voice Editing", - "Glenn Stafford", - "", - "$Voices", - "Michael Haley, Glynnis Talken, Michael Gough,", - "Paul Eiding, Lani Minella, Steve Brodie, Bill Roper,", - "Mark Schwarz, Glenn Stafford, Chris Metzen, Max Schaefer", - "", - "$Recording Engineer", - "Robert Koenigsberg", - "", - "$Manual Design & Layout", - "Peter Underwood, Jeffrey Vaughn,", - "Chris Metzen, Bill Roper", - "", - "$Manual Artwork", - "Samwise Didier, Chris Metzen,", - "Roman Kenney, Maxx Marshall", - "", - "$Provisional Director of QA (Lead Tester)", - "Shane Dabiri", - "", - "$QA Assault Team (Testers)", - "Christopher Cross, Mike Givens, Dave Hale,", - "Brian \"Doc\" Love, Hung Nguyen, Dean Shipley,", - "Chris Sigaty, Ian Welke, Jamie Wiggs", - "", - "$QA Special Ops Team (Compatibility Testers)", - "Adam Maxwell, Russell \"Rug\" Miller", - "", - "$QA Artillery Support (Additional Testers) ", - "Rich Alcazar, Mike Jones, Rev. Dan Moore, Matt Morris,", - "Mark Pfeiffer, Harish \"Pepe the Enforcer\" Rao, Chris Millar", - "", - "$QA Counterintelligence", - "Alan Dabiri, Jesse McReynolds, Walter Takata", - "", - "$Order of Network Information Services", - "Robert Bridenbecker, Jason \"Brother Shaggy\" Schmit,", - "Jamie \"Brother Gug\" Steigerwald, Richard Seis ", - "", - "$Customer Support", - "John Schwartz, Vic Larson, Chad Chaudry, Mick Yanko,", - "Brandon Riseling, Kirk Mahony, Tony Hardy, Richard", - "Amtower, Collin Smith, Andrew Edwards, Roger Eberhart", - "", - "$Sales", - "Jorge Rivero, Rob Beatie", - "", - "$Dunsel", - "Alan Dabiri", - "", - "$Mr. Dabiri's Background Vocalists", - "Karin Colenzo, Christina Cade,", - "Kim Farrington, Melissa Edwards", - "", - "$Public Relations", - "Linda Duttenhaver, Susan Wooley", - "", - "$Marketing", - "John Patrick, Steve Huot, Neal Hubbard, Kathy Carter", - "", - "$International Sales", - "Ralph Becker, Chris Yoshimura", - "", - "$U.S. Sales", - "Todd Coyle, Danny Kearns", - "", - "$Manufacturing", - "John Goodman, Tom Bryan", - "", - "$Legal & Business", - "Paula Duffy, Eric Roeder, Paul Sams, Kenneth Williams", - "", - "$Special Thanks To", - "Primenet, Earthlink, AOL, Compuserve, ATI, Matrox, STB, ", - "Creative Labs, Logitech, U.S. Robotics, Gravis, Cyrix", - "", - "$Thanks To", - "Ian Colquhoun, Rod Shean, Brian Fitzgerald, Sharon Schafer, Todd ", - "Schafer, Richard and Sandra Schaefer, Rick Bowles, Greg Bogden, ", - "Cindy Sievert, Brad Mason, Chuck Goldman, Karin Colenzo, Wendy ", - "Brevik, Jennie Brevik, Hanna Carroll, Katie Newell, Karen Weiss, ", - "Kurt Beaver, Stan McDonald, Brian Sexton, Michael Wan, Megan ", - "Williams, Jessica Gensley, Beth Ann Parks, Brian Piltin, Johnathan ", - "Root, Brett Supernaw, Sabeer Bhatia, Mark Rearick, Brad Mason, ", - "Diane Kodama, Bernadette Sexton, Barbara Uhlmann, Patricia", - "McDonald, Kris Kelley, Alissa Vaage, Denise Hernandez, Paula ", - "White, Rachel Marie Hawley, Laura Gaber, Isaac Matarasso,", - "Susan Stafford, Gretchen Witte, Jason Sailor, Eufemia Palomino, ", - "Nathalie Didier, Nicole Welke, Dawn Caddel, Anna-Marcelle ", - "Okamura, Amber Okamura, Megan Okamura Tracey McNaughton, ", - "Trisha Ann Ochoa, Annie Strain, Dr. Gregory T. Street, Ray the Soda ", - "Guy, Sam Raimi, A. Guinness Brewing Co., John Woo, Chow Yun Fat, ", - "Jackie Chan,Proposition 215, Rumiko Takahashi, Bunchy & Mason, ", - "The Friends of Stan, The Zoo Crew, Team Hamro, Brazil 2001, RUSH, ", - "Cornholio, THE BROS., Dar, Emeril Lagasse, Tom Waits, Ice-Cube, ", - "The Strike Team Deflectors, Tony Levin, Big Jim and the Twins, ", - "Jag`rmeister, The Megasphere, Condor, The Allower, The Sunday ", - "Night Group, Gravitar, Steinway Pianos, Round Table Pizza, The Poxy ", - "Boggards, Urban Mystic & Co., Caffeine, Hunter Rose, Marly ", - "mediums in the box, sweet Poteen, Dave Scarpitti, TheByter, Bim ", - "Man, Krissann for color, Patty at Avalon Tattoo, James, Whaleboy, ", - "Dunsel Training Institute, monkeys, Dob Bole, Rootes Group, Porshe, ", - "Bongo, Scarlett, Apollo, The House of Mediocrity, Amelias, The King, ", - "Saag and all the folks at Davidson", - "", - "$In memory of", - "Lawrence and Barbara Williams", - "David A. Hargrave", - "Tony \"Xatre\" Collin", - "Thomas H Sexton", - "", - "$Very Special Thanks to", - "Bob and Jan Davidson", - "Walter Forbes", - "", - "$The Ring of One Thousand", - "Andrew Abernathy, Christopher Abramo, David Adams, David ", - "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", - "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", - "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", - "Andrew Abernathy, Christopher Abramo, David Adams, David ", - "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", - "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", - "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", - "Andersen, Aaron Anderson, George Anderson, Matthew ", - "Anderson, Michael Anderson, Sean Anderson, Robert Andrade, ", - "Cerny Andre, Michael Andreev, Devin Angle, Brian Apple, ", - "Brian Arbuthnot, Billy Arden, Dorian Arnold, Andre Arsenault, ", - "Erik Asplund, Mark Assam, John Athey, Jason Attard, Jeff ", - "Atwood, Ricky Au, Scott Avery, Rand Babcock, Steve Babel, ", - "Raymond Bacalso, Ed Bachta, Steven Back, Scott Baeder, Alex ", - "Baevski, Scott Bailey, Kenneth Baird, Thomas Baker, Todd ", - "Bala, Jan Ball, Greg Baltz, Blake Baltzley, Doug Bambrick, Wes ", - "Bangerter, Paul Barfuss, Chris Barghout, Dave Barnebey, Jon ", - "Barnhart, Terje Barth, Nicole Baskin, Bernard Baylen, Ryan ", - "Bear, Phil Bedard, Todd Belcher, Chip Bell, Erez Ben-Aharon, ", - "Jonathan Bender, Nick Bennett, Ireney Berezniak, Ted Berg, ", - "Gunnar Bergem, Russell Beuker, Ed Bickford, Stephen Biles, ", - "John Billdt, Gerald Binder, John Bird, Hannah Blackerby, Tom ", - "Blackerby, Clayton Blackwell, Thomas Blake, Shawn Blaszak, ", - "Daniel Bliss, Fred Bliss, Jeff Bliss, Jon Blum, Rune Boersjoe, ", - "Andrew Boggs, Dave Boisvenu, Joe Bolt, John Bonds, Jeff ", - "Borenstein, Dorian Borin, Ed Boris, Bartholomew Botta, ", - "Michael Boutin, Michael Boyd, Charles Boyer, Mike ", - "Boyersmith, Michael Boyko, Eric Bradberry, John Brandstetter, ", - "Ryan Breding, Paul Brinkmann, Patrick Briscoe, Scott Brisko, ", - "Jeremy Britton, Adrian Broadhead, Glenn Brouwer, Joe Brown, ", - "Sebastien Brulotte, Darrell Brunsch, William Bryan, Jason ", - "Bucher, Chris Buchinger, Clayton Buckingham, John Buckles, ", - "David Bugay, Ed Bujone, Erik Burgess, Gabriel Burkett, Chris ", - "Burnes, Richard Butler, Jeffrey Bye, Dougall Campbell, Donnie ", - "Cannon, Shane Cantrell, Connor Caple, Daniel Carey, James ", - "Carlton, Michael Carmel, Mike Carpenter, Ronald Carruthers, ", - "Phil Carter, Bryce Cartmill, Eric Cartwright, Anthony Caruso, ", - "Lon Casey, Tim Caster, Aaron Chan, Otto Chan, Gene Chang, ", - "Hsiao-Lung Chang, William Chang, George Chappel, Larry ", - "Charbonneau, Troy Chase, Bruce Chen, Chun Hsien Chen, Sam ", - "Chen, Tzu-Mainn Chen, Mike Cheng, Chris Chiapusio, Damien ", - "Chiesa, Nick Chin, Nim Ching, Jonathan Chinn, Michael Chinn, ", - "Philander Chiu, Thayne Christiansen, Philip Chui, Steve ", - "Cintamani, Richard Ciordia, Colin Clark, Steve Clark, Samuel ", - "Clements, Meredith Clifton, Jeff Cohen, Dale Colton, Dax ", - "Combe, Matt Compton, Jacob Conklin, Richard Conn, Zac ", - "Cook, Tim Coolong, Gregory Coomer, Dennis Cosgrove, Kelly ", - "Couch, Andrew Coulter, Eric Coutinho, David Coutts, James ", - "Craig, John Craig, Kazial Craig, John Crawford, Marcelo ", - "Crespo, Orville Crews, Tim Cristy, Elmer Crosby III, Russell ", - "Cullison, Ryan Cupples, Andrew Dagley, Steve Dallaire, Richard ", - "Dalton, David Dandar, Pro Daulo, Rob Dautermann, Mike ", - "Davies, Kalieb Davis, Marshall Davis, Ronald Davis, Danny De ", - "Bie, Marc De Filippis, Myles Deighton, Kent Dejarnett, Anthony ", - "Delarosa, Neil Dempster, Peter Denitto, Joaquim Dentz, Scott ", - "Dewar, Anish Dhingra, Philip Dhingra, David Diaz, Stewart ", - "Dicks, Brad Dietz, Josh Dietz, Colleen Diggins, Mike Ditchburn, ", - "Eric Dittman, Allen Do, Huy Doan, Matthew Dolman, Antoine ", - "Dongois, Eamonn Donohoe, Bill Dorell, Mark Dorison, Dan ", - "Dorsett, Chris Dorsey, Jim Dose, Willis Doss, Chin Du, William ", - "Dubis, Timothy Duewell, Brandon Dunn, Andrew Durham, Don ", - "Duvall, Kevin Dvojack, Daniel Eaton, Paul Eberting, Eric ", - "Echelbarger, Lance Eddleman, Ben Eggers, David Eggum, John ", - "Ehde, Brian Eikenberry, Patrick Elven, Peter Engdahl, Philip ", - "Engdahl, Michael Ennis, Darren Eslinger, Eric Ezell, Darren ", - "Falslev, Stephen Feather, Tony Fenn, Ben Ferguson, Mike ", - "Fernandez, Gwendal Feuillet, Guy Fietz, Julian Figueroa, Dale ", - "Fillpot, Stan Finchem, Michael Finley, Nick Fisher, William ", - "Fisher, Mark Fitlin, Dave Flatt, Joel J. Flores, John Folkers, ", - "Steven Forgie, Tom Forsythe, Matthew Foster, Scott Francis, ", - "Jim Frank, Paulo Fraser, Glenn French, Kurt Frerichs, Chris ", - "Frey, Mark Friedman, Charles Friedmann, Dan Friend, Kirk ", - "Fry, Aaron Fu, Erik Gaalema, Brandon Gabbard, Phil Gagner, ", - "Tommy Gannon, David Gappmayer, Chris Garrison, Tony ", - "Garrison, David Gasca, Jeremy Gasser, Michael Geist, Michael ", - "Genereux, Daniel Genovese, Josh Gerwin, Paul Gibson, William ", - "Gilchrist, Gabriel Gils Carbo, Chad Glendenin, Ryan Glinski, ", - "Dean Gobrecht, Andrew Goldfinch, David Goodman, Mark ", - "Goodson, Matt Gordon, Frank Gorgenyi, Sean Gould, Perry ", - "Goutsos, Ed Govednik, Michael Grayson, Chris Green, Justin ", - "Grenier, Jeff Greulich, Don Grey, Rob Griesbeck, Don Griffes, ", - "Kimberly Griffeth, Jay Grizzard, Don Gronlund, Joe Gross, ", - "Troy Growden, Greg Guilford, David Gusovsky, Jeremy ", - "Guthrie, Adam Gutierrez, James Guzicki, Matthew Haas, Matt ", - "Hadley, Ryan Hagelstrom, Bobby Hagen, Ben Hall, Brian Hall, ", - "Kris Hall, Calvin Hamilton, Kris Hamilton, Bo Hammil, Dave ", - "Hans, Rick Hansen, Robert Harlan, Travis Harlan, Seth ", - "Harman, Jeff Harris, Shawn Hartford, Adam Hartsell, Neil ", - "Harvey, Ray Hayes, John Hein, Chris Heinonen, Christer ", - "Helsing, Chris Hempel, Dustin Hempel, Mathieu Henaire, Matt ", - "Henry, Chuck Herb, Michael Herron, Sage Herron, Thomas ", - "Herschbach, Cliff Hicks, Nelson Hicks, Paul Hierling, William ", - "Hiers, Mike Higdon, Tim Hildebrand, Casey Hinkle, Ryan ", - "Hitchings, Wes Hix, Alan Ho, Jenson Ho, Alan Hoffman, Jeff ", - "Hoffman, Eleanor Hoffmann, Steve Hogg, Richard Holler, Brian ", - "Homolya, Wade Hone, Joe Horvath, Jeff Howe, Eric Hudson, ", - "Glen Huey, Chris Hufnagel, Joshua Hughes, Melissa Hughes, ", - "Arief Hujaya, Thomas Hulen, Ryan Hupp, Justin Hurst, Rick ", - "Hutchins, Steve Iams, Mike Iarossi, Bjorn Idren, Johan Idren, ", - "Micah Imparato, Joe Ingersoll, David Ingram, Greg Ipp, Rodney ", - "Irvin, Darin Isola, Justin Itoh, Mario Ivan, Fredrik Ivarsson, ", - "Dax Jacobson, Michael Jacques, Stevens Jacques, Duane Jahnke, ", - "William Jambrosek, Daniel Janick, Narciso Jaramillo, Neil ", - "Jariwala, Harvie Jarriell, Scott Javadi, Joe Jenkins, Bart ", - "Jennings, Paul Jennings, Julien Jenny, Jason Jensen, Martin ", - "Jeremy, Mark Jeschke, Andy Johnson, James Johnson, Leigh ", - "Johnson, Mark Johnson, Rupert Johnson, Clyde Jones, Michael ", - "Jones, Tim Jordan, Ben Judy, Michael Kaae, Steve Kaczkowski, ", - "Neville Kadwa, Brian Kaisner, Yoshihisa Kameyama, Michael ", - "Kanemura, Daniel Kao, Eric Karabin, Ben Katz, Christopher ", - "Kawamura, Erick Kayser, Craig Keddie, Kevin Kelley, Bryan ", - "Kemp, Michael Kendrigan, Dan Kerber, Timothy Kerber, Tomi ", - "Keski-Heikkila, Greg Kettering, Nathan Kilber, Howard Kim, ", - "Orrin Kinion, Jon Kirst, David Kitch, John Klingbeil, Neil ", - "Klopfenstein, Kerry Knouse, David Knox, Said Kobeissi, Jeff ", - "Koches, Hades Kong, Jeff Kong, Kevin Konkle, Steve Koon, ", - "David Koontz, Dan Koopmann, Steve Koskela, Kuan Kou, ", - "Cameron Kracke, Jensen Krage, York Kramer, Cedar Kraus, ", - "Jason Kraus, Bobby Krimen, Melissa Krispli, Steven Krispli, ", - "James Kruger, Charles Kubasta, Kimmo Kulonen, Frank ", - "Lackaff, Michael Lacour, Matt Lake, Jason Landry, Hans Erik ", - "Lange, Michael Laramee, Brad Lascelle, Pat Laschinger, Alan ", - "Lau, Sean Laurence, Anthony Lavey, Jr., Gary Le, Huey Le, ", - "Stephane Le Roy Audy, Lim Leandro, Charles Lee, Conroy Lee, ", - "Mike Lee, Shih-Hang Lee, Jonathan Leipert, Jason Lemann, ", - "Ron Lenzi, Mitchell Leon, Stephanie Lesniewski, Brendan ", - "Lewis, Robert Lewis, Sam Liao, Tom Liem, Adam Ligas, Steven ", - "Liggett, Roger Lilley, Benjamin Lim, Jeff Lindholm, Johnson ", - "Linwood, David Litchman, Bruce Lithimane, William Liu, ", - "Wilson Liu, Robert Lobdell, Chris Logan, Razvan Loghin, Jack ", - "Loh, George Loo, Russell Love, Juan Loyola, Ricardo Lozano, ", - "Mike Luban, Tim Luc, Henry Luciano, Dianne Ludwig, Charles ", - "Lueras, Derek Lung, Phong Ly, Scott MacGillivray, Dave Mack, ", - "Alec Mak, Steve Mamayek, Michael Mancini, Daniel Mann, ", - "Michael Mann, Chris Manofsky, Abdullah Marafie, Nicholas ", - "Marcy, Piompino Mariano, Bob Marius, Trey Marshall, Dane ", - "Martin, Gregg Martin, Renard Martin, Rich Martin, Scott ", - "Martin, Thomas Martin, Jon Masters, Christopher Mathews, ", - "Jay Mathis, Marc Matthews, Chris Mazur, Doug McBride, ", - "Mackey McCandlish, Robin McCollum, Steven McCombie, ", - "Andy McConnell, Michael McCourt, Bill McCoy, Doug ", - "McCracken, Michael McDeed, Robert McDonald, Steve ", - "McEachron, Craig McGee, Ryan McKenzie, Michael McKeown, ", - "Daniel McMahon, Colin McMillan, Ian McWilliam, Mark ", - "McWilliams, Khann Mean, Bryan Meason, Kenneth Medley, ", - "Jeff Meek, John Mehr, Christopher Mende, Brian Mendenhall, ", - "Peter Mengel, Michael Mersic, Mike Messom, Don Metcalf, ", - "Gary Metzker, Scott Meyer, Joseph Michaud, Andrew Mielke, ", - "Travis Mikalson, Troy Milburn, Ike Miller, Ronnie Miller, Sean ", - "Miller, Steve Miller, Arthur Min, David Minniti, Brenda ", - "Mirsberger, Bill Misek, David Mitchell, Joseph Mobley, Robert ", - "Mollard, Will Mooar, Curtis Moore, Matthew Moore, Al ", - "Morales, Ryan Moran, Lance Mortensen, Karel Mrazek, Ward ", - "Mullee, William Munoz, Kirk Munro, Craig Murray, Shawn P. ", - "Murray, Travis Murray, Michael Mushrush, Tom Mustaine, ", - "David Myers, Joseph Myett, Morgan Najar, Kenta Nakamura, ", - "Damian Nastri, Joshua Naumann, Nick Navarro, Douglas ", - "Neitzel, Arnold Ng, Anthony Nguyen, Steve Nguyen, Joseph ", - "Nicholas, Charles Nickolaus, Jon Nisbet, Patrick Nomee, David ", - "Norling-Christensen, Bobby Norton, Joseph Nottingham, Frank ", - "O'Connor, Jon Oden, David Oester, Lavern Ogden, Zach ", - "Oglesby, Lucas Oldfield, Toby Olsson, Aaron Ondek, Sean ", - "O'Neill, John Orlando, Samuel Orlando, Donovan Orloski, ", - "David Pai, Nikolas Paldan, David Palek, John Palmieri, Anthony ", - "Palmisano, Sanjay Pandit, Jesse Park, Alex Parker, Jimmy ", - "Pasher, Lukasz Paszek, Andy Patterson, William Pelletier, ", - "Duane Pemberton, Ivan Pemic, Kelly Pendergast, Mike ", - "Penezich, Jon Penk, Willie Penley, Ron Penna, Matthew ", - "Pennington, Kevin Pereira, Ross Perez, Ken Perkins, Brian ", - "Peterik, Kelly Peterson, Chris Phillips, Rod Pickett, Cameron ", - "Pierce, Reuben Pierce, Tim Pilger, Billy Pippin, Brad Plank, ", - "Brian Plant, Craig Platt, David Plunkett, Michael Politi, Albert ", - "Portillo, Brian Powell, David Powell, Franklin Powers Jr., Alan ", - "Precourt, Michael Pronchick, Julian Quintana, Justin Radziej, ", - "Steven Rajewski, Shawn Rawles, Ian Reardon, Marc Reed, Ric ", - "Reichelt, Judd Reiffin, David Reilly, Garry Reisky, Drew ", - "Ressler, Robert Reynolds, Walter Reynolds, Michael Rice, Ian ", - "Richards, James Richards, Raymond Richmond, Dustin Riggs, ", - "Keith Riskey, Brian Ro, Scott Roberts, Jorge Rodriguez, Chad ", - "Rogers, Clint Rogers, Robert Rogers, Steve Rogers, Ethan Roots, ", - "Ron Roque, William Ross, Sebastian Rossi, Jeff Rostis, Ben ", - "Roth, Demar Roth, Rich Rouse, Oleg Rovner, Jonathan Roy, ", - "Drew Rozema, Mike Ruggles, Mathias Russ, James Russell, Jim ", - "Rutledge, James Rutter, Dave Ryder, Chris Salvadras, Anders ", - "Samnerud, Nick Sanders, Jakob Sandgren, Joe Sapinsky, Tyler ", - "Sargent, Jonas Saunders, Mark Savage, Scott Sawyer, Robert ", - "Scanlon, Trevor Schaben, Aaron Schmidt, Chris Schmidt, Greg ", - "Schultz, Nicholas Schumacher, Scott Schumacher, Kevin Scott, ", - "Rastislav Seffer, Robert Seidler, Corey Sellers, Justin Sellers, ", - "Marc Senecal, George Shannon, Ian Sheffield, Anoop Shekar, ", - "Sandeep Shekar, Kevin Shelton, Leon Shephard, Eric Shepperd, ", - "Jeffrey Shneidman, Samuel Shockey, Mark Shoemaker, Mike ", - "Shupe, Sean Sibbet, Brian Sidharta, Jimmy Sieben, Eric ", - "Siemens, William Silva, Jody Simpson, Jatinder Singh, Sonia ", - "Siu, Omar Skarsvaag, Tom Skiba, Carl Skow, David Skuse, ", - "Robert Slifka, Brent Smith, C. Eric Smith, Jared Smith, Jeffrey ", - "Smith, Owen Smith, Shannon Smith, Steven Smith, Edward Smola, ", - "Matthew Sneep, Eric Snow, Brad Sobel, Jean-Pierre Solignac, Rasmus ", - "Sorensen, Andrew Sorg, Poppy Southcott, Ross Specter, Erik Spencer, ", - "Keith Spencer, Chris Springer, Erikson Squier, Dean St. Onge, Stewart ", - "Stanfield, John Stanley, Terrence Staton, Benjamin Stein, James ", - "Steiner, David Steyer, William Stickney, Chris Stiff, James Stofer, ", - "Norm Storch, Patrick Stovall, Brandon Sturgeon, Sean Stutler, Anne ", - "Sukprasert, Jamal Sullivan, Bruce Sully, Jay Sung, Park Sung ", - "Joon, Stein Sunnarvik, Nathan Surginer, Robert Swaringen, Lee ", - "Sweeney, David Szabo, Scott Taft, Christian Takvam, Patrick ", - "Talaska, Tadashi Tamaki, Simon Tan, Mark Taraba, Khon-", - "Whey Tay, John Taylor, Keith Taylor, Donald Temean, Phillip ", - "Tesar, Pete Thao, Brian Thomas, Keith Thomas, Speed Thomas, ", - "Miles Thorpe, Paul Thurrott, Mike Timbol, Nicholas Timmins, ", - "Tom Tobin, Robert Towster, Hien Tran, Timothy Traviss, Toby ", - "Traylor, Tony Treadwell, George Tremoulis, Paul Trinh, Thanh ", - "Trinh, Chris Tristan, Brad Truswell, Jason Tryon, Mike Tu, ", - "Gernel Tuazon, Eric Tuggle, Mike Turnbull, Lyle Ubben, ", - "Amilcar Ubiera, Robert Ulozas, Arie Upton, Mark Van Noy, ", - "Matthew Van Sickler, Jake Vantlin, Tony Vasquez, Brady ", - "Vauclin, Gianpiero Vecchi, Chad Verrall, Chris Vicente, Brett ", - "Vickers, David Vickery, Jonathan Vilante, Simon Vince, Ben ", - "Vinson, David Voelkert, Paul Vogt, Nicholas Voorhies, Robert ", - "Vreeland, Mike Vrooman, Rick Vuong, Brian Wachhaus, Todd ", - "Wachhaus, Caine Wade, Mathew Wadstein, Kenneth Wagenius, ", - "Trevor Wagner, John Wagstaff, Asad Wahid, Richard ", - "Wahlberg, Helio Wakasugui, Richard Walker, Wilkins Walker, ", - "Matthew Wallace, Daniel Walsh, Joel Walters, Andrew Waltz, ", - "Tom Wang, Tony Wang, Jay Ward, Jonathan Ward, John ", - "Warner, Mark Warren, Matt Washer, Mike Watson, Sean ", - "Wattles, Mike Wayne, Christian Wehba, Benjamin Wei, Richard ", - "Weight, Cary Wells, David Wenck, Bill Werring, Leonard ", - "Wesley, Marlon West, Mikael Westerbacka, Brian Wharry, ", - "Chris White, Chris White, Jeremy White, Greg Whitlock, Gary ", - "Widener, Marty Wilfried, Israel Wilkinson, Michael Willams, ", - "Derek Williams, Sean Willson, Nitzan Wilnai, Jim Wilson, ", - "Karsten Wilson, William Wilt, Tim Winn, Brian Winzeler, Matt ", - "Wise, Lee Wissmiller, Brendan Wolfe, Daniel Wolpert, Felix ", - "Wong, Power Wong, Tony Wong, Tim Wood, Timothy Wood, ", - "Jeremy Woods, Michael Woods, Bill Wright, Keith Wright, ", - "Patrick Wu, Gang Xie, Robert Yao, Sun Lim Yap, Stephen Yau, ", - "Erek Yedwabnick, Christopher Yee, Nick Yee, Juan Yip, David ", - "Young, Rob Young, Seth Young, Alex Yu, Terry Zahn, Jia-Ning ", - "Zhang, Eric Zieg, Jordan Zielin, Clint Zimmerman, Matt Zinke ", - "", - "", - "", - "", - "$No souls were sold in the making of this game.", - "", - "", - " ", - " ", - " ", - NULL}; +char *the_long_credits[] = { "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "$-- Devilution --", + "Reversed by Andi \"GalaXyHaXz\"", + "", + "$-- Meet the Team --", + "seritools", + "mewmew", + "nomdenom", + "AJenbo", + "ApertureSecurity", + "", + "$-- Special Thanks --", + "The Sanctuary preservation project", + "Jarulf's guide to the Devil himself", + "", + "", + "$...The Devil is in the details", + "", + "", + "$Game Design", + "Blizzard North", + "", + "$Senior Designers", + "Erich Schaefer, David Brevik", + "", + "$Additional Design", + "Max Schaefer, Eric Sexton, Kenneth Williams", + "", + "$Lead Programmer", + "David Brevik", + "", + "$Senior Programmers", + "Richard Seis, Doron Gartner,", + "Patrick Wyatt, Mike O'Brien", + "", + "$Programming", + "Peter Brevik, Robin van der Wel, Jon Morin", + "", + "$Special Guest Programmers", + "Collin Murray, Frank Pearce", + "", + "$Battle.net Programming", + "Mike O'Brien, Mike Morhaime, Dan Liebgold", + "", + "$Serial Communications Programming", + "Jeff Strain, Mike O'Brien", + "", + "$Installer Programming", + "Bob Fitch, Patrick Wyatt", + "", + "$Art Directors", + "Erich Schaefer, Samwise Didier", + "", + "$Artwork", + "Michio Okamura, Eric Sexton, Ben Haas, Patrick Tougas,", + "Kelly Johnson, Erich Schaefer, Max Schaefer, Hugh Tom", + "Byrne, Roman Kenney, Samwise Didier, Dave Berggren,", + "Micky Neilson, Eric Flannum, Justin Thavirat, Brian", + "Sousa, Stu Rose, Nick Carpenter, Joeyray Hall", + "", + "$Technical Artwork", + "Christopher Root, Mark Sutherland,", + "Robert Djordjevich, Jeffrey Vaughn", + "", + "$Cinematic Art Directors", + "Duane Stinnett, Matt Samia", + "", + "$3D Cinematic Artwork", + "Duane Stinnett, Matt Samia, Rob McNaughton,", + "Eric Flannum, Dave Pursley, Micky Neilson,", + "Maxx Marshall, Trevor Jacobs, Brian Sousa,", + "Samwise Didier, Ron Smorynski, Ben Haas, Patrick Tougas", + "", + "$Cinematic Technical Artwork", + "Joeyray Hall ", + "", + "$Executive Producer", + "Allen Adham", + "", + "$Producer", + "Bill Roper", + "", + "$Associate Producer", + "James Phinney", + "", + "$Diablo Strike Team", + "Allen Adham, Ron Millar, Mike O'Brien,", + "James Phinney, Bill Roper, Patrick Wyatt", + "", + "$Music", + "Matt Uelmen", + "", + "$Sound Design", + "Matt Uelmen, Glenn Stafford", + "", + "$Cinematic Music & Sound", + "Glenn Stafford, Matt Uelmen", + "", + "$Voice Production, Direction & Casting", + "Mark Schwarz, Glenn Stafford, Bill Roper", + "", + "$Script & Story", + "Erich Schaefer, Eric Sexton,", + "Chris Metzen, Bill Roper", + "", + "$Voice Editing", + "Glenn Stafford", + "", + "$Voices", + "Michael Haley, Glynnis Talken, Michael Gough,", + "Paul Eiding, Lani Minella, Steve Brodie, Bill Roper,", + "Mark Schwarz, Glenn Stafford, Chris Metzen, Max Schaefer", + "", + "$Recording Engineer", + "Robert Koenigsberg", + "", + "$Manual Design & Layout", + "Peter Underwood, Jeffrey Vaughn,", + "Chris Metzen, Bill Roper", + "", + "$Manual Artwork", + "Samwise Didier, Chris Metzen,", + "Roman Kenney, Maxx Marshall", + "", + "$Provisional Director of QA (Lead Tester)", + "Shane Dabiri", + "", + "$QA Assault Team (Testers)", + "Christopher Cross, Mike Givens, Dave Hale,", + "Brian \"Doc\" Love, Hung Nguyen, Dean Shipley,", + "Chris Sigaty, Ian Welke, Jamie Wiggs", + "", + "$QA Special Ops Team (Compatibility Testers)", + "Adam Maxwell, Russell \"Rug\" Miller", + "", + "$QA Artillery Support (Additional Testers) ", + "Rich Alcazar, Mike Jones, Rev. Dan Moore, Matt Morris,", + "Mark Pfeiffer, Harish \"Pepe the Enforcer\" Rao, Chris Millar", + "", + "$QA Counterintelligence", + "Alan Dabiri, Jesse McReynolds, Walter Takata", + "", + "$Order of Network Information Services", + "Robert Bridenbecker, Jason \"Brother Shaggy\" Schmit,", + "Jamie \"Brother Gug\" Steigerwald, Richard Seis ", + "", + "$Customer Support", + "John Schwartz, Vic Larson, Chad Chaudry, Mick Yanko,", + "Brandon Riseling, Kirk Mahony, Tony Hardy, Richard", + "Amtower, Collin Smith, Andrew Edwards, Roger Eberhart", + "", + "$Sales", + "Jorge Rivero, Rob Beatie", + "", + "$Dunsel", + "Alan Dabiri", + "", + "$Mr. Dabiri's Background Vocalists", + "Karin Colenzo, Christina Cade,", + "Kim Farrington, Melissa Edwards", + "", + "$Public Relations", + "Linda Duttenhaver, Susan Wooley", + "", + "$Marketing", + "John Patrick, Steve Huot, Neal Hubbard, Kathy Carter", + "", + "$International Sales", + "Ralph Becker, Chris Yoshimura", + "", + "$U.S. Sales", + "Todd Coyle, Danny Kearns", + "", + "$Manufacturing", + "John Goodman, Tom Bryan", + "", + "$Legal & Business", + "Paula Duffy, Eric Roeder, Paul Sams, Kenneth Williams", + "", + "$Special Thanks To", + "Primenet, Earthlink, AOL, Compuserve, ATI, Matrox, STB, ", + "Creative Labs, Logitech, U.S. Robotics, Gravis, Cyrix", + "", + "$Thanks To", + "Ian Colquhoun, Rod Shean, Brian Fitzgerald, Sharon Schafer, Todd ", + "Schafer, Richard and Sandra Schaefer, Rick Bowles, Greg Bogden, ", + "Cindy Sievert, Brad Mason, Chuck Goldman, Karin Colenzo, Wendy ", + "Brevik, Jennie Brevik, Hanna Carroll, Katie Newell, Karen Weiss, ", + "Kurt Beaver, Stan McDonald, Brian Sexton, Michael Wan, Megan ", + "Williams, Jessica Gensley, Beth Ann Parks, Brian Piltin, Johnathan ", + "Root, Brett Supernaw, Sabeer Bhatia, Mark Rearick, Brad Mason, ", + "Diane Kodama, Bernadette Sexton, Barbara Uhlmann, Patricia", + "McDonald, Kris Kelley, Alissa Vaage, Denise Hernandez, Paula ", + "White, Rachel Marie Hawley, Laura Gaber, Isaac Matarasso,", + "Susan Stafford, Gretchen Witte, Jason Sailor, Eufemia Palomino, ", + "Nathalie Didier, Nicole Welke, Dawn Caddel, Anna-Marcelle ", + "Okamura, Amber Okamura, Megan Okamura Tracey McNaughton, ", + "Trisha Ann Ochoa, Annie Strain, Dr. Gregory T. Street, Ray the Soda ", + "Guy, Sam Raimi, A. Guinness Brewing Co., John Woo, Chow Yun Fat, ", + "Jackie Chan,Proposition 215, Rumiko Takahashi, Bunchy & Mason, ", + "The Friends of Stan, The Zoo Crew, Team Hamro, Brazil 2001, RUSH, ", + "Cornholio, THE BROS., Dar, Emeril Lagasse, Tom Waits, Ice-Cube, ", + "The Strike Team Deflectors, Tony Levin, Big Jim and the Twins, ", + "Jag`rmeister, The Megasphere, Condor, The Allower, The Sunday ", + "Night Group, Gravitar, Steinway Pianos, Round Table Pizza, The Poxy ", + "Boggards, Urban Mystic & Co., Caffeine, Hunter Rose, Marly ", + "mediums in the box, sweet Poteen, Dave Scarpitti, TheByter, Bim ", + "Man, Krissann for color, Patty at Avalon Tattoo, James, Whaleboy, ", + "Dunsel Training Institute, monkeys, Dob Bole, Rootes Group, Porshe, ", + "Bongo, Scarlett, Apollo, The House of Mediocrity, Amelias, The King, ", + "Saag and all the folks at Davidson", + "", + "$In memory of", + "Lawrence and Barbara Williams", + "David A. Hargrave", + "Tony \"Xatre\" Collin", + "Thomas H Sexton", + "", + "$Very Special Thanks to", + "Bob and Jan Davidson", + "Walter Forbes", + "", + "$The Ring of One Thousand", + "Andrew Abernathy, Christopher Abramo, David Adams, David ", + "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", + "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", + "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", + "Andrew Abernathy, Christopher Abramo, David Adams, David ", + "Adcox, Marko Agterberg, Cory Aiken, Judah Altaras, John ", + "Alvarez, Jose Alvarez, Richard Amable, Alexander Amaral, ", + "Scott Amis, Vincent Amoroso, Mark An, David Andersen, Jason ", + "Andersen, Aaron Anderson, George Anderson, Matthew ", + "Anderson, Michael Anderson, Sean Anderson, Robert Andrade, ", + "Cerny Andre, Michael Andreev, Devin Angle, Brian Apple, ", + "Brian Arbuthnot, Billy Arden, Dorian Arnold, Andre Arsenault, ", + "Erik Asplund, Mark Assam, John Athey, Jason Attard, Jeff ", + "Atwood, Ricky Au, Scott Avery, Rand Babcock, Steve Babel, ", + "Raymond Bacalso, Ed Bachta, Steven Back, Scott Baeder, Alex ", + "Baevski, Scott Bailey, Kenneth Baird, Thomas Baker, Todd ", + "Bala, Jan Ball, Greg Baltz, Blake Baltzley, Doug Bambrick, Wes ", + "Bangerter, Paul Barfuss, Chris Barghout, Dave Barnebey, Jon ", + "Barnhart, Terje Barth, Nicole Baskin, Bernard Baylen, Ryan ", + "Bear, Phil Bedard, Todd Belcher, Chip Bell, Erez Ben-Aharon, ", + "Jonathan Bender, Nick Bennett, Ireney Berezniak, Ted Berg, ", + "Gunnar Bergem, Russell Beuker, Ed Bickford, Stephen Biles, ", + "John Billdt, Gerald Binder, John Bird, Hannah Blackerby, Tom ", + "Blackerby, Clayton Blackwell, Thomas Blake, Shawn Blaszak, ", + "Daniel Bliss, Fred Bliss, Jeff Bliss, Jon Blum, Rune Boersjoe, ", + "Andrew Boggs, Dave Boisvenu, Joe Bolt, John Bonds, Jeff ", + "Borenstein, Dorian Borin, Ed Boris, Bartholomew Botta, ", + "Michael Boutin, Michael Boyd, Charles Boyer, Mike ", + "Boyersmith, Michael Boyko, Eric Bradberry, John Brandstetter, ", + "Ryan Breding, Paul Brinkmann, Patrick Briscoe, Scott Brisko, ", + "Jeremy Britton, Adrian Broadhead, Glenn Brouwer, Joe Brown, ", + "Sebastien Brulotte, Darrell Brunsch, William Bryan, Jason ", + "Bucher, Chris Buchinger, Clayton Buckingham, John Buckles, ", + "David Bugay, Ed Bujone, Erik Burgess, Gabriel Burkett, Chris ", + "Burnes, Richard Butler, Jeffrey Bye, Dougall Campbell, Donnie ", + "Cannon, Shane Cantrell, Connor Caple, Daniel Carey, James ", + "Carlton, Michael Carmel, Mike Carpenter, Ronald Carruthers, ", + "Phil Carter, Bryce Cartmill, Eric Cartwright, Anthony Caruso, ", + "Lon Casey, Tim Caster, Aaron Chan, Otto Chan, Gene Chang, ", + "Hsiao-Lung Chang, William Chang, George Chappel, Larry ", + "Charbonneau, Troy Chase, Bruce Chen, Chun Hsien Chen, Sam ", + "Chen, Tzu-Mainn Chen, Mike Cheng, Chris Chiapusio, Damien ", + "Chiesa, Nick Chin, Nim Ching, Jonathan Chinn, Michael Chinn, ", + "Philander Chiu, Thayne Christiansen, Philip Chui, Steve ", + "Cintamani, Richard Ciordia, Colin Clark, Steve Clark, Samuel ", + "Clements, Meredith Clifton, Jeff Cohen, Dale Colton, Dax ", + "Combe, Matt Compton, Jacob Conklin, Richard Conn, Zac ", + "Cook, Tim Coolong, Gregory Coomer, Dennis Cosgrove, Kelly ", + "Couch, Andrew Coulter, Eric Coutinho, David Coutts, James ", + "Craig, John Craig, Kazial Craig, John Crawford, Marcelo ", + "Crespo, Orville Crews, Tim Cristy, Elmer Crosby III, Russell ", + "Cullison, Ryan Cupples, Andrew Dagley, Steve Dallaire, Richard ", + "Dalton, David Dandar, Pro Daulo, Rob Dautermann, Mike ", + "Davies, Kalieb Davis, Marshall Davis, Ronald Davis, Danny De ", + "Bie, Marc De Filippis, Myles Deighton, Kent Dejarnett, Anthony ", + "Delarosa, Neil Dempster, Peter Denitto, Joaquim Dentz, Scott ", + "Dewar, Anish Dhingra, Philip Dhingra, David Diaz, Stewart ", + "Dicks, Brad Dietz, Josh Dietz, Colleen Diggins, Mike Ditchburn, ", + "Eric Dittman, Allen Do, Huy Doan, Matthew Dolman, Antoine ", + "Dongois, Eamonn Donohoe, Bill Dorell, Mark Dorison, Dan ", + "Dorsett, Chris Dorsey, Jim Dose, Willis Doss, Chin Du, William ", + "Dubis, Timothy Duewell, Brandon Dunn, Andrew Durham, Don ", + "Duvall, Kevin Dvojack, Daniel Eaton, Paul Eberting, Eric ", + "Echelbarger, Lance Eddleman, Ben Eggers, David Eggum, John ", + "Ehde, Brian Eikenberry, Patrick Elven, Peter Engdahl, Philip ", + "Engdahl, Michael Ennis, Darren Eslinger, Eric Ezell, Darren ", + "Falslev, Stephen Feather, Tony Fenn, Ben Ferguson, Mike ", + "Fernandez, Gwendal Feuillet, Guy Fietz, Julian Figueroa, Dale ", + "Fillpot, Stan Finchem, Michael Finley, Nick Fisher, William ", + "Fisher, Mark Fitlin, Dave Flatt, Joel J. Flores, John Folkers, ", + "Steven Forgie, Tom Forsythe, Matthew Foster, Scott Francis, ", + "Jim Frank, Paulo Fraser, Glenn French, Kurt Frerichs, Chris ", + "Frey, Mark Friedman, Charles Friedmann, Dan Friend, Kirk ", + "Fry, Aaron Fu, Erik Gaalema, Brandon Gabbard, Phil Gagner, ", + "Tommy Gannon, David Gappmayer, Chris Garrison, Tony ", + "Garrison, David Gasca, Jeremy Gasser, Michael Geist, Michael ", + "Genereux, Daniel Genovese, Josh Gerwin, Paul Gibson, William ", + "Gilchrist, Gabriel Gils Carbo, Chad Glendenin, Ryan Glinski, ", + "Dean Gobrecht, Andrew Goldfinch, David Goodman, Mark ", + "Goodson, Matt Gordon, Frank Gorgenyi, Sean Gould, Perry ", + "Goutsos, Ed Govednik, Michael Grayson, Chris Green, Justin ", + "Grenier, Jeff Greulich, Don Grey, Rob Griesbeck, Don Griffes, ", + "Kimberly Griffeth, Jay Grizzard, Don Gronlund, Joe Gross, ", + "Troy Growden, Greg Guilford, David Gusovsky, Jeremy ", + "Guthrie, Adam Gutierrez, James Guzicki, Matthew Haas, Matt ", + "Hadley, Ryan Hagelstrom, Bobby Hagen, Ben Hall, Brian Hall, ", + "Kris Hall, Calvin Hamilton, Kris Hamilton, Bo Hammil, Dave ", + "Hans, Rick Hansen, Robert Harlan, Travis Harlan, Seth ", + "Harman, Jeff Harris, Shawn Hartford, Adam Hartsell, Neil ", + "Harvey, Ray Hayes, John Hein, Chris Heinonen, Christer ", + "Helsing, Chris Hempel, Dustin Hempel, Mathieu Henaire, Matt ", + "Henry, Chuck Herb, Michael Herron, Sage Herron, Thomas ", + "Herschbach, Cliff Hicks, Nelson Hicks, Paul Hierling, William ", + "Hiers, Mike Higdon, Tim Hildebrand, Casey Hinkle, Ryan ", + "Hitchings, Wes Hix, Alan Ho, Jenson Ho, Alan Hoffman, Jeff ", + "Hoffman, Eleanor Hoffmann, Steve Hogg, Richard Holler, Brian ", + "Homolya, Wade Hone, Joe Horvath, Jeff Howe, Eric Hudson, ", + "Glen Huey, Chris Hufnagel, Joshua Hughes, Melissa Hughes, ", + "Arief Hujaya, Thomas Hulen, Ryan Hupp, Justin Hurst, Rick ", + "Hutchins, Steve Iams, Mike Iarossi, Bjorn Idren, Johan Idren, ", + "Micah Imparato, Joe Ingersoll, David Ingram, Greg Ipp, Rodney ", + "Irvin, Darin Isola, Justin Itoh, Mario Ivan, Fredrik Ivarsson, ", + "Dax Jacobson, Michael Jacques, Stevens Jacques, Duane Jahnke, ", + "William Jambrosek, Daniel Janick, Narciso Jaramillo, Neil ", + "Jariwala, Harvie Jarriell, Scott Javadi, Joe Jenkins, Bart ", + "Jennings, Paul Jennings, Julien Jenny, Jason Jensen, Martin ", + "Jeremy, Mark Jeschke, Andy Johnson, James Johnson, Leigh ", + "Johnson, Mark Johnson, Rupert Johnson, Clyde Jones, Michael ", + "Jones, Tim Jordan, Ben Judy, Michael Kaae, Steve Kaczkowski, ", + "Neville Kadwa, Brian Kaisner, Yoshihisa Kameyama, Michael ", + "Kanemura, Daniel Kao, Eric Karabin, Ben Katz, Christopher ", + "Kawamura, Erick Kayser, Craig Keddie, Kevin Kelley, Bryan ", + "Kemp, Michael Kendrigan, Dan Kerber, Timothy Kerber, Tomi ", + "Keski-Heikkila, Greg Kettering, Nathan Kilber, Howard Kim, ", + "Orrin Kinion, Jon Kirst, David Kitch, John Klingbeil, Neil ", + "Klopfenstein, Kerry Knouse, David Knox, Said Kobeissi, Jeff ", + "Koches, Hades Kong, Jeff Kong, Kevin Konkle, Steve Koon, ", + "David Koontz, Dan Koopmann, Steve Koskela, Kuan Kou, ", + "Cameron Kracke, Jensen Krage, York Kramer, Cedar Kraus, ", + "Jason Kraus, Bobby Krimen, Melissa Krispli, Steven Krispli, ", + "James Kruger, Charles Kubasta, Kimmo Kulonen, Frank ", + "Lackaff, Michael Lacour, Matt Lake, Jason Landry, Hans Erik ", + "Lange, Michael Laramee, Brad Lascelle, Pat Laschinger, Alan ", + "Lau, Sean Laurence, Anthony Lavey, Jr., Gary Le, Huey Le, ", + "Stephane Le Roy Audy, Lim Leandro, Charles Lee, Conroy Lee, ", + "Mike Lee, Shih-Hang Lee, Jonathan Leipert, Jason Lemann, ", + "Ron Lenzi, Mitchell Leon, Stephanie Lesniewski, Brendan ", + "Lewis, Robert Lewis, Sam Liao, Tom Liem, Adam Ligas, Steven ", + "Liggett, Roger Lilley, Benjamin Lim, Jeff Lindholm, Johnson ", + "Linwood, David Litchman, Bruce Lithimane, William Liu, ", + "Wilson Liu, Robert Lobdell, Chris Logan, Razvan Loghin, Jack ", + "Loh, George Loo, Russell Love, Juan Loyola, Ricardo Lozano, ", + "Mike Luban, Tim Luc, Henry Luciano, Dianne Ludwig, Charles ", + "Lueras, Derek Lung, Phong Ly, Scott MacGillivray, Dave Mack, ", + "Alec Mak, Steve Mamayek, Michael Mancini, Daniel Mann, ", + "Michael Mann, Chris Manofsky, Abdullah Marafie, Nicholas ", + "Marcy, Piompino Mariano, Bob Marius, Trey Marshall, Dane ", + "Martin, Gregg Martin, Renard Martin, Rich Martin, Scott ", + "Martin, Thomas Martin, Jon Masters, Christopher Mathews, ", + "Jay Mathis, Marc Matthews, Chris Mazur, Doug McBride, ", + "Mackey McCandlish, Robin McCollum, Steven McCombie, ", + "Andy McConnell, Michael McCourt, Bill McCoy, Doug ", + "McCracken, Michael McDeed, Robert McDonald, Steve ", + "McEachron, Craig McGee, Ryan McKenzie, Michael McKeown, ", + "Daniel McMahon, Colin McMillan, Ian McWilliam, Mark ", + "McWilliams, Khann Mean, Bryan Meason, Kenneth Medley, ", + "Jeff Meek, John Mehr, Christopher Mende, Brian Mendenhall, ", + "Peter Mengel, Michael Mersic, Mike Messom, Don Metcalf, ", + "Gary Metzker, Scott Meyer, Joseph Michaud, Andrew Mielke, ", + "Travis Mikalson, Troy Milburn, Ike Miller, Ronnie Miller, Sean ", + "Miller, Steve Miller, Arthur Min, David Minniti, Brenda ", + "Mirsberger, Bill Misek, David Mitchell, Joseph Mobley, Robert ", + "Mollard, Will Mooar, Curtis Moore, Matthew Moore, Al ", + "Morales, Ryan Moran, Lance Mortensen, Karel Mrazek, Ward ", + "Mullee, William Munoz, Kirk Munro, Craig Murray, Shawn P. ", + "Murray, Travis Murray, Michael Mushrush, Tom Mustaine, ", + "David Myers, Joseph Myett, Morgan Najar, Kenta Nakamura, ", + "Damian Nastri, Joshua Naumann, Nick Navarro, Douglas ", + "Neitzel, Arnold Ng, Anthony Nguyen, Steve Nguyen, Joseph ", + "Nicholas, Charles Nickolaus, Jon Nisbet, Patrick Nomee, David ", + "Norling-Christensen, Bobby Norton, Joseph Nottingham, Frank ", + "O'Connor, Jon Oden, David Oester, Lavern Ogden, Zach ", + "Oglesby, Lucas Oldfield, Toby Olsson, Aaron Ondek, Sean ", + "O'Neill, John Orlando, Samuel Orlando, Donovan Orloski, ", + "David Pai, Nikolas Paldan, David Palek, John Palmieri, Anthony ", + "Palmisano, Sanjay Pandit, Jesse Park, Alex Parker, Jimmy ", + "Pasher, Lukasz Paszek, Andy Patterson, William Pelletier, ", + "Duane Pemberton, Ivan Pemic, Kelly Pendergast, Mike ", + "Penezich, Jon Penk, Willie Penley, Ron Penna, Matthew ", + "Pennington, Kevin Pereira, Ross Perez, Ken Perkins, Brian ", + "Peterik, Kelly Peterson, Chris Phillips, Rod Pickett, Cameron ", + "Pierce, Reuben Pierce, Tim Pilger, Billy Pippin, Brad Plank, ", + "Brian Plant, Craig Platt, David Plunkett, Michael Politi, Albert ", + "Portillo, Brian Powell, David Powell, Franklin Powers Jr., Alan ", + "Precourt, Michael Pronchick, Julian Quintana, Justin Radziej, ", + "Steven Rajewski, Shawn Rawles, Ian Reardon, Marc Reed, Ric ", + "Reichelt, Judd Reiffin, David Reilly, Garry Reisky, Drew ", + "Ressler, Robert Reynolds, Walter Reynolds, Michael Rice, Ian ", + "Richards, James Richards, Raymond Richmond, Dustin Riggs, ", + "Keith Riskey, Brian Ro, Scott Roberts, Jorge Rodriguez, Chad ", + "Rogers, Clint Rogers, Robert Rogers, Steve Rogers, Ethan Roots, ", + "Ron Roque, William Ross, Sebastian Rossi, Jeff Rostis, Ben ", + "Roth, Demar Roth, Rich Rouse, Oleg Rovner, Jonathan Roy, ", + "Drew Rozema, Mike Ruggles, Mathias Russ, James Russell, Jim ", + "Rutledge, James Rutter, Dave Ryder, Chris Salvadras, Anders ", + "Samnerud, Nick Sanders, Jakob Sandgren, Joe Sapinsky, Tyler ", + "Sargent, Jonas Saunders, Mark Savage, Scott Sawyer, Robert ", + "Scanlon, Trevor Schaben, Aaron Schmidt, Chris Schmidt, Greg ", + "Schultz, Nicholas Schumacher, Scott Schumacher, Kevin Scott, ", + "Rastislav Seffer, Robert Seidler, Corey Sellers, Justin Sellers, ", + "Marc Senecal, George Shannon, Ian Sheffield, Anoop Shekar, ", + "Sandeep Shekar, Kevin Shelton, Leon Shephard, Eric Shepperd, ", + "Jeffrey Shneidman, Samuel Shockey, Mark Shoemaker, Mike ", + "Shupe, Sean Sibbet, Brian Sidharta, Jimmy Sieben, Eric ", + "Siemens, William Silva, Jody Simpson, Jatinder Singh, Sonia ", + "Siu, Omar Skarsvaag, Tom Skiba, Carl Skow, David Skuse, ", + "Robert Slifka, Brent Smith, C. Eric Smith, Jared Smith, Jeffrey ", + "Smith, Owen Smith, Shannon Smith, Steven Smith, Edward Smola, ", + "Matthew Sneep, Eric Snow, Brad Sobel, Jean-Pierre Solignac, Rasmus ", + "Sorensen, Andrew Sorg, Poppy Southcott, Ross Specter, Erik Spencer, ", + "Keith Spencer, Chris Springer, Erikson Squier, Dean St. Onge, Stewart ", + "Stanfield, John Stanley, Terrence Staton, Benjamin Stein, James ", + "Steiner, David Steyer, William Stickney, Chris Stiff, James Stofer, ", + "Norm Storch, Patrick Stovall, Brandon Sturgeon, Sean Stutler, Anne ", + "Sukprasert, Jamal Sullivan, Bruce Sully, Jay Sung, Park Sung ", + "Joon, Stein Sunnarvik, Nathan Surginer, Robert Swaringen, Lee ", + "Sweeney, David Szabo, Scott Taft, Christian Takvam, Patrick ", + "Talaska, Tadashi Tamaki, Simon Tan, Mark Taraba, Khon-", + "Whey Tay, John Taylor, Keith Taylor, Donald Temean, Phillip ", + "Tesar, Pete Thao, Brian Thomas, Keith Thomas, Speed Thomas, ", + "Miles Thorpe, Paul Thurrott, Mike Timbol, Nicholas Timmins, ", + "Tom Tobin, Robert Towster, Hien Tran, Timothy Traviss, Toby ", + "Traylor, Tony Treadwell, George Tremoulis, Paul Trinh, Thanh ", + "Trinh, Chris Tristan, Brad Truswell, Jason Tryon, Mike Tu, ", + "Gernel Tuazon, Eric Tuggle, Mike Turnbull, Lyle Ubben, ", + "Amilcar Ubiera, Robert Ulozas, Arie Upton, Mark Van Noy, ", + "Matthew Van Sickler, Jake Vantlin, Tony Vasquez, Brady ", + "Vauclin, Gianpiero Vecchi, Chad Verrall, Chris Vicente, Brett ", + "Vickers, David Vickery, Jonathan Vilante, Simon Vince, Ben ", + "Vinson, David Voelkert, Paul Vogt, Nicholas Voorhies, Robert ", + "Vreeland, Mike Vrooman, Rick Vuong, Brian Wachhaus, Todd ", + "Wachhaus, Caine Wade, Mathew Wadstein, Kenneth Wagenius, ", + "Trevor Wagner, John Wagstaff, Asad Wahid, Richard ", + "Wahlberg, Helio Wakasugui, Richard Walker, Wilkins Walker, ", + "Matthew Wallace, Daniel Walsh, Joel Walters, Andrew Waltz, ", + "Tom Wang, Tony Wang, Jay Ward, Jonathan Ward, John ", + "Warner, Mark Warren, Matt Washer, Mike Watson, Sean ", + "Wattles, Mike Wayne, Christian Wehba, Benjamin Wei, Richard ", + "Weight, Cary Wells, David Wenck, Bill Werring, Leonard ", + "Wesley, Marlon West, Mikael Westerbacka, Brian Wharry, ", + "Chris White, Chris White, Jeremy White, Greg Whitlock, Gary ", + "Widener, Marty Wilfried, Israel Wilkinson, Michael Willams, ", + "Derek Williams, Sean Willson, Nitzan Wilnai, Jim Wilson, ", + "Karsten Wilson, William Wilt, Tim Winn, Brian Winzeler, Matt ", + "Wise, Lee Wissmiller, Brendan Wolfe, Daniel Wolpert, Felix ", + "Wong, Power Wong, Tony Wong, Tim Wood, Timothy Wood, ", + "Jeremy Woods, Michael Woods, Bill Wright, Keith Wright, ", + "Patrick Wu, Gang Xie, Robert Yao, Sun Lim Yap, Stephen Yau, ", + "Erek Yedwabnick, Christopher Yee, Nick Yee, Juan Yip, David ", + "Young, Rob Young, Seth Young, Alex Yu, Terry Zahn, Jia-Ning ", + "Zhang, Eric Zieg, Jordan Zielin, Clint Zimmerman, Matt Zinke ", + "", + "", + "", + "", + "$No souls were sold in the making of this game.", + "", + "", + " ", + " ", + " ", + NULL }; int creditline = 0; int ybase = 0; @@ -597,21 +596,22 @@ uint32_t XgetTick() return theTick; } -void SDLCreateDiabloCursor() {} +void SDLCreateDiabloCursor() +{ +} void SdlDiabloMainWindow() { - SDL_ShowCursor(SDL_DISABLE); + SDL_ShowCursor(SDL_DISABLE); SDL_Init(SDL_INIT_EVERYTHING); SDL_Init(SDL_INIT_VIDEO); window = SDL_CreateWindow("Diablo", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, Window_Width, Window_Height, - 0); + 0); renderer = SDL_CreateRenderer(window, -1, 0); printf("Window And Renderer Created!\n"); - SDL_RenderSetLogicalSize(renderer, 640, 480); const int pitch = SCREEN_WIDTH + 64 + 64; @@ -641,10 +641,10 @@ void DrawArtImage(int SX, int SY, int SW, int SH, int nFrame, void *pBuffer) void __fastcall print_title_str_large(int a1, int a2, char *a3) { assert(BigTGold_cel); - int screen_y; // [esp+Ch] [ebp-14h] - int screen_x; // [esp+10h] [ebp-10h] - char v5; // [esp+14h] [ebp-Ch] - signed int i; // [esp+18h] [ebp-8h] + int screen_y; // [esp+Ch] [ebp-14h] + int screen_x; // [esp+10h] [ebp-10h] + char v5; // [esp+14h] [ebp-Ch] + signed int i; // [esp+18h] [ebp-8h] signed int v7; // [esp+1Ch] [ebp-4h] screen_y = a2; @@ -662,10 +662,10 @@ void __fastcall print_title_str_large(int a1, int a2, char *a3) void __fastcall print_title_str_small(int a1, int a2, char *a3) { - int screen_y; // [esp+Ch] [ebp-14h] - int screen_x; // [esp+10h] [ebp-10h] - char v5; // [esp+14h] [ebp-Ch] - signed int i; // [esp+18h] [ebp-8h] + int screen_y; // [esp+Ch] [ebp-14h] + int screen_x; // [esp+10h] [ebp-10h] + char v5; // [esp+14h] [ebp-Ch] + signed int i; // [esp+18h] [ebp-8h] signed int v7; // [esp+1Ch] [ebp-4h] screen_y = a2; @@ -679,11 +679,17 @@ void __fastcall print_title_str_small(int a1, int a2, char *a3) } } -void LoadDiabloMenuLogoImage() {} +void LoadDiabloMenuLogoImage() +{ +} -void DiabloMainMenuItemsLoaded() {} +void DiabloMainMenuItemsLoaded() +{ +} -void CreateMainDiabloMenu() {} +void CreateMainDiabloMenu() +{ +} void DrawArtWithMask(int SX, int SY, int SW, int SH, int nFrame, BYTE bMask, void *pBuffer) { @@ -730,7 +736,7 @@ int __fastcall GetPCXFontWidth(char *str, BYTE *font) else len += *font; } - + return len; } @@ -753,18 +759,16 @@ void ShowCredts() for (int i = 0; i < linecount; i++) { // Needs to be slower... - if (*the_long_credits[creditline + i] == '$'){ + if (*the_long_credits[creditline + i] == '$') { DrawPCXString(GetCenter(GetPCXFontWidth(the_long_credits[creditline + i] + 1, pFont16)), - 50 + (i * pFont16[1]) - ybase, gdwFont2Width, gdwFont2Height, - the_long_credits[creditline + i] + 1, pFont16, pPcxFont2Image); - } - else{ + 50 + (i * pFont16[1]) - ybase, gdwFont2Width, gdwFont2Height, + the_long_credits[creditline + i] + 1, pFont16, pPcxFont2Image); + } else { DrawPCXString(GetCenter(GetPCXFontWidth(the_long_credits[creditline + i], pFont16)), - 50 + (i * pFont16[1]) - ybase, gdwFont3Width, gdwFont3Height, the_long_credits[creditline + i], - pFont16, pPcxFont2Image); + 50 + (i * pFont16[1]) - ybase, gdwFont3Width, gdwFont3Height, the_long_credits[creditline + i], + pFont16, pPcxFont2Image); + } } - - } } ///////////////////////////Renders @@ -772,7 +776,7 @@ void ShowCredts() void RenderDiabloLogo() { int MyPcxDelay = 60; - int MyPcxFRAME = (SDL_GetTicks() / MyPcxDelay) % 15; // This is not how this should be done... + int MyPcxFRAME = (SDL_GetTicks() / MyPcxDelay) % 15; // This is not how this should be done... MyPcxFRAME++; if (MyPcxFRAME >= 15) { MyPcxFRAME = 1; @@ -831,14 +835,13 @@ void SDL_RenderDiabloMainPage() DrawArtWithMask(PentPositionX + 234, PentPositionY, 42, 42, Pentframe, 250, MenuPentegram); // scrollrt_draw_cursor_back_buffer(); // Doesn't work? - char *MENIITEMS[5]= {"Single Player", "Multi Player", "Replay Intro", "Show Credits", "Exit Diablo"}; - + char *MENIITEMS[5] = { "Single Player", "Multi Player", "Replay Intro", "Show Credits", "Exit Diablo" }; RenderDiabloLogo(); // print_title_str_large(); int x = GetCenter(GetPCXFontWidth(MENIITEMS[0], pFont)) - 1; - int y = 192; + int y = 192; DrawPCXString(x, y, gdwFontWidth, gdwFontHeight, MENIITEMS[0], pFont, pPcxFontImage); x = GetCenter(GetPCXFontWidth(MENIITEMS[1], pFont)) - 1; y += 43; @@ -866,7 +869,9 @@ void SDL_RenderDiabloSinglePlayerPage() RenderCharNames(); } -void LoadFont() {} +void LoadFont() +{ +} void LoadClickBoxes(int numberofchars) { @@ -920,7 +925,7 @@ void DrawNewHeroKartinka(int image, int ShowClasses) DrawArtImage(0, 0, gdwTitleWidth, gdwTitleHeight, 0, pPcxTitleImage); RenderDiabloLogo(); - char *heroclasses[3] = {"Warrior", "Rogue", "Sorceror"}; + char *heroclasses[3] = { "Warrior", "Rogue", "Sorceror" }; // this should not be hard coded. int x = 280; @@ -936,13 +941,12 @@ void DrawNewHeroKartinka(int image, int ShowClasses) } } - void DrawPreGameOptions(int image, int ShowClasses) { DrawArtImage(0, 0, gdwTitleWidth, gdwTitleHeight, 0, pPcxTitleImage); RenderDiabloLogo(); - char *GameOptions[2] = {"New Game", "Load Game"}; + char *GameOptions[2] = { "New Game", "Load Game" }; // this should not be hard coded. int x = 280; @@ -957,13 +961,12 @@ void DrawPreGameOptions(int image, int ShowClasses) } } - void DrawPreGameDifficultySelection(int image, int ShowClasses) { DrawArtImage(0, 0, gdwTitleWidth, gdwTitleHeight, 0, pPcxTitleImage); RenderDiabloLogo(); - char *GameOptions[3] = {"Normal", "Nightmare", "Hell"}; + char *GameOptions[3] = { "Normal", "Nightmare", "Hell" }; // this should not be hard coded. int x = 280; @@ -979,24 +982,13 @@ void DrawPreGameDifficultySelection(int image, int ShowClasses) } } - - - - - - - - - - - void RenderDefaultStats(int HeroChosen) { int x = 80; int y = 530; - char *WarriorStats[4] = {"Strenght : 30", "Magic : 10", "Dexterity : 20", "Vitality : 25"}; - char *RogueStats[4] = {"Strenght : 20", "Magic : 15", "Dexterity : 30", "Vitality : 20"}; - char *SorcerorStats[4] = {"Strenght : 15", "Magic : 35", "Dexterity : 15", "Vitality : 20"}; + char *WarriorStats[4] = { "Strenght : 30", "Magic : 10", "Dexterity : 20", "Vitality : 25" }; + char *RogueStats[4] = { "Strenght : 20", "Magic : 15", "Dexterity : 30", "Vitality : 20" }; + char *SorcerorStats[4] = { "Strenght : 15", "Magic : 35", "Dexterity : 15", "Vitality : 20" }; if (HeroChosen == 0) { print_title_str_small(x, y - 20, "Warrior Stats:"); @@ -1084,12 +1076,8 @@ void ConstantButtons() { //print_title_str_small(500, 620, "Ok"); //print_title_str_small(600, 620, "Cancel"); - DrawPCXString( 500, 440, gdwFont2Height, gdwFont2Width, "OK", pFont16, pPcxFont2Image); - DrawPCXString( 550, 440, gdwFont2Height, gdwFont2Width, "Cancel", pFont16, pPcxFont2Image); - - - - + DrawPCXString(500, 440, gdwFont2Height, gdwFont2Width, "OK", pFont16, pPcxFont2Image); + DrawPCXString(550, 440, gdwFont2Height, gdwFont2Width, "Cancel", pFont16, pPcxFont2Image); } bool LoadCreateHeroDialogImages = 0; @@ -1097,7 +1085,9 @@ bool SorcerorCreateSelected = 0; bool RogueCreateSelected = 0; bool WarriorCreateSelected = 1; -void LoadCreateHeroDialogMenu() {} +void LoadCreateHeroDialogMenu() +{ +} // Have this load the function above and then render it in the main menu. // Cnacel box is also needed. void CreateHeroMenu()