d_scope 100% (#1112)

* First version of d_scope, everything is matching on all version, probably missing a few inline on undocumented field that i did not manage to find

* Readd stuff previously deleted but badly tested

* Rename some fields and a few more inline

doesn't improve matching but i think it looks more genuine

* clean up syntax

* move d_scptyp enum and add forgotten inline

* build fix

* replace seStart call with proper enum
This commit is contained in:
Benjamin ROELANDT
2026-08-02 17:45:21 +02:00
committed by GitHub
parent 6b911411f0
commit dbc093a3cf
15 changed files with 1414 additions and 149 deletions
+10 -10
View File
@@ -516,7 +516,7 @@ fpc_ProcID fopMsgM_scopeMessageSet(u32 i_msgNo) {
if (pMsg == NULL) {
i_msgID = fpcM_ERROR_PROCESS_ID_e;
} else {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e) && dComIfGp_getScopeMesgStatus() == fopMsgStts_UNKB_e) {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e) && dComIfGp_getScopeMesgStatus() == fopMsgStts_SCOPE_ACTIVE_e) {
dComIfGp_setScopeMesgStatus(fopMsgStts_BOX_OPENING_e);
}
@@ -884,12 +884,12 @@ bool fopMsgM_nextMsgFlagCheck() {
/* 8002C5BC-8002C624 .text fopMsgM_getScopeMode__Fv */
bool fopMsgM_getScopeMode() {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e) && dComIfGp_getScopeMesgStatus() == fopMsgStts_UNKB_e && !dComIfGp_event_runCheck()) {
dComIfGp_setScopeMesgStatus(fopMsgStts_UNKD_e);
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e) && dComIfGp_getScopeMesgStatus() == fopMsgStts_SCOPE_ACTIVE_e && !dComIfGp_event_runCheck()) {
dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_WAIT_e);
return true;
}
if (dComIfGp_getScopeMesgStatus() == fopMsgStts_BOX_CLOSING_e) {
dComIfGp_setMesgStatus(fopMsgStts_UNKD_e);
dComIfGp_setMesgStatus(fopMsgStts_SCOPE_WAIT_e);
return true;
}
@@ -933,8 +933,8 @@ bool fopMsgM_checkMessageSend() {
/* 8002C684-8002C6B0 .text fopMsgM_releaseScopeMode__Fv */
bool fopMsgM_releaseScopeMode() {
if (dComIfGp_getScopeMesgStatus() == fopMsgStts_UNKD_e) {
dComIfGp_setScopeMesgStatus(fopMsgStts_UNKB_e);
if (dComIfGp_getScopeMesgStatus() == fopMsgStts_SCOPE_WAIT_e) {
dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e);
return true;
}
@@ -1613,7 +1613,7 @@ fopMsgM_msgDataProc_c::fopMsgM_msgDataProc_c() {
rubyFontSize = 0;
field_0x150 = 0;
field_0x154 = 0;
field_0x158 = 0;
waitTimer = 0;
spaceTimer = 1;
sendSpeed = 1;
field_0x164 = 0;
@@ -1699,7 +1699,7 @@ void fopMsgM_msgDataProc_c::dataInit() {
rubyFontSize = 0;
field_0x150 = 0;
field_0x154 = 0;
field_0x158 = 0;
waitTimer = 0;
spaceTimer = 1;
sendSpeed = 1;
field_0x164 = 0;
@@ -2370,8 +2370,8 @@ void fopMsgM_msgDataProc_c::stringSet() {
field_0x29A = 0;
count = bmgData[count + 1];
} else if (temp[2] == 0 && temp[3] == 0 && temp[4] == 3) {
field_0x158 = temp[5] << 8;
field_0x158 |= bmgData[count + 6];
waitTimer = temp[5] << 8;
waitTimer |= bmgData[count + 6];
setAutoSendFlagOn();
count = bmgData[count + 1];
}