Skip to content

RaphaelIT7/sourcesdk-gmod

Repository files navigation

sourcesdk-gmod

SourceSDK for Gmod based of sourcesdk-minimal

In the future, I'm going to make more projects that recreate gmod dlls. Currently, these dlls exist that can replace the given gmod dll: datacache

Some facts about gmod

  • Gmod uses rapidjson and bootil. rapidjson is probably used for util.TableToJSON and util.JSONToTable

my ToDo

  • Add Proper readme.
  • Fix PMELib.h and pme.cpp for Linux

Add more Gmod functions & find out where these belong to:
dedicated_srv.so

  • GMOD_GetSearchPathGroupName sig: _ZZL27GMOD_GetSearchPathGroupNameiE5names
  • GMOD_CopyFile sig: Z13GMOD_CopyFilePKcS0
  • GarrysMod::DedicatedServer sig: _ZN9GarrysMod15DedicatedServerL7clr_errE
    GarrysMod::DedicatedServer sig: _ZN9GarrysMod15DedicatedServerL8clr_procE
    GarrysMod::DedicatedServer sig: _ZN9GarrysMod15DedicatedServerL3clrE
    GarrysMod::DedicatedServer sig: _ZN9GarrysMod15DedicatedServerL7clr_sucE
  • IGModLanguage sig: _ZTV13IGModLanguage & _ZTI13IGModLanguage
  • CBaseFileSystem::GMOD_SetupDefaultPaths sig: ZN15CBaseFileSystem22GMOD_SetupDefaultPathsEPKcS1
  • CFileSystem_Stdio::GMOD_FixPathCase sig: _ZN17CFileSystem_Stdio16GMOD_FixPathCaseEPcj

engine.dll

  • GMOD_GetNetSocket(int)

lua_shared.dll

  • GMOD_LoadBinaryModule

