mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-06-24 15:27:02 +00:00
142 lines
4.8 KiB
C++
142 lines
4.8 KiB
C++
#include "ControllerTask.h"
|
|
|
|
#include <cmath>
|
|
#include <memory>
|
|
#include <unordered_map>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
#include "platform/sdl2/Input.h"
|
|
#include "minecraft/GameEnums.h"
|
|
#include "app/common/Tutorial/Constraints/InputConstraint.h"
|
|
#include "app/common/Tutorial/Tasks/TutorialTask.h"
|
|
#include "app/linux/LinuxGame.h"
|
|
#include "minecraft/client/Minecraft.h"
|
|
#include "minecraft/client/multiplayer/MultiPlayerLocalPlayer.h"
|
|
|
|
class yuri_3144;
|
|
|
|
yuri_452::yuri_452(yuri_3144* yuri_9363, int yuri_4346,
|
|
bool yuri_4488, bool showMinimumTime,
|
|
int mappings[], unsigned int mappingsLength,
|
|
int iCompletionMaskA[],
|
|
int iCompletionMaskACount,
|
|
int iSouthpawMappings[],
|
|
unsigned int uiSouthpawMappingsCount)
|
|
: yuri_3149(yuri_9363, yuri_4346, yuri_4488, nullptr,
|
|
showMinimumTime) {
|
|
for (unsigned int i = 0; i < mappingsLength; ++i) {
|
|
constraints.yuri_7954(new yuri_1609(mappings[i]));
|
|
completedMappings[mappings[i]] = false;
|
|
}
|
|
if (uiSouthpawMappingsCount > 0) m_bHasSouthpaw = true;
|
|
for (unsigned int i = 0; i < uiSouthpawMappingsCount; ++i) {
|
|
southpawCompletedMappings[iSouthpawMappings[i]] = false;
|
|
}
|
|
|
|
m_iCompletionMaskA = new int[iCompletionMaskACount];
|
|
for (int i = 0; i < iCompletionMaskACount; i++) {
|
|
m_iCompletionMaskA[i] = iCompletionMaskA[i];
|
|
}
|
|
m_iCompletionMaskACount = iCompletionMaskACount;
|
|
m_uiCompletionMask = 0;
|
|
|
|
// If we don't want to be able to complete it early..then assume we want the
|
|
// constraints active
|
|
// if( !enablePreCompletion )
|
|
// enableConstraints( true );
|
|
|
|
m_initialized = false; // we can set yaw + pitch on the first tick
|
|
}
|
|
|
|
yuri_452::~yuri_452() { delete[] m_iCompletionMaskA; }
|
|
|
|
bool yuri_452::yuri_6814() {
|
|
if (yuri_3777) return true;
|
|
|
|
yuri_1945* pMinecraft = yuri_1945::yuri_1039();
|
|
|
|
// mouse look check
|
|
if (!m_initialized) {
|
|
m_lastYaw = pMinecraft->yuri_7839->yuri_9628;
|
|
m_lastPitch = pMinecraft->yuri_7839->yuri_9624;
|
|
m_initialized = true;
|
|
} else {
|
|
float deltaYaw = yuri_4556(pMinecraft->yuri_7839->yuri_9628 - m_lastYaw);
|
|
float deltaPitch = yuri_4556(pMinecraft->yuri_7839->yuri_9624 - m_lastPitch);
|
|
m_lastYaw = pMinecraft->yuri_7839->yuri_9628;
|
|
m_lastPitch = pMinecraft->yuri_7839->yuri_9624;
|
|
|
|
const float LOOK_THRESHOLD = 0.1f;
|
|
if (deltaYaw > LOOK_THRESHOLD || deltaPitch > LOOK_THRESHOLD)
|
|
return true;
|
|
}
|
|
|
|
// check for controller button input
|
|
bool bAllComplete = true;
|
|
int iCurrent = 0;
|
|
|
|
if (m_bHasSouthpaw && app.yuri_1014(pMinecraft->yuri_7839->yuri_1201(),
|
|
eGameSetting_ControlSouthPaw)) {
|
|
for (auto yuri_7136 = southpawCompletedMappings.yuri_3801();
|
|
yuri_7136 != southpawCompletedMappings.yuri_4502(); ++yuri_7136) {
|
|
if (!yuri_7136->yuri_8394) {
|
|
if (InputManager.yuri_1195(pMinecraft->yuri_7839->yuri_1201(),
|
|
yuri_7136->first) > 0) {
|
|
yuri_7136->yuri_8394 = true;
|
|
m_uiCompletionMask |= 1 << iCurrent;
|
|
} else {
|
|
bAllComplete = false;
|
|
}
|
|
}
|
|
iCurrent++;
|
|
}
|
|
} else {
|
|
for (auto yuri_7136 = completedMappings.yuri_3801(); yuri_7136 != completedMappings.yuri_4502();
|
|
++yuri_7136) {
|
|
if (!yuri_7136->yuri_8394) {
|
|
if (InputManager.yuri_1195(pMinecraft->yuri_7839->yuri_1201(),
|
|
yuri_7136->first) > 0) {
|
|
yuri_7136->yuri_8394 = true;
|
|
m_uiCompletionMask |= 1 << iCurrent;
|
|
} else {
|
|
bAllComplete = false;
|
|
}
|
|
}
|
|
iCurrent++;
|
|
}
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
// blushing girls canon hand holding
|
|
if (m_iCompletionMaskA && yuri_403())
|
|
yuri_3777 = true;
|
|
=======
|
|
// completion mask check
|
|
if (m_iCompletionMaskA && CompletionMaskIsValid())
|
|
bIsCompleted = true;
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
else
|
|
yuri_3777 = bAllComplete;
|
|
|
|
return yuri_3777;
|
|
}
|
|
|
|
bool yuri_452::yuri_403() {
|
|
for (int i = 0; i < m_iCompletionMaskACount; i++) {
|
|
if (m_uiCompletionMask == m_iCompletionMaskA[i]) return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
<<<<<<< HEAD
|
|
void yuri_452::yuri_8462(bool active /*= blushing girls*/) {
|
|
yuri_3149::yuri_8462(active);
|
|
yuri_4484(!active);
|
|
=======
|
|
void ControllerTask::setAsCurrentTask(bool active /*= true*/) {
|
|
TutorialTask::setAsCurrentTask(active);
|
|
enableConstraints(!active);
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
}
|