Adapt Android mobile controls and native client UI
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "EterBase/Timer.h"
|
||||
#include "EterLib/Util.h"
|
||||
#include "EterLib/GrpBase.h"
|
||||
#include "EterLib/GrpImage.h"
|
||||
#include "EterLib/Camera.h"
|
||||
#include "../EterLib/HostCursor.h"
|
||||
#include "UserInterface/PythonNetworkStream.h"
|
||||
@@ -408,6 +409,44 @@ void SetAttackKey(bool pressed)
|
||||
CPythonPlayer::Instance().SetAttackKeyState(pressed);
|
||||
}
|
||||
|
||||
void UseLocalQuickSlot(int localSlotIndex)
|
||||
{
|
||||
if (!g_game_singletons || localSlotIndex < 0 || localSlotIndex >= 8) return;
|
||||
CPythonPlayer::Instance().RequestUseLocalQuickSlot(static_cast<DWORD>(localSlotIndex));
|
||||
}
|
||||
|
||||
bool TryAssignAttachedObjectToLocalQuickSlot(int localSlotIndex)
|
||||
{
|
||||
if (!g_game_singletons || localSlotIndex < 0 || localSlotIndex >= 8) return false;
|
||||
std::string attached;
|
||||
std::string error;
|
||||
if (!Evaluate("__import__('mouseModule').mouseController.isAttached()", &attached, &error) ||
|
||||
(attached != "True" && attached != "1"))
|
||||
return false;
|
||||
|
||||
const std::string command =
|
||||
"_stream.curPhaseWindow.interface.wndTaskBar.AddQuickSlot(" + std::to_string(localSlotIndex) + ")";
|
||||
return RunLine(command.c_str(), &error);
|
||||
}
|
||||
|
||||
std::string LocalQuickSlotSkillIcon(int localSlotIndex)
|
||||
{
|
||||
if (!g_game_singletons || localSlotIndex < 0 || localSlotIndex >= 8) return {};
|
||||
DWORD type = SLOT_TYPE_NONE;
|
||||
DWORD position = 0;
|
||||
CPythonPlayer& player = CPythonPlayer::Instance();
|
||||
player.GetLocalQuickSlotData(static_cast<DWORD>(localSlotIndex), &type, &position);
|
||||
if (type != SLOT_TYPE_SKILL) return {};
|
||||
|
||||
CPythonSkill::TSkillData* skillData = nullptr;
|
||||
if (!CPythonSkill::Instance().GetSkillData(player.GetSkillIndex(position), &skillData) || !skillData)
|
||||
return {};
|
||||
const int grade = std::clamp(player.GetSkillGrade(position), 0, CPythonSkill::SKILL_GRADE_COUNT - 1);
|
||||
CGraphicImage* image = skillData->GradeData[grade].pImage;
|
||||
if (!image) image = skillData->pImage;
|
||||
return image ? image->GetFileName() : std::string{};
|
||||
}
|
||||
|
||||
void CameraBeginDrag(int x, int y)
|
||||
{
|
||||
CCameraManager& rkCmrMgr = CCameraManager::Instance();
|
||||
|
||||
Reference in New Issue
Block a user