ref: 03250d62a0d3e85bdbabc41a7d2bfb22e65de4ef
parent: 3dd904adf60951b0be02454fbcefa91757606f49
author: Clownacy <Clownacy@users.noreply.github.com>
date: Sun May 3 16:28:56 EDT 2020
Make variables more accurate This commit changes which variables are static: the Mac (and presumably the Linux) debug data tells you what variables are static, by prefixing their names with double_underscores. The variable names themselves also hint at this: global variables are prefixed with 'g', and use upper-camelcase, while static variables use whatever_you_call_this.
--- a/src/ArmsItem.cpp
+++ b/src/ArmsItem.cpp
@@ -20,10 +20,10 @@
int gSelectedArms;
int gSelectedItem;
-static int gCampTitleY;
+int gCampTitleY;
/// True if we're in the items section of the inventory (not in the weapons section) (only relevant when the inventory is open)
-static BOOL gCampActive;
+BOOL gCampActive;
int gArmsEnergyX = 16;
--- a/src/ArmsItem.h
+++ b/src/ArmsItem.h
@@ -2,6 +2,10 @@
#include "WindowsWrapper.h"
+// Limits for the amount of weapons and items
+#define ARMS_MAX 8
+#define ITEM_MAX 0x20
+
// "Arms" is a synonym of "weapon" here
// "Code" means "ID" here
// "Num" often means "ammo" here
@@ -32,26 +36,27 @@
} ITEM;
-// Limits for the amount of weapons and items
-#define ARMS_MAX 8
-#define ITEM_MAX 0x20
+/// Contains data for all the weapons the character currently has
+extern ARMS gArmsData[ARMS_MAX];
-/// X coordinate for the weapons HUD section. Set it to 32 for the forward weapon rotation "animation", 0 for the reverse weapon rotation "animation" and 16 to immobilise it
-extern int gArmsEnergyX;
+/// Contains data for all the items the character currently has
+extern ITEM gItemData[ITEM_MAX];
-
/// Currently selected weapon
extern int gSelectedArms;
-// Currently selected item
+/// Currently selected item
extern int gSelectedItem;
-/// Contains data for all the weapons the character currently has
-extern ARMS gArmsData[ARMS_MAX];
+extern int gCampTitleY;
-/// Contains data for all the items the character currently has
-extern ITEM gItemData[ITEM_MAX];
+/// True if we're in the items section of the inventory (not in the weapons section) (only relevant when the inventory is open)
+extern BOOL gCampActive;
+
+/// X coordinate for the weapons HUD section. Set it to 32 for the forward weapon rotation "animation", 0 for the reverse weapon rotation "animation" and 16 to immobilise it
+extern int gArmsEnergyX;
+
/// Clear the weapons array, reverting it to the default state (no weapons) and adjust variables (initialize weapons basically)
--- a/src/Boss.h
+++ b/src/Boss.h
@@ -3,6 +3,7 @@
#include "NpChar.h"
#define BOSS_MAX 20
+
extern NPCHAR gBoss[BOSS_MAX];
typedef void (*BOSSFUNCTION)(void);
--- a/src/BossLife.cpp
+++ b/src/BossLife.cpp
@@ -7,14 +7,7 @@
#include "Draw.h"
#include "NpChar.h"
-static struct
-{
- BOOL flag;
- int *pLife;
- int max;
- int br;
- int count;
-} gBL;
+BOSSLIFE gBL;
void InitBossLife(void)
{
--- a/src/BossLife.h
+++ b/src/BossLife.h
@@ -2,6 +2,17 @@
#include "WindowsWrapper.h"
+typedef struct BOSSLIFE // Not the original struct name
+{
+ BOOL flag;
+ int *pLife;
+ int max;
+ int br;
+ int count;
+} BOSSLIFE;
+
+extern BOSSLIFE gBL;
+
void InitBossLife(void);
BOOL StartBossLife(int code_event);
BOOL StartBossLife2(void);
--- a/src/Bullet.h
+++ b/src/Bullet.h
@@ -2,6 +2,8 @@
#include "WindowsWrapper.h"
+#define BULLET_MAX 0x40
+
typedef struct BULLET
{
int flag;
@@ -57,7 +59,6 @@
} view;
} BULLET_TABLE;
-#define BULLET_MAX 0x40
extern BULLET gBul[BULLET_MAX];
void InitBullet(void);
--- a/src/Caret.cpp
+++ b/src/Caret.cpp
@@ -8,7 +8,6 @@
#include "Game.h"
#include "Triangle.h"
-#define CARET_MAX 0x40
CARET gCrt[CARET_MAX];
CARET_TABLE gCaretTable[18] = {
@@ -510,7 +509,7 @@
}
typedef void (*CARETFUNCTION)(CARET*);
-CARETFUNCTION gpCaretFuncTbl[] =
+CARETFUNCTION gpCaretFuncTbl[18] =
{
ActCaret00,
ActCaret01,
--- a/src/Caret.h
+++ b/src/Caret.h
@@ -2,6 +2,8 @@
#include "WindowsWrapper.h"
+#define CARET_MAX 0x40
+
struct CARET_TABLE
{
int view_left;
@@ -25,6 +27,9 @@
int view_top;
RECT rect;
};
+
+extern CARET gCrt[CARET_MAX];
+extern CARET_TABLE gCaretTable[18];
void InitCaret(void);
void ActCaret(void);
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -7,8 +7,8 @@
#include "Config.h"
#include "Main.h"
-static const char* const gConfigName = "Config.dat";
-static const char* const gProof = "DOUKUTSU20041206";
+const char* const gConfigName = "Config.dat";
+const char* const gProof = "DOUKUTSU20041206";
BOOL LoadConfigData(CONFIG *conf)
{
--- a/src/Config.h
+++ b/src/Config.h
@@ -14,5 +14,8 @@
long joystick_button[8];
};
+extern const char* const gConfigName;
+extern const char* const gProof;
+
BOOL LoadConfigData(CONFIG *conf);
void DefaultConfigData(CONFIG *conf);
--- a/src/Dialog.cpp
+++ b/src/Dialog.cpp
@@ -10,7 +10,7 @@
// All of the original names for the functions/variables in this file are unknown
-static const char *version_string =
+const char* const gVersionString =
"version.%d.%d.%d.%d\r\n"
"2004/12/20 - %04d/%02d/%02d\r\n"
"Studio Pixel"
@@ -37,7 +37,7 @@
case WM_INITDIALOG:
GetCompileDate(&year, &month, &day);
GetCompileVersion(&version1, &version2, &version3, &version4);
- sprintf(string_buffer, version_string, version1, version2, version3, version4, year, month, day);
+ sprintf(string_buffer, gVersionString, version1, version2, version3, version4, year, month, day);
SetDlgItemTextA(hWnd, 1011, string_buffer);
CenteringWindowByParent(hWnd);
--- a/src/Dialog.h
+++ b/src/Dialog.h
@@ -2,6 +2,8 @@
#include "WindowsWrapper.h"
+extern const char* const gVersionString;
+
DLGPROC_RET CALLBACK VersionDialog(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
DLGPROC_RET CALLBACK DebugMuteDialog(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
DLGPROC_RET CALLBACK DebugSaveDialog(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
--- a/src/Draw.cpp
+++ b/src/Draw.cpp
@@ -26,23 +26,23 @@
RECT grcGame = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
RECT grcFull = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
-int magnification;
-BOOL fullscreen;
+static int mag;
+static BOOL fullscreen; // TODO - Not the original variable name
-static LPDIRECTDRAW lpDD;
-static LPDIRECTDRAWSURFACE frontbuffer;
-static LPDIRECTDRAWSURFACE backbuffer;
+static LPDIRECTDRAW lpDD; // TODO - Not the original variable name
+static LPDIRECTDRAWSURFACE frontbuffer; // TODO - Not the original variable name
+static LPDIRECTDRAWSURFACE backbuffer; // TODO - Not the original variable name
-static LPDIRECTDRAWCLIPPER clipper;
+static LPDIRECTDRAWCLIPPER clipper; // TODO - Not the original variable name
static LPDIRECTDRAWSURFACE surf[SURFACE_ID_MAX];
-static RECT backbuffer_rect;
+static RECT backbuffer_rect; // TODO - Not the original variable name
-static int scaled_window_width;
-static int scaled_window_height;
+static int scaled_window_width; // TODO - Not the original variable name
+static int scaled_window_height; // TODO - Not the original variable name
-static HFONT font;
+static HFONT font; // TODO - Not the original variable name
// This doesn't exist in the Linux port, so none of these symbol names are accurate
static struct
@@ -121,32 +121,32 @@
switch (lMagnification)
{
case 0:
- magnification = 1;
+ mag = 1;
fullscreen = FALSE;
lpDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
break;
case 1:
- magnification = 2;
+ mag = 2;
fullscreen = FALSE;
lpDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
break;
case 2:
- magnification = 2;
+ mag = 2;
fullscreen = TRUE;
lpDD->SetCooperativeLevel(hWnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE);
- lpDD->SetDisplayMode(WINDOW_WIDTH * magnification, WINDOW_HEIGHT * magnification, lColourDepth);
+ lpDD->SetDisplayMode(WINDOW_WIDTH * mag, WINDOW_HEIGHT * mag, lColourDepth);
break;
}
backbuffer_rect.left = 0;
backbuffer_rect.top = 0;
- backbuffer_rect.right = WINDOW_WIDTH * magnification;
- backbuffer_rect.bottom = WINDOW_HEIGHT * magnification;
+ backbuffer_rect.right = WINDOW_WIDTH * mag;
+ backbuffer_rect.bottom = WINDOW_HEIGHT * mag;
- scaled_window_width = WINDOW_WIDTH * magnification;
- scaled_window_height = WINDOW_HEIGHT * magnification;
+ scaled_window_width = WINDOW_WIDTH * mag;
+ scaled_window_height = WINDOW_HEIGHT * mag;
memset(&ddsd, 0, sizeof(DDSURFACEDESC));
ddsd.dwSize = sizeof(DDSURFACEDESC);
@@ -161,8 +161,8 @@
ddsd.dwSize = sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
- ddsd.dwWidth = WINDOW_WIDTH * magnification;
- ddsd.dwHeight = WINDOW_HEIGHT * magnification;
+ ddsd.dwWidth = WINDOW_WIDTH * mag;
+ ddsd.dwHeight = WINDOW_HEIGHT * mag;
if (lpDD->CreateSurface(&ddsd, &backbuffer, NULL) != DD_OK)
return FALSE;
@@ -240,8 +240,8 @@
ddsd.dwSize = sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
- ddsd.dwWidth = bitmap.bmWidth * magnification;
- ddsd.dwHeight = bitmap.bmHeight * magnification;
+ ddsd.dwWidth = bitmap.bmWidth * mag;
+ ddsd.dwHeight = bitmap.bmHeight * mag;
if (lpDD->CreateSurface(&ddsd, &surf[surf_no], NULL) != DD_OK)
return FALSE;
@@ -253,8 +253,8 @@
int dst_x = 0;
int dst_y = 0;
- int dst_w = bitmap.bmWidth * magnification;
- int dst_h = bitmap.bmHeight * magnification;
+ int dst_w = bitmap.bmWidth * mag;
+ int dst_h = bitmap.bmHeight * mag;
HDC hdc = CreateCompatibleDC(NULL);
HGDIOBJ hgdiobj = SelectObject(hdc, handle);
@@ -330,8 +330,8 @@
ddsd.dwSize = sizeof(DDSURFACEDESC);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
- ddsd.dwWidth = bitmap.bmWidth * magnification;
- ddsd.dwHeight = bitmap.bmHeight * magnification;
+ ddsd.dwWidth = bitmap.bmWidth * mag;
+ ddsd.dwHeight = bitmap.bmHeight * mag;
lpDD->CreateSurface(&ddsd, &surf[surf_no], NULL);
@@ -342,8 +342,8 @@
int dst_x = 0;
int dst_y = 0;
- int dst_w = bitmap.bmWidth * magnification;
- int dst_h = bitmap.bmHeight * magnification;
+ int dst_w = bitmap.bmWidth * mag;
+ int dst_h = bitmap.bmHeight * mag;
HDC hdc = CreateCompatibleDC(NULL);
HGDIOBJ hgdiobj = SelectObject(hdc, handle);
@@ -394,8 +394,8 @@
int dst_x = 0;
int dst_y = 0;
- int dst_w = bitmap.bmWidth * magnification;
- int dst_h = bitmap.bmHeight * magnification;
+ int dst_w = bitmap.bmWidth * mag;
+ int dst_h = bitmap.bmHeight * mag;
HDC hdc = CreateCompatibleDC(NULL);
HGDIOBJ hgdiobj = SelectObject(hdc, handle);
@@ -464,8 +464,8 @@
int dst_x = 0;
int dst_y = 0;
- int dst_w = bitmap.bmWidth * magnification;
- int dst_h = bitmap.bmHeight * magnification;
+ int dst_w = bitmap.bmWidth * mag;
+ int dst_h = bitmap.bmHeight * mag;
HDC hdc = CreateCompatibleDC(NULL);
HGDIOBJ hgdiobj = SelectObject(hdc, handle);
@@ -511,8 +511,8 @@
else
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
- ddsd.dwWidth = bxsize * magnification;
- ddsd.dwHeight = bysize * magnification;
+ ddsd.dwWidth = bxsize * mag;
+ ddsd.dwHeight = bysize * mag;
lpDD->CreateSurface(&ddsd, &surf[surf_no], NULL);
@@ -523,8 +523,8 @@
surf[surf_no]->SetColorKey(DDCKEY_SRCBLT, &ddcolorkey);
surface_metadata[surf_no].type = SURFACE_SOURCE_NONE;
- surface_metadata[surf_no].width = ddsd.dwWidth / magnification;
- surface_metadata[surf_no].height = ddsd.dwHeight / magnification;
+ surface_metadata[surf_no].width = ddsd.dwWidth / mag;
+ surface_metadata[surf_no].height = ddsd.dwHeight / mag;
if (bSystem)
surface_metadata[surf_no].bSystem = TRUE;
@@ -544,10 +544,10 @@
ddbltfx.dwSize = sizeof(DDBLTFX);
static RECT scaled_rect; // TODO - Not the original variable name
- scaled_rect.left = rect->left * magnification;
- scaled_rect.top = rect->top * magnification;
- scaled_rect.right = rect->right * magnification;
- scaled_rect.bottom = rect->bottom * magnification;
+ scaled_rect.left = rect->left * mag;
+ scaled_rect.top = rect->top * mag;
+ scaled_rect.right = rect->right * mag;
+ scaled_rect.bottom = rect->bottom * mag;
surf[surf_no]->Blt(&scaled_rect, backbuffer, &scaled_rect, DDBLT_WAIT, &ddbltfx);
}
@@ -582,15 +582,15 @@
rcSet.right = x + rcWork.right - rcWork.left;
rcSet.bottom = y + rcWork.bottom - rcWork.top;
- rcWork.left *= magnification;
- rcWork.top *= magnification;
- rcWork.right *= magnification;
- rcWork.bottom *= magnification;
+ rcWork.left *= mag;
+ rcWork.top *= mag;
+ rcWork.right *= mag;
+ rcWork.bottom *= mag;
- rcSet.left *= magnification;
- rcSet.top *= magnification;
- rcSet.right *= magnification;
- rcSet.bottom *= magnification;
+ rcSet.left *= mag;
+ rcSet.top *= mag;
+ rcSet.right *= mag;
+ rcSet.bottom *= mag;
backbuffer->Blt(&rcSet, surf[surf_no], &rcWork, DDBLT_KEYSRC | DDBLT_WAIT, NULL);
}
@@ -625,15 +625,15 @@
rcSet.right = x + rcWork.right - rcWork.left;
rcSet.bottom = y + rcWork.bottom - rcWork.top;
- rcWork.left *= magnification;
- rcWork.top *= magnification;
- rcWork.right *= magnification;
- rcWork.bottom *= magnification;
+ rcWork.left *= mag;
+ rcWork.top *= mag;
+ rcWork.right *= mag;
+ rcWork.bottom *= mag;
- rcSet.left *= magnification;
- rcSet.top *= magnification;
- rcSet.right *= magnification;
- rcSet.bottom *= magnification;
+ rcSet.left *= mag;
+ rcSet.top *= mag;
+ rcSet.right *= mag;
+ rcSet.bottom *= mag;
backbuffer->Blt(&rcSet, surf[surf_no], &rcWork, DDBLT_WAIT, NULL);
}
@@ -643,10 +643,10 @@
static RECT rcWork;
static RECT rcSet;
- rcWork.left = rect->left * magnification;
- rcWork.top = rect->top * magnification;
- rcWork.right = rect->right * magnification;
- rcWork.bottom = rect->bottom * magnification;
+ rcWork.left = rect->left * mag;
+ rcWork.top = rect->top * mag;
+ rcWork.right = rect->right * mag;
+ rcWork.bottom = rect->bottom * mag;
rcSet.left = x;
rcSet.top = y;
@@ -653,10 +653,10 @@
rcSet.right = x + rect->right - rect->left;
rcSet.bottom = y + rect->bottom - rect->top;
- rcSet.left *= magnification;
- rcSet.top *= magnification;
- rcSet.right *= magnification;
- rcSet.bottom *= magnification;
+ rcSet.left *= mag;
+ rcSet.top *= mag;
+ rcSet.right *= mag;
+ rcSet.bottom *= mag;
surf[to]->Blt(&rcSet, surf[from], &rcWork, DDBLT_KEYSRC | DDBLT_WAIT, NULL);
}
@@ -704,13 +704,13 @@
ddbltfx.dwSize = sizeof(DDBLTFX);
ddbltfx.dwFillColor = col;
- static RECT dst_rect; // TODO - Not the original variable name
- dst_rect.left = rect->left * magnification;
- dst_rect.top = rect->top * magnification;
- dst_rect.right = rect->right * magnification;
- dst_rect.bottom = rect->bottom * magnification;
+ static RECT rcSet; // TODO - Not the original variable name
+ rcSet.left = rect->left * mag;
+ rcSet.top = rect->top * mag;
+ rcSet.right = rect->right * mag;
+ rcSet.bottom = rect->bottom * mag;
- backbuffer->Blt(&dst_rect, 0, 0, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
+ backbuffer->Blt(&rcSet, 0, 0, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
}
void CortBox2(const RECT *rect, unsigned long col, SurfaceID surf_no)
@@ -720,15 +720,15 @@
ddbltfx.dwSize = sizeof(DDBLTFX);
ddbltfx.dwFillColor = col;
- static RECT dst_rect; // TODO - Not the original variable name
- dst_rect.left = rect->left * magnification;
- dst_rect.top = rect->top * magnification;
- dst_rect.right = rect->right * magnification;
- dst_rect.bottom = rect->bottom * magnification;
+ static RECT rcSet; // TODO - Not the original variable name
+ rcSet.left = rect->left * mag;
+ rcSet.top = rect->top * mag;
+ rcSet.right = rect->right * mag;
+ rcSet.bottom = rect->bottom * mag;
surface_metadata[surf_no].type = SURFACE_SOURCE_NONE;
- surf[surf_no]->Blt(&dst_rect, 0, 0, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
+ surf[surf_no]->Blt(&rcSet, 0, 0, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
}
// Dummied-out log function
@@ -820,7 +820,7 @@
// Get font size
unsigned int width, height;
- switch (magnification)
+ switch (mag)
{
case 1:
height = 12;
@@ -864,7 +864,7 @@
HGDIOBJ hgdiobj = SelectObject(hdc, font);
SetBkMode(hdc, 1);
SetTextColor(hdc, color);
- TextOutA(hdc, x * magnification, y * magnification, text, (int)strlen(text));
+ TextOutA(hdc, x * mag, y * mag, text, (int)strlen(text));
SelectObject(hdc, hgdiobj);
backbuffer->ReleaseDC(hdc);
}
@@ -876,7 +876,7 @@
HGDIOBJ hgdiobj = SelectObject(hdc, font);
SetBkMode(hdc, 1);
SetTextColor(hdc, color);
- TextOutA(hdc, x * magnification, y * magnification, text, (int)strlen(text));
+ TextOutA(hdc, x * mag, y * mag, text, (int)strlen(text));
SelectObject(hdc, hgdiobj);
surf[surf_no]->ReleaseDC(hdc);
}
--- a/src/Draw.h
+++ b/src/Draw.h
@@ -5,9 +5,6 @@
extern RECT grcGame;
extern RECT grcFull;
-extern int magnification;
-extern BOOL fullscreen;
-
typedef enum SurfaceID
{
SURFACE_ID_TITLE = 0,
--- a/src/Ending.cpp
+++ b/src/Ending.cpp
@@ -17,9 +17,40 @@
#include "Stage.h"
#include "TextScr.h"
-CREDIT Credit;
-STRIP Strip[MAX_STRIP];
-ILLUSTRATION Illust;
+struct CREDIT
+{
+ long size;
+ char *pData;
+ int offset;
+ int wait;
+ int mode;
+ int start_x;
+};
+
+struct STRIP
+{
+ int flag;
+ int x;
+ int y;
+ int cast;
+ char str[0x40];
+};
+
+struct ILLUSTRATION
+{
+ int act_no;
+ int x;
+};
+
+struct ISLAND_SPRITE
+{
+ int x;
+ int y;
+};
+
+static CREDIT Credit;
+static STRIP Strip[MAX_STRIP];
+static ILLUSTRATION Illust;
// Update casts
void ActionStripper(void)
--- a/src/Ending.h
+++ b/src/Ending.h
@@ -4,37 +4,6 @@
#include "CommonDefines.h"
-struct CREDIT
-{
- long size;
- char *pData;
- int offset;
- int wait;
- int mode;
- int start_x;
-};
-
-struct STRIP
-{
- int flag;
- int x;
- int y;
- int cast;
- char str[0x40];
-};
-
-struct ILLUSTRATION
-{
- int act_no;
- int x;
-};
-
-struct ISLAND_SPRITE
-{
- int x;
- int y;
-};
-
#define MAX_STRIP ((WINDOW_HEIGHT / 16) + 1)
void ActionStripper(void);
--- a/src/Fade.cpp
+++ b/src/Fade.cpp
@@ -2,25 +2,12 @@
#include <string.h>
-#include "CommonDefines.h"
#include "WindowsWrapper.h"
#include "Draw.h"
-#define FADE_WIDTH (((WINDOW_WIDTH - 1) / 16) + 1)
-#define FADE_HEIGHT (((WINDOW_HEIGHT - 1) / 16) + 1)
+FADE gFade;
-struct FADE
-{
- int mode;
- BOOL bMask;
- int count;
- signed char ani_no[FADE_HEIGHT][FADE_WIDTH];
- signed char flag[FADE_HEIGHT][FADE_WIDTH]; // Not a BOOLEAN (those are unsigned)
- signed char dir;
-};
-
-static FADE gFade;
static unsigned long mask_color;
void InitFade(void)
--- a/src/Fade.h
+++ b/src/Fade.h
@@ -1,6 +1,22 @@
#pragma once
+#include "CommonDefines.h"
#include "WindowsWrapper.h"
+
+#define FADE_WIDTH (((WINDOW_WIDTH - 1) / 16) + 1)
+#define FADE_HEIGHT (((WINDOW_HEIGHT - 1) / 16) + 1)
+
+struct FADE
+{
+ int mode;
+ BOOL bMask;
+ int count;
+ signed char ani_no[FADE_HEIGHT][FADE_WIDTH];
+ signed char flag[FADE_HEIGHT][FADE_WIDTH]; // Not a BOOLEAN (those are unsigned)
+ signed char dir;
+};
+
+extern FADE gFade;
void InitFade(void);
void SetFadeMask(void);
--- a/src/Flash.cpp
+++ b/src/Flash.cpp
@@ -17,7 +17,7 @@
RECT rect2;
} flash;
-static unsigned long gFlashColor;
+unsigned long gFlashColor;
void InitFlash(void)
{
--- a/src/Flash.h
+++ b/src/Flash.h
@@ -1,5 +1,7 @@
#pragma once
+extern unsigned long gFlashColor;
+
void InitFlash(void);
void SetFlash(int x, int y, int mode);
void ActFlash_Explosion(int flx, int fly);
--- a/src/Game.cpp
+++ b/src/Game.cpp
@@ -46,7 +46,7 @@
int g_GameFlags;
int gCounter;
-BOOL bContinue;
+static BOOL bContinue;
int Random(int min, int max)
{
--- a/src/Generic.cpp
+++ b/src/Generic.cpp
@@ -415,7 +415,7 @@
return TRUE;
}
-const char *extra_text = "(C)Pixel";
+static const char* const extra_text = "(C)Pixel";
BOOL IsEnableBitmap(const char *path)
{
--- a/src/GenericLoad.cpp
+++ b/src/GenericLoad.cpp
@@ -10,7 +10,7 @@
#include "PixTone.h"
#include "Sound.h"
-static const PIXTONEPARAMETER gPtpTable[139] =
+const PIXTONEPARAMETER gPtpTable[139] =
{
{1, 5000, {5, 10.0, 32, 0}, {4, 4.0, 32, 0}, {0, 0.0, 63, 0}, 63, 6, 63, 45, 8, 119, 46},
{1, 1000, {0, 4.0, 32, 0}, {3, 1.0, 63, 0}, {0, 0.0, 63, 0}, 63, 64, 63, 128, 63, 255, 63},
--- a/src/GenericLoad.h
+++ b/src/GenericLoad.h
@@ -2,4 +2,8 @@
#include "WindowsWrapper.h"
+#include "PixTone.h"
+
+extern const PIXTONEPARAMETER gPtpTable[139];
+
BOOL LoadGenericData(void);
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -43,12 +43,12 @@
static int windowWidth;
static int windowHeight;
-static const char *mutex_name = "Doukutsu";
+static const char* const mutex_name = "Doukutsu";
#ifdef JAPANESE
-static const char *lpWindowName = "\x93\xB4\x8C\x41\x95\xA8\x8C\xEA"; // '洞窟物語' (Cave Story) in Shift-JIS
+static const char* const lpWindowName = "\x93\xB4\x8C\x41\x95\xA8\x8C\xEA"; // '洞窟物語' (Cave Story) in Shift-JIS
#else
-static const char *lpWindowName = "Cave Story ~ Doukutsu Monogatari";
+static const char* const lpWindowName = "Cave Story ~ Doukutsu Monogatari";
#endif
// The original name for this function is unknown
--- a/src/Main.h
+++ b/src/Main.h
@@ -7,6 +7,9 @@
extern HWND ghWnd;
extern BOOL bFullscreen;
+extern BOOL gbUseJoystick;
+
+extern int gJoystickButtonTable[8];
void PutFramePerSecound(void);
unsigned long CountFramePerSecound(void);
--- a/src/MapName.cpp
+++ b/src/MapName.cpp
@@ -6,15 +6,9 @@
#include "Draw.h"
#include "WindowsWrapper.h"
-typedef struct MAP_NAME
-{
- BOOL flag;
- int wait;
- char name[0x20];
-} MAP_NAME;
-
MAP_NAME gMapName;
-RECT rc = { 0, 0, 160, 12 };
+
+static RECT rc = { 0, 0, 160, 12 };
void ReadyMapName(const char *str)
{
--- a/src/MapName.h
+++ b/src/MapName.h
@@ -2,6 +2,15 @@
#include "WindowsWrapper.h"
+typedef struct MAP_NAME
+{
+ BOOL flag;
+ int wait;
+ char name[0x20];
+} MAP_NAME;
+
+extern MAP_NAME gMapName;
+
void ReadyMapName(const char *str);
void PutMapName(BOOL bMini);
void StartMapName(void);
--- a/src/MyChar.cpp
+++ b/src/MyChar.cpp
@@ -986,8 +986,8 @@
gMC.cond &= ~1;
}
-int noise_no;
-unsigned int noise_freq;
+static int noise_no;
+static unsigned int noise_freq;
void SetNoise(int no, int freq)
{
--- a/src/MycParam.cpp
+++ b/src/MycParam.cpp
@@ -387,7 +387,7 @@
}
}
-int time_count;
+static int time_count;
void PutTimeCounter(int x, int y)
{
--- a/src/NpChar.cpp
+++ b/src/NpChar.cpp
@@ -24,7 +24,7 @@
int gSuperXpos;
int gSuperYpos;
-const char *gPassPixEve = "PXE";
+const char* const gPassPixEve = "PXE";
static void SetUniqueParameter(NPCHAR *npc)
{
--- a/src/NpChar.h
+++ b/src/NpChar.h
@@ -119,6 +119,8 @@
extern int gSuperXpos;
extern int gSuperYpos;
+extern const char* const gPassPixEve;
+
void InitNpChar(void);
BOOL LoadEvent(const char *path_event);
void SetNpChar(int code_char, int x, int y, int xm, int ym, int dir, NPCHAR *npc, int start_index);
--- a/src/PixTone.h
+++ b/src/PixTone.h
@@ -26,5 +26,7 @@
int pointCy;
} PIXTONEPARAMETER;
+extern signed char gWaveModelTable[6][0x100];
+
void MakeWaveTables(void);
BOOL MakePixelWaveData(const PIXTONEPARAMETER *ptp, unsigned char *pData);
--- a/src/Profile.cpp
+++ b/src/Profile.cpp
@@ -21,8 +21,8 @@
#include "Star.h"
#include "ValueView.h"
-const char *gDefaultName = "Profile.dat";
-const char *gProfileCode = "Do041220";
+const char* const gDefaultName = "Profile.dat";
+const char* const gProfileCode = "Do041220";
BOOL IsProfile(void)
{
--- a/src/Profile.h
+++ b/src/Profile.h
@@ -31,6 +31,9 @@
unsigned char flags[1000];
} PROFILE;
+extern const char* const gDefaultName;
+extern const char* const gProfileCode;
+
BOOL IsProfile(void);
BOOL SaveProfile(const char *name);
BOOL LoadProfile(const char *name);
--- a/src/SelStage.h
+++ b/src/SelStage.h
@@ -10,6 +10,9 @@
extern PERMIT_STAGE gPermitStage[8];
+extern int gSelectedStage;
+extern int gStageSelectTitleY;
+
void ClearPermitStage(void);
BOOL AddPermitStage(int index, int event);
BOOL SubPermitStage(int index);
--- a/src/Shoot.cpp
+++ b/src/Shoot.cpp
@@ -10,7 +10,7 @@
#include "MycParam.h"
#include "Sound.h"
-int empty;
+static int empty;
void ShootBullet_Frontia1(int level)
{
--- a/src/Stage.cpp
+++ b/src/Stage.cpp
@@ -206,7 +206,7 @@
}
// Music
-const char *gMusicTable[42] = {
+const char* const gMusicTable[42] = {
"XXXX",
"WANPAKU",
"ANZEN",
--- a/src/Stage.h
+++ b/src/Stage.h
@@ -62,6 +62,12 @@
extern int gStageNo;
extern MusicID gMusicNo;
+extern unsigned int gOldPos;
+extern MusicID gOldNo;
+
+extern const STAGE_TABLE gTMT[95];
+
+extern const char* const gMusicTable[42];
BOOL TransferStage(int no, int w, int x, int y);
void ChangeMusic(MusicID no);
--- a/src/TextScr.cpp
+++ b/src/TextScr.cpp
@@ -42,9 +42,9 @@
TEXT_SCRIPT gTS;
-char text[4][0x40];
+static char text[4][0x40];
-RECT gRect_line = {0, 0, 216, 16};
+const RECT gRect_line = {0, 0, 216, 16};
#ifdef FIX_BUGS
static unsigned long nod_color;
--- a/src/TextScr.h
+++ b/src/TextScr.h
@@ -53,6 +53,10 @@
unsigned char wait_beam;
} TEXT_SCRIPT;
+extern TEXT_SCRIPT gTS;
+
+extern const RECT gRect_line;
+
BOOL InitTextScript2(void);
void EndTextScript(void);
void EncryptionBinaryData2(unsigned char *pData, long size);
--- a/src/Triangle.h
+++ b/src/Triangle.h
@@ -1,5 +1,8 @@
#pragma once
+extern int gSin[0x100];
+extern short gTan[0x21];
+
void InitTriangleTable(void);
int GetSin(unsigned char deg);
int GetCos(unsigned char deg);
--- a/src/ValueView.cpp
+++ b/src/ValueView.cpp
@@ -6,8 +6,6 @@
#include "Draw.h"
-#define VALUEVIEW_MAX 0x10
-
VALUEVIEW gVV[VALUEVIEW_MAX];
int gVVIndex;
--- a/src/ValueView.h
+++ b/src/ValueView.h
@@ -2,6 +2,8 @@
#include "WindowsWrapper.h"
+#define VALUEVIEW_MAX 0x10
+
typedef struct VALUEVIEW
{
BOOL flag;
@@ -12,6 +14,9 @@
int count;
RECT rect;
} VALUEVIEW;
+
+extern VALUEVIEW gVV[VALUEVIEW_MAX];
+extern int gVVIndex;
void ClearValueView(void);
void SetValueView(int *px, int *py, int value);