diff options
Diffstat (limited to '3dc/include/module.h')
| -rw-r--r-- | 3dc/include/module.h | 484 |
1 files changed, 0 insertions, 484 deletions
diff --git a/3dc/include/module.h b/3dc/include/module.h deleted file mode 100644 index a42a6ca..0000000 --- a/3dc/include/module.h +++ /dev/null @@ -1,484 +0,0 @@ -#ifndef MODULE_INCLUDED - - -/* - - Modules - -*/ - - -#ifdef __cplusplus - - extern "C" { - -#endif - - - #if SupportModules - - -#include "bh_waypt.h" - -typedef struct moduletableheader { - - int mth_xsize; /* Extents in world space */ - int mth_ysize; - int mth_zsize; - - int mth_numx; /* Number of modules along each axis */ - int mth_numy; - int mth_numz; - - /* Pointer to an array of pointers to modules */ - - struct module **mth_moduletable; - -} MODULETABLEHEADER; - - -/* - - NOTES - - There are no pointers to strategy and/or animation data structures yet. - These will be added as and when they are needed. - -*/ - -typedef enum { - - mtype_module, - mtype_term - -} MODULETYPE; - - -typedef union mref { - - char mref_name[4]; /* Module name */ - struct module *mref_ptr; /* Module pointer */ - -} MREF; - - -typedef enum { - - vmtype_vmodule, - vmtype_term - -} VMODULETYPE; - - -typedef enum { - - vmodi_null, /* Null instruction */ - vmodi_bra_vc /* Branch if viewport closed */ - -} VMODI; - -typedef union _vmodidata { - - char vmodidata_label[4]; - struct vmodule *vmodidata_ptr; - int vmodidata; - -} VMODIDATA; - - -typedef struct vmodule { - - VMODULETYPE vmod_type; - char vmod_name[4]; /* Unique name for this VMODULE */ - VMODI vmod_instr; - VMODIDATA vmod_data; - MREF vmod_mref; - VECTORCH vmod_dir; - int vmod_angle; - int vmod_flags; - -} VMODULE; - - -#define vm_flag_gotptrs 0x00000001 /* VMODULE references have - been converted from - names to pointers */ - - -#if 0 - -typedef enum { - - vptype_viewport, - vptype_term - -} VIEWPORTTYPE; - - -typedef struct viewport { - - VIEWPORTTYPE vp_type; - - int vp_flags; - - VECTORCH vp0; - VECTORCH vp1; - VECTORCH vp2; - VECTORCH vp3; - -} VIEWPORT; - -#endif - - -/* - - This is the map block for module objects. It was originally based on the - MAPBLOCK8 structure. - -*/ - -typedef struct modulemapblock { - - int MapType; - int MapShape; - - #if LoadingMapsShapesAndTexturesEtc - - int MapFNameIndex; - char **MapFNameArray; - SHAPEHEADER **MapShapeDataArray; - - #endif - - VECTORCH MapWorld; - - EULER MapEuler; - - int MapFlags; - int MapFlags2; - int MapFlags3; - - - - MAPSETVDB *MapVDBData; - - int MapInteriorType; - - #if InterfaceEngine - - /* This will point to the Object_Chunk, it will have to be */ - /* cast within C++ though */ - - void * o_chunk; - - #endif - - int MapLightType; /* See LIGHTTYPES */ - - - VECTORCH MapOrigin; /* Origin of Rotation */ - - SIMSHAPELIST *MapSimShapes; - - int MapViewType; /* See "VDB_ViewType" */ - - - struct displayblock **MapMPtr; /* Write our dptr here as mother */ - struct displayblock **MapDPtr; /* Read our dptr here as daughter */ - - VECTORCH MapMOffset; /* Offset from mother */ - - #if SupportMorphing - MORPHHEADER *MapMorphHeader; - #endif - -} MODULEMAPBLOCK; - - -/* - - Module functions called either when the module is visible or when the view - is inside the module. - -*/ - -typedef enum { - - mfun_null, - -} MFUNCTION; - - -/* - - This is the MODULE structure - -*/ - -struct aimodule; - -typedef struct module { - - MODULETYPE m_type; - - char m_name[4]; /* Unique name for this MODULE */ - - int m_index; /* Unique module index */ - - int m_flags; - - VECTORCH m_world; /* World location */ - - MREF m_ext; /* Get module extents from the shape - found through this other module */ - - int m_ext_scale; /* Scale extents by this value (fp) */ - - int m_maxx; /* Module extents */ - int m_minx; - int m_maxy; - int m_miny; - int m_maxz; - int m_minz; - - MODULEMAPBLOCK *m_mapptr; /* Map data for the module object */ - struct displayblock *m_dptr; /* Display block (not constant) */ - - MREF m_vptr; /* Vertical pointer to module array */ - - VMODULE *m_vmptr; /* Pointer to an array of VMODULE, or - "visible module" structures */ - - MREF *m_link_ptrs; /* Pointer to an arbitrary sized array - of module references - the array is - zero terminated */ - /*should be got rid of soon*/ - - - - MODULETABLEHEADER *m_table; /* A hash table whose creation is - triggered by a threshold value set by - "system.h". This is to speed up module - list traversal */ - - MFUNCTION m_ifvisible; /* Function called if module visible */ - MFUNCTION m_ifvinside; /* Function called if view inside */ - MREF m_funref; /* Function access to another module */ - - struct strategyblock *m_sbptr; /* Project supplies structure */ - - int m_numlights; /* # light blocks in array */ - struct lightblock *m_lightarray; /* Ptr. to array of light blocks */ - - struct extraitemdata *m_extraitemdata; - - MATRIXCH m_mat; /* Internal use only */ - - #if SupportWindows95 - char * name; - #endif - - WAYPOINT_HEADER *m_waypoints; - - struct aimodule *m_aimodule; /* the aimodule that this module is a part of*/ - - float m_sound_reverb; /*settings for the way sound should */ - int m_sound_env_index;/*be played in this module*/ - -} MODULE; - - -/* Flags */ - -#define m_flag_infinite 0x00000001 /* No extent test, the - view is always in this - module */ - -#define m_flag_gotptrs 0x00000002 /* Module references have - been converted from - names to pointers */ - -#define m_flag_open 0x00000004 /* The viewport/Door is - open. This state is - read from the "dptr" - morphing frame if it is - present and if it is - appropriate to do so */ - -#define m_flag_dormant 0x00000008 /* The module is not active */ - - -#define m_flag_gotmat 0x00000010 /* Internal use only */ - -#define m_flag_visible_on_map 0x00000020 /* Flag for Kevin's map stuff */ - -#define m_flag_slipped_inside 0x00000040 /* Another flag 4 Kevin */ - -#define MODULEFLAG_AIRDUCT 0x80000000 -#define MODULEFLAG_STAIRS 0x40000000 -#define MODULEFLAG_SKY 0x20000000 -#define MODULEFLAG_FOG 0x10000000 -#define MODULEFLAG_HORIZONTALDOOR 0x08000000 - - -typedef struct aimodule -{ - int m_index; //the index in AIModuleArray - - VECTORCH m_world; /* World location */ - - //adjacent aimodules - null terminated array - struct aimodule **m_link_ptrs; - - //the render modules that make up this ai module - null terminated array - MODULE **m_module_ptrs; - - WAYPOINT_HEADER *m_waypoints; - - /* CDF 1/6/98 - Routefinder Globals */ - int RouteFinder_FrameStamp; - int RouteFinder_IterationNumber; - -}AIMODULE; - - -/* - Module Scene Structure - -*/ - -typedef struct scenemodule { - - MODULE *sm_module; /* Pointer to module structure for this scene */ - MODULE **sm_marray; /* Pointer to array of pointers to all modules */ - -} SCENEMODULE; - - -/* - - "The View" - - The "View Finder" accesses the view location and orientation through this - global structure. This is so that views can be passed to other functions as - a single pointer if required. - -*/ - -typedef struct aview { - - VECTORCH vloc; - MATRIXCH vmat; - struct viewdescriptorblock *vvdb; - -} AVIEW; - - - - -/* - - Module Function Prototypes - -*/ - -#if IncludeModuleFunctionPrototypes - -void ModuleHandler(VIEWDESCRIPTORBLOCK *vdb); -void ProcessModules(VIEWDESCRIPTORBLOCK *vdb, MODULE *mptr); -void ViewFinder(MODULE *mptr); -void ReadVMODULEArrays(VMODULE *vptr); - - -void UpdateModules(void); -void ModuleFunctions(MODULE *mptr, MFUNCTION mf); -void AllocateModuleObject(MODULE *mptr); -void DeallocateModuleObject(MODULE *mptr); - - -/* - - A project supplied function. The display block has been successfuly - allocated and has been fully initialised. - -*/ - -void ModuleObjectJustAllocated(MODULE *mptr); - - -/* - - A project supplied function. The display block is about to be deallocated. - -*/ - -void ModuleObjectAboutToBeDeallocated(MODULE *mptr); - - -/* - - A project supplied function. These are the new and old modules this ???? - -*/ - -void NewAndOldModules(int num_new, MODULE **m_new, - int num_old, MODULE **m_old, char *m_currvis); - - - -#if SupportMultiCamModules -void InitGlobalVMA(void); -void DeallocateGlobalVMA(void); -#if SupportMultiCamModules -void UpdateDynamicModuleObjects(void); -#endif -#endif - -void PreprocessAllModules(void); -void PreprocessModuleArray(MODULE **m_array_ptr); -void PreprocessVMODIDATA(VMODULE *v_ptr); - -void DeallocateModuleVisArrays(void); -int GetModuleVisArrays(void); -int InsideModule(MODULE *mptr); - -void ConvertModuleNameToPointer(MREF *mref_ptr, MODULE **m_array_ptr); -void ConvertVModuleNameToPointer(VMODIDATA *vmodidata_ptr, VMODULE *v_array_ptr); - -int CompareName(char *name1, char *name2); -void PrintName(char *name); - -int SaveModuleArray(MODULE *mptr, char *filename); -MODULE* LoadModuleArray(MODULE *mptr, int size, char *filename); - -int IsModuleVisibleFromModule(MODULE *source, MODULE *target); - -#endif /* IncludeModuleFunctionPrototypes */ - -extern SCENEMODULE **Global_ModulePtr; -extern SCENEMODULE *MainSceneArray[]; -extern AVIEW ModuleView; -extern MODULE *Global_MotherModule; -extern char *ModuleCurrVisArray; -extern char *ModulePrevVisArray; -extern char *ModuleTempArray; -extern char *ModuleLocalVisArray; -extern int ModuleArraySize; - -extern int AIModuleArraySize; -extern AIMODULE *AIModuleArray; - - -#endif /* SupportModules */ - - -#ifdef __cplusplus - - }; - -#endif - -#define MODULE_INCLUDED - -#endif |
