diff --git a/src/Draw.cpp b/src/Draw.cpp index bd7ed4b0..8458046b 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -474,6 +474,11 @@ void Surface2Surface(int x, int y, RECT *rect, int to, int from) surf[to].needs_updating = true; } +unsigned long GetCortBoxColor(unsigned long col) +{ + return ((col & 0xFF) << 16) | (col & 0xFF00) | ((col & 0xFF0000) >> 16); +} + void CortBox(RECT *rect, uint32_t col) { //Get rect diff --git a/src/Draw.h b/src/Draw.h index d5ce2bd8..628fa023 100644 --- a/src/Draw.h +++ b/src/Draw.h @@ -4,6 +4,10 @@ #include "WindowsWrapper.h" +#ifndef RGB +#define RGB(r,g,b) ((r) | ((g) << 8) | ((b) << 16)) +#endif + extern RECT grcGame; extern RECT grcFull; @@ -63,6 +67,7 @@ void BackupSurface(Surface_Ids surf_no, RECT *rect); void PutBitmap3(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no); void PutBitmap4(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no); void Surface2Surface(int x, int y, RECT *rect, int to, int from); +unsigned long GetCortBoxColor(unsigned long col); void CortBox(RECT *rect, uint32_t col); void CortBox2(RECT *rect, uint32_t col, Surface_Ids surf_no); void InitTextObject(const char *font_name); diff --git a/src/Fade.cpp b/src/Fade.cpp index cd305abc..aa479fdb 100644 --- a/src/Fade.cpp +++ b/src/Fade.cpp @@ -8,20 +8,22 @@ #include "Game.h" FADE gFade; +static unsigned long mask_color; void InitFade() { memset(&gFade, 0, sizeof(FADE)); + mask_color = GetCortBoxColor(RGB(0, 0, 0x20)); } void SetFadeMask() { - gFade.bMask = true; + gFade.bMask = TRUE; } void ClearFade() { - gFade.bMask = false; + gFade.bMask = FALSE; gFade.mode = 0; } @@ -30,239 +32,248 @@ void StartFadeOut(char dir) gFade.mode = 2; gFade.count = 0; gFade.dir = dir; - gFade.bMask = false; + gFade.bMask = FALSE; for (int y = 0; y < FADE_HEIGHT; y++) { for (int x = 0; x < FADE_WIDTH; x++) { gFade.ani_no[y][x] = 0; - gFade.flag[y][x] = 0; + gFade.flag[y][x] = FALSE; } } } void StartFadeIn(char dir) { + int x; + int y; + gFade.mode = 1; gFade.count = 0; gFade.dir = dir; - gFade.bMask = true; + gFade.bMask = TRUE; - for (int y = 0; y < FADE_HEIGHT; y++) + for (y = 0; y < FADE_HEIGHT; y++) { - for (int x = 0; x < FADE_WIDTH; x++) + for (x = 0; x < FADE_WIDTH; x++) { gFade.ani_no[y][x] = 15; - gFade.flag[y][x] = 0; + gFade.flag[y][x] = FALSE; } } + + x = x; // What } void ProcFade() { - if (gFade.mode == 1) + int x; + int y; + + switch (gFade.mode) { - gFade.bMask = false; - - switch (gFade.dir) - { - case 0: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x <= FADE_WIDTH; x++) - { - if ((FADE_WIDTH - 1) - gFade.count == x) - gFade.flag[y][x] = 1; - } - } - break; - - case 1: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if ((FADE_HEIGHT - 1) - gFade.count == y) - gFade.flag[y][x] = 1; - } - } - break; - - case 2: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if (gFade.count == x) - gFade.flag[y][x] = 1; - } - } - break; - - case 3: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if (gFade.count == y) - gFade.flag[y][x] = 1; - } - } - break; - - case 4: - for (int y = 0; y < (FADE_HEIGHT / 2); y++) - { - for (int x = 0; x < (FADE_WIDTH / 2); x++) - { - if ((FADE_WIDTH - 1) - gFade.count == x + y) - gFade.flag[y][x] = 1; - } - } - for (int y = 0; y < (FADE_HEIGHT / 2); y++) - { - for (int x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) - { - if ((FADE_WIDTH - 1) - gFade.count == y + ((FADE_WIDTH - 1) - x)) - gFade.flag[y][x] = 1; - } - } - for (int y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) - { - for (int x = 0; x < (FADE_WIDTH / 2); x++) - { - if ((FADE_WIDTH - 1) - gFade.count == x + ((FADE_HEIGHT - 1) - y)) - gFade.flag[y][x] = 1; - } - } - for (int y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) - { - for (int x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) - { - if ((FADE_WIDTH - 1) - gFade.count == ((FADE_WIDTH - 1) - x) + ((FADE_HEIGHT - 1) - y)) - gFade.flag[y][x] = 1; - } - } - break; - - default: - break; - } - - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) + case 2: + switch (gFade.dir) { - if (gFade.ani_no[y][x] > 0 && gFade.flag[y][x]) - --gFade.ani_no[y][x]; + case 0: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if ((FADE_WIDTH - 1) - gFade.count == x) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 2: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.count == x) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 1: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if ((FADE_HEIGHT - 1) - gFade.count == y) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 3: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.count == y) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 4: + for (y = 0; y < (FADE_HEIGHT / 2); y++) + { + for (x = 0; x < (FADE_WIDTH / 2); x++) + { + if (gFade.count == x + y) + gFade.flag[y][x] = TRUE; + } + } + for (y = 0; y < (FADE_HEIGHT / 2); y++) + { + for (x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) + { + if (gFade.count == y + ((FADE_WIDTH - 1) - x)) + gFade.flag[y][x] = TRUE; + } + } + for (y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) + { + for (x = 0; x < (FADE_WIDTH / 2); x++) + { + if (gFade.count == x + ((FADE_HEIGHT - 1) - y)) + gFade.flag[y][x] = TRUE; + } + } + for (y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) + { + for (x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) + { + if (gFade.count == ((FADE_WIDTH - 1) - x) + ((FADE_HEIGHT - 1) - y)) + gFade.flag[y][x] = TRUE; + } + } + break; } - } - - if (++gFade.count > ((FADE_WIDTH > FADE_HEIGHT) ? FADE_WIDTH : FADE_HEIGHT) + 16) - gFade.mode = 0; - } - else if (gFade.mode == 2) - { - switch (gFade.dir) - { - case 0: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x <= FADE_WIDTH; x++) - { - if ((FADE_WIDTH - 1) - gFade.count == x) - gFade.flag[y][x] = 1; - } - } - break; - - case 1: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if ((FADE_HEIGHT - 1) - gFade.count == y) - gFade.flag[y][x] = 1; - } - } - break; - - case 2: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if (gFade.count == x) - gFade.flag[y][x] = 1; - } - } - break; - - case 3: - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) - { - if (gFade.count == y) - gFade.flag[y][x] = 1; - } - } - break; - - case 4: - for (int y = 0; y < (FADE_HEIGHT / 2); y++) - { - for (int x = 0; x < (FADE_WIDTH / 2); x++) - { - if (gFade.count == x + y) - gFade.flag[y][x] = 1; - } - } - for (int y = 0; y < (FADE_HEIGHT / 2); y++) - { - for (int x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) - { - if (gFade.count == y + ((FADE_WIDTH - 1) - x)) - gFade.flag[y][x] = 1; - } - } - for (int y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) - { - for (int x = 0; x < (FADE_WIDTH / 2); x++) - { - if (gFade.count == x + ((FADE_HEIGHT - 1) - y)) - gFade.flag[y][x] = 1; - } - } - for (int y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) - { - for (int x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) - { - if (gFade.count == ((FADE_WIDTH - 1) - x) + ((FADE_HEIGHT - 1) - y)) - gFade.flag[y][x] = 1; - } - } - break; - - default: - break; - } - - for (int y = 0; y < FADE_HEIGHT; y++) - { - for (int x = 0; x < FADE_WIDTH; x++) + + for (y = 0; y < FADE_HEIGHT; y++) { - if (gFade.ani_no[y][x] < 15 && gFade.flag[y][x]) - ++gFade.ani_no[y][x]; + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.ani_no[y][x] < 15 && gFade.flag[y][x]) + ++gFade.ani_no[y][x]; + } } - } - - if (++gFade.count > ((FADE_WIDTH > FADE_HEIGHT) ? FADE_WIDTH : FADE_HEIGHT) + 16) - { - gFade.bMask = true; - gFade.mode = 0; - } + + if (++gFade.count > ((FADE_WIDTH > FADE_HEIGHT) ? FADE_WIDTH : FADE_HEIGHT) + 16) + { + gFade.bMask = TRUE; + gFade.mode = 0; + } + + break; + + case 1: + gFade.bMask = FALSE; + + switch (gFade.dir) + { + case 0: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if ((FADE_WIDTH - 1) - gFade.count == x) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 2: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.count == x) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 1: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if ((FADE_HEIGHT - 1) - gFade.count == y) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 3: + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.count == y) + gFade.flag[y][x] = TRUE; + } + } + break; + + case 4: + for (y = 0; y < (FADE_HEIGHT / 2); y++) + { + for (x = 0; x < (FADE_WIDTH / 2); x++) + { + if ((FADE_WIDTH - 1) - gFade.count == x + y) + gFade.flag[y][x] = TRUE; + } + } + for (y = 0; y < (FADE_HEIGHT / 2); y++) + { + for (x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) + { + if ((FADE_WIDTH - 1) - gFade.count == y + ((FADE_WIDTH - 1) - x)) + gFade.flag[y][x] = TRUE; + } + } + for (y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) + { + for (x = 0; x < (FADE_WIDTH / 2); x++) + { + if ((FADE_WIDTH - 1) - gFade.count == x + ((FADE_HEIGHT - 1) - y)) + gFade.flag[y][x] = TRUE; + } + } + for (y = (FADE_HEIGHT / 2); y < FADE_HEIGHT; y++) + { + for (x = (FADE_WIDTH / 2); x < FADE_WIDTH; x++) + { + if ((FADE_WIDTH - 1) - gFade.count == ((FADE_WIDTH - 1) - x) + ((FADE_HEIGHT - 1) - y)) + gFade.flag[y][x] = TRUE; + } + } + break; + + default: + break; + } + + for (y = 0; y < FADE_HEIGHT; y++) + { + for (x = 0; x < FADE_WIDTH; x++) + { + if (gFade.ani_no[y][x] > 0 && gFade.flag[y][x]) + --gFade.ani_no[y][x]; + } + } + + if (++gFade.count > ((FADE_WIDTH > FADE_HEIGHT) ? FADE_WIDTH : FADE_HEIGHT) + 16) + gFade.mode = 0; + + break; } } @@ -274,23 +285,28 @@ void PutFade() if (gFade.bMask) { - CortBox(&grcGame, 0x000020); + CortBox(&grcGame, mask_color); + return; } - else if (gFade.mode) + + if (gFade.mode == 0) + return; + + for (int y = 0; y < FADE_HEIGHT; y++) { - for (int y = 0; y < FADE_HEIGHT; y++) + for (int x = 0; x < FADE_WIDTH; x++) { - for (int x = 0; x < FADE_WIDTH; x++) - { - rect.left = 16 * gFade.ani_no[y][x]; - rect.right = rect.left + 16; - PutBitmap3(&grcGame, 16 * x, 16 * y, &rect, SURFACE_ID_FADE); - } + rect.left = 16 * gFade.ani_no[y][x]; + rect.right = rect.left + 16; + PutBitmap3(&grcGame, 16 * x, 16 * y, &rect, SURFACE_ID_FADE); } } } -bool GetFadeActive() +BOOL GetFadeActive() { - return gFade.mode != 0; + if (gFade.mode == 0) + return FALSE; + else + return TRUE; } diff --git a/src/Fade.h b/src/Fade.h index 06c3da0e..44747945 100644 --- a/src/Fade.h +++ b/src/Fade.h @@ -1,6 +1,7 @@ #pragma once #include "CommonDefines.h" +#include "WindowsWrapper.h" #define FADE_WIDTH (((WINDOW_WIDTH - 1) >> 4) + 1) #define FADE_HEIGHT (((WINDOW_HEIGHT - 1) >> 4) + 1) @@ -8,10 +9,10 @@ struct FADE { int mode; - bool bMask; + BOOL bMask; int count; char ani_no[FADE_HEIGHT][FADE_WIDTH]; - char flag[FADE_HEIGHT][FADE_WIDTH]; + BOOLEAN flag[FADE_HEIGHT][FADE_WIDTH]; char dir; }; @@ -22,4 +23,4 @@ void StartFadeOut(char dir); void StartFadeIn(char dir); void ProcFade(); void PutFade(); -bool GetFadeActive(); +BOOL GetFadeActive(); diff --git a/src/WindowsWrapper.h b/src/WindowsWrapper.h index 87b43c13..5c3bfc32 100644 --- a/src/WindowsWrapper.h +++ b/src/WindowsWrapper.h @@ -4,6 +4,7 @@ int rep_rand(); void rep_srand(unsigned int seed); typedef int BOOL; +typedef unsigned char BOOLEAN; #ifndef FALSE #define FALSE 0