实体
室内门 CEntryExitManager
室内门、进出栈与区域码
CEntryExitManager.h
室内门、进出栈、区域码。传送室内 / 调试门用。
活动入口
mp_Active / WeAreInInteriorTransition
static CEntryExit*& mp_Active;
static int& ms_exitEnterState;
static bool WeAreInInteriorTransition();查找
FindNearestEntryExit / GetEntryExit
static int FindNearestEntryExit(CVector2D const& position, float range, int ignoreArea);
static CEntryExit* GetEntryExit(int index);
static int GetEntryExitIndex(char const* name, unsigned short enabledFlags, unsigned short disabledFlags);
static CEntity* FindNearestDoor(CEntryExit const& entryExit, float range);启用开关
SetEnabled / SetEnabledByName
static void SetEnabled(int index, bool enable);
static void SetEnabledByName(char const* name, bool enable);
static void SetEntryExitFlag(char const* name, unsigned int flag, bool enable);
static bool& ms_bDisabled;跳转
GotoEntryExit / GotoNextEntryExit
调试传送。
static void GotoEntryExit(CEntryExit* entryExit);
static void GotoEntryExitVC(char const* name);
static void GotoNextEntryExit();
static void GotoPreviousEntryExit();添加删除
AddOne / DeleteOne
参数多,对照头文件。
static int AddOne(float entranceX, float entranceY, float entranceZ, float entranceAngle,
float entranceRangeX, float entranceRangeY, int unused, float exitX, float exitY, float exitZ,
float exitAngle, int area, int flags, int skyColor, int timeOn, int timeOff, int numberOfPeds, char const* name);
static void DeleteOne(int index);池与栈
mp_poolEntryExits / ms_entryExitStack
static CPool<CEntryExit>*& mp_poolEntryExits;
static CEntryExit* (&ms_entryExitStack)[4];
static int& ms_entryExitStackPosn;世界坐标修正
GetPositionRelativeToOutsideWorld
室内点映到外部世界坐标。
static void GetPositionRelativeToOutsideWorld(CVector& positionInOut);