diff --git a/Endoomed/src/main.cpp b/Endoomed/src/main.cpp index 36e90aa..1b17216 100644 --- a/Endoomed/src/main.cpp +++ b/Endoomed/src/main.cpp @@ -59,12 +59,12 @@ struct SChar bool blinking; }; -inline int clampi ( int a_iVal, int a_iMin, int a_iMax ) +inline int clampi(int a_iVal, int a_iMin, int a_iMax) { - return ( a_iVal < a_iMin ) ? a_iMin : ( a_iVal > a_iMax ) ? a_iMax : a_iVal; + return (a_iVal < a_iMin) ? a_iMin : (a_iVal > a_iMax) ? a_iMax : a_iVal; } -static Uint32 TimerCallback ( Uint32 a_uiInterval, void* a_pParam ) +static Uint32 TimerCallback(Uint32 a_uiInterval, void* a_pParam) { SDL_Event event; SDL_UserEvent userEvent; @@ -77,73 +77,73 @@ static Uint32 TimerCallback ( Uint32 a_uiInterval, void* a_pParam ) event.type = SDL_USEREVENT; event.user = userEvent; - SDL_PushEvent ( &event ); + SDL_PushEvent(&event); return a_uiInterval; } -int main ( int argc, char** argv ) +int main(int argc, char** argv) { - if ( SDL_Init ( SDL_INIT_VIDEO ) < 0 ) + if (SDL_Init(SDL_INIT_VIDEO) < 0) { return -1; } - if ( !( IMG_Init ( IMG_INIT_PNG ) & IMG_INIT_PNG ) ) + if (!(IMG_Init(IMG_INIT_PNG) & IMG_INIT_PNG)) { - SDL_Quit (); + SDL_Quit(); return -1; } SDL_Window* pWindow = nullptr; SDL_Renderer* pRenderer = nullptr; - if ( SDL_CreateWindowAndRenderer ( 640, 400, 0, &pWindow, &pRenderer ) < 0 ) + if (SDL_CreateWindowAndRenderer(640, 400, 0, &pWindow, &pRenderer) < 0) { - IMG_Quit (); - SDL_Quit (); + IMG_Quit(); + SDL_Quit(); return -1; } - SDL_SetWindowTitle ( pWindow, "EnDOOMed" ); + SDL_SetWindowTitle(pWindow, "EnDOOMed"); - SDL_Texture* pCodepage = IMG_LoadTexture ( pRenderer, "codepage.png" ); - if ( pCodepage == nullptr ) + SDL_Texture* pCodepage = IMG_LoadTexture(pRenderer, "codepage.png"); + if (pCodepage == nullptr) { - SDL_DestroyRenderer ( pRenderer ); - SDL_DestroyWindow ( pWindow ); - IMG_Quit (); - SDL_Quit (); + SDL_DestroyRenderer(pRenderer); + SDL_DestroyWindow(pWindow); + IMG_Quit(); + SDL_Quit(); return -1; } SChar aDisplay[2000]; - memset ( aDisplay, 0, sizeof(aDisplay) ); + memset(aDisplay, 0, sizeof(aDisplay)); - FILE* pFile = fopen ( "ENDOOM.bin", "rb" ); - if ( pFile == nullptr ) + FILE* pFile = fopen("ENDOOM.bin", "rb"); + if (pFile == nullptr) { - SDL_DestroyTexture ( pCodepage ); - SDL_DestroyRenderer ( pRenderer ); - SDL_DestroyWindow ( pWindow ); - IMG_Quit (); - SDL_Quit (); + SDL_DestroyTexture(pCodepage); + SDL_DestroyRenderer(pRenderer); + SDL_DestroyWindow(pWindow); + IMG_Quit(); + SDL_Quit(); return -1; } - for ( int i = 0; i < 2000; ++i ) + for (int i = 0; i < 2000; ++i) { SChar& currentCharacter = aDisplay[i]; unsigned char ucSpecial; - fread ( ¤tCharacter.character, sizeof(unsigned char), 1, pFile ); - fread ( &ucSpecial, sizeof(unsigned char), 1, pFile ); + fread(¤tCharacter.character, sizeof(unsigned char), 1, pFile); + fread(&ucSpecial, sizeof(unsigned char), 1, pFile); - currentCharacter.bgColour = EColour(( ucSpecial & 112 ) >> 4); + currentCharacter.bgColour = EColour((ucSpecial & 112) >> 4); currentCharacter.fgColour = EColour(ucSpecial & 15); - currentCharacter.blinking = ( ucSpecial & 128 > 0 ) ? true : false; + currentCharacter.blinking = (ucSpecial & 128 > 0) ? true : false; } - SDL_AddTimer ( 400, TimerCallback, nullptr ); + SDL_AddTimer(400, TimerCallback, nullptr); SChar leftBrush; leftBrush.character = 219; @@ -166,115 +166,95 @@ int main ( int argc, char** argv ) bool bBlinkState = true; bool bRunning = true; SDL_Event event; - while ( bRunning ) + while (bRunning) { iMousePrevX = iMouseX; iMousePrevY = iMouseY; - SDL_PumpEvents (); - if ( SDL_WaitEvent ( &event ) ) + SDL_PumpEvents(); + if (SDL_WaitEvent(&event)) { do { - switch ( event.type ) + switch (event.type) { - case ( SDL_QUIT ): + case SDL_QUIT: + bRunning = false; + break; + case SDL_USEREVENT: + bBlinkState = !bBlinkState; + bValidRender = false; + break; + case SDL_MOUSEBUTTONDOWN: + if (event.button.button == SDL_BUTTON_LEFT) { - bRunning = false; - break; + bMouseLeft = true; } - case ( SDL_USEREVENT ): + else if (event.button.button == SDL_BUTTON_RIGHT) { - bBlinkState = !bBlinkState; - bValidRender = false; - break; + bMouseRight = true; } - case ( SDL_MOUSEBUTTONDOWN ): + break; + case SDL_MOUSEBUTTONUP: + if (event.button.button == SDL_BUTTON_LEFT) { - if ( event.button.button == SDL_BUTTON_LEFT ) - { - bMouseLeft = true; - } - else - if ( event.button.button == SDL_BUTTON_RIGHT ) - { - bMouseRight = true; - } - break; + bMouseLeft = false; } - case ( SDL_MOUSEBUTTONUP ): + else if (event.button.button == SDL_BUTTON_RIGHT) { - if ( event.button.button == SDL_BUTTON_LEFT ) - { - bMouseLeft = false; - } - else - if ( event.button.button == SDL_BUTTON_RIGHT ) - { - bMouseRight = false; - } - break; + bMouseRight = false; } - case ( SDL_MOUSEMOTION ): + break; + case SDL_MOUSEMOTION: + iMouseX = event.motion.x; + iMouseY = event.motion.y; + break; + case SDL_WINDOWEVENT: + switch (event.window.event) { - iMouseX = event.motion.x; - iMouseY = event.motion.y; + case SDL_WINDOWEVENT_LEAVE: + bMouseInWindow = false; break; - } - case ( SDL_WINDOWEVENT ): - { - switch ( event.window.event ) - { - case ( SDL_WINDOWEVENT_LEAVE ): - { - bMouseInWindow = false; - break; - }; - case ( SDL_WINDOWEVENT_ENTER ): - { - bMouseInWindow = true; - break; - }; - }; - + case SDL_WINDOWEVENT_ENTER: + bMouseInWindow = true; break; - } + }; + break; } } - while ( SDL_PollEvent ( &event ) > 0 ); + while (SDL_PollEvent(&event) > 0); } - if ( bMouseInWindow && ( bMouseLeft || bMouseRight ) ) + if (bMouseInWindow && (bMouseLeft || bMouseRight)) { - int iFromX = clampi ( iMouseX / CHARWIDTH, 0, 79 ); - int iFromY = clampi ( iMouseY / CHARHEIGHT, 0, 24 ); - int iToX = clampi ( iMousePrevX / CHARWIDTH, 0, 79 ); - int iToY = clampi ( iMousePrevY / CHARHEIGHT, 0, 24 ); + int iFromX = clampi(iMouseX / CHARWIDTH, 0, 79); + int iFromY = clampi(iMouseY / CHARHEIGHT, 0, 24); + int iToX = clampi(iMousePrevX / CHARWIDTH, 0, 79); + int iToY = clampi(iMousePrevY / CHARHEIGHT, 0, 24); SChar* srcChar = nullptr; - if ( bMouseLeft ) + if (bMouseLeft) { srcChar = &leftBrush; } - else - if ( bMouseRight ) + else if (bMouseRight) { srcChar = &rightBrush; } - if ( iToX == iFromX && iToY == iFromY ) + if (iToX == iFromX && iToY == iFromY) { SChar& dstChar = aDisplay[iToX + iToY * 80]; - dstChar.blinking = srcChar->blinking; - dstChar.bgColour = srcChar->bgColour; - dstChar.fgColour = srcChar->fgColour; - dstChar.character = srcChar->character; + dstChar.blinking = srcChar->blinking; + dstChar.bgColour = srcChar->bgColour; + dstChar.fgColour = srcChar->fgColour; + dstChar.character = srcChar->character; } else { int iTemp; - bool bSteep = labs ( iToY - iFromY ) > labs ( iToX - iFromX ); - if ( bSteep ) + bool bSteep = labs(iToY - iFromY) > labs(iToX - iFromX); + if (bSteep) { iTemp = iFromY; iFromY = iFromX; @@ -284,7 +264,7 @@ int main ( int argc, char** argv ) iToY = iToX; iToX = iTemp; } - if ( iFromX > iToX ) + if (iFromX > iToX) { iTemp = iToX; iToX = iFromX; @@ -296,31 +276,31 @@ int main ( int argc, char** argv ) } int iDeltaX = iToX - iFromX; - int iDeltaY = labs ( iToY - iFromY ); + int iDeltaY = labs(iToY - iFromY); int iError = iDeltaX / 2; int iY = iFromY; - int iYStep = ( iFromY < iToY ) ? 1 : -1; - for ( int iX = iFromX; iX <= iToX; ++iX ) + int iYStep = (iFromY < iToY) ? 1 : -1; + for (int iX = iFromX; iX <= iToX; ++iX) { - if ( bSteep ) + if (bSteep) { SChar& dstChar = aDisplay[iY + iX * 80]; - dstChar.blinking = srcChar->blinking; - dstChar.bgColour = srcChar->bgColour; - dstChar.fgColour = srcChar->fgColour; - dstChar.character = srcChar->character; + dstChar.blinking = srcChar->blinking; + dstChar.bgColour = srcChar->bgColour; + dstChar.fgColour = srcChar->fgColour; + dstChar.character = srcChar->character; } else { SChar& dstChar = aDisplay[iX + iY * 80]; - dstChar.blinking = srcChar->blinking; - dstChar.bgColour = srcChar->bgColour; - dstChar.fgColour = srcChar->fgColour; - dstChar.character = srcChar->character; + dstChar.blinking = srcChar->blinking; + dstChar.bgColour = srcChar->bgColour; + dstChar.fgColour = srcChar->fgColour; + dstChar.character = srcChar->character; } iError -= iDeltaY; - if ( iError < 0 ) + if (iError < 0) { iY += iYStep; iError += iDeltaX; @@ -331,10 +311,10 @@ int main ( int argc, char** argv ) bValidRender = false; } - if ( !bValidRender ) + if (!bValidRender) { - SDL_SetRenderDrawColor ( pRenderer, 48, 48, 48, 255 ); - SDL_RenderClear ( pRenderer ); + SDL_SetRenderDrawColor(pRenderer, 48, 48, 48, 255); + SDL_RenderClear(pRenderer); SDL_Rect src, dst; @@ -344,44 +324,44 @@ int main ( int argc, char** argv ) dst.h = CHARHEIGHT; int iX = 0, iY = 0; - for ( int i = 0; i < 2000; ++i ) + for (int i = 0; i < 2000; ++i) { SChar& currentCharacter = aDisplay[i]; SDL_Colour& currentBgColour = g_aColourTable[(unsigned char)aDisplay[i].bgColour]; SDL_Colour& currentFgColour = g_aColourTable[(unsigned char)aDisplay[i].fgColour]; - src.x = ( currentCharacter.character % 32 ) * CHARWIDTH; - src.y = ( currentCharacter.character / 32 ) * CHARHEIGHT; + src.x = (currentCharacter.character % 32) * CHARWIDTH; + src.y = (currentCharacter.character / 32) * CHARHEIGHT; dst.x = iX * CHARWIDTH; dst.y = iY * CHARHEIGHT; - SDL_SetRenderDrawColor ( pRenderer, currentBgColour.r, currentBgColour.g, currentBgColour.b, currentBgColour.a ); - SDL_RenderFillRect ( pRenderer, &dst ); - SDL_SetRenderDrawColor ( pRenderer, 0, 0, 0, currentFgColour.a ); + SDL_SetRenderDrawColor(pRenderer, currentBgColour.r, currentBgColour.g, currentBgColour.b, currentBgColour.a); + SDL_RenderFillRect(pRenderer, &dst); + SDL_SetRenderDrawColor(pRenderer, 0, 0, 0, currentFgColour.a); - if ( bBlinkState || !currentCharacter.blinking ) + if (bBlinkState || !currentCharacter.blinking) { - SDL_SetTextureColorMod ( pCodepage, currentFgColour.r, currentFgColour.g, currentFgColour.b ); - SDL_RenderCopy ( pRenderer, pCodepage, &src, &dst ); + SDL_SetTextureColorMod(pCodepage, currentFgColour.r, currentFgColour.g, currentFgColour.b); + SDL_RenderCopy(pRenderer, pCodepage, &src, &dst); } - if ( ++iX >= 80 ) + if (++iX >= 80) { iX = 0; ++iY; } } - SDL_RenderPresent ( pRenderer ); + SDL_RenderPresent(pRenderer); bValidRender = true; } } - fclose ( pFile ); - SDL_DestroyTexture ( pCodepage ); - SDL_DestroyRenderer ( pRenderer ); - SDL_DestroyWindow ( pWindow ); - IMG_Quit (); - SDL_Quit (); + fclose(pFile); + SDL_DestroyTexture(pCodepage); + SDL_DestroyRenderer(pRenderer); + SDL_DestroyWindow(pWindow); + IMG_Quit(); + SDL_Quit(); return 0; }