diff --git a/game_re/gh_types.h b/game_re/gh_types.h index 55a29810..268147a3 100644 --- a/game_re/gh_types.h +++ b/game_re/gh_types.h @@ -4,54 +4,49 @@ // AUTO-GENERATED FILE #include typedef struct tdstMorphChannelList_ *CHN_tdxHandleToMorphElement; -typedef struct TMR_tdstTimerCount TMR_tdstTimerCount, *PTMR_tdstTimerCount; struct TMR_tdstTimerCount { ulong ulLowPart; ulong ulHighPart; }; -typedef struct _RollOffParam _RollOffParam, *P_RollOffParam; -struct _RollOffParam { - SndReal rDistSatur; - SndReal rDistBackGround; -}; -typedef struct _SwitchParam _SwitchParam, *P_SwitchParam; struct _SwitchParam { long lObjectType; long lObjectId; }; -typedef struct _ExtraSoundParam _ExtraSoundParam, *P_ExtraSoundParam; +typedef struct _SwitchParam SwitchParam; +typedef long SndReal; +struct _RollOffParam { + SndReal rDistSatur; + SndReal rDistBackGround; +}; +typedef struct _RollOffParam RollOffParam; struct _ExtraSoundParam { struct RollOffParam stRollOff; struct SwitchParam stSwitch; }; typedef struct _ExtraSoundParam ExtraSoundParam; -typedef struct GEO_tdstColor GEO_tdstColor, *PGEO_tdstColor; +typedef float GEO_tdxColorValue; struct GEO_tdstColor { GEO_tdxColorValue xR; GEO_tdxColorValue xG; GEO_tdxColorValue xB; GEO_tdxColorValue xA; }; -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 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; @@ -60,7 +55,7 @@ struct GLI_tdstZBufferForLight { float *p_xZBufferMap; float *p_xMiddleZBufferMap; }; -typedef struct GLI_tdstLight GLI_tdstLight, *PGLI_tdstLight; +typedef uchar ACP_tdxBool; struct GLI_tdstLight { uchar bOnOff; uchar bThisLightIsZBuffered; @@ -90,46 +85,40 @@ struct GLI_tdstLight { }; 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 tdstTimerCount tdstTimerCount, *PtdstTimerCount; struct tdstTimerCount { ulong ulLowPart; ulong ulHighPart; }; -typedef struct tdstChannelInfo_ tdstChannelInfo_, *PtdstChannelInfo_; struct tdstChannelInfo_ { ulong ulThreadId; uchar ucGroupId; }; -typedef struct tdstInformationHeaderOfBlockWithoutFree_ tdstInformationHeaderOfBlockWithoutFree_, *PtdstInformationHeaderOfBlockWithoutFree_; struct tdstInformationHeaderOfBlockWithoutFree_ { uchar ucBoundededHeaderSize; uchar ucAlignment; uchar ucMode; }; typedef struct tdstChannelActivationStateList_ *CHN_tdxHandleToCASElement; -typedef struct _MicroLink _MicroLink, *P_MicroLink; -struct _MicroLink { - long lId; - SndBool bLinked; -}; -typedef struct _SndVector _SndVector, *P_SndVector; struct _SndVector { SndReal x; SndReal y; SndReal z; }; -typedef struct _SoundParam _SoundParam, *P_SoundParam; +typedef struct _SndVector SndVector; +struct _MicroLink { + long lId; + SndBool bLinked; +}; +typedef struct _MicroLink MicroLink; struct _SoundParam { SndReal Freq; uchar ucVol; @@ -143,14 +132,12 @@ struct _SoundParam { struct MicroLink astMicro[2]; struct ExtraSoundParam xExtra; }; -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 SND_astruct_4 SND_astruct_4, *PSND_astruct_4; struct SND_astruct_4 { int *field0_0x0; struct SND_astruct_4 *next; @@ -161,22 +148,19 @@ struct SND_astruct_4 { int *field6_0x18; int *field7_0x1c; }; -typedef struct _tdstTypeMidiDisk _tdstTypeMidiDisk, *P_tdstTypeMidiDisk; struct _tdstTypeMidiDisk { }; 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 _tdstRangeSplitListMem _tdstRangeSplitListMem, *P_tdstRangeSplitListMem; struct _tdstRangeSplitListMem { }; typedef struct _tdstRangeSplitListMem tdstRangeSplitListMem; typedef void *MS_tdxHandleToMSLight; -typedef struct astruct_2 astruct_2, *Pastruct_2; +typedef dword color_rgba8_t; struct astruct_2 { uint *field0_0x0; uint *field1_0x4; @@ -194,7 +178,6 @@ 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; @@ -214,56 +197,22 @@ 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; +typedef struct IPT_tdstEntryElement_ *IPT_tdxHandleToEntryElement; 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; @@ -425,21 +374,12 @@ struct r3_graphics_data { 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; +typedef struct tdstObjectTypeElement_ *ObjectTypeElementHandle; 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; @@ -447,45 +387,54 @@ struct tdstObjectType_ { }; 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 tdstZoneSetList_ tdstZoneSetList_, *PtdstZoneSetList_; struct tdstZoneSetList_ { }; -typedef struct _tdstSampleStreaming _tdstSampleStreaming, *P_tdstSampleStreaming; struct _tdstSampleStreaming { }; -typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header_, *PSCR_tdst_DyAr_Header_; struct SCR_tdst_DyAr_Header_ { uint uiIndexInArray; uchar ucMemLevel; }; 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 IPT_tdstKeyWordElement_ *IPT_tdxHandleToKeyWordElement; +struct LST2_tdstAnchorToIPT_tdxHandleToKeyWordElementDyn { + struct IPT_tdxHandleToKeyWordElement hFirstElementDyn; + struct IPT_tdxHandleToKeyWordElement hLastElementDyn; + long lNumberOfElementsDyn; +}; +typedef struct _GUID GUID; 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; +typedef void *MS_tdxHandleToMicro; +typedef void *MS_tdxHandleToCineinfo; +typedef void *MS_tdxHandleToStandardGame; +typedef void *MS_tdxHandleToDynam; +typedef void *MS_tdxHandleTo3dData; +typedef void *MS_tdxHandleToMSPrtSrc; +typedef void *MS_tdxHandleToMSWay; +typedef void *MS_tdxHandleToMSMagnet; +typedef void *MS_tdxHandleToSectInfo; +typedef void *MS_tdxHandleToCollSet; +typedef void *MS_tdxHandleToMSSound; +typedef void *MS_tdxHandleToAnimEffect; struct EngineObject { MS_tdxHandleTo3dData h_3dData; MS_tdxHandleToStandardGame h_StandardGame; @@ -504,7 +453,7 @@ struct EngineObject { }; typedef void *GEO_tdxHandleToRadiosity; typedef struct IPT_tdstInput_ *IPT_tdxHandleToInput; -typedef struct HIE_SuperObject HIE_SuperObject, *PHIE_SuperObject; +typedef struct POS_stCompletePosition *POS_tdxHandleToPosition; struct HIE_SuperObject { ulong ulTypeOfLinkedObject; union HIE_tduLinkedObject hLinkedObject; @@ -523,24 +472,19 @@ struct HIE_SuperObject { float fTransparenceLevel; struct MTH3_Vector stSemiLookAtVector; }; -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; @@ -551,11 +495,8 @@ struct _tdstAllRetChannelSound { 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 { struct FILE *p_stFile; ulong ulNumberOfPath; @@ -567,21 +508,16 @@ struct FIL_ConcatFile { char **d_szPathList; struct FIL_ConcatFileElement *d_stConcatFileElement; }; -typedef struct tdstState_ tdstState_, *PtdstState_; struct tdstState_ { }; typedef enum _SND_tdstTypeCallback SND_tduTypeCallback; -typedef struct _SndVector SndVector; typedef short GLD_DeviceHandle; -typedef struct _tdstTypeMidiMem _tdstTypeMidiMem, *P_tdstTypeMidiMem; struct _tdstTypeMidiMem { }; -typedef struct _tdstInfoTrackDisk _tdstInfoTrackDisk, *P_tdstInfoTrackDisk; struct _tdstInfoTrackDisk { }; 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; @@ -613,55 +549,45 @@ struct GLD_ViewportAttributes { GLD_DeviceHandle hDevice; GLD_ViewportHandle hViewport; }; -typedef struct GLD_stViewport GLD_stViewport, *PGLD_stViewport; struct GLD_stViewport { struct GLD_ViewportAttributes stViewAttrib; uchar bIsLocked; }; 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 r3_TaggedFloatUnk r3_TaggedFloatUnk, *Pr3_TaggedFloatUnk; struct r3_TaggedFloatUnk { uint32_t type; struct Float4x4 mat0; struct Float4 unk; }; -typedef void *MS_tdxHandleTo3dData; -typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description_, *PSCR_tdst_DyAr_Description_; +typedef struct IPT_tdstHistoricElement_ *IPT_tdxHandleToHistoricElement; +typedef struct SCR_tdst_DyAr_Header_ SCR_tdst_DyAr_Header; struct SCR_tdst_DyAr_Description_ { struct SCR_tdst_DyAr_Element *d_stDynArray; uint uiNumValues; uint uiMaxValues; }; -typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table_, *PSCR_tdst_Link_Table_; +typedef struct SCR_tdst_DyAr_Description_ SCR_tdst_DyAr_Description; +typedef struct SCR_tdst_DyAr_Description SCR_tda_st_Hash_Table[256]; 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_; +typedef struct SCR_tdst_Link_Table_ SCR_tdst_Link_Table; struct IPT_tdstInput_ { uchar ucOnePadActivate; uchar p_ucValideAndActiveDevice[0]; @@ -676,70 +602,53 @@ struct IPT_tdstInput_ { 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; +typedef short ACP_tdxIndex; 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; +typedef struct tdstObjectsTablesList_ *tdxHandleToObjectsTablesList; 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; @@ -757,16 +666,15 @@ struct _tdstAllRetObjectSound { 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; +typedef struct GLD_stViewport *GLD_tdpstViewport; +typedef float GLD_tdxValue; struct GLD_DeviceAttributes { DWORD dwHeight; DWORD dwWidth; @@ -786,7 +694,6 @@ struct GLD_DeviceAttributes { 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]; @@ -796,28 +703,29 @@ struct GLD_Device { 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 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; +}; 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; @@ -826,7 +734,6 @@ 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; @@ -843,27 +750,20 @@ struct _tdstAllRetMicroSound { 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; @@ -873,37 +773,27 @@ struct tdstBlockInfo_ { 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; @@ -911,20 +801,13 @@ struct SCR_tdst_Link_AdditionalInfos_ { 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; +typedef enum enum_2474 tdeTypeZip; 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; @@ -938,10 +821,12 @@ struct TMR_tdstEngineTimerStructure { struct TMR_tdstTimerCount stPauseTime; ulong ulTickPerMs; }; -typedef struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn, *PLST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn; +struct GLI_SpecificAttributesFor3D { + struct GLI_Camera *p_stCam; + float xNear; +}; struct LST2_tdstAnchorToMC_tdxHandleToMainCharacterNodeDyn { }; -typedef struct GAM_EngineStructure GAM_EngineStructure, *PGAM_EngineStructure; struct GAM_EngineStructure { enum GAM_EngineMode eEngineMode; char szLevelName[30]; @@ -3449,7 +3334,6 @@ struct GAM_EngineStructure { undefined field2503_0xc16; undefined field2504_0xc17; }; -typedef struct stAxisCaps stAxisCaps, *PstAxisCaps; struct stAxisCaps { long m_lCenter; long m_lRange; @@ -3457,13 +3341,10 @@ struct stAxisCaps { }; 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; @@ -3472,15 +3353,18 @@ struct tdstBlockInfoPriv { }; typedef struct IPT_tdstScriptValue_ *IPT_tdxHandleToScriptValue; typedef td_fn_vTimerEventCallback td_fn_vTimerEventCallback; -typedef struct GEO_tdstVisualSet GEO_tdstVisualSet, *PGEO_tdstVisualSet; +struct tdstObjectTypeElement_ { + struct ObjectTypeElementHandle hNextBrotherDyn; + struct ObjectTypeElementHandle hPrevBrotherDyn; + struct LST2_tdstAnchorTotdhHandleToObjectTypeElementDyn *hFatherDyn; + char *szName; + uchar ucElementPriority; +}; 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; @@ -3488,11 +3372,9 @@ struct FIL_RealGFFileHeader { 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; @@ -3520,14 +3402,24 @@ struct FileInner1 { undefined field23_0x17; }; typedef struct _tdstSampleStreaming tdstSampleStreaming; +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 _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; @@ -3542,18 +3434,21 @@ struct Anim3d { 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; +struct IPT_tdstHistoricElement_ { + uchar bf2State; + uchar bf6DeviceType; + uchar ucCounter; + short swDeviceValue; +}; typedef struct IPT_tdstHistoricElement_ IPT_tdstHistoricElement; -typedef struct _SampleParam _SampleParam, *P_SampleParam; struct _SampleParam { SndReal Freq; uchar ucVol; @@ -3561,27 +3456,22 @@ struct _SampleParam { 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; +typedef td_fn_vTimerEventCallback *td_p_fn_vTimerEventCallback; struct _tdstTimer { short m_wTimerType; short m_wTimerState; @@ -3593,38 +3483,29 @@ struct _tdstTimer { }; 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; @@ -3639,38 +3520,31 @@ struct FIL_FileInConcatFile { }; 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; +typedef struct tdstAlwaysActiveCharacter_ *tdxHandleToAlwaysActiveCharacterNode; 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; @@ -3681,24 +3555,20 @@ struct FIL_ConcatFileElement { }; 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; @@ -3712,16 +3582,13 @@ struct GMA_tdstEngineEndStructure { ACP_tdxBool bResurrection; char cCameraMode; }; -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; @@ -3731,16 +3598,12 @@ struct _MicroParam { 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; @@ -3749,49 +3612,35 @@ struct Element3d { 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; +typedef struct tdstProhibit_ *tdxHandleToProhibit; 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; @@ -3861,8 +3710,6 @@ struct GameStructure { float field65_0x5c; }; 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; @@ -3871,13 +3718,13 @@ struct tdstStructureHandleFunction { tdfn_vInitHandleFunction *p_fn_vInitFunction; tdfn_vInitHandleFunction *p_fn_vDesinitFunction; }; -typedef struct _GUID GUID; -typedef struct _tdstRangeSplitMem _tdstRangeSplitMem, *P_tdstRangeSplitMem; struct _tdstRangeSplitMem { }; +struct tdstFamilyList_ { +}; +struct tdstObjectsTablesList_ { +}; 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; @@ -3900,27 +3747,12 @@ struct m7_init_struct { byte field18_0x18; }; typedef struct tdstSndBankDescriptorList_ tdstSndBankDescriptorList; -typedef struct AnimLights AnimLights, *PAnimLights; struct AnimLights { void **a_p_stLights; ushort uwNumberOfLights; void *a_hLightsInSector; }; 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; - struct INO_tdstDevCaps *m_p_stCaps; - struct INO_tdstDevState *m_p_stState; - ulong m_ulLastTimeCount; - short m_wHistoricSize; - short m_wHistoricHead; - short m_wRecordNumber; - void *m_pvHistoric; - INO_fn_wMethod m_pfnRead; -}; -typedef struct INO_DIDevice INO_DIDevice, *PINO_DIDevice; struct INO_DIDevice { struct DIDEVICEINSTANCE m_stDevInstance; struct LPDIRECTINPUTDEVICE m_p_stDevInterface; /* set */ @@ -3987,7 +3819,7 @@ struct INO_DIDevice { undefined field62_0x28b; undefined field63_0x28c; }; -typedef struct SCR_tdst_Link_Value_ SCR_tdst_Link_Value_, *PSCR_tdst_Link_Value_; +typedef uint SCR_tdx_Hash_Key; struct SCR_tdst_Link_Value_ { struct SCR_tdst_DyAr_Header stHeader; char *p_szKey; @@ -4000,12 +3832,10 @@ struct SCR_tdst_Link_Value_ { 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; @@ -4380,7 +4210,6 @@ struct BinkInner0 { undefined field370_0x187; }; typedef struct _tdstAllRetMicroSound tdstAllRetMicroSound; -typedef struct GLI_Camera GLI_Camera, *PGLI_Camera; struct GLI_Camera { long lSizeOfThis; long lTypeOfThis; @@ -4405,13 +4234,11 @@ struct GLI_Camera { 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; @@ -4419,9 +4246,7 @@ struct GLI_tdstViewportManagement { 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; @@ -4450,7 +4275,6 @@ struct windowInnerParams { 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 */ @@ -4504,7 +4328,6 @@ struct GAM_as4_inner { float field49_0x40; dword counter; }; -typedef struct GAM_tdstEngineOuter GAM_tdstEngineOuter, *PGAM_tdstEngineOuter; struct GAM_tdstEngineOuter { uchar ucNumberOfLevels; uchar ucCurrentLevel; @@ -4518,20 +4341,17 @@ struct GAM_tdstEngineOuter { 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; @@ -4551,14 +4371,11 @@ struct tdst_inputAction { 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; @@ -4567,10 +4384,20 @@ struct tdstCurrentModeInfo { typedef union _tduDataMidi tduDataMidi; typedef struct tdstNodeMainCharacter_ *MC_tdxHandleToMainCharacterNode; typedef long SndRealTwin; -typedef struct IPT_tdstConvertValue_ IPT_tdstConvertValue_, *PIPT_tdstConvertValue_; +typedef INO_fn_wMethod *INO_fn_wMethod; +struct INO_Device { + ushort m_uwType; + struct INO_tdstDevCaps *m_p_stCaps; + struct INO_tdstDevState *m_p_stState; + ulong m_ulLastTimeCount; + short m_wHistoricSize; + short m_wHistoricHead; + short m_wRecordNumber; + void *m_pvHistoric; + INO_fn_wMethod m_pfnRead; +}; struct IPT_tdstConvertValue_ { }; -typedef struct EventInTable EventInTable, *PEventInTable; struct EventInTable { void *p_xEvent; uchar ucTypeOfEvent; @@ -4579,7 +4406,6 @@ struct EventInTable { 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; @@ -4700,7 +4526,6 @@ struct r3_math_interface { 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; @@ -4825,35 +4650,29 @@ struct GAM_astruct_4 { 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 tdstProhibit_ { +}; 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; @@ -4922,22 +4741,18 @@ struct levelFixStructInner { 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; @@ -4953,19 +4768,16 @@ struct FIL_FileHeader { 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 */ @@ -4999,7 +4811,6 @@ struct windowInnerUnkParams { undefined field29_0x6e; undefined field30_0x6f; }; -typedef struct GLI_tdstMaterial GLI_tdstMaterial, *PGLI_tdstMaterial; struct GLI_tdstMaterial { ulong ulMaterialType; struct GEO_tdstColor stAmbient; @@ -5021,11 +4832,9 @@ struct GLI_tdstMaterial { 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; @@ -5033,10 +4842,8 @@ struct r3_astruct_2 { 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; @@ -5044,18 +4851,14 @@ struct Frame3d { 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; @@ -5125,14 +4928,11 @@ struct levelFixStruct { 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; @@ -5158,7 +4958,6 @@ struct GLI_Texture { 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; @@ -5429,7 +5228,6 @@ struct INO_unk_joy { undefined field266_0x122; undefined field267_0x123; }; -typedef struct LST2_tdstAnchorTotdxHandleToTransitionSLk LST2_tdstAnchorTotdxHandleToTransitionSLk, *PLST2_tdstAnchorTotdxHandleToTransitionSLk; struct LST2_tdstAnchorTotdxHandleToTransitionSLk { struct tdxHandleToTransition hFirstElementSLk; struct tdxHandleToTransition hLastElementSLk; @@ -5438,20 +5236,14 @@ struct LST2_tdstAnchorTotdxHandleToTransitionSLk { typedef struct _tdstTypeSwitchDisk tdstTypeSwitchDisk; 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 float GEO_tdxColorValue; typedef struct _SND_tdstFormat SND_tdstFormat; #endif // GH_GENERATED_STRUCTS_H diff --git a/java/ghidra/re3lib/DataTypeWriter.java b/java/ghidra/re3lib/DataTypeWriter.java index 780b0f4e..bde15a3a 100644 --- a/java/ghidra/re3lib/DataTypeWriter.java +++ b/java/ghidra/re3lib/DataTypeWriter.java @@ -239,9 +239,9 @@ public class DataTypeWriter { // 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()); + DataType depType = getImmediateDependencyType(componentDataType); + if (depType != null && !isBuiltInType(depType)) { + dependencies.add(depType.getDisplayName()); } } @@ -301,7 +301,7 @@ public class DataTypeWriter { // Add dependency only if it's not a pointer if (!isPointerType(dataType)) { - DataType depType = getBaseDataType(dataType); + DataType depType = getImmediateDependencyType(dataType); if (depType != null && !isBuiltInType(depType)) { dependencies.add(depType.getDisplayName()); } @@ -334,6 +334,20 @@ public class DataTypeWriter { dt.getDisplayName().equals("double"); } + private DataType getImmediateDependencyType(DataType dt) { + // Only unwrap arrays and bitfields, but preserve typedefs and other types + while (dt != null) { + if (dt instanceof Array) { + dt = ((Array) dt).getDataType(); + } else if (dt instanceof BitFieldDataType) { + dt = ((BitFieldDataType) dt).getBaseDataType(); + } else { + break; + } + } + return dt; + } + private DataType getBaseDataType(DataType dt) { while (dt != null) { if (dt instanceof Array) {