| 100 | } |
| 101 | |
| 102 | void ScriptExtender::OnGameStateChanged(GameState fromState, GameState toState) |
| 103 | { |
| 104 | #if defined(DEBUG_SERVER_CLIENT) |
| 105 | DEBUG("esv::ScriptExtender::OnGameStateChanged(): %s -> %s", |
| 106 | ServerGameStateNames[(unsigned)fromState], ServerGameStateNames[(unsigned)toState]); |
| 107 | #endif |
| 108 | |
| 109 | if (fromState != GameState::Unknown) { |
| 110 | BindToThreadPersistent(); |
| 111 | OPTICK_THREAD("Server"); |
| 112 | } |
| 113 | |
| 114 | switch (fromState) { |
| 115 | case GameState::LoadModule: |
| 116 | INFO("esv::ScriptExtender::OnGameStateChanged(): Loaded module"); |
| 117 | LoadExtensionState(ExtensionStateContext::Game); |
| 118 | break; |
| 119 | |
| 120 | case GameState::LoadSession: |
| 121 | if (extensionState_) { |
| 122 | extensionState_->OnGameSessionLoaded(); |
| 123 | } |
| 124 | break; |
| 125 | } |
| 126 | |
| 127 | switch (toState) { |
| 128 | case GameState::Init: |
| 129 | network_.ExtendNetworking(); |
| 130 | break; |
| 131 | |
| 132 | case GameState::Disconnect: |
| 133 | network_.Reset(); |
| 134 | break; |
| 135 | |
| 136 | case GameState::UnloadSession: |
| 137 | INFO("esv::ScriptExtender::OnGameStateChanged(): Unloading session"); |
| 138 | entityHelpers_.OnDestroy(); |
| 139 | ResetExtensionState(); |
| 140 | break; |
| 141 | |
| 142 | case GameState::LoadModule: |
| 143 | network_.ExtendNetworking(); |
| 144 | break; |
| 145 | |
| 146 | case GameState::LoadSession: |
| 147 | INFO("esv::ScriptExtender::OnGameStateChanged(): Loading game session"); |
| 148 | entityHelpers_.OnInit(); |
| 149 | LoadExtensionState(ExtensionStateContext::Game); |
| 150 | network_.ExtendNetworking(); |
| 151 | if (extensionState_) { |
| 152 | extensionState_->OnGameSessionLoading(); |
| 153 | } |
| 154 | break; |
| 155 | |
| 156 | case GameState::LoadLevel: |
| 157 | if (extensionState_) { |
| 158 | LuaServerPin lua(*extensionState_); |
| 159 | if (lua) { |
nothing calls this directly
no test coverage detected