void menu::set_visible(bool visible) {
this->visible = visible;
if (!visible)
sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_NONE, 1);
;
}
void menu::present() {
if (!visible) return;
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
ImGui::SetNextWindowPos(
ImVec2(RsGlobal.maximumWidth / 2, RsGlobal.maximumHeight / 2),
ImGuiCond_FirstUseEver, ImVec2(0.5, 0.5));
ImGui::SetNextWindowSize(ImVec2(700, 420), ImGuiCond_FirstUseEver);
if (ImGui::Begin("abcde", nullptr, ImGuiWindowFlags_NoCollapse)) {
sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_LOCKCAM,
0);
// render
ImGui::End();
}
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
bool menu::wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_CHAR: {
wchar_t wch;
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
reinterpret_cast<char*>(&wParam), 1, &wch, 1);
wParam = wch;
break;
}
case WM_KEYUP:
if (wParam == VK_ESCAPE) set_visible(false);
break;
}
ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam);
auto& io = ImGui::GetIO();
if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
return false;
}
return true;
}