From 4279373307a114a896c05ec9c29c7cdf4c120b13 Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Tue, 9 Jul 2024 01:18:59 +0300 Subject: [PATCH 1/2] Additional fix for cfile regressions On starting multiplayer missions OpenCFILE() loses filename value. Change OpenCFILE() signature to use std::fs::path too. --- Descent3/DllWrappers.cpp | 4 +++- Descent3/DllWrappers.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Descent3/DllWrappers.cpp b/Descent3/DllWrappers.cpp index 5b41f24e..5ab9788d 100644 --- a/Descent3/DllWrappers.cpp +++ b/Descent3/DllWrappers.cpp @@ -100,7 +100,9 @@ void InvReset(int playernum, bool reset_all) { void MonoPrintf(int n, char *format, ...) {} // wrapper for cfopen -void OpenCFILE(CFILE **handle, const char *filename, const char *mode) { *handle = cfopen(filename, mode); } +void OpenCFILE(CFILE **handle, const std::filesystem::path &filename, const char *mode) { + *handle = cfopen(filename, mode); +} // wrapper for ObjGetUltimateParent void GetUltimateParentForObject(object **parent, object *child) { *parent = ObjGetUltimateParent(child); } diff --git a/Descent3/DllWrappers.h b/Descent3/DllWrappers.h index 953cf1f4..1a96c449 100644 --- a/Descent3/DllWrappers.h +++ b/Descent3/DllWrappers.h @@ -51,7 +51,7 @@ int InvGetTypeIDCount(int playernum, int type, int id); // Inventory Reset wrapper void InvReset(int playernum, bool reset_all = true); // wraps cfopen -void OpenCFILE(CFILE **handle, const char *filename, const char *mode); +void OpenCFILE(CFILE **handle, const std::filesystem::path &filename, const char *mode); // wrapper for ObjGetUltimateParent void GetUltimateParentForObject(object **parent, object *child); // sets an object's flag dead From 1ae023a13bccbe66d4649b92f17b636c90e08dfa Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Tue, 9 Jul 2024 02:03:12 +0300 Subject: [PATCH 2/2] Enumerate all DLL functions manually Enumerate DLL functions to ease tying functions in main and DLL sides in code. --- Descent3/Game2DLL.cpp | 760 ++++++++++++++++++------------------- Descent3/multi_dll_mgr.cpp | 2 +- netcon/includes/mdllinit.h | 3 + netgames/dmfc/dmfcbase.cpp | 744 ++++++++++++++++++------------------ 4 files changed, 748 insertions(+), 761 deletions(-) diff --git a/Descent3/Game2DLL.cpp b/Descent3/Game2DLL.cpp index f84a5034..ef9e4975 100644 --- a/Descent3/Game2DLL.cpp +++ b/Descent3/Game2DLL.cpp @@ -114,20 +114,6 @@ DLLGetGameInfo_fp DLLGetGameInfo = NULL; dllinfo DLLInfo; tOSIRISModuleInit Multi_d3m_osiris_funcs; char Multi_game_dll_name[_MAX_PATH * 2]; -#define GAMEDLL_FUNCPOINTERS 400 -#ifdef _DEBUG -#define NEXTFP \ - do { \ - i++; \ - if (i >= GAMEDLL_FUNCPOINTERS) \ - Int3(); \ - } while (0); \ - api->fp[i] -#else -#define NEXTFP \ - i++; \ - api->fp[i] -#endif static void DUMMYrend_DrawScaledBitmap(int x1, int y1, int x2, int y2, int bm, float u0, float v0, float u1, float v1, float zval, int color, float *alphas) { @@ -147,380 +133,380 @@ void GetGameAPI(game_api *api) { api->Current_mission = (int *)&Current_mission; api->GameTextures = (int *)GameTextures; api->GameVClips = (int *)GameVClips; - // Fill in function pointers here. The order here must match the order on the - // DLL side - int i = -1; // start at -1 because it increments right away - NEXTFP = (int *)AddHUDMessage; - NEXTFP = (int *)MultiSendClientExecuteDLL; - NEXTFP = (int *)FindObjectIDName; - NEXTFP = (int *)GetGoalRoomForTeam; - NEXTFP = (int *)SetMaxTeams; - NEXTFP = (int *)ComputeRoomCenter; - NEXTFP = (int *)ObjCreate; - NEXTFP = (int *)MultiSendObject; - NEXTFP = (int *)MultiPaintGoalRooms; - NEXTFP = (int *)MultiSendSpecialPacket; - NEXTFP = (int *)IncTeamScore; - NEXTFP = (int *)MonoPrintf; - NEXTFP = (int *)ObjSetPos; - NEXTFP = (int *)InvCheckItem; - NEXTFP = (int *)InvAddTypeID; - NEXTFP = (int *)InvRemove; - NEXTFP = (int *)PlayerSetLighting; - NEXTFP = (int *)FindShipName; - NEXTFP = (int *)PlayerSetRotatingBall; - NEXTFP = (int *)ChangePlayerShipIndex; - NEXTFP = (int *)InvGetTypeIDCount; - NEXTFP = (int *)D3W_Play3dSound; - NEXTFP = (int *)FindSoundName; - NEXTFP = (int *)SpewCreate; - NEXTFP = (int *)SpewClearEvent; - NEXTFP = (int *)bm_AllocLoadFileBitmap; - NEXTFP = (int *)bm_FreeBitmap; - NEXTFP = (int *)DUMMYrend_DrawScaledBitmap; - NEXTFP = (int *)grtext_Printf; - NEXTFP = (int *)grtext_Flush; - NEXTFP = (int *)grtext_SetColor; - NEXTFP = (int *)grtext_SetFancyColor; - NEXTFP = (int *)grtext_SetAlpha; - NEXTFP = (int *)grtext_GetAlpha; - NEXTFP = (int *)grtext_SetFont; - NEXTFP = (int *)grtext_GetFont; - NEXTFP = (int *)grtext_GetTextLineWidth; - NEXTFP = (int *)grfont_GetHeight; - NEXTFP = (int *)grtext_CenteredPrintf; - NEXTFP = (int *)AddColoredHUDMessage; - NEXTFP = (int *)bm_w; - NEXTFP = (int *)bm_h; - NEXTFP = (int *)rend_DrawSimpleBitmap; - NEXTFP = (int *)MultiClientSendSpecialPacket; - NEXTFP = (int *)AddBlinkingHUDMessage; - NEXTFP = (int *)InvReset; - NEXTFP = (int *)AddHUDItem; - NEXTFP = (int *)RenderHUDQuad; - NEXTFP = (int *)RenderHUDText; - NEXTFP = (int *)MultiEndLevel; - NEXTFP = (int *)bm_data; - NEXTFP = (int *)bm_AllocBitmap; - NEXTFP = (int *)rend_FillRect; - NEXTFP = (int *)bm_CreateChunkedBitmap; - NEXTFP = (int *)bm_DestroyChunkedBitmap; - NEXTFP = (int *)rend_DrawChunkedBitmap; - NEXTFP = (int *)rend_DrawScaledChunkedBitmap; - NEXTFP = (int *)OpenCFILE; - NEXTFP = (int *)cfclose; - NEXTFP = (int *)cfeof; - NEXTFP = (int *)cfexist; - NEXTFP = (int *)cf_ReadBytes; - NEXTFP = (int *)cf_ReadInt; - NEXTFP = (int *)cf_ReadShort; - NEXTFP = (int *)cf_ReadByte; - NEXTFP = (int *)cf_ReadFloat; - NEXTFP = (int *)cf_ReadDouble; - NEXTFP = (int *)cf_ReadString; - NEXTFP = (int *)cf_WriteBytes; - NEXTFP = (int *)cf_WriteString; - NEXTFP = (int *)cf_WriteInt; - NEXTFP = (int *)cf_WriteShort; - NEXTFP = (int *)cf_WriteByte; - NEXTFP = (int *)cf_WriteFloat; - NEXTFP = (int *)cf_WriteDouble; - NEXTFP = (int *)cf_CopyFile; - NEXTFP = (int *)cf_Diff; - NEXTFP = (int *)MultiDisconnectPlayer; - NEXTFP = (int *)nw_GetNumbersFromHostAddress; - NEXTFP = (int *)nw_GetThisIP; - NEXTFP = (int *)CreateStringTable; - NEXTFP = (int *)DestroyStringTable; - NEXTFP = (int *)RenderHUDTextFlags; - NEXTFP = (int *)PlayerSpewInventory; - NEXTFP = (int *)PlayerSetHUDNameFOV; - NEXTFP = (int *)GetUltimateParentForObject; - NEXTFP = (int *)SetObjectDeadFlagDLL; - NEXTFP = (int *)DLLFatalError; - NEXTFP = (int *)assertdll; - NEXTFP = (int *)MultiMatchWeapon; - NEXTFP = (int *)MultiGetMatchChecksum; - NEXTFP = (int *)FindWeaponName; - NEXTFP = (int *)cf_OpenLibrary; - NEXTFP = (int *)cf_CloseLibrary; - NEXTFP = (int *)MultiSendRequestToObserve; - NEXTFP = (int *)FindTextureName; - NEXTFP = (int *)ApplyDamageToPlayer; - NEXTFP = (int *)MultiMatchGeneric; - NEXTFP = (int *)SetUITextItemText; - NEXTFP = (int *)NewUIWindowCreate; - NEXTFP = (int *)NewUIWindowDestroy; - NEXTFP = (int *)NewUIWindowOpen; - NEXTFP = (int *)NewUIWindowClose; - NEXTFP = (int *)TextCreate; - NEXTFP = (int *)EditCreate; - NEXTFP = (int *)ButtonCreate; - NEXTFP = (int *)ListCreate; - NEXTFP = (int *)ListRemoveAll; - NEXTFP = (int *)ListAddItem; - NEXTFP = (int *)ListRemoveItem; - NEXTFP = (int *)ListSelectItem; - NEXTFP = (int *)ListGetItem; - NEXTFP = (int *)ListGetSelectedIndex; - NEXTFP = (int *)EditSetText; - NEXTFP = (int *)EditGetText; - NEXTFP = (int *)DoUI; - NEXTFP = (int *)DoMessageBox; - NEXTFP = (int *)DescentDefer; - NEXTFP = (int *)NewUIGameWindowCreate; - NEXTFP = (int *)NewUIGameWindowDestroy; - NEXTFP = (int *)NewUIGameWindowOpen; - NEXTFP = (int *)NewUIGameWindowClose; - NEXTFP = (int *)HotSpotCreate; - NEXTFP = (int *)PollUI; - NEXTFP = (int *)RemoveUITextItem; - NEXTFP = (int *)CreateNewUITextItem; - NEXTFP = (int *)UIConsoleGadgetCreate; - NEXTFP = (int *)UIConsoleGadgetputs; - NEXTFP = (int *)NewUIWindowSetFocusOnEditGadget; - NEXTFP = (int *)OldEditCreate; - NEXTFP = (int *)OldListCreate; - NEXTFP = (int *)OldListRemoveAll; - NEXTFP = (int *)OldListAddItem; - NEXTFP = (int *)OldListRemoveItem; - NEXTFP = (int *)OldListSelectItem; - NEXTFP = (int *)OldListGetItem; - NEXTFP = (int *)OldListGetSelectedIndex; - NEXTFP = (int *)OldEditSetText; - NEXTFP = (int *)OldEditGetText; - NEXTFP = (int *)ToggleUICallback; - NEXTFP = (int *)SetOldEditBufferLen; - NEXTFP = (int *)NewUIWindowLoadBackgroundImage; - NEXTFP = (int *)DeleteUIItem; - NEXTFP = (int *)HotSpotSetStates; - NEXTFP = (int *)SetUICallback; - NEXTFP = (int *)RetrieveUICallback; - NEXTFP = (int *)SuspendControls; - NEXTFP = (int *)ResumeControls; - NEXTFP = (int *)ui_ShowCursor; - NEXTFP = (int *)ui_HideCursor; - NEXTFP = (int *)GameFrame; - NEXTFP = (int *)PrintDedicatedMessage; - NEXTFP = (int *)ddio_MakePath; - NEXTFP = (int *)ddio_SplitPath; - NEXTFP = (int *)D3W_Play2dSound; - NEXTFP = (int *)D3W_TouchSound; - NEXTFP = (int *)dDatabaseRead1; - NEXTFP = (int *)dDatabaseRead2; - NEXTFP = (int *)dDatabaseRead3; - NEXTFP = (int *)dDatabaseWrite1; - NEXTFP = (int *)dDatabaseWrite2; - NEXTFP = (int *)dAttachObject; - NEXTFP = (int *)dObjGet; - NEXTFP = (int *)ListSetSelectedIndex; - NEXTFP = (int *)RemoveUIBmpItem; - NEXTFP = (int *)CreateNewUIBmpItem; - NEXTFP = (int *)GetUIItemWidth; - NEXTFP = (int *)GetUIItemHeight; - NEXTFP = (int *)SliderCreate; - NEXTFP = (int *)SliderSetRange; - NEXTFP = (int *)SliderGetRange; - NEXTFP = (int *)SliderSetPos; - NEXTFP = (int *)SliderGetPos; - NEXTFP = (int *)SliderSetSelectChangeCallback; - NEXTFP = (int *)SliderSetSelectChangeCallbackWData; - NEXTFP = (int *)TextSetTitle; - NEXTFP = (int *)PPic_GetPilot; - NEXTFP = (int *)PPic_GetBitmapHandle; - NEXTFP = (int *)rend_DrawLine; - NEXTFP = (int *)rend_SetFlatColor; - NEXTFP = (int *)MultiSetLogoState; - NEXTFP = (int *)PlayerGetRandomStartPosition; - NEXTFP = (int *)InitPlayerNewShip; - NEXTFP = (int *)CheckBoxCreate; - NEXTFP = (int *)CheckBoxSetCheck; - NEXTFP = (int *)CheckBoxIsChecked; - NEXTFP = (int *)nw_GetHostAddressFromNumbers; - NEXTFP = (int *)mng_ClearAddonTables; - NEXTFP = (int *)mng_SetAddonTable; - NEXTFP = (int *)DebugBreak_callback_stop; - NEXTFP = (int *)DebugBreak_callback_resume; - NEXTFP = (int *)Int3MessageBox; - NEXTFP = (int *)GetUIItemPosition; - NEXTFP = (int *)dAttachObjectRadius; - NEXTFP = (int *)dUnattachChildren; - NEXTFP = (int *)dUnattachChild; - NEXTFP = (int *)dUnattachFromParent; - NEXTFP = (int *)vm_GetMagnitude; - NEXTFP = (int *)vm_MatrixMulVector; - NEXTFP = (int *)phys_apply_force; - NEXTFP = (int *)phys_apply_rot; - NEXTFP = (int *)vm_TransposeMatrix; - NEXTFP = (int *)vm_CrossProduct; - NEXTFP = (int *)vm_NormalizeVector; - NEXTFP = (int *)ConvertEulerToAxisAmount; - NEXTFP = (int *)ConvertAxisAmountToEuler; - NEXTFP = (int *)vm_GetMagnitudeFast; - NEXTFP = (int *)vm_MakeIdentity; - NEXTFP = (int *)dvm_MakeZeroVector; - NEXTFP = (int *)dvm_MakeZeroAngle; - NEXTFP = (int *)vm_VectorMulTMatrix; - NEXTFP = (int *)vm_MatrixMul; - NEXTFP = (int *)vm_MatrixMulTMatrix; - NEXTFP = (int *)vm_DotProduct; - NEXTFP = (int *)vm_SubVectors; - NEXTFP = (int *)vm_AddVectors; - NEXTFP = (int *)vm_AverageVector; - NEXTFP = (int *)vm_ScaleVector; - NEXTFP = (int *)vm_ScaleAddVector; - NEXTFP = (int *)vm_DivVector; - NEXTFP = (int *)vm_NormalizeVectorFast; - NEXTFP = (int *)vm_ClearMatrix; - NEXTFP = (int *)vm_AnglesToMatrix; - NEXTFP = (int *)vm_Orthogonalize; - NEXTFP = (int *)vm_VectorToMatrix; - NEXTFP = (int *)vm_VectorAngleToMatrix; - NEXTFP = (int *)vm_SinCos; - NEXTFP = (int *)vm_GetSlope; - NEXTFP = (int *)vm_GetPerp; - NEXTFP = (int *)vm_GetNormal; - NEXTFP = (int *)vm_VectorDistance; - NEXTFP = (int *)vm_VectorDistanceQuick; - NEXTFP = (int *)vm_GetNormalizedDir; - NEXTFP = (int *)vm_GetNormalizedDirFast; - NEXTFP = (int *)vm_ExtractAnglesFromMatrix; - NEXTFP = (int *)vm_DeltaAngVec; - NEXTFP = (int *)vm_DeltaAngVecNorm; - NEXTFP = (int *)vm_DistToPlane; - NEXTFP = (int *)calc_det_value; - NEXTFP = (int *)vm_MakeInverseMatrix; - NEXTFP = (int *)vm_SinCosToMatrix; - NEXTFP = (int *)vm_GetCentroid; - NEXTFP = (int *)vm_MakeRandomVector; - NEXTFP = (int *)vm_ComputeBoundingSphere; - NEXTFP = (int *)vm_GetCentroidFast; - NEXTFP = (int *)RenderHUDGetTextLineWidth; - NEXTFP = (int *)RenderHUDGetTextHeight; - NEXTFP = (int *)dStartFrame; - NEXTFP = (int *)EndFrame; - NEXTFP = (int *)ResetFacings; - NEXTFP = (int *)GameRenderWorld; - NEXTFP = (int *)GetFrameParameters; - NEXTFP = (int *)rend_SetZBufferState; - NEXTFP = (int *)rend_SetLighting; - NEXTFP = (int *)rend_SetColorModel; - NEXTFP = (int *)rend_SetTextureType; - NEXTFP = (int *)rend_DrawPolygon3D; - NEXTFP = (int *)rend_SetMipState; - NEXTFP = (int *)rend_SetFogState; - NEXTFP = (int *)rend_SetFiltering; - NEXTFP = (int *)rend_SetOverlayMap; - NEXTFP = (int *)rend_SetOverlayType; - NEXTFP = (int *)rend_ClearScreen; - NEXTFP = (int *)rend_SetPixel; - NEXTFP = (int *)rend_GetPixel; - NEXTFP = (int *)rend_FillCircle; - NEXTFP = (int *)rend_DrawCircle; - NEXTFP = (int *)rend_SetAlphaType; - NEXTFP = (int *)rend_SetAlphaValue; - NEXTFP = (int *)rend_SetWrapType; - NEXTFP = (int *)rend_SetZBias; - NEXTFP = (int *)rend_SetZBufferWriteMask; - NEXTFP = (int *)rend_GetLFBLock; - NEXTFP = (int *)rend_ReleaseLFBLock; - NEXTFP = (int *)rend_DrawLFBBitmap; - NEXTFP = (int *)rend_DrawSpecialLine; - NEXTFP = (int *)fvi_FindIntersection; - NEXTFP = (int *)fvi_QuickDistFaceList; - NEXTFP = (int *)fvi_QuickDistCellList; - NEXTFP = (int *)fvi_QuickDistObjectList; - NEXTFP = (int *)fvi_QuickRoomCheck; - NEXTFP = (int *)ObjSetPosAndMarkMoved; - NEXTFP = (int *)dSetObjectDeadFlagWDemo; - NEXTFP = (int *)taunt_AreEnabled; - NEXTFP = (int *)dSetAudioTaunts; - NEXTFP = (int *)GetRankIndex; - NEXTFP = (int *)VisEffectAllocate; - NEXTFP = (int *)VisEffectFree; - NEXTFP = (int *)VisEffectInitType; - NEXTFP = (int *)VisEffectCreate; - NEXTFP = (int *)VisEffectLink; - NEXTFP = (int *)VisEffectUnlink; - NEXTFP = (int *)VisEffectRelink; - NEXTFP = (int *)VisEffectDelete; - NEXTFP = (int *)CreateRandomSparks; - NEXTFP = (int *)CreateRandomLineSparks; - NEXTFP = (int *)VisEffectCreateControlled; - NEXTFP = (int *)CreateRandomParticles; - NEXTFP = (int *)AttachRandomNapalmEffectsToObject; - NEXTFP = (int *)InitObjectScripts; - NEXTFP = (int *)g3_StartFrame; - NEXTFP = (int *)g3_EndFrame; - NEXTFP = (int *)g3_GetViewPosition; - NEXTFP = (int *)g3_GetViewMatrix; - NEXTFP = (int *)g3_GetUnscaledMatrix; - NEXTFP = (int *)g3_StartInstanceMatrix; - NEXTFP = (int *)g3_StartInstanceAngles; - NEXTFP = (int *)g3_DoneInstance; - NEXTFP = (int *)g3_CheckNormalFacing; - NEXTFP = (int *)g3_RotatePoint; - NEXTFP = (int *)g3_ProjectPoint; - NEXTFP = (int *)g3_CalcPointDepth; - NEXTFP = (int *)g3_Point2Vec; - NEXTFP = (int *)g3_CodePoint; - NEXTFP = (int *)g3_RotateDeltaX; - NEXTFP = (int *)g3_RotateDeltaY; - NEXTFP = (int *)g3_RotateDeltaZ; - NEXTFP = (int *)g3_RotateDeltaVec; - NEXTFP = (int *)g3_AddDeltaVec; - NEXTFP = (int *)g3_DrawPoly; - NEXTFP = (int *)g3_DrawSphere; - NEXTFP = (int *)g3_CheckAndDrawPoly; - NEXTFP = (int *)g3_DrawLine; - NEXTFP = (int *)g3_DrawBitmap; - NEXTFP = (int *)g3_DrawRotatedBitmap; - NEXTFP = (int *)g3_DrawBox; - NEXTFP = (int *)g3_SetCustomClipPlane; - NEXTFP = (int *)g3_SetFarClipZ; - NEXTFP = (int *)g3_ClipPolygon; - NEXTFP = (int *)g3_FreeTempPoints; - NEXTFP = (int *)g3_GetMatrixScale; - NEXTFP = (int *)g3_SetTriangulationTest; - NEXTFP = (int *)g3_DrawSpecialLine; - NEXTFP = (int *)g3_DrawPlanarRotatedBitmap; - NEXTFP = (int *)PlayerStopSounds; - NEXTFP = (int *)FindArg; - NEXTFP = (int *)FireWeaponFromObject; - NEXTFP = (int *)CreateAndFireWeapon; - NEXTFP = (int *)SelectNextCameraView; - NEXTFP = (int *)dInven_Add; - NEXTFP = (int *)dInven_AddObject; - NEXTFP = (int *)dInven_AddCounterMeasure; - NEXTFP = (int *)dInven_Remove; - NEXTFP = (int *)dInven_Use; - NEXTFP = (int *)dInven_UseObjHandle; - NEXTFP = (int *)dInven_Size; - NEXTFP = (int *)dInven_CheckItem; - NEXTFP = (int *)dInven_Reset; - NEXTFP = (int *)dInven_ResetPos; - NEXTFP = (int *)dInven_NextPos; - NEXTFP = (int *)dInven_PrevPos; - NEXTFP = (int *)dInven_GetPosTypeID; - NEXTFP = (int *)dInven_GetAuxPosTypeID; - NEXTFP = (int *)dInven_GetPosDescription; - NEXTFP = (int *)dInven_GetPosIconName; - NEXTFP = (int *)dInven_GetPosName; - NEXTFP = (int *)dInven_GetPosInfo; - NEXTFP = (int *)dInven_GetPosCount; - NEXTFP = (int *)dInven_AtBeginning; - NEXTFP = (int *)dInven_AtEnd; - NEXTFP = (int *)dInven_GotoPos; - NEXTFP = (int *)dInven_GotoPosTypeID; - NEXTFP = (int *)dInven_UsePos; - NEXTFP = (int *)dInven_GetPos; - NEXTFP = (int *)dInven_ValidatePos; - NEXTFP = (int *)dInven_IsSelectable; - NEXTFP = (int *)dInven_IsUsable; - NEXTFP = (int *)dInven_GetTypeIDCount; - NEXTFP = (int *)dInven_FindPos; - NEXTFP = (int *)dInven_GetInventoryItemList; + // Fill in function pointers here. The order here must match the order on the + // DLL side (dmfcbase.cpp) + + api->fp[0] = (int *)AddHUDMessage; + api->fp[1] = (int *)MultiSendClientExecuteDLL; + api->fp[2] = (int *)FindObjectIDName; + api->fp[3] = (int *)GetGoalRoomForTeam; + api->fp[4] = (int *)SetMaxTeams; + api->fp[5] = (int *)ComputeRoomCenter; + api->fp[6] = (int *)ObjCreate; + api->fp[7] = (int *)MultiSendObject; + api->fp[8] = (int *)MultiPaintGoalRooms; + api->fp[9] = (int *)MultiSendSpecialPacket; + api->fp[10] = (int *)IncTeamScore; + api->fp[11] = (int *)MonoPrintf; + api->fp[12] = (int *)ObjSetPos; + api->fp[13] = (int *)InvCheckItem; + api->fp[14] = (int *)InvAddTypeID; + api->fp[15] = (int *)InvRemove; + api->fp[16] = (int *)PlayerSetLighting; + api->fp[17] = (int *)FindShipName; + api->fp[18] = (int *)PlayerSetRotatingBall; + api->fp[19] = (int *)ChangePlayerShipIndex; + api->fp[20] = (int *)InvGetTypeIDCount; + api->fp[21] = (int *)D3W_Play3dSound; + api->fp[22] = (int *)FindSoundName; + api->fp[23] = (int *)SpewCreate; + api->fp[24] = (int *)SpewClearEvent; + api->fp[25] = (int *)bm_AllocLoadFileBitmap; + api->fp[26] = (int *)bm_FreeBitmap; + api->fp[27] = (int *)DUMMYrend_DrawScaledBitmap; + api->fp[28] = (int *)grtext_Printf; + api->fp[29] = (int *)grtext_Flush; + api->fp[30] = (int *)grtext_SetColor; + api->fp[31] = (int *)grtext_SetFancyColor; + api->fp[32] = (int *)grtext_SetAlpha; + api->fp[33] = (int *)grtext_GetAlpha; + api->fp[34] = (int *)grtext_SetFont; + api->fp[35] = (int *)grtext_GetFont; + api->fp[36] = (int *)grtext_GetTextLineWidth; + api->fp[37] = (int *)grfont_GetHeight; + api->fp[38] = (int *)grtext_CenteredPrintf; + api->fp[39] = (int *)AddColoredHUDMessage; + api->fp[40] = (int *)bm_w; + api->fp[41] = (int *)bm_h; + api->fp[42] = (int *)rend_DrawSimpleBitmap; + api->fp[43] = (int *)MultiClientSendSpecialPacket; + api->fp[44] = (int *)AddBlinkingHUDMessage; + api->fp[45] = (int *)InvReset; + api->fp[46] = (int *)AddHUDItem; + api->fp[47] = (int *)RenderHUDQuad; + api->fp[48] = (int *)RenderHUDText; + api->fp[49] = (int *)MultiEndLevel; + api->fp[50] = (int *)bm_data; + api->fp[51] = (int *)bm_AllocBitmap; + api->fp[52] = (int *)rend_FillRect; + api->fp[53] = (int *)bm_CreateChunkedBitmap; + api->fp[54] = (int *)bm_DestroyChunkedBitmap; + api->fp[55] = (int *)rend_DrawChunkedBitmap; + api->fp[56] = (int *)rend_DrawScaledChunkedBitmap; + api->fp[57] = (int *)OpenCFILE; + api->fp[58] = (int *)cfclose; + api->fp[59] = (int *)cfeof; + api->fp[60] = (int *)cfexist; + api->fp[61] = (int *)cf_ReadBytes; + api->fp[62] = (int *)cf_ReadInt; + api->fp[63] = (int *)cf_ReadShort; + api->fp[64] = (int *)cf_ReadByte; + api->fp[65] = (int *)cf_ReadFloat; + api->fp[66] = (int *)cf_ReadDouble; + api->fp[67] = (int *)cf_ReadString; + api->fp[68] = (int *)cf_WriteBytes; + api->fp[69] = (int *)cf_WriteString; + api->fp[70] = (int *)cf_WriteInt; + api->fp[71] = (int *)cf_WriteShort; + api->fp[72] = (int *)cf_WriteByte; + api->fp[73] = (int *)cf_WriteFloat; + api->fp[74] = (int *)cf_WriteDouble; + api->fp[75] = (int *)cf_CopyFile; + api->fp[76] = (int *)cf_Diff; + api->fp[77] = (int *)MultiDisconnectPlayer; + api->fp[78] = (int *)nw_GetNumbersFromHostAddress; + api->fp[79] = (int *)nw_GetThisIP; + api->fp[80] = (int *)CreateStringTable; + api->fp[81] = (int *)DestroyStringTable; + api->fp[82] = (int *)RenderHUDTextFlags; + api->fp[83] = (int *)PlayerSpewInventory; + api->fp[84] = (int *)PlayerSetHUDNameFOV; + api->fp[85] = (int *)GetUltimateParentForObject; + api->fp[86] = (int *)SetObjectDeadFlagDLL; + api->fp[87] = (int *)DLLFatalError; + api->fp[88] = (int *)assertdll; + api->fp[89] = (int *)MultiMatchWeapon; + api->fp[90] = (int *)MultiGetMatchChecksum; + api->fp[91] = (int *)FindWeaponName; + api->fp[92] = (int *)cf_OpenLibrary; + api->fp[93] = (int *)cf_CloseLibrary; + api->fp[94] = (int *)MultiSendRequestToObserve; + api->fp[95] = (int *)FindTextureName; + api->fp[96] = (int *)ApplyDamageToPlayer; + api->fp[97] = (int *)MultiMatchGeneric; + api->fp[98] = (int *)SetUITextItemText; + api->fp[99] = (int *)NewUIWindowCreate; + api->fp[100] = (int *)NewUIWindowDestroy; + api->fp[101] = (int *)NewUIWindowOpen; + api->fp[102] = (int *)NewUIWindowClose; + api->fp[103] = (int *)TextCreate; + api->fp[104] = (int *)EditCreate; + api->fp[105] = (int *)ButtonCreate; + api->fp[106] = (int *)ListCreate; + api->fp[107] = (int *)ListRemoveAll; + api->fp[108] = (int *)ListAddItem; + api->fp[109] = (int *)ListRemoveItem; + api->fp[110] = (int *)ListSelectItem; + api->fp[111] = (int *)ListGetItem; + api->fp[112] = (int *)ListGetSelectedIndex; + api->fp[113] = (int *)EditSetText; + api->fp[114] = (int *)EditGetText; + api->fp[115] = (int *)DoUI; + api->fp[116] = (int *)DoMessageBox; + api->fp[117] = (int *)DescentDefer; + api->fp[118] = (int *)NewUIGameWindowCreate; + api->fp[119] = (int *)NewUIGameWindowDestroy; + api->fp[120] = (int *)NewUIGameWindowOpen; + api->fp[121] = (int *)NewUIGameWindowClose; + api->fp[122] = (int *)HotSpotCreate; + api->fp[123] = (int *)PollUI; + api->fp[124] = (int *)RemoveUITextItem; + api->fp[125] = (int *)CreateNewUITextItem; + api->fp[126] = (int *)UIConsoleGadgetCreate; + api->fp[127] = (int *)UIConsoleGadgetputs; + api->fp[128] = (int *)NewUIWindowSetFocusOnEditGadget; + api->fp[129] = (int *)OldEditCreate; + api->fp[130] = (int *)OldListCreate; + api->fp[131] = (int *)OldListRemoveAll; + api->fp[132] = (int *)OldListAddItem; + api->fp[133] = (int *)OldListRemoveItem; + api->fp[134] = (int *)OldListSelectItem; + api->fp[135] = (int *)OldListGetItem; + api->fp[136] = (int *)OldListGetSelectedIndex; + api->fp[137] = (int *)OldEditSetText; + api->fp[138] = (int *)OldEditGetText; + api->fp[139] = (int *)ToggleUICallback; + api->fp[140] = (int *)SetOldEditBufferLen; + api->fp[141] = (int *)NewUIWindowLoadBackgroundImage; + api->fp[142] = (int *)DeleteUIItem; + api->fp[143] = (int *)HotSpotSetStates; + api->fp[144] = (int *)SetUICallback; + api->fp[145] = (int *)RetrieveUICallback; + api->fp[146] = (int *)SuspendControls; + api->fp[147] = (int *)ResumeControls; + api->fp[148] = (int *)ui_ShowCursor; + api->fp[149] = (int *)ui_HideCursor; + api->fp[150] = (int *)GameFrame; + api->fp[151] = (int *)PrintDedicatedMessage; + api->fp[152] = (int *)ddio_MakePath; + api->fp[153] = (int *)ddio_SplitPath; + api->fp[154] = (int *)D3W_Play2dSound; + api->fp[155] = (int *)D3W_TouchSound; + api->fp[156] = (int *)dDatabaseRead1; + api->fp[157] = (int *)dDatabaseRead2; + api->fp[158] = (int *)dDatabaseRead3; + api->fp[159] = (int *)dDatabaseWrite1; + api->fp[160] = (int *)dDatabaseWrite2; + api->fp[161] = (int *)dAttachObject; + api->fp[162] = (int *)dObjGet; + api->fp[163] = (int *)ListSetSelectedIndex; + api->fp[164] = (int *)RemoveUIBmpItem; + api->fp[165] = (int *)CreateNewUIBmpItem; + api->fp[166] = (int *)GetUIItemWidth; + api->fp[167] = (int *)GetUIItemHeight; + api->fp[168] = (int *)SliderCreate; + api->fp[169] = (int *)SliderSetRange; + api->fp[170] = (int *)SliderGetRange; + api->fp[171] = (int *)SliderSetPos; + api->fp[172] = (int *)SliderGetPos; + api->fp[173] = (int *)SliderSetSelectChangeCallback; + api->fp[174] = (int *)SliderSetSelectChangeCallbackWData; + api->fp[175] = (int *)TextSetTitle; + api->fp[176] = (int *)PPic_GetPilot; + api->fp[177] = (int *)PPic_GetBitmapHandle; + api->fp[178] = (int *)rend_DrawLine; + api->fp[179] = (int *)rend_SetFlatColor; + api->fp[180] = (int *)MultiSetLogoState; + api->fp[181] = (int *)PlayerGetRandomStartPosition; + api->fp[182] = (int *)InitPlayerNewShip; + api->fp[183] = (int *)CheckBoxCreate; + api->fp[184] = (int *)CheckBoxSetCheck; + api->fp[185] = (int *)CheckBoxIsChecked; + api->fp[186] = (int *)nw_GetHostAddressFromNumbers; + api->fp[187] = (int *)mng_ClearAddonTables; + api->fp[188] = (int *)mng_SetAddonTable; + api->fp[189] = (int *)DebugBreak_callback_stop; + api->fp[190] = (int *)DebugBreak_callback_resume; + api->fp[191] = (int *)Int3MessageBox; + api->fp[192] = (int *)GetUIItemPosition; + api->fp[193] = (int *)dAttachObjectRadius; + api->fp[194] = (int *)dUnattachChildren; + api->fp[195] = (int *)dUnattachChild; + api->fp[196] = (int *)dUnattachFromParent; + api->fp[197] = (int *)vm_GetMagnitude; + api->fp[198] = (int *)vm_MatrixMulVector; + api->fp[199] = (int *)phys_apply_force; + api->fp[200] = (int *)phys_apply_rot; + api->fp[201] = (int *)vm_TransposeMatrix; + api->fp[202] = (int *)vm_CrossProduct; + api->fp[203] = (int *)vm_NormalizeVector; + api->fp[204] = (int *)ConvertEulerToAxisAmount; + api->fp[205] = (int *)ConvertAxisAmountToEuler; + api->fp[206] = (int *)vm_GetMagnitudeFast; + api->fp[207] = (int *)vm_MakeIdentity; + api->fp[208] = (int *)dvm_MakeZeroVector; + api->fp[209] = (int *)dvm_MakeZeroAngle; + api->fp[210] = (int *)vm_VectorMulTMatrix; + api->fp[211] = (int *)vm_MatrixMul; + api->fp[212] = (int *)vm_MatrixMulTMatrix; + api->fp[213] = (int *)vm_DotProduct; + api->fp[214] = (int *)vm_SubVectors; + api->fp[215] = (int *)vm_AddVectors; + api->fp[216] = (int *)vm_AverageVector; + api->fp[217] = (int *)vm_ScaleVector; + api->fp[218] = (int *)vm_ScaleAddVector; + api->fp[219] = (int *)vm_DivVector; + api->fp[220] = (int *)vm_NormalizeVectorFast; + api->fp[221] = (int *)vm_ClearMatrix; + api->fp[222] = (int *)vm_AnglesToMatrix; + api->fp[223] = (int *)vm_Orthogonalize; + api->fp[224] = (int *)vm_VectorToMatrix; + api->fp[225] = (int *)vm_VectorAngleToMatrix; + api->fp[226] = (int *)vm_SinCos; + api->fp[227] = (int *)vm_GetSlope; + api->fp[228] = (int *)vm_GetPerp; + api->fp[229] = (int *)vm_GetNormal; + api->fp[230] = (int *)vm_VectorDistance; + api->fp[231] = (int *)vm_VectorDistanceQuick; + api->fp[232] = (int *)vm_GetNormalizedDir; + api->fp[233] = (int *)vm_GetNormalizedDirFast; + api->fp[234] = (int *)vm_ExtractAnglesFromMatrix; + api->fp[235] = (int *)vm_DeltaAngVec; + api->fp[236] = (int *)vm_DeltaAngVecNorm; + api->fp[237] = (int *)vm_DistToPlane; + api->fp[238] = (int *)calc_det_value; + api->fp[239] = (int *)vm_MakeInverseMatrix; + api->fp[240] = (int *)vm_SinCosToMatrix; + api->fp[241] = (int *)vm_GetCentroid; + api->fp[242] = (int *)vm_MakeRandomVector; + api->fp[243] = (int *)vm_ComputeBoundingSphere; + api->fp[244] = (int *)vm_GetCentroidFast; + api->fp[245] = (int *)RenderHUDGetTextLineWidth; + api->fp[246] = (int *)RenderHUDGetTextHeight; + api->fp[247] = (int *)dStartFrame; + api->fp[248] = (int *)EndFrame; + api->fp[249] = (int *)ResetFacings; + api->fp[250] = (int *)GameRenderWorld; + api->fp[251] = (int *)GetFrameParameters; + api->fp[252] = (int *)rend_SetZBufferState; + api->fp[253] = (int *)rend_SetLighting; + api->fp[254] = (int *)rend_SetColorModel; + api->fp[255] = (int *)rend_SetTextureType; + api->fp[256] = (int *)rend_DrawPolygon3D; + api->fp[257] = (int *)rend_SetMipState; + api->fp[258] = (int *)rend_SetFogState; + api->fp[259] = (int *)rend_SetFiltering; + api->fp[260] = (int *)rend_SetOverlayMap; + api->fp[261] = (int *)rend_SetOverlayType; + api->fp[262] = (int *)rend_ClearScreen; + api->fp[263] = (int *)rend_SetPixel; + api->fp[264] = (int *)rend_GetPixel; + api->fp[265] = (int *)rend_FillCircle; + api->fp[266] = (int *)rend_DrawCircle; + api->fp[267] = (int *)rend_SetAlphaType; + api->fp[268] = (int *)rend_SetAlphaValue; + api->fp[269] = (int *)rend_SetWrapType; + api->fp[270] = (int *)rend_SetZBias; + api->fp[271] = (int *)rend_SetZBufferWriteMask; + api->fp[272] = (int *)rend_GetLFBLock; + api->fp[273] = (int *)rend_ReleaseLFBLock; + api->fp[274] = (int *)rend_DrawLFBBitmap; + api->fp[275] = (int *)rend_DrawSpecialLine; + api->fp[276] = (int *)fvi_FindIntersection; + api->fp[277] = (int *)fvi_QuickDistFaceList; + api->fp[278] = (int *)fvi_QuickDistCellList; + api->fp[279] = (int *)fvi_QuickDistObjectList; + api->fp[280] = (int *)fvi_QuickRoomCheck; + api->fp[281] = (int *)ObjSetPosAndMarkMoved; + api->fp[282] = (int *)dSetObjectDeadFlagWDemo; + api->fp[283] = (int *)taunt_AreEnabled; + api->fp[284] = (int *)dSetAudioTaunts; + api->fp[285] = (int *)GetRankIndex; + api->fp[286] = (int *)VisEffectAllocate; + api->fp[287] = (int *)VisEffectFree; + api->fp[288] = (int *)VisEffectInitType; + api->fp[289] = (int *)VisEffectCreate; + api->fp[290] = (int *)VisEffectLink; + api->fp[291] = (int *)VisEffectUnlink; + api->fp[292] = (int *)VisEffectRelink; + api->fp[293] = (int *)VisEffectDelete; + api->fp[294] = (int *)CreateRandomSparks; + api->fp[295] = (int *)CreateRandomLineSparks; + api->fp[296] = (int *)VisEffectCreateControlled; + api->fp[297] = (int *)CreateRandomParticles; + api->fp[298] = (int *)AttachRandomNapalmEffectsToObject; + api->fp[299] = (int *)InitObjectScripts; + api->fp[300] = (int *)g3_StartFrame; + api->fp[301] = (int *)g3_EndFrame; + api->fp[302] = (int *)g3_GetViewPosition; + api->fp[303] = (int *)g3_GetViewMatrix; + api->fp[304] = (int *)g3_GetUnscaledMatrix; + api->fp[305] = (int *)g3_StartInstanceMatrix; + api->fp[306] = (int *)g3_StartInstanceAngles; + api->fp[307] = (int *)g3_DoneInstance; + api->fp[308] = (int *)g3_CheckNormalFacing; + api->fp[309] = (int *)g3_RotatePoint; + api->fp[310] = (int *)g3_ProjectPoint; + api->fp[311] = (int *)g3_CalcPointDepth; + api->fp[312] = (int *)g3_Point2Vec; + api->fp[313] = (int *)g3_CodePoint; + api->fp[314] = (int *)g3_RotateDeltaX; + api->fp[315] = (int *)g3_RotateDeltaY; + api->fp[316] = (int *)g3_RotateDeltaZ; + api->fp[317] = (int *)g3_RotateDeltaVec; + api->fp[318] = (int *)g3_AddDeltaVec; + api->fp[319] = (int *)g3_DrawPoly; + api->fp[320] = (int *)g3_DrawSphere; + api->fp[321] = (int *)g3_CheckAndDrawPoly; + api->fp[322] = (int *)g3_DrawLine; + api->fp[323] = (int *)g3_DrawBitmap; + api->fp[324] = (int *)g3_DrawRotatedBitmap; + api->fp[325] = (int *)g3_DrawBox; + api->fp[326] = (int *)g3_SetCustomClipPlane; + api->fp[327] = (int *)g3_SetFarClipZ; + api->fp[328] = (int *)g3_ClipPolygon; + api->fp[329] = (int *)g3_FreeTempPoints; + api->fp[330] = (int *)g3_GetMatrixScale; + api->fp[331] = (int *)g3_SetTriangulationTest; + api->fp[332] = (int *)g3_DrawSpecialLine; + api->fp[333] = (int *)g3_DrawPlanarRotatedBitmap; + api->fp[334] = (int *)PlayerStopSounds; + api->fp[335] = (int *)FindArg; + api->fp[336] = (int *)FireWeaponFromObject; + api->fp[337] = (int *)CreateAndFireWeapon; + api->fp[338] = (int *)SelectNextCameraView; + api->fp[339] = (int *)dInven_Add; + api->fp[340] = (int *)dInven_AddObject; + api->fp[341] = (int *)dInven_AddCounterMeasure; + api->fp[342] = (int *)dInven_Remove; + api->fp[343] = (int *)dInven_Use; + api->fp[344] = (int *)dInven_UseObjHandle; + api->fp[345] = (int *)dInven_Size; + api->fp[346] = (int *)dInven_CheckItem; + api->fp[347] = (int *)dInven_Reset; + api->fp[348] = (int *)dInven_ResetPos; + api->fp[349] = (int *)dInven_NextPos; + api->fp[350] = (int *)dInven_PrevPos; + api->fp[351] = (int *)dInven_GetPosTypeID; + api->fp[352] = (int *)dInven_GetAuxPosTypeID; + api->fp[353] = (int *)dInven_GetPosDescription; + api->fp[354] = (int *)dInven_GetPosIconName; + api->fp[355] = (int *)dInven_GetPosName; + api->fp[356] = (int *)dInven_GetPosInfo; + api->fp[357] = (int *)dInven_GetPosCount; + api->fp[358] = (int *)dInven_AtBeginning; + api->fp[359] = (int *)dInven_AtEnd; + api->fp[360] = (int *)dInven_GotoPos; + api->fp[361] = (int *)dInven_GotoPosTypeID; + api->fp[362] = (int *)dInven_UsePos; + api->fp[363] = (int *)dInven_GetPos; + api->fp[364] = (int *)dInven_ValidatePos; + api->fp[365] = (int *)dInven_IsSelectable; + api->fp[366] = (int *)dInven_IsUsable; + api->fp[367] = (int *)dInven_GetTypeIDCount; + api->fp[368] = (int *)dInven_FindPos; + api->fp[369] = (int *)dInven_GetInventoryItemList; // Variable pointers api->vp[0] = (int *)&Player_num; diff --git a/Descent3/multi_dll_mgr.cpp b/Descent3/multi_dll_mgr.cpp index c03f2e95..397eead1 100644 --- a/Descent3/multi_dll_mgr.cpp +++ b/Descent3/multi_dll_mgr.cpp @@ -395,7 +395,7 @@ void GetMultiAPI(multi_api *api) { api->netplayers = (int *)&NetPlayers; api->ships = (int *)Ships; // Fill in function pointers here. The order here must match the order on the - // DLL side + // DLL side (netcon/includes/mdllinit.h) api->fp[0] = (int *)SetUITextItemText; api->fp[1] = (int *)NewUIWindowCreate; diff --git a/netcon/includes/mdllinit.h b/netcon/includes/mdllinit.h index 02e14098..c1cc3e1e 100644 --- a/netcon/includes/mdllinit.h +++ b/netcon/includes/mdllinit.h @@ -154,6 +154,9 @@ * $NoKeywords: $ */ +// Do functions, variables +// Note, these must match the ordering on the D3 side (multi_dll_mgr.cpp) + DLLGetMultiAPI = (GetMultiAPI_fp)api_func; DLLGetMultiAPI(&API); DLLSetUITextItemText = (SetUITextItemText_fp)API.fp[0]; diff --git a/netgames/dmfc/dmfcbase.cpp b/netgames/dmfc/dmfcbase.cpp index ebb04ce3..4bad8db3 100644 --- a/netgames/dmfc/dmfcbase.cpp +++ b/netgames/dmfc/dmfcbase.cpp @@ -781,380 +781,378 @@ void DMFCBase::LoadFunctions(int *api_func) { GameTextures = (texture *)API.GameTextures; GameVClips = (vclip *)API.GameVClips; - int i = 0; - // Do functions, variables - // Note, these must match the ordering on the D3 side - DLLAddHUDMessage = (AddHUDMessage_fp)API.fp[i++]; - DLLMultiSendClientExecuteDLL = (MultiSendClientExecuteDLL_fp)API.fp[i++]; - DLLFindObjectIDName = (FindObjectIDName_fp)API.fp[i++]; - DLLGetGoalRoomForTeam = (GetGoalRoomForTeam_fp)API.fp[i++]; - DLLSetMaxTeams = (SetMaxTeams_fp)API.fp[i++]; - DLLComputeRoomCenter = (ComputeRoomCenter_fp)API.fp[i++]; - DLLObjCreate = (ObjCreate_fp)API.fp[i++]; - DLLMultiSendObject = (MultiSendObject_fp)API.fp[i++]; - DLLMultiPaintGoalRooms = (MultiPaintGoalRooms_fp)API.fp[i++]; - DLLMultiSendSpecialPacket = (MultiSendSpecialPacket_fp)API.fp[i++]; - DLLIncTeamScore = (IncTeamScore_fp)API.fp[i++]; - DLLDebug_ConsolePrintf = (Debug_ConsolePrintf_fp)API.fp[i++]; - DLLObjSetPosNoMark = (ObjSetPosNoMark_fp)API.fp[i++]; - DLLInvCheckItem = (InvCheckItem_fp)API.fp[i++]; - DLLInvAddTypeID = (InvAddTypeID_fp)API.fp[i++]; - DLLInvRemove = (InvRemove_fp)API.fp[i++]; - DLLPlayerSetLighting = (PlayerSetLighting_fp)API.fp[i++]; - DLLFindShipName = (FindShipName_fp)API.fp[i++]; - DLLPlayerSetRotatingBall = (PlayerSetRotatingBall_fp)API.fp[i++]; - DLLPlayerChangeShip = (PlayerChangeShip_fp)API.fp[i++]; - DLLInvGetTypeIDCount = (InvGetTypeIDCount_fp)API.fp[i++]; - DLLPlay3dSound = (D3W_Play3dSound_fp)API.fp[i++]; - DLLFindSoundName = (FindSoundName_fp)API.fp[i++]; - DLLSpewCreate = (SpewCreate_fp)API.fp[i++]; - DLLSpewClearEvent = (SpewClearEvent_fp)API.fp[i++]; - DLLbm_AllocLoadFileBitmap = (bm_AllocLoadFileBitmap_fp)API.fp[i++]; - DLLbm_FreeBitmap = (bm_FreeBitmap_fp)API.fp[i++]; - DLLrend_DrawScaledBitmap = (rend_DrawScaledBitmap_fp)API.fp[i++]; - DLLgrtext_Printf = (grtext_Printf_fp)API.fp[i++]; - DLLgrtext_Flush = (grtext_Flush_fp)API.fp[i++]; - DLLgrtext_SetColor = (grtext_SetColor_fp)API.fp[i++]; - DLLgrtext_SetFancyColor = (grtext_SetFancyColor_fp)API.fp[i++]; - DLLgrtext_SetAlpha = (grtext_SetAlpha_fp)API.fp[i++]; - DLLgrtext_GetAlpha = (grtext_GetAlpha_fp)API.fp[i++]; - DLLgrtext_SetFont = (grtext_SetFont_fp)API.fp[i++]; - DLLgrtext_GetFont = (grtext_GetFont_fp)API.fp[i++]; - DLLgrtext_GetTextLineWidth = (grtext_GetTextLineWidth_fp)API.fp[i++]; - DLLgrfont_GetHeight = (grfont_GetHeight_fp)API.fp[i++]; - DLLgrtext_CenteredPrintf = (grtext_CenteredPrintf_fp)API.fp[i++]; - DLLAddColoredHUDMessage = (AddColoredHUDMessage_fp)API.fp[i++]; - DLLbm_w = (bm_w_fp)API.fp[i++]; - DLLbm_h = (bm_h_fp)API.fp[i++]; - DLLrend_DrawSimpleBitmap = (rend_DrawSimpleBitmap_fp)API.fp[i++]; - DLLMultiClientSendSpecialPacket = (MultiClientSendSpecialPacket_fp)API.fp[i++]; - DLLAddBlinkingHUDMessage = (AddBlinkingHUDMessage_fp)API.fp[i++]; - DLLInvReset = (InvReset_fp)API.fp[i++]; - DLLAddHUDItem = (AddHUDItem_fp)API.fp[i++]; - DLLRenderHUDQuad = (RenderHUDQuad_fp)API.fp[i++]; - DLLRenderHUDText = (RenderHUDText_fp)API.fp[i++]; - DLLMultiEndLevel = (MultiEndLevel_fp)API.fp[i++]; - DLLbm_data = (bm_data_fp)API.fp[i++]; - DLLbm_AllocBitmap = (bm_AllocBitmap_fp)API.fp[i++]; - DLLrend_FillRect = (rend_FillRect_fp)API.fp[i++]; - DLLbm_CreateChunkedBitmap = (bm_CreateChunkedBitmap_fp)API.fp[i++]; - DLLbm_DestroyChunkedBitmap = (bm_DestroyChunkedBitmap_fp)API.fp[i++]; - DLLrend_DrawChunkedBitmap = (rend_DrawChunkedBitmap_fp)API.fp[i++]; - DLLrend_DrawScaledChunkedBitmap = (rend_DrawScaledChunkedBitmap_fp)API.fp[i++]; - DLLOpenCFILE = (OpenCFILE_fp)API.fp[i++]; - DLLcfclose = (cfclose_fp)API.fp[i++]; - DLLcfeof = (cfeof_fp)API.fp[i++]; - DLLcfexist = (cfexist_fp)API.fp[i++]; - DLLcf_ReadBytes = (cf_ReadBytes_fp)API.fp[i++]; - DLLcf_ReadInt = (cf_ReadInt_fp)API.fp[i++]; - DLLcf_ReadShort = (cf_ReadShort_fp)API.fp[i++]; - DLLcf_ReadByte = (cf_ReadByte_fp)API.fp[i++]; - DLLcf_ReadFloat = (cf_ReadFloat_fp)API.fp[i++]; - DLLcf_ReadDouble = (cf_ReadDouble_fp)API.fp[i++]; - DLLcf_ReadString = (cf_ReadString_fp)API.fp[i++]; - DLLcf_WriteBytes = (cf_WriteBytes_fp)API.fp[i++]; - DLLcf_WriteString = (cf_WriteString_fp)API.fp[i++]; - DLLcf_WriteInt = (cf_WriteInt_fp)API.fp[i++]; - DLLcf_WriteShort = (cf_WriteShort_fp)API.fp[i++]; - DLLcf_WriteByte = (cf_WriteByte_fp)API.fp[i++]; - DLLcf_WriteFloat = (cf_WriteFloat_fp)API.fp[i++]; - DLLcf_WriteDouble = (cf_WriteDouble_fp)API.fp[i++]; - DLLcf_CopyFile = (cf_CopyFile_fp)API.fp[i++]; - DLLcf_Diff = (cf_Diff_fp)API.fp[i++]; - DLLMultiDisconnectPlayer = (MultiDisconnectPlayer_fp)API.fp[i++]; - DLLnw_GetNumbersFromHostAddress = (nw_GetNumbersFromHostAddress_fp)API.fp[i++]; - DLLnw_GetThisIP = (nw_GetThisIP_fp)API.fp[i++]; - DLLCreateStringTable = (CreateStringTable_fp)API.fp[i++]; - DLLDestroyStringTable = (DestroyStringTable_fp)API.fp[i++]; - DLLRenderHUDTextFlags = (RenderHUDTextFlags_fp)API.fp[i++]; - DLLPlayerSpewInventory = (PlayerSpewInventory_fp)API.fp[i++]; - DLLPlayerSetHUDNameFOV = (PlayerSetHUDNameFOV_fp)API.fp[i++]; - DLLGetUltimateParentForObject = (GetUltimateParentForObject_fp)API.fp[i++]; - DLLSetObjectDeadFlagRaw = (SetObjectDeadFlagRaw_fp)API.fp[i++]; - FatalError = (DLLFatalError_fp)API.fp[i++]; - DLLassert = (assertdll_fp)API.fp[i++]; - DLLMultiMatchWeapon = (MultiMatchWeapon_fp)API.fp[i++]; - DLLMultiGetMatchChecksum = (MultiGetMatchChecksum_fp)API.fp[i++]; - DLLFindWeaponName = (FindWeaponName_fp)API.fp[i++]; - DLLcf_OpenLibrary = (cf_OpenLibrary_fp)API.fp[i++]; - DLLcf_CloseLibrary = (cf_CloseLibrary_fp)API.fp[i++]; - DLLMultiSendRequestToObserve = (MultiSendRequestToObserve_fp)API.fp[i++]; - DLLFindTextureName = (FindTextureName_fp)API.fp[i++]; - DLLApplyDamageToPlayer = (ApplyDamageToPlayer_fp)API.fp[i++]; - DLLMultiMatchGeneric = (MultiMatchGeneric_fp)API.fp[i++]; - DLLSetUITextItemText = (SetUITextItemText_fp)API.fp[i++]; - DLLNewUIWindowCreate = (NewUIWindowCreate_fp)API.fp[i++]; - DLLNewUIWindowDestroy = (NewUIWindowDestroy_fp)API.fp[i++]; - DLLNewUIWindowOpen = (NewUIWindowOpen_fp)API.fp[i++]; - DLLNewUIWindowClose = (NewUIWindowClose_fp)API.fp[i++]; - DLLTextCreate = (TextCreate_fp)API.fp[i++]; - DLLEditCreate = (EditCreate_fp)API.fp[i++]; - DLLButtonCreate = (ButtonCreate_fp)API.fp[i++]; - DLLListCreate = (ListCreate_fp)API.fp[i++]; - DLLListRemoveAll = (ListRemoveAll_fp)API.fp[i++]; - DLLListAddItem = (ListAddItem_fp)API.fp[i++]; - DLLListRemoveItem = (ListRemoveItem_fp)API.fp[i++]; - DLLListSelectItem = (ListSelectItem_fp)API.fp[i++]; - DLLListGetItem = (ListGetItem_fp)API.fp[i++]; - DLLListGetSelectedIndex = (ListGetSelectedIndex_fp)API.fp[i++]; - DLLEditSetText = (EditSetText_fp)API.fp[i++]; - DLLEditGetText = (EditGetText_fp)API.fp[i++]; - DLLDoUI = (DoUI_fp)API.fp[i++]; - DLLDoMessageBox = (DoMessageBox_fp)API.fp[i++]; - DLLDescentDefer = (DescentDefer_fp)API.fp[i++]; - DLLNewUIGameWindowCreate = (NewUIGameWindowCreate_fp)API.fp[i++]; - DLLNewUIGameWindowDestroy = (NewUIGameWindowDestroy_fp)API.fp[i++]; - DLLNewUIGameWindowOpen = (NewUIGameWindowOpen_fp)API.fp[i++]; - DLLNewUIGameWindowClose = (NewUIGameWindowClose_fp)API.fp[i++]; - DLLHotSpotCreate = (HotSpotCreate_fp)API.fp[i++]; - DLLPollUI = (PollUI_fp)API.fp[i++]; - DLLRemoveUITextItem = (RemoveUITextItem_fp)API.fp[i++]; - DLLCreateNewUITextItem = (CreateNewUITextItem_fp)API.fp[i++]; - DLLUIConsoleGadgetCreate = (UIConsoleGadgetCreate_fp)API.fp[i++]; - DLLUIConsoleGadgetputs = (UIConsoleGadgetputs_fp)API.fp[i++]; - DLLNewUIWindowSetFocusOnEditGadget = (NewUIWindowSetFocusOnEditGadget_fp)API.fp[i++]; - DLLOldEditCreate = (OldEditCreate_fp)API.fp[i++]; - DLLOldListCreate = (OldListCreate_fp)API.fp[i++]; - DLLOldListRemoveAll = (OldListRemoveAll_fp)API.fp[i++]; - DLLOldListAddItem = (OldListAddItem_fp)API.fp[i++]; - DLLOldListRemoveItem = (OldListRemoveItem_fp)API.fp[i++]; - DLLOldListSelectItem = (OldListSelectItem_fp)API.fp[i++]; - DLLOldListGetItem = (OldListGetItem_fp)API.fp[i++]; - DLLOldListGetSelectedIndex = (OldListGetSelectedIndex_fp)API.fp[i++]; - DLLOldEditSetText = (OldEditSetText_fp)API.fp[i++]; - DLLOldEditGetText = (OldEditGetText_fp)API.fp[i++]; - DLLToggleUICallback = (ToggleUICallback_fp)API.fp[i++]; - DLLSetOldEditBufferLen = (SetOldEditBufferLen_fp)API.fp[i++]; - DLLNewUIWindowLoadBackgroundImage = (NewUIWindowLoadBackgroundImage_fp)API.fp[i++]; - DLLDeleteUIItem = (DeleteUIItem_fp)API.fp[i++]; - DLLHotSpotSetStates = (HotSpotSetStates_fp)API.fp[i++]; - DLLSetUICallback = (SetUICallback_fp)API.fp[i++]; - DLLGetUICallback = (RetrieveUICallback_fp)API.fp[i++]; - DLLSuspendControls = (SuspendControls_fp)API.fp[i++]; - DLLResumeControls = (ResumeControls_fp)API.fp[i++]; - DLLShowCursor = (ui_ShowCursor_fp)API.fp[i++]; - DLLHideCursor = (ui_HideCursor_fp)API.fp[i++]; - DLLGameFrame = (GameFrame_fp)API.fp[i++]; - DPrintf = (DPrintf_fp)API.fp[i++]; - DLLddio_MakePath = (ddio_MakePath_fp)API.fp[i++]; - DLLddio_SplitPath = (ddio_SplitPath_fp)API.fp[i++]; - DLLPlay2dSound = (Play2dSound_fp)API.fp[i++]; - DLLTouchSound = (TouchSound_fp)API.fp[i++]; - DatabaseRead1 = (dDatabaseRead_fp1)API.fp[i++]; - DatabaseRead2 = (dDatabaseRead_fp2)API.fp[i++]; - DatabaseRead3 = (dDatabaseRead_fp3)API.fp[i++]; - DatabaseWrite1 = (dDatabaseWrite_fp1)API.fp[i++]; - DatabaseWrite2 = (dDatabaseWrite_fp2)API.fp[i++]; - DLLAttachObject = (AttachObject_fp)API.fp[i++]; - DLLObjGet = (ObjGet_fp)API.fp[i++]; - DLLListSetSelectedIndex = (ListSetSelectedIndex_fp)API.fp[i++]; - DLLRemoveUIBmpItem = (RemoveUIBmpItem_fp)API.fp[i++]; - DLLCreateNewUIBmpItem = (CreateNewUIBmpItem_fp)API.fp[i++]; - DLLGetUIItemWidth = (GetUIItemWidth_fp)API.fp[i++]; - DLLGetUIItemHeight = (GetUIItemHeight_fp)API.fp[i++]; - DLLSliderCreate = (SliderCreate_fp)API.fp[i++]; - DLLSliderSetRange = (SliderSetRange_fp)API.fp[i++]; - DLLSliderGetRange = (SliderGetRange_fp)API.fp[i++]; - DLLSliderSetPos = (SliderSetPos_fp)API.fp[i++]; - DLLSliderGetPos = (SliderGetPos_fp)API.fp[i++]; - DLLSliderSetSelectChangeCallback = (SliderSetSelectChangeCallback_fp)API.fp[i++]; - DLLSliderSetSelectChangeCallbackWData = (SliderSetSelectChangeCallbackWData_fp)API.fp[i++]; - DLLTextSetTitle = (TextSetTitle_fp)API.fp[i++]; - DLLPPic_GetPilot = (PPic_GetPilot_fp)API.fp[i++]; - DLLPPic_GetBitmapHandle = (PPic_GetBitmapHandle_fp)API.fp[i++]; - DLLrend_DrawLine = (rend_DrawLine_fp)API.fp[i++]; - DLLrend_SetFlatColor = (rend_SetFlatColor_fp)API.fp[i++]; - DLLMultiSetLogoState = (MultiSetLogoState_fp)API.fp[i++]; - DLLPlayerGetRandomStartPosition = (PlayerGetRandomStartPosition_fp)API.fp[i++]; - DLLInitPlayerNewShip = (InitPlayerNewShip_fp)API.fp[i++]; - DLLCheckBoxCreate = (CheckBoxCreate_fp)API.fp[i++]; - DLLCheckBoxSetCheck = (CheckBoxSetCheck_fp)API.fp[i++]; - DLLCheckBoxIsChecked = (CheckBoxIsChecked_fp)API.fp[i++]; - DLLnw_GetHostAddressFromNumbers = (nw_GetHostAddressFromNumbers_fp)API.fp[i++]; - TableFilesClear = (TableFilesClear_fp)API.fp[i++]; - TableFileAdd = (TableFileAdd_fp)API.fp[i++]; - DLLDebugBreak_callback_stop = (DebugBreak_callback_stop_fp)API.fp[i++]; - DLLDebugBreak_callback_resume = (DebugBreak_callback_resume_fp)API.fp[i++]; - DLLInt3MessageBox = (Int3MessageBox_fp)API.fp[i++]; - DLLGetUIItemPosition = (GetUIItemPosition_fp)API.fp[i++]; - DLLAttachObjectRadius = (AttachObjectRadius_fp)API.fp[i++]; - DLLUnattachChildren = (UnattachChildren_fp)API.fp[i++]; - DLLUnattachChild = (UnattachChild_fp)API.fp[i++]; - DLLUnattachFromParent = (UnattachFromParent_fp)API.fp[i++]; - DLLvm_GetMagnitude = (vm_GetMagnitude_fp)API.fp[i++]; - DLLvm_MatrixMulVector = (vm_MatrixMulVector_fp)API.fp[i++]; - DLLphys_apply_force = (phys_apply_force_fp)API.fp[i++]; - DLLphys_apply_rot = (phys_apply_rot_fp)API.fp[i++]; - DLLvm_TransposeMatrix = (vm_TransposeMatrix_fp)API.fp[i++]; - DLLvm_CrossProduct = (vm_CrossProduct_fp)API.fp[i++]; - DLLvm_NormalizeVector = (vm_NormalizeVector_fp)API.fp[i++]; - DLLConvertEulerToAxisAmount = (ConvertEulerToAxisAmount_fp)API.fp[i++]; - DLLConvertAxisAmountToEuler = (ConvertAxisAmountToEuler_fp)API.fp[i++]; - DLLvm_GetMagnitudeFast = (vm_GetMagnitudeFast_fp)API.fp[i++]; - DLLvm_MakeIdentity = (vm_MakeIdentity_fp)API.fp[i++]; - DLLvm_MakeVectorZero = (vm_MakeVectorZero_fp)API.fp[i++]; - DLLvm_MakeAngleZero = (vm_MakeAngleZero_fp)API.fp[i++]; - DLLvm_VectorMulTMatrix = (vm_VectorMulTMatrix_fp)API.fp[i++]; - DLLvm_MatrixMul = (vm_MatrixMul_fp)API.fp[i++]; - DLLvm_MatrixMulTMatrix = (vm_MatrixMulTMatrix_fp)API.fp[i++]; - DLLvm_DotProduct = (vm_DotProduct_fp)API.fp[i++]; - DLLvm_SubVectors = (vm_SubVectors_fp)API.fp[i++]; - DLLvm_AddVectors = (vm_AddVectors_fp)API.fp[i++]; - DLLvm_AverageVector = (vm_AverageVector_fp)API.fp[i++]; - DLLvm_ScaleVector = (vm_ScaleVector_fp)API.fp[i++]; - DLLvm_ScaleAddVector = (vm_ScaleAddVector_fp)API.fp[i++]; - DLLvm_DivVector = (vm_DivVector_fp)API.fp[i++]; - DLLvm_NormalizeVectorFast = (vm_NormalizeVectorFast_fp)API.fp[i++]; - DLLvm_ClearMatrix = (vm_ClearMatrix_fp)API.fp[i++]; - DLLvm_AnglesToMatrix = (vm_AnglesToMatrix_fp)API.fp[i++]; - DLLvm_Orthogonalize = (vm_Orthogonalize_fp)API.fp[i++]; - DLLvm_VectorToMatrix = (vm_VectorToMatrix_fp)API.fp[i++]; - DLLvm_VectorAngleToMatrix = (vm_VectorAngleToMatrix_fp)API.fp[i++]; - DLLvm_SinCos = (vm_SinCos_fp)API.fp[i++]; - DLLvm_GetSlope = (vm_GetSlope_fp)API.fp[i++]; - DLLvm_GetPerp = (vm_GetPerp_fp)API.fp[i++]; - DLLvm_GetNormal = (vm_GetNormal_fp)API.fp[i++]; - DLLvm_VectorDistance = (vm_VectorDistance_fp)API.fp[i++]; - DLLvm_VectorDistanceQuick = (vm_VectorDistanceQuick_fp)API.fp[i++]; - DLLvm_GetNormalizedDir = (vm_GetNormalizedDir_fp)API.fp[i++]; - DLLvm_GetNormalizedDirFast = (vm_GetNormalizedDirFast_fp)API.fp[i++]; - DLLvm_ExtractAnglesFromMatrix = (vm_ExtractAnglesFromMatrix_fp)API.fp[i++]; - DLLvm_DeltaAngVec = (vm_DeltaAngVec_fp)API.fp[i++]; - DLLvm_DeltaAngVecNorm = (vm_DeltaAngVecNorm_fp)API.fp[i++]; - DLLvm_DistToPlane = (vm_DistToPlane_fp)API.fp[i++]; - DLLvm_CalcDetValue = (vm_CalcDetValue_fp)API.fp[i++]; - DLLvm_MakeInverseMatrix = (vm_MakeInverseMatrix_fp)API.fp[i++]; - DLLvm_SinCosToMatrix = (vm_SinCosToMatrix_fp)API.fp[i++]; - DLLvm_GetCentroid = (vm_GetCentroid_fp)API.fp[i++]; - DLLvm_MakeRandomVector = (vm_MakeRandomVector_fp)API.fp[i++]; - DLLvm_ComputeBoundingSphere = (vm_ComputeBoundingSphere_fp)API.fp[i++]; - DLLvm_GetCentroidFast = (vm_GetCentroidFast_fp)API.fp[i++]; - DLLRenderHUDGetTextLineWidth = (RenderHUDGetTextLineWidth_fp)API.fp[i++]; - DLLRenderHUDGetTextHeight = (RenderHUDGetTextHeight_fp)API.fp[i++]; - DLLStartFrame = (StartFrame_fp)API.fp[i++]; - DLLEndFrame = (EndFrame_fp)API.fp[i++]; - DLLResetFacings = (ResetFacings_fp)API.fp[i++]; - DLLGameRenderWorld = (GameRenderWorld_fp)API.fp[i++]; - DLLGetFrameParameters = (GetFrameParameters_fp)API.fp[i++]; - DLLrend_SetZBufferState = (rend_SetZBufferState_fp)API.fp[i++]; - DLLrend_SetLighting = (rend_SetLighting_fp)API.fp[i++]; - DLLrend_SetColorModel = (rend_SetColorModel_fp)API.fp[i++]; - DLLrend_SetTextureType = (rend_SetTextureType_fp)API.fp[i++]; - DLLrend_DrawPolygon = (rend_DrawPolygon_fp)API.fp[i++]; - DLLrend_SetMipState = (rend_SetMipState_fp)API.fp[i++]; - DLLrend_SetFogState = (rend_SetFogState_fp)API.fp[i++]; - DLLrend_SetFiltering = (rend_SetFiltering_fp)API.fp[i++]; - DLLrend_SetOverlayMap = (rend_SetOverlayMap_fp)API.fp[i++]; - DLLrend_SetOverlayType = (rend_SetOverlayType_fp)API.fp[i++]; - DLLrend_ClearScreen = (rend_ClearScreen_fp)API.fp[i++]; - DLLrend_SetPixel = (rend_SetPixel_fp)API.fp[i++]; - DLLrend_GetPixel = (rend_GetPixel_fp)API.fp[i++]; - DLLrend_FillCircle = (rend_FillCircle_fp)API.fp[i++]; - DLLrend_DrawCircle = (rend_DrawCircle_fp)API.fp[i++]; - DLLrend_SetAlphaType = (rend_SetAlphaType_fp)API.fp[i++]; - DLLrend_SetAlphaValue = (rend_SetAlphaValue_fp)API.fp[i++]; - DLLrend_SetWrapType = (rend_SetWrapType_fp)API.fp[i++]; - DLLrend_SetZBias = (rend_SetZBias_fp)API.fp[i++]; - DLLrend_SetZBufferWriteMask = (rend_SetZBufferWriteMask_fp)API.fp[i++]; - DLLrend_GetLFBLock = (rend_GetLFBLock_fp)API.fp[i++]; - DLLrend_ReleaseLFBLock = (rend_ReleaseLFBLock_fp)API.fp[i++]; - DLLrend_DrawLFBBitmap = (rend_DrawLFBBitmap_fp)API.fp[i++]; - DLLrend_DrawSpecialLine = (rend_DrawSpecialLine_fp)API.fp[i++]; - DLLfvi_FindIntersection = (fvi_FindIntersection_fp)API.fp[i++]; - DLLfvi_QuickDistFaceList = (fvi_QuickDistFaceList_fp)API.fp[i++]; - DLLfvi_QuickDistCellList = (fvi_QuickDistCellList_fp)API.fp[i++]; - DLLfvi_QuickDistObjectList = (fvi_QuickDistObjectList_fp)API.fp[i++]; - DLLfvi_QuickRoomCheck = (fvi_QuickRoomCheck_fp)API.fp[i++]; - DLLObjSetPos = (ObjSetPos_fp)API.fp[i++]; - DLLSetObjectDeadFlag = (SetObjectDeadFlag_fp)API.fp[i++]; - DLLtaunt_AreEnabled = (taunt_AreEnabled_fp)API.fp[i++]; - DLLtaunt_Enable = (taunt_Enable_fp)API.fp[i++]; - GetPlayerRankIndex = (GetPlayerRankIndex_fp)API.fp[i++]; - DLLVisEffectAllocate = (VisEffectAllocate_fp)API.fp[i++]; - DLLVisEffectFree = (VisEffectFree_fp)API.fp[i++]; - DLLVisEffectInitType = (VisEffectInitType_fp)API.fp[i++]; - DLLVisEffectCreate = (VisEffectCreate_fp)API.fp[i++]; - DLLVisEffectLink = (VisEffectLink_fp)API.fp[i++]; - DLLVisEffectUnlink = (VisEffectUnlink_fp)API.fp[i++]; - DLLVisEffectRelink = (VisEffectRelink_fp)API.fp[i++]; - DLLVisEffectDelete = (VisEffectDelete_fp)API.fp[i++]; - DLLCreateRandomSparks = (CreateRandomSparks_fp)API.fp[i++]; - DLLCreateRandomLineSparks = (CreateRandomLineSparks_fp)API.fp[i++]; - DLLVisEffectCreateControlled = (VisEffectCreateControlled_fp)API.fp[i++]; - DLLCreateRandomParticles = (CreateRandomParticles_fp)API.fp[i++]; - DLLAttachRandomNapalmEffectsToObject = (AttachRandomNapalmEffectsToObject_fp)API.fp[i++]; - DLLInitObjectScripts = (InitObjectScripts_fp)API.fp[i++]; - DLLg3_StartFrame = (g3_StartFrame_fp)API.fp[i++]; - DLLg3_EndFrame = (g3_EndFrame_fp)API.fp[i++]; - DLLg3_GetViewPosition = (g3_GetViewPosition_fp)API.fp[i++]; - DLLg3_GetViewMatrix = (g3_GetViewMatrix_fp)API.fp[i++]; - DLLg3_GetUnscaledMatrix = (g3_GetUnscaledMatrix_fp)API.fp[i++]; - DLLg3_StartInstanceMatrix = (g3_StartInstanceMatrix_fp)API.fp[i++]; - DLLg3_StartInstanceAngles = (g3_StartInstanceAngles_fp)API.fp[i++]; - DLLg3_DoneInstance = (g3_DoneInstance_fp)API.fp[i++]; - DLLg3_CheckNormalFacing = (g3_CheckNormalFacing_fp)API.fp[i++]; - DLLg3_RotatePoint = (g3_RotatePoint_fp)API.fp[i++]; - DLLg3_ProjectPoint = (g3_ProjectPoint_fp)API.fp[i++]; - DLLg3_CalcPointDepth = (g3_CalcPointDepth_fp)API.fp[i++]; - DLLg3_Point2Vec = (g3_Point2Vec_fp)API.fp[i++]; - DLLg3_CodePoint = (g3_CodePoint_fp)API.fp[i++]; - DLLg3_RotateDeltaX = (g3_RotateDeltaX_fp)API.fp[i++]; - DLLg3_RotateDeltaY = (g3_RotateDeltaY_fp)API.fp[i++]; - DLLg3_RotateDeltaZ = (g3_RotateDeltaZ_fp)API.fp[i++]; - DLLg3_RotateDeltaVec = (g3_RotateDeltaVec_fp)API.fp[i++]; - DLLg3_AddDeltaVec = (g3_AddDeltaVec_fp)API.fp[i++]; - DLLg3_DrawPoly = (g3_DrawPoly_fp)API.fp[i++]; - DLLg3_DrawSphere = (g3_DrawSphere_fp)API.fp[i++]; - DLLg3_CheckAndDrawPoly = (g3_CheckAndDrawPoly_fp)API.fp[i++]; - DLLg3_DrawLine = (g3_DrawLine_fp)API.fp[i++]; - DLLg3_DrawBitmap = (g3_DrawBitmap_fp)API.fp[i++]; - DLLg3_DrawRotatedBitmap = (g3_DrawRotatedBitmap_fp)API.fp[i++]; - DLLg3_DrawBox = (g3_DrawBox_fp)API.fp[i++]; - DLLg3_SetCustomClipPlane = (g3_SetCustomClipPlane_fp)API.fp[i++]; - DLLg3_SetFarClipZ = (g3_SetFarClipZ_fp)API.fp[i++]; - DLLg3_ClipPolygon = (g3_ClipPolygon_fp)API.fp[i++]; - DLLg3_FreeTempPoints = (g3_FreeTempPoints_fp)API.fp[i++]; - DLLg3_GetMatrixScale = (g3_GetMatrixScale_fp)API.fp[i++]; - DLLg3_SetTriangulationTest = (g3_SetTriangulationTest_fp)API.fp[i++]; - DLLg3_DrawSpecialLine = (g3_DrawSpecialLine_fp)API.fp[i++]; - DLLg3_DrawPlanarRotatedBitmap = (g3_DrawPlanarRotatedBitmap_fp)API.fp[i++]; - DLLPlayerStopSounds = (PlayerStopSounds_fp)API.fp[i++]; - DLLFindArg = (FindArg_fp)API.fp[i++]; - DLLFireWeaponFromObject = (FireWeaponFromObject_fp)API.fp[i++]; - DLLCreateAndFireWeapon = (CreateAndFireWeapon_fp)API.fp[i++]; - DLLSelectNextCameraView = (SelectNextCameraView_fp)API.fp[i++]; - Inven_Add = (dInven_Add_fp)API.fp[i++]; - Inven_AddObject = (dInven_AddObject_fp)API.fp[i++]; - Inven_AddCounterMeasure = (dInven_AddCounterMeasure_fp)API.fp[i++]; - Inven_Remove = (dInven_Remove_fp)API.fp[i++]; - Inven_Use = (dInven_Use_fp)API.fp[i++]; - Inven_UseObjHandle = (dInven_UseObjHandle_fp)API.fp[i++]; - Inven_Size = (dInven_Size_fp)API.fp[i++]; - Inven_CheckItem = (dInven_CheckItem_fp)API.fp[i++]; - Inven_Reset = (dInven_Reset_fp)API.fp[i++]; - Inven_ResetPos = (dInven_ResetPos_fp)API.fp[i++]; - Inven_NextPos = (dInven_NextPos_fp)API.fp[i++]; - Inven_PrevPos = (dInven_PrevPos_fp)API.fp[i++]; - Inven_GetPosTypeID = (dInven_GetPosTypeID_fp)API.fp[i++]; - Inven_GetAuxPosTypeID = (dInven_GetAuxPosTypeID_fp)API.fp[i++]; - Inven_GetPosDescription = (dInven_GetPosDescription_fp)API.fp[i++]; - Inven_GetPosIconName = (dInven_GetPosIconName_fp)API.fp[i++]; - Inven_GetPosName = (dInven_GetPosName_fp)API.fp[i++]; - Inven_GetPosInfo = (dInven_GetPosInfo_fp)API.fp[i++]; - Inven_GetPosCount = (dInven_GetPosCount_fp)API.fp[i++]; - Inven_AtBeginning = (dInven_AtBeginning_fp)API.fp[i++]; - Inven_AtEnd = (dInven_AtEnd_fp)API.fp[i++]; - Inven_GotoPos = (dInven_GotoPos_fp)API.fp[i++]; - Inven_GotoPosTypeID = (dInven_GotoPosTypeID_fp)API.fp[i++]; - Inven_UsePos = (dInven_UsePos_fp)API.fp[i++]; - Inven_GetPos = (dInven_GetPos_fp)API.fp[i++]; - Inven_ValidatePos = (dInven_ValidatePos_fp)API.fp[i++]; - Inven_IsSelectable = (dInven_IsSelectable_fp)API.fp[i++]; - Inven_IsUsable = (dInven_IsUsable_fp)API.fp[i++]; - Inven_GetTypeIDCount = (dInven_GetTypeIDCount_fp)API.fp[i++]; - Inven_FindPos = (dInven_FindPos_fp)API.fp[i++]; - Inven_GetInventoryItemList = (dInven_GetInventoryItemList_fp)API.fp[i++]; + // Note, these must match the ordering on the D3 side (Game2DLL.cpp) + DLLAddHUDMessage = (AddHUDMessage_fp)API.fp[0]; + DLLMultiSendClientExecuteDLL = (MultiSendClientExecuteDLL_fp)API.fp[1]; + DLLFindObjectIDName = (FindObjectIDName_fp)API.fp[2]; + DLLGetGoalRoomForTeam = (GetGoalRoomForTeam_fp)API.fp[3]; + DLLSetMaxTeams = (SetMaxTeams_fp)API.fp[4]; + DLLComputeRoomCenter = (ComputeRoomCenter_fp)API.fp[5]; + DLLObjCreate = (ObjCreate_fp)API.fp[6]; + DLLMultiSendObject = (MultiSendObject_fp)API.fp[7]; + DLLMultiPaintGoalRooms = (MultiPaintGoalRooms_fp)API.fp[8]; + DLLMultiSendSpecialPacket = (MultiSendSpecialPacket_fp)API.fp[9]; + DLLIncTeamScore = (IncTeamScore_fp)API.fp[10]; + DLLDebug_ConsolePrintf = (Debug_ConsolePrintf_fp)API.fp[11]; + DLLObjSetPosNoMark = (ObjSetPosNoMark_fp)API.fp[12]; + DLLInvCheckItem = (InvCheckItem_fp)API.fp[13]; + DLLInvAddTypeID = (InvAddTypeID_fp)API.fp[14]; + DLLInvRemove = (InvRemove_fp)API.fp[15]; + DLLPlayerSetLighting = (PlayerSetLighting_fp)API.fp[16]; + DLLFindShipName = (FindShipName_fp)API.fp[17]; + DLLPlayerSetRotatingBall = (PlayerSetRotatingBall_fp)API.fp[18]; + DLLPlayerChangeShip = (PlayerChangeShip_fp)API.fp[19]; + DLLInvGetTypeIDCount = (InvGetTypeIDCount_fp)API.fp[20]; + DLLPlay3dSound = (D3W_Play3dSound_fp)API.fp[21]; + DLLFindSoundName = (FindSoundName_fp)API.fp[22]; + DLLSpewCreate = (SpewCreate_fp)API.fp[23]; + DLLSpewClearEvent = (SpewClearEvent_fp)API.fp[24]; + DLLbm_AllocLoadFileBitmap = (bm_AllocLoadFileBitmap_fp)API.fp[25]; + DLLbm_FreeBitmap = (bm_FreeBitmap_fp)API.fp[26]; + DLLrend_DrawScaledBitmap = (rend_DrawScaledBitmap_fp)API.fp[27]; + DLLgrtext_Printf = (grtext_Printf_fp)API.fp[28]; + DLLgrtext_Flush = (grtext_Flush_fp)API.fp[29]; + DLLgrtext_SetColor = (grtext_SetColor_fp)API.fp[30]; + DLLgrtext_SetFancyColor = (grtext_SetFancyColor_fp)API.fp[31]; + DLLgrtext_SetAlpha = (grtext_SetAlpha_fp)API.fp[32]; + DLLgrtext_GetAlpha = (grtext_GetAlpha_fp)API.fp[33]; + DLLgrtext_SetFont = (grtext_SetFont_fp)API.fp[34]; + DLLgrtext_GetFont = (grtext_GetFont_fp)API.fp[35]; + DLLgrtext_GetTextLineWidth = (grtext_GetTextLineWidth_fp)API.fp[36]; + DLLgrfont_GetHeight = (grfont_GetHeight_fp)API.fp[37]; + DLLgrtext_CenteredPrintf = (grtext_CenteredPrintf_fp)API.fp[38]; + DLLAddColoredHUDMessage = (AddColoredHUDMessage_fp)API.fp[39]; + DLLbm_w = (bm_w_fp)API.fp[40]; + DLLbm_h = (bm_h_fp)API.fp[41]; + DLLrend_DrawSimpleBitmap = (rend_DrawSimpleBitmap_fp)API.fp[42]; + DLLMultiClientSendSpecialPacket = (MultiClientSendSpecialPacket_fp)API.fp[43]; + DLLAddBlinkingHUDMessage = (AddBlinkingHUDMessage_fp)API.fp[44]; + DLLInvReset = (InvReset_fp)API.fp[45]; + DLLAddHUDItem = (AddHUDItem_fp)API.fp[46]; + DLLRenderHUDQuad = (RenderHUDQuad_fp)API.fp[47]; + DLLRenderHUDText = (RenderHUDText_fp)API.fp[48]; + DLLMultiEndLevel = (MultiEndLevel_fp)API.fp[49]; + DLLbm_data = (bm_data_fp)API.fp[50]; + DLLbm_AllocBitmap = (bm_AllocBitmap_fp)API.fp[51]; + DLLrend_FillRect = (rend_FillRect_fp)API.fp[52]; + DLLbm_CreateChunkedBitmap = (bm_CreateChunkedBitmap_fp)API.fp[53]; + DLLbm_DestroyChunkedBitmap = (bm_DestroyChunkedBitmap_fp)API.fp[54]; + DLLrend_DrawChunkedBitmap = (rend_DrawChunkedBitmap_fp)API.fp[55]; + DLLrend_DrawScaledChunkedBitmap = (rend_DrawScaledChunkedBitmap_fp)API.fp[56]; + DLLOpenCFILE = (OpenCFILE_fp)API.fp[57]; + DLLcfclose = (cfclose_fp)API.fp[58]; + DLLcfeof = (cfeof_fp)API.fp[59]; + DLLcfexist = (cfexist_fp)API.fp[60]; + DLLcf_ReadBytes = (cf_ReadBytes_fp)API.fp[61]; + DLLcf_ReadInt = (cf_ReadInt_fp)API.fp[62]; + DLLcf_ReadShort = (cf_ReadShort_fp)API.fp[63]; + DLLcf_ReadByte = (cf_ReadByte_fp)API.fp[64]; + DLLcf_ReadFloat = (cf_ReadFloat_fp)API.fp[65]; + DLLcf_ReadDouble = (cf_ReadDouble_fp)API.fp[66]; + DLLcf_ReadString = (cf_ReadString_fp)API.fp[67]; + DLLcf_WriteBytes = (cf_WriteBytes_fp)API.fp[68]; + DLLcf_WriteString = (cf_WriteString_fp)API.fp[69]; + DLLcf_WriteInt = (cf_WriteInt_fp)API.fp[70]; + DLLcf_WriteShort = (cf_WriteShort_fp)API.fp[71]; + DLLcf_WriteByte = (cf_WriteByte_fp)API.fp[72]; + DLLcf_WriteFloat = (cf_WriteFloat_fp)API.fp[73]; + DLLcf_WriteDouble = (cf_WriteDouble_fp)API.fp[74]; + DLLcf_CopyFile = (cf_CopyFile_fp)API.fp[75]; + DLLcf_Diff = (cf_Diff_fp)API.fp[76]; + DLLMultiDisconnectPlayer = (MultiDisconnectPlayer_fp)API.fp[77]; + DLLnw_GetNumbersFromHostAddress = (nw_GetNumbersFromHostAddress_fp)API.fp[78]; + DLLnw_GetThisIP = (nw_GetThisIP_fp)API.fp[79]; + DLLCreateStringTable = (CreateStringTable_fp)API.fp[80]; + DLLDestroyStringTable = (DestroyStringTable_fp)API.fp[81]; + DLLRenderHUDTextFlags = (RenderHUDTextFlags_fp)API.fp[82]; + DLLPlayerSpewInventory = (PlayerSpewInventory_fp)API.fp[83]; + DLLPlayerSetHUDNameFOV = (PlayerSetHUDNameFOV_fp)API.fp[84]; + DLLGetUltimateParentForObject = (GetUltimateParentForObject_fp)API.fp[85]; + DLLSetObjectDeadFlagRaw = (SetObjectDeadFlagRaw_fp)API.fp[86]; + FatalError = (DLLFatalError_fp)API.fp[87]; + DLLassert = (assertdll_fp)API.fp[88]; + DLLMultiMatchWeapon = (MultiMatchWeapon_fp)API.fp[89]; + DLLMultiGetMatchChecksum = (MultiGetMatchChecksum_fp)API.fp[90]; + DLLFindWeaponName = (FindWeaponName_fp)API.fp[91]; + DLLcf_OpenLibrary = (cf_OpenLibrary_fp)API.fp[92]; + DLLcf_CloseLibrary = (cf_CloseLibrary_fp)API.fp[93]; + DLLMultiSendRequestToObserve = (MultiSendRequestToObserve_fp)API.fp[94]; + DLLFindTextureName = (FindTextureName_fp)API.fp[95]; + DLLApplyDamageToPlayer = (ApplyDamageToPlayer_fp)API.fp[96]; + DLLMultiMatchGeneric = (MultiMatchGeneric_fp)API.fp[97]; + DLLSetUITextItemText = (SetUITextItemText_fp)API.fp[98]; + DLLNewUIWindowCreate = (NewUIWindowCreate_fp)API.fp[99]; + DLLNewUIWindowDestroy = (NewUIWindowDestroy_fp)API.fp[100]; + DLLNewUIWindowOpen = (NewUIWindowOpen_fp)API.fp[101]; + DLLNewUIWindowClose = (NewUIWindowClose_fp)API.fp[102]; + DLLTextCreate = (TextCreate_fp)API.fp[103]; + DLLEditCreate = (EditCreate_fp)API.fp[104]; + DLLButtonCreate = (ButtonCreate_fp)API.fp[105]; + DLLListCreate = (ListCreate_fp)API.fp[106]; + DLLListRemoveAll = (ListRemoveAll_fp)API.fp[107]; + DLLListAddItem = (ListAddItem_fp)API.fp[108]; + DLLListRemoveItem = (ListRemoveItem_fp)API.fp[109]; + DLLListSelectItem = (ListSelectItem_fp)API.fp[110]; + DLLListGetItem = (ListGetItem_fp)API.fp[111]; + DLLListGetSelectedIndex = (ListGetSelectedIndex_fp)API.fp[112]; + DLLEditSetText = (EditSetText_fp)API.fp[113]; + DLLEditGetText = (EditGetText_fp)API.fp[114]; + DLLDoUI = (DoUI_fp)API.fp[115]; + DLLDoMessageBox = (DoMessageBox_fp)API.fp[116]; + DLLDescentDefer = (DescentDefer_fp)API.fp[117]; + DLLNewUIGameWindowCreate = (NewUIGameWindowCreate_fp)API.fp[118]; + DLLNewUIGameWindowDestroy = (NewUIGameWindowDestroy_fp)API.fp[119]; + DLLNewUIGameWindowOpen = (NewUIGameWindowOpen_fp)API.fp[120]; + DLLNewUIGameWindowClose = (NewUIGameWindowClose_fp)API.fp[121]; + DLLHotSpotCreate = (HotSpotCreate_fp)API.fp[122]; + DLLPollUI = (PollUI_fp)API.fp[123]; + DLLRemoveUITextItem = (RemoveUITextItem_fp)API.fp[124]; + DLLCreateNewUITextItem = (CreateNewUITextItem_fp)API.fp[125]; + DLLUIConsoleGadgetCreate = (UIConsoleGadgetCreate_fp)API.fp[126]; + DLLUIConsoleGadgetputs = (UIConsoleGadgetputs_fp)API.fp[127]; + DLLNewUIWindowSetFocusOnEditGadget = (NewUIWindowSetFocusOnEditGadget_fp)API.fp[128]; + DLLOldEditCreate = (OldEditCreate_fp)API.fp[129]; + DLLOldListCreate = (OldListCreate_fp)API.fp[130]; + DLLOldListRemoveAll = (OldListRemoveAll_fp)API.fp[131]; + DLLOldListAddItem = (OldListAddItem_fp)API.fp[132]; + DLLOldListRemoveItem = (OldListRemoveItem_fp)API.fp[133]; + DLLOldListSelectItem = (OldListSelectItem_fp)API.fp[134]; + DLLOldListGetItem = (OldListGetItem_fp)API.fp[135]; + DLLOldListGetSelectedIndex = (OldListGetSelectedIndex_fp)API.fp[136]; + DLLOldEditSetText = (OldEditSetText_fp)API.fp[137]; + DLLOldEditGetText = (OldEditGetText_fp)API.fp[138]; + DLLToggleUICallback = (ToggleUICallback_fp)API.fp[139]; + DLLSetOldEditBufferLen = (SetOldEditBufferLen_fp)API.fp[140]; + DLLNewUIWindowLoadBackgroundImage = (NewUIWindowLoadBackgroundImage_fp)API.fp[141]; + DLLDeleteUIItem = (DeleteUIItem_fp)API.fp[142]; + DLLHotSpotSetStates = (HotSpotSetStates_fp)API.fp[143]; + DLLSetUICallback = (SetUICallback_fp)API.fp[144]; + DLLGetUICallback = (RetrieveUICallback_fp)API.fp[145]; + DLLSuspendControls = (SuspendControls_fp)API.fp[146]; + DLLResumeControls = (ResumeControls_fp)API.fp[147]; + DLLShowCursor = (ui_ShowCursor_fp)API.fp[148]; + DLLHideCursor = (ui_HideCursor_fp)API.fp[149]; + DLLGameFrame = (GameFrame_fp)API.fp[150]; + DPrintf = (DPrintf_fp)API.fp[151]; + DLLddio_MakePath = (ddio_MakePath_fp)API.fp[152]; + DLLddio_SplitPath = (ddio_SplitPath_fp)API.fp[153]; + DLLPlay2dSound = (Play2dSound_fp)API.fp[154]; + DLLTouchSound = (TouchSound_fp)API.fp[155]; + DatabaseRead1 = (dDatabaseRead_fp1)API.fp[156]; + DatabaseRead2 = (dDatabaseRead_fp2)API.fp[157]; + DatabaseRead3 = (dDatabaseRead_fp3)API.fp[158]; + DatabaseWrite1 = (dDatabaseWrite_fp1)API.fp[159]; + DatabaseWrite2 = (dDatabaseWrite_fp2)API.fp[160]; + DLLAttachObject = (AttachObject_fp)API.fp[161]; + DLLObjGet = (ObjGet_fp)API.fp[162]; + DLLListSetSelectedIndex = (ListSetSelectedIndex_fp)API.fp[163]; + DLLRemoveUIBmpItem = (RemoveUIBmpItem_fp)API.fp[164]; + DLLCreateNewUIBmpItem = (CreateNewUIBmpItem_fp)API.fp[165]; + DLLGetUIItemWidth = (GetUIItemWidth_fp)API.fp[166]; + DLLGetUIItemHeight = (GetUIItemHeight_fp)API.fp[167]; + DLLSliderCreate = (SliderCreate_fp)API.fp[168]; + DLLSliderSetRange = (SliderSetRange_fp)API.fp[169]; + DLLSliderGetRange = (SliderGetRange_fp)API.fp[170]; + DLLSliderSetPos = (SliderSetPos_fp)API.fp[171]; + DLLSliderGetPos = (SliderGetPos_fp)API.fp[172]; + DLLSliderSetSelectChangeCallback = (SliderSetSelectChangeCallback_fp)API.fp[173]; + DLLSliderSetSelectChangeCallbackWData = (SliderSetSelectChangeCallbackWData_fp)API.fp[174]; + DLLTextSetTitle = (TextSetTitle_fp)API.fp[175]; + DLLPPic_GetPilot = (PPic_GetPilot_fp)API.fp[176]; + DLLPPic_GetBitmapHandle = (PPic_GetBitmapHandle_fp)API.fp[177]; + DLLrend_DrawLine = (rend_DrawLine_fp)API.fp[178]; + DLLrend_SetFlatColor = (rend_SetFlatColor_fp)API.fp[179]; + DLLMultiSetLogoState = (MultiSetLogoState_fp)API.fp[180]; + DLLPlayerGetRandomStartPosition = (PlayerGetRandomStartPosition_fp)API.fp[181]; + DLLInitPlayerNewShip = (InitPlayerNewShip_fp)API.fp[182]; + DLLCheckBoxCreate = (CheckBoxCreate_fp)API.fp[183]; + DLLCheckBoxSetCheck = (CheckBoxSetCheck_fp)API.fp[184]; + DLLCheckBoxIsChecked = (CheckBoxIsChecked_fp)API.fp[185]; + DLLnw_GetHostAddressFromNumbers = (nw_GetHostAddressFromNumbers_fp)API.fp[186]; + TableFilesClear = (TableFilesClear_fp)API.fp[187]; + TableFileAdd = (TableFileAdd_fp)API.fp[188]; + DLLDebugBreak_callback_stop = (DebugBreak_callback_stop_fp)API.fp[189]; + DLLDebugBreak_callback_resume = (DebugBreak_callback_resume_fp)API.fp[190]; + DLLInt3MessageBox = (Int3MessageBox_fp)API.fp[191]; + DLLGetUIItemPosition = (GetUIItemPosition_fp)API.fp[192]; + DLLAttachObjectRadius = (AttachObjectRadius_fp)API.fp[193]; + DLLUnattachChildren = (UnattachChildren_fp)API.fp[194]; + DLLUnattachChild = (UnattachChild_fp)API.fp[195]; + DLLUnattachFromParent = (UnattachFromParent_fp)API.fp[196]; + DLLvm_GetMagnitude = (vm_GetMagnitude_fp)API.fp[197]; + DLLvm_MatrixMulVector = (vm_MatrixMulVector_fp)API.fp[198]; + DLLphys_apply_force = (phys_apply_force_fp)API.fp[199]; + DLLphys_apply_rot = (phys_apply_rot_fp)API.fp[200]; + DLLvm_TransposeMatrix = (vm_TransposeMatrix_fp)API.fp[201]; + DLLvm_CrossProduct = (vm_CrossProduct_fp)API.fp[202]; + DLLvm_NormalizeVector = (vm_NormalizeVector_fp)API.fp[203]; + DLLConvertEulerToAxisAmount = (ConvertEulerToAxisAmount_fp)API.fp[204]; + DLLConvertAxisAmountToEuler = (ConvertAxisAmountToEuler_fp)API.fp[205]; + DLLvm_GetMagnitudeFast = (vm_GetMagnitudeFast_fp)API.fp[206]; + DLLvm_MakeIdentity = (vm_MakeIdentity_fp)API.fp[207]; + DLLvm_MakeVectorZero = (vm_MakeVectorZero_fp)API.fp[208]; + DLLvm_MakeAngleZero = (vm_MakeAngleZero_fp)API.fp[209]; + DLLvm_VectorMulTMatrix = (vm_VectorMulTMatrix_fp)API.fp[210]; + DLLvm_MatrixMul = (vm_MatrixMul_fp)API.fp[211]; + DLLvm_MatrixMulTMatrix = (vm_MatrixMulTMatrix_fp)API.fp[212]; + DLLvm_DotProduct = (vm_DotProduct_fp)API.fp[213]; + DLLvm_SubVectors = (vm_SubVectors_fp)API.fp[214]; + DLLvm_AddVectors = (vm_AddVectors_fp)API.fp[215]; + DLLvm_AverageVector = (vm_AverageVector_fp)API.fp[216]; + DLLvm_ScaleVector = (vm_ScaleVector_fp)API.fp[217]; + DLLvm_ScaleAddVector = (vm_ScaleAddVector_fp)API.fp[218]; + DLLvm_DivVector = (vm_DivVector_fp)API.fp[219]; + DLLvm_NormalizeVectorFast = (vm_NormalizeVectorFast_fp)API.fp[220]; + DLLvm_ClearMatrix = (vm_ClearMatrix_fp)API.fp[221]; + DLLvm_AnglesToMatrix = (vm_AnglesToMatrix_fp)API.fp[222]; + DLLvm_Orthogonalize = (vm_Orthogonalize_fp)API.fp[223]; + DLLvm_VectorToMatrix = (vm_VectorToMatrix_fp)API.fp[224]; + DLLvm_VectorAngleToMatrix = (vm_VectorAngleToMatrix_fp)API.fp[225]; + DLLvm_SinCos = (vm_SinCos_fp)API.fp[226]; + DLLvm_GetSlope = (vm_GetSlope_fp)API.fp[227]; + DLLvm_GetPerp = (vm_GetPerp_fp)API.fp[228]; + DLLvm_GetNormal = (vm_GetNormal_fp)API.fp[229]; + DLLvm_VectorDistance = (vm_VectorDistance_fp)API.fp[230]; + DLLvm_VectorDistanceQuick = (vm_VectorDistanceQuick_fp)API.fp[231]; + DLLvm_GetNormalizedDir = (vm_GetNormalizedDir_fp)API.fp[232]; + DLLvm_GetNormalizedDirFast = (vm_GetNormalizedDirFast_fp)API.fp[233]; + DLLvm_ExtractAnglesFromMatrix = (vm_ExtractAnglesFromMatrix_fp)API.fp[234]; + DLLvm_DeltaAngVec = (vm_DeltaAngVec_fp)API.fp[235]; + DLLvm_DeltaAngVecNorm = (vm_DeltaAngVecNorm_fp)API.fp[236]; + DLLvm_DistToPlane = (vm_DistToPlane_fp)API.fp[237]; + DLLvm_CalcDetValue = (vm_CalcDetValue_fp)API.fp[238]; + DLLvm_MakeInverseMatrix = (vm_MakeInverseMatrix_fp)API.fp[239]; + DLLvm_SinCosToMatrix = (vm_SinCosToMatrix_fp)API.fp[240]; + DLLvm_GetCentroid = (vm_GetCentroid_fp)API.fp[241]; + DLLvm_MakeRandomVector = (vm_MakeRandomVector_fp)API.fp[242]; + DLLvm_ComputeBoundingSphere = (vm_ComputeBoundingSphere_fp)API.fp[243]; + DLLvm_GetCentroidFast = (vm_GetCentroidFast_fp)API.fp[244]; + DLLRenderHUDGetTextLineWidth = (RenderHUDGetTextLineWidth_fp)API.fp[245]; + DLLRenderHUDGetTextHeight = (RenderHUDGetTextHeight_fp)API.fp[246]; + DLLStartFrame = (StartFrame_fp)API.fp[247]; + DLLEndFrame = (EndFrame_fp)API.fp[248]; + DLLResetFacings = (ResetFacings_fp)API.fp[249]; + DLLGameRenderWorld = (GameRenderWorld_fp)API.fp[250]; + DLLGetFrameParameters = (GetFrameParameters_fp)API.fp[251]; + DLLrend_SetZBufferState = (rend_SetZBufferState_fp)API.fp[252]; + DLLrend_SetLighting = (rend_SetLighting_fp)API.fp[253]; + DLLrend_SetColorModel = (rend_SetColorModel_fp)API.fp[254]; + DLLrend_SetTextureType = (rend_SetTextureType_fp)API.fp[255]; + DLLrend_DrawPolygon = (rend_DrawPolygon_fp)API.fp[256]; + DLLrend_SetMipState = (rend_SetMipState_fp)API.fp[257]; + DLLrend_SetFogState = (rend_SetFogState_fp)API.fp[258]; + DLLrend_SetFiltering = (rend_SetFiltering_fp)API.fp[259]; + DLLrend_SetOverlayMap = (rend_SetOverlayMap_fp)API.fp[260]; + DLLrend_SetOverlayType = (rend_SetOverlayType_fp)API.fp[261]; + DLLrend_ClearScreen = (rend_ClearScreen_fp)API.fp[262]; + DLLrend_SetPixel = (rend_SetPixel_fp)API.fp[263]; + DLLrend_GetPixel = (rend_GetPixel_fp)API.fp[264]; + DLLrend_FillCircle = (rend_FillCircle_fp)API.fp[265]; + DLLrend_DrawCircle = (rend_DrawCircle_fp)API.fp[266]; + DLLrend_SetAlphaType = (rend_SetAlphaType_fp)API.fp[267]; + DLLrend_SetAlphaValue = (rend_SetAlphaValue_fp)API.fp[268]; + DLLrend_SetWrapType = (rend_SetWrapType_fp)API.fp[269]; + DLLrend_SetZBias = (rend_SetZBias_fp)API.fp[270]; + DLLrend_SetZBufferWriteMask = (rend_SetZBufferWriteMask_fp)API.fp[271]; + DLLrend_GetLFBLock = (rend_GetLFBLock_fp)API.fp[272]; + DLLrend_ReleaseLFBLock = (rend_ReleaseLFBLock_fp)API.fp[273]; + DLLrend_DrawLFBBitmap = (rend_DrawLFBBitmap_fp)API.fp[274]; + DLLrend_DrawSpecialLine = (rend_DrawSpecialLine_fp)API.fp[275]; + DLLfvi_FindIntersection = (fvi_FindIntersection_fp)API.fp[276]; + DLLfvi_QuickDistFaceList = (fvi_QuickDistFaceList_fp)API.fp[277]; + DLLfvi_QuickDistCellList = (fvi_QuickDistCellList_fp)API.fp[278]; + DLLfvi_QuickDistObjectList = (fvi_QuickDistObjectList_fp)API.fp[279]; + DLLfvi_QuickRoomCheck = (fvi_QuickRoomCheck_fp)API.fp[280]; + DLLObjSetPos = (ObjSetPos_fp)API.fp[281]; + DLLSetObjectDeadFlag = (SetObjectDeadFlag_fp)API.fp[282]; + DLLtaunt_AreEnabled = (taunt_AreEnabled_fp)API.fp[283]; + DLLtaunt_Enable = (taunt_Enable_fp)API.fp[284]; + GetPlayerRankIndex = (GetPlayerRankIndex_fp)API.fp[285]; + DLLVisEffectAllocate = (VisEffectAllocate_fp)API.fp[286]; + DLLVisEffectFree = (VisEffectFree_fp)API.fp[287]; + DLLVisEffectInitType = (VisEffectInitType_fp)API.fp[288]; + DLLVisEffectCreate = (VisEffectCreate_fp)API.fp[289]; + DLLVisEffectLink = (VisEffectLink_fp)API.fp[290]; + DLLVisEffectUnlink = (VisEffectUnlink_fp)API.fp[291]; + DLLVisEffectRelink = (VisEffectRelink_fp)API.fp[292]; + DLLVisEffectDelete = (VisEffectDelete_fp)API.fp[293]; + DLLCreateRandomSparks = (CreateRandomSparks_fp)API.fp[294]; + DLLCreateRandomLineSparks = (CreateRandomLineSparks_fp)API.fp[295]; + DLLVisEffectCreateControlled = (VisEffectCreateControlled_fp)API.fp[296]; + DLLCreateRandomParticles = (CreateRandomParticles_fp)API.fp[297]; + DLLAttachRandomNapalmEffectsToObject = (AttachRandomNapalmEffectsToObject_fp)API.fp[298]; + DLLInitObjectScripts = (InitObjectScripts_fp)API.fp[299]; + DLLg3_StartFrame = (g3_StartFrame_fp)API.fp[300]; + DLLg3_EndFrame = (g3_EndFrame_fp)API.fp[301]; + DLLg3_GetViewPosition = (g3_GetViewPosition_fp)API.fp[302]; + DLLg3_GetViewMatrix = (g3_GetViewMatrix_fp)API.fp[303]; + DLLg3_GetUnscaledMatrix = (g3_GetUnscaledMatrix_fp)API.fp[304]; + DLLg3_StartInstanceMatrix = (g3_StartInstanceMatrix_fp)API.fp[305]; + DLLg3_StartInstanceAngles = (g3_StartInstanceAngles_fp)API.fp[306]; + DLLg3_DoneInstance = (g3_DoneInstance_fp)API.fp[307]; + DLLg3_CheckNormalFacing = (g3_CheckNormalFacing_fp)API.fp[308]; + DLLg3_RotatePoint = (g3_RotatePoint_fp)API.fp[309]; + DLLg3_ProjectPoint = (g3_ProjectPoint_fp)API.fp[310]; + DLLg3_CalcPointDepth = (g3_CalcPointDepth_fp)API.fp[311]; + DLLg3_Point2Vec = (g3_Point2Vec_fp)API.fp[312]; + DLLg3_CodePoint = (g3_CodePoint_fp)API.fp[313]; + DLLg3_RotateDeltaX = (g3_RotateDeltaX_fp)API.fp[314]; + DLLg3_RotateDeltaY = (g3_RotateDeltaY_fp)API.fp[315]; + DLLg3_RotateDeltaZ = (g3_RotateDeltaZ_fp)API.fp[316]; + DLLg3_RotateDeltaVec = (g3_RotateDeltaVec_fp)API.fp[317]; + DLLg3_AddDeltaVec = (g3_AddDeltaVec_fp)API.fp[318]; + DLLg3_DrawPoly = (g3_DrawPoly_fp)API.fp[319]; + DLLg3_DrawSphere = (g3_DrawSphere_fp)API.fp[320]; + DLLg3_CheckAndDrawPoly = (g3_CheckAndDrawPoly_fp)API.fp[321]; + DLLg3_DrawLine = (g3_DrawLine_fp)API.fp[322]; + DLLg3_DrawBitmap = (g3_DrawBitmap_fp)API.fp[323]; + DLLg3_DrawRotatedBitmap = (g3_DrawRotatedBitmap_fp)API.fp[324]; + DLLg3_DrawBox = (g3_DrawBox_fp)API.fp[325]; + DLLg3_SetCustomClipPlane = (g3_SetCustomClipPlane_fp)API.fp[326]; + DLLg3_SetFarClipZ = (g3_SetFarClipZ_fp)API.fp[327]; + DLLg3_ClipPolygon = (g3_ClipPolygon_fp)API.fp[328]; + DLLg3_FreeTempPoints = (g3_FreeTempPoints_fp)API.fp[329]; + DLLg3_GetMatrixScale = (g3_GetMatrixScale_fp)API.fp[330]; + DLLg3_SetTriangulationTest = (g3_SetTriangulationTest_fp)API.fp[331]; + DLLg3_DrawSpecialLine = (g3_DrawSpecialLine_fp)API.fp[332]; + DLLg3_DrawPlanarRotatedBitmap = (g3_DrawPlanarRotatedBitmap_fp)API.fp[333]; + DLLPlayerStopSounds = (PlayerStopSounds_fp)API.fp[334]; + DLLFindArg = (FindArg_fp)API.fp[335]; + DLLFireWeaponFromObject = (FireWeaponFromObject_fp)API.fp[336]; + DLLCreateAndFireWeapon = (CreateAndFireWeapon_fp)API.fp[337]; + DLLSelectNextCameraView = (SelectNextCameraView_fp)API.fp[338]; + Inven_Add = (dInven_Add_fp)API.fp[339]; + Inven_AddObject = (dInven_AddObject_fp)API.fp[340]; + Inven_AddCounterMeasure = (dInven_AddCounterMeasure_fp)API.fp[341]; + Inven_Remove = (dInven_Remove_fp)API.fp[342]; + Inven_Use = (dInven_Use_fp)API.fp[343]; + Inven_UseObjHandle = (dInven_UseObjHandle_fp)API.fp[344]; + Inven_Size = (dInven_Size_fp)API.fp[345]; + Inven_CheckItem = (dInven_CheckItem_fp)API.fp[346]; + Inven_Reset = (dInven_Reset_fp)API.fp[347]; + Inven_ResetPos = (dInven_ResetPos_fp)API.fp[348]; + Inven_NextPos = (dInven_NextPos_fp)API.fp[349]; + Inven_PrevPos = (dInven_PrevPos_fp)API.fp[350]; + Inven_GetPosTypeID = (dInven_GetPosTypeID_fp)API.fp[351]; + Inven_GetAuxPosTypeID = (dInven_GetAuxPosTypeID_fp)API.fp[352]; + Inven_GetPosDescription = (dInven_GetPosDescription_fp)API.fp[353]; + Inven_GetPosIconName = (dInven_GetPosIconName_fp)API.fp[354]; + Inven_GetPosName = (dInven_GetPosName_fp)API.fp[355]; + Inven_GetPosInfo = (dInven_GetPosInfo_fp)API.fp[356]; + Inven_GetPosCount = (dInven_GetPosCount_fp)API.fp[357]; + Inven_AtBeginning = (dInven_AtBeginning_fp)API.fp[358]; + Inven_AtEnd = (dInven_AtEnd_fp)API.fp[359]; + Inven_GotoPos = (dInven_GotoPos_fp)API.fp[360]; + Inven_GotoPosTypeID = (dInven_GotoPosTypeID_fp)API.fp[361]; + Inven_UsePos = (dInven_UsePos_fp)API.fp[362]; + Inven_GetPos = (dInven_GetPos_fp)API.fp[363]; + Inven_ValidatePos = (dInven_ValidatePos_fp)API.fp[364]; + Inven_IsSelectable = (dInven_IsSelectable_fp)API.fp[365]; + Inven_IsUsable = (dInven_IsUsable_fp)API.fp[366]; + Inven_GetTypeIDCount = (dInven_GetTypeIDCount_fp)API.fp[367]; + Inven_FindPos = (dInven_FindPos_fp)API.fp[368]; + Inven_GetInventoryItemList = (dInven_GetInventoryItemList_fp)API.fp[369]; // Do variables Player_num = (int *)API.vp[0];