Rework D_8003C908 (#1418)

The next function of SEL, func_801B99E4, makes it clear that D_8003C908
is not a struct member. I do not know why it was placed in this struct.
I have that function now matching, but since we're changing around
variables that are used elsewhere, I decided to split the PR so that we
can handle one type of change at a time.

The D_8003C908 variable has not yet been used in any C code, so this
change does not affect anything.

Further, since both struct members were s32, I decided to make it a
2-member array for the sake of conciseness in the code.
This commit is contained in:
bismurphy 2024-07-17 22:13:53 -04:00 committed by GitHub
parent 023c8676af
commit 2dfedc44c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 22 additions and 27 deletions

View File

@ -1,5 +1,4 @@
g_RicFactoryBlueprints = 0x80154A6C;
DestroyEntity = 0x80156C60;
UpdateEntityRichter = 0x80157BFC;
CreateEntFactoryFromEntity = 0x801606BC;
g_DebugWaitInfoTimer = 0x80174F7C;

View File

@ -1,5 +1,6 @@
g_CastleFlags = 0x8003BDEC;
D_8003C908 = 0x8003C908;
g_EquippedWeaponIds = 0x8003C90C;
g_GpuBuffers = 0x8003CB08;
g_api = 0x8003C774;
D_8006C384 = 0x8006C384;

View File

@ -1,5 +1,6 @@
g_CastleFlags = 0x8003BDEC;
D_8003C908 = 0x8003C908;
g_EquippedWeaponIds = 0x8003C90C;
g_GpuBuffers = 0x8003CB08;
g_api = 0x8003C774;
g_Settings = 0x8003C9F8;

View File

@ -1720,8 +1720,8 @@ extern u32 g_RoomCount;
extern GameApi g_api;
extern s32 D_8003C8B8;
extern u32 g_GameTimer; // Increases when unpaused
extern Unkstruct_8003C908 D_8003C908;
extern s32 D_8003C90C[2];
extern bool D_8003C908;
extern s32 g_EquippedWeaponIds[2];
extern u32 g_Timer; // Increases continuously
extern s32 g_MapCursorTimer;
/* 0x8003C9A0 */ extern s32 g_PlayableCharacter;

View File

@ -86,12 +86,6 @@ typedef struct {
s32 unkC;
} Unkstruct_800FDB18;
typedef struct {
s32 D_8003C908;
s32 D_8003C90C;
s32 D_8003C910;
} Unkstruct_8003C908;
typedef struct Unkstruct_801C6C6C {
union {
struct {

View File

@ -826,11 +826,11 @@ void UpdateCd(void) {
CdIntToPos(cdFile->loc, &g_CdLoc);
if (g_CdCallback == CdCallback_12) {
CdIntToPos(
D_8003C908.D_8003C90C * 14 + cdFile->loc, &g_CdLoc);
g_EquippedWeaponIds[0] * 14 + cdFile->loc, &g_CdLoc);
}
if (g_CdCallback == CdCallback_13) {
CdIntToPos(
D_8003C908.D_8003C910 * 14 + cdFile->loc, &g_CdLoc);
g_EquippedWeaponIds[1] * 14 + cdFile->loc, &g_CdLoc);
}
if (g_CdCallback == CdCallback_Monster) {
CdIntToPos(g_LoadOvlIdx * 11 + cdFile->loc, &g_CdLoc);

View File

@ -363,8 +363,8 @@ void HandleNowLoading(void) {
if (g_DemoMode == Demo_None) {
InitStatsAndGear(0);
}
D_8003C908.D_8003C90C = -1;
D_8003C908.D_8003C910 = -1;
g_EquippedWeaponIds[0] = -1;
g_EquippedWeaponIds[1] = -1;
g_Servant = 0;
g_ServantLoaded = 0;
if (g_StageId == STAGE_ST0 || g_PlayableCharacter != PLAYER_ALUCARD) {
@ -381,7 +381,7 @@ void HandleNowLoading(void) {
if (g_Status.equipment[ARMOR_SLOT] == ITEM_AXE_LORD_ARMOR) {
var_s0 = g_EquipDefs[0xD8].weaponId;
}
D_8003C908.D_8003C90C = var_s0;
g_EquippedWeaponIds[0] = var_s0;
}
g_GameStep++;
}
@ -392,7 +392,7 @@ void HandleNowLoading(void) {
break;
}
pfnWeapon = D_8017A000.LoadWeaponPalette;
pfnWeapon(g_EquipDefs[D_8003C908.D_8003C90C].palette);
pfnWeapon(g_EquipDefs[g_EquippedWeaponIds[0]].palette);
goto block_102;
} else {
var_s0 = g_EquipDefs[g_Status.equipment[LEFT_HAND_SLOT]].weaponId;
@ -406,8 +406,8 @@ void HandleNowLoading(void) {
break;
}
pfnWeapon = D_8017A000.LoadWeaponPalette;
D_8003C908.D_8003C90C = var_s0;
pfnWeapon(g_EquipDefs[D_8003C908.D_8003C90C].palette);
g_EquippedWeaponIds[0] = var_s0;
pfnWeapon(g_EquipDefs[g_EquippedWeaponIds[0]].palette);
var_s0 = g_EquipDefs[g_Status.equipment[RIGHT_HAND_SLOT]].weaponId;
if (var_s0 == 0xFF) {
var_s0 = 1;
@ -416,9 +416,9 @@ void HandleNowLoading(void) {
var_s0 = g_EquipDefs[0xD8].weaponId;
}
if (LoadFileSim(var_s0, 8) >= 0) {
D_8003C908.D_8003C910 = var_s0;
g_EquippedWeaponIds[1] = var_s0;
pfnWeapon = D_8017D000.LoadWeaponPalette;
pfnWeapon(g_EquipDefs[D_8003C908.D_8003C910].palette);
pfnWeapon(g_EquipDefs[g_EquippedWeaponIds[1]].palette);
block_102:
g_GameStep++;
}
@ -435,7 +435,7 @@ void HandleNowLoading(void) {
if (g_Status.equipment[ARMOR_SLOT] == ITEM_AXE_LORD_ARMOR) {
var_s0 = g_EquipDefs[0xD8].weaponId;
}
D_8003C908.D_8003C910 = var_s0;
g_EquippedWeaponIds[1] = var_s0;
}
g_GameStep++;
break;
@ -445,10 +445,10 @@ void HandleNowLoading(void) {
break;
}
pfnWeapon = D_8017D000.LoadWeaponPalette;
pfnWeapon(g_EquipDefs[D_8003C908.D_8003C910].palette);
pfnWeapon(g_EquipDefs[g_EquippedWeaponIds[1]].palette);
} else if (
(LoadFileSim(D_8003C908.D_8003C90C, SimFileType_Weapon0Chr) < 0) ||
(LoadFileSim(D_8003C908.D_8003C910, SimFileType_Weapon1Chr) < 0)) {
(LoadFileSim(g_EquippedWeaponIds[0], SimFileType_Weapon0Chr) < 0) ||
(LoadFileSim(g_EquippedWeaponIds[1], SimFileType_Weapon1Chr) < 0)) {
break;
}
CheckWeaponCombo();

View File

@ -2767,7 +2767,7 @@ bool LoadWeaponPrg(s32 equipIndex) {
}
weaponId = g_EquipDefs[equipId].weaponId;
if (weaponId == D_8003C90C[equipIndex] || weaponId == 0xFF) {
if (weaponId == g_EquippedWeaponIds[equipIndex] || weaponId == 0xFF) {
return 1;
}
@ -2783,7 +2783,7 @@ bool LoadWeaponPrg(s32 equipIndex) {
return 0;
}
}
D_8003C90C[equipIndex] = weaponId;
g_EquippedWeaponIds[equipIndex] = weaponId;
return 1;
}

View File

@ -93,12 +93,12 @@ s32 g_PrevScrollX;
s32 g_PrevScrollY;
s32 D_80073080;
s32 g_IsTimeAttackUnlocked;
Unkstruct_8003C908 D_8003C908;
bool D_8003C908;
s32 D_8003C100;
s32 D_800978B4;
u32 g_RoomCount;
char D_80097902[] = "dummy";
s32 D_8003C90C[2] = {0};
s32 g_EquippedWeaponIds[2] = {0};
MemcardInfo g_MemcardInfo[2];
s32 g_MemcardBlockRead;
s32 g_MemcardStep;