mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 14:03:37 +00:00
60 lines
2.1 KiB
C++
60 lines
2.1 KiB
C++
#include "../../Minecraft.World/Platform/stdafx.h"
|
|
#include "../../Minecraft.World/Headers/net.minecraft.world.item.h"
|
|
#include "../../Minecraft.World/Headers/net.minecraft.world.level.tile.h"
|
|
#include "Tutorial.h"
|
|
#include "LookAtTileHint.h"
|
|
|
|
LookAtTileHint::LookAtTileHint(eTutorial_Hint id, Tutorial* tutorial,
|
|
int tiles[], unsigned int tilesLength,
|
|
int iconOverride /*= -1*/, int iData /* = -1 */,
|
|
int iDataOverride /*= -1*/)
|
|
: TutorialHint(id, tutorial, -1, e_Hint_LookAtTile) {
|
|
m_iTilesCount = tilesLength;
|
|
|
|
// TODO: 4jcraft: allocating but never freeing mem, leak
|
|
m_iTiles = new int[m_iTilesCount];
|
|
for (unsigned int i = 0; i < m_iTilesCount; i++) {
|
|
m_iTiles[i] = tiles[i];
|
|
}
|
|
|
|
m_iconOverride = iconOverride;
|
|
m_iData = iData;
|
|
m_iDataOverride = iDataOverride;
|
|
}
|
|
|
|
bool LookAtTileHint::onLookAt(int id, int iData) {
|
|
if (id > 0 && id < 256 && (m_iData == -1 || m_iData == iData)) {
|
|
bool itemFound = false;
|
|
for (unsigned int i = 0; i < m_iTilesCount; i++) {
|
|
if (id == m_iTiles[i]) {
|
|
itemFound = true;
|
|
break;
|
|
}
|
|
}
|
|
if (itemFound) {
|
|
// Display hint
|
|
Tutorial::PopupMessageDetails* message =
|
|
new Tutorial::PopupMessageDetails();
|
|
message->m_delay = true;
|
|
if (m_iconOverride >= 0) {
|
|
message->m_icon = m_iconOverride;
|
|
} else if (m_iconOverride == -2) {
|
|
message->m_icon = TUTORIAL_NO_ICON;
|
|
} else {
|
|
message->m_icon = id;
|
|
}
|
|
|
|
// 4J-JEV: Moved to keep data override even if we're overriding the
|
|
// icon as well.
|
|
message->m_iAuxVal =
|
|
(m_iDataOverride > -1) ? m_iDataOverride : iData;
|
|
|
|
message->m_messageId = Item::items[id]->getUseDescriptionId();
|
|
message->m_titleId =
|
|
Item::items[id]->getDescriptionId(message->m_iAuxVal);
|
|
return m_tutorial->setMessage(this, message);
|
|
}
|
|
}
|
|
return false;
|
|
}
|