diff --git a/README.md b/README.md index c56158f..bb2d4ea 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,19 @@ Edit your server's CMakeLists.txt and insert those lines above `add_executable(g # add_executable(game-server .. ``` +Then add a callback context to the gameserver. +```C++ +// src/game/server/gamecontext.h + +#include + +class CGameContext +{ + // [..] + TWBL::CDDNetCallbackCtx m_TwblCallbackCtx; +}; +``` + Then add a state buffer to the player class. ```C++ // src/game/server/player.h @@ -87,6 +100,7 @@ void CCharacter::Tick() TWBL::SetState(this, &State); State.m_pCollision = Collision(); State.m_ppPlayers = GameServer()->m_apPlayers; + State.m_pCallbackCtx = &GameServer()->m_TwblCallbackCtx; Twbl_SampleTick(&State, &Bot, &GetPlayer()->m_TwblPersistentState, sizeof(GetPlayer()->m_TwblPersistentState)); diff --git a/src/server/set_state.h b/src/server/set_state.h index 3ed2e95..d3241d2 100644 --- a/src/server/set_state.h +++ b/src/server/set_state.h @@ -11,15 +11,12 @@ namespace TWBL { -void SetState(CCharacter *pChr, CServerBotStateIn *pState) +void SetState(CCharacter *pChr, CServerBotStateIn *pState, *pCallbackCtx) { - CDDNetCallbackCtx CallbackCtx; - CallbackCtx.m_pGameServer = pChr->GameServer(); - pState->m_GameTick = pChr->GameServer()->Server()->Tick(); pState->m_pCharacter = pChr; pState->m_ClientId = pChr->GetPlayer()->GetCid(); - pState->m_pCallbackCtx = &CallbackCtx; + pState->m_pCallbackCtx = pCallbackCtx; } } // namespace TWBL