├── float.d ├── Ikarus.d ├── Ikarus_Doc.d ├── readme.txt ├── Ikarus_Const_G1.d ├── Ikarus_Const_G2.d ├── Ikarus_G1.src ├── Ikarus_G2.src ├── float_ohneIkarus.d ├── EngineClasses_G1 ├── Misc.d ├── oCMob.d ├── oCNpc.d ├── oCGame.d ├── oCItem.d ├── zCMenu.d ├── zCParser.d ├── zCWaynet.d ├── zCWorld.d ├── oCAiHuman.d ├── oCInfoManager.d ├── zCSkyController.d ├── zCConsole.d ├── zCMesh.d ├── oCZoneMusic.d ├── zCZoneZFog.d ├── zCOption.d ├── zCCamera.d ├── zCTexture.d └── zCTrigger.d ├── EngineClasses_G2 ├── Misc.d ├── oCMob.d ├── oCNpc.d ├── oCGame.d ├── oCItem.d ├── zCMenu.d ├── zCParser.d ├── zCWaynet.d ├── zCWorld.d ├── oCAiHuman.d ├── oCInfoManager.d ├── zCSkyController.d ├── zCConsole.d ├── zCMesh.d ├── zCOption.d ├── oCZoneMusic.d ├── zCZoneZFog.d ├── zCTexture.d ├── zCCamera.d └── zCTrigger.d └── README.md /float.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/float.d -------------------------------------------------------------------------------- /Ikarus.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/Ikarus.d -------------------------------------------------------------------------------- /Ikarus_Doc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/Ikarus_Doc.d -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/readme.txt -------------------------------------------------------------------------------- /Ikarus_Const_G1.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/Ikarus_Const_G1.d -------------------------------------------------------------------------------- /Ikarus_Const_G2.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/Ikarus_Const_G2.d -------------------------------------------------------------------------------- /Ikarus_G1.src: -------------------------------------------------------------------------------- 1 | Ikarus_Const_G1.d 2 | EngineClasses_G1\*.d 3 | Ikarus.d 4 | float.d 5 | -------------------------------------------------------------------------------- /Ikarus_G2.src: -------------------------------------------------------------------------------- 1 | Ikarus_Const_G2.d 2 | EngineClasses_G2\*.d 3 | Ikarus.d 4 | float.d 5 | -------------------------------------------------------------------------------- /float_ohneIkarus.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/float_ohneIkarus.d -------------------------------------------------------------------------------- /EngineClasses_G1/Misc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/Misc.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCMob.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCMob.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCNpc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCNpc.d -------------------------------------------------------------------------------- /EngineClasses_G2/Misc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/Misc.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCMob.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCMob.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCNpc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCNpc.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCGame.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCGame.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCItem.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCItem.d -------------------------------------------------------------------------------- /EngineClasses_G1/zCMenu.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/zCMenu.d -------------------------------------------------------------------------------- /EngineClasses_G1/zCParser.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/zCParser.d -------------------------------------------------------------------------------- /EngineClasses_G1/zCWaynet.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/zCWaynet.d -------------------------------------------------------------------------------- /EngineClasses_G1/zCWorld.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/zCWorld.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCGame.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCGame.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCItem.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCItem.d -------------------------------------------------------------------------------- /EngineClasses_G2/zCMenu.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/zCMenu.d -------------------------------------------------------------------------------- /EngineClasses_G2/zCParser.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/zCParser.d -------------------------------------------------------------------------------- /EngineClasses_G2/zCWaynet.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/zCWaynet.d -------------------------------------------------------------------------------- /EngineClasses_G2/zCWorld.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/zCWorld.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCAiHuman.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCAiHuman.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCAiHuman.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCAiHuman.d -------------------------------------------------------------------------------- /EngineClasses_G1/oCInfoManager.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/oCInfoManager.d -------------------------------------------------------------------------------- /EngineClasses_G2/oCInfoManager.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/oCInfoManager.d -------------------------------------------------------------------------------- /EngineClasses_G1/zCSkyController.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G1/zCSkyController.d -------------------------------------------------------------------------------- /EngineClasses_G2/zCSkyController.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lehona/Ikarus/HEAD/EngineClasses_G2/zCSkyController.d -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ikarus 2 | A daedalus library for the game Gothic. Exploits the interpreter to allow arbitrary memory access and defines a lot of useful functions for interfacing with the engine. 3 | 4 | ### Authors 5 | Code and documentation were originally written by [Sektenspinner](https://forum.worldofplayers.de/forum/members/11242-Sektenspinner). To incorporate changes by the community, it was hosted on GitHub. -------------------------------------------------------------------------------- /EngineClasses_G1/zCConsole.d: -------------------------------------------------------------------------------- 1 | const int zCON_MAX_EVAL = 15; 2 | const int zcon_address = 9291168; //0x8DC5A0 3 | 4 | class zCConsole { 5 | var int _vtbl; 6 | 7 | var string id; //zSTRING 8 | var string instr; //zSTRING 9 | var string savemsg; //zSTRING 10 | var string lastcommand; //zSTRING 11 | 12 | var int px; var int py; 13 | var int lx; var int ly; 14 | var int showmax; var int skip; 15 | 16 | var int dynsize; //zBOOL 17 | var int _var; //zBOOL 18 | var int autocomplete; //zBOOL 19 | 20 | //zList list; 21 | var int compare; //int (*Compare)(const zCConDat* ele1,const zCConDat* ele2); 22 | var int count; //int 23 | var int last; //zCConDat* 24 | var int wurzel; //zCConDat* 25 | 26 | var int conview; //zCView* 27 | 28 | var int evalcount; 29 | var int evalfunc[zCON_MAX_EVAL]; //zBOOL (*evalfunc[]) ( const zSTRING &s, zSTRING &msg ) 30 | var int changedfunc; //void (*changedfunc) ( const zSTRING &s ) 31 | 32 | var int world; //zCWorld* 33 | var int cparser; //zCParser* 34 | var int edit_index; //int 35 | var int edit_adr; //void* 36 | }; 37 | -------------------------------------------------------------------------------- /EngineClasses_G2/zCConsole.d: -------------------------------------------------------------------------------- 1 | const int zCON_MAX_EVAL = 15; 2 | const int zcon_address = 11221088; //0xAB3860 3 | 4 | class zCConsole { 5 | var int _vtbl; 6 | 7 | var string id; //zSTRING 8 | var string instr; //zSTRING 9 | var string savemsg; //zSTRING 10 | 11 | //zCArray lastcommand; 12 | var int lastcommand_array; //zString* 13 | var int lastcommand_numAlloc; //int 14 | var int lastcommand_numInArray; //int 15 | 16 | var int lastCommandPos; 17 | 18 | var int px; var int py; 19 | var int lx; var int ly; 20 | var int showmax; var int skip; 21 | 22 | var int dynsize; //zBOOL 23 | var int _var; //zBOOL 24 | var int autocomplete; //zBOOL 25 | 26 | //zList list; 27 | var int compare; //int (*Compare)(const zCConDat* ele1,const zCConDat* ele2); 28 | var int count; //int 29 | var int last; //zCConDat* 30 | var int wurzel; //zCConDat* 31 | 32 | var int conview; //zCView* 33 | 34 | var int evalcount; 35 | var int evalfunc[zCON_MAX_EVAL]; //zBOOL (*evalfunc[]) ( const zSTRING &s, zSTRING &msg ) 36 | var int changedfunc; //void (*changedfunc) ( const zSTRING &s ) 37 | 38 | var int world; //zCWorld* 39 | var int cparser; //zCParser* 40 | var int edit_index; //int 41 | var int edit_adr; //void* 42 | }; -------------------------------------------------------------------------------- /EngineClasses_G1/zCMesh.d: -------------------------------------------------------------------------------- 1 | class zCVisual { 2 | var int _vtbl; 3 | var int _zCObject_refCtr; 4 | var int _zCObject_hashIndex; 5 | var int _zCObject_hashNext; 6 | var string _zCObject_objectName; 7 | 8 | var int nextLODVisual; //zCVisual* 9 | var int prevLODVisual; //zCVisual* 10 | var int lodFarDistance; //zREAL 11 | var int lodNearFadeOutDistance; //zREAL 12 | }; 13 | 14 | class zCMesh { 15 | var int _vtbl; 16 | var int _zCObject_refCtr; 17 | var int _zCObject_hashIndex; 18 | var int _zCObject_hashNext; 19 | var string _zCObject_objectName; 20 | 21 | var int _zCVisual_nextLODVisual; 22 | var int _zCVisual_prevLODVisual; 23 | var int _zCVisual_lodFarDistance; 24 | var int _zCVisual_lodNearFadeOutDistance; 25 | 26 | var int numPoly; //int 27 | var int numVert; //int 28 | var int numFeat; //int 29 | 30 | var int vertList; //zCVertex** 31 | var int polyList; //zCPolygon** 32 | var int featList; //zCVertFeature** 33 | 34 | var int vertArray; //zCVertex* 35 | var int polyArray; //zCPolygon* 36 | var int featArray; //zCVertFeature* 37 | 38 | //zTBBox3D bbox3D; 39 | var int bbox3D_mins[3]; //zREAL 40 | var int bbox3D_maxs[3]; //zREAL 41 | 42 | //zCOBBox3D obbox3D; 43 | var int obbox3D_center[3]; // zVEC3 44 | var int obbox3D_axis[9]; // zVEC3[3] 45 | var int obbox3D_extent[3]; // zVEC3 46 | 47 | //zCList childs; 48 | var int obbox3D_childs_data; //zCOBBox3D* 49 | var int obbox3D_childs_next; //zCListSort* 50 | 51 | var int masterFrameCtr; //int 52 | 53 | var int next; //zCMesh* 54 | var int prev; //zCMesh* 55 | 56 | var string meshName; //zSTRING 57 | var int hasLightmaps; //zBOOL 58 | 59 | var int numVertAlloc; //int 60 | var int numPolyAlloc; //int 61 | }; 62 | -------------------------------------------------------------------------------- /EngineClasses_G2/zCMesh.d: -------------------------------------------------------------------------------- 1 | class zCVisual { 2 | var int _vtbl; 3 | var int _zCObject_refCtr; 4 | var int _zCObject_hashIndex; 5 | var int _zCObject_hashNext; 6 | var string _zCObject_objectName; 7 | 8 | var int nextLODVisual; //zCVisual* 9 | var int prevLODVisual; //zCVisual* 10 | var int lodFarDistance; //zREAL 11 | var int lodNearFadeOutDistance; //zREAL 12 | }; 13 | 14 | class zCMesh { 15 | var int _vtbl; 16 | var int _zCObject_refCtr; 17 | var int _zCObject_hashIndex; 18 | var int _zCObject_hashNext; 19 | var string _zCObject_objectName; 20 | 21 | var int _zCVisual_nextLODVisual; 22 | var int _zCVisual_prevLODVisual; 23 | var int _zCVisual_lodFarDistance; 24 | var int _zCVisual_lodNearFadeOutDistance; 25 | 26 | var int numPoly; //int 27 | var int numVert; //int 28 | var int numFeat; //int 29 | 30 | var int vertList; //zCVertex** 31 | var int polyList; //zCPolygon** 32 | var int featList; //zCVertFeature** 33 | 34 | var int vertArray; //zCVertex* 35 | var int polyArray; //zCPolygon* 36 | var int featArray; //zCVertFeature* 37 | 38 | //zTBBox3D bbox3D; 39 | var int bbox3D_mins[3]; //zREAL 40 | var int bbox3D_maxs[3]; //zREAL 41 | 42 | //zCOBBox3D obbox3D; 43 | var int obbox3D_center[3]; // zVEC3 44 | var int obbox3D_axis[9]; // zVEC3[3] 45 | var int obbox3D_extent[3]; // zVEC3 46 | 47 | //zCList childs; 48 | var int obbox3D_childs_data; //zCOBBox3D* 49 | var int obbox3D_childs_next; //zCListSort* 50 | 51 | var int masterFrameCtr; //int 52 | 53 | var int next; //zCMesh* 54 | var int prev; //zCMesh* 55 | 56 | var string meshName; //zSTRING 57 | var int hasLightmaps; //zBOOL 58 | var int m_bUsesAlphaTesting; //zBOOL 59 | 60 | var int numVertAlloc; //int 61 | var int numPolyAlloc; //int 62 | }; 63 | -------------------------------------------------------------------------------- /EngineClasses_G1/oCZoneMusic.d: -------------------------------------------------------------------------------- 1 | /* address of the pointer that points to the current MusicZone. 2 | poorly tested, was null most of the time, don't know why. */ 3 | const int oCZoneMusic__s_musiczone_Address = 9299212; //0x8DE50C //oCZoneMusic* 4 | 5 | class oCZoneMusic { 6 | //class oCZoneMusicDefault { //beide Klassen vom Speicherbild identisch 7 | // zCVob { 8 | //zCObject { 9 | var int _vtbl; 10 | var int _zCObject_refCtr; 11 | var int _zCObject_hashIndex; 12 | var int _zCObject_hashNext; 13 | var string _zCObject_objectName; 14 | //} 15 | var int _zCVob_globalVobTreeNode; 16 | var int _zCVob_lastTimeDrawn; 17 | var int _zCVob_lastTimeCollected; 18 | var int _zCVob_vobLeafList_array; 19 | var int _zCVob_vobLeafList_numAlloc; 20 | var int _zCVob_vobLeafList_numInArray; 21 | var int _zCVob_trafoObjToWorld[16]; 22 | var int _zCVob_bbox3D_mins[3]; 23 | var int _zCVob_bbox3D_maxs[3]; 24 | var int _zCVob_touchVobList_array; 25 | var int _zCVob_touchVobList_numAlloc; 26 | var int _zCVob_touchVobList_numInArray; 27 | var int _zCVob_type; 28 | var int _zCVob_groundShadowSizePacked; 29 | var int _zCVob_homeWorld; 30 | var int _zCVob_groundPoly; 31 | var int _zCVob_callback_ai; 32 | var int _zCVob_trafo; 33 | var int _zCVob_visual; 34 | var int _zCVob_visualAlpha; 35 | var int _zCVob_rigidBody; 36 | var int _zCVob_lightColorStat; 37 | var int _zCVob_lightColorDyn; 38 | var int _zCVob_lightDirectionStat[3]; 39 | var int _zCVob_vobPresetName; 40 | var int _zCVob_eventManager; 41 | var int _zCVob_nextOnTimer; 42 | var int _zCVob_bitfield[5]; 43 | var int _zCVob_m_poCollisionObjectClass; 44 | var int _zCVob_m_poCollisionObject; 45 | //zCZone 46 | var int _zCZone_world; //zCWorld* 47 | 48 | //oCZoneMusic 49 | var int enabled; //zBOOL 50 | var int local_enabled; //zBOOL 51 | var int priority; //int 52 | var int ellipsoid; //zBOOL 53 | var int reverbLevel; //float 54 | var int volumeLevel; //float 55 | var int loop; //zBOOL 56 | var int dayEntranceDone; //zBOOL 57 | var int nightEntranceDone; //zBOOL 58 | }; 59 | -------------------------------------------------------------------------------- /EngineClasses_G1/zCZoneZFog.d: -------------------------------------------------------------------------------- 1 | /* 2 | //zCZone / zCZoneMusic sind relativ uninteressante Klassen. 3 | 4 | class zCZone / zCZoneMusic { //beide Klassen vom Speicherbild identisch 5 | //[zVob Stuff....] 6 | zCWorld *world; //einzige neue Eigenschaft 7 | }; 8 | */ 9 | 10 | class zCZoneZFog { //bzw: "class zCZoneZFogDefault" denn beide Klassen sind vom Speicherbild identisch 11 | // zCVob { 12 | // zCObject { 13 | var int vfptr; 14 | var int _zCObject_refCtr; 15 | var int _zCObject_hashIndex; 16 | var int _zCObject_hashNext; 17 | var string _zCObject_objectName; 18 | // } 19 | var int _zCVob_globalVobTreeNode; 20 | var int _zCVob_lastTimeDrawn; 21 | var int _zCVob_lastTimeCollected; 22 | var int _zCVob_vobLeafList_array; 23 | var int _zCVob_vobLeafList_numAlloc; 24 | var int _zCVob_vobLeafList_numInArray; 25 | var int _zCVob_trafoObjToWorld[16]; 26 | var int _zCVob_bbox3D_mins[3]; 27 | var int _zCVob_bbox3D_maxs[3]; 28 | var int _zCVob_touchVobList_array; 29 | var int _zCVob_touchVobList_numAlloc; 30 | var int _zCVob_touchVobList_numInArray; 31 | var int _zCVob_type; 32 | var int _zCVob_groundShadowSizePacked; 33 | var int _zCVob_homeWorld; 34 | var int _zCVob_groundPoly; 35 | var int _zCVob_callback_ai; 36 | var int _zCVob_trafo; 37 | var int _zCVob_visual; 38 | var int _zCVob_visualAlpha; 39 | var int _zCVob_rigidBody; 40 | var int _zCVob_lightColorStat; 41 | var int _zCVob_lightColorDyn; 42 | var int _zCVob_lightDirectionStat[3]; 43 | var int _zCVob_vobPresetName; 44 | var int _zCVob_eventManager; 45 | var int _zCVob_nextOnTimer; 46 | var int _zCVob_bitfield[5]; 47 | var int _zCVob_m_poCollisionObjectClass; 48 | var int _zCVob_m_poCollisionObject; 49 | //zCZone 50 | var int _zCZone_world; //zCWorld* 51 | 52 | //zCZoneZFog, Eigenschaften aus dem Spacer bekanntrrun scripts 53 | 54 | var int fogRangeCenter; //zREAL 55 | var int innerRangePerc; //zREAL 56 | var int fogColor; //zCOLOR 57 | }; -------------------------------------------------------------------------------- /EngineClasses_G1/zCOption.d: -------------------------------------------------------------------------------- 1 | //################################################################# 2 | // 3 | // Ini File Interface: zCOption 4 | // 5 | //################################################################# 6 | 7 | /* 8 | The sense of "Temporary values" is probably, that the developers 9 | thought of an "apply" button. If that "apply" button is used, 10 | temporary values would have been made persistent. 11 | 12 | Doesn't seem like this feature is used anywhere. 13 | */ 14 | 15 | //************************************ 16 | // zCOptions is the interface 17 | // to access ini files. 18 | //************************************ 19 | 20 | const int NUM_ENTRIES = 25; 21 | 22 | class zCOption { 23 | var int _vbtl; 24 | var int m_bReadTemp; //zBOOL //read "temporary" value instead of normal value. 25 | 26 | //zCArray sectionList; //an ini files consists of sections 27 | var int sectionList_array; 28 | var int sectionList_numAlloc; 29 | var int sectionList_numInArray; 30 | 31 | var int directory[NUM_ENTRIES]; //zFILE* //no idea what this is for. 32 | var string dir_string[NUM_ENTRIES]; //zSTRING //no idea what this is for. 33 | var string commandline; //zSTRING //zCOptions is responsible for the command line as well. 34 | }; 35 | 36 | class zCOptionSection { 37 | var string secName; //zSTRING //name of the section. For example "GAME" 38 | 39 | //zCArray entryList; //the entries in this section. 40 | var int entryList_array; 41 | var int entryList_numAlloc; 42 | var int entryList_numInArray; 43 | }; 44 | 45 | const int sizeof_zCOptionSection = /* sizeof_zString */ 20 + 12; 46 | 47 | class zCOptionEntry { 48 | var int changed; //zBOOL //unused? 49 | 50 | //zCArray ccbList; //engine functions that want to be informed, whenever this option changes. Quite useless for modders. 51 | var int ccbList_array; 52 | var int ccbList_numAlloc; 53 | var int ccbList_numInArray; 54 | 55 | // Variable-Data 56 | var string varName; //zSTRING //name of the variable 57 | var string varValue; //zSTRING //value of the variable (everything is converted to a string) 58 | var string varValueTemp; //zSTRING //temporary value of the variable. See above. Useless as far as I can see. 59 | var int varFlag; //int //flags of the variable. The engine doesn't seem to care about these flags however. 60 | }; 61 | 62 | const int sizeof_zCOptionEntry = 5*4 + 3 * 20; -------------------------------------------------------------------------------- /EngineClasses_G2/zCOption.d: -------------------------------------------------------------------------------- 1 | //################################################################# 2 | // 3 | // Ini File Interface: zCOption 4 | // 5 | //################################################################# 6 | 7 | /* 8 | The sense of "Temporary values" is probably, that the developers 9 | thought of an "apply" button. If that "apply" button is used, 10 | temporary values would have been made persistent. 11 | 12 | Doesn't seem like this feature is used anywhere. 13 | */ 14 | 15 | //************************************ 16 | // zCOptions is the interface 17 | // to access ini files. 18 | //************************************ 19 | 20 | const int NUM_ENTRIES = 26; 21 | 22 | class zCOption { 23 | var int _vbtl; 24 | var int m_bReadTemp; //zBOOL //read "temporary" value instead of normal value. 25 | 26 | //zCArray sectionList; //an ini files consists of sections 27 | var int sectionList_array; 28 | var int sectionList_numAlloc; 29 | var int sectionList_numInArray; 30 | 31 | var int directory[NUM_ENTRIES]; //zFILE* //no idea what this is for. 32 | var string dir_string[NUM_ENTRIES]; //zSTRING //no idea what this is for. 33 | var string commandline; //zSTRING //zCOptions is responsible for the command line as well. 34 | }; 35 | 36 | class zCOptionSection { 37 | var string secName; //zSTRING //name of the section. For example "GAME" 38 | 39 | //zCArray entryList; //the entries in this section. 40 | var int entryList_array; 41 | var int entryList_numAlloc; 42 | var int entryList_numInArray; 43 | }; 44 | 45 | const int sizeof_zCOptionSection = /* sizeof_zString */ 20 + 12; 46 | 47 | class zCOptionEntry { 48 | var int changed; //zBOOL //unused? 49 | 50 | //zCArray ccbList; //engine functions that want to be informed, whenever this option changes. Quite useless for modders. 51 | var int ccbList_array; 52 | var int ccbList_numAlloc; 53 | var int ccbList_numInArray; 54 | 55 | // Variable-Data 56 | var string varName; //zSTRING //name of the variable 57 | var string varValue; //zSTRING //value of the variable (everything is converted to a string) 58 | var string varValueTemp; //zSTRING //temporary value of the variable. See above. Useless as far as I can see. 59 | var int varFlag; //int //flags of the variable. The engine doesn't seem to care about these flags however. 60 | }; 61 | 62 | const int sizeof_zCOptionEntry = 5*4 + 3 * 20; -------------------------------------------------------------------------------- /EngineClasses_G2/oCZoneMusic.d: -------------------------------------------------------------------------------- 1 | /* address of the pointer that points to the current MusicZone. 2 | poorly tested, was null most of the time, don't know why. */ 3 | const int oCZoneMusic__s_musiczone_Address = 10111524; //0x9A4A24 //oCZoneMusic* 4 | 5 | class oCZoneMusic { 6 | //class oCZoneMusicDefault { //beide Klassen vom Speicherbild identisch 7 | //zCVob { 8 | //zCObject { 9 | var int _vtbl; 10 | var int _zCObject_refCtr; 11 | var int _zCObject_hashIndex; 12 | var int _zCObject_hashNext; 13 | var string _zCObject_objectName; 14 | //} 15 | var int _zCVob_globalVobTreeNode; 16 | var int _zCVob_lastTimeDrawn; 17 | var int _zCVob_lastTimeCollected; 18 | var int _zCVob_vobLeafList_array; 19 | var int _zCVob_vobLeafList_numAlloc; 20 | var int _zCVob_vobLeafList_numInArray; 21 | var int _zCVob_trafoObjToWorld[16]; 22 | var int _zCVob_bbox3D_mins[3]; 23 | var int _zCVob_bbox3D_maxs[3]; 24 | var int _zCVob_bsphere3D_center[3]; 25 | var int _zCVob_bsphere3D_radius; 26 | var int _zCVob_touchVobList_array; 27 | var int _zCVob_touchVobList_numAlloc; 28 | var int _zCVob_touchVobList_numInArray; 29 | var int _zCVob_type; 30 | var int _zCVob_groundShadowSizePacked; 31 | var int _zCVob_homeWorld; 32 | var int _zCVob_groundPoly; 33 | var int _zCVob_callback_ai; 34 | var int _zCVob_trafo; 35 | var int _zCVob_visual; 36 | var int _zCVob_visualAlpha; 37 | var int _zCVob_m_fVobFarClipZScale; 38 | var int _zCVob_m_AniMode; 39 | var int _zCVob_m_aniModeStrength; 40 | var int _zCVob_m_zBias; 41 | var int _zCVob_rigidBody; 42 | var int _zCVob_lightColorStat; 43 | var int _zCVob_lightColorDyn; 44 | var int _zCVob_lightDirectionStat[3]; 45 | var int _zCVob_vobPresetName; 46 | var int _zCVob_eventManager; 47 | var int _zCVob_nextOnTimer; 48 | var int _zCVob_bitfield[5]; 49 | var int _zCVob_m_poCollisionObjectClass; 50 | var int _zCVob_m_poCollisionObject; 51 | //zCZone 52 | var int _zCZone_world; //zCWorld* 53 | 54 | //oCZoneMusic 55 | var int enabled; //zBOOL 56 | var int local_enabled; //zBOOL 57 | var int priority; //int 58 | var int ellipsoid; //zBOOL 59 | var int reverbLevel; //float 60 | var int volumeLevel; //float 61 | var int loop; //zBOOL 62 | var int dayEntranceDone; //zBOOL 63 | var int nightEntranceDone; //zBOOL 64 | }; 65 | -------------------------------------------------------------------------------- /EngineClasses_G2/zCZoneZFog.d: -------------------------------------------------------------------------------- 1 | /* 2 | //zCZone / zCZoneMusic sind relativ uninteressante Klassen. 3 | 4 | class zCZone / zCZoneMusic { //beide Klassen vom Speicherbild identisch 5 | //[zVob Stuff....] 6 | zCWorld *world; //einzige neue Eigenschaft 7 | }; 8 | */ 9 | 10 | class zCZoneZFog { 11 | //class zCZoneZFogDefault { //beide Klassen vom Speicherbild identisch 12 | //zCVob { 13 | //zCObject { 14 | var int _vtbl; 15 | var int _zCObject_refCtr; 16 | var int _zCObject_hashIndex; 17 | var int _zCObject_hashNext; 18 | var string _zCObject_objectName; 19 | //} 20 | var int _zCVob_globalVobTreeNode; 21 | var int _zCVob_lastTimeDrawn; 22 | var int _zCVob_lastTimeCollected; 23 | var int _zCVob_vobLeafList_array; 24 | var int _zCVob_vobLeafList_numAlloc; 25 | var int _zCVob_vobLeafList_numInArray; 26 | var int _zCVob_trafoObjToWorld[16]; 27 | var int _zCVob_bbox3D_mins[3]; 28 | var int _zCVob_bbox3D_maxs[3]; 29 | var int _zCVob_bsphere3D_center[3]; 30 | var int _zCVob_bsphere3D_radius; 31 | var int _zCVob_touchVobList_array; 32 | var int _zCVob_touchVobList_numAlloc; 33 | var int _zCVob_touchVobList_numInArray; 34 | var int _zCVob_type; 35 | var int _zCVob_groundShadowSizePacked; 36 | var int _zCVob_homeWorld; 37 | var int _zCVob_groundPoly; 38 | var int _zCVob_callback_ai; 39 | var int _zCVob_trafo; 40 | var int _zCVob_visual; 41 | var int _zCVob_visualAlpha; 42 | var int _zCVob_m_fVobFarClipZScale; 43 | var int _zCVob_m_AniMode; 44 | var int _zCVob_m_aniModeStrength; 45 | var int _zCVob_m_zBias; 46 | var int _zCVob_rigidBody; 47 | var int _zCVob_lightColorStat; 48 | var int _zCVob_lightColorDyn; 49 | var int _zCVob_lightDirectionStat[3]; 50 | var int _zCVob_vobPresetName; 51 | var int _zCVob_eventManager; 52 | var int _zCVob_nextOnTimer; 53 | var int _zCVob_bitfield[5]; 54 | var int _zCVob_m_poCollisionObjectClass; 55 | var int _zCVob_m_poCollisionObject; 56 | //zCZone 57 | var int _zCZone_world; //zCWorld* 58 | 59 | //zCZoneZFog, Eigenschaften aus dem Spacer bekanntrrun scripts 60 | 61 | var int fogRangeCenter; //zREAL 62 | var int innerRangePerc; //zREAL 63 | var int fogColor; //zCOLOR 64 | var int bFadeOutSky; //zBOOL 65 | var int bOverrideColor; //zBOOL 66 | }; -------------------------------------------------------------------------------- /EngineClasses_G1/zCCamera.d: -------------------------------------------------------------------------------- 1 | //-------------------------------------- 2 | // Kamera 3 | //-------------------------------------- 4 | 5 | const int NUM_FRUSTUM_PLANES = 6; 6 | 7 | class zCCamera { 8 | //enum { CLIP_FLAGS_FULL = 63, CLIP_FLAGS_FULL_WO_FAR = 15 }; 9 | //enum { NUM_FRUSTUM_PLANES_WO_FAR = 4 }; 10 | //enum { FRUSTUM_PLANE_FAR = 4 }; 11 | 12 | //zTPlane frustumplanes [NUM_FRUSTUM_PLANES]; 13 | var int frustumplanes[24/*NUM_FRUSTUM_PLANES * sizeof (zTPlane)*/]; //zTPlane: { zREAL distance; zPOINT3 normal; } 14 | var int signbits[/*NUM_FRUSTUM_PLANES als Bytes*/ 2]; //zBYTE 15 | 16 | //var int zTViewportData vpData; 17 | var int xmin; //int // oben rechts 18 | var int ymin; //int 19 | var int xdim; //int 20 | var int ydim; //int 21 | var int xminFloat; //zVALUE // oben links 22 | var int yminFloat; //zVALUE 23 | var int xmaxFloat; //zVALUE // unten rechts 24 | var int ymaxFloat; //zVALUE 25 | var int xdimFloat; //zVALUE 26 | var int ydimFloat; //zVALUE 27 | var int xdimFloatMinus1; //zVALUE 28 | var int ydimFloatMinus1; //zVALUE 29 | var int xcenter; //zVALUE 30 | var int ycenter; //zVALUE 31 | 32 | var int targetView; //zCViewBase 33 | 34 | //Transformationsmatrizzen: 35 | var int camMatrix [16]; //zMATRIX4 36 | var int camMatrixInv[16]; //zMATRIX4 37 | 38 | var int tremorToggle; //zBOOL 39 | var int tremorScale; //zREAL 40 | var int tremorAmplitude[3]; //zVEC3 41 | var int tremorOrigin[3]; //zVEC3 42 | var int tremorVelo; //zREAL 43 | 44 | // Transformation matrices 45 | var int trafoView [16]; //zMATRIX4 46 | var int trafoViewInv[16]; //zMATRIX4 47 | var int trafoWorld [16]; //zMATRIX4 48 | 49 | /* 50 | template class zCMatrixStack { 51 | int pos; 52 | T stack[SIZE]; 53 | }*/ 54 | //zCMatrixStack trafoViewStack; 55 | var int trafoViewStack[/* 1 + 16 * 8 */129]; 56 | //zCMatrixStack trafoWorldStack; 57 | var int trafoWorldStack[/* 1 + 16 * 8 */129]; 58 | //zCMatrixStack trafoWorldViewStack; 59 | var int trafoWorldViewStack[/* 1 + 16 * 8 */129]; 60 | 61 | var int trafoProjection[16]; //zMATRIX4 62 | 63 | //enum { zTCAM_POLY_NUM_VERT = 4 }; 64 | 65 | /* 66 | struct zTCamVertSimple { 67 | zREAL x,y,z; 68 | zVEC2 texuv; 69 | zCOLOR color; 70 | }; 71 | */ 72 | 73 | //zTCamVertSimple polyCamVerts[zTCAM_POLY_NUM_VERT]; 74 | var int polyCamVerts[/*zTCAM_POLY_NUM_VERT * (3 + 2 + 1)*/ 24]; 75 | 76 | var int poly; //zCPolygon* 77 | var int polyMesh; //zCMesh* 78 | var int polyMaterial; //zCMaterial* 79 | 80 | // Screen-Effects 81 | var int screenFadeEnabled; //zBOOL 82 | var int screenFadeColor; //zCOLOR 83 | 84 | var int cinemaScopeEnabled; //zBOOL 85 | var int cinemaScopeColor; //zCOLOR 86 | 87 | //ungenutzt: 88 | //enum zPROJECTION { PERSPECTIVE, ORTHOGONAL }; 89 | var int projection; //zPROJECTION 90 | 91 | /* 92 | enum zTCam_DrawMode { zCAM_DRAW_NORMAL, zCAM_DRAW_NOTHING, 93 | zCAM_DRAW_WIRE, zCAM_DRAW_FLAT, zCAM_DRAW_TEX }; */ 94 | var int drawMode; //zTCam_DrawMode 95 | 96 | /* 97 | enum zTShadeMode { zSHADE_NORMAL, zSHADE_NOTHING, zSHADE_CONSTANT, zSHADE_GOURAUD, zSHADE_LIGHTMAP }; */ 98 | var int shadeMode; //zTShadeMode 99 | 100 | var int drawWire; //zBOOL 101 | 102 | var int farClipZ; //zVALUE 103 | var int nearClipZ; //zVALUE 104 | var int viewDistanceX; //zVALUE 105 | var int viewDistanceY; //zVALUE 106 | var int viewDistanceXInv; //zVALUE 107 | var int viewDistanceYInv; //zVALUE 108 | var int vobFarClipZ; //zBOOL 109 | var int fovH; //zREAL 110 | var int fovV; //zREAL 111 | var int connectedVob; //zCVob* 112 | 113 | var int topBottomSin; //zVALUE 114 | var int topBottomCos; //zVALUE 115 | var int leftRightSin; //zVALUE 116 | var int leftRightCos; //zVALUE 117 | }; -------------------------------------------------------------------------------- /EngineClasses_G1/zCTexture.d: -------------------------------------------------------------------------------- 1 | const int zCResource_bitfield0_cacheState = ((1 << 2) - 1) << 0; 2 | const int zCResource_bitfield0_cacheOutLock = ((1 << 1) - 1) << 8; 3 | const int zCResource_bitfield0_cacheClassIndex = ((1 << 8) - 1) << 16; 4 | const int zCResource_bitfield0_managedByResMan = ((1 << 1) - 1) << 24; 5 | const int zCResource_bitfield1_cacheInPriority = ((1 << 16) - 1) << 0; 6 | // const int zCResource_bitfield1_canBeCachedOut = ((1 << 1) - 1) << 16; //G2 only 7 | 8 | class zCResource { 9 | //zCObject { 10 | var int _vtbl; 11 | var int _zCObject_refCtr; 12 | var int _zCObject_hashIndex; 13 | var int _zCObject_hashNext; 14 | var string _zCObject_objectName; 15 | 16 | var int nextRes; //zCResource* 17 | var int prevRes; //zCResource* 18 | var int timeStamp; //zDWORD 19 | 20 | //zCCriticalSection stateChangeGuard 21 | var int stateChangeGuard_vbtl; 22 | var int stateChangeGuard_criticalSection[6]; //CRITICAL_SECTION 23 | 24 | var int bitfield[2]; 25 | }; 26 | 27 | 28 | const int zCTexture_bitfield_hasAlpha = 1 << 0; 29 | const int zCTexture_bitfield_isAnimated = 1 << 8; 30 | const int zCTexture_bitfield_changingRealtime = 1 << 16; 31 | const int zCTexture_bitfield_isTextureTile = 1 << 24; 32 | 33 | class zCTexture { 34 | //zCObject { 35 | var int _vtbl; 36 | var int _zCObject_refCtr; 37 | var int _zCObject_hashIndex; 38 | var int _zCObject_hashNext; 39 | var string _zCObject_objectName; 40 | 41 | //zCResource 42 | var int _zCResource_nextRes; 43 | var int _zCResource_prevRes; 44 | var int _zCResource_timeStamp; 45 | var int _zCResource_stateChangeGuard_vbtl; 46 | var int _zCResource_stateChangeGuard_criticalSection[6]; 47 | var int _zCResource_bitfield[2]; 48 | 49 | //zCTextureExchange 50 | var int _zCTextureExchange_vtbl; 51 | 52 | var int nextAni [3]; //zCTexture* 53 | var int prevAni [3]; //zCTexture* 54 | var int actAniFrame [3]; //int 55 | var int numAniFrames[3]; //int 56 | 57 | var int bitfield; 58 | }; 59 | 60 | const int zCTex_D3D_bitfield_xtex_decompress = ((1 << 1) - 1) << 17; 61 | const int zCTex_D3D_bitfield_xtex_locked = ((1 << 1) - 1) << 18; 62 | const int zCTex_D3D_bitfield_xtex_palsupport = ((1 << 1) - 1) << 19; 63 | const int zCTex_D3D_bitfield_xtex_miplocked = ((1 << 12) - 1) << 20; 64 | 65 | class zCTex_D3D { 66 | //zCObject { 67 | var int _vtbl; 68 | var int _zCObject_refCtr; 69 | var int _zCObject_hashIndex; 70 | var int _zCObject_hashNext; 71 | var string _zCObject_objectName; 72 | 73 | //zCResource 74 | var int _zCResource_nextRes; 75 | var int _zCResource_prevRes; 76 | var int _zCResource_timeStamp; 77 | var int _zCResource_stateChangeGuard_vbtl; 78 | var int _zCResource_stateChangeGuard_criticalSection[6]; 79 | var int _zCResource_bitfield[2]; 80 | 81 | //zCTextureExchange 82 | var int _zCTextureExchange_vtbl; 83 | 84 | //zCTexture 85 | var int _zCTexture_nextAni[3]; 86 | var int _zCTexture_prevAni[3]; 87 | var int _zCTexture_actAniFrame[3]; 88 | var int _zCTexture_numAniFrames[3]; 89 | var int _zCTexture_bitfield; 90 | 91 | var int xtex_textureflag; //tends to be 0xDEADFACE 92 | var int bitfield; 93 | 94 | //zCTextureInfo xtex_texinfo 95 | var int xtex_texinfo_texFormat; // zTRnd_TextureFormat 96 | var int xtex_texinfo_sizeX; // int 97 | var int xtex_texinfo_sizeY; // int 98 | var int xtex_texinfo_numMipMap; // int 99 | var int xtex_texinfo_refSizeX; // int 100 | var int xtex_texinfo_refSizeY; // int 101 | var int xtex_texinfo_averageColor; // zCOLOR 102 | 103 | //zCSurfaceCache_D3D::zCSlotIndex xtex_slotindex 104 | var int xtex_slotindex_dynamic; //int 105 | var int xtex_slotindex_pixelformat; //int 106 | var int xtex_slotindex_mipmaps; //int 107 | var int xtex_slotindex_width; //int 108 | var int xtex_slotindex_height; //int 109 | 110 | var int xtex_pPalettePtr; //char* 111 | var int xtex_pddpal; //IDirectDrawPalette* 112 | var int xtex_internalnumber; //int 113 | var int xtex_alphaTex; //zBOOL 114 | var int xtex_pddtex[12]; //IDirectDrawSurface7* 115 | var int xtex_pddtemporarytex[12]; //IDirectDrawSurface7* 116 | var int xtex_lastFrameUsed; //int 117 | var int xtex_buffer; //void* 118 | }; 119 | -------------------------------------------------------------------------------- /EngineClasses_G2/zCTexture.d: -------------------------------------------------------------------------------- 1 | const int zCResource_bitfield0_cacheState = ((1 << 2) - 1) << 0; 2 | const int zCResource_bitfield0_cacheOutLock = ((1 << 1) - 1) << 8; 3 | const int zCResource_bitfield0_cacheClassIndex = ((1 << 8) - 1) << 16; 4 | const int zCResource_bitfield0_managedByResMan = ((1 << 1) - 1) << 24; 5 | const int zCResource_bitfield1_cacheInPriority = ((1 << 16) - 1) << 0; 6 | const int zCResource_bitfield1_canBeCachedOut = ((1 << 1) - 1) << 16; 7 | 8 | class zCResource { 9 | //zCObject { 10 | var int _vtbl; 11 | var int _zCObject_refCtr; 12 | var int _zCObject_hashIndex; 13 | var int _zCObject_hashNext; 14 | var string _zCObject_objectName; 15 | 16 | var int nextRes; //zCResource* 17 | var int prevRes; //zCResource* 18 | var int timeStamp; //zDWORD 19 | 20 | //zCCriticalSection stateChangeGuard 21 | var int stateChangeGuard_vbtl; 22 | var int stateChangeGuard_criticalSection[6]; //CRITICAL_SECTION 23 | 24 | var int bitfield[2]; 25 | }; 26 | 27 | 28 | const int zCTexture_bitfield_hasAlpha = 1 << 0; 29 | const int zCTexture_bitfield_isAnimated = 1 << 8; 30 | const int zCTexture_bitfield_changingRealtime = 1 << 16; 31 | const int zCTexture_bitfield_isTextureTile = 1 << 24; 32 | 33 | class zCTexture { 34 | //zCObject { 35 | var int _vtbl; 36 | var int _zCObject_refCtr; 37 | var int _zCObject_hashIndex; 38 | var int _zCObject_hashNext; 39 | var string _zCObject_objectName; 40 | 41 | //zCResource 42 | var int _zCResource_nextRes; 43 | var int _zCResource_prevRes; 44 | var int _zCResource_timeStamp; 45 | var int _zCResource_stateChangeGuard_vbtl; 46 | var int _zCResource_stateChangeGuard_criticalSection[6]; 47 | var int _zCResource_bitfield[2]; 48 | 49 | //zCTextureExchange 50 | var int _zCTextureExchange_vtbl; 51 | 52 | var int nextAni [3]; //zCTexture* 53 | var int prevAni [3]; //zCTexture* 54 | var int actAniFrame [3]; //int 55 | var int numAniFrames[3]; //int 56 | 57 | var int bitfield; 58 | }; 59 | 60 | const int zCTex_D3D_bitfield_xtex_decompress = ((1 << 1) - 1) << 17; 61 | const int zCTex_D3D_bitfield_xtex_locked = ((1 << 1) - 1) << 18; 62 | const int zCTex_D3D_bitfield_xtex_palsupport = ((1 << 1) - 1) << 19; 63 | const int zCTex_D3D_bitfield_xtex_miplocked = ((1 << 12) - 1) << 20; 64 | 65 | class zCTex_D3D { 66 | //zCObject { 67 | var int _vtbl; 68 | var int _zCObject_refCtr; 69 | var int _zCObject_hashIndex; 70 | var int _zCObject_hashNext; 71 | var string _zCObject_objectName; 72 | 73 | //zCResource 74 | var int _zCResource_nextRes; 75 | var int _zCResource_prevRes; 76 | var int _zCResource_timeStamp; 77 | var int _zCResource_stateChangeGuard_vbtl; 78 | var int _zCResource_stateChangeGuard_criticalSection[6]; 79 | var int _zCResource_bitfield[2]; 80 | 81 | //zCTextureExchange 82 | var int _zCTextureExchange_vtbl; 83 | 84 | //zCTexture 85 | var int _zCTexture_nextAni[3]; 86 | var int _zCTexture_prevAni[3]; 87 | var int _zCTexture_actAniFrame[3]; 88 | var int _zCTexture_numAniFrames[3]; 89 | var int _zCTexture_bitfield; 90 | 91 | var int xtex_textureflag; //tends to be 0xDEADFACE 92 | var int bitfield; 93 | 94 | //zCTextureInfo xtex_texinfo 95 | var int xtex_texinfo_texFormat; // zTRnd_TextureFormat 96 | var int xtex_texinfo_sizeX; // int 97 | var int xtex_texinfo_sizeY; // int 98 | var int xtex_texinfo_numMipMap; // int 99 | var int xtex_texinfo_refSizeX; // int 100 | var int xtex_texinfo_refSizeY; // int 101 | var int xtex_texinfo_averageColor; // zCOLOR 102 | 103 | //zCSurfaceCache_D3D::zCSlotIndex xtex_slotindex 104 | var int xtex_slotindex_dynamic; //int 105 | var int xtex_slotindex_pixelformat; //int 106 | var int xtex_slotindex_mipmaps; //int 107 | var int xtex_slotindex_width; //int 108 | var int xtex_slotindex_height; //int 109 | 110 | var int xtex_pPalettePtr; //char* 111 | var int xtex_pddpal; //IDirectDrawPalette* 112 | var int xtex_internalnumber; //int 113 | var int xtex_alphaTex; //zBOOL 114 | var int xtex_pddtex[12]; //IDirectDrawSurface7* 115 | var int xtex_pddtemporarytex[12]; //IDirectDrawSurface7* 116 | var int xtex_lastFrameUsed; //int 117 | var int xtex_buffer; //void* 118 | }; -------------------------------------------------------------------------------- /EngineClasses_G2/zCCamera.d: -------------------------------------------------------------------------------- 1 | //-------------------------------------- 2 | // Kamera 3 | //-------------------------------------- 4 | 5 | const int NUM_FRUSTUM_PLANES = 6; 6 | 7 | class zCCamera { 8 | //enum { CLIP_FLAGS_FULL = 63, CLIP_FLAGS_FULL_WO_FAR = 15 }; 9 | //enum { NUM_FRUSTUM_PLANES_WO_FAR = 4 }; 10 | //enum { FRUSTUM_PLANE_FAR = 4 }; 11 | 12 | //zTPlane frustumplanes [NUM_FRUSTUM_PLANES]; 13 | var int frustumplanes[24/*NUM_FRUSTUM_PLANES * sizeof (zTPlane)*/]; //zTPlane: { zREAL distance; zPOINT3 normal; } 14 | var int signbits[/*NUM_FRUSTUM_PLANES als Bytes*/ 2]; //zBYTE 15 | 16 | //var int zTViewportData vpData; 17 | var int xmin; //int // oben rechts 18 | var int ymin; //int 19 | var int xdim; //int 20 | var int ydim; //int 21 | var int xminFloat; //zVALUE // oben links 22 | var int yminFloat; //zVALUE 23 | var int xmaxFloat; //zVALUE // unten rechts 24 | var int ymaxFloat; //zVALUE 25 | var int xdimFloat; //zVALUE 26 | var int ydimFloat; //zVALUE 27 | var int xdimFloatMinus1; //zVALUE 28 | var int ydimFloatMinus1; //zVALUE 29 | var int xcenter; //zVALUE 30 | var int ycenter; //zVALUE 31 | 32 | var int targetView; //zCViewBase 33 | 34 | //Transformationsmatrizzen: 35 | var int camMatrix [16]; //zMATRIX4 36 | var int camMatrixInv[16]; //zMATRIX4 37 | 38 | var int tremorToggle; //zBOOL 39 | var int tremorScale; //zREAL 40 | var int tremorAmplitude[3]; //zVEC3 41 | var int tremorOrigin[3]; //zVEC3 42 | var int tremorVelo; //zREAL 43 | 44 | // Transformation matrices 45 | var int trafoView [16]; //zMATRIX4 46 | var int trafoViewInv[16]; //zMATRIX4 47 | var int trafoWorld [16]; //zMATRIX4 48 | 49 | /* 50 | template class zCMatrixStack { 51 | int pos; 52 | T stack[SIZE]; 53 | }*/ 54 | //zCMatrixStack trafoViewStack; 55 | var int trafoViewStack[/* 1 + 16 * 8 */129]; 56 | //zCMatrixStack trafoWorldStack; 57 | var int trafoWorldStack[/* 1 + 16 * 8 */129]; 58 | //zCMatrixStack trafoWorldViewStack; 59 | var int trafoWorldViewStack[/* 1 + 16 * 8 */129]; 60 | 61 | var int trafoProjection[16]; //zMATRIX4 62 | 63 | //enum { zTCAM_POLY_NUM_VERT = 4 }; 64 | 65 | /* 66 | struct zTCamVertSimple { 67 | zREAL x,y,z; 68 | zVEC2 texuv; 69 | zCOLOR color; 70 | }; 71 | */ 72 | 73 | //zTCamVertSimple polyCamVerts[zTCAM_POLY_NUM_VERT]; 74 | var int polyCamVerts[/*zTCAM_POLY_NUM_VERT * (3 + 2 + 1)*/ 24]; 75 | 76 | var int poly; //zCPolygon* 77 | var int polyMesh; //zCMesh* 78 | var int polyMaterial; //zCMaterial* 79 | 80 | // Screen-Effects 81 | var int screenFadeEnabled; //zBOOL 82 | var int screenFadeColor; //zCOLOR 83 | var string screenFadeTexture; //zSTRING 84 | var int screenFadeTextureAniFPS; //zREAL 85 | 86 | /* 87 | enum zTRnd_AlphaBlendFunc { zRND_ALPHA_FUNC_MAT_DEFAULT, 88 | zRND_ALPHA_FUNC_NONE, 89 | zRND_ALPHA_FUNC_BLEND, 90 | zRND_ALPHA_FUNC_ADD, 91 | zRND_ALPHA_FUNC_SUB, 92 | zRND_ALPHA_FUNC_MUL, 93 | zRND_ALPHA_FUNC_MUL2, 94 | zRND_ALPHA_FUNC_TEST, 95 | zRND_ALPHA_FUNC_BLEND_TEST 96 | }; */ 97 | var int screenFadeTextureBlendFunc; //zTRnd_AlphaBlendFunc 98 | var int cinemaScopeEnabled; //zBOOL 99 | var int cinemaScopeColor; //zCOLOR 100 | 101 | //ungenutzt: 102 | //enum zPROJECTION { PERSPECTIVE, ORTHOGONAL }; 103 | var int projection; //zPROJECTION 104 | 105 | /* 106 | enum zTCam_DrawMode { zCAM_DRAW_NORMAL, zCAM_DRAW_NOTHING, 107 | zCAM_DRAW_WIRE, zCAM_DRAW_FLAT, zCAM_DRAW_TEX }; */ 108 | var int drawMode; //zTCam_DrawMode 109 | 110 | /* 111 | enum zTShadeMode { zSHADE_NORMAL, zSHADE_NOTHING, zSHADE_CONSTANT, zSHADE_GOURAUD, zSHADE_LIGHTMAP }; */ 112 | var int shadeMode; //zTShadeMode 113 | 114 | var int drawWire; //zBOOL 115 | 116 | var int farClipZ; //zVALUE 117 | var int nearClipZ; //zVALUE 118 | var int viewDistanceX; //zVALUE 119 | var int viewDistanceY; //zVALUE 120 | var int viewDistanceXInv; //zVALUE 121 | var int viewDistanceYInv; //zVALUE 122 | var int vobFarClipZ; //zBOOL 123 | var int fovH; //zREAL 124 | var int fovV; //zREAL 125 | var int connectedVob; //zCVob* 126 | 127 | var int topBottomSin; //zVALUE 128 | var int topBottomCos; //zVALUE 129 | var int leftRightSin; //zVALUE 130 | var int leftRightCos; //zVALUE 131 | }; -------------------------------------------------------------------------------- /EngineClasses_G2/zCTrigger.d: -------------------------------------------------------------------------------- 1 | const int zCTrigger_bitfield_reactToOnTrigger = ((1 << 1) - 1) << 0; 2 | const int zCTrigger_bitfield_reactToOnTouch = ((1 << 1) - 1) << 1; 3 | const int zCTrigger_bitfield_reactToOnDamage = ((1 << 1) - 1) << 2; 4 | const int zCTrigger_bitfield_respondToObject = ((1 << 1) - 1) << 3; 5 | const int zCTrigger_bitfield_respondToPC = ((1 << 1) - 1) << 4; 6 | const int zCTrigger_bitfield_respondToNPC = ((1 << 1) - 1) << 5; 7 | 8 | const int zCTrigger_bitfield_startEnabled = ((1 << 1) - 1) << (8 + 0); 9 | const int zCTrigger_bitfield_isEnabled = ((1 << 1) - 1) << (8 + 1); 10 | const int zCTrigger_bitfield_sendUntrigger = ((1 << 1) - 1) << (8 + 2); 11 | 12 | class zCTrigger { 13 | //zCVob { 14 | //zCObject { 15 | var int _vtbl; 16 | var int _zCObject_refCtr; 17 | var int _zCObject_hashIndex; 18 | var int _zCObject_hashNext; 19 | var string _zCObject_objectName; 20 | //} 21 | var int _zCVob_globalVobTreeNode; 22 | var int _zCVob_lastTimeDrawn; 23 | var int _zCVob_lastTimeCollected; 24 | var int _zCVob_vobLeafList_array; 25 | var int _zCVob_vobLeafList_numAlloc; 26 | var int _zCVob_vobLeafList_numInArray; 27 | var int _zCVob_trafoObjToWorld[16]; 28 | var int _zCVob_bbox3D_mins[3]; 29 | var int _zCVob_bbox3D_maxs[3]; 30 | var int _zCVob_bsphere3D_center[3]; 31 | var int _zCVob_bsphere3D_radius; 32 | var int _zCVob_touchVobList_array; 33 | var int _zCVob_touchVobList_numAlloc; 34 | var int _zCVob_touchVobList_numInArray; 35 | var int _zCVob_type; 36 | var int _zCVob_groundShadowSizePacked; 37 | var int _zCVob_homeWorld; 38 | var int _zCVob_groundPoly; 39 | var int _zCVob_callback_ai; 40 | var int _zCVob_trafo; 41 | var int _zCVob_visual; 42 | var int _zCVob_visualAlpha; 43 | var int _zCVob_m_fVobFarClipZScale; 44 | var int _zCVob_m_AniMode; 45 | var int _zCVob_m_aniModeStrength; 46 | var int _zCVob_m_zBias; 47 | var int _zCVob_rigidBody; 48 | var int _zCVob_lightColorStat; 49 | var int _zCVob_lightColorDyn; 50 | var int _zCVob_lightDirectionStat[3]; 51 | var int _zCVob_vobPresetName; 52 | var int _zCVob_eventManager; 53 | var int _zCVob_nextOnTimer; 54 | var int _zCVob_bitfield[5]; 55 | var int _zCVob_m_poCollisionObjectClass; 56 | var int _zCVob_m_poCollisionObject; 57 | 58 | //zCTriggerBase 59 | //Eigenschaften sollten weitgehend klar sein 60 | var string triggerTarget; //zSTRING 61 | 62 | var int bitfield; //siehe oben 63 | /* 64 | struct { 65 | zUINT8 reactToOnTrigger: 1; 66 | zUINT8 reactToOnTouch : 1; 67 | zUINT8 reactToOnDamage : 1; 68 | zUINT8 respondToObject : 1; 69 | zUINT8 respondToPC : 1; 70 | zUINT8 respondToNPC : 1; 71 | } filterFlags; 72 | struct { 73 | zUINT8 startEnabled : 1; 74 | zUINT8 isEnabled : 1; 75 | zUINT8 sendUntrigger : 1; 76 | } flags; */ 77 | 78 | var string respondToVobName; //zSTRING 79 | var int numCanBeActivated; //zSWORD 80 | var int retriggerWaitSec; //zREAL 81 | var int damageThreshold; //zREAL 82 | var int fireDelaySec; //zREAL 83 | var int nextTimeTriggerable; //zREAL //vgl. Eigenschaft retriggerWaitSec 84 | var int savedOtherVob; //zCVob* 85 | var int countCanBeActivated; //zSWORD 86 | }; 87 | 88 | class oCTriggerScript { 89 | //zCVob { 90 | //zCObject { 91 | var int _vtbl; 92 | var int _zCObject_refCtr; 93 | var int _zCObject_hashIndex; 94 | var int _zCObject_hashNext; 95 | var string _zCObject_objectName; 96 | //} 97 | var int _zCVob_globalVobTreeNode; 98 | var int _zCVob_lastTimeDrawn; 99 | var int _zCVob_lastTimeCollected; 100 | var int _zCVob_vobLeafList_array; 101 | var int _zCVob_vobLeafList_numAlloc; 102 | var int _zCVob_vobLeafList_numInArray; 103 | var int _zCVob_trafoObjToWorld[16]; 104 | var int _zCVob_bbox3D_mins[3]; 105 | var int _zCVob_bbox3D_maxs[3]; 106 | var int _zCVob_bsphere3D_center[3]; 107 | var int _zCVob_bsphere3D_radius; 108 | var int _zCVob_touchVobList_array; 109 | var int _zCVob_touchVobList_numAlloc; 110 | var int _zCVob_touchVobList_numInArray; 111 | var int _zCVob_type; 112 | var int _zCVob_groundShadowSizePacked; 113 | var int _zCVob_homeWorld; 114 | var int _zCVob_groundPoly; 115 | var int _zCVob_callback_ai; 116 | var int _zCVob_trafo; 117 | var int _zCVob_visual; 118 | var int _zCVob_visualAlpha; 119 | var int _zCVob_m_fVobFarClipZScale; 120 | var int _zCVob_m_AniMode; 121 | var int _zCVob_m_aniModeStrength; 122 | var int _zCVob_m_zBias; 123 | var int _zCVob_rigidBody; 124 | var int _zCVob_lightColorStat; 125 | var int _zCVob_lightColorDyn; 126 | var int _zCVob_lightDirectionStat[3]; 127 | var int _zCVob_vobPresetName; 128 | var int _zCVob_eventManager; 129 | var int _zCVob_nextOnTimer; 130 | var int _zCVob_bitfield[5]; 131 | var int _zCVob_m_poCollisionObjectClass; 132 | var int _zCVob_m_poCollisionObject; 133 | 134 | var string _zCTrigger_triggerTarget; //zSTRING 135 | var int _zCTrigger_bitfield; //siehe oben 136 | var string _zCTrigger_respondToVobName; //zSTRING 137 | var int _zCTrigger_numCanBeActivated; //zSWORD 138 | var int _zCTrigger_retriggerWaitSec; //zREAL 139 | var int _zCTrigger_damageThreshold; //zREAL 140 | var int _zCTrigger_fireDelaySec; //zREAL 141 | var int _zCTrigger_nextTimeTriggerable; //zREAL 142 | var int _zCTrigger_savedOtherVob; //zCVob* 143 | var int _zCTrigger_countCanBeActivated; //zSWORD 144 | 145 | var string scriptFunc; //zSTRING 146 | }; 147 | 148 | class oCTriggerChangeLevel { 149 | //zCVob { 150 | //zCObject { 151 | var int _vtbl; 152 | var int _zCObject_refCtr; 153 | var int _zCObject_hashIndex; 154 | var int _zCObject_hashNext; 155 | var string _zCObject_objectName; 156 | //} 157 | var int _zCVob_globalVobTreeNode; 158 | var int _zCVob_lastTimeDrawn; 159 | var int _zCVob_lastTimeCollected; 160 | var int _zCVob_vobLeafList_array; 161 | var int _zCVob_vobLeafList_numAlloc; 162 | var int _zCVob_vobLeafList_numInArray; 163 | var int _zCVob_trafoObjToWorld[16]; 164 | var int _zCVob_bbox3D_mins[3]; 165 | var int _zCVob_bbox3D_maxs[3]; 166 | var int _zCVob_bsphere3D_center[3]; 167 | var int _zCVob_bsphere3D_radius; 168 | var int _zCVob_touchVobList_array; 169 | var int _zCVob_touchVobList_numAlloc; 170 | var int _zCVob_touchVobList_numInArray; 171 | var int _zCVob_type; 172 | var int _zCVob_groundShadowSizePacked; 173 | var int _zCVob_homeWorld; 174 | var int _zCVob_groundPoly; 175 | var int _zCVob_callback_ai; 176 | var int _zCVob_trafo; 177 | var int _zCVob_visual; 178 | var int _zCVob_visualAlpha; 179 | var int _zCVob_m_fVobFarClipZScale; 180 | var int _zCVob_m_AniMode; 181 | var int _zCVob_m_aniModeStrength; 182 | var int _zCVob_m_zBias; 183 | var int _zCVob_rigidBody; 184 | var int _zCVob_lightColorStat; 185 | var int _zCVob_lightColorDyn; 186 | var int _zCVob_lightDirectionStat[3]; 187 | var int _zCVob_vobPresetName; 188 | var int _zCVob_eventManager; 189 | var int _zCVob_nextOnTimer; 190 | var int _zCVob_bitfield[5]; 191 | var int _zCVob_m_poCollisionObjectClass; 192 | var int _zCVob_m_poCollisionObject; 193 | 194 | var string _zCTrigger_triggerTarget; 195 | var int _zCTrigger_bitfield; 196 | var string _zCTrigger_respondToVobName; 197 | var int _zCTrigger_numCanBeActivated; 198 | var int _zCTrigger_retriggerWaitSec; 199 | var int _zCTrigger_damageThreshold; 200 | var int _zCTrigger_fireDelaySec; 201 | var int _zCTrigger_nextTimeTriggerable; 202 | var int _zCTrigger_savedOtherVob; 203 | var int _zCTrigger_countCanBeActivated; 204 | 205 | var string levelName; //zSTRING 206 | var string startVob; //zSTRING 207 | }; 208 | 209 | const int zCMover_bitfield_moverLocked = ((1 << 1) - 1) << 0; 210 | const int zCMover_bitfield_autoLinkEnabled = ((1 << 1) - 1) << 8; 211 | const int zCMover_bitfield_autoRotate = ((1 << 1) - 1) << 16; 212 | const int sizeof_zCMover = 624; 213 | 214 | class zTMov_Keyframe { 215 | var int pos[3]; //zPOINT3 216 | var int quat[4]; //zCQuat 217 | }; 218 | 219 | const int sizeof_zTMov_KeyFrame = 28; 220 | 221 | class zCMover { 222 | //zCVob { 223 | //zCObject { 224 | var int _vtbl; 225 | var int _zCObject_refCtr; 226 | var int _zCObject_hashIndex; 227 | var int _zCObject_hashNext; 228 | var string _zCObject_objectName; 229 | //} 230 | var int _zCVob_globalVobTreeNode; 231 | var int _zCVob_lastTimeDrawn; 232 | var int _zCVob_lastTimeCollected; 233 | var int _zCVob_vobLeafList_array; 234 | var int _zCVob_vobLeafList_numAlloc; 235 | var int _zCVob_vobLeafList_numInArray; 236 | var int _zCVob_trafoObjToWorld[16]; 237 | var int _zCVob_bbox3D_mins[3]; 238 | var int _zCVob_bbox3D_maxs[3]; 239 | var int _zCVob_bsphere3D_center[3]; 240 | var int _zCVob_bsphere3D_radius; 241 | var int _zCVob_touchVobList_array; 242 | var int _zCVob_touchVobList_numAlloc; 243 | var int _zCVob_touchVobList_numInArray; 244 | var int _zCVob_type; 245 | var int _zCVob_groundShadowSizePacked; 246 | var int _zCVob_homeWorld; 247 | var int _zCVob_groundPoly; 248 | var int _zCVob_callback_ai; 249 | var int _zCVob_trafo; 250 | var int _zCVob_visual; 251 | var int _zCVob_visualAlpha; 252 | var int _zCVob_m_fVobFarClipZScale; 253 | var int _zCVob_m_AniMode; 254 | var int _zCVob_m_aniModeStrength; 255 | var int _zCVob_m_zBias; 256 | var int _zCVob_rigidBody; 257 | var int _zCVob_lightColorStat; 258 | var int _zCVob_lightColorDyn; 259 | var int _zCVob_lightDirectionStat[3]; 260 | var int _zCVob_vobPresetName; 261 | var int _zCVob_eventManager; 262 | var int _zCVob_nextOnTimer; 263 | var int _zCVob_bitfield[5]; 264 | var int _zCVob_m_poCollisionObjectClass; 265 | var int _zCVob_m_poCollisionObject; 266 | 267 | var string _zCTrigger_triggerTarget; 268 | var int _zCTrigger_bitfield; 269 | var string _zCTrigger_respondToVobName; 270 | var int _zCTrigger_numCanBeActivated; 271 | var int _zCTrigger_retriggerWaitSec; 272 | var int _zCTrigger_damageThreshold; 273 | var int _zCTrigger_fireDelaySec; 274 | var int _zCTrigger_nextTimeTriggerable; 275 | var int _zCTrigger_savedOtherVob; 276 | var int _zCTrigger_countCanBeActivated; 277 | 278 | /* 279 | Keyframes 280 | struct zTMov_Keyframe { 281 | zPOINT3 pos; 282 | zCQuat quat; 283 | }; 284 | */ 285 | 286 | //zCArray keyframeList; 287 | var int keyframeList_array; //zTMov_Keyframe* 288 | var int keyframeList_numAlloc; //int 289 | var int keyframeList_numInArray; //int 290 | 291 | // internals 292 | var int actKeyPosDelta[3]; //zVEC3 293 | var int actKeyframeF; //zREAL 294 | var int actKeyframe; //int 295 | var int nextKeyframe; //int 296 | var int moveSpeedUnit; //zREAL 297 | var int advanceDir; //zREAL 298 | 299 | /* 300 | enum zTMoverState { MOVER_STATE_OPEN, 301 | MOVER_STATE_OPENING, 302 | MOVER_STATE_CLOSED, 303 | MOVER_STATE_CLOSING 304 | }*/ 305 | var int moverState; //zTMoverState 306 | 307 | var int numTriggerEvents; //int 308 | var int stayOpenTimeDest; //zREAL 309 | 310 | var int model; //zCModel* 311 | var int soundMovingHandle; //zTSoundHandle 312 | var int sfxMoving; //zCSoundFX* 313 | 314 | var int moveSpeed; //zREAL 315 | var int stayOpenTimeSec; //zREAL 316 | var int touchBlockerDamage; //zREAL 317 | 318 | var int bitfield; 319 | 320 | /* 321 | enum zTMoverAniType { MA_KEYFRAME, 322 | MA_MODEL_ANI, 323 | MA_WAYPOINT 324 | }; */ 325 | var int moverAniType; //zTMoverAniType 326 | 327 | /* 328 | enum zTMoverBehavior { MB_2STATE_TOGGLE, 329 | MB_2STATE_TRIGGER_CONTROL, 330 | MB_2STATE_OPEN_TIMED, 331 | MB_NSTATE_LOOP, 332 | MB_NSTATE_SINGLE_KEYS 333 | }*/ 334 | var int moverBehavior; //zTMoverBehavior 335 | 336 | /*enum zTTouchBehavior { TB_TOGGLE, 337 | TB_WAIT 338 | }*/ 339 | var int touchBehavior; //zTTouchBehavior 340 | 341 | // aniType: Keyframe 342 | /* enum zTPosLerpType { PL_LINEAR, 343 | PL_CURVE 344 | } */ 345 | var int posLerpType; //zTPosLerpType 346 | 347 | /* enum zTSpeedType { ST_CONST , 348 | ST_SLOW_START_END , ST_SLOW_START , ST_SLOW_END, 349 | ST_SEG_SLOW_START_END , ST_SEG_SLOW_START , ST_SEG_SLOW_END 350 | } */ 351 | var int speedType; //zTSpeedType 352 | 353 | // sound 354 | var string soundOpenStart; //zSTRING 355 | var string soundOpenEnd; //zSTRING 356 | var string soundMoving; //zSTRING 357 | var string soundCloseStart; //zSTRING 358 | var string soundCloseEnd; //zSTRING 359 | var string soundLock; //zSTRING 360 | var string soundUnlock; //zSTRING 361 | var string soundUseLocked; //zSTRING 362 | }; -------------------------------------------------------------------------------- /EngineClasses_G1/zCTrigger.d: -------------------------------------------------------------------------------- 1 | const int zCTrigger_bitfield_reactToOnTrigger = ((1 << 1) - 1) << 0; 2 | const int zCTrigger_bitfield_reactToOnTouch = ((1 << 1) - 1) << 1; 3 | const int zCTrigger_bitfield_reactToOnDamage = ((1 << 1) - 1) << 2; 4 | const int zCTrigger_bitfield_respondToObject = ((1 << 1) - 1) << 3; 5 | const int zCTrigger_bitfield_respondToPC = ((1 << 1) - 1) << 4; 6 | const int zCTrigger_bitfield_respondToNPC = ((1 << 1) - 1) << 5; 7 | 8 | const int zCTrigger_bitfield_startEnabled = ((1 << 1) - 1) << (8 + 0); 9 | const int zCTrigger_bitfield_isEnabled = ((1 << 1) - 1) << (8 + 1); 10 | const int zCTrigger_bitfield_sendUntrigger = ((1 << 1) - 1) << (8 + 2); 11 | 12 | class zCTrigger { 13 | // zCVob { 14 | // zCObject { 15 | var int vfptr; 16 | var int _zCObject_refCtr; 17 | var int _zCObject_hashIndex; 18 | var int _zCObject_hashNext; 19 | var string _zCObject_objectName; 20 | // } 21 | var int _zCVob_globalVobTreeNode; 22 | var int _zCVob_lastTimeDrawn; 23 | var int _zCVob_lastTimeCollected; 24 | var int _zCVob_vobLeafList_array; 25 | var int _zCVob_vobLeafList_numAlloc; 26 | var int _zCVob_vobLeafList_numInArray; 27 | var int _zCVob_trafoObjToWorld[16]; 28 | var int _zCVob_bbox3D_mins[3]; 29 | var int _zCVob_bbox3D_maxs[3]; 30 | var int _zCVob_touchVobList_array; 31 | var int _zCVob_touchVobList_numAlloc; 32 | var int _zCVob_touchVobList_numInArray; 33 | var int _zCVob_type; 34 | var int _zCVob_groundShadowSizePacked; 35 | var int _zCVob_homeWorld; 36 | var int _zCVob_groundPoly; 37 | var int _zCVob_callback_ai; 38 | var int _zCVob_trafo; 39 | var int _zCVob_visual; 40 | var int _zCVob_visualAlpha; 41 | var int _zCVob_rigidBody; 42 | var int _zCVob_lightColorStat; 43 | var int _zCVob_lightColorDyn; 44 | var int _zCVob_lightDirectionStat[3]; 45 | var int _zCVob_vobPresetName; 46 | var int _zCVob_eventManager; 47 | var int _zCVob_nextOnTimer; 48 | var int _zCVob_bitfield[5]; 49 | var int _zCVob_m_poCollisionObjectClass; 50 | var int _zCVob_m_poCollisionObject; 51 | // } 52 | 53 | //zCTriggerBase 54 | //Eigenschaften sollten weitgehend klar sein 55 | var string triggerTarget; //zSTRING 56 | 57 | var int bitfield; //siehe oben 58 | /* 59 | struct { 60 | zUINT8 reactToOnTrigger: 1; 61 | zUINT8 reactToOnTouch : 1; 62 | zUINT8 reactToOnDamage : 1; 63 | zUINT8 respondToObject : 1; 64 | zUINT8 respondToPC : 1; 65 | zUINT8 respondToNPC : 1; 66 | } filterFlags; 67 | struct { 68 | zUINT8 startEnabled : 1; 69 | zUINT8 isEnabled : 1; 70 | zUINT8 sendUntrigger : 1; 71 | } flags; */ 72 | 73 | var string respondToVobName; //zSTRING 74 | var int numCanBeActivated; //zSWORD 75 | var int retriggerWaitSec; //zREAL 76 | var int damageThreshold; //zREAL 77 | var int fireDelaySec; //zREAL 78 | var int nextTimeTriggerable; //zREAL //vgl. Eigenschaft retriggerWaitSec 79 | var int savedOtherVob; //zCVob* 80 | var int countCanBeActivated; //zSWORD 81 | }; 82 | 83 | class oCTriggerScript { 84 | // zCVob { 85 | // zCObject { 86 | var int vfptr; 87 | var int _zCObject_refCtr; 88 | var int _zCObject_hashIndex; 89 | var int _zCObject_hashNext; 90 | var string _zCObject_objectName; 91 | // } 92 | var int _zCVob_globalVobTreeNode; 93 | var int _zCVob_lastTimeDrawn; 94 | var int _zCVob_lastTimeCollected; 95 | var int _zCVob_vobLeafList_array; 96 | var int _zCVob_vobLeafList_numAlloc; 97 | var int _zCVob_vobLeafList_numInArray; 98 | var int _zCVob_trafoObjToWorld[16]; 99 | var int _zCVob_bbox3D_mins[3]; 100 | var int _zCVob_bbox3D_maxs[3]; 101 | var int _zCVob_touchVobList_array; 102 | var int _zCVob_touchVobList_numAlloc; 103 | var int _zCVob_touchVobList_numInArray; 104 | var int _zCVob_type; 105 | var int _zCVob_groundShadowSizePacked; 106 | var int _zCVob_homeWorld; 107 | var int _zCVob_groundPoly; 108 | var int _zCVob_callback_ai; 109 | var int _zCVob_trafo; 110 | var int _zCVob_visual; 111 | var int _zCVob_visualAlpha; 112 | var int _zCVob_rigidBody; 113 | var int _zCVob_lightColorStat; 114 | var int _zCVob_lightColorDyn; 115 | var int _zCVob_lightDirectionStat[3]; 116 | var int _zCVob_vobPresetName; 117 | var int _zCVob_eventManager; 118 | var int _zCVob_nextOnTimer; 119 | var int _zCVob_bitfield[5]; 120 | var int _zCVob_m_poCollisionObjectClass; 121 | var int _zCVob_m_poCollisionObject; 122 | // } 123 | 124 | var string _zCTrigger_triggerTarget; //zSTRING 125 | var int _zCTrigger_bitfield; //siehe oben 126 | var string _zCTrigger_respondToVobName; //zSTRING 127 | var int _zCTrigger_numCanBeActivated; //zSWORD 128 | var int _zCTrigger_retriggerWaitSec; //zREAL 129 | var int _zCTrigger_damageThreshold; //zREAL 130 | var int _zCTrigger_fireDelaySec; //zREAL 131 | var int _zCTrigger_nextTimeTriggerable; //zREAL 132 | var int _zCTrigger_savedOtherVob; //zCVob* 133 | var int _zCTrigger_countCanBeActivated; //zSWORD 134 | 135 | var string scriptFunc; //zSTRING 136 | }; 137 | 138 | class oCTriggerChangeLevel { 139 | // zCVob { 140 | // zCObject { 141 | var int vfptr; 142 | var int _zCObject_refCtr; 143 | var int _zCObject_hashIndex; 144 | var int _zCObject_hashNext; 145 | var string _zCObject_objectName; 146 | // } 147 | var int _zCVob_globalVobTreeNode; 148 | var int _zCVob_lastTimeDrawn; 149 | var int _zCVob_lastTimeCollected; 150 | var int _zCVob_vobLeafList_array; 151 | var int _zCVob_vobLeafList_numAlloc; 152 | var int _zCVob_vobLeafList_numInArray; 153 | var int _zCVob_trafoObjToWorld[16]; 154 | var int _zCVob_bbox3D_mins[3]; 155 | var int _zCVob_bbox3D_maxs[3]; 156 | var int _zCVob_touchVobList_array; 157 | var int _zCVob_touchVobList_numAlloc; 158 | var int _zCVob_touchVobList_numInArray; 159 | var int _zCVob_type; 160 | var int _zCVob_groundShadowSizePacked; 161 | var int _zCVob_homeWorld; 162 | var int _zCVob_groundPoly; 163 | var int _zCVob_callback_ai; 164 | var int _zCVob_trafo; 165 | var int _zCVob_visual; 166 | var int _zCVob_visualAlpha; 167 | var int _zCVob_rigidBody; 168 | var int _zCVob_lightColorStat; 169 | var int _zCVob_lightColorDyn; 170 | var int _zCVob_lightDirectionStat[3]; 171 | var int _zCVob_vobPresetName; 172 | var int _zCVob_eventManager; 173 | var int _zCVob_nextOnTimer; 174 | var int _zCVob_bitfield[5]; 175 | var int _zCVob_m_poCollisionObjectClass; 176 | var int _zCVob_m_poCollisionObject; 177 | // } 178 | 179 | var string _zCTrigger_triggerTarget; 180 | var int _zCTrigger_bitfield; 181 | var string _zCTrigger_respondToVobName; 182 | var int _zCTrigger_numCanBeActivated; 183 | var int _zCTrigger_retriggerWaitSec; 184 | var int _zCTrigger_damageThreshold; 185 | var int _zCTrigger_fireDelaySec; 186 | var int _zCTrigger_nextTimeTriggerable; 187 | var int _zCTrigger_savedOtherVob; 188 | var int _zCTrigger_countCanBeActivated; 189 | 190 | var string levelName; //zSTRING 191 | var string startVob; //zSTRING 192 | }; 193 | 194 | const int zCMover_bitfield_moverLocked = ((1 << 1) - 1) << 0; 195 | const int zCMover_bitfield_autoLinkEnabled = ((1 << 1) - 1) << 8; 196 | const int sizeof_zCMover = 624; 197 | 198 | class zTMov_Keyframe { 199 | var int pos[3]; //zPOINT3 200 | var int quat[4]; //zCQuat 201 | }; 202 | 203 | const int sizeof_zTMov_KeyFrame = 28; 204 | 205 | class zCMover { 206 | // zCVob { 207 | // zCObject { 208 | var int vfptr; 209 | var int _zCObject_refCtr; 210 | var int _zCObject_hashIndex; 211 | var int _zCObject_hashNext; 212 | var string _zCObject_objectName; 213 | // } 214 | var int _zCVob_globalVobTreeNode; 215 | var int _zCVob_lastTimeDrawn; 216 | var int _zCVob_lastTimeCollected; 217 | var int _zCVob_vobLeafList_array; 218 | var int _zCVob_vobLeafList_numAlloc; 219 | var int _zCVob_vobLeafList_numInArray; 220 | var int _zCVob_trafoObjToWorld[16]; 221 | var int _zCVob_bbox3D_mins[3]; 222 | var int _zCVob_bbox3D_maxs[3]; 223 | var int _zCVob_touchVobList_array; 224 | var int _zCVob_touchVobList_numAlloc; 225 | var int _zCVob_touchVobList_numInArray; 226 | var int _zCVob_type; 227 | var int _zCVob_groundShadowSizePacked; 228 | var int _zCVob_homeWorld; 229 | var int _zCVob_groundPoly; 230 | var int _zCVob_callback_ai; 231 | var int _zCVob_trafo; 232 | var int _zCVob_visual; 233 | var int _zCVob_visualAlpha; 234 | var int _zCVob_rigidBody; 235 | var int _zCVob_lightColorStat; 236 | var int _zCVob_lightColorDyn; 237 | var int _zCVob_lightDirectionStat[3]; 238 | var int _zCVob_vobPresetName; 239 | var int _zCVob_eventManager; 240 | var int _zCVob_nextOnTimer; 241 | var int _zCVob_bitfield[5]; 242 | var int _zCVob_m_poCollisionObjectClass; 243 | var int _zCVob_m_poCollisionObject; 244 | // } 245 | 246 | var string _zCTrigger_triggerTarget; 247 | var int _zCTrigger_bitfield; 248 | var string _zCTrigger_respondToVobName; 249 | var int _zCTrigger_numCanBeActivated; 250 | var int _zCTrigger_retriggerWaitSec; 251 | var int _zCTrigger_damageThreshold; 252 | var int _zCTrigger_fireDelaySec; 253 | var int _zCTrigger_nextTimeTriggerable; 254 | var int _zCTrigger_savedOtherVob; 255 | var int _zCTrigger_countCanBeActivated; 256 | 257 | /* 258 | Keyframes 259 | struct zTMov_Keyframe { 260 | zPOINT3 pos; 261 | zCQuat quat; 262 | }; 263 | */ 264 | 265 | //zCArray keyframeList; 266 | var int keyframeList_array; //zTMov_Keyframe* 267 | var int keyframeList_numAlloc; //int 268 | var int keyframeList_numInArray; //int 269 | 270 | // internals 271 | var int actKeyPosDelta[3]; //zVEC3 272 | var int actKeyframeF; //zREAL 273 | var int actKeyframe; //int 274 | var int nextKeyframe; //int 275 | var int moveSpeedUnit; //zREAL 276 | var int advanceDir; //zREAL 277 | 278 | /* 279 | enum zTMoverState { MOVER_STATE_OPEN, 280 | MOVER_STATE_OPENING, 281 | MOVER_STATE_CLOSED, 282 | MOVER_STATE_CLOSING 283 | }*/ 284 | var int moverState; //zTMoverState 285 | 286 | var int numTriggerEvents; //int 287 | var int stayOpenTimeDest; //zREAL 288 | 289 | var int model; //zCModel* 290 | var int soundMovingHandle; //zTSoundHandle 291 | var int sfxMoving; //zCSoundFX* 292 | 293 | var int moveSpeed; //zREAL 294 | var int stayOpenTimeSec; //zREAL 295 | var int touchBlockerDamage; //zREAL 296 | 297 | var int bitfield; 298 | 299 | /* 300 | enum zTMoverAniType { MA_KEYFRAME, 301 | MA_MODEL_ANI, 302 | MA_WAYPOINT 303 | }; */ 304 | var int moverAniType; //zTMoverAniType 305 | 306 | /* 307 | enum zTMoverBehavior { MB_2STATE_TOGGLE, 308 | MB_2STATE_TRIGGER_CONTROL, 309 | MB_2STATE_OPEN_TIMED, 310 | MB_NSTATE_LOOP, 311 | MB_NSTATE_SINGLE_KEYS 312 | }*/ 313 | var int moverBehavior; //zTMoverBehavior 314 | 315 | /*enum zTTouchBehavior { TB_TOGGLE, 316 | TB_WAIT 317 | }*/ 318 | var int touchBehavior; //zTTouchBehavior 319 | 320 | // aniType: Keyframe 321 | /* enum zTPosLerpType { PL_LINEAR, 322 | PL_CURVE 323 | } */ 324 | var int posLerpType; //zTPosLerpType 325 | 326 | /* enum zTSpeedType { ST_CONST , 327 | ST_SLOW_START_END , ST_SLOW_START , ST_SLOW_END, 328 | ST_SEG_SLOW_START_END , ST_SEG_SLOW_START , ST_SEG_SLOW_END 329 | } */ 330 | var int speedType; //zTSpeedType 331 | 332 | // sound 333 | var string soundOpenStart; //zSTRING 334 | var string soundOpenEnd; //zSTRING 335 | var string soundMoving; //zSTRING 336 | var string soundCloseStart; //zSTRING 337 | var string soundCloseEnd; //zSTRING 338 | var string soundLock; //zSTRING 339 | var string soundUnlock; //zSTRING 340 | var string soundUseLocked; //zSTRING 341 | }; --------------------------------------------------------------------------------