#pragma once

#include <shared/vcpp/AfxAddr.h>


typedef AfxAddr HlAddress_t;
#define HL_ADDR_GET(name) AFXADDR_GET(name)
#define HL_ADDR_SET(name,value) AFXADDR_SET(name,value)

AFXADDR_DECL(pEngfuncs)
AFXADDR_DECL(ppmove)
AFXADDR_DECL(pstudio)
AFXADDR_DECL(engine_ClientFunctionTable)
AFXADDR_DECL(CL_Disconnect)
AFXADDR_DECL(CL_EmitEntities)
AFXADDR_DECL(CL_ParseServerMessage_CmdRead)
AFXADDR_DECL(CL_ParseServerMessage_CmdRead_DSZ)
AFXADDR_DECL(p_cmd_functions)
AFXADDR_DECL(S_Update_)
AFXADDR_DECL(_Host_Frame)
AFXADDR_DECL(Host_Init)
AFXADDR_DECL(Mod_LeafPVS)
AFXADDR_DECL(R_DrawEntitiesOnList_In)
AFXADDR_DECL(R_DrawEntitiesOnList_Out)
AFXADDR_DECL(R_DrawParticles)
AFXADDR_DECL(R_DrawSkyBox_Begin)
AFXADDR_DECL(R_DrawSkyBox_End)
AFXADDR_DECL(R_DrawViewModel)
AFXADDR_DECL(R_PolyBlend)
AFXADDR_DECL(R_PushDlights)
AFXADDR_DECL(R_RenderView)
AFXADDR_DECL(S_StartDynamicSound)
AFXADDR_DECL(S_PaintChannels)
AFXADDR_DECL(S_TransferPaintBuffer)
AFXADDR_DECL(UnkDrawHudIn)
AFXADDR_DECL(UnkDrawHudInCall)
AFXADDR_DECL(UnkDrawHudInContinue)
AFXADDR_DECL(UnkDrawHudOut)
AFXADDR_DECL(UnkDrawHudOutCall)
AFXADDR_DECL(UnkDrawHudOutContinue)
AFXADDR_DECL(Draw_DecalMaterial)
AFXADDR_DECL(clientDll)
AFXADDR_DECL(cstrike_CHudDeathNotice_Draw)
AFXADDR_DECL(cstrike_CHudDeathNotice_Draw_YRes)
AFXADDR_DECL(cstrike_CHudDeathNotice_Draw_YRes_DSZ)
AFXADDR_DECL(cstrike_CHudDeathNotice_MsgFunc_DeathMsg)
AFXADDR_DECL(cstrike_EV_CreateSmoke)
AFXADDR_DECL(cstrike_MsgFunc_DeathMsg)
AFXADDR_DECL(cstrike_UnkCrosshairFn)
AFXADDR_DECL(cstrike_UnkCrosshairFn_add_fac)
AFXADDR_DECL(cstrike_UnkCrosshairFn_mul_fac)
AFXADDR_DECL(cstrike_rgDeathNoticeList)
AFXADDR_DECL(cstrike_PM_CatagorizePositionFn)
AFXADDR_DECL(g_fov)
AFXADDR_DECL(hlExe)
AFXADDR_DECL(hwDll)
AFXADDR_DECL(host_frametime)
AFXADDR_DECL(msg_readcount)
AFXADDR_DECL(net_message)
AFXADDR_DECL(paintbuffer)
AFXADDR_DECL(paintedtime)
AFXADDR_DECL(r_refdef)
AFXADDR_DECL(shm)
AFXADDR_DECL(skytextures)
AFXADDR_DECL(tfc_CHudDeathNotice_Draw)
AFXADDR_DECL(tfc_CHudDeathNotice_Draw_YRes)
AFXADDR_DECL(tfc_CHudDeathNotice_Draw_YRes_DSZ)
AFXADDR_DECL(tfc_CHudDeathNotice_MsgFunc_DeathMsg)
AFXADDR_DECL(tfc_MsgFunc_DeathMsg)
AFXADDR_DECL(tfc_TeamFortressViewport_UpdateSpecatorPanel)
AFXADDR_DECL(tfc_rgDeathNoticeList)
AFXADDR_DECL(valve_TeamFortressViewport_UpdateSpecatorPanel)
AFXADDR_DECL(hw_HUD_GetStudioModelInterface_version)
AFXADDR_DECL(hw_HUD_GetStudioModelInterface_pInterface)
AFXADDR_DECL(hw_HUD_GetStudioModelInterface_pStudio)

void Addresses_InitHlExe(AfxAddr hlExe);
void Addresses_InitHwDll(AfxAddr hwDll);
void Addresses_InitClientDll(AfxAddr clientDll, const char * gamedir);

void ErrorBox(char const * messageText);