engine_srv.so

  • Add CVEngineServer
    CVEngineServer::LoadGameState(char const*,bool)
    CVEngineServer::LoadAdjacentEnts(char const*,char const*)
    CVEngineServer::ClearSaveDir(void)
    CVEngineServer::ClearSaveDirAfterClientLoad(void)
    CVEngineServer::IsLowViolence(void)
    CVEngineServer::CheckAreasConnected(int,int)
    CVEngineServer::GetArea(Vector const&)
    CVEngineServer::GetAreaBits(int,uchar ,int)
    CVEngineServer::GetAreaPortalPlane(Vector const&,int,VPlane )
    CVEngineServer::TextMessageGet(char const
    )
    CVEngineServer::LogPrint(char const
    )
    CVEngineServer::GetMapEntitiesString(void)
    CVEngineServer::SolidMoved(edict_t ,ICollideable ,Vector const,bool)
    CVEngineServer::TriggerMoved(edict_t ,bool)
    CVEngineServer::CleanUpEntityClusterList(PVSInfo_t )
    CVEngineServer::BuildEntityClusterList(edict_t ,PVSInfo_t ) CVEngineServer::PlaybackTempEntity(IRecipientFilter &,float,void const,SendTable const,int)
    CVEngineServer::IsMapValid(char const
    )
    CVEngineServer::IsDedicatedServer(void)
    CVEngineServer::IsInEditMode(void)
    CVEngineServer::IsInCommentaryMode(void)
    CVEngineServer::IsInternalBuild(void)
    CVEngineServer::GetPlayerUserId(edict_t const
    )
    CVEngineServer::GetPlayerNetworkIDString(edict_t const
    )
    CVEngineServer::GetEntityCount(void)
    CVEngineServer::GetPlayerNetInfo(int)
    CVEngineServer::SaveAllocMemory(uint,uint)
    CVEngineServer::SaveFreeMemory(void )
    CVEngineServer::Con_NPrintf(int,char const
    ,...)
    CVEngineServer::Con_NXPrintf(con_nprint_s const*,char const*,...)
    CVEngineServer::CreateFakeClientEx(char const*,bool)
    CVEngineServer::IsPaused(void)
    CVEngineServer::GetSharedEdictChangeInfo(void)
    CVEngineServer::GetMostRecentlyLoadedFileName(void)
    CVEngineServer::GetSaveFileName(void)
    CVEngineServer::MultiplayerEndGame(void)
    CVEngineServer::ChangeTeam(char const*)
    CVEngineServer::SetAchievementMgr(IAchievementMgr )
    CVEngineServer::GetAchievementMgr(void)
    CVEngineServer::GetClientSteamIDByPlayerIndex(int)
    CVEngineServer::SetGamestatsData(CGamestatsData )
    CVEngineServer::GetGamestatsData(void)
    CVEngineServer::GetReplay(void)
    CVEngineServer::GetClusterCount(void)
    CVEngineServer::GMOD_SetTimeManipulator(float)
    CVEngineServer::GMOD_LoadModel(char const
    )
    CVEngineServer::GMOD_ShouldUpdateVoiceMasks(void)
    CVEngineServer::GMOD_DestroyDataTable(IGMODDataTable )
    CVEngineServer::FreeEntPrivateData(void )
    CVEngineServer::ForceExactFile(char const
    )
    CVEngineServer::Time(void)
    CVEngineServer::IndexOfEdict(edict_t const
    )
    CVEngineServer::ChangeLevel(char const
    ,char const*)
    CVEngineServer::NotifyEdictFlagsChange(int)
    CVEngineServer::GetChangeAccessor(edict_t const*)
    CVEngineServer::GetClientSteamID(edict_t )
    CVEngineServer::IsClientFullyAuthenticated(edict_t )
    CVEngineServer::GetPrevCheckTransmitInfo(edict_t )
    CVEngineServer::PrecacheDecal(char const
    ,bool)
    CVEngineServer::PrecacheModel(char const
    ,bool)
    CVEngineServer::SetView(edict_t const
    ,edict_t const*)
    CVEngineServer::CrosshairAngle(edict_t const*,float,float)
    CVEngineServer::SetFakeClientConVarValue(edict_t ,char const,char const*)
    CVEngineServer::PrecacheGeneric(char const*,bool)
    CVEngineServer::IsModelPrecached(char const*)
    CVEngineServer::IsDecalPrecached(char const*)
    CVEngineServer::IsGenericPrecached(char const*)
    CVEngineServer::ForceModelBounds(char const*,Vector const&,Vector const&)
    CVEngineServer::ForceSimpleMaterial(char const*)
    CVEngineServer::PrecacheSentenceFile(char const*,bool)
    CVEngineServer::GetClusterForOrigin(Vector const&)
    CVEngineServer::CheckOriginInPVS(Vector const&,uchar const*,int)
    CVEngineServer::GetPVSForCluster(int,int,uchar )
    CVEngineServer::CheckBoxInPVS(Vector const&,Vector const&,uchar const
    ,int)
    CVEngineServer::PEntityOfEntIndex(int)
    CVEngineServer::CreateEdict(int)
    CVEngineServer::RemoveEdict(edict_t )
    CVEngineServer::PvAllocEntPrivateData(long)
    CVEngineServer::ClientPrintf(edict_t ,char const)
    CVEngineServer::FadeClientVolume(edict_t const
    ,float,float,float,float)
    CVEngineServer::SentenceGroupPick(int,char ,int)
    CVEngineServer::SentenceGroupPickSequential(int,char ,int,int,int)
    CVEngineServer::SentenceIndexFromName(char const
    )
    CVEngineServer::SentenceNameFromIndex(int)
    CVEngineServer::SentenceGroupIndexFromName(char const
    )
    CVEngineServer::SentenceGroupNameFromIndex(int)
    CVEngineServer::SentenceLength(int)
    CVEngineServer::CheckHeadnodeVisible(int,uchar const*,int)
    CVEngineServer::ServerCommand(char const*)
    CVEngineServer::ServerExecute(void)
    CVEngineServer::ClientCommand(edict_t ,char const,...)
    CVEngineServer::LightStyle(int,char const*)
    CVEngineServer::Message_DetermineMulticastRecipients(bool,Vector const&,CBitVec<255> &)
    CVEngineServer::EntityMessageBegin(int,ServerClass ,bool)
    CVEngineServer::UserMessageBegin(IRecipientFilter ,int)
    CVEngineServer::GetGameDir(char ,int)
    CVEngineServer::CompareFileTime(char const
    ,char const
    ,int )
    CVEngineServer::LockNetworkStringTables(bool)
    CVEngineServer::GetClientConVarFloat(int,char const
    ,float)
    CVEngineServer::ParseFile(char const
    ,char ,int)
    CVEngineServer::CopyFile(char const
    ,char const*)
    CVEngineServer::AddOriginToPVS(Vector const&)
    CVEngineServer::ResetPVS(uchar ,int)
    CVEngineServer::SetAreaPortalState(int,int)
    CVEngineServer::SetAreaPortalStates(int const
    ,int const*,int)
    CVEngineServer::GetEntityTransmitBitsForClient(int)
    CVEngineServer::StartQueryCvarValue(edict_t ,char const)
    CVEngineServer::AllowImmediateEdictReuse(void)
    CVEngineServer::GetAppID(void)
    CVEngineServer::InsertServerCommand(char const*)
    CVEngineServer::GetAllClusterBounds(bbox_t ,int)
    CVEngineServer::GetServerVersion(void)
    CVEngineServer::GMOD_RawServerCommand(char const
    )
    CVEngineServer::GMOD_CreateDataTable(void)
    CVEngineServer::CreateSpatialPartition(Vector const&,Vector const&)
    CVEngineServer::DestroySpatialPartition(ISpatialPartition )
    CVEngineServer::ClientCommandKeyValues(edict_t ,KeyValues )
    CVEngineServer::SetDedicatedServerBenchmarkMode(bool)
    CVEngineServer::GetClientConVarValue(int,char const
    )
    CVEngineServer::GMOD_GetPlayerOwnerSteamID(edict_t const
    )
    CVEngineServer::GMOD_GetPlayerIsSpeaking(edict_t const
    )
    CVEngineServer::GMOD_GetServerAddress(void)
    CVEngineServer::GMOD_HostToAddress(char const*)
    CVEngineServer::GMOD_SendToClient(int,void *,int)
    CVEngineServer::GetGameServerSteamID(void)
    CVEngineServer::Message_CheckMessageLength(void)
    CVEngineServer::DrawMapToScratchPad(IScratchPad3D ,ulong)
    CVEngineServer::EmitAmbientSound(int,Vector const&,char const
    ,float,soundlevel_t,int,int,float)
    CVEngineServer::StaticDecal(Vector const&,int,int,int,bool)
    CVEngineServer::MessageEnd(void)
    CVEngineServer::GMOD_SendToClient(IRecipientFilter *,void ,int)
    CVEngineServer::CreateFakeClient(char const
    )
    CVEngineServer::GetPlayerInfo(int,player_info_s *)
  • Find out where to put these GMODDataTable_NextIndex(bf_read ,int &) [clone]
    GMODTable_CompareDeltas(SendProp const
    ,bf_read ,bf_read )
    GMODTable_Decode(DecodeInfo )
    GMODTable_DecodeZero(DecodeInfo )
    GMODTable_Encode(uchar const
    ,DVariant ,SendProp const,bf_write ,int)
    GMODTable_FastCopy(SendProp const
    ,RecvProp const
    ,uchar const
    ,uchar ,int)
    GMODTable_GetTypeNameString(void)
    GMODTable_IsEncodedZero(SendProp const
    ,bf_read )
    GMODTable_IsZero(uchar const
    ,DVariant ,SendProp const)
    GMODTable_SkipProp(SendProp const
    ,bf_read *)
    GMODVariant_Skip(bf_read *)
    GMOD_FinishLoading(void)
    GMOD_GetTableDataSize(CNetworkStringTable *)
    GMOD_SendError(std::string,std::string)
  • Add CGMODDataTable
    CGMODDataTable::Begin(void)
    CGMODDataTable::CGMODDataTable(void (*)(void ,int,CGMODVariant const&))
    CGMODDataTable::Clear(void)
    CGMODDataTable::ClearLocal(char const
    )
    CGMODDataTable::Compare(bf_read ,bf_read ,CGMODDataTable,int)
    CGMODDataTable::CopyFrom(void ,void const,CGMODDataTable
    )
    CGMODDataTable::Decode(void *,bf_read *)
    CGMODDataTable::Encode(void ,bf_write )
    CGMODDataTable::End(void)
    CGMODDataTable::Entry::~Entry()
    CGMODDataTable::Get(int)
    CGMODDataTable::GetKey(int)
    CGMODDataTable::GetLocal(char const
    )
    CGMODDataTable::GetValue(int)
    CGMODDataTable::HasKey(int)
    CGMODDataTable::IncrementIterator(int &)
    CGMODDataTable::IsEmpty(void)
    CGMODDataTable::Set(int,CGMODVariant const&)
    CGMODDataTable::SetLocal(char const
    ,CGMODVariant const&)
    CGMODDataTable::Skip(bf_read *)
    CGMODDataTable::WriteProps(bf_read *,bf_write *,int)
    CGMODDataTable::~CGMODDataTable()
    CGMODVariant::~CGMODVariant()
  • Add CModelRender
    CModelRender::GMODAddDecal(ushort,Vector const&,Vector const&,IMaterial *,int,float,float)
  • Find out where these belong to
    E_Compare(bf_read *,bf_read *)
    E_Read(bf_read *,CGMODVariant &)
    E_Skip(bf_read *)
    E_Write(bf_write *,CGMODVariant const&)
    F_Compare(bf_read *,bf_read *)
    F_Read(bf_read *,CGMODVariant &)
    F_Skip(bf_read *)
    F_Write(bf_write *,CGMODVariant const&)
    GMODDataTable_NextIndex(bf_read ,int &) [clone]
    GMODTable_CompareDeltas(SendProp const
    ,bf_read ,bf_read )
    GMODTable_Decode(DecodeInfo )
    GMODTable_DecodeZero(DecodeInfo )
    GMODTable_Encode(uchar const
    ,DVariant ,SendProp const,bf_write ,int)
    GMODTable_FastCopy(SendProp const
    ,RecvProp const
    ,uchar const
    ,uchar ,int)
    GMODTable_GetTypeNameString(void)
    GMODTable_IsEncodedZero(SendProp const
    ,bf_read )
    GMODTable_IsZero(uchar const
    ,DVariant ,SendProp const)
    GMODTable_SkipProp(SendProp const
    ,bf_read *)
    GMODVariant_Skip(bf_read *)
    GMOD_GetTableDataSize(CNetworkStringTable *)
    I_Compare(bf_read *,bf_read *)
    I_Read(bf_read *,CGMODVariant &)
    I_Skip(bf_read *)
    I_Write(bf_write *,CGMODVariant const&)
    S_Compare(bf_read *,bf_read *)
    S_GetGainFromSoundLevel(soundlevel_t,float)
    S_Read(bf_read *,CGMODVariant &)
    S_Skip(bf_read *)
    S_Write(bf_write *,CGMODVariant const&)
    V_Read(bf_read *,CGMODVariant &)
    V_Write(bf_write *,CGMODVariant const&)
    gmod_build_number(void)
    GetAddonFromError(CLuaError *,IAddonSystem::Information *,bool *)
  • Document CGarrysMod
    CCallback<CGarrysMod, P2PSessionConnectFail_t, true>::Run(void )
    CCallback<CGarrysMod, P2PSessionRequest_t, true>::Run(void )
    GarrysMod::CGarrysMod(void)
    CGarrysMod::EndVideoScale(int, int)
    CGarrysMod::EntityRemoved(CBaseEntity ) NOTE: This looks interesting. Maybe try to rebuild the code.
    CGarrysMod::FireGameEvent(IGameEvent )
    CGarrysMod::GetGameDescription(void)
    CGarrysMod::GetMapName(void)
    CGarrysMod::InitializeMod(void * (
    )(char const
    , int ))
    CGarrysMod::LevelInit(char const
    , char const
    , char const
    , char const*, bool, bool)
    CGarrysMod::MD5String(char , char const, char const*, char const*)
    CGarrysMod::MenuThink(void)
    CGarrysMod::OnP2PSessionRequest(P2PSessionRequest_t )
    CGarrysMod::OnP2PSessionConnectFail(P2PSessionConnectFail_t )
    CGarrysMod::PlaySound(char const
    )
    CGarrysMod::PostInitialize(void)
    CGarrysMod::RunConsoleCommand(char const
    )
    CGarrysMod::ShouldCollide(CBaseEntity *, CBaseEntity *)
    CGarrysMod::Shutdown(void)
    CGarrysMod::StartVideoScale(int, int)
    CGarrysMod::Think(void)

