diff --git a/game_re/gh_types.h b/game_re/gh_types.h index deb463e6..55a29810 100644 --- a/game_re/gh_types.h +++ b/game_re/gh_types.h @@ -3,412 +3,180 @@ // AUTO-GENERATED FILE #include -typedef struct _ExtraSoundParam _ExtraSoundParam, *P_ExtraSoundParam; - -struct _ExtraSoundParam { - RollOffParam stRollOff; - SwitchParam stSwitch; +typedef struct tdstMorphChannelList_ *CHN_tdxHandleToMorphElement; +typedef struct TMR_tdstTimerCount TMR_tdstTimerCount, *PTMR_tdstTimerCount; +struct TMR_tdstTimerCount { + ulong ulLowPart; + ulong ulHighPart; }; - -typedef struct _MicroLink _MicroLink, *P_MicroLink; - -struct _MicroLink { - long lId; - SndBool bLinked; -}; - -typedef struct _MicroParam _MicroParam, *P_MicroParam; - -struct _MicroParam { - SndVector pos; - SndVector vit; - SndVector dirnor; - SndVector dirtan; -}; - typedef struct _RollOffParam _RollOffParam, *P_RollOffParam; - struct _RollOffParam { SndReal rDistSatur; SndReal rDistBackGround; }; - -typedef struct _SampleParam _SampleParam, *P_SampleParam; - -struct _SampleParam { - SndReal Freq; - uchar ucVol; - uchar ucPan; - uchar ucSpace; - uchar ucReverb; -}; - -typedef struct _SND_tdstBlockEvent _SND_tdstBlockEvent, *P_SND_tdstBlockEvent; - -struct _SND_tdstBlockEvent { -}; - -typedef struct _SND_tdstCallback _SND_tdstCallback, *P_SND_tdstCallback; - -struct _SND_tdstCallback { - SND_tduTypeCallback eType; - union _union_2482 uCallback; - union _union_2483 uInfo; -}; - -typedef struct _SND_tdstFormat _SND_tdstFormat, *P_SND_tdstFormat; - -struct _SND_tdstFormat { - tdeTypeZip eZip; - union _union_2479 uFormat; -}; - -typedef struct _SND_tdstStackBuffer _SND_tdstStackBuffer, *P_SND_tdstStackBuffer; - -struct _SND_tdstStackBuffer { - ulong ulNbSamples; - void *ptrData; -}; - -typedef struct _SndVector _SndVector, *P_SndVector; - -struct _SndVector { - SndReal x; - SndReal y; - SndReal z; -}; - -typedef struct _SoundParam _SoundParam, *P_SoundParam; - -struct _SoundParam { - SndReal Freq; - uchar ucVol; - uchar ucPan; - uchar ucSpace; - uchar ucReverb; - SndVector Pos; - SndVector Vit; - int iFlags; - int iNbLinks; - MicroLink astMicro[2]; - ExtraSoundParam xExtra; -}; - typedef struct _SwitchParam _SwitchParam, *P_SwitchParam; - struct _SwitchParam { long lObjectType; long lObjectId; }; - -typedef struct _tdstAllRetChannelSound _tdstAllRetChannelSound, *P_tdstAllRetChannelSound; - -struct _tdstAllRetChannelSound { - td_pfn_rRetChannelCoord X; - td_pfn_rRetChannelCoord Y; - td_pfn_rRetChannelCoord Z; - td_pfn_rRetChannelCoord VX; - td_pfn_rRetChannelCoord VY; - td_pfn_rRetChannelCoord VZ; - td_pfn_bRetChannelActive Active; - SndBool bAbsCoord; +typedef struct _ExtraSoundParam _ExtraSoundParam, *P_ExtraSoundParam; +struct _ExtraSoundParam { + struct RollOffParam stRollOff; + struct SwitchParam stSwitch; }; - -typedef struct _tdstAllRetMicroSound _tdstAllRetMicroSound, *P_tdstAllRetMicroSound; - -struct _tdstAllRetMicroSound { - td_pfn_rRetSoundCoord X; - td_pfn_rRetSoundCoord Y; - td_pfn_rRetSoundCoord Z; - td_pfn_rRetSoundCoord VX; - td_pfn_rRetSoundCoord VY; - td_pfn_rRetSoundCoord VZ; - td_pfn_rRetSoundCoord DNX; - td_pfn_rRetSoundCoord DNY; - td_pfn_rRetSoundCoord DNZ; - td_pfn_rRetSoundCoord DTX; - td_pfn_rRetSoundCoord DTY; - td_pfn_rRetSoundCoord DTZ; - td_pfn_lRetSoundLong Filtre; +typedef struct _ExtraSoundParam ExtraSoundParam; +typedef struct GEO_tdstColor GEO_tdstColor, *PGEO_tdstColor; +struct GEO_tdstColor { + GEO_tdxColorValue xR; + GEO_tdxColorValue xG; + GEO_tdxColorValue xB; + GEO_tdxColorValue xA; }; - -typedef struct _tdstAllRetObjectSound _tdstAllRetObjectSound, *P_tdstAllRetObjectSound; - -struct _tdstAllRetObjectSound { - td_pfn_rRetSoundCoord X; - td_pfn_rRetSoundCoord Y; - td_pfn_rRetSoundCoord Z; - td_pfn_rRetSoundCoord VX; - td_pfn_rRetSoundCoord VY; - td_pfn_rRetSoundCoord VZ; - td_pfn_ucRetSoundMidi REVERB; - td_pfn_vRetSoundExtraCoef ExtraCoef; - td_pfn_lRetSoundSwitch Switch; - td_pfn_bRetSoundLink MicroLink; - td_pfn_vRetSoundVector VectorI; - td_pfn_vRetSoundVector VectorJ; - td_pfn_vRetSoundVector VectorK; - void *Unk0; - void *InfoType; +typedef struct MTH3_Vector MTH3_Vector, *PMTH3_Vector; +struct MTH3_Vector { + float xX; + float xY; + float xZ; }; - -typedef struct _tdstBlockResourceDisk _tdstBlockResourceDisk, *P_tdstBlockResourceDisk; - -struct _tdstBlockResourceDisk { +typedef struct MTH3D_Matrix MTH3D_Matrix, *PMTH3D_Matrix; +struct MTH3D_Matrix { + struct MTH3_Vector stCol_0; + struct MTH3_Vector stCol_1; + struct MTH3_Vector stCol_2; }; - -typedef struct _tdstBlockResourceMem _tdstBlockResourceMem, *P_tdstBlockResourceMem; - -struct _tdstBlockResourceMem { +typedef struct POS_stCompletePosition POS_stCompletePosition, *PPOS_stCompletePosition; +struct POS_stCompletePosition { + ulong ulType; + struct MTH3_Vector stTranslationVector; + struct MTH3D_Matrix stRotationMatrix; + struct MTH3D_Matrix stTransformMatrix; }; - +typedef struct GLI_tdstZBufferForLight GLI_tdstZBufferForLight, *PGLI_tdstZBufferForLight; +struct GLI_tdstZBufferForLight { + long lSizeX; + long lSizeY; + float xCoefX; + float xCoefY; + float *p_xZBufferMap; + float *p_xMiddleZBufferMap; +}; +typedef struct GLI_tdstLight GLI_tdstLight, *PGLI_tdstLight; +struct GLI_tdstLight { + uchar bOnOff; + uchar bThisLightIsZBuffered; + long lTypeOfLight; + float xFar; + float xNear; + float xLittleAlpha; + float xBigAlpha; + float xLittleTangent; + float xBigTangent; + struct POS_stCompletePosition stMatrix; + struct GLI_tdstZBufferForLight stZBuffer; + struct GEO_tdstColor stColor; + ACP_tdxBool bValid; + uchar ucObjectPainted; + ACP_tdxBool bIsPainting; + uchar ucIsAlpha; + struct MTH3_Vector stInter_Min_Pos; + struct MTH3_Vector stExter_Min_Pos; + struct MTH3_Vector stInter_Max_Pos; + struct MTH3_Vector stExter_Max_Pos; + struct MTH3_Vector stCenterBox; + float xRadius; + float xIntensity_Min; + float xIntensity_Max; + struct GEO_tdstColor stBackgroundColor; +}; +typedef tdfn_ulSizeofHandleFunction tdfn_ulSizeofHandleFunction; +typedef struct CLSID *LPCLSID; +typedef struct _tdstTypeSampleDisk _tdstTypeSampleDisk, *P_tdstTypeSampleDisk; +struct _tdstTypeSampleDisk { +}; +typedef struct _tdstTypeSampleDisk tdstTypeSampleDisk; typedef struct _tdstFormatPCM _tdstFormatPCM, *P_tdstFormatPCM; - struct _tdstFormatPCM { ulong ulNbSamples; ushort uwResolution; ushort uwNbChannels; ulong ulFreq; }; - -typedef struct _tdstInfoTrackDisk _tdstInfoTrackDisk, *P_tdstInfoTrackDisk; - -struct _tdstInfoTrackDisk { +typedef struct tdstTimerCount tdstTimerCount, *PtdstTimerCount; +struct tdstTimerCount { + ulong ulLowPart; + ulong ulHighPart; }; - -typedef struct _tdstInfoTrackList _tdstInfoTrackList, *P_tdstInfoTrackList; - -struct _tdstInfoTrackList { +typedef struct tdstChannelInfo_ tdstChannelInfo_, *PtdstChannelInfo_; +struct tdstChannelInfo_ { + ulong ulThreadId; + uchar ucGroupId; }; - -typedef struct _tdstInfoTrackMem _tdstInfoTrackMem, *P_tdstInfoTrackMem; - -struct _tdstInfoTrackMem { +typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree_, *PtdstInformationHeaderOfBlockWithoutFree_; +struct tdstInformationHeaderOfBlockWithoutFree_ { + uchar ucBoundededHeaderSize; + uchar ucAlignment; + uchar ucMode; }; - -typedef struct _tdstMidiMemory _tdstMidiMemory, *P_tdstMidiMemory; - -struct _tdstMidiMemory { +typedef struct tdstChannelActivationStateList_ *CHN_tdxHandleToCASElement; +typedef struct _MicroLink _MicroLink, *P_MicroLink; +struct _MicroLink { + long lId; + SndBool bLinked; }; - -typedef struct _tdstMidiStreaming _tdstMidiStreaming, *P_tdstMidiStreaming; - -struct _tdstMidiStreaming { +typedef struct _SndVector _SndVector, *P_SndVector; +struct _SndVector { + SndReal x; + SndReal y; + SndReal z; }; - -typedef struct _tdstRandomElement _tdstRandomElement, *P_tdstRandomElement; - -struct _tdstRandomElement { +typedef struct _SoundParam _SoundParam, *P_SoundParam; +struct _SoundParam { + SndReal Freq; + uchar ucVol; + uchar ucPan; + uchar ucSpace; + uchar ucReverb; + struct SndVector Pos; + struct SndVector Vit; + int iFlags; + int iNbLinks; + struct MicroLink astMicro[2]; + struct ExtraSoundParam xExtra; }; - -typedef struct _tdstRangeSplitDisk _tdstRangeSplitDisk, *P_tdstRangeSplitDisk; - -struct _tdstRangeSplitDisk { +typedef struct FIL_FileNameListElement FIL_FileNameListElement, *PFIL_FileNameListElement; +struct FIL_FileNameListElement { + struct FIL_FileNameListElement *hNextBrotherDyn; + struct FIL_FileNameListElement *hPrevBrotherDyn; + struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn *hFatherDyn; + char *szFileName; }; - -typedef struct _tdstRangeSplitListDisk _tdstRangeSplitListDisk, *P_tdstRangeSplitListDisk; - -struct _tdstRangeSplitListDisk { +typedef struct SND_astruct_4 SND_astruct_4, *PSND_astruct_4; +struct SND_astruct_4 { + int *field0_0x0; + struct SND_astruct_4 *next; + int *field2_0x8; + int *field3_0xc; + int *field4_0x10; + int *callback; /* callback? */ + int *field6_0x18; + int *field7_0x1c; }; - -typedef struct _tdstRangeSplitListMem _tdstRangeSplitListMem, *P_tdstRangeSplitListMem; - -struct _tdstRangeSplitListMem { -}; - -typedef struct _tdstRangeSplitMem _tdstRangeSplitMem, *P_tdstRangeSplitMem; - -struct _tdstRangeSplitMem { -}; - -typedef struct _tdstRefRes _tdstRefRes, *P_tdstRefRes; - -struct _tdstRefRes { -}; - -typedef struct _tdstRefResList _tdstRefResList, *P_tdstRefResList; - -struct _tdstRefResList { -}; - -typedef struct _tdstSampleMemory _tdstSampleMemory, *P_tdstSampleMemory; - -struct _tdstSampleMemory { -}; - -typedef struct _tdstSampleStreaming _tdstSampleStreaming, *P_tdstSampleStreaming; - -struct _tdstSampleStreaming { -}; - -typedef struct _tdstSndBankDescriptor _tdstSndBankDescriptor, *P_tdstSndBankDescriptor; - -struct _tdstSndBankDescriptor { -}; - -typedef struct _tdstSndBankHead _tdstSndBankHead, *P_tdstSndBankHead; - -struct _tdstSndBankHead { -}; - -typedef struct _tdstSndBankHeader _tdstSndBankHeader, *P_tdstSndBankHeader; - -struct _tdstSndBankHeader { -}; - -typedef struct _tdstSndPolyEvent _tdstSndPolyEvent, *P_tdstSndPolyEvent; - -struct _tdstSndPolyEvent { -}; - -typedef struct _tdstSndPolyResource _tdstSndPolyResource, *P_tdstSndPolyResource; - -struct _tdstSndPolyResource { -}; - -typedef struct _tdstSwitchElement _tdstSwitchElement, *P_tdstSwitchElement; - -struct _tdstSwitchElement { -}; - -typedef struct _tdstSwitchList _tdstSwitchList, *P_tdstSwitchList; - -struct _tdstSwitchList { -}; - -typedef struct _tdstThemeBridge _tdstThemeBridge, *P_tdstThemeBridge; - -struct _tdstThemeBridge { -}; - -typedef struct _tdstThemePart _tdstThemePart, *P_tdstThemePart; - -struct _tdstThemePart { -}; - -typedef struct _tdstThemePartOutro _tdstThemePartOutro, *P_tdstThemePartOutro; - -struct _tdstThemePartOutro { -}; - -typedef struct _tdstTimer _tdstTimer, *P_tdstTimer; - -struct _tdstTimer { - short m_wTimerType; - short m_wTimerState; - struct TMR_tdstTimerCount m_stTimerCount_InitValue; - struct TMR_tdstTimerCount m_stTimerCount_LastValue; - struct TMR_tdstTimerCount m_stTimerCount_TotalValue; - ulong m_ulEventId; - td_p_fn_vTimerEventCallback m_p_fn_vEventCallback; -}; - -typedef struct _tdstTypeCD _tdstTypeCD, *P_tdstTypeCD; - -struct _tdstTypeCD { -}; - typedef struct _tdstTypeMidiDisk _tdstTypeMidiDisk, *P_tdstTypeMidiDisk; - struct _tdstTypeMidiDisk { }; - -typedef struct _tdstTypeMidiMem _tdstTypeMidiMem, *P_tdstTypeMidiMem; - -struct _tdstTypeMidiMem { +typedef struct _tdstTypeMidiDisk tdstTypeMidiDisk; +typedef struct tdstFamilyList_ *tdxHandleToFamilyList; +typedef struct tdstState_ *tdxHandleToState; +typedef struct GUID *LPGUID; +typedef struct tdstWaterStreakEffect_ tdstWaterStreakEffect_, *PtdstWaterStreakEffect_; +struct tdstWaterStreakEffect_ { }; - -typedef struct _tdstTypeRandomDisk _tdstTypeRandomDisk, *P_tdstTypeRandomDisk; - -struct _tdstTypeRandomDisk { +typedef struct _tdstRangeSplitListMem _tdstRangeSplitListMem, *P_tdstRangeSplitListMem; +struct _tdstRangeSplitListMem { }; - -typedef struct _tdstTypeRandomMem _tdstTypeRandomMem, *P_tdstTypeRandomMem; - -struct _tdstTypeRandomMem { -}; - -typedef struct _tdstTypeSampleDisk _tdstTypeSampleDisk, *P_tdstTypeSampleDisk; - -struct _tdstTypeSampleDisk { -}; - -typedef struct _tdstTypeSampleMem _tdstTypeSampleMem, *P_tdstTypeSampleMem; - -struct _tdstTypeSampleMem { -}; - -typedef struct _tdstTypeSequenceDisk _tdstTypeSequenceDisk, *P_tdstTypeSequenceDisk; - -struct _tdstTypeSequenceDisk { -}; - -typedef struct _tdstTypeSequenceMem _tdstTypeSequenceMem, *P_tdstTypeSequenceMem; - -struct _tdstTypeSequenceMem { -}; - -typedef struct _tdstTypeSplitDisk _tdstTypeSplitDisk, *P_tdstTypeSplitDisk; - -struct _tdstTypeSplitDisk { -}; - -typedef struct _tdstTypeSplitMem _tdstTypeSplitMem, *P_tdstTypeSplitMem; - -struct _tdstTypeSplitMem { -}; - -typedef struct _tdstTypeSwitchDisk _tdstTypeSwitchDisk, *P_tdstTypeSwitchDisk; - -struct _tdstTypeSwitchDisk { -}; - -typedef struct _tdstTypeSwitchMem _tdstTypeSwitchMem, *P_tdstTypeSwitchMem; - -struct _tdstTypeSwitchMem { -}; - -typedef struct _tdstTypeThemeDisk _tdstTypeThemeDisk, *P_tdstTypeThemeDisk; - -struct _tdstTypeThemeDisk { -}; - -typedef struct _tdstTypeThemeMem _tdstTypeThemeMem, *P_tdstTypeThemeMem; - -struct _tdstTypeThemeMem { -}; - -typedef struct AI_tdstMind_ AI_tdstMind_, *PAI_tdstMind_; - -struct AI_tdstMind_ { -}; - -typedef struct Anim3d Anim3d, *PAnim3d; - -struct Anim3d { - struct Frame3d *d_stFrame3d; - uchar ucNumberOfFrames; - uchar ucFrameRate; - uchar ucMaxNumberOfElements; - struct Event *d_stAnimEvent; - uchar ucNumberOfEvents; - struct POS_stCompletePosition stOffsetMatrix; - uchar bCompressedAnim; - struct AnimLights *p_stLights; - struct stMorphData *d_stMorphDataArray; - ushort uwNumOfA3dGENERAL; -}; - -typedef struct AnimLights AnimLights, *PAnimLights; - -struct AnimLights { - void **a_p_stLights; - ushort uwNumberOfLights; - void *a_hLightsInSector; -}; - +typedef struct _tdstRangeSplitListMem tdstRangeSplitListMem; +typedef void *MS_tdxHandleToMSLight; typedef struct astruct_2 astruct_2, *Pastruct_2; - struct astruct_2 { uint *field0_0x0; uint *field1_0x4; @@ -426,9 +194,7 @@ struct astruct_2 { undefined field13_0x19; byte field14_0x1a; }; - typedef struct astruct_3 astruct_3, *Pastruct_3; - struct astruct_3 { undefined field0_0x0; undefined field1_0x1; @@ -448,416 +214,278 @@ struct astruct_3 { undefined field15_0xf; int *binkFrameMemory; }; - +typedef struct tdstObjectsTableElement_ tdstObjectsTableElement_, *PtdstObjectsTableElement_; +struct tdstObjectsTableElement_ { +}; +typedef struct SND_Request3 SND_Request3, *PSND_Request3; +struct SND_Request3 { + undefined4 g_sndReq0; + undefined4 g_sndReq1; + undefined4 g_sndReq2; +}; +typedef struct IPT_tdstKeyWordElement_ IPT_tdstKeyWordElement_, *PIPT_tdstKeyWordElement_; +struct IPT_tdstKeyWordElement_ { + struct IPT_tdxHandleToKeyWordElement hNextBrotherDyn; + struct IPT_tdxHandleToKeyWordElement hPrevBrotherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn *hFatherDyn; + union tdu_KeyWordElementUnion_ u_ElementUnion; + uchar ucResult; + uchar ucMinCounterInput; + uchar ucMaxCounterInput; +}; +typedef struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn, *PLST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn; +struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn { + struct IPT_tdxHandleToKeyWordElement hFirstElementDyn; + struct IPT_tdxHandleToKeyWordElement hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct IPT_tdstEntryElement_ IPT_tdstEntryElement_, *PIPT_tdstEntryElement_; +struct IPT_tdstEntryElement_ { + struct IPT_tdxHandleToEntryElement hNextBrotherDyn; + struct IPT_tdxHandleToEntryElement hPrevBrotherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn *hFatherDyn; + struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn hKeyWordList; + ulong ulNumberOfKeyWordElement; + struct IPT_tdstKeyWordElement_ *d_stKeyWordElementArray; + char *p_szActionName; + char *p_szEntryName; + long lState; + float xAnalogicValue; + uchar bIsActivate; +}; +typedef struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn, *PLST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn; +struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn { + struct IPT_tdxHandleToEntryElement hFirstElementDyn; + struct IPT_tdxHandleToEntryElement hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct _tdstRefResList _tdstRefResList, *P_tdstRefResList; +struct _tdstRefResList { +}; +typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree; +typedef struct r3_graphics_data r3_graphics_data, *Pr3_graphics_data; +struct r3_graphics_data { + int field0_0x0; + int field1_0x4; + uint field2_0x8; + uint field3_0xc; + float field4_0x10; + float field5_0x14; + float field6_0x18; + int field7_0x1c; + float field8_0x20; + float field9_0x24; + float field10_0x28; + int field11_0x2c; + int field12_0x30; + int field13_0x34; + int field14_0x38; + undefined field15_0x3c; + undefined field16_0x3d; + undefined field17_0x3e; + undefined field18_0x3f; + int field19_0x40; + int field20_0x44; + int field21_0x48; + undefined field22_0x4c; + undefined field23_0x4d; + undefined field24_0x4e; + undefined field25_0x4f; + float field26_0x50; + float field27_0x54; + uint field28_0x58; + uint field29_0x5c; + uint field30_0x60; + struct IDirect3DVertexBuffer8 **field31_0x64; + undefined field32_0x68; + undefined field33_0x69; + undefined field34_0x6a; + undefined field35_0x6b; + int field36_0x6c; + int *field37_0x70; + float **field38_0x74; + int field39_0x78; + undefined field40_0x7c; + undefined field41_0x7d; + undefined field42_0x7e; + undefined field43_0x7f; + undefined field44_0x80; + undefined field45_0x81; + undefined field46_0x82; + undefined field47_0x83; + undefined field48_0x84; + undefined field49_0x85; + undefined field50_0x86; + undefined field51_0x87; + undefined field52_0x88; + undefined field53_0x89; + undefined field54_0x8a; + undefined field55_0x8b; + undefined field56_0x8c; + undefined field57_0x8d; + undefined field58_0x8e; + undefined field59_0x8f; + undefined field60_0x90; + undefined field61_0x91; + undefined field62_0x92; + undefined field63_0x93; + undefined field64_0x94; + undefined field65_0x95; + undefined field66_0x96; + undefined field67_0x97; + undefined field68_0x98; + undefined field69_0x99; + undefined field70_0x9a; + undefined field71_0x9b; + undefined field72_0x9c; + undefined field73_0x9d; + undefined field74_0x9e; + undefined field75_0x9f; + undefined field76_0xa0; + undefined field77_0xa1; + undefined field78_0xa2; + undefined field79_0xa3; + undefined field80_0xa4; + undefined field81_0xa5; + undefined field82_0xa6; + undefined field83_0xa7; + undefined field84_0xa8; + undefined field85_0xa9; + undefined field86_0xaa; + undefined field87_0xab; + undefined field88_0xac; + undefined field89_0xad; + undefined field90_0xae; + undefined field91_0xaf; + undefined field92_0xb0; + undefined field93_0xb1; + undefined field94_0xb2; + undefined field95_0xb3; + undefined field96_0xb4; + undefined field97_0xb5; + undefined field98_0xb6; + undefined field99_0xb7; + undefined field100_0xb8; + undefined field101_0xb9; + undefined field102_0xba; + undefined field103_0xbb; + undefined field104_0xbc; + undefined field105_0xbd; + undefined field106_0xbe; + undefined field107_0xbf; + undefined field108_0xc0; + undefined field109_0xc1; + undefined field110_0xc2; + undefined field111_0xc3; + undefined field112_0xc4; + undefined field113_0xc5; + undefined field114_0xc6; + undefined field115_0xc7; + undefined field116_0xc8; + undefined field117_0xc9; + undefined field118_0xca; + undefined field119_0xcb; + undefined field120_0xcc; + undefined field121_0xcd; + undefined field122_0xce; + undefined field123_0xcf; + undefined field124_0xd0; + undefined field125_0xd1; + undefined field126_0xd2; + undefined field127_0xd3; + undefined field128_0xd4; + undefined field129_0xd5; + undefined field130_0xd6; + undefined field131_0xd7; + undefined field132_0xd8; + undefined field133_0xd9; + undefined field134_0xda; + undefined field135_0xdb; + undefined field136_0xdc; + undefined field137_0xdd; + undefined field138_0xde; + undefined field139_0xdf; + undefined field140_0xe0; + undefined field141_0xe1; + undefined field142_0xe2; + undefined field143_0xe3; + undefined field144_0xe4; + undefined field145_0xe5; + undefined field146_0xe6; + undefined field147_0xe7; + undefined field148_0xe8; + undefined field149_0xe9; + undefined field150_0xea; + undefined field151_0xeb; + int numVertices; + int field153_0xf0; + int field154_0xf4; + struct IDirect3DVertexBuffer8 *baseVertexBuffer; + struct IDirect3DVertexBuffer8 *texVertexBufer; + struct IDirect3DIndexBuffer8 *indexBuffer; + float *lockedVertexBuffer; +}; +typedef struct tdstObjectTypeElement_ tdstObjectTypeElement_, *PtdstObjectTypeElement_; +struct tdstObjectTypeElement_ { + struct ObjectTypeElementHandle hNextBrotherDyn; + struct ObjectTypeElementHandle hPrevBrotherDyn; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn *hFatherDyn; + char *szName; + uchar ucElementPriority; +}; +typedef struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn, *PLST2_tdstAnchorTotdhHandleToObjectTypeElementDyn; +struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn { + struct ObjectTypeElementHandle hFirstElementDyn; + struct ObjectTypeElementHandle hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct tdstObjectType_ tdstObjectType_, *PtdstObjectType_; +struct tdstObjectType_ { + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hFamilyType; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hModelType; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hPersonalType; +}; +typedef struct tdstObjectType_ tdstObjectType; +typedef short GLD_ViewportHandle; +typedef struct tdstChannelActivationStateList_ tdstChannelActivationStateList_, *PtdstChannelActivationStateList_; +struct tdstChannelActivationStateList_ { +}; typedef struct AutoClass1 AutoClass1, *PAutoClass1; - struct AutoClass1 { /* PlaceHolder Class Structure */ int *field0_0x0; }; - -typedef struct BinkInner0 BinkInner0, *PBinkInner0; - -struct BinkInner0 { - int unk_neg1; - undefined *field1_0x4; - float field2_0x8; - float field3_0xc; - undefined field4_0x10; - undefined field5_0x11; - undefined field6_0x12; - undefined field7_0x13; - float field8_0x14; - float field9_0x18; - float field10_0x1c; - undefined field11_0x20; - undefined field12_0x21; - undefined field13_0x22; - undefined field14_0x23; - undefined field15_0x24; - undefined field16_0x25; - undefined field17_0x26; - undefined field18_0x27; - undefined field19_0x28; - undefined field20_0x29; - undefined field21_0x2a; - undefined field22_0x2b; - undefined field23_0x2c; - undefined field24_0x2d; - undefined field25_0x2e; - undefined field26_0x2f; - undefined field27_0x30; - undefined field28_0x31; - undefined field29_0x32; - undefined field30_0x33; - undefined field31_0x34; - undefined field32_0x35; - undefined field33_0x36; - undefined field34_0x37; - undefined field35_0x38; - undefined field36_0x39; - undefined field37_0x3a; - undefined field38_0x3b; - undefined field39_0x3c; - undefined field40_0x3d; - undefined field41_0x3e; - undefined field42_0x3f; - undefined field43_0x40; - undefined field44_0x41; - undefined field45_0x42; - undefined field46_0x43; - undefined field47_0x44; - undefined field48_0x45; - undefined field49_0x46; - undefined field50_0x47; - undefined field51_0x48; - undefined field52_0x49; - undefined field53_0x4a; - undefined field54_0x4b; - undefined field55_0x4c; - undefined field56_0x4d; - undefined field57_0x4e; - undefined field58_0x4f; - undefined field59_0x50; - undefined field60_0x51; - undefined field61_0x52; - undefined field62_0x53; - undefined field63_0x54; - undefined field64_0x55; - undefined field65_0x56; - undefined field66_0x57; - undefined field67_0x58; - undefined field68_0x59; - undefined field69_0x5a; - undefined field70_0x5b; - undefined field71_0x5c; - undefined field72_0x5d; - undefined field73_0x5e; - undefined field74_0x5f; - undefined field75_0x60; - undefined field76_0x61; - undefined field77_0x62; - undefined field78_0x63; - undefined field79_0x64; - undefined field80_0x65; - undefined field81_0x66; - undefined field82_0x67; - undefined field83_0x68; - undefined field84_0x69; - undefined field85_0x6a; - undefined field86_0x6b; - undefined field87_0x6c; - undefined field88_0x6d; - undefined field89_0x6e; - undefined field90_0x6f; - undefined field91_0x70; - undefined field92_0x71; - undefined field93_0x72; - undefined field94_0x73; - undefined field95_0x74; - undefined field96_0x75; - undefined field97_0x76; - undefined field98_0x77; - undefined field99_0x78; - undefined field100_0x79; - undefined field101_0x7a; - undefined field102_0x7b; - undefined field103_0x7c; - undefined field104_0x7d; - undefined field105_0x7e; - undefined field106_0x7f; - undefined field107_0x80; - undefined field108_0x81; - undefined field109_0x82; - undefined field110_0x83; - undefined field111_0x84; - undefined field112_0x85; - undefined field113_0x86; - undefined field114_0x87; - undefined field115_0x88; - undefined field116_0x89; - undefined field117_0x8a; - undefined field118_0x8b; - undefined field119_0x8c; - undefined field120_0x8d; - undefined field121_0x8e; - undefined field122_0x8f; - undefined field123_0x90; - undefined field124_0x91; - undefined field125_0x92; - undefined field126_0x93; - undefined field127_0x94; - undefined field128_0x95; - undefined field129_0x96; - undefined field130_0x97; - undefined field131_0x98; - undefined field132_0x99; - undefined field133_0x9a; - undefined field134_0x9b; - undefined field135_0x9c; - undefined field136_0x9d; - undefined field137_0x9e; - undefined field138_0x9f; - undefined field139_0xa0; - undefined field140_0xa1; - undefined field141_0xa2; - undefined field142_0xa3; - undefined field143_0xa4; - undefined field144_0xa5; - undefined field145_0xa6; - undefined field146_0xa7; - undefined field147_0xa8; - undefined field148_0xa9; - undefined field149_0xaa; - undefined field150_0xab; - undefined field151_0xac; - undefined field152_0xad; - undefined field153_0xae; - undefined field154_0xaf; - undefined field155_0xb0; - undefined field156_0xb1; - undefined field157_0xb2; - undefined field158_0xb3; - undefined field159_0xb4; - undefined field160_0xb5; - undefined field161_0xb6; - undefined field162_0xb7; - undefined field163_0xb8; - undefined field164_0xb9; - undefined field165_0xba; - undefined field166_0xbb; - undefined field167_0xbc; - undefined field168_0xbd; - undefined field169_0xbe; - undefined field170_0xbf; - undefined field171_0xc0; - undefined field172_0xc1; - undefined field173_0xc2; - undefined field174_0xc3; - undefined field175_0xc4; - undefined field176_0xc5; - undefined field177_0xc6; - undefined field178_0xc7; - undefined field179_0xc8; - undefined field180_0xc9; - undefined field181_0xca; - undefined field182_0xcb; - undefined field183_0xcc; - undefined field184_0xcd; - undefined field185_0xce; - undefined field186_0xcf; - undefined field187_0xd0; - undefined field188_0xd1; - undefined field189_0xd2; - undefined field190_0xd3; - undefined field191_0xd4; - undefined field192_0xd5; - undefined field193_0xd6; - undefined field194_0xd7; - undefined field195_0xd8; - undefined field196_0xd9; - undefined field197_0xda; - undefined field198_0xdb; - undefined field199_0xdc; - undefined field200_0xdd; - undefined field201_0xde; - undefined field202_0xdf; - undefined field203_0xe0; - undefined field204_0xe1; - undefined field205_0xe2; - undefined field206_0xe3; - undefined field207_0xe4; - undefined field208_0xe5; - undefined field209_0xe6; - undefined field210_0xe7; - undefined field211_0xe8; - undefined field212_0xe9; - undefined field213_0xea; - undefined field214_0xeb; - undefined field215_0xec; - undefined field216_0xed; - undefined field217_0xee; - undefined field218_0xef; - undefined field219_0xf0; - undefined field220_0xf1; - undefined field221_0xf2; - undefined field222_0xf3; - undefined field223_0xf4; - undefined field224_0xf5; - undefined field225_0xf6; - undefined field226_0xf7; - undefined field227_0xf8; - undefined field228_0xf9; - undefined field229_0xfa; - undefined field230_0xfb; - undefined field231_0xfc; - undefined field232_0xfd; - undefined field233_0xfe; - undefined field234_0xff; - undefined field235_0x100; - undefined field236_0x101; - undefined field237_0x102; - undefined field238_0x103; - undefined field239_0x104; - undefined field240_0x105; - undefined field241_0x106; - undefined field242_0x107; - undefined field243_0x108; - undefined field244_0x109; - undefined field245_0x10a; - undefined field246_0x10b; - undefined field247_0x10c; - undefined field248_0x10d; - undefined field249_0x10e; - undefined field250_0x10f; - undefined field251_0x110; - undefined field252_0x111; - undefined field253_0x112; - undefined field254_0x113; - undefined field255_0x114; - undefined field256_0x115; - undefined field257_0x116; - undefined field258_0x117; - undefined field259_0x118; - undefined field260_0x119; - undefined field261_0x11a; - undefined field262_0x11b; - undefined field263_0x11c; - undefined field264_0x11d; - undefined field265_0x11e; - undefined field266_0x11f; - undefined field267_0x120; - undefined field268_0x121; - undefined field269_0x122; - undefined field270_0x123; - undefined field271_0x124; - undefined field272_0x125; - undefined field273_0x126; - undefined field274_0x127; - undefined field275_0x128; - undefined field276_0x129; - undefined field277_0x12a; - undefined field278_0x12b; - undefined field279_0x12c; - undefined field280_0x12d; - undefined field281_0x12e; - undefined field282_0x12f; - undefined field283_0x130; - undefined field284_0x131; - undefined field285_0x132; - undefined field286_0x133; - undefined field287_0x134; - undefined field288_0x135; - undefined field289_0x136; - undefined field290_0x137; - undefined field291_0x138; - undefined field292_0x139; - undefined field293_0x13a; - undefined field294_0x13b; - undefined field295_0x13c; - undefined field296_0x13d; - undefined field297_0x13e; - undefined field298_0x13f; - undefined field299_0x140; - undefined field300_0x141; - undefined field301_0x142; - undefined field302_0x143; - undefined field303_0x144; - undefined field304_0x145; - undefined field305_0x146; - undefined field306_0x147; - undefined field307_0x148; - undefined field308_0x149; - undefined field309_0x14a; - undefined field310_0x14b; - undefined field311_0x14c; - undefined field312_0x14d; - undefined field313_0x14e; - undefined field314_0x14f; - undefined field315_0x150; - undefined field316_0x151; - undefined field317_0x152; - undefined field318_0x153; - undefined field319_0x154; - undefined field320_0x155; - undefined field321_0x156; - undefined field322_0x157; - undefined field323_0x158; - undefined field324_0x159; - undefined field325_0x15a; - undefined field326_0x15b; - undefined field327_0x15c; - undefined field328_0x15d; - undefined field329_0x15e; - undefined field330_0x15f; - undefined field331_0x160; - undefined field332_0x161; - undefined field333_0x162; - undefined field334_0x163; - undefined field335_0x164; - undefined field336_0x165; - undefined field337_0x166; - undefined field338_0x167; - undefined field339_0x168; - undefined field340_0x169; - undefined field341_0x16a; - undefined field342_0x16b; - undefined field343_0x16c; - undefined field344_0x16d; - undefined field345_0x16e; - undefined field346_0x16f; - undefined field347_0x170; - undefined field348_0x171; - undefined field349_0x172; - undefined field350_0x173; - undefined field351_0x174; - undefined field352_0x175; - undefined field353_0x176; - undefined field354_0x177; - undefined field355_0x178; - undefined field356_0x179; - undefined field357_0x17a; - undefined field358_0x17b; - undefined field359_0x17c; - undefined field360_0x17d; - undefined field361_0x17e; - undefined field362_0x17f; - undefined field363_0x180; - undefined field364_0x181; - undefined field365_0x182; - undefined field366_0x183; - undefined field367_0x184; - undefined field368_0x185; - undefined field369_0x186; - undefined field370_0x187; +typedef struct tdstZoneSetList_ tdstZoneSetList_, *PtdstZoneSetList_; +struct tdstZoneSetList_ { }; - -typedef struct Brain Brain, *PBrain; - -struct Brain { - struct AI_tdstMind_ *p_stMind; - GMT_tdxHandleToGameMaterial hLastCollidedGoThroughMaterial; - bool bWarnMechanicsFlag; +typedef struct _tdstSampleStreaming _tdstSampleStreaming, *P_tdstSampleStreaming; +struct _tdstSampleStreaming { }; - -typedef struct Couple Couple, *PCouple; - -struct Couple { - ushort wChild; - ushort wFather; +typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header_, *PSCR_tdst_DyAr_Header_; +struct SCR_tdst_DyAr_Header_ { + uint uiIndexInArray; + uchar ucMemLevel; }; - -typedef struct Element3d Element3d, *PElement3d; - -struct Element3d { - POS_tdxHandleToPosition stMatrix; - uchar ucElement; - uchar ucChannelNumber; - uchar bActiveStatus; - ulong eTypeOfElement; +typedef td_pfn_bRetRollOffFactor *td_pfn_bRetRollOffFactor; +typedef struct GLI_tdstAnimatedTextureNode GLI_tdstAnimatedTextureNode, *PGLI_tdstAnimatedTextureNode; +struct GLI_tdstAnimatedTextureNode { + struct GLI_Texture *p_stTexture; + float xDisplayTime; + struct GLI_tdstAnimatedTextureNode *p_stNextDisplayNode; }; - +typedef struct GEO_tdstParallelBox GEO_tdstParallelBox, *PGEO_tdstParallelBox; +struct GEO_tdstParallelBox { +}; +typedef struct GUID CLSID; +typedef struct _tdstSndBankHeader _tdstSndBankHeader, *P_tdstSndBankHeader; +struct _tdstSndBankHeader { +}; +typedef struct _tdstSndBankHeader tdstSndBankHeader; +typedef struct stMorphData tdstMorphData; +typedef struct _tdstRandomElement _tdstRandomElement, *P_tdstRandomElement; +struct _tdstRandomElement { +}; +typedef struct _tdstRandomElement tdstRandomElement; typedef struct EngineObject EngineObject, *PEngineObject; - struct EngineObject { MS_tdxHandleTo3dData h_3dData; MS_tdxHandleToStandardGame h_StandardGame; @@ -874,31 +502,62 @@ struct EngineObject { MS_tdxHandleToAnimEffect h_AnimEffect; MS_tdxHandleToMSMagnet h_MSMagnet; }; - -typedef struct Event Event, *PEvent; - -struct Event { - struct EventInTable *p_stfEventInTBL; - ushort usEventNumberInTBL; - ushort uwFrameNumber; - ushort uwChannelNumber; +typedef void *GEO_tdxHandleToRadiosity; +typedef struct IPT_tdstInput_ *IPT_tdxHandleToInput; +typedef struct HIE_SuperObject HIE_SuperObject, *PHIE_SuperObject; +struct HIE_SuperObject { + ulong ulTypeOfLinkedObject; + union HIE_tduLinkedObject hLinkedObject; + struct HIE_SuperObject *hFirstElementDyn; + struct HIE_SuperObject *hLastElementDyn; + long lNumberOfElementsDyn; + struct HIE_SuperObject *hNextBrotherDyn; + struct HIE_SuperObject *hPrevBrotherDyn; + struct HIE_SuperObject *hFatherDyn; + struct POS_tdxHandleToPosition hLocalMatrix; + struct POS_tdxHandleToPosition hGlobalMatrix; + long lLastComputeFrame; + long lDrawModeMask; + ulong ulFlags; + void *hBoundingVolume; + float fTransparenceLevel; + struct MTH3_Vector stSemiLookAtVector; }; - -typedef struct EventInTable EventInTable, *PEventInTable; - -struct EventInTable { - void *p_xEvent; - uchar ucTypeOfEvent; - uchar ucPriority; - uchar ucFirstCall; - uchar ucPeriod; - ulong ulBinaryEventId; +typedef struct tdstGeneralChannelsInfo_ tdstGeneralChannelsInfo_, *PtdstGeneralChannelsInfo_; +struct tdstGeneralChannelsInfo_ { + uchar ucNbchannelUsed; + uchar ucMAxNbChannel; + struct tdstChannelInfo *d_stTabChannelInfo; +}; +typedef struct _tdstTypeThemeDisk _tdstTypeThemeDisk, *P_tdstTypeThemeDisk; +struct _tdstTypeThemeDisk { +}; +typedef union _tduResMem tduResMem; +typedef struct IPT_tdstEntryElement_ *IPT_tdxHandleToEntryElement; +typedef struct _tdstTypeSampleMem _tdstTypeSampleMem, *P_tdstTypeSampleMem; +struct _tdstTypeSampleMem { +}; +typedef struct _tdstTypeSampleMem tdstTypeSampleMem; +typedef td_pfn_rRetChannelCoord *td_pfn_rRetChannelCoord; +typedef td_pfn_bRetChannelActive *td_pfn_bRetChannelActive; +typedef struct _tdstAllRetChannelSound _tdstAllRetChannelSound, *P_tdstAllRetChannelSound; +struct _tdstAllRetChannelSound { + td_pfn_rRetChannelCoord X; + td_pfn_rRetChannelCoord Y; + td_pfn_rRetChannelCoord Z; + td_pfn_rRetChannelCoord VX; + td_pfn_rRetChannelCoord VY; + td_pfn_rRetChannelCoord VZ; + td_pfn_bRetChannelActive Active; + SndBool bAbsCoord; +}; +typedef uchar ACP_tdxBool; +typedef struct _SND_tdstBlockEvent _SND_tdstBlockEvent, *P_SND_tdstBlockEvent; +struct _SND_tdstBlockEvent { }; - typedef struct FIL_ConcatFile FIL_ConcatFile, *PFIL_ConcatFile; - struct FIL_ConcatFile { - FILE *p_stFile; + struct FILE *p_stFile; ulong ulNumberOfPath; ulong ulNumberOfFile; uchar bUseXorCode; @@ -908,339 +567,381 @@ struct FIL_ConcatFile { char **d_szPathList; struct FIL_ConcatFileElement *d_stConcatFileElement; }; - -typedef struct FIL_ConcatFileElement FIL_ConcatFileElement, *PFIL_ConcatFileElement; - -struct FIL_ConcatFileElement { - char *p_szFileName; - long lPathNumber; - long lOffset; - ulong ulFileLength; - ulong ulXorCode; - ulong ulCheckSum; +typedef struct tdstState_ tdstState_, *PtdstState_; +struct tdstState_ { }; - -typedef struct FIL_FileHeader FIL_FileHeader, *PFIL_FileHeader; - -struct FIL_FileHeader { - ulong ulWidth; - ulong ulHeight; - ulong ulImageSize; - long lChromakeyIndex; - ushort uwNbColorInPalette; - uchar ucBpcInPalette; - uchar ucBpp; - uchar ucRLECode; - uchar ucRed; - uchar ucGreen; - uchar ucBlue; - uchar ucFormat; - uchar ucVersion; +typedef enum _SND_tdstTypeCallback SND_tduTypeCallback; +typedef struct _SndVector SndVector; +typedef short GLD_DeviceHandle; +typedef struct _tdstTypeMidiMem _tdstTypeMidiMem, *P_tdstTypeMidiMem; +struct _tdstTypeMidiMem { }; - -typedef struct FIL_FileInConcatFile FIL_FileInConcatFile, *PFIL_FileInConcatFile; - -struct FIL_FileInConcatFile { - uchar bUseConcatFile; - FILE *p_stFile; - ulong ulFileActualSeek; - ulong ulFileEndSeek; - ulong ulFileXorCode; - ulong ulFileCheckSum; - ulong ulCacheSeek; - ulong ulCacheSize; - ulong ulCacheCheckSum; - uchar *p_ucCache; +typedef struct _tdstInfoTrackDisk _tdstInfoTrackDisk, *P_tdstInfoTrackDisk; +struct _tdstInfoTrackDisk { }; - -typedef struct FIL_FileNameList FIL_FileNameList, *PFIL_FileNameList; - -struct FIL_FileNameList { - struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn hFileNameListAnchor; +typedef struct _tdstInfoTrackDisk tdstInfoTrackDisk; +typedef td_pfn_rRetSoundCoord *td_pfn_rRetSoundCoord; +typedef struct GLD_ViewportAttributes GLD_ViewportAttributes, *PGLD_ViewportAttributes; +struct GLD_ViewportAttributes { + ulong dwInitialHeight; + ulong dwInitialWidth; + ulong dwHeight; + ulong dwWidth; + ulong dwTopInPix; + ulong dwBottomInPix; + ulong dwLeftInPix; + ulong dwRightInPix; + ulong dwTopInPixForClip; + ulong dwBottomInPixForClip; + ulong dwLeftInPixForClip; + ulong dwRightInPixForClip; + ulong dwWidthInPercent; + ulong dwHeightInPercent; + ulong dwClipTopInPix; + ulong dwClipBottomInPix; + ulong dwClipLeftInPix; + ulong dwClipRightInPix; + ulong dwClipTopInPerMille; + ulong dwClipBottomInPerMille; + ulong dwClipLeftInPerMille; + ulong dwClipRightInPerMille; + long lOffsetPosX; + long lOffsetPosY; + char *p_cVirtualScreen; + long lPitch; + void *p_vSpecificToXD; + GLD_DeviceHandle hDevice; + GLD_ViewportHandle hViewport; }; - -typedef struct FIL_FileNameListElement FIL_FileNameListElement, *PFIL_FileNameListElement; - -struct FIL_FileNameListElement { - struct FIL_FileNameListElement *hNextBrotherDyn; - struct FIL_FileNameListElement *hPrevBrotherDyn; - struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn *hFatherDyn; - char *szFileName; +typedef struct GLD_stViewport GLD_stViewport, *PGLD_stViewport; +struct GLD_stViewport { + struct GLD_ViewportAttributes stViewAttrib; + uchar bIsLocked; }; - -typedef struct FIL_GF FIL_GF, *PFIL_GF; - -struct FIL_GF { - struct FIL_FileHeader stFileHeader; - uchar *p_ucBitMap; - uchar *p_ucPalette; -}; - -typedef struct FIL_RealGFFileHeader FIL_RealGFFileHeader, *PFIL_RealGFFileHeader; - -struct FIL_RealGFFileHeader { - ulong ulFormat; - ulong ulWidth; - ulong ulHeight; - uchar ucBpp; - uchar ucRLECode; -}; - -typedef struct FileInner1 FileInner1, *PFileInner1; - -struct FileInner1 { - undefined field0_0x0; - undefined field1_0x1; - undefined field2_0x2; - undefined field3_0x3; - undefined field4_0x4; - undefined field5_0x5; - undefined field6_0x6; - undefined field7_0x7; - undefined field8_0x8; - undefined field9_0x9; - undefined field10_0xa; - undefined field11_0xb; - undefined field12_0xc; - undefined field13_0xd; - undefined field14_0xe; - undefined field15_0xf; - undefined field16_0x10; - undefined field17_0x11; - undefined field18_0x12; - undefined field19_0x13; - undefined field20_0x14; - undefined field21_0x15; - undefined field22_0x16; - undefined field23_0x17; -}; - -typedef struct Float2 Float2, *PFloat2; - -struct Float2 { /* Vector (r3) */ - float x; - float y; -}; - -typedef struct Float3 Float3, *PFloat3; - -struct Float3 { /* Vector (r3) */ - float x; - float y; - float z; -}; - +typedef td_pfn_vRetSoundExtraCoef *td_pfn_vRetSoundExtraCoef; +typedef struct tdstParticleGenerator_ *tdxHandleToParticleGenerator; typedef struct Float4 Float4, *PFloat4; - struct Float4 { /* Vector (r3) */ float x; float y; float z; float w; }; - typedef struct Float4x4 Float4x4, *PFloat4x4; - struct Float4x4 { /* Matrix (row major?) math type */ struct Float4 x; struct Float4 y; struct Float4 z; struct Float4 w; }; - -typedef struct Frame3d Frame3d, *PFrame3d; - -struct Frame3d { - struct Element3d *p_stArrayOfElts3d; - struct MTH3D_Matrix *p_stAngularSpeedMatrix; - struct MTH3_Vector *p_stLinearSpeedVector; - tdstPLA_Hierarchy *p_stHierarchy; +typedef struct r3_TaggedFloatUnk r3_TaggedFloatUnk, *Pr3_TaggedFloatUnk; +struct r3_TaggedFloatUnk { + uint32_t type; + struct Float4x4 mat0; + struct Float4 unk; }; - -typedef struct GAM_as4_inner GAM_as4_inner, *PGAM_as4_inner; - -struct GAM_as4_inner { - dword unk; - byte tag; /* Created by retype action */ - undefined field2_0x5; - undefined field3_0x6; - undefined field4_0x7; - undefined field5_0x8; - undefined field6_0x9; - undefined field7_0xa; - undefined field8_0xb; - undefined field9_0xc; - undefined field10_0xd; - undefined field11_0xe; - undefined field12_0xf; - undefined field13_0x10; - undefined field14_0x11; - undefined field15_0x12; - undefined field16_0x13; - undefined field17_0x14; - undefined field18_0x15; - undefined field19_0x16; - undefined field20_0x17; - undefined field21_0x18; - undefined field22_0x19; - undefined field23_0x1a; - undefined field24_0x1b; - float field25_0x1c; - undefined field26_0x20; - undefined field27_0x21; - undefined field28_0x22; - undefined field29_0x23; - float field30_0x24; - undefined field31_0x28; - undefined field32_0x29; - undefined field33_0x2a; - undefined field34_0x2b; - undefined field35_0x2c; - undefined field36_0x2d; - undefined field37_0x2e; - undefined field38_0x2f; - undefined field39_0x30; - undefined field40_0x31; - undefined field41_0x32; - undefined field42_0x33; - float field43_0x34; - undefined field44_0x38; - undefined field45_0x39; - undefined field46_0x3a; - undefined field47_0x3b; - float field48_0x3c; - float field49_0x40; - dword counter; +typedef void *MS_tdxHandleTo3dData; +typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description_, *PSCR_tdst_DyAr_Description_; +struct SCR_tdst_DyAr_Description_ { + struct SCR_tdst_DyAr_Element *d_stDynArray; + uint uiNumValues; + uint uiMaxValues; }; - -typedef struct GAM_astruct_4 GAM_astruct_4, *PGAM_astruct_4; - -struct GAM_astruct_4 { - undefined field0_0x0; - undefined field1_0x1; - undefined field2_0x2; - undefined field3_0x3; - undefined field4_0x4; - undefined field5_0x5; - undefined field6_0x6; - undefined field7_0x7; - undefined field8_0x8; - undefined field9_0x9; - undefined field10_0xa; - undefined field11_0xb; - undefined field12_0xc; - undefined field13_0xd; - undefined field14_0xe; - undefined field15_0xf; - undefined field16_0x10; - undefined field17_0x11; - undefined field18_0x12; - undefined field19_0x13; - undefined field20_0x14; - undefined field21_0x15; - undefined field22_0x16; - undefined field23_0x17; - undefined field24_0x18; - undefined field25_0x19; - undefined field26_0x1a; - undefined field27_0x1b; - undefined field28_0x1c; - undefined field29_0x1d; - undefined field30_0x1e; - undefined field31_0x1f; - undefined field32_0x20; - undefined field33_0x21; - undefined field34_0x22; - undefined field35_0x23; - undefined field36_0x24; - undefined field37_0x25; - undefined field38_0x26; - undefined field39_0x27; - undefined field40_0x28; - undefined field41_0x29; - undefined field42_0x2a; - undefined field43_0x2b; - undefined field44_0x2c; - undefined field45_0x2d; - undefined field46_0x2e; - undefined field47_0x2f; - undefined field48_0x30; - undefined field49_0x31; - undefined field50_0x32; - undefined field51_0x33; - undefined field52_0x34; - undefined field53_0x35; - undefined field54_0x36; - undefined field55_0x37; - undefined field56_0x38; - undefined field57_0x39; - undefined field58_0x3a; - undefined field59_0x3b; - undefined field60_0x3c; - undefined field61_0x3d; - undefined field62_0x3e; - undefined field63_0x3f; - undefined field64_0x40; - undefined field65_0x41; - undefined field66_0x42; - undefined field67_0x43; - undefined field68_0x44; - undefined field69_0x45; - undefined field70_0x46; - undefined field71_0x47; - undefined field72_0x48; - undefined field73_0x49; - undefined field74_0x4a; - undefined field75_0x4b; - undefined field76_0x4c; - undefined field77_0x4d; - undefined field78_0x4e; - undefined field79_0x4f; - undefined field80_0x50; - undefined field81_0x51; - undefined field82_0x52; - undefined field83_0x53; - undefined field84_0x54; - undefined field85_0x55; - undefined field86_0x56; - undefined field87_0x57; - undefined field88_0x58; - undefined field89_0x59; - undefined field90_0x5a; - undefined field91_0x5b; - undefined field92_0x5c; - undefined field93_0x5d; - undefined field94_0x5e; - undefined field95_0x5f; - undefined field96_0x60; - undefined field97_0x61; - undefined field98_0x62; - undefined field99_0x63; - undefined field100_0x64; - undefined field101_0x65; - undefined field102_0x66; - undefined field103_0x67; - struct GAM_as4_inner field104_0x68[4]; - undefined field105_0x188; - undefined field106_0x189; - undefined field107_0x18a; - undefined field108_0x18b; - undefined field109_0x18c; - undefined field110_0x18d; - undefined field111_0x18e; - undefined field112_0x18f; - undefined field113_0x190; - undefined field114_0x191; - undefined field115_0x192; - undefined field116_0x193; - undefined field117_0x194; - undefined field118_0x195; - undefined field119_0x196; - undefined field120_0x197; +typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table_, *PSCR_tdst_Link_Table_; +struct SCR_tdst_Link_Table_ { + struct SCR_tdst_DyAr_Header stHeader; + struct SCR_tdst_DyAr_Description stLinkArray; + struct SCR_tda_st_Hash_Table a_stHashTableForValues; + struct SCR_tda_st_Hash_Table a_stHashTableForKeys; +}; +typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement_, *PIPT_tdstHistoricElement_; +struct IPT_tdstHistoricElement_ { + uchar bf2State; + uchar bf6DeviceType; + uchar ucCounter; + short swDeviceValue; +}; +typedef struct IPT_tdstInput_ IPT_tdstInput_, *PIPT_tdstInput_; +struct IPT_tdstInput_ { + uchar ucOnePadActivate; + uchar p_ucValideAndActiveDevice[0]; + uchar p_ucKeyboardCounter[256]; + uchar p_ucPadAndJoyCounter[0][0]; + struct SCR_tdst_Link_Table stEntryLink; + struct SCR_tdst_Link_Table stCommandLink; + uchar ucKeyboardType; + ulong ulNumberOfEntryElement; + struct IPT_tdstEntryElement_ *d_stEntryElementArray; + struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn hEntryElement; + short sEventHistoricSize; + struct IPT_tdxHandleToHistoricElement hEventHistoric; +}; +typedef struct tdstFamilyList_ tdstFamilyList_, *PtdstFamilyList_; +struct tdstFamilyList_ { +}; +typedef struct LST2_tdstAnchorTotdxHandleToFamilyListDyn LST2_tdstAnchorTotdxHandleToFamilyListDyn, *PLST2_tdstAnchorTotdxHandleToFamilyListDyn; +struct LST2_tdstAnchorTotdxHandleToFamilyListDyn { + struct tdxHandleToFamilyList hFirstElementDyn; + struct tdxHandleToFamilyList hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct IPT_tdstKeyWordElement_ *IPT_tdxHandleToKeyWordElement; +typedef struct LST2_tdstAnchorTotdxHandleToStateSLk LST2_tdstAnchorTotdxHandleToStateSLk, *PLST2_tdstAnchorTotdxHandleToStateSLk; +struct LST2_tdstAnchorTotdxHandleToStateSLk { + struct tdxHandleToState hFirstElementSLk; + struct tdxHandleToState hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef struct _SwitchParam SwitchParam; +typedef union _tduResDisk tduResDisk; +typedef struct _tdstTypeSplitMem _tdstTypeSplitMem, *P_tdstTypeSplitMem; +struct _tdstTypeSplitMem { +}; +typedef struct GEO_tdstTripledIndex GEO_tdstTripledIndex, *PGEO_tdstTripledIndex; +struct GEO_tdstTripledIndex { + ACP_tdxIndex a3_xIndex[3]; +}; +typedef struct _s_HandlerType HandlerType; +typedef struct tdstAlwaysModelList_ *ALW_tdxHandleToModelList; +typedef struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn, *PLST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn; +struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn { +}; +typedef struct Float3 Float3, *PFloat3; +struct Float3 { /* Vector (r3) */ + float x; + float y; + float z; +}; +typedef void *GMT_tdxHandleToGameMaterial; +typedef struct tdstObjectsTablesList_ tdstObjectsTablesList_, *PtdstObjectsTablesList_; +struct tdstObjectsTablesList_ { +}; +typedef struct LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk, *PLST2_tdstAnchorTotdxHandleToObjectsTablesListSLk; +struct LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk { + struct tdxHandleToObjectsTablesList hFirstElementSLk; + struct tdxHandleToObjectsTablesList hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef struct Float2 Float2, *PFloat2; +struct Float2 { /* Vector (r3) */ + float x; + float y; +}; +typedef struct _tdstTypeThemeDisk tdstTypeThemeDisk; +typedef union _tduDataSample tduDataSample; +typedef struct _tdstSndBankHead _tdstSndBankHead, *P_tdstSndBankHead; +struct _tdstSndBankHead { +}; +typedef struct GEO_tdstGeometricObject GEO_tdstGeometricObject, *PGEO_tdstGeometricObject; +struct GEO_tdstGeometricObject { +}; +typedef td_pfn_vRetSoundVector *td_pfn_vRetSoundVector; +typedef td_pfn_bRetSoundLink *td_pfn_bRetSoundLink; +typedef td_pfn_ucRetSoundMidi *td_pfn_ucRetSoundMidi; +typedef td_pfn_lRetSoundSwitch *td_pfn_lRetSoundSwitch; +typedef struct _tdstAllRetObjectSound _tdstAllRetObjectSound, *P_tdstAllRetObjectSound; +struct _tdstAllRetObjectSound { + td_pfn_rRetSoundCoord X; + td_pfn_rRetSoundCoord Y; + td_pfn_rRetSoundCoord Z; + td_pfn_rRetSoundCoord VX; + td_pfn_rRetSoundCoord VY; + td_pfn_rRetSoundCoord VZ; + td_pfn_ucRetSoundMidi REVERB; + td_pfn_vRetSoundExtraCoef ExtraCoef; + td_pfn_lRetSoundSwitch Switch; + td_pfn_bRetSoundLink MicroLink; + td_pfn_vRetSoundVector VectorI; + td_pfn_vRetSoundVector VectorJ; + td_pfn_vRetSoundVector VectorK; + void *Unk0; + void *InfoType; +}; +typedef struct Brain Brain, *PBrain; +struct Brain { + struct AI_tdstMind_ *p_stMind; + GMT_tdxHandleToGameMaterial hLastCollidedGoThroughMaterial; + bool bWarnMechanicsFlag; +}; +typedef struct tdstLipsSynchroTable_ tdstLipsSynchroTable_, *PtdstLipsSynchroTable_; +struct tdstLipsSynchroTable_ { +}; +typedef struct GLD_DeviceAttributes GLD_DeviceAttributes, *PGLD_DeviceAttributes; +struct GLD_DeviceAttributes { + DWORD dwHeight; + DWORD dwWidth; + GLD_tdxValue xPixelDimensionX; + GLD_tdxValue xPixelDimensionY; + char *p_cVirtualScreen; + LONG lPitch; + short *p_sZBuffer; + DWORD dwFullScreenModeX; + DWORD dwFullScreenModeY; + DWORD dwFullScreenModeBpp; + struct HWND hFullScreenModeWnd; + struct HWND hNormalModeWnd; + uchar bFullScreen; + uint uiTypeDriver; + struct POINT pClientOnPrimary; + struct RECT rtClientRect; + struct RECT rtWindowRect; +}; +typedef struct GLD_Device GLD_Device, *PGLD_Device; +struct GLD_Device { + struct GLD_DeviceAttributes stDevAttrib; + struct GLD_tdpstViewport pstViewports[16]; + uchar bIsLocked; + DWORD dwStyleBeforeSwap; + DWORD dwExStyleBeforeSwap; + struct RECT rcWindowBeforeSwap; + DWORD dwBackgroundColor; +}; +typedef struct tdstAlwaysActiveCharacter_ tdstAlwaysActiveCharacter_, *PtdstAlwaysActiveCharacter_; +struct tdstAlwaysActiveCharacter_ { +}; +typedef struct _tdstThemePartOutro _tdstThemePartOutro, *P_tdstThemePartOutro; +struct _tdstThemePartOutro { +}; +typedef void *MS_tdxHandleToMSMagnet; +typedef struct IPT_tdstScriptValue_ IPT_tdstScriptValue_, *PIPT_tdstScriptValue_; +struct IPT_tdstScriptValue_ { +}; +typedef struct tdstObjectsTablesList_ *tdxHandleToObjectsTablesList; +typedef struct tdstTransition_ tdstTransition_, *PtdstTransition_; +struct tdstTransition_ { +}; +typedef struct EngineObject tdstEngineObject; +typedef td_pfn_vBufferClientPoped *td_pfn_vBufferClientPoped; +typedef struct _tdstBlockResourceDisk _tdstBlockResourceDisk, *P_tdstBlockResourceDisk; +struct _tdstBlockResourceDisk { +}; +typedef struct _tdstBlockResourceDisk tdstBlockResourceDisk; +typedef union _tduBlockResource tduBlockResource; +typedef struct _SND_tdstStackBuffer _SND_tdstStackBuffer, *P_SND_tdstStackBuffer; +struct _SND_tdstStackBuffer { + ulong ulNbSamples; + void *ptrData; +}; +typedef struct _SND_tdstStackBuffer SND_tdstStackBuffer; +typedef struct _s_TryBlockMapEntry TryBlockMapEntry; +typedef tdfn_vCopyCloneMSFunction tdfn_vCopyCloneMSFunction; +typedef td_pfn_lRetSoundLong *td_pfn_lRetSoundLong; +typedef struct _tdstAllRetMicroSound _tdstAllRetMicroSound, *P_tdstAllRetMicroSound; +struct _tdstAllRetMicroSound { + td_pfn_rRetSoundCoord X; + td_pfn_rRetSoundCoord Y; + td_pfn_rRetSoundCoord Z; + td_pfn_rRetSoundCoord VX; + td_pfn_rRetSoundCoord VY; + td_pfn_rRetSoundCoord VZ; + td_pfn_rRetSoundCoord DNX; + td_pfn_rRetSoundCoord DNY; + td_pfn_rRetSoundCoord DNZ; + td_pfn_rRetSoundCoord DTX; + td_pfn_rRetSoundCoord DTY; + td_pfn_rRetSoundCoord DTZ; + td_pfn_lRetSoundLong Filtre; +}; +typedef long SND_tdxHandleToSoundInfo; +typedef struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn LST2_tdstAnchorTotdxHandleToNodeCameraDyn, *PLST2_tdstAnchorTotdxHandleToNodeCameraDyn; +struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn { +}; +typedef struct tdstBubbleEffect_ tdstBubbleEffect_, *PtdstBubbleEffect_; +struct tdstBubbleEffect_ { +}; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_char; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_dword; +typedef struct LST2_tdstAnchorToGLI_tdstNodeCameraDyn LST2_tdstAnchorToGLI_tdstNodeCameraDyn, *PLST2_tdstAnchorToGLI_tdstNodeCameraDyn; +struct LST2_tdstAnchorToGLI_tdstNodeCameraDyn { +}; +typedef struct _tdstSndPolyEvent _tdstSndPolyEvent, *P_tdstSndPolyEvent; +struct _tdstSndPolyEvent { +}; +typedef struct _tdstSndPolyEvent tdstSndPolyEvent; +typedef struct _tdstThemeBridge _tdstThemeBridge, *P_tdstThemeBridge; +struct _tdstThemeBridge { +}; +typedef struct _tdstThemeBridge tdstThemeBridge; +typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table; +typedef struct tdstBlockInfo_ tdstBlockInfo_, *PtdstBlockInfo_; +struct tdstBlockInfo_ { + char *p_cBeginBlock; + char *p_cEndBlock; + char *p_cFirstFree; + char *p_cMaxMem; +}; +typedef struct tdstBlockInfo_ tdstBlockInfo; +typedef struct IPT_tdstKeyWordElement_ IPT_tdstKeyWordElement; +typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_2_char; +typedef struct _tdstTypeSplitDisk _tdstTypeSplitDisk, *P_tdstTypeSplitDisk; +struct _tdstTypeSplitDisk { +}; +typedef struct SCR_tdst_DyAr_Description SCR_tda_st_Hash_Table[256]; +typedef void *MS_tdxHandleToMSPrtSrc; +typedef struct NodeCamera NodeCamera, *PNodeCamera; +struct NodeCamera { +}; +typedef struct _tdstTypeRandomDisk _tdstTypeRandomDisk, *P_tdstTypeRandomDisk; +struct _tdstTypeRandomDisk { +}; +typedef struct _SoundParam SoundParam; +typedef struct _tdstTypeThemeMem _tdstTypeThemeMem, *P_tdstTypeThemeMem; +struct _tdstTypeThemeMem { +}; +typedef struct _tdstTypeThemeMem tdstTypeThemeMem; +typedef struct _tdstSndBankDescriptor _tdstSndBankDescriptor, *P_tdstSndBankDescriptor; +struct _tdstSndBankDescriptor { +}; +typedef struct _tdstSndBankDescriptor tdstSndBankDescriptor; +typedef struct tdstChunkHeader_ tdstChunkHeader_, *PtdstChunkHeader_; +struct tdstChunkHeader_ { + uchar ucChunkMark[4]; + long lChunkLength; +}; +typedef td_pfn_bRetChannelAbsCoord *td_pfn_bRetChannelAbsCoord; +typedef struct _tdstSwitchList _tdstSwitchList, *P_tdstSwitchList; +struct _tdstSwitchList { +}; +typedef ulong ACP_tdxAddress; +typedef struct SCR_tdst_Link_AdditionalInfos_ SCR_tdst_Link_AdditionalInfos_, *PSCR_tdst_Link_AdditionalInfos_; +struct SCR_tdst_Link_AdditionalInfos_ { + ulong ulLong1; + ulong ulLong2; + ulong ulLong3; + ulong ulLong4; +}; +typedef struct SCR_tdst_Link_AdditionalInfos_ SCR_tdst_Link_AdditionalInfos; +typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description; +typedef IPT_tdfn_bIsKeyWordValid IPT_tdfn_bIsKeyWordValid; +typedef struct _SND_tdstFormat _SND_tdstFormat, *P_SND_tdstFormat; +struct _SND_tdstFormat { + enum tdeTypeZip eZip; + union _union_2479 uFormat; +}; +typedef struct _tdstTypeSplitMem tdstTypeSplitMem; +typedef struct GLI_SpecificAttributesFor3D GLI_SpecificAttributesFor3D, *PGLI_SpecificAttributesFor3D; +struct GLI_SpecificAttributesFor3D { + struct GLI_Camera *p_stCam; + float xNear; +}; +typedef struct TMR_tdstEngineTimerStructure TMR_tdstEngineTimerStructure, *PTMR_tdstEngineTimerStructure; +struct TMR_tdstEngineTimerStructure { + ulong ulFrameNumber; + ushort wTimerHandle; + ulong ulCurrentTimerCount; + ulong ulDeltaTimerCount; + ulong a_ulCounter[16]; + ulong ulUsefulDeltaTime; + ulong ulPauseTime; + float xFrameLength; + struct TMR_tdstTimerCount stRealTimeCount; + struct TMR_tdstTimerCount stPauseTime; + ulong ulTickPerMs; +}; +typedef struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn, *PLST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn; +struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn { }; - typedef struct GAM_EngineStructure GAM_EngineStructure, *PGAM_EngineStructure; - struct GAM_EngineStructure { enum GAM_EngineMode eEngineMode; char szLevelName[30]; @@ -3748,10 +3449,257 @@ struct GAM_EngineStructure { undefined field2503_0xc16; undefined field2504_0xc17; }; - -typedef struct GAM_tdstEngineOuter GAM_tdstEngineOuter, *PGAM_tdstEngineOuter; - -struct GAM_tdstEngineOuter { +typedef struct stAxisCaps stAxisCaps, *PstAxisCaps; +struct stAxisCaps { + long m_lCenter; + long m_lRange; + long m_lThreshold; +}; +typedef struct stAxisCaps INO_tdstAxisCaps; +typedef struct tdstCsaList_ *ZDX_tdxHandleToCsaList; +typedef struct _MicroLink MicroLink; +typedef tdfn_vAllocHandleFunction tdfn_vAllocHandleFunction; +typedef struct tdstZoneSetList_ *ZDX_tdxHandleToZoneSetList; +typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList_, *PtdstSndBankDescriptorList_; +struct tdstSndBankDescriptorList_ { +}; +typedef struct tdstBlockInfoPriv tdstBlockInfoPriv, *PtdstBlockInfoPriv; +struct tdstBlockInfoPriv { + char *p_cBeginBlock; + char *p_cEndBlock; + char *p_cFirstFree; + char *p_cMaxMem; +}; +typedef struct IPT_tdstScriptValue_ *IPT_tdxHandleToScriptValue; +typedef td_fn_vTimerEventCallback td_fn_vTimerEventCallback; +typedef struct GEO_tdstVisualSet GEO_tdstVisualSet, *PGEO_tdstVisualSet; +struct GEO_tdstVisualSet { +}; +typedef struct _tdstMidiStreaming _tdstMidiStreaming, *P_tdstMidiStreaming; +struct _tdstMidiStreaming { +}; +typedef struct _tdstMidiStreaming tdstMidiStreaming; +typedef struct tdstObjectTypeElement_ *ObjectTypeElementHandle; +typedef struct FIL_RealGFFileHeader FIL_RealGFFileHeader, *PFIL_RealGFFileHeader; +struct FIL_RealGFFileHeader { + ulong ulFormat; + ulong ulWidth; + ulong ulHeight; + uchar ucBpp; + uchar ucRLECode; +}; +typedef struct _tdstTypeSequenceMem _tdstTypeSequenceMem, *P_tdstTypeSequenceMem; +struct _tdstTypeSequenceMem { +}; +typedef struct _tdstTypeSequenceMem tdstTypeSequenceMem; +typedef struct FileInner1 FileInner1, *PFileInner1; +struct FileInner1 { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + undefined field16_0x10; + undefined field17_0x11; + undefined field18_0x12; + undefined field19_0x13; + undefined field20_0x14; + undefined field21_0x15; + undefined field22_0x16; + undefined field23_0x17; +}; +typedef struct _tdstSampleStreaming tdstSampleStreaming; +typedef struct _tdstAllRetObjectSound tdstAllRetObjectSound; +typedef struct FIL_ConcatFile *FIL_HandleToConcatFile; +typedef void *MS_tdxHandleToCineinfo; +typedef struct _tdstRangeSplitDisk _tdstRangeSplitDisk, *P_tdstRangeSplitDisk; +struct _tdstRangeSplitDisk { +}; +typedef struct _tdstRangeSplitDisk tdstRangeSplitDisk; +typedef struct Anim3d Anim3d, *PAnim3d; +struct Anim3d { + struct Frame3d *d_stFrame3d; + uchar ucNumberOfFrames; + uchar ucFrameRate; + uchar ucMaxNumberOfElements; + struct Event *d_stAnimEvent; + uchar ucNumberOfEvents; + struct POS_stCompletePosition stOffsetMatrix; + uchar bCompressedAnim; + struct AnimLights *p_stLights; + struct stMorphData *d_stMorphDataArray; + ushort uwNumOfA3dGENERAL; +}; +typedef td_pfn_vCopyString *td_pfn_vCopyString; +typedef struct _tdstBlockResourceMem _tdstBlockResourceMem, *P_tdstBlockResourceMem; +struct _tdstBlockResourceMem { +}; +typedef struct _tdstBlockResourceMem tdstBlockResourceMem; +typedef struct _tdstInfoTrackList _tdstInfoTrackList, *P_tdstInfoTrackList; +struct _tdstInfoTrackList { +}; +typedef struct _tdstInfoTrackList tdstInfoTrackList; +typedef struct _tdstTypeRandomDisk tdstTypeRandomDisk; +typedef struct GUID FMTID; +typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement; +typedef struct _SampleParam _SampleParam, *P_SampleParam; +struct _SampleParam { + SndReal Freq; + uchar ucVol; + uchar ucPan; + uchar ucSpace; + uchar ucReverb; +}; +typedef struct SCR_tdst_DyAr_Element_ SCR_tdst_DyAr_Element_, *PSCR_tdst_DyAr_Element_; +struct SCR_tdst_DyAr_Element_ { + void *d_vElement; + enum SCR_tde_DyAr_State eState; +}; +typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header; +typedef struct tdstBubbleEffect_ *GAM_tdxHandleToBubbleEffect; +typedef struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn, *PLST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn; +struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn { + struct FIL_FileNameListElement *hFirstElementDyn; + struct FIL_FileNameListElement *hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct FIL_FileNameList FIL_FileNameList, *PFIL_FileNameList; +struct FIL_FileNameList { + struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn hFileNameListAnchor; +}; +typedef struct tdstMorphChannelList_ tdstMorphChannelList_, *PtdstMorphChannelList_; +struct tdstMorphChannelList_ { +}; +typedef struct _tdstTimer _tdstTimer, *P_tdstTimer; +struct _tdstTimer { + short m_wTimerType; + short m_wTimerState; + struct TMR_tdstTimerCount m_stTimerCount_InitValue; + struct TMR_tdstTimerCount m_stTimerCount_LastValue; + struct TMR_tdstTimerCount m_stTimerCount_TotalValue; + ulong m_ulEventId; + td_p_fn_vTimerEventCallback m_p_fn_vEventCallback; +}; +typedef struct _tdstTimer tdstTimer; +typedef struct _tdstThemePartOutro tdstThemePartOutro; +typedef void *MS_tdxHandleToMSSound; +typedef struct _tdstTypeMidiMem tdstTypeMidiMem; +typedef struct _tdstRefRes _tdstRefRes, *P_tdstRefRes; +struct _tdstRefRes { +}; +typedef struct tdstChannelInfo_ tdstChannelInfo; +typedef struct GEO_tdstDoubledIndex GEO_tdstDoubledIndex, *PGEO_tdstDoubledIndex; +struct GEO_tdstDoubledIndex { + ACP_tdxIndex a2_xIndex[2]; +}; +typedef struct tdstAviHeader_ tdstAviHeader_, *PtdstAviHeader_; +struct tdstAviHeader_ { + uchar ucRIFFMark[4]; + long lLength; + uchar ucAVIMark[4]; +}; +typedef struct _tdstSndBankHead tdstSndBankHead; +typedef struct _tdstSampleMemory _tdstSampleMemory, *P_tdstSampleMemory; +struct _tdstSampleMemory { +}; +typedef struct _tdstSampleMemory tdstSampleMemory; +typedef struct AI_tdstMind_ AI_tdstMind_, *PAI_tdstMind_; +struct AI_tdstMind_ { +}; +typedef struct _tdstTypeCD _tdstTypeCD, *P_tdstTypeCD; +struct _tdstTypeCD { +}; +typedef struct _tdstTypeCD tdstTypeCD; +typedef struct _tdstSndPolyResource _tdstSndPolyResource, *P_tdstSndPolyResource; +struct _tdstSndPolyResource { +}; +typedef struct FIL_FileInConcatFile FIL_FileInConcatFile, *PFIL_FileInConcatFile; +struct FIL_FileInConcatFile { + uchar bUseConcatFile; + struct FILE *p_stFile; + ulong ulFileActualSeek; + ulong ulFileEndSeek; + ulong ulFileXorCode; + ulong ulFileCheckSum; + ulong ulCacheSeek; + ulong ulCacheSize; + ulong ulCacheCheckSum; + uchar *p_ucCache; +}; +typedef float GLI_tdxValue; +typedef struct IPT_tdstEntryElement_ IPT_tdstEntryElement; +typedef struct tdstSubAnim3d_ tdstSubAnim3d_, *PtdstSubAnim3d_; +struct tdstSubAnim3d_ { + uchar ucCurrentFrame; + uchar ucRepeatAnimation; + uchar ucElement; + struct tdstState_ *p_stCurrentState; +}; +typedef struct tdstAChannel_ tdstAChannel_, *PtdstAChannel_; +struct tdstAChannel_ { +}; +typedef struct _tdstSwitchElement _tdstSwitchElement, *P_tdstSwitchElement; +struct _tdstSwitchElement { +}; +typedef void *MS_tdxHandleToSectInfo; +typedef struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk, *PLST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk; +struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk { + struct tdxHandleToAlwaysActiveCharacterNode hFirstElementSLk; + struct tdxHandleToAlwaysActiveCharacterNode hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef struct tdstPLA_Hierarchy_ tdstPLA_Hierarchy_, *PtdstPLA_Hierarchy_; +struct tdstPLA_Hierarchy_ { + ulong ulNbOfCouples; + struct Couple *d_stCouples; +}; +typedef struct stDevCaps stDevCaps, *PstDevCaps; +struct stDevCaps { + uchar m_ucNbButtons; + ulong m_ulCapsFlags; +}; +typedef struct _tdstRefResList tdstRefResList; +typedef struct FIL_ConcatFileElement FIL_ConcatFileElement, *PFIL_ConcatFileElement; +struct FIL_ConcatFileElement { + char *p_szFileName; + long lPathNumber; + long lOffset; + ulong ulFileLength; + ulong ulXorCode; + ulong ulCheckSum; +}; +typedef struct tdstWaterStreakEffect_ *GAM_tdxHandleToWaterStreakEffect; +typedef struct stDevCaps INO_tdstDevCaps; +typedef struct IPT_tdstKeyAndPadDefine_ IPT_tdstKeyAndPadDefine_, *PIPT_tdstKeyAndPadDefine_; +struct IPT_tdstKeyAndPadDefine_ { + ushort uwBasedKey; + char *p_szFrenchKey; + char *p_szAmericanKey; +}; +typedef struct IPT_tdstKeyAndPadDefine_ IPT_tdstKeyAndPadDefine; +typedef struct GLI_tdst2DVertex GLI_tdst2DVertex, *PGLI_tdst2DVertex; +struct GLI_tdst2DVertex { + float xX; + float xY; + float xOoZ; +}; +typedef struct _tdstAllRetChannelSound tdstAllRetChannelSound; +typedef struct tdstNodeMainCharacter_ tdstNodeMainCharacter_, *PtdstNodeMainCharacter_; +struct tdstNodeMainCharacter_ { +}; +typedef struct GMA_tdstEngineEndStructure GMA_tdstEngineEndStructure, *PGMA_tdstEngineEndStructure; +struct GMA_tdstEngineEndStructure { uchar ucNumberOfLevels; uchar ucCurrentLevel; uchar ucPreviousLevel; @@ -3764,16 +3712,86 @@ struct GAM_tdstEngineOuter { ACP_tdxBool bResurrection; char cCameraMode; }; - -typedef struct GAM_tdstLanguageStructure GAM_tdstLanguageStructure, *PGAM_tdstLanguageStructure; - -struct GAM_tdstLanguageStructure { - char szLanguageCode[20]; - char szLanguageText[20]; +typedef struct stDevState stDevState, *PstDevState; +struct stDevState { + uchar m_ucStatus; }; - +typedef struct tdstFootPath_ *GAM_tdxHandleToFootPathEffect; +typedef enum SCR_tde_Link_State_ SCR_tde_Link_State; +typedef float GLD_tdxValue; +typedef struct tdstChunkHeader_ tdstChunkHeader; +typedef struct tdstObjectTypeElement_ tdstObjectTypeElement; +typedef struct _MicroParam _MicroParam, *P_MicroParam; +struct _MicroParam { + struct SndVector pos; + struct SndVector vit; + struct SndVector dirnor; + struct SndVector dirtan; +}; +typedef struct SCR_tdst_DyAr_Element_ SCR_tdst_DyAr_Element; +typedef struct tdstAviHeader_ tdstAviHeader; +typedef struct _tdstSndPolyResource tdstSndPolyResource; +typedef struct tdstViewportManagement_ tdstViewportManagement_, *PtdstViewportManagement_; +struct tdstViewportManagement_ { +}; +typedef void *MS_tdxHandleToMSWay; +typedef struct tdstTransition_ *tdxHandleToTransition; +typedef struct _tdstInfoTrackMem _tdstInfoTrackMem, *P_tdstInfoTrackMem; +struct _tdstInfoTrackMem { +}; +typedef struct tdstPLA_Hierarchy_ tdstPLA_Hierarchy; +typedef struct Element3d Element3d, *PElement3d; +struct Element3d { + struct POS_tdxHandleToPosition stMatrix; + uchar ucElement; + uchar ucChannelNumber; + uchar bActiveStatus; + ulong eTypeOfElement; +}; +typedef struct _s_UnwindMapEntry UnwindMapEntry; +typedef struct LST2_tdstAnchorTotdxHandleToNodeCameraSLk LST2_tdstAnchorTotdxHandleToNodeCameraSLk, *PLST2_tdstAnchorTotdxHandleToNodeCameraSLk; +struct LST2_tdstAnchorTotdxHandleToNodeCameraSLk { + struct NodeCamera *hFirstElementSLk; + struct NodeCamera *hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef struct HIE_tdstSuperObject HIE_tdstSuperObject, *PHIE_tdstSuperObject; +struct HIE_tdstSuperObject { +}; +typedef struct _tdstTypeSwitchMem _tdstTypeSwitchMem, *P_tdstTypeSwitchMem; +struct _tdstTypeSwitchMem { +}; +typedef struct _tdstTypeSwitchMem tdstTypeSwitchMem; +typedef dword color_rgba8_t; +typedef struct Event Event, *PEvent; +struct Event { + struct EventInTable *p_stfEventInTBL; + ushort usEventNumberInTBL; + ushort uwFrameNumber; + ushort uwChannelNumber; +}; +typedef struct LevelLoadState LevelLoadState, *PLevelLoadState; +struct LevelLoadState { + undefined *ptrSized; /* len = size * 8 */ + dword ptrSize; +}; +typedef struct tdstAlwaysActiveCharacter_ *tdxHandleToAlwaysActiveCharacterNode; +typedef struct IPT_tdstInput_ IPT_tdstInput; +typedef struct tdstProhibit_ tdstProhibit_, *PtdstProhibit_; +struct tdstProhibit_ { +}; +typedef struct LST2_tdstAnchorTotdxHandleToProhibitSLk LST2_tdstAnchorTotdxHandleToProhibitSLk, *PLST2_tdstAnchorTotdxHandleToProhibitSLk; +struct LST2_tdstAnchorTotdxHandleToProhibitSLk { + struct tdxHandleToProhibit hFirstElementSLk; + struct tdxHandleToProhibit hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef void *MS_tdxHandleToAnimEffect; +typedef void *MS_tdxHandleToMicro; +typedef long SndReal; +typedef struct _tdstFormatPCM tdstFormatADPCM; +typedef struct _MicroParam MicroParam; typedef struct GameStructure GameStructure, *PGameStructure; - struct GameStructure { struct BinkInner0 *binkInner; float field1_0x4; @@ -3781,7 +3799,7 @@ struct GameStructure { float field3_0xc; float field4_0x10; HANDLE drawSemaphore; - FILE *movieFile; + struct FILE *movieFile; dword keySeqEsc; undefined field8_0x20; undefined field9_0x21; @@ -3842,331 +3860,59 @@ struct GameStructure { undefined field64_0x5b; float field65_0x5c; }; - -typedef struct GEO_tdstBoundingSphere GEO_tdstBoundingSphere, *PGEO_tdstBoundingSphere; - -struct GEO_tdstBoundingSphere { +typedef tdpfnResNameCallback *tdpfnResNameCallback; +typedef struct POS_stCompletePosition *POS_tdxHandleToPosition; +typedef struct tdstStructureHandleFunction tdstStructureHandleFunction, *PtdstStructureHandleFunction; +struct tdstStructureHandleFunction { + tdfn_vCopyCloneMSFunction *p_fn_vCopyCloneMSFunction; + tdfn_ulSizeofHandleFunction *p_fn_ulSizeOfFunction; + tdfn_vAllocHandleFunction *p_fn_vAllocFunction; + tdfn_vAllocHandleFunction *p_fn_vFreeFunction; + tdfn_vInitHandleFunction *p_fn_vInitFunction; + tdfn_vInitHandleFunction *p_fn_vDesinitFunction; }; - -typedef struct GEO_tdstColor GEO_tdstColor, *PGEO_tdstColor; - -struct GEO_tdstColor { - GEO_tdxColorValue xR; - GEO_tdxColorValue xG; - GEO_tdxColorValue xB; - GEO_tdxColorValue xA; +typedef struct _GUID GUID; +typedef struct _tdstRangeSplitMem _tdstRangeSplitMem, *P_tdstRangeSplitMem; +struct _tdstRangeSplitMem { }; - -typedef struct GEO_tdstDoubledIndex GEO_tdstDoubledIndex, *PGEO_tdstDoubledIndex; - -struct GEO_tdstDoubledIndex { - ACP_tdxIndex a2_xIndex[2]; +typedef union _tduRefRes tduRefRes; +typedef struct IPT_tdstHistoricElement_ *IPT_tdxHandleToHistoricElement; +typedef struct m7_init_struct m7_init_struct, *Pm7_init_struct; +struct m7_init_struct { + dword threadSignal0; + dword threadSignal1; + byte field2_0x8; + byte field3_0x9; + byte field4_0xa; + byte field5_0xb; + byte field6_0xc; + byte field7_0xd; + byte field8_0xe; + byte field9_0xf; + byte field10_0x10; + byte field11_0x11; + undefined1 field12_0x12; + byte field13_0x13; + byte field14_0x14; + byte field15_0x15; + byte field16_0x16; + byte field17_0x17; + byte field18_0x18; }; - -typedef struct GEO_tdstGeometricObject GEO_tdstGeometricObject, *PGEO_tdstGeometricObject; - -struct GEO_tdstGeometricObject { +typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList; +typedef struct AnimLights AnimLights, *PAnimLights; +struct AnimLights { + void **a_p_stLights; + ushort uwNumberOfLights; + void *a_hLightsInSector; }; - -typedef struct GEO_tdstParallelBox GEO_tdstParallelBox, *PGEO_tdstParallelBox; - -struct GEO_tdstParallelBox { -}; - -typedef struct GEO_tdstTripledIndex GEO_tdstTripledIndex, *PGEO_tdstTripledIndex; - -struct GEO_tdstTripledIndex { - ACP_tdxIndex a3_xIndex[3]; -}; - -typedef struct GEO_tdstVisualSet GEO_tdstVisualSet, *PGEO_tdstVisualSet; - -struct GEO_tdstVisualSet { -}; - -typedef struct GLD_Device GLD_Device, *PGLD_Device; - -struct GLD_Device { - struct GLD_DeviceAttributes stDevAttrib; - GLD_tdpstViewport pstViewports[16]; - BOOL bIsLocked; - DWORD dwStyleBeforeSwap; - DWORD dwExStyleBeforeSwap; - RECT rcWindowBeforeSwap; - DWORD dwBackgroundColor; -}; - - -/* WARNING! conflicting data type names: /engine.h/GLD_Device - /GLD_Device */ - -typedef struct GLD_DeviceAttributes GLD_DeviceAttributes, *PGLD_DeviceAttributes; - -struct GLD_DeviceAttributes { - DWORD dwHeight; - DWORD dwWidth; - GLD_tdxValue xPixelDimensionX; - GLD_tdxValue xPixelDimensionY; - char *p_cVirtualScreen; - LONG lPitch; - short *p_sZBuffer; - DWORD dwFullScreenModeX; - DWORD dwFullScreenModeY; - DWORD dwFullScreenModeBpp; - HWND hFullScreenModeWnd; - HWND hNormalModeWnd; - uchar bFullScreen; - uint uiTypeDriver; - POINT pClientOnPrimary; - RECT rtClientRect; - RECT rtWindowRect; -}; - -typedef struct GLD_stViewport GLD_stViewport, *PGLD_stViewport; - -struct GLD_stViewport { - struct GLD_ViewportAttributes stViewAttrib; - uchar bIsLocked; -}; - -typedef struct GLD_Viewport GLD_Viewport, *PGLD_Viewport; - -struct GLD_Viewport { - struct GLD_ViewportAttributes stViewAttrib; - uchar bIsLocked; -}; - -typedef struct GLD_ViewportAttributes GLD_ViewportAttributes, *PGLD_ViewportAttributes; - -struct GLD_ViewportAttributes { - ulong dwInitialHeight; - ulong dwInitialWidth; - ulong dwHeight; - ulong dwWidth; - ulong dwTopInPix; - ulong dwBottomInPix; - ulong dwLeftInPix; - ulong dwRightInPix; - ulong dwTopInPixForClip; - ulong dwBottomInPixForClip; - ulong dwLeftInPixForClip; - ulong dwRightInPixForClip; - ulong dwWidthInPercent; - ulong dwHeightInPercent; - ulong dwClipTopInPix; - ulong dwClipBottomInPix; - ulong dwClipLeftInPix; - ulong dwClipRightInPix; - ulong dwClipTopInPerMille; - ulong dwClipBottomInPerMille; - ulong dwClipLeftInPerMille; - ulong dwClipRightInPerMille; - long lOffsetPosX; - long lOffsetPosY; - char *p_cVirtualScreen; - long lPitch; - void *p_vSpecificToXD; - GLD_DeviceHandle hDevice; - GLD_ViewportHandle hViewport; -}; - -typedef struct GLI_Camera GLI_Camera, *PGLI_Camera; - -struct GLI_Camera { - long lSizeOfThis; - long lTypeOfThis; - long lCameraMode; - struct POS_stCompletePosition stMatrix; - float xAlphaX; - float xAlphaY; - GLI_tdxValue xNear; - GLI_tdxValue xFar; - GLI_tdxValue xScreen; - struct GLI_tdst2DVertex stScale; - struct GLI_tdst2DVertex stTrans; - long lVptInitialHeight; - long lVptInitialWidth; - struct MTH3_Vector stNormPlaneLeft; - float xDistPlaneLeft; - struct MTH3_Vector stNormPlaneRight; - float xDistPlaneRight; - struct MTH3_Vector stNormPlaneUp; - float xDistPlaneUp; - struct MTH3_Vector stNormPlaneDown; - float xDistPlaneDown; - float xRatio; -}; - -typedef struct GLI_SpecificAttributesFor3D GLI_SpecificAttributesFor3D, *PGLI_SpecificAttributesFor3D; - -struct GLI_SpecificAttributesFor3D { - struct GLI_Camera *p_stCam; - float xNear; -}; - -typedef struct GLI_tdst2DVertex GLI_tdst2DVertex, *PGLI_tdst2DVertex; - -struct GLI_tdst2DVertex { - float xX; - float xY; - float xOoZ; -}; - -typedef struct GLI_tdstAnimatedTextureNode GLI_tdstAnimatedTextureNode, *PGLI_tdstAnimatedTextureNode; - -struct GLI_tdstAnimatedTextureNode { - struct GLI_Texture *p_stTexture; - float xDisplayTime; - struct GLI_tdstAnimatedTextureNode *p_stNextDisplayNode; -}; - -typedef struct GLI_tdstLight GLI_tdstLight, *PGLI_tdstLight; - -struct GLI_tdstLight { - uchar bOnOff; - uchar bThisLightIsZBuffered; - long lTypeOfLight; - float xFar; - float xNear; - float xLittleAlpha; - float xBigAlpha; - float xLittleTangent; - float xBigTangent; - struct POS_stCompletePosition stMatrix; - struct GLI_tdstZBufferForLight stZBuffer; - struct GEO_tdstColor stColor; - ACP_tdxBool bValid; - uchar ucObjectPainted; - ACP_tdxBool bIsPainting; - uchar ucIsAlpha; - struct MTH3_Vector stInter_Min_Pos; - struct MTH3_Vector stExter_Min_Pos; - struct MTH3_Vector stInter_Max_Pos; - struct MTH3_Vector stExter_Max_Pos; - struct MTH3_Vector stCenterBox; - float xRadius; - float xIntensity_Min; - float xIntensity_Max; - struct GEO_tdstColor stBackgroundColor; -}; - -typedef struct GLI_tdstMaterial GLI_tdstMaterial, *PGLI_tdstMaterial; - -struct GLI_tdstMaterial { - ulong ulMaterialType; - struct GEO_tdstColor stAmbient; - struct GEO_tdstColor stDiffuse; - struct GEO_tdstColor stSpecular; - struct GEO_tdstColor stColor; - long lSpecularExponent; - struct GLI_Texture *p_stTexture; - float xAddU; - float xAddV; - float xConstantAddU; - float xConstantAddV; - long lIncrementIsEnable; - ulong dwActualRefreshNumber; - struct GLI_tdstAnimatedTextureNode *p_stFirstAnimatedTextureNode; - struct GLI_tdstAnimatedTextureNode *p_stActualAnimatedTextureNode; - long lNumberOfDisplayNode; - float xActualDisplayTimeSinceStartOfLastTexture; - ACP_tdxBool xIsLocked; -}; - -typedef struct GLI_tdstViewportManagement GLI_tdstViewportManagement, *PGLI_tdstViewportManagement; - -struct GLI_tdstViewportManagement { - struct HIE_tdstSuperObject *hCamera; - struct HIE_tdstSuperObject *hTempCamera; - struct GLI_Camera *p_stCamera; - ACP_tdxBool bValid; -}; - -typedef struct GLI_tdstZBufferForLight GLI_tdstZBufferForLight, *PGLI_tdstZBufferForLight; - -struct GLI_tdstZBufferForLight { - long lSizeX; - long lSizeY; - float xCoefX; - float xCoefY; - float *p_xZBufferMap; - float *p_xMiddleZBufferMap; -}; - -typedef struct GLI_Texture GLI_Texture, *PGLI_Texture; - -struct GLI_Texture { - uchar bIsAvailable; - long lTextureQuality; - void *p_vBitMap; - void *p_vColorTable; - void *p_stSpecParam; - ulong ulTextureCaps; - ushort uwHeight; - ushort uwWidth; - ushort uwRealHeight; - ushort uwRealWidth; - float xAddU; - float xAddV; - uchar lIncrementIsEnable; - ulong ulChromakeyColorRGBA; - long lNumberOfLod; - ulong ulCompressionCounter; - ulong ulTypeOfCompression; - ulong ulTypeOfMipMapping; - struct GLI_Texture *p_TextureOfSubstitution; - uchar ucBilinearMode; - uchar ucCyclingMode; - char szFileName[128]; -}; - -typedef struct GMA_tdstEngineEndStructure GMA_tdstEngineEndStructure, *PGMA_tdstEngineEndStructure; - -struct GMA_tdstEngineEndStructure { - uchar ucNumberOfLevels; - uchar ucCurrentLevel; - uchar ucPreviousLevel; - uchar ucExitIdToQuitPrevLevel; - uchar ucLevelGlobalCounter; - ACP_tdxBool xDemoMode; - uchar ucCurrentLanguage; - uchar ucNbLanguages; - ACP_tdxBool bEngineFrozen; - ACP_tdxBool bResurrection; - char cCameraMode; -}; - -typedef struct HIE_SuperObject HIE_SuperObject, *PHIE_SuperObject; - -struct HIE_SuperObject { - ulong ulTypeOfLinkedObject; - union HIE_tduLinkedObject hLinkedObject; - struct HIE_SuperObject *hFirstElementDyn; - struct HIE_SuperObject *hLastElementDyn; - long lNumberOfElementsDyn; - struct HIE_SuperObject *hNextBrotherDyn; - struct HIE_SuperObject *hPrevBrotherDyn; - struct HIE_SuperObject *hFatherDyn; - POS_tdxHandleToPosition hLocalMatrix; - POS_tdxHandleToPosition hGlobalMatrix; - long lLastComputeFrame; - long lDrawModeMask; - ulong ulFlags; - void *hBoundingVolume; - float fTransparenceLevel; - struct MTH3_Vector stSemiLookAtVector; -}; - -typedef struct HIE_tdstSuperObject HIE_tdstSuperObject, *PHIE_tdstSuperObject; - -struct HIE_tdstSuperObject { -}; - +typedef struct INO_Device *INO_DeviceHandle; +typedef INO_fn_wMethod *INO_fn_wMethod; typedef struct INO_Device INO_Device, *PINO_Device; - struct INO_Device { ushort m_uwType; - INO_tdstDevCaps *m_p_stCaps; - INO_tdstDevState *m_p_stState; + struct INO_tdstDevCaps *m_p_stCaps; + struct INO_tdstDevState *m_p_stState; ulong m_ulLastTimeCount; short m_wHistoricSize; short m_wHistoricHead; @@ -4174,17 +3920,15 @@ struct INO_Device { void *m_pvHistoric; INO_fn_wMethod m_pfnRead; }; - typedef struct INO_DIDevice INO_DIDevice, *PINO_DIDevice; - struct INO_DIDevice { - DIDEVICEINSTANCE m_stDevInstance; - LPDIRECTINPUTDEVICE m_p_stDevInterface; /* set */ - LPDIRECTINPUTDEVICE2 m_p_stDevInterface2; + struct DIDEVICEINSTANCE m_stDevInstance; + struct LPDIRECTINPUTDEVICE m_p_stDevInterface; /* set */ + struct LPDIRECTINPUTDEVICE2 m_p_stDevInterface2; short m_wExtendedInterfaceAvailable; undefined field4_0x24e; undefined field5_0x24f; - INO_DeviceHandle m_hDevice; + struct INO_DeviceHandle m_hDevice; undefined field7_0x254; undefined field8_0x255; undefined field9_0x256; @@ -4243,9 +3987,1178 @@ struct INO_DIDevice { undefined field62_0x28b; undefined field63_0x28c; }; - +typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value_, *PSCR_tdst_Link_Value_; +struct SCR_tdst_Link_Value_ { + struct SCR_tdst_DyAr_Header stHeader; + char *p_szKey; + ulong ulValue; + SCR_tdx_Hash_Key xHashKeyForKey; + uint uiIndexHashKeyKey; + SCR_tdx_Hash_Key xHashKeyForValue; + uint uiIndexHashKeyValue; + enum SCR_tde_Link_State eState; + struct SCR_tdst_Link_AdditionalInfos stInfos; +}; +typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value; +typedef struct _tdstThemePart _tdstThemePart, *P_tdstThemePart; +struct _tdstThemePart { +}; +typedef struct _tdstThemePart tdstThemePart; +typedef void *tdxHandleToVoid; +typedef struct BinkInner0 BinkInner0, *PBinkInner0; +struct BinkInner0 { + int unk_neg1; + undefined *field1_0x4; + float field2_0x8; + float field3_0xc; + undefined field4_0x10; + undefined field5_0x11; + undefined field6_0x12; + undefined field7_0x13; + float field8_0x14; + float field9_0x18; + float field10_0x1c; + undefined field11_0x20; + undefined field12_0x21; + undefined field13_0x22; + undefined field14_0x23; + undefined field15_0x24; + undefined field16_0x25; + undefined field17_0x26; + undefined field18_0x27; + undefined field19_0x28; + undefined field20_0x29; + undefined field21_0x2a; + undefined field22_0x2b; + undefined field23_0x2c; + undefined field24_0x2d; + undefined field25_0x2e; + undefined field26_0x2f; + undefined field27_0x30; + undefined field28_0x31; + undefined field29_0x32; + undefined field30_0x33; + undefined field31_0x34; + undefined field32_0x35; + undefined field33_0x36; + undefined field34_0x37; + undefined field35_0x38; + undefined field36_0x39; + undefined field37_0x3a; + undefined field38_0x3b; + undefined field39_0x3c; + undefined field40_0x3d; + undefined field41_0x3e; + undefined field42_0x3f; + undefined field43_0x40; + undefined field44_0x41; + undefined field45_0x42; + undefined field46_0x43; + undefined field47_0x44; + undefined field48_0x45; + undefined field49_0x46; + undefined field50_0x47; + undefined field51_0x48; + undefined field52_0x49; + undefined field53_0x4a; + undefined field54_0x4b; + undefined field55_0x4c; + undefined field56_0x4d; + undefined field57_0x4e; + undefined field58_0x4f; + undefined field59_0x50; + undefined field60_0x51; + undefined field61_0x52; + undefined field62_0x53; + undefined field63_0x54; + undefined field64_0x55; + undefined field65_0x56; + undefined field66_0x57; + undefined field67_0x58; + undefined field68_0x59; + undefined field69_0x5a; + undefined field70_0x5b; + undefined field71_0x5c; + undefined field72_0x5d; + undefined field73_0x5e; + undefined field74_0x5f; + undefined field75_0x60; + undefined field76_0x61; + undefined field77_0x62; + undefined field78_0x63; + undefined field79_0x64; + undefined field80_0x65; + undefined field81_0x66; + undefined field82_0x67; + undefined field83_0x68; + undefined field84_0x69; + undefined field85_0x6a; + undefined field86_0x6b; + undefined field87_0x6c; + undefined field88_0x6d; + undefined field89_0x6e; + undefined field90_0x6f; + undefined field91_0x70; + undefined field92_0x71; + undefined field93_0x72; + undefined field94_0x73; + undefined field95_0x74; + undefined field96_0x75; + undefined field97_0x76; + undefined field98_0x77; + undefined field99_0x78; + undefined field100_0x79; + undefined field101_0x7a; + undefined field102_0x7b; + undefined field103_0x7c; + undefined field104_0x7d; + undefined field105_0x7e; + undefined field106_0x7f; + undefined field107_0x80; + undefined field108_0x81; + undefined field109_0x82; + undefined field110_0x83; + undefined field111_0x84; + undefined field112_0x85; + undefined field113_0x86; + undefined field114_0x87; + undefined field115_0x88; + undefined field116_0x89; + undefined field117_0x8a; + undefined field118_0x8b; + undefined field119_0x8c; + undefined field120_0x8d; + undefined field121_0x8e; + undefined field122_0x8f; + undefined field123_0x90; + undefined field124_0x91; + undefined field125_0x92; + undefined field126_0x93; + undefined field127_0x94; + undefined field128_0x95; + undefined field129_0x96; + undefined field130_0x97; + undefined field131_0x98; + undefined field132_0x99; + undefined field133_0x9a; + undefined field134_0x9b; + undefined field135_0x9c; + undefined field136_0x9d; + undefined field137_0x9e; + undefined field138_0x9f; + undefined field139_0xa0; + undefined field140_0xa1; + undefined field141_0xa2; + undefined field142_0xa3; + undefined field143_0xa4; + undefined field144_0xa5; + undefined field145_0xa6; + undefined field146_0xa7; + undefined field147_0xa8; + undefined field148_0xa9; + undefined field149_0xaa; + undefined field150_0xab; + undefined field151_0xac; + undefined field152_0xad; + undefined field153_0xae; + undefined field154_0xaf; + undefined field155_0xb0; + undefined field156_0xb1; + undefined field157_0xb2; + undefined field158_0xb3; + undefined field159_0xb4; + undefined field160_0xb5; + undefined field161_0xb6; + undefined field162_0xb7; + undefined field163_0xb8; + undefined field164_0xb9; + undefined field165_0xba; + undefined field166_0xbb; + undefined field167_0xbc; + undefined field168_0xbd; + undefined field169_0xbe; + undefined field170_0xbf; + undefined field171_0xc0; + undefined field172_0xc1; + undefined field173_0xc2; + undefined field174_0xc3; + undefined field175_0xc4; + undefined field176_0xc5; + undefined field177_0xc6; + undefined field178_0xc7; + undefined field179_0xc8; + undefined field180_0xc9; + undefined field181_0xca; + undefined field182_0xcb; + undefined field183_0xcc; + undefined field184_0xcd; + undefined field185_0xce; + undefined field186_0xcf; + undefined field187_0xd0; + undefined field188_0xd1; + undefined field189_0xd2; + undefined field190_0xd3; + undefined field191_0xd4; + undefined field192_0xd5; + undefined field193_0xd6; + undefined field194_0xd7; + undefined field195_0xd8; + undefined field196_0xd9; + undefined field197_0xda; + undefined field198_0xdb; + undefined field199_0xdc; + undefined field200_0xdd; + undefined field201_0xde; + undefined field202_0xdf; + undefined field203_0xe0; + undefined field204_0xe1; + undefined field205_0xe2; + undefined field206_0xe3; + undefined field207_0xe4; + undefined field208_0xe5; + undefined field209_0xe6; + undefined field210_0xe7; + undefined field211_0xe8; + undefined field212_0xe9; + undefined field213_0xea; + undefined field214_0xeb; + undefined field215_0xec; + undefined field216_0xed; + undefined field217_0xee; + undefined field218_0xef; + undefined field219_0xf0; + undefined field220_0xf1; + undefined field221_0xf2; + undefined field222_0xf3; + undefined field223_0xf4; + undefined field224_0xf5; + undefined field225_0xf6; + undefined field226_0xf7; + undefined field227_0xf8; + undefined field228_0xf9; + undefined field229_0xfa; + undefined field230_0xfb; + undefined field231_0xfc; + undefined field232_0xfd; + undefined field233_0xfe; + undefined field234_0xff; + undefined field235_0x100; + undefined field236_0x101; + undefined field237_0x102; + undefined field238_0x103; + undefined field239_0x104; + undefined field240_0x105; + undefined field241_0x106; + undefined field242_0x107; + undefined field243_0x108; + undefined field244_0x109; + undefined field245_0x10a; + undefined field246_0x10b; + undefined field247_0x10c; + undefined field248_0x10d; + undefined field249_0x10e; + undefined field250_0x10f; + undefined field251_0x110; + undefined field252_0x111; + undefined field253_0x112; + undefined field254_0x113; + undefined field255_0x114; + undefined field256_0x115; + undefined field257_0x116; + undefined field258_0x117; + undefined field259_0x118; + undefined field260_0x119; + undefined field261_0x11a; + undefined field262_0x11b; + undefined field263_0x11c; + undefined field264_0x11d; + undefined field265_0x11e; + undefined field266_0x11f; + undefined field267_0x120; + undefined field268_0x121; + undefined field269_0x122; + undefined field270_0x123; + undefined field271_0x124; + undefined field272_0x125; + undefined field273_0x126; + undefined field274_0x127; + undefined field275_0x128; + undefined field276_0x129; + undefined field277_0x12a; + undefined field278_0x12b; + undefined field279_0x12c; + undefined field280_0x12d; + undefined field281_0x12e; + undefined field282_0x12f; + undefined field283_0x130; + undefined field284_0x131; + undefined field285_0x132; + undefined field286_0x133; + undefined field287_0x134; + undefined field288_0x135; + undefined field289_0x136; + undefined field290_0x137; + undefined field291_0x138; + undefined field292_0x139; + undefined field293_0x13a; + undefined field294_0x13b; + undefined field295_0x13c; + undefined field296_0x13d; + undefined field297_0x13e; + undefined field298_0x13f; + undefined field299_0x140; + undefined field300_0x141; + undefined field301_0x142; + undefined field302_0x143; + undefined field303_0x144; + undefined field304_0x145; + undefined field305_0x146; + undefined field306_0x147; + undefined field307_0x148; + undefined field308_0x149; + undefined field309_0x14a; + undefined field310_0x14b; + undefined field311_0x14c; + undefined field312_0x14d; + undefined field313_0x14e; + undefined field314_0x14f; + undefined field315_0x150; + undefined field316_0x151; + undefined field317_0x152; + undefined field318_0x153; + undefined field319_0x154; + undefined field320_0x155; + undefined field321_0x156; + undefined field322_0x157; + undefined field323_0x158; + undefined field324_0x159; + undefined field325_0x15a; + undefined field326_0x15b; + undefined field327_0x15c; + undefined field328_0x15d; + undefined field329_0x15e; + undefined field330_0x15f; + undefined field331_0x160; + undefined field332_0x161; + undefined field333_0x162; + undefined field334_0x163; + undefined field335_0x164; + undefined field336_0x165; + undefined field337_0x166; + undefined field338_0x167; + undefined field339_0x168; + undefined field340_0x169; + undefined field341_0x16a; + undefined field342_0x16b; + undefined field343_0x16c; + undefined field344_0x16d; + undefined field345_0x16e; + undefined field346_0x16f; + undefined field347_0x170; + undefined field348_0x171; + undefined field349_0x172; + undefined field350_0x173; + undefined field351_0x174; + undefined field352_0x175; + undefined field353_0x176; + undefined field354_0x177; + undefined field355_0x178; + undefined field356_0x179; + undefined field357_0x17a; + undefined field358_0x17b; + undefined field359_0x17c; + undefined field360_0x17d; + undefined field361_0x17e; + undefined field362_0x17f; + undefined field363_0x180; + undefined field364_0x181; + undefined field365_0x182; + undefined field366_0x183; + undefined field367_0x184; + undefined field368_0x185; + undefined field369_0x186; + undefined field370_0x187; +}; +typedef struct _tdstAllRetMicroSound tdstAllRetMicroSound; +typedef struct GLI_Camera GLI_Camera, *PGLI_Camera; +struct GLI_Camera { + long lSizeOfThis; + long lTypeOfThis; + long lCameraMode; + struct POS_stCompletePosition stMatrix; + float xAlphaX; + float xAlphaY; + GLI_tdxValue xNear; + GLI_tdxValue xFar; + GLI_tdxValue xScreen; + struct GLI_tdst2DVertex stScale; + struct GLI_tdst2DVertex stTrans; + long lVptInitialHeight; + long lVptInitialWidth; + struct MTH3_Vector stNormPlaneLeft; + float xDistPlaneLeft; + struct MTH3_Vector stNormPlaneRight; + float xDistPlaneRight; + struct MTH3_Vector stNormPlaneUp; + float xDistPlaneUp; + struct MTH3_Vector stNormPlaneDown; + float xDistPlaneDown; + float xRatio; +}; +typedef struct mod1_ptrs mod1_ptrs, *Pmod1_ptrs; +struct mod1_ptrs { + pointer field0_0x0; + pointer field1_0x4; + pointer field2_0x8; +}; +typedef struct GLI_tdstViewportManagement GLI_tdstViewportManagement, *PGLI_tdstViewportManagement; +struct GLI_tdstViewportManagement { + struct HIE_tdstSuperObject *hCamera; + struct HIE_tdstSuperObject *hTempCamera; + struct GLI_Camera *p_stCamera; + ACP_tdxBool bValid; +}; +typedef struct tdstSubAnim3d_ tdstSubAnim3d; +typedef struct _RollOffParam RollOffParam; +typedef HANDLE SND_FileHandle; +typedef struct windowInnerParams windowInnerParams, *PwindowInnerParams; +struct windowInnerParams { + undefined4 field0_0x0; + undefined field1_0x4; + undefined field2_0x5; + undefined field3_0x6; + undefined field4_0x7; + undefined field5_0x8; + undefined field6_0x9; + undefined field7_0xa; + undefined field8_0xb; + undefined field9_0xc; + undefined field10_0xd; + undefined field11_0xe; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; +}; +typedef struct GAM_as4_inner GAM_as4_inner, *PGAM_as4_inner; +struct GAM_as4_inner { + dword unk; + byte tag; /* Created by retype action */ + undefined field2_0x5; + undefined field3_0x6; + undefined field4_0x7; + undefined field5_0x8; + undefined field6_0x9; + undefined field7_0xa; + undefined field8_0xb; + undefined field9_0xc; + undefined field10_0xd; + undefined field11_0xe; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + float field25_0x1c; + undefined field26_0x20; + undefined field27_0x21; + undefined field28_0x22; + undefined field29_0x23; + float field30_0x24; + undefined field31_0x28; + undefined field32_0x29; + undefined field33_0x2a; + undefined field34_0x2b; + undefined field35_0x2c; + undefined field36_0x2d; + undefined field37_0x2e; + undefined field38_0x2f; + undefined field39_0x30; + undefined field40_0x31; + undefined field41_0x32; + undefined field42_0x33; + float field43_0x34; + undefined field44_0x38; + undefined field45_0x39; + undefined field46_0x3a; + undefined field47_0x3b; + float field48_0x3c; + float field49_0x40; + dword counter; +}; +typedef struct GAM_tdstEngineOuter GAM_tdstEngineOuter, *PGAM_tdstEngineOuter; +struct GAM_tdstEngineOuter { + uchar ucNumberOfLevels; + uchar ucCurrentLevel; + uchar ucPreviousLevel; + uchar ucExitIdToQuitPrevLevel; + uchar ucLevelGlobalCounter; + ACP_tdxBool xDemoMode; + uchar ucCurrentLanguage; + uchar ucNbLanguages; + ACP_tdxBool bEngineFrozen; + ACP_tdxBool bResurrection; + char cCameraMode; +}; +typedef struct _tdstMidiMemory _tdstMidiMemory, *P_tdstMidiMemory; +struct _tdstMidiMemory { +}; +typedef struct _tdstMidiMemory tdstMidiMemory; +typedef struct _tdstSwitchElement tdstSwitchElement; +typedef struct GUID *LPCGUID; +typedef struct _SND_tdstCallback _SND_tdstCallback, *P_SND_tdstCallback; +struct _SND_tdstCallback { + enum SND_tduTypeCallback eType; + union _union_2482 uCallback; + union _union_2483 uInfo; +}; +typedef struct _tdstTypeSplitDisk tdstTypeSplitDisk; +typedef struct tdst_inputAction tdst_inputAction, *Ptdst_inputAction; +struct tdst_inputAction { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + int validated; +}; +typedef void *MS_tdxHandleToCollSet; +typedef struct tdstObjectsTableElement_ *tdxHandleToObjectsTableElement; +typedef struct _tdstInfoTrackMem tdstInfoTrackMem; +typedef struct _tdstTypeSwitchDisk _tdstTypeSwitchDisk, *P_tdstTypeSwitchDisk; +struct _tdstTypeSwitchDisk { +}; +typedef struct _virtual_module *SND_VirtualModuleHandle; +typedef struct tdstCurrentModeInfo tdstCurrentModeInfo, *PtdstCurrentModeInfo; +struct tdstCurrentModeInfo { + uchar ucModuleId; + uchar ucMode; + void *p_vTdstBlockInfoOrTdstDynInfo; +}; +typedef union _tduDataMidi tduDataMidi; +typedef struct tdstNodeMainCharacter_ *MC_tdxHandleToMainCharacterNode; +typedef long SndRealTwin; +typedef struct IPT_tdstConvertValue_ IPT_tdstConvertValue_, *PIPT_tdstConvertValue_; +struct IPT_tdstConvertValue_ { +}; +typedef struct EventInTable EventInTable, *PEventInTable; +struct EventInTable { + void *p_xEvent; + uchar ucTypeOfEvent; + uchar ucPriority; + uchar ucFirstCall; + uchar ucPeriod; + ulong ulBinaryEventId; +}; +typedef struct r3_math_interface r3_math_interface, *Pr3_math_interface; +struct r3_math_interface { + undefined *field0_0x0; + undefined *field1_0x4; + undefined *field2_0x8; + undefined *field3_0xc; + undefined *float4x4_mul; + undefined *field5_0x14; + undefined *field6_0x18; + NormalizeFn *float3_normalize; + undefined *float4_normalize; + undefined *float2_transformXZ; + undefined *field10_0x28; + undefined *field11_0x2c; + undefined field12_0x30; + undefined field13_0x31; + undefined field14_0x32; + undefined field15_0x33; + undefined *field16_0x34; + undefined field17_0x38; + undefined field18_0x39; + undefined field19_0x3a; + undefined field20_0x3b; + undefined field21_0x3c; + undefined field22_0x3d; + undefined field23_0x3e; + undefined field24_0x3f; + undefined *field25_0x40; + undefined *field26_0x44; + undefined *field27_0x48; + undefined *field28_0x4c; + undefined *field29_0x50; + undefined *field30_0x54; + undefined *field31_0x58; + undefined field32_0x5c; + undefined field33_0x5d; + undefined field34_0x5e; + undefined field35_0x5f; + undefined *field36_0x60; + undefined *field37_0x64; + undefined field38_0x68; + undefined field39_0x69; + undefined field40_0x6a; + undefined field41_0x6b; + undefined *field42_0x6c; + undefined *field43_0x70; + undefined field44_0x74; + undefined field45_0x75; + undefined field46_0x76; + undefined field47_0x77; + undefined *field48_0x78; + undefined *field49_0x7c; + undefined field50_0x80; + undefined field51_0x81; + undefined field52_0x82; + undefined field53_0x83; + undefined field54_0x84; + undefined field55_0x85; + undefined field56_0x86; + undefined field57_0x87; + undefined field58_0x88; + undefined field59_0x89; + undefined field60_0x8a; + undefined field61_0x8b; + undefined field62_0x8c; + undefined field63_0x8d; + undefined field64_0x8e; + undefined field65_0x8f; + undefined field66_0x90; + undefined field67_0x91; + undefined field68_0x92; + undefined field69_0x93; + undefined field70_0x94; + undefined field71_0x95; + undefined field72_0x96; + undefined field73_0x97; + undefined field74_0x98; + undefined field75_0x99; + undefined field76_0x9a; + undefined field77_0x9b; + undefined field78_0x9c; + undefined field79_0x9d; + undefined field80_0x9e; + undefined field81_0x9f; + undefined field82_0xa0; + undefined field83_0xa1; + undefined field84_0xa2; + undefined field85_0xa3; + undefined field86_0xa4; + undefined field87_0xa5; + undefined field88_0xa6; + undefined field89_0xa7; + undefined field90_0xa8; + undefined field91_0xa9; + undefined field92_0xaa; + undefined field93_0xab; + undefined field94_0xac; + undefined field95_0xad; + undefined field96_0xae; + undefined field97_0xaf; + undefined field98_0xb0; + undefined field99_0xb1; + undefined field100_0xb2; + undefined field101_0xb3; + undefined field102_0xb4; + undefined field103_0xb5; + undefined field104_0xb6; + undefined field105_0xb7; + undefined field106_0xb8; + undefined field107_0xb9; + undefined field108_0xba; + undefined field109_0xbb; + undefined *field110_0xbc; + undefined *field111_0xc0; + undefined *field112_0xc4; + undefined *field113_0xc8; + undefined *field114_0xcc; + undefined *field115_0xd0; + undefined *field116_0xd4; + undefined *field117_0xd8; +}; +typedef struct GAM_astruct_4 GAM_astruct_4, *PGAM_astruct_4; +struct GAM_astruct_4 { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + undefined field12_0xc; + undefined field13_0xd; + undefined field14_0xe; + undefined field15_0xf; + undefined field16_0x10; + undefined field17_0x11; + undefined field18_0x12; + undefined field19_0x13; + undefined field20_0x14; + undefined field21_0x15; + undefined field22_0x16; + undefined field23_0x17; + undefined field24_0x18; + undefined field25_0x19; + undefined field26_0x1a; + undefined field27_0x1b; + undefined field28_0x1c; + undefined field29_0x1d; + undefined field30_0x1e; + undefined field31_0x1f; + undefined field32_0x20; + undefined field33_0x21; + undefined field34_0x22; + undefined field35_0x23; + undefined field36_0x24; + undefined field37_0x25; + undefined field38_0x26; + undefined field39_0x27; + undefined field40_0x28; + undefined field41_0x29; + undefined field42_0x2a; + undefined field43_0x2b; + undefined field44_0x2c; + undefined field45_0x2d; + undefined field46_0x2e; + undefined field47_0x2f; + undefined field48_0x30; + undefined field49_0x31; + undefined field50_0x32; + undefined field51_0x33; + undefined field52_0x34; + undefined field53_0x35; + undefined field54_0x36; + undefined field55_0x37; + undefined field56_0x38; + undefined field57_0x39; + undefined field58_0x3a; + undefined field59_0x3b; + undefined field60_0x3c; + undefined field61_0x3d; + undefined field62_0x3e; + undefined field63_0x3f; + undefined field64_0x40; + undefined field65_0x41; + undefined field66_0x42; + undefined field67_0x43; + undefined field68_0x44; + undefined field69_0x45; + undefined field70_0x46; + undefined field71_0x47; + undefined field72_0x48; + undefined field73_0x49; + undefined field74_0x4a; + undefined field75_0x4b; + undefined field76_0x4c; + undefined field77_0x4d; + undefined field78_0x4e; + undefined field79_0x4f; + undefined field80_0x50; + undefined field81_0x51; + undefined field82_0x52; + undefined field83_0x53; + undefined field84_0x54; + undefined field85_0x55; + undefined field86_0x56; + undefined field87_0x57; + undefined field88_0x58; + undefined field89_0x59; + undefined field90_0x5a; + undefined field91_0x5b; + undefined field92_0x5c; + undefined field93_0x5d; + undefined field94_0x5e; + undefined field95_0x5f; + undefined field96_0x60; + undefined field97_0x61; + undefined field98_0x62; + undefined field99_0x63; + undefined field100_0x64; + undefined field101_0x65; + undefined field102_0x66; + undefined field103_0x67; + struct GAM_as4_inner field104_0x68[4]; + undefined field105_0x188; + undefined field106_0x189; + undefined field107_0x18a; + undefined field108_0x18b; + undefined field109_0x18c; + undefined field110_0x18d; + undefined field111_0x18e; + undefined field112_0x18f; + undefined field113_0x190; + undefined field114_0x191; + undefined field115_0x192; + undefined field116_0x193; + undefined field117_0x194; + undefined field118_0x195; + undefined field119_0x196; + undefined field120_0x197; +}; +typedef struct _tdstRefRes tdstRefRes; +typedef struct tdstCsaList_ tdstCsaList_, *PtdstCsaList_; +struct tdstCsaList_ { +}; +typedef short ACP_tdxIndex; +typedef struct _SND_tdstBlockEvent SND_tdstBlockEvent; +typedef struct _tdstRangeSplitListDisk _tdstRangeSplitListDisk, *P_tdstRangeSplitListDisk; +struct _tdstRangeSplitListDisk { +}; +typedef struct GUID IID; +typedef struct GLD_Viewport GLD_Viewport, *PGLD_Viewport; +struct GLD_Viewport { + struct GLD_ViewportAttributes stViewAttrib; + uchar bIsLocked; +}; +typedef struct tdstFootPath_ tdstFootPath_, *PtdstFootPath_; +struct tdstFootPath_ { +}; +typedef enum tdeObjectTreeInit_ tdeObjectTreeInit; +typedef struct Couple Couple, *PCouple; +struct Couple { + ushort wChild; + ushort wFather; +}; +typedef union _SND_tduRefEvt SND_tduRefEvt; +typedef struct _tdstRangeSplitMem tdstRangeSplitMem; +typedef struct tdstProhibit_ *tdxHandleToProhibit; +typedef long SND_FileAsyncHandle; +typedef struct _SampleParam SampleParam; +typedef struct levelFixStructInner levelFixStructInner, *PlevelFixStructInner; +struct levelFixStructInner { + undefined field0_0x0; + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + int fixClass; + undefined field12_0xf; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; + undefined field26_0x1d; + undefined field27_0x1e; + undefined field28_0x1f; + undefined field29_0x20; + undefined field30_0x21; + undefined field31_0x22; + undefined field32_0x23; + undefined field33_0x24; + undefined field34_0x25; + undefined field35_0x26; + undefined field36_0x27; + undefined field37_0x28; + undefined field38_0x29; + undefined field39_0x2a; + undefined field40_0x2b; + undefined field41_0x2c; + undefined field42_0x2d; + undefined field43_0x2e; + undefined field44_0x2f; + undefined field45_0x30; + undefined field46_0x31; + undefined field47_0x32; + undefined field48_0x33; + undefined field49_0x34; + undefined field50_0x35; + undefined field51_0x36; + undefined field52_0x37; + undefined field53_0x38; + undefined field54_0x39; + undefined field55_0x3a; + undefined field56_0x3b; + undefined field57_0x3c; + undefined field58_0x3d; + undefined field59_0x3e; + undefined field60_0x3f; + undefined field61_0x40; + undefined field62_0x41; + undefined field63_0x42; + undefined4 field64_0x43; +}; +typedef td_pfn_vRefreshBufferClient *td_pfn_vRefreshBufferClient; +typedef struct r3_main_data r3_main_data, *Pr3_main_data; +struct r3_main_data { + bool field0_0x0; + bool field1_0x1; + char gameDataDir[260]; +}; +typedef struct GAM_tdstLanguageStructure GAM_tdstLanguageStructure, *PGAM_tdstLanguageStructure; +struct GAM_tdstLanguageStructure { + char szLanguageCode[20]; + char szLanguageText[20]; +}; +typedef struct _tdstTypeRandomMem _tdstTypeRandomMem, *P_tdstTypeRandomMem; +struct _tdstTypeRandomMem { +}; +typedef struct _SND_tdstBlockEvent *SND_tdxHandleToSoundEvent; +typedef struct FIL_FileHeader FIL_FileHeader, *PFIL_FileHeader; +struct FIL_FileHeader { + ulong ulWidth; + ulong ulHeight; + ulong ulImageSize; + long lChromakeyIndex; + ushort uwNbColorInPalette; + uchar ucBpcInPalette; + uchar ucBpp; + uchar ucRLECode; + uchar ucRed; + uchar ucGreen; + uchar ucBlue; + uchar ucFormat; + uchar ucVersion; +}; +typedef struct FIL_GF FIL_GF, *PFIL_GF; +struct FIL_GF { + struct FIL_FileHeader stFileHeader; + uchar *p_ucBitMap; + uchar *p_ucPalette; +}; +typedef struct _tdstTypeSequenceDisk _tdstTypeSequenceDisk, *P_tdstTypeSequenceDisk; +struct _tdstTypeSequenceDisk { +}; +typedef struct IID *LPIID; +typedef struct _SND_tdstCallback SND_tdstCallback; +typedef tdfn_vInitHandleFunction tdfn_vInitHandleFunction; +typedef struct windowInnerUnkParams windowInnerUnkParams, *PwindowInnerUnkParams; +struct windowInnerUnkParams { + int field0_0x0; /* Init equal to field_0x8 */ + int field1_0x4; /* Init equal to field_0xc */ + int field2_0x8; + int field3_0xc; + undefined4 field4_0x10; + int field5_0x14; + undefined4 field6_0x18; + int field7_0x1c; + int field8_0x20; + uint field9_0x24; + int field10_0x28; + uint field11_0x2c; + int unk2_100; + int unk3_100; + int field14_0x38; + int field15_0x3c; + int field16_0x40; + int field17_0x44; + int unk5_0; + int unk1_1000; /* width? */ + int unk4_0; + int unk0_1000; /* height? */ + int unk6_0; + int unk7_0; + undefined4 unk1_0; + uint unk_ffffffff; + undefined *unk0_0; /* set from r3_wndUnk1 */ + undefined field27_0x6c; + undefined field28_0x6d; + undefined field29_0x6e; + undefined field30_0x6f; +}; +typedef struct GLI_tdstMaterial GLI_tdstMaterial, *PGLI_tdstMaterial; +struct GLI_tdstMaterial { + ulong ulMaterialType; + struct GEO_tdstColor stAmbient; + struct GEO_tdstColor stDiffuse; + struct GEO_tdstColor stSpecular; + struct GEO_tdstColor stColor; + long lSpecularExponent; + struct GLI_Texture *p_stTexture; + float xAddU; + float xAddV; + float xConstantAddU; + float xConstantAddV; + long lIncrementIsEnable; + ulong dwActualRefreshNumber; + struct GLI_tdstAnimatedTextureNode *p_stFirstAnimatedTextureNode; + struct GLI_tdstAnimatedTextureNode *p_stActualAnimatedTextureNode; + long lNumberOfDisplayNode; + float xActualDisplayTimeSinceStartOfLastTexture; + ACP_tdxBool xIsLocked; +}; +typedef struct tdstLipsSynchroTable_ *tdxHandleOfLipsSynchroTable; +typedef struct tdstAlwaysModelList_ tdstAlwaysModelList_, *PtdstAlwaysModelList_; +struct tdstAlwaysModelList_ { +}; +typedef struct _tdstSwitchList tdstSwitchList; +typedef struct r3_astruct_2 r3_astruct_2, *Pr3_astruct_2; +struct r3_astruct_2 { + struct GLI_Camera *camera0; + float f1; + float f2; + float f3; + struct IDirect3DSurface8 *d3dSurface; +}; +typedef struct tdstZdxList_ tdstZdxList_, *PtdstZdxList_; +struct tdstZdxList_ { +}; +typedef struct Frame3d Frame3d, *PFrame3d; +struct Frame3d { + struct Element3d *p_stArrayOfElts3d; + struct MTH3D_Matrix *p_stAngularSpeedMatrix; + struct MTH3_Vector *p_stLinearSpeedVector; + struct tdstPLA_Hierarchy *p_stHierarchy; +}; +typedef struct _tdstFormatPCM tdstFormatMPEG; +typedef uint SCR_tdx_Hash_Key; +typedef struct FMTID *LPFMTID; +typedef struct _tdstFormatPCM tdstFormatPCM; +typedef struct _s_FuncInfo FuncInfo; +typedef struct tdstAChannel_ *CHN_tdxHandleToChannel; +typedef void *MS_tdxHandleToDynam; +typedef struct _tdstRangeSplitListDisk tdstRangeSplitListDisk; +typedef struct tdstParticleGenerator_ tdstParticleGenerator_, *PtdstParticleGenerator_; +struct tdstParticleGenerator_ { +}; +typedef struct tdstViewportManagement_ *tdxHandleToViewportManagement; +typedef struct levelFixStruct levelFixStruct, *PlevelFixStruct; +struct levelFixStruct { + byte field0_0x0; /* stripped of usually */ + undefined field1_0x1; + undefined field2_0x2; + undefined field3_0x3; + undefined field4_0x4; + undefined field5_0x5; + undefined field6_0x6; + undefined field7_0x7; + undefined field8_0x8; + undefined field9_0x9; + undefined field10_0xa; + undefined field11_0xb; + int fixClass; + undefined field13_0x10; + undefined field14_0x11; + undefined field15_0x12; + undefined field16_0x13; + undefined field17_0x14; + undefined field18_0x15; + undefined field19_0x16; + undefined field20_0x17; + undefined field21_0x18; + undefined field22_0x19; + undefined field23_0x1a; + undefined field24_0x1b; + undefined field25_0x1c; + undefined field26_0x1d; + undefined field27_0x1e; + undefined field28_0x1f; + undefined field29_0x20; + undefined field30_0x21; + undefined field31_0x22; + undefined field32_0x23; + undefined field33_0x24; + undefined field34_0x25; + undefined field35_0x26; + undefined field36_0x27; + undefined field37_0x28; + undefined field38_0x29; + undefined field39_0x2a; + undefined field40_0x2b; + undefined field41_0x2c; + undefined field42_0x2d; + undefined field43_0x2e; + undefined field44_0x2f; + undefined field45_0x30; + undefined field46_0x31; + undefined field47_0x32; + undefined field48_0x33; + undefined field49_0x34; + undefined field50_0x35; + undefined field51_0x36; + undefined field52_0x37; + undefined field53_0x38; + undefined field54_0x39; + undefined field55_0x3a; + undefined field56_0x3b; + undefined field57_0x3c; + undefined field58_0x3d; + undefined field59_0x3e; + undefined field60_0x3f; + undefined field61_0x40; + undefined field62_0x41; + undefined field63_0x42; + undefined field64_0x43; + undefined4 field65_0x44; +}; +typedef struct _tdstTypeRandomMem tdstTypeRandomMem; +typedef td_fn_vTimerEventCallback *td_p_fn_vTimerEventCallback; +typedef struct tdstLastErrorInfo tdstLastErrorInfo, *PtdstLastErrorInfo; +struct tdstLastErrorInfo { + word lastErr; + char ucLastFailedModuleId; + dword ulChannelId; +}; +typedef struct GLI_Texture GLI_Texture, *PGLI_Texture; +struct GLI_Texture { + uchar bIsAvailable; + long lTextureQuality; + void *p_vBitMap; + void *p_vColorTable; + void *p_stSpecParam; + ulong ulTextureCaps; + ushort uwHeight; + ushort uwWidth; + ushort uwRealHeight; + ushort uwRealWidth; + float xAddU; + float xAddV; + uchar lIncrementIsEnable; + ulong ulChromakeyColorRGBA; + long lNumberOfLod; + ulong ulCompressionCounter; + ulong ulTypeOfCompression; + ulong ulTypeOfMipMapping; + struct GLI_Texture *p_TextureOfSubstitution; + uchar ucBilinearMode; + uchar ucCyclingMode; + char szFileName[128]; +}; +typedef struct _tdstTypeSequenceDisk tdstTypeSequenceDisk; typedef struct INO_unk_joy INO_unk_joy, *PINO_unk_joy; - struct INO_unk_joy { byte field0_0x0; undefined field1_0x1; @@ -4516,1618 +5429,29 @@ struct INO_unk_joy { undefined field266_0x122; undefined field267_0x123; }; - -typedef struct IPT_tdstConvertValue_ IPT_tdstConvertValue_, *PIPT_tdstConvertValue_; - -struct IPT_tdstConvertValue_ { -}; - -typedef struct IPT_tdstEntryElement_ IPT_tdstEntryElement_, *PIPT_tdstEntryElement_; - -struct IPT_tdstEntryElement_ { - IPT_tdxHandleToEntryElement hNextBrotherDyn; - IPT_tdxHandleToEntryElement hPrevBrotherDyn; - struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn *hFatherDyn; - struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn hKeyWordList; - ulong ulNumberOfKeyWordElement; - struct IPT_tdstKeyWordElement_ *d_stKeyWordElementArray; - char *p_szActionName; - char *p_szEntryName; - long lState; - float xAnalogicValue; - uchar bIsActivate; -}; - -typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement_, *PIPT_tdstHistoricElement_; - -struct IPT_tdstHistoricElement_ { - uchar bf2State; - uchar bf6DeviceType; - uchar ucCounter; - short swDeviceValue; -}; - -typedef struct IPT_tdstInput_ IPT_tdstInput_, *PIPT_tdstInput_; - -struct IPT_tdstInput_ { - uchar ucOnePadActivate; - uchar p_ucValideAndActiveDevice[0]; - uchar p_ucKeyboardCounter[256]; - uchar p_ucPadAndJoyCounter[0][0]; - SCR_tdst_Link_Table stEntryLink; - SCR_tdst_Link_Table stCommandLink; - uchar ucKeyboardType; - ulong ulNumberOfEntryElement; - struct IPT_tdstEntryElement_ *d_stEntryElementArray; - struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn hEntryElement; - short sEventHistoricSize; - IPT_tdxHandleToHistoricElement hEventHistoric; -}; - -typedef struct IPT_tdstKeyAndPadDefine_ IPT_tdstKeyAndPadDefine_, *PIPT_tdstKeyAndPadDefine_; - -struct IPT_tdstKeyAndPadDefine_ { - ushort uwBasedKey; - char *p_szFrenchKey; - char *p_szAmericanKey; -}; - -typedef struct IPT_tdstKeyWordElement_ IPT_tdstKeyWordElement_, *PIPT_tdstKeyWordElement_; - -struct IPT_tdstKeyWordElement_ { - IPT_tdxHandleToKeyWordElement hNextBrotherDyn; - IPT_tdxHandleToKeyWordElement hPrevBrotherDyn; - struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn *hFatherDyn; - union tdu_KeyWordElementUnion_ u_ElementUnion; - uchar ucResult; - uchar ucMinCounterInput; - uchar ucMaxCounterInput; -}; - -typedef struct IPT_tdstScriptValue_ IPT_tdstScriptValue_, *PIPT_tdstScriptValue_; - -struct IPT_tdstScriptValue_ { -}; - -typedef struct levelFixStruct levelFixStruct, *PlevelFixStruct; - -struct levelFixStruct { - byte field0_0x0; /* stripped of usually */ - undefined field1_0x1; - undefined field2_0x2; - undefined field3_0x3; - undefined field4_0x4; - undefined field5_0x5; - undefined field6_0x6; - undefined field7_0x7; - undefined field8_0x8; - undefined field9_0x9; - undefined field10_0xa; - undefined field11_0xb; - int fixClass; - undefined field13_0x10; - undefined field14_0x11; - undefined field15_0x12; - undefined field16_0x13; - undefined field17_0x14; - undefined field18_0x15; - undefined field19_0x16; - undefined field20_0x17; - undefined field21_0x18; - undefined field22_0x19; - undefined field23_0x1a; - undefined field24_0x1b; - undefined field25_0x1c; - undefined field26_0x1d; - undefined field27_0x1e; - undefined field28_0x1f; - undefined field29_0x20; - undefined field30_0x21; - undefined field31_0x22; - undefined field32_0x23; - undefined field33_0x24; - undefined field34_0x25; - undefined field35_0x26; - undefined field36_0x27; - undefined field37_0x28; - undefined field38_0x29; - undefined field39_0x2a; - undefined field40_0x2b; - undefined field41_0x2c; - undefined field42_0x2d; - undefined field43_0x2e; - undefined field44_0x2f; - undefined field45_0x30; - undefined field46_0x31; - undefined field47_0x32; - undefined field48_0x33; - undefined field49_0x34; - undefined field50_0x35; - undefined field51_0x36; - undefined field52_0x37; - undefined field53_0x38; - undefined field54_0x39; - undefined field55_0x3a; - undefined field56_0x3b; - undefined field57_0x3c; - undefined field58_0x3d; - undefined field59_0x3e; - undefined field60_0x3f; - undefined field61_0x40; - undefined field62_0x41; - undefined field63_0x42; - undefined field64_0x43; - undefined4 field65_0x44; -}; - -typedef struct levelFixStructInner levelFixStructInner, *PlevelFixStructInner; - -struct levelFixStructInner { - undefined field0_0x0; - undefined field1_0x1; - undefined field2_0x2; - undefined field3_0x3; - undefined field4_0x4; - undefined field5_0x5; - undefined field6_0x6; - undefined field7_0x7; - undefined field8_0x8; - undefined field9_0x9; - undefined field10_0xa; - int fixClass; - undefined field12_0xf; - undefined field13_0x10; - undefined field14_0x11; - undefined field15_0x12; - undefined field16_0x13; - undefined field17_0x14; - undefined field18_0x15; - undefined field19_0x16; - undefined field20_0x17; - undefined field21_0x18; - undefined field22_0x19; - undefined field23_0x1a; - undefined field24_0x1b; - undefined field25_0x1c; - undefined field26_0x1d; - undefined field27_0x1e; - undefined field28_0x1f; - undefined field29_0x20; - undefined field30_0x21; - undefined field31_0x22; - undefined field32_0x23; - undefined field33_0x24; - undefined field34_0x25; - undefined field35_0x26; - undefined field36_0x27; - undefined field37_0x28; - undefined field38_0x29; - undefined field39_0x2a; - undefined field40_0x2b; - undefined field41_0x2c; - undefined field42_0x2d; - undefined field43_0x2e; - undefined field44_0x2f; - undefined field45_0x30; - undefined field46_0x31; - undefined field47_0x32; - undefined field48_0x33; - undefined field49_0x34; - undefined field50_0x35; - undefined field51_0x36; - undefined field52_0x37; - undefined field53_0x38; - undefined field54_0x39; - undefined field55_0x3a; - undefined field56_0x3b; - undefined field57_0x3c; - undefined field58_0x3d; - undefined field59_0x3e; - undefined field60_0x3f; - undefined field61_0x40; - undefined field62_0x41; - undefined field63_0x42; - undefined4 field64_0x43; -}; - -typedef struct LevelLoadState LevelLoadState, *PLevelLoadState; - -struct LevelLoadState { - undefined *ptrSized; /* len = size * 8 */ - dword ptrSize; -}; - -typedef struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn, *PLST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn; - -struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn { - struct FIL_FileNameListElement *hFirstElementDyn; - struct FIL_FileNameListElement *hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn, *PLST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn; - -struct LST2_tdstAnchorToFIL_tdxHandleToFileNameListElementDyn { - struct FIL_FileNameListElement *hFirstElementDyn; - struct FIL_FileNameListElement *hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorToGLI_tdstNodeCameraDyn LST2_tdstAnchorToGLI_tdstNodeCameraDyn, *PLST2_tdstAnchorToGLI_tdstNodeCameraDyn; - -struct LST2_tdstAnchorToGLI_tdstNodeCameraDyn { -}; - -typedef struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn, *PLST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn; - -struct LST2_tdstAnchorToIPT_tdxHandleToEntryElementDyn { - IPT_tdxHandleToEntryElement hFirstElementDyn; - IPT_tdxHandleToEntryElement hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn, *PLST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn; - -struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn { - IPT_tdxHandleToKeyWordElement hFirstElementDyn; - IPT_tdxHandleToKeyWordElement hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn, *PLST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn; - -struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn { -}; - -typedef struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk, *PLST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk; - -struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk { - MC_tdxHandleToMainCharacterNode hFirstElementSLk; - MC_tdxHandleToMainCharacterNode hLastElementSLk; - long lNumberOfElementsSLk; -}; - -typedef struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn, *PLST2_tdstAnchorTotdhHandleToObjectTypeElementDyn; - -struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn { - ObjectTypeElementHandle hFirstElementDyn; - ObjectTypeElementHandle hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn, *PLST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn; - -struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeDyn { -}; - -typedef struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk, *PLST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk; - -struct LST2_tdstAnchorTotdxHandleToAlwaysActiveCharacterNodeSLk { - tdxHandleToAlwaysActiveCharacterNode hFirstElementSLk; - tdxHandleToAlwaysActiveCharacterNode hLastElementSLk; - long lNumberOfElementsSLk; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToFamilyListDyn LST2_tdstAnchorTotdxHandleToFamilyListDyn, *PLST2_tdstAnchorTotdxHandleToFamilyListDyn; - -struct LST2_tdstAnchorTotdxHandleToFamilyListDyn { - tdxHandleToFamilyList hFirstElementDyn; - tdxHandleToFamilyList hLastElementDyn; - long lNumberOfElementsDyn; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn LST2_tdstAnchorTotdxHandleToNodeCameraDyn, *PLST2_tdstAnchorTotdxHandleToNodeCameraDyn; - -struct LST2_tdstAnchorTotdxHandleToNodeCameraDyn { -}; - -typedef struct LST2_tdstAnchorTotdxHandleToNodeCameraSLk LST2_tdstAnchorTotdxHandleToNodeCameraSLk, *PLST2_tdstAnchorTotdxHandleToNodeCameraSLk; - -struct LST2_tdstAnchorTotdxHandleToNodeCameraSLk { - struct NodeCamera *hFirstElementSLk; - struct NodeCamera *hLastElementSLk; - long lNumberOfElementsSLk; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk, *PLST2_tdstAnchorTotdxHandleToObjectsTablesListSLk; - -struct LST2_tdstAnchorTotdxHandleToObjectsTablesListSLk { - tdxHandleToObjectsTablesList hFirstElementSLk; - tdxHandleToObjectsTablesList hLastElementSLk; - long lNumberOfElementsSLk; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToProhibitSLk LST2_tdstAnchorTotdxHandleToProhibitSLk, *PLST2_tdstAnchorTotdxHandleToProhibitSLk; - -struct LST2_tdstAnchorTotdxHandleToProhibitSLk { - tdxHandleToProhibit hFirstElementSLk; - tdxHandleToProhibit hLastElementSLk; - long lNumberOfElementsSLk; -}; - -typedef struct LST2_tdstAnchorTotdxHandleToStateSLk LST2_tdstAnchorTotdxHandleToStateSLk, *PLST2_tdstAnchorTotdxHandleToStateSLk; - -struct LST2_tdstAnchorTotdxHandleToStateSLk { - tdxHandleToState hFirstElementSLk; - tdxHandleToState hLastElementSLk; - long lNumberOfElementsSLk; -}; - typedef struct LST2_tdstAnchorTotdxHandleToTransitionSLk LST2_tdstAnchorTotdxHandleToTransitionSLk, *PLST2_tdstAnchorTotdxHandleToTransitionSLk; - struct LST2_tdstAnchorTotdxHandleToTransitionSLk { - tdxHandleToTransition hFirstElementSLk; - tdxHandleToTransition hLastElementSLk; + struct tdxHandleToTransition hFirstElementSLk; + struct tdxHandleToTransition hLastElementSLk; long lNumberOfElementsSLk; }; - -typedef struct m7_init_struct m7_init_struct, *Pm7_init_struct; - -struct m7_init_struct { - dword threadSignal0; - dword threadSignal1; - byte field2_0x8; - byte field3_0x9; - byte field4_0xa; - byte field5_0xb; - byte field6_0xc; - byte field7_0xd; - byte field8_0xe; - byte field9_0xf; - byte field10_0x10; - byte field11_0x11; - undefined1 field12_0x12; - byte field13_0x13; - byte field14_0x14; - byte field15_0x15; - byte field16_0x16; - byte field17_0x17; - byte field18_0x18; -}; - -typedef struct mod1_ptrs mod1_ptrs, *Pmod1_ptrs; - -struct mod1_ptrs { - pointer field0_0x0; - pointer field1_0x4; - pointer field2_0x8; -}; - -typedef struct MTH3_Vector MTH3_Vector, *PMTH3_Vector; - -struct MTH3_Vector { - float xX; - float xY; - float xZ; -}; - -typedef struct MTH3D_Matrix MTH3D_Matrix, *PMTH3D_Matrix; - -struct MTH3D_Matrix { - struct MTH3_Vector stCol_0; - struct MTH3_Vector stCol_1; - struct MTH3_Vector stCol_2; -}; - -typedef struct NodeCamera NodeCamera, *PNodeCamera; - -struct NodeCamera { -}; - -typedef struct POS_stCompletePosition POS_stCompletePosition, *PPOS_stCompletePosition; - -struct POS_stCompletePosition { - ulong ulType; - struct MTH3_Vector stTranslationVector; - struct MTH3D_Matrix stRotationMatrix; - struct MTH3D_Matrix stTransformMatrix; -}; - -typedef struct r3_astruct_2 r3_astruct_2, *Pr3_astruct_2; - -struct r3_astruct_2 { - struct GLI_Camera *camera0; - float f1; - float f2; - float f3; - struct IDirect3DSurface8 *d3dSurface; -}; - -typedef struct r3_graphics_data r3_graphics_data, *Pr3_graphics_data; - -struct r3_graphics_data { - int field0_0x0; - int field1_0x4; - uint field2_0x8; - uint field3_0xc; - float field4_0x10; - float field5_0x14; - float field6_0x18; - int field7_0x1c; - float field8_0x20; - float field9_0x24; - float field10_0x28; - int field11_0x2c; - int field12_0x30; - int field13_0x34; - int field14_0x38; - undefined field15_0x3c; - undefined field16_0x3d; - undefined field17_0x3e; - undefined field18_0x3f; - int field19_0x40; - int field20_0x44; - int field21_0x48; - undefined field22_0x4c; - undefined field23_0x4d; - undefined field24_0x4e; - undefined field25_0x4f; - float field26_0x50; - float field27_0x54; - uint field28_0x58; - uint field29_0x5c; - uint field30_0x60; - struct IDirect3DVertexBuffer8 **field31_0x64; - undefined field32_0x68; - undefined field33_0x69; - undefined field34_0x6a; - undefined field35_0x6b; - int field36_0x6c; - int *field37_0x70; - float **field38_0x74; - int field39_0x78; - undefined field40_0x7c; - undefined field41_0x7d; - undefined field42_0x7e; - undefined field43_0x7f; - undefined field44_0x80; - undefined field45_0x81; - undefined field46_0x82; - undefined field47_0x83; - undefined field48_0x84; - undefined field49_0x85; - undefined field50_0x86; - undefined field51_0x87; - undefined field52_0x88; - undefined field53_0x89; - undefined field54_0x8a; - undefined field55_0x8b; - undefined field56_0x8c; - undefined field57_0x8d; - undefined field58_0x8e; - undefined field59_0x8f; - undefined field60_0x90; - undefined field61_0x91; - undefined field62_0x92; - undefined field63_0x93; - undefined field64_0x94; - undefined field65_0x95; - undefined field66_0x96; - undefined field67_0x97; - undefined field68_0x98; - undefined field69_0x99; - undefined field70_0x9a; - undefined field71_0x9b; - undefined field72_0x9c; - undefined field73_0x9d; - undefined field74_0x9e; - undefined field75_0x9f; - undefined field76_0xa0; - undefined field77_0xa1; - undefined field78_0xa2; - undefined field79_0xa3; - undefined field80_0xa4; - undefined field81_0xa5; - undefined field82_0xa6; - undefined field83_0xa7; - undefined field84_0xa8; - undefined field85_0xa9; - undefined field86_0xaa; - undefined field87_0xab; - undefined field88_0xac; - undefined field89_0xad; - undefined field90_0xae; - undefined field91_0xaf; - undefined field92_0xb0; - undefined field93_0xb1; - undefined field94_0xb2; - undefined field95_0xb3; - undefined field96_0xb4; - undefined field97_0xb5; - undefined field98_0xb6; - undefined field99_0xb7; - undefined field100_0xb8; - undefined field101_0xb9; - undefined field102_0xba; - undefined field103_0xbb; - undefined field104_0xbc; - undefined field105_0xbd; - undefined field106_0xbe; - undefined field107_0xbf; - undefined field108_0xc0; - undefined field109_0xc1; - undefined field110_0xc2; - undefined field111_0xc3; - undefined field112_0xc4; - undefined field113_0xc5; - undefined field114_0xc6; - undefined field115_0xc7; - undefined field116_0xc8; - undefined field117_0xc9; - undefined field118_0xca; - undefined field119_0xcb; - undefined field120_0xcc; - undefined field121_0xcd; - undefined field122_0xce; - undefined field123_0xcf; - undefined field124_0xd0; - undefined field125_0xd1; - undefined field126_0xd2; - undefined field127_0xd3; - undefined field128_0xd4; - undefined field129_0xd5; - undefined field130_0xd6; - undefined field131_0xd7; - undefined field132_0xd8; - undefined field133_0xd9; - undefined field134_0xda; - undefined field135_0xdb; - undefined field136_0xdc; - undefined field137_0xdd; - undefined field138_0xde; - undefined field139_0xdf; - undefined field140_0xe0; - undefined field141_0xe1; - undefined field142_0xe2; - undefined field143_0xe3; - undefined field144_0xe4; - undefined field145_0xe5; - undefined field146_0xe6; - undefined field147_0xe7; - undefined field148_0xe8; - undefined field149_0xe9; - undefined field150_0xea; - undefined field151_0xeb; - int numVertices; - int field153_0xf0; - int field154_0xf4; - struct IDirect3DVertexBuffer8 *baseVertexBuffer; - struct IDirect3DVertexBuffer8 *texVertexBufer; - struct IDirect3DIndexBuffer8 *indexBuffer; - float *lockedVertexBuffer; -}; - -typedef struct r3_main_data r3_main_data, *Pr3_main_data; - -struct r3_main_data { - bool field0_0x0; - bool field1_0x1; - char gameDataDir[260]; -}; - -typedef struct r3_math_interface r3_math_interface, *Pr3_math_interface; - -struct r3_math_interface { - undefined *field0_0x0; - undefined *field1_0x4; - undefined *field2_0x8; - undefined *field3_0xc; - undefined *float4x4_mul; - undefined *field5_0x14; - undefined *field6_0x18; - void (*float3_normalize)(struct Float3 *, struct Float3 *); - undefined *float4_normalize; - undefined *float2_transformXZ; - undefined *field10_0x28; - undefined *field11_0x2c; - undefined field12_0x30; - undefined field13_0x31; - undefined field14_0x32; - undefined field15_0x33; - undefined *field16_0x34; - undefined field17_0x38; - undefined field18_0x39; - undefined field19_0x3a; - undefined field20_0x3b; - undefined field21_0x3c; - undefined field22_0x3d; - undefined field23_0x3e; - undefined field24_0x3f; - undefined *field25_0x40; - undefined *field26_0x44; - undefined *field27_0x48; - undefined *field28_0x4c; - undefined *field29_0x50; - undefined *field30_0x54; - undefined *field31_0x58; - undefined field32_0x5c; - undefined field33_0x5d; - undefined field34_0x5e; - undefined field35_0x5f; - undefined *field36_0x60; - undefined *field37_0x64; - undefined field38_0x68; - undefined field39_0x69; - undefined field40_0x6a; - undefined field41_0x6b; - undefined *field42_0x6c; - undefined *field43_0x70; - undefined field44_0x74; - undefined field45_0x75; - undefined field46_0x76; - undefined field47_0x77; - undefined *field48_0x78; - undefined *field49_0x7c; - undefined field50_0x80; - undefined field51_0x81; - undefined field52_0x82; - undefined field53_0x83; - undefined field54_0x84; - undefined field55_0x85; - undefined field56_0x86; - undefined field57_0x87; - undefined field58_0x88; - undefined field59_0x89; - undefined field60_0x8a; - undefined field61_0x8b; - undefined field62_0x8c; - undefined field63_0x8d; - undefined field64_0x8e; - undefined field65_0x8f; - undefined field66_0x90; - undefined field67_0x91; - undefined field68_0x92; - undefined field69_0x93; - undefined field70_0x94; - undefined field71_0x95; - undefined field72_0x96; - undefined field73_0x97; - undefined field74_0x98; - undefined field75_0x99; - undefined field76_0x9a; - undefined field77_0x9b; - undefined field78_0x9c; - undefined field79_0x9d; - undefined field80_0x9e; - undefined field81_0x9f; - undefined field82_0xa0; - undefined field83_0xa1; - undefined field84_0xa2; - undefined field85_0xa3; - undefined field86_0xa4; - undefined field87_0xa5; - undefined field88_0xa6; - undefined field89_0xa7; - undefined field90_0xa8; - undefined field91_0xa9; - undefined field92_0xaa; - undefined field93_0xab; - undefined field94_0xac; - undefined field95_0xad; - undefined field96_0xae; - undefined field97_0xaf; - undefined field98_0xb0; - undefined field99_0xb1; - undefined field100_0xb2; - undefined field101_0xb3; - undefined field102_0xb4; - undefined field103_0xb5; - undefined field104_0xb6; - undefined field105_0xb7; - undefined field106_0xb8; - undefined field107_0xb9; - undefined field108_0xba; - undefined field109_0xbb; - undefined *field110_0xbc; - undefined *field111_0xc0; - undefined *field112_0xc4; - undefined *field113_0xc8; - undefined *field114_0xcc; - undefined *field115_0xd0; - undefined *field116_0xd4; - undefined *field117_0xd8; -}; - -typedef struct r3_TaggedFloatUnk r3_TaggedFloatUnk, *Pr3_TaggedFloatUnk; - -struct r3_TaggedFloatUnk { - uint32_t type; - struct Float4x4 mat0; - struct Float4 unk; -}; - -typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description_, *PSCR_tdst_DyAr_Description_; - -struct SCR_tdst_DyAr_Description_ { - SCR_tdst_DyAr_Element *d_stDynArray; - uint uiNumValues; - uint uiMaxValues; -}; - -typedef struct SCR_tdst_DyAr_Element_ SCR_tdst_DyAr_Element_, *PSCR_tdst_DyAr_Element_; - -struct SCR_tdst_DyAr_Element_ { - void *d_vElement; - enum SCR_tde_DyAr_State eState; -}; - -typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header_, *PSCR_tdst_DyAr_Header_; - -struct SCR_tdst_DyAr_Header_ { - uint uiIndexInArray; - uchar ucMemLevel; -}; - -typedef struct SCR_tdst_Link_AdditionalInfos_ SCR_tdst_Link_AdditionalInfos_, *PSCR_tdst_Link_AdditionalInfos_; - -struct SCR_tdst_Link_AdditionalInfos_ { - ulong ulLong1; - ulong ulLong2; - ulong ulLong3; - ulong ulLong4; -}; - -typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table_, *PSCR_tdst_Link_Table_; - -struct SCR_tdst_Link_Table_ { - SCR_tdst_DyAr_Header stHeader; - SCR_tdst_DyAr_Description stLinkArray; - SCR_tda_st_Hash_Table a_stHashTableForValues; - SCR_tda_st_Hash_Table a_stHashTableForKeys; -}; - -typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value_, *PSCR_tdst_Link_Value_; - -struct SCR_tdst_Link_Value_ { - SCR_tdst_DyAr_Header stHeader; - char *p_szKey; - ulong ulValue; - SCR_tdx_Hash_Key xHashKeyForKey; - uint uiIndexHashKeyKey; - SCR_tdx_Hash_Key xHashKeyForValue; - uint uiIndexHashKeyValue; - SCR_tde_Link_State eState; - SCR_tdst_Link_AdditionalInfos stInfos; -}; - -typedef struct SND_astruct_4 SND_astruct_4, *PSND_astruct_4; - -struct SND_astruct_4 { - int *field0_0x0; - struct SND_astruct_4 *next; - int *field2_0x8; - int *field3_0xc; - int *field4_0x10; - int *callback; /* callback? */ - int *field6_0x18; - int *field7_0x1c; -}; - -typedef struct SND_Request3 SND_Request3, *PSND_Request3; - -struct SND_Request3 { - undefined4 g_sndReq0; - undefined4 g_sndReq1; - undefined4 g_sndReq2; -}; - -typedef struct stAxisCaps stAxisCaps, *PstAxisCaps; - -struct stAxisCaps { - long m_lCenter; - long m_lRange; - long m_lThreshold; -}; - -typedef struct stDevCaps stDevCaps, *PstDevCaps; - -struct stDevCaps { - uchar m_ucNbButtons; - ulong m_ulCapsFlags; -}; - -typedef struct stDevState stDevState, *PstDevState; - -struct stDevState { - uchar m_ucStatus; -}; - -typedef struct tdst_inputAction tdst_inputAction, *Ptdst_inputAction; - -struct tdst_inputAction { - undefined field0_0x0; - undefined field1_0x1; - undefined field2_0x2; - undefined field3_0x3; - undefined field4_0x4; - undefined field5_0x5; - undefined field6_0x6; - undefined field7_0x7; - undefined field8_0x8; - undefined field9_0x9; - undefined field10_0xa; - undefined field11_0xb; - undefined field12_0xc; - undefined field13_0xd; - undefined field14_0xe; - undefined field15_0xf; - int validated; -}; - -typedef struct tdstAChannel_ tdstAChannel_, *PtdstAChannel_; - -struct tdstAChannel_ { -}; - -typedef struct tdstAlwaysActiveCharacter_ tdstAlwaysActiveCharacter_, *PtdstAlwaysActiveCharacter_; - -struct tdstAlwaysActiveCharacter_ { -}; - -typedef struct tdstAlwaysModelList_ tdstAlwaysModelList_, *PtdstAlwaysModelList_; - -struct tdstAlwaysModelList_ { -}; - -typedef struct tdstAviHeader_ tdstAviHeader_, *PtdstAviHeader_; - -struct tdstAviHeader_ { - uchar ucRIFFMark[4]; - long lLength; - uchar ucAVIMark[4]; -}; - -typedef struct tdstBlockInfo_ tdstBlockInfo_, *PtdstBlockInfo_; - -struct tdstBlockInfo_ { - char *p_cBeginBlock; - char *p_cEndBlock; - char *p_cFirstFree; - char *p_cMaxMem; -}; - -typedef struct tdstBlockInfoPriv tdstBlockInfoPriv, *PtdstBlockInfoPriv; - -struct tdstBlockInfoPriv { - char *p_cBeginBlock; - char *p_cEndBlock; - char *p_cFirstFree; - char *p_cMaxMem; -}; - -typedef struct tdstBubbleEffect_ tdstBubbleEffect_, *PtdstBubbleEffect_; - -struct tdstBubbleEffect_ { -}; - -typedef struct tdstChannelActivationStateList_ tdstChannelActivationStateList_, *PtdstChannelActivationStateList_; - -struct tdstChannelActivationStateList_ { -}; - -typedef struct tdstChannelInfo_ tdstChannelInfo_, *PtdstChannelInfo_; - -struct tdstChannelInfo_ { - ulong ulThreadId; - uchar ucGroupId; -}; - -typedef struct tdstChunkHeader_ tdstChunkHeader_, *PtdstChunkHeader_; - -struct tdstChunkHeader_ { - uchar ucChunkMark[4]; - long lChunkLength; -}; - -typedef struct tdstCsaList_ tdstCsaList_, *PtdstCsaList_; - -struct tdstCsaList_ { -}; - -typedef struct tdstCurrentModeInfo tdstCurrentModeInfo, *PtdstCurrentModeInfo; - -struct tdstCurrentModeInfo { - uchar ucModuleId; - uchar ucMode; - void *p_vTdstBlockInfoOrTdstDynInfo; -}; - -typedef struct tdstFamilyList_ tdstFamilyList_, *PtdstFamilyList_; - -struct tdstFamilyList_ { -}; - -typedef struct tdstFootPath_ tdstFootPath_, *PtdstFootPath_; - -struct tdstFootPath_ { -}; - -typedef struct tdstGeneralChannelsInfo_ tdstGeneralChannelsInfo_, *PtdstGeneralChannelsInfo_; - -struct tdstGeneralChannelsInfo_ { - uchar ucNbchannelUsed; - uchar ucMAxNbChannel; - tdstChannelInfo *d_stTabChannelInfo; -}; - -typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree_, *PtdstInformationHeaderOfBlockWithoutFree_; - -struct tdstInformationHeaderOfBlockWithoutFree_ { - uchar ucBoundededHeaderSize; - uchar ucAlignment; - uchar ucMode; -}; - -typedef struct tdstLastErrorInfo tdstLastErrorInfo, *PtdstLastErrorInfo; - -struct tdstLastErrorInfo { - word lastErr; - char ucLastFailedModuleId; - dword ulChannelId; -}; - -typedef struct tdstLipsSynchroTable_ tdstLipsSynchroTable_, *PtdstLipsSynchroTable_; - -struct tdstLipsSynchroTable_ { -}; - -typedef struct tdstMorphChannelList_ tdstMorphChannelList_, *PtdstMorphChannelList_; - -struct tdstMorphChannelList_ { -}; - -typedef struct tdstNodeMainCharacter_ tdstNodeMainCharacter_, *PtdstNodeMainCharacter_; - -struct tdstNodeMainCharacter_ { -}; - -typedef struct tdstObjectsTableElement_ tdstObjectsTableElement_, *PtdstObjectsTableElement_; - -struct tdstObjectsTableElement_ { -}; - -typedef struct tdstObjectsTablesList_ tdstObjectsTablesList_, *PtdstObjectsTablesList_; - -struct tdstObjectsTablesList_ { -}; - -typedef struct tdstObjectType_ tdstObjectType_, *PtdstObjectType_; - -struct tdstObjectType_ { - struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hFamilyType; - struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hModelType; - struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn hPersonalType; -}; - -typedef struct tdstObjectTypeElement_ tdstObjectTypeElement_, *PtdstObjectTypeElement_; - -struct tdstObjectTypeElement_ { - ObjectTypeElementHandle hNextBrotherDyn; - ObjectTypeElementHandle hPrevBrotherDyn; - struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn *hFatherDyn; - char *szName; - uchar ucElementPriority; -}; - -typedef struct tdstParticleGenerator_ tdstParticleGenerator_, *PtdstParticleGenerator_; - -struct tdstParticleGenerator_ { -}; - -typedef struct tdstPLA_Hierarchy_ tdstPLA_Hierarchy_, *PtdstPLA_Hierarchy_; - -struct tdstPLA_Hierarchy_ { - ulong ulNbOfCouples; - struct Couple *d_stCouples; -}; - -typedef struct tdstProhibit_ tdstProhibit_, *PtdstProhibit_; - -struct tdstProhibit_ { -}; - -typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList_, *PtdstSndBankDescriptorList_; - -struct tdstSndBankDescriptorList_ { -}; - -typedef struct tdstState_ tdstState_, *PtdstState_; - -struct tdstState_ { -}; - -typedef struct tdstStructureHandleFunction tdstStructureHandleFunction, *PtdstStructureHandleFunction; - -struct tdstStructureHandleFunction { - tdfn_vCopyCloneMSFunction *p_fn_vCopyCloneMSFunction; - tdfn_ulSizeofHandleFunction *p_fn_ulSizeOfFunction; - tdfn_vAllocHandleFunction *p_fn_vAllocFunction; - tdfn_vAllocHandleFunction *p_fn_vFreeFunction; - tdfn_vInitHandleFunction *p_fn_vInitFunction; - tdfn_vInitHandleFunction *p_fn_vDesinitFunction; -}; - -typedef struct tdstSubAnim3d_ tdstSubAnim3d_, *PtdstSubAnim3d_; - -struct tdstSubAnim3d_ { - uchar ucCurrentFrame; - uchar ucRepeatAnimation; - uchar ucElement; - struct tdstState_ *p_stCurrentState; -}; - -typedef struct tdstTimerCount tdstTimerCount, *PtdstTimerCount; - -struct tdstTimerCount { - ulong ulLowPart; - ulong ulHighPart; -}; - -typedef struct tdstTransition_ tdstTransition_, *PtdstTransition_; - -struct tdstTransition_ { -}; - -typedef struct tdstViewportManagement_ tdstViewportManagement_, *PtdstViewportManagement_; - -struct tdstViewportManagement_ { -}; - -typedef struct tdstWaterStreakEffect_ tdstWaterStreakEffect_, *PtdstWaterStreakEffect_; - -struct tdstWaterStreakEffect_ { -}; - -typedef struct tdstZdxList_ tdstZdxList_, *PtdstZdxList_; - -struct tdstZdxList_ { -}; - -typedef struct tdstZoneSetList_ tdstZoneSetList_, *PtdstZoneSetList_; - -struct tdstZoneSetList_ { -}; - -typedef struct TMR_tdstEngineTimerStructure TMR_tdstEngineTimerStructure, *PTMR_tdstEngineTimerStructure; - -struct TMR_tdstEngineTimerStructure { - ulong ulFrameNumber; - ushort wTimerHandle; - ulong ulCurrentTimerCount; - ulong ulDeltaTimerCount; - ulong a_ulCounter[16]; - ulong ulUsefulDeltaTime; - ulong ulPauseTime; - float xFrameLength; - struct TMR_tdstTimerCount stRealTimeCount; - struct TMR_tdstTimerCount stPauseTime; - ulong ulTickPerMs; -}; - -typedef struct TMR_tdstTimerCount TMR_tdstTimerCount, *PTMR_tdstTimerCount; - -struct TMR_tdstTimerCount { - ulong ulLowPart; - ulong ulHighPart; -}; - -typedef struct TMR_tdstTimerCount TMR_tdstTimerCount, *PTMR_tdstTimerCount; - -struct TMR_tdstTimerCount { - ulong ulLowPart; - ulong ulHighPart; -}; - -typedef struct windowInnerParams windowInnerParams, *PwindowInnerParams; - -struct windowInnerParams { - undefined4 field0_0x0; - undefined field1_0x4; - undefined field2_0x5; - undefined field3_0x6; - undefined field4_0x7; - undefined field5_0x8; - undefined field6_0x9; - undefined field7_0xa; - undefined field8_0xb; - undefined field9_0xc; - undefined field10_0xd; - undefined field11_0xe; - undefined field12_0xf; - undefined field13_0x10; - undefined field14_0x11; - undefined field15_0x12; - undefined field16_0x13; - undefined field17_0x14; - undefined field18_0x15; - undefined field19_0x16; - undefined field20_0x17; - undefined field21_0x18; - undefined field22_0x19; - undefined field23_0x1a; - undefined field24_0x1b; - undefined field25_0x1c; -}; - -typedef struct windowInnerUnkParams windowInnerUnkParams, *PwindowInnerUnkParams; - -struct windowInnerUnkParams { - int field0_0x0; /* Init equal to field_0x8 */ - int field1_0x4; /* Init equal to field_0xc */ - int field2_0x8; - int field3_0xc; - undefined4 field4_0x10; - int field5_0x14; - undefined4 field6_0x18; - int field7_0x1c; - int field8_0x20; - uint field9_0x24; - int field10_0x28; - uint field11_0x2c; - int unk2_100; - int unk3_100; - int field14_0x38; - int field15_0x3c; - int field16_0x40; - int field17_0x44; - int unk5_0; - int unk1_1000; /* width? */ - int unk4_0; - int unk0_1000; /* height? */ - int unk6_0; - int unk7_0; - undefined4 unk1_0; - uint unk_ffffffff; - undefined *unk0_0; /* set from r3_wndUnk1 */ - undefined field27_0x6c; - undefined field28_0x6d; - undefined field29_0x6e; - undefined field30_0x6f; -}; - -typedef ulong ACP_tdxAddress; - -typedef uchar ACP_tdxBool; - -typedef short ACP_tdxIndex; - -typedef struct tdstAlwaysModelList_ *ALW_tdxHandleToModelList; - -typedef struct tdstChannelActivationStateList_ *CHN_tdxHandleToCASElement; - -typedef struct tdstAChannel_ *CHN_tdxHandleToChannel; - -typedef struct tdstMorphChannelList_ *CHN_tdxHandleToMorphElement; - -typedef GUID CLSID; - -typedef dword color_rgba8_t; - -typedef struct _ExtraSoundParam ExtraSoundParam; - -typedef struct FIL_ConcatFile *FIL_HandleToConcatFile; - -typedef GUID FMTID; - -typedef struct _s_FuncInfo FuncInfo; - -typedef struct tdstBubbleEffect_ *GAM_tdxHandleToBubbleEffect; - -typedef struct tdstFootPath_ *GAM_tdxHandleToFootPathEffect; - -typedef struct tdstWaterStreakEffect_ *GAM_tdxHandleToWaterStreakEffect; - -typedef float GEO_tdxColorValue; - -typedef void *GEO_tdxHandleToRadiosity; - -typedef short GLD_DeviceHandle; - -typedef struct GLD_stViewport *GLD_tdpstViewport; - -typedef struct GLD_Viewport GLD_tdstViewport; - -typedef float GLD_tdxValue; - -typedef short GLD_ViewportHandle; - -typedef float GLI_tdxValue; - -typedef void *GMT_tdxHandleToGameMaterial; - -typedef struct _GUID GUID; - -typedef struct _s_HandlerType HandlerType; - -typedef GUID IID; - -typedef struct INO_Device *INO_DeviceHandle; - -typedef short (*INO_fn_wMethod)(undefined); - -typedef struct stAxisCaps INO_tdstAxisCaps; - -typedef struct stDevCaps INO_tdstDevCaps; - -typedef struct stDevState INO_tdstDevState; - -typedef unsigned char uchar; -typedef struct IPT_tdstKeyWordElement_ *IPT_tdxHandleToKeyWordElement; - -typedef uchar (IPT_tdfn_bIsKeyWordValid)(IPT_tdxHandleToKeyWordElement); - -typedef struct IPT_tdstEntryElement_ IPT_tdstEntryElement; - -typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement; - -typedef struct IPT_tdstInput_ IPT_tdstInput; - -typedef struct IPT_tdstKeyAndPadDefine_ IPT_tdstKeyAndPadDefine; - -typedef struct IPT_tdstKeyWordElement_ IPT_tdstKeyWordElement; - -typedef struct IPT_tdstEntryElement_ *IPT_tdxHandleToEntryElement; - -typedef struct IPT_tdstHistoricElement_ *IPT_tdxHandleToHistoricElement; - -typedef struct IPT_tdstInput_ *IPT_tdxHandleToInput; - -typedef struct IPT_tdstScriptValue_ *IPT_tdxHandleToScriptValue; - -typedef GUID *LPCGUID; - -typedef CLSID *LPCLSID; - -typedef FMTID *LPFMTID; - -typedef GUID *LPGUID; - -typedef IID *LPIID; - -typedef struct tdstNodeMainCharacter_ *MC_tdxHandleToMainCharacterNode; - -typedef struct _MicroLink MicroLink; - -typedef struct _MicroParam MicroParam; - -typedef void *MS_tdxHandleTo3dData; - -typedef void *MS_tdxHandleToAnimEffect; - -typedef void *MS_tdxHandleToCineinfo; - -typedef void *MS_tdxHandleToCollSet; - -typedef void *MS_tdxHandleToDynam; - -typedef void *MS_tdxHandleToMicro; - -typedef void *MS_tdxHandleToMSLight; - -typedef void *MS_tdxHandleToMSMagnet; - -typedef void *MS_tdxHandleToMSPrtSrc; - -typedef void *MS_tdxHandleToMSSound; - -typedef void *MS_tdxHandleToMSWay; - -typedef void *MS_tdxHandleToSectInfo; - -typedef void *MS_tdxHandleToStandardGame; - -typedef struct tdstObjectTypeElement_ *ObjectTypeElementHandle; - -typedef struct POS_stCompletePosition *POS_tdxHandleToPosition; - -typedef struct levelFixStruct *relPtr; - -typedef struct _RollOffParam RollOffParam; - -typedef struct _SampleParam SampleParam; - -typedef SCR_tdst_DyAr_Description SCR_tda_st_Hash_Table[256]; - -typedef enum SCR_tde_Link_State_ SCR_tde_Link_State; - -typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description; - -typedef struct SCR_tdst_DyAr_Element_ SCR_tdst_DyAr_Element; - -typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header; - -typedef struct SCR_tdst_Link_AdditionalInfos_ SCR_tdst_Link_AdditionalInfos; - -typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table; - -typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value; - -typedef uint SCR_tdx_Hash_Key; - -typedef long SND_FileAsyncHandle; - -typedef HANDLE SND_FileHandle; - -typedef struct _SND_tdstBlockEvent SND_tdstBlockEvent; - -typedef struct _SND_tdstCallback SND_tdstCallback; - -typedef struct _SND_tdstFormat SND_tdstFormat; - -typedef struct _SND_tdstStackBuffer SND_tdstStackBuffer; - -typedef union _SND_tduRefEvt SND_tduRefEvt; - -typedef enum _SND_tdstTypeCallback SND_tduTypeCallback; - -typedef struct _SND_tdstBlockEvent *SND_tdxHandleToSoundEvent; - -typedef long SND_tdxHandleToSoundInfo; - -typedef struct _virtual_module *SND_VirtualModuleHandle; - -typedef long SndReal; - -typedef long SndRealTwin; - -typedef struct _SndVector SndVector; - -typedef struct _SoundParam SoundParam; - -typedef struct _SwitchParam SwitchParam; - -typedef void (td_fn_vTimerEventCallback)(void); - -typedef td_fn_vTimerEventCallback *td_p_fn_vTimerEventCallback; - -typedef int SndBool; - -typedef SndBool (*td_pfn_bRetChannelAbsCoord)(long, long); - -typedef SndBool (*td_pfn_bRetChannelActive)(long, long); - - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef SndBool (*td_pfn_bRetRollOffFactor)(long, RollOffParam *); - -typedef SndBool (*td_pfn_bRetSoundLink)(long, long); - -typedef long (*td_pfn_lRetSoundLong)(long); - -typedef SND_tdxHandleToSoundInfo (*td_pfn_lRetSoundSwitch)(long, long); - -typedef SndReal (*td_pfn_rRetChannelCoord)(long, long); - -typedef SndReal (*td_pfn_rRetSoundCoord)(long); - -typedef uchar (*td_pfn_ucRetSoundMidi)(long); - -typedef void (*td_pfn_vBufferClientPoped)(long, long); - - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef void (*td_pfn_vCopyString)(long, char *, long); - -typedef unsigned long ulong; - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef void (*td_pfn_vRefreshBufferClient)(long, ulong, ulong, void *); - - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef void (*td_pfn_vRetSoundExtraCoef)(long, SND_tduRefEvt, SndReal *, SndReal *, SndReal *); - - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef void (*td_pfn_vRetSoundVector)(long, SndVector *); - -typedef enum tdeObjectTreeInit_ tdeObjectTreeInit; - -typedef enum enum_2474 tdeTypeZip; - -typedef ulong (tdfn_ulSizeofHandleFunction)(void); - - - -/* Unable to write datatype. Type unrecognized: class ghidra.program.database.data.PointerDB */ - -typedef void (tdfn_vAllocHandleFunction)(struct EngineObject *); - -typedef void (tdfn_vCopyCloneMSFunction)(struct EngineObject *, struct EngineObject *); - -enum tdeObjectTreeInit_ { - OTI_WhenGameStart=0, - OTI_MapLoaded=1, - OTI_ReinitTheMap=2, - OTI_LoadSavedGame=3, - OTI_PlayerDead=4, - OTI_WhenGoOutOfZone=5, - OTI_Always=6, - OTI_AlwaysCreated=7 -}; - -typedef void (tdfn_vInitHandleFunction)(struct EngineObject *, enum tdeObjectTreeInit_); - -typedef char * (*tdpfnResNameCallback)(ulong); - -typedef struct _tdstAllRetChannelSound tdstAllRetChannelSound; - -typedef struct _tdstAllRetMicroSound tdstAllRetMicroSound; - -typedef struct _tdstAllRetObjectSound tdstAllRetObjectSound; - -typedef struct tdstAviHeader_ tdstAviHeader; - -typedef struct tdstBlockInfo_ tdstBlockInfo; - -typedef struct _tdstBlockResourceDisk tdstBlockResourceDisk; - -typedef struct _tdstBlockResourceMem tdstBlockResourceMem; - -typedef struct tdstChannelInfo_ tdstChannelInfo; - -typedef struct tdstChunkHeader_ tdstChunkHeader; - -typedef struct EngineObject tdstEngineObject; - -typedef struct _tdstFormatPCM tdstFormatADPCM; - -typedef struct _tdstFormatPCM tdstFormatMPEG; - -typedef struct _tdstFormatPCM tdstFormatPCM; - -typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree; - -typedef struct _tdstInfoTrackDisk tdstInfoTrackDisk; - -typedef struct _tdstInfoTrackList tdstInfoTrackList; - -typedef struct _tdstInfoTrackMem tdstInfoTrackMem; - -typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_2_char; - -typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_char; - -typedef struct tdstLastErrorInfo *tdstLastErrorInfo_ptr_4_dword; - -typedef struct _tdstMidiMemory tdstMidiMemory; - -typedef struct _tdstMidiStreaming tdstMidiStreaming; - -typedef struct stMorphData tdstMorphData; - -typedef struct tdstObjectType_ tdstObjectType; - -typedef struct tdstObjectTypeElement_ tdstObjectTypeElement; - -typedef struct tdstPLA_Hierarchy_ tdstPLA_Hierarchy; - -typedef struct _tdstRandomElement tdstRandomElement; - -typedef struct _tdstRangeSplitDisk tdstRangeSplitDisk; - -typedef struct _tdstRangeSplitListDisk tdstRangeSplitListDisk; - -typedef struct _tdstRangeSplitListMem tdstRangeSplitListMem; - -typedef struct _tdstRangeSplitMem tdstRangeSplitMem; - -typedef struct _tdstRefRes tdstRefRes; - -typedef struct _tdstRefResList tdstRefResList; - -typedef struct _tdstSampleMemory tdstSampleMemory; - -typedef struct _tdstSampleStreaming tdstSampleStreaming; - -typedef struct _tdstSndBankDescriptor tdstSndBankDescriptor; - -typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList; - -typedef struct _tdstSndBankHead tdstSndBankHead; - -typedef struct _tdstSndBankHeader tdstSndBankHeader; - -typedef struct _tdstSndPolyEvent tdstSndPolyEvent; - -typedef struct _tdstSndPolyResource tdstSndPolyResource; - -typedef struct tdstSubAnim3d_ tdstSubAnim3d; - -typedef struct _tdstSwitchElement tdstSwitchElement; - -typedef struct _tdstSwitchList tdstSwitchList; - -typedef struct _tdstThemeBridge tdstThemeBridge; - -typedef struct _tdstThemePart tdstThemePart; - -typedef struct _tdstThemePartOutro tdstThemePartOutro; - -typedef struct _tdstTimer tdstTimer; - -typedef struct _tdstTypeCD tdstTypeCD; - -typedef struct _tdstTypeMidiDisk tdstTypeMidiDisk; - -typedef struct _tdstTypeMidiMem tdstTypeMidiMem; - -typedef struct _tdstTypeRandomDisk tdstTypeRandomDisk; - -typedef struct _tdstTypeRandomMem tdstTypeRandomMem; - -typedef struct _tdstTypeSampleDisk tdstTypeSampleDisk; - -typedef struct _tdstTypeSampleMem tdstTypeSampleMem; - -typedef struct _tdstTypeSequenceDisk tdstTypeSequenceDisk; - -typedef struct _tdstTypeSequenceMem tdstTypeSequenceMem; - -typedef struct _tdstTypeSplitDisk tdstTypeSplitDisk; - -typedef struct _tdstTypeSplitMem tdstTypeSplitMem; - typedef struct _tdstTypeSwitchDisk tdstTypeSwitchDisk; - -typedef struct _tdstTypeSwitchMem tdstTypeSwitchMem; - -typedef struct _tdstTypeThemeDisk tdstTypeThemeDisk; - -typedef struct _tdstTypeThemeMem tdstTypeThemeMem; - -typedef union _tduBlockResource tduBlockResource; - -typedef union _tduDataMidi tduDataMidi; - -typedef union _tduDataSample tduDataSample; - -typedef union _tduRefRes tduRefRes; - -typedef union _tduResDisk tduResDisk; - -typedef union _tduResMem tduResMem; - -typedef struct tdstLipsSynchroTable_ *tdxHandleOfLipsSynchroTable; - -typedef struct tdstAlwaysActiveCharacter_ *tdxHandleToAlwaysActiveCharacterNode; - -typedef struct tdstFamilyList_ *tdxHandleToFamilyList; - -typedef struct tdstObjectsTableElement_ *tdxHandleToObjectsTableElement; - -typedef struct tdstObjectsTablesList_ *tdxHandleToObjectsTablesList; - -typedef struct tdstParticleGenerator_ *tdxHandleToParticleGenerator; - -typedef struct tdstProhibit_ *tdxHandleToProhibit; - -typedef struct tdstState_ *tdxHandleToState; - -typedef struct tdstTransition_ *tdxHandleToTransition; - -typedef struct tdstViewportManagement_ *tdxHandleToViewportManagement; - -typedef void *tdxHandleToVoid; - -typedef struct _s_TryBlockMapEntry TryBlockMapEntry; - -typedef struct _s_UnwindMapEntry UnwindMapEntry; - -typedef struct tdstCsaList_ *ZDX_tdxHandleToCsaList; - +typedef struct levelFixStruct *relPtr; +typedef struct stDevState INO_tdstDevState; +typedef struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk, *PLST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk; +struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeSLk { + struct MC_tdxHandleToMainCharacterNode hFirstElementSLk; + struct MC_tdxHandleToMainCharacterNode hLastElementSLk; + long lNumberOfElementsSLk; +}; +typedef void *MS_tdxHandleToStandardGame; +typedef struct GLD_stViewport *GLD_tdpstViewport; +typedef struct GEO_tdstBoundingSphere GEO_tdstBoundingSphere, *PGEO_tdstBoundingSphere; +struct GEO_tdstBoundingSphere { +}; +typedef enum enum_2474 tdeTypeZip; +typedef struct GLD_Viewport GLD_tdstViewport; typedef struct tdstZdxList_ *ZDX_tdxHandleToZdxList; - -typedef struct tdstZoneSetList_ *ZDX_tdxHandleToZoneSetList; - +typedef float GEO_tdxColorValue; +typedef struct _SND_tdstFormat SND_tdstFormat; #endif // GH_GENERATED_STRUCTS_H diff --git a/game_re/r3/binders/base.h b/game_re/r3/binders/base.h index 3aa4467a..6a89883a 100644 --- a/game_re/r3/binders/base.h +++ b/game_re/r3/binders/base.h @@ -19,6 +19,9 @@ typedef uint32_t undefined4; typedef uint16_t undefined2; typedef uint16_t word; typedef uint32_t dword; +typedef unsigned long ulong; +typedef unsigned char uchar; + struct undefined3 { uint8_t _0; uint8_t _1; diff --git a/java/ghidra/re3lib/DataTypeWriter.java b/java/ghidra/re3lib/DataTypeWriter.java index f72b81de..780b0f4e 100644 --- a/java/ghidra/re3lib/DataTypeWriter.java +++ b/java/ghidra/re3lib/DataTypeWriter.java @@ -8,14 +8,7 @@ import ghidra.util.exception.CancelledException; import ghidra.util.task.TaskMonitor; import java.io.IOException; import java.io.Writer; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; public class DataTypeWriter { public HashSet blacklistedTypes; @@ -25,14 +18,26 @@ public class DataTypeWriter { private static String[] INTEGRAL_MODIFIERS = new String[] { "signed", "unsigned", "const", "static", "volatile", "mutable" }; private static String EOL = System.getProperty("line.separator"); - private Set resolved; - private Map resolvedTypeMap; + private Writer writer; private DataTypeManager dtm; private DataOrganization dataOrganization; private AnnotationHandler annotator; private boolean cppStyleComments; + // Block represents a single data type declaration with its dependencies + private static class Block { + final DataType dataType; + final String code; + final Set dependencies; + + Block(DataType dataType, String code, Set dependencies) { + this.dataType = dataType; + this.code = code; + this.dependencies = new HashSet<>(dependencies); + } + } + public DataTypeWriter(DataTypeManager dtm, Writer writer) throws IOException { this(dtm, writer, new DefaultAnnotationHandler()); } @@ -48,8 +53,6 @@ public class DataTypeWriter { public DataTypeWriter(DataTypeManager dtm, Writer writer, AnnotationHandler annotator, boolean cppStyleComments) throws IOException { this.blacklistedTypes = new HashSet<>(); - this.resolved = new HashSet(); - this.resolvedTypeMap = new HashMap(); this.cppStyleComments = false; this.dtm = dtm; if (dtm != null) { @@ -63,9 +66,6 @@ public class DataTypeWriter { this.writer = writer; this.annotator = annotator; this.cppStyleComments = cppStyleComments; - if (dtm != null) { - // this.writeBuiltInDeclarations(dtm); - } } private String comment(String text) { @@ -95,23 +95,10 @@ public class DataTypeWriter { this.write(subCategory, monitor); } - } public void write(DataType[] dataTypes, TaskMonitor monitor) throws IOException, CancelledException { - monitor.initialize((long) dataTypes.length); - int cnt = 0; - DataType[] var4 = dataTypes; - int var5 = dataTypes.length; - - for (int var6 = 0; var6 < var5; ++var6) { - DataType dataType = var4[var6]; - monitor.checkCancelled(); - this.write(dataType, monitor); - ++cnt; - monitor.setProgress((long) cnt); - } - + write(Arrays.asList(dataTypes), monitor); } public void write(List dataTypes, TaskMonitor monitor) throws IOException, CancelledException { @@ -120,596 +107,374 @@ public class DataTypeWriter { public void write(List dataTypes, TaskMonitor monitor, boolean throwExceptionOnInvalidType) throws IOException, CancelledException { - // Sort types to handle dependencies - List sortedTypes = sortTypesByDependencies(dataTypes); + monitor.initialize((long) dataTypes.size()); + + // Step 1: Create blocks for each data type + Map blocks = new HashMap<>(); - monitor.initialize((long) sortedTypes.size()); int cnt = 0; - - for (DataType dataType : sortedTypes) { + for (DataType dataType : dataTypes) { monitor.checkCancelled(); - this.writeType(dataType, monitor, throwExceptionOnInvalidType); + + if (dataType == null || blacklistedTypes.contains(dataType.getDisplayName())) { + continue; + } + + try { + Block block = createBlock(dataType); + if (block != null) { + blocks.put(dataType.getDisplayName(), block); + } + } catch (Exception e) { + if (throwExceptionOnInvalidType) { + throw new IOException("Failed to process data type: " + dataType.getDisplayName(), e); + } + Msg.error(this, "Failed to process data type: " + dataType.getDisplayName(), e); + } + ++cnt; monitor.setProgress((long) cnt); } + + // Step 2: Topological sort and write + List sortedBlocks = topologicalSort(blocks); + for (Block block : sortedBlocks) { + writer.write(block.code); + writer.write(EOL); + } + + writer.flush(); } - private List sortTypesByDependencies(List dataTypes) { - // Simple dependency sorting - write forward declarations for composites first, - // then non-composites, then composite bodies - List forwardDeclarations = new ArrayList<>(); - List nonComposites = new ArrayList<>(); - List composites = new ArrayList<>(); + private Block createBlock(DataType dt) throws IOException { + if (dt instanceof FunctionDefinition || dt instanceof FactoryDataType) { + return null; // Skip these types + } - for (DataType dt : dataTypes) { - if (dt instanceof Structure || dt instanceof Union) { - composites.add(dt); - } else { - nonComposites.add(dt); + dt = dt.clone(this.dtm); + Set dependencies = new HashSet<>(); + StringBuilder code = new StringBuilder(); + + if (dt.equals(DataType.DEFAULT)) { + code.append("typedef unsigned char ").append(DataType.DEFAULT.getName()).append(";"); + } else if (dt instanceof Dynamic) { + // Handle dynamic types + Dynamic dynamicType = (Dynamic) dt; + DataType baseDt = dynamicType.getReplacementBaseType(); + if (baseDt != null) { + dependencies.add(baseDt.getDisplayName()); } - } - - List result = new ArrayList<>(); - // First add forward declarations for all composites - result.addAll(composites); - // Then add non-composites - result.addAll(nonComposites); - - return result; - } - - void write(DataType dt, TaskMonitor monitor) throws IOException, CancelledException { - this.writeType(dt, monitor, true); - } - - void write(DataType dt, TaskMonitor monitor, boolean throwExceptionOnInvalidType) - throws IOException, CancelledException { - this.writeType(dt, monitor, throwExceptionOnInvalidType); - } - - private void writeType(DataType dt, TaskMonitor monitor, boolean throwExceptionOnInvalidType) - throws IOException, CancelledException { - if (dt == null || blacklistedTypes.contains(dt.getDisplayName())) { - return; - } - - if (dt instanceof FunctionDefinition) { - return; // Skip function definitions - } - - if (dt instanceof FactoryDataType) { - IllegalArgumentException iae = new IllegalArgumentException("Factory data types may not be written"); - if (throwExceptionOnInvalidType) { - throw iae; - } - Msg.error(this, "Factory data types may not be written - type: " + dt); - return; - } - - // Handle pointer/array types by just getting their base type for dependency checking - if (dt instanceof Pointer || dt instanceof Array || dt instanceof BitFieldDataType) { - // Don't auto-discover dependencies, just write the type as-is + code.append(comment("Dynamic type: " + dt.getDisplayName())); + } else if (dt instanceof Structure) { + writeStructureBlock((Structure) dt, code, dependencies); + } else if (dt instanceof Union) { + writeUnionBlock((Union) dt, code, dependencies); + } else if (dt instanceof Enum) { + writeEnumBlock((Enum) dt, code, dependencies); + } else if (dt instanceof TypeDef) { + writeTypeDefBlock((TypeDef) dt, code, dependencies); + } else if (dt instanceof BuiltInDataType) { + writeBuiltInBlock((BuiltInDataType) dt, code, dependencies); } else { - dt = dt.clone(this.dtm); + code.append(comment("Unable to write datatype. Type unrecognized: " + dt.getClass())); } - - if (this.resolved.contains(dt)) { - return; // Already written - } - - this.resolved.add(dt); - DataType resolvedType = this.resolvedTypeMap.get(dt.getName()); - if (resolvedType != null && !resolvedType.isEquivalent(dt)) { - // Handle name conflicts - this.writer.write(EOL); - this.writer.write(this.comment("WARNING! conflicting data type names: " + dt.getPathName() + " - " + resolvedType.getPathName())); - this.writer.write(EOL); - this.writer.write(EOL); - } else { - this.resolvedTypeMap.put(dt.getName(), dt); - - if (dt.equals(DataType.DEFAULT)) { - this.writer.write("typedef unsigned char " + DataType.DEFAULT.getName() + ";"); - this.writer.write(EOL); - this.writer.write(EOL); - } else if (dt instanceof Dynamic) { - this.writeDynamicBuiltIn((Dynamic) dt, monitor); - } else if (dt instanceof Structure) { - this.writeStructure((Structure) dt, monitor); - } else if (dt instanceof Union) { - this.writeUnion((Union) dt, monitor); - } else if (dt instanceof Enum) { - this.writeEnum((Enum) dt, monitor); - } else if (dt instanceof TypeDef) { - this.writeTypeDef((TypeDef) dt, monitor); - } else if (dt instanceof BuiltInDataType) { - this.writeBuiltIn((BuiltInDataType) dt, monitor); - } else if (!(dt instanceof BitFieldDataType)) { - this.writer.write(EOL); - this.writer.write(EOL); - this.writer.write(this.comment("Unable to write datatype. Type unrecognized: " + dt.getClass())); - this.writer.write(EOL); - this.writer.write(EOL); - } - } - } - - private void writeStructure(Structure struct, TaskMonitor monitor) throws IOException, CancelledException { - // Write forward declaration first - this.writer.write("typedef struct " + struct.getDisplayName() + " " + struct.getDisplayName() + ", *P" + struct.getDisplayName() + ";"); - this.writer.write(EOL); - this.writer.write(EOL); - // Then write the body - this.writeCompositeBody(struct, monitor); + return new Block(dt, code.toString(), dependencies); } - private void writeUnion(Union union, TaskMonitor monitor) throws IOException, CancelledException { - // Write forward declaration first - this.writer.write("typedef union " + union.getDisplayName() + " " + union.getDisplayName() + ", *P" + union.getDisplayName() + ";"); - this.writer.write(EOL); - this.writer.write(EOL); + private void writeStructureBlock(Structure struct, StringBuilder code, Set dependencies) { + String structName = struct.getDisplayName(); - // Then write the body - this.writeCompositeBody(union, monitor); - } - - private void writeCompositeBody(Composite composite, TaskMonitor monitor) throws IOException, CancelledException { - String compositeType = composite instanceof Structure ? "struct" : "union"; - StringBuilder sb = new StringBuilder(); - sb.append(compositeType + " " + composite.getDisplayName() + " {"); - String descrip = composite.getDescription(); + // Struct definition + code.append("struct ").append(structName).append(" {"); + String descrip = struct.getDescription(); if (descrip != null && descrip.length() > 0) { - String var10001 = this.comment(descrip); - sb.append(" " + var10001); + code.append(" ").append(comment(descrip)); } - - sb.append(EOL); - DataTypeComponent[] var6 = composite.getComponents(); - int var7 = var6.length; - - for (int var8 = 0; var8 < var7; ++var8) { - DataTypeComponent component = var6[var8]; - monitor.checkCancelled(); - this.writeComponent(component, composite, sb, monitor); + code.append(EOL); + + // Process components + for (DataTypeComponent component : struct.getComponents()) { + writeComponentBlock(component, struct, code, dependencies); } - - sb.append(this.annotator.getSuffix(composite, (DataTypeComponent) null)); - sb.append("};"); - this.writer.write(sb.toString()); - this.writer.write(EOL); - this.writer.write(EOL); + + code.append(annotator.getSuffix(struct, null)); + code.append("};"); } - private void writeComponent(DataTypeComponent component, Composite composite, StringBuilder sb, TaskMonitor monitor) - throws IOException, CancelledException { - sb.append(" "); - sb.append(this.annotator.getPrefix(composite, component)); + private void writeUnionBlock(Union union, StringBuilder code, Set dependencies) { + String unionName = union.getDisplayName(); + + // Forward declaration + code.append("typedef union ").append(unionName).append(" ").append(unionName) + .append(", *P").append(unionName).append(";").append(EOL); + + // Union definition + code.append("union ").append(unionName).append(" {"); + String descrip = union.getDescription(); + if (descrip != null && descrip.length() > 0) { + code.append(" ").append(comment(descrip)); + } + code.append(EOL); + + // Process components + for (DataTypeComponent component : union.getComponents()) { + writeComponentBlock(component, union, code, dependencies); + } + + code.append(annotator.getSuffix(union, null)); + code.append("};"); + } + + private void writeComponentBlock(DataTypeComponent component, Composite composite, StringBuilder code, Set dependencies) { + code.append(" "); + code.append(annotator.getPrefix(composite, component)); + String fieldName = component.getFieldName(); if (fieldName == null || fieldName.length() == 0) { fieldName = component.getDefaultFieldName(); } - + DataType componentDataType = component.getDataType(); - sb.append(this.getTypeDeclaration(fieldName, componentDataType, component.getLength(), false, monitor)); - sb.append(";"); - sb.append(this.annotator.getSuffix(composite, component)); + + // Add dependency only if it's not a pointer (pointers can be forward declared) + if (!isPointerType(componentDataType)) { + DataType baseType = getBaseDataType(componentDataType); + if (baseType != null && !isBuiltInType(baseType)) { + dependencies.add(baseType.getDisplayName()); + } + } + + code.append(getTypeDeclaration(fieldName, componentDataType, component.getLength())); + code.append(";"); + code.append(annotator.getSuffix(composite, component)); + String comment = component.getComment(); if (comment != null && comment.length() > 0) { - String var10001 = this.comment(comment); - sb.append(" " + var10001); + code.append(" ").append(comment(comment)); } - - sb.append(EOL); + code.append(EOL); } - private String getTypeDeclaration(String name, DataType dataType, int instanceLength, boolean writeEnabled, - TaskMonitor monitor) throws IOException, CancelledException { + private void writeEnumBlock(Enum enumm, StringBuilder code, Set dependencies) { + String enumName = enumm.getDisplayName(); + + if (enumName.startsWith("define_") && enumName.length() > 7 && enumm.getCount() == 1) { + long val = enumm.getValues()[0]; + code.append("#define ").append(enumName.substring(7)).append(" ").append(Long.toString(val)); + } else { + code.append("enum ").append(enumName).append(" {"); + String description = enumm.getDescription(); + if (description != null && description.length() != 0) { + code.append(" ").append(comment(description)); + } + code.append(EOL); + + String[] names = enumm.getNames(); + for (int j = 0; j < names.length; ++j) { + code.append(" "); + code.append(annotator.getPrefix(enumm, names[j])); + code.append(names[j]); + code.append("="); + code.append(Long.toString(enumm.getValue(names[j]))); + String comment = enumm.getComment(names[j]); + if (!comment.isBlank()) { + code.append(" ").append(comment(comment)); + } + code.append(annotator.getSuffix(enumm, names[j])); + if (j < names.length - 1) { + code.append(","); + } + code.append(EOL); + } + code.append("};"); + } + } + + private void writeTypeDefBlock(TypeDef typeDef, StringBuilder code, Set dependencies) { + String typedefName = typeDef.getDisplayName(); + DataType dataType = typeDef.getDataType(); + String dataTypeName = dataType.getDisplayName(); + + if (!isIntegral(typedefName, dataTypeName)) { + DataType baseType = typeDef.getBaseDataType(); + + // Add dependency only if it's not a pointer + if (!isPointerType(dataType)) { + DataType depType = getBaseDataType(dataType); + if (depType != null && !isBuiltInType(depType)) { + dependencies.add(depType.getDisplayName()); + } + } + + String typedefString = getTypeDeclaration(typedefName, dataType, -1); + code.append("typedef ").append(typedefString).append(";"); + } + } + + private void writeBuiltInBlock(BuiltInDataType dt, StringBuilder code, Set dependencies) { + String declaration = dt.getCTypeDeclaration(this.dataOrganization); + if (declaration != null && !dt.getDisplayName().equals("bool")) { + code.append(declaration); + } + } + + private boolean isPointerType(DataType dt) { + return dt instanceof Pointer; + } + + private boolean isBuiltInType(DataType dt) { + return dt instanceof BuiltInDataType || + dt.getDisplayName().equals("void") || + dt.getDisplayName().equals("char") || + dt.getDisplayName().equals("int") || + dt.getDisplayName().equals("short") || + dt.getDisplayName().equals("long") || + dt.getDisplayName().equals("float") || + dt.getDisplayName().equals("double"); + } + + private DataType getBaseDataType(DataType dt) { + while (dt != null) { + if (dt instanceof Array) { + dt = ((Array) dt).getDataType(); + } else if (dt instanceof Pointer) { + dt = ((Pointer) dt).getDataType(); + } else if (dt instanceof BitFieldDataType) { + dt = ((BitFieldDataType) dt).getBaseDataType(); + } else if (dt instanceof TypeDef) { + dt = ((TypeDef) dt).getBaseDataType(); + } else { + break; + } + } + return dt; + } + + private String getTypeDeclaration(String name, DataType dataType, int instanceLength) { if (name == null) { name = ""; } - + StringBuilder sb = new StringBuilder(); - String componentString = null; - if (dataType instanceof Dynamic) { - // Simplified dynamic handling - just use the display name - componentString = dataType.getDisplayName(); - if (name.length() != 0) { - componentString = componentString + " " + name; - } - sb.append(componentString); + + if (dataType instanceof BitFieldDataType) { + BitFieldDataType bfDt = (BitFieldDataType) dataType; + name = name + ":" + bfDt.getDeclaredBitSize(); + dataType = bfDt.getBaseDataType(); } - - if (componentString == null) { - if (dataType instanceof BitFieldDataType) { - BitFieldDataType bfDt = (BitFieldDataType) dataType; - name = name + ":" + bfDt.getDeclaredBitSize(); - dataType = bfDt.getBaseDataType(); - } - - label44: while (true) { - while (!(dataType instanceof Array)) { - if (!(dataType instanceof Pointer)) { - break label44; - } - - Pointer pointer = (Pointer) dataType; - DataType elem = pointer.getDataType(); - if (elem == null) { - break label44; - } - - name = "*" + name; - dataType = elem; - if (elem instanceof Array) { - name = "(" + name + ")"; - } - } - - Array array = (Array) dataType; - name = name + "[" + array.getNumElements() + "]"; - dataType = array.getDataType(); - } - - DataType baseDataType = this.getBaseDataType(dataType); - if (baseDataType instanceof FunctionDefinition) { - componentString = this.getFunctionPointerString((FunctionDefinition) baseDataType, name, dataType, writeEnabled, - monitor); - } else { - String var10000 = this.getDataTypePrefix(dataType); - componentString = var10000 + dataType.getDisplayName(); - if (name.length() != 0) { - componentString = componentString + " " + name; - } - } - - sb.append(componentString); + + // Handle arrays and pointers + while (dataType instanceof Array) { + Array array = (Array) dataType; + name = name + "[" + array.getNumElements() + "]"; + dataType = array.getDataType(); } - - return sb.toString(); + + while (dataType instanceof Pointer) { + Pointer pointer = (Pointer) dataType; + DataType elem = pointer.getDataType(); + if (elem == null) { + break; + } + name = "*" + name; + dataType = elem; + if (elem instanceof Array) { + name = "(" + name + ")"; + } + } + + String prefix = getDataTypePrefix(dataType); + String componentString = prefix + dataType.getDisplayName(); + if (name.length() != 0) { + componentString = componentString + " " + name; + } + + return componentString; } private String getDataTypePrefix(DataType dataType) { - dataType = this.getBaseDataType(dataType); + dataType = getBaseDataType(dataType); if (dataType instanceof Structure) { return "struct "; } else if (dataType instanceof Union) { return "union "; + } else if (dataType instanceof Enum) { + return "enum "; } else { - return dataType instanceof Enum ? "enum " : ""; - } - } - - private void writeEnum(Enum enumm, TaskMonitor monitor) throws IOException { - String enumName = enumm.getDisplayName(); - Writer var10000; - String var10001; - if (enumName.startsWith("define_") && enumName.length() > 7 && enumm.getCount() == 1) { - long val = enumm.getValues()[0]; - var10000 = this.writer; - var10001 = enumName.substring(7); - var10000.append("#define " + var10001 + " " + Long.toString(val)); - this.writer.write(EOL); - this.writer.write(EOL); - } else { - this.writer.write("enum " + enumName + " {"); - String description = enumm.getDescription(); - if (description != null && description.length() != 0) { - var10000 = this.writer; - var10001 = this.comment(description); - var10000.write(" " + var10001); - } - - this.writer.write(EOL); - String[] names = enumm.getNames(); - - for (int j = 0; j < names.length; ++j) { - this.writer.write(" "); - this.writer.write(this.annotator.getPrefix(enumm, names[j])); - this.writer.write(names[j]); - this.writer.write("="); - this.writer.write(Long.toString(enumm.getValue(names[j]))); - String comment = enumm.getComment(names[j]); - if (!comment.isBlank()) { - var10000 = this.writer; - var10001 = this.comment(comment); - var10000.write(" " + var10001); - } - - this.writer.write(this.annotator.getSuffix(enumm, names[j])); - if (j < names.length - 1) { - this.writer.write(","); - } - - this.writer.write(EOL); - } - - this.writer.write("};"); - this.writer.write(EOL); - this.writer.write(EOL); - } - } - - private void writeTypeDef(TypeDef typeDef, TaskMonitor monitor) throws IOException, CancelledException { - String typedefName = typeDef.getDisplayName(); - DataType dataType = typeDef.getDataType(); - String dataTypeName = dataType.getDisplayName(); - if (!this.isIntegral(typedefName, dataTypeName)) { - DataType baseType = typeDef.getBaseDataType(); - - label125: { - try { - if (!(baseType instanceof Composite) && !(baseType instanceof Enum)) { - if (!(baseType instanceof Pointer) || !typedefName.startsWith("P")) { - break label125; - } - - DataType dt = ((Pointer) baseType).getDataType(); - if (dt instanceof TypeDef) { - dt = ((TypeDef) dt).getBaseDataType(); - } - - if (!(dt instanceof Composite) || !dt.getName().equals(typedefName.substring(1))) { - break label125; - } - - this.resolvedTypeMap.remove(typedefName); - return; - } - - if (!typedefName.equals(baseType.getName())) { - break label125; - } - - this.resolvedTypeMap.remove(typedefName); - } finally { - // Removed auto-discovery - don't write the dataType automatically - } - - return; - } - - // Removed deferred writing call - we only write what's explicitly passed - - String typedefString = this.getTypeDeclaration(typedefName, dataType, -1, true, monitor); - this.writer.write("typedef " + typedefString + ";"); - this.writer.write(EOL); - this.writer.write(EOL); + return ""; } } private boolean isIntegral(String typedefName, String basetypeName) { - String[] var3 = INTEGRAL_TYPES; - int var4 = var3.length; - - int var5; - for (var5 = 0; var5 < var4; ++var5) { - String type = var3[var5]; + for (String type : INTEGRAL_TYPES) { if (typedefName.equals(type)) { return true; } } - + boolean endsWithIntegralType = false; - String[] var10 = INTEGRAL_TYPES; - var5 = var10.length; - - int var13; - for (var13 = 0; var13 < var5; ++var13) { - String type = var10[var13]; + for (String type : INTEGRAL_TYPES) { if (typedefName.endsWith(" " + type)) { endsWithIntegralType = true; break; } } - - boolean containsIntegralModifier = false; - String[] var12 = INTEGRAL_MODIFIERS; - var13 = var12.length; - - for (int var14 = 0; var14 < var13; ++var14) { - String modifier = var12[var14]; + + for (String modifier : INTEGRAL_MODIFIERS) { if (typedefName.indexOf(modifier + " ") >= 0 || typedefName.indexOf(" " + modifier) >= 0) { return true; } } - - if (endsWithIntegralType && containsIntegralModifier) { + + if (endsWithIntegralType) { return true; } else if (typedefName.endsWith(" " + basetypeName)) { - return containsIntegralModifier; + return false; // Let it through as a regular typedef } else { return false; } } - private void writeDynamicBuiltIn(Dynamic dt, TaskMonitor monitor) throws IOException, CancelledException { - // Simplified - don't auto-discover replacement types - // Just write a comment about the dynamic type - this.writer.write(this.comment("Dynamic type: " + dt.getDisplayName())); - this.writer.write(EOL); - this.writer.write(EOL); - } - - private void writeBuiltIn(BuiltInDataType dt, TaskMonitor monitor) throws IOException { - String declaration = dt.getCTypeDeclaration(this.dataOrganization); - if (declaration != null) { - if (dt.getDisplayName() == "bool") - return; - this.writer.write(declaration); - this.writer.write(EOL); - } - } - - private void writeBuiltInDeclarations(DataTypeManager manager) throws IOException { - try { - this.write(DataType.DEFAULT, TaskMonitor.DUMMY); - SourceArchive builtInArchive = manager.getSourceArchive(DataTypeManager.BUILT_IN_ARCHIVE_UNIVERSAL_ID); - if (builtInArchive == null) { - return; - } - - Iterator var3 = manager.getDataTypes(builtInArchive).iterator(); - - while (var3.hasNext()) { - DataType dt = (DataType) var3.next(); - if (!(dt instanceof Pointer) && !(dt instanceof FactoryDataType) && !(dt instanceof Dynamic)) { - this.write(dt, TaskMonitor.DUMMY); - } - } - } catch (CancelledException var5) { - } - - this.writer.flush(); - } - - private static String getArrayDimensions(Array arrayDt) { - String dimensionString = "[" + arrayDt.getNumElements() + "]"; - DataType dataType = arrayDt.getDataType(); - if (dataType instanceof Array) { - dimensionString = dimensionString + getArrayDimensions((Array) dataType); - } - - return dimensionString; - } - - private DataType getBaseDataType(DataType dt) { - while (true) { - if (dt != null) { - if (dt instanceof Array) { - Array array = (Array) dt; - dt = array.getDataType(); - continue; - } - - if (dt instanceof Pointer) { - Pointer pointer = (Pointer) dt; - dt = pointer.getDataType(); - continue; - } - - if (dt instanceof BitFieldDataType) { - BitFieldDataType bitfieldDt = (BitFieldDataType) dt; - dt = bitfieldDt.getBaseDataType(); - continue; - } - } - - return dt; - } - } - - private DataType getArrayBaseType(Array arrayDt) { - DataType dataType; - for (dataType = arrayDt.getDataType(); dataType instanceof Array; dataType = ((Array) dataType).getDataType()) { - } - - return dataType; - } - - private DataType getPointerBaseDataType(Pointer p) { - DataType dt; - for (dt = p.getDataType(); dt instanceof Pointer; dt = ((Pointer) dt).getDataType()) { - } - - return dt; - } - - private int getPointerDepth(Pointer p) { - int depth = 1; - - for (DataType dt = p.getDataType(); dt instanceof Pointer; dt = ((Pointer) dt).getDataType()) { - ++depth; - } - - return depth; - } - - private String getFunctionPointerString(FunctionDefinition fd, String name, DataType functionPointerArrayType, - boolean writeEnabled, TaskMonitor monitor) throws IOException, CancelledException { - DataType originalType = functionPointerArrayType; - StringBuilder sb = new StringBuilder(); - DataType returnType = fd.getReturnType(); - if (writeEnabled) { - this.write(returnType, monitor); - } - - sb.append("("); - String arrayDecorations = ""; - if (functionPointerArrayType instanceof Array a) { - functionPointerArrayType = this.getArrayBaseType(a); - arrayDecorations = getArrayDimensions(a); - } - - if (functionPointerArrayType instanceof Pointer p) { - for (int i = 0; i < this.getPointerDepth(p); ++i) { - sb.append('*'); - } - - if (name != null) { - sb.append(' '); - } - - functionPointerArrayType = this.getPointerBaseDataType(p); - } - - if (!(functionPointerArrayType instanceof FunctionDefinition)) { - this.writer.append(this - .comment("Attempting output of invalid function pointer type declaration: " + originalType.getDisplayName())); - } - - if (name != null) { - sb.append(name); - } - - if (arrayDecorations.length() != 0) { - sb.append(arrayDecorations); - } - - sb.append(")"); - sb.append(this.getParameterListString(fd, false, writeEnabled, monitor)); - DataType baseReturnType = this.getBaseDataType(returnType); - if (baseReturnType instanceof FunctionDefinition) { - return this.getFunctionPointerString((FunctionDefinition) baseReturnType, sb.toString(), returnType, writeEnabled, - monitor); - } else { - String var10000 = returnType.getDisplayName(); - return var10000 + " " + sb.toString(); - } - } - - private String getParameterListString(FunctionDefinition fd, boolean includeParamNames, boolean writeEnabled, - TaskMonitor monitor) throws IOException, CancelledException { - StringBuilder buf = new StringBuilder(); - buf.append("("); - boolean hasVarArgs = fd.hasVarArgs(); - ParameterDefinition[] parameters = fd.getArguments(); - int n = parameters.length; - - for (int i = 0; i < n; ++i) { - ParameterDefinition param = parameters[i]; - String paramName = includeParamNames ? param.getName() : null; - DataType dataType = param.getDataType(); - if (writeEnabled) { - this.write(dataType, monitor); - } - - String argument = this.getTypeDeclaration(paramName, dataType, param.getLength(), writeEnabled, monitor); - buf.append(argument); - if (i < n - 1 || hasVarArgs) { - buf.append(", "); + private List topologicalSort(Map blocks) { + List result = new ArrayList<>(); + Set visited = new HashSet<>(); + Set visiting = new HashSet<>(); + + for (Block block : blocks.values()) { + if (!visited.contains(block.dataType.getDisplayName())) { + topologicalSortVisit(block, blocks, visited, visiting, result); } } + + return result; + } - if (hasVarArgs) { - buf.append("..."); + private void topologicalSortVisit(Block block, Map blocks, + Set visited, Set visiting, List result) { + String blockName = block.dataType.getDisplayName(); + + if (visiting.contains(blockName)) { + // Circular dependency detected, but we'll continue (forward declarations should handle this) + return; } - - if (n == 0 && !hasVarArgs) { - buf.append(VoidDataType.dataType.getName()); + + if (visited.contains(blockName)) { + return; } - - buf.append(")"); - return buf.toString(); + + visiting.add(blockName); + + // Visit dependencies first + for (String dep : block.dependencies) { + Block depBlock = blocks.get(dep); + if (depBlock != null) { + topologicalSortVisit(depBlock, blocks, visited, visiting, result); + } + } + + visiting.remove(blockName); + visited.add(blockName); + result.add(block); } }