Fixes for delinking

Fixes delink failures in Action.obj and ActSequence.obj.

Some missing data types have been added to each corresponding header
file, and entries have been added to the symbol table to fix errors from
undefined types.  The mangling script has also been amended to handle
method pointers as they're currently imported into Ghidra (which are
missing the calling convention, and likely behind a typedef).
This commit is contained in:
KeybadeBlox 2026-05-02 20:34:05 -04:00
parent f50945266c
commit 20fecdd5fb
6 changed files with 74 additions and 8 deletions

View file

@ -29,8 +29,8 @@
"source_path": "src/JSRF/ActSequence.cpp"
},
"symbol_mappings": {
"?Exec0Default__jumptable@CActSequence@@3EA": "$L1709",
"?Exec0Default__jumptargets@CActSequence@@3PAPAXA": "$L1710"
"?Exec0Default__jumptable@CActSequence@@3EA": "$L1775",
"?Exec0Default__jumptargets@CActSequence@@3PAPAXA": "$L1776"
}
},
{

View file

@ -86,5 +86,10 @@ struct CActSequence : CActBase {
void ReturnFromStinger();
};
// Signature of methods in fSequenceMethods array, minus namespace
// Not to be used in the decompilation, but for Ghidra to parse in jsrf.h
// (we should work out a way to communicate to Ghidra that this is __thiscall)
typedef void ActSequenceMethod();
#endif

View file

@ -60,6 +60,10 @@ struct UnknownStatic13 {
void * unknown2;
void * unknown3;
};
struct UnknownStatic15 {
UnknownStatic15();
virtual ~UnknownStatic15();
};
struct UnknownStatic16 {
UnknownStatic16();
virtual ~UnknownStatic16();
@ -198,6 +202,48 @@ enum eGRAPHICSSETTINGTYPE {
eGRAPHICSSETTINGTYPE_OWARI = 0x5d,
eGRAPHICSSETTINGTYPE_COUNT = 0x5e,
};
#pragma pack(4)
struct CTimer {
unsigned unknown;
LARGE_INTEGER m_Frequency;
CTimer();
virtual ~CTimer();
};
enum eFILETYPE {
eFILETYPE_MISSIONBIN,
eFILETYPE_CURRENT_PLAYER,
eFILETYPE_PLAYER,
eFILETYPE_STAGE1,
eFILETYPE_STAGE2,
eFILETYPE_ENEMY,
eFILETYPE_STAGEOBJ,
eFILETYPE_CAROBJ,
eFILETYPE_TALKEVENT,
eFILETYPE_EVENT,
eFILETYPE_SPRNORM,
eFILETYPE_MISC,
eFILETYPE_PEOPLE,
eFILETYPE_CHARICON,
eFILETYPE_EFFECT,
eFILETYPE_MAP,
eFILETYPE_CURRENT_CHARICON_MAYBE,
eFILETYPE_MARKFONTORDEFAULT,
eFILETYPE_GARAGE,
eFILETYPE_MARK,
eFILETYPE_TITLE,
eFILETYPE_ENDING,
eFILETYPE_LOGO,
eFILETYPE_PROGRESS,
eFILETYPE_MARKTEX,
eFILETYPE_MARKPRESSORTEX,
eFILETYPE_MARKDEFAULT,
eFILETYPE_MISSIONDAT,
eFILETYPE_CACHETABLEENTRY,
eFILETYPE_CACHE,
eFILETYPE_DMCACHE,
eFILETYPE_NUM
};
enum eACTFLAG {