GarrysMod::AutoRefresh::Init(void)

  • Find out for what map.pack is used.

  • Add CLuaClass
    CLuaClass::Add(CLuaClassFunction )
    CLuaClass::CLuaClass(char const
    , int, void ()(void), char const)
    CLuaClass::Get(int)
    CLuaClass::InitClasses(void)
    CLuaClass::MetaTableDerive(void)
    CLuaClass::Push(void *)
    CLuaClass::~CLuaClass()

  • Add CLuaManager (Based off CLuaClass)
    CLuaManager::CreateEntity(char const*)
    CLuaManager::RunScript(char const*, char const*, bool, char const*)
    CLuaManager::RunScriptsInFolder(char const*, char const*)
    CLuaManager::ScriptExists(char const*, char const*)
    CLuaManager::SendScriptsInFolder(char const*, char const*)
    CLuaManager::Startup(void)

  • Add CLuaGameEventListener
    CLuaGameEventListener::FireGameEvent(IGameEvent *)
    CLuaGameEventListener::Init(void)
    CLuaGameEventListener::LevelShutdownPostEntity(void)
    CLuaGameEventListener::Name(void)
    CLuaGameEventListener::~CLuaGameEventListener()

  • Add CLuaGameSystem (based off CBaseGameSystem or IGameSystemPerFrame)
    CLuaGameSystem::FireGameEvent(IGameEvent *)
    CLuaGameSystem::FrameUpdatePostEntityThink(void)
    CLuaGameSystem::FrameUpdatePreEntityThink(void)
    CLuaGameSystem::Init(void)
    CLuaGameSystem::LevelInitPostEntity(void)
    CLuaGameSystem::LevelInitPreEntity(void)
    CLuaGameSystem::LevelShutdownPostEntity(void)
    CLuaGameSystem::LevelShutdownPreEntity(void)
    CLuaGameSystem::Name(void)
    CLuaGameSystem::OnRestore(void)
    CLuaGameSystem::OnSave(void)
    CLuaGameSystem::PostInit(void)
    CLuaGameSystem::PreClientUpdate(void)
    CLuaGameSystem::SafeRemoveIfDesired(void)
    CLuaGameSystem::Shutdown(void)
    CLuaGameSystem::~CLuaGameSystem()

  • Add CLuaGameCallback
    CLuaGameCallback::CreateLuaObject(void)
    CLuaGameCallback::DestroyLuaObject(ILuaObject )
    CLuaGameCallback::ErrorPrint(char const
    , bool)
    CLuaGameCallback::InterfaceCreated(ILuaInterface ) = {}
    CLuaGameCallback::LuaError(CLuaError )
    LuaGameCallback::Msg(char const
    , bool)
    CLuaGameCallback::MsgColour(char const
    , Color const&)

  • Add CLuaGameEnums (This will be a huge pain)
    CLuaGameEnums::InitLibraries(ILuaInterface *)
    CLuaGameEnums::~CLuaGameEnums() __ZN13CLuaGameEnumsD1Ev
    CLuaGameEnums::~CLuaGameEnums() __ZN13CLuaGameEnumsD0Ev

  • Add CLuaSENTManager
    CLuaSENTManager::CLuaSENTManager(void)
    CLuaSENTManager::CreateEntity(char const*)
    CLuaSENTManager::LoadScript(char const*)
    CLuaSENTManager::LoadScripts(void)
    CLuaSENTManager::ReloadSpecific(char const*)
    CLuaSENTManager::~CLuaSENTManager()

  • Add CLuaSWEPManager
    CLuaSWEPManager::CLuaSWEPManager(void)
    CLuaSWEPManager::CreateEntity(char const*)
    CLuaSWEPManager::LoadScript(char const*)
    CLuaSWEPManager::LoadScripts(void)
    CLuaSWEPManager::ReloadSpecific(char const*)
    CLuaSWEPManager::~CLuaSWEPManager()

  • Add CLuaEffectManager
    CLuaEffectManager::CLuaEffectManager(void)
    CLuaEffectManager::LoadScript(char const*)
    CLuaEffectManager::LoadScripts(void)
    CLuaEffectManager::ReloadSpecific(char const*) CLuaEffectManager::~CLuaEffectManager()

  • Add all other CLua*

  • Add CGMOD_Player (Based off CHL2MP_Player)

  • Add Push_* (like Push_Entity, Push_CTakeDamageInfo and so on)

  • Add GarrysMod::*

  • Add GModDataPack::*

  • Add ILuaInterface::UserGet(int) Coulg get useful. __ZN13ILuaInterface7UserGetI11CBaseEntityEEPT_i

  • Add all Lua::

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published