mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-17 20:10:23 +03:00
C++03 Support & Partial Xbox 360 Support (#37)
* WIP C++03 + Xbox 360 Support * math.h & _USE_MATH_DEFINES on Level.hpp Updated Xenon vcxproj file for new file structure. * * Fix bad GUI scale setup. * * Gui: Use ratios instead of hardcoded sub-1 floating point values, to make the mechanism more clear. * Add Direct Connect Button and Screen (#30) * Add Direct Connect Button and Screen * Remove accidental extra build directories for wasm * Add DirectConnectScreen.cpp to the CMake * Use Hungarian coding style notation * * Fix errors caused by #30 * * Improve the Chat Screen * * Improve the DirectConnectScreen, among other things. * * Update the game title once again. * * Add build-wasm.bat. * * Add info about compiling for wasm * * Fix send to specific GUID actually broadcasting to everyone * * Add command manager. * * Add writeable configuration. * * Allow dynamic screen size change on windows * * Allow the same thing on the emscripten version. * WIP C++03 + Xbox 360 Support * Fixed a possible merging issue that broke RakNet? * Additional Xbox 360 compatability fixes --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com> Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com> Co-authored-by: ts <124226059+uniformization@users.noreply.github.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/********************************************************************
|
||||
Minecraft: Pocket Edition - Decompilation Project
|
||||
Copyright (C) 2023 iProgramInCpp
|
||||
|
||||
|
||||
The following code is licensed under the BSD 1 clause license.
|
||||
SPDX-License-Identifier: BSD-1-Clause
|
||||
********************************************************************/
|
||||
@@ -10,6 +10,10 @@
|
||||
|
||||
Explosion::Explosion(Level* level, Entity* entity, float x, float y, float z, float power)
|
||||
{
|
||||
field_20 = 0;
|
||||
|
||||
m_bIsFiery = false;
|
||||
|
||||
m_pos = Vec3(x, y, z);
|
||||
m_power = power;
|
||||
m_pEntity = entity;
|
||||
@@ -65,7 +69,7 @@ void Explosion::explode()
|
||||
m_tiles.insert(TilePos(pxf, pyf, pzf));
|
||||
|
||||
mult -= 0.225f;
|
||||
|
||||
|
||||
if (mult < 0)
|
||||
break;
|
||||
|
||||
@@ -89,25 +93,26 @@ void Explosion::explode()
|
||||
);
|
||||
|
||||
EntityVector* pEnts = m_pLevel->getEntities(m_pEntity, aabb);
|
||||
for (Entity* pEnt : (*pEnts))
|
||||
for (int i = 0; i < pEnts->size(); i++)
|
||||
{
|
||||
float distPowerRatio = pEnt->distanceTo(m_pos.x, m_pos.y, m_pos.z) / m_power;
|
||||
Entity* entity = pEnts->at(i);
|
||||
float distPowerRatio = entity->distanceTo(m_pos.x, m_pos.y, m_pos.z) / m_power;
|
||||
if (distPowerRatio > 1.0f)
|
||||
continue;
|
||||
|
||||
float deltaX = pEnt->m_pos.x - m_pos.x;
|
||||
float deltaY = pEnt->m_pos.y - m_pos.y;
|
||||
float deltaZ = pEnt->m_pos.z - m_pos.z;
|
||||
float deltaX = entity->m_pos.x - m_pos.x;
|
||||
float deltaY = entity->m_pos.y - m_pos.y;
|
||||
float deltaZ = entity->m_pos.z - m_pos.z;
|
||||
|
||||
// @NOTE: They used it here, but not when normalizing the 16*16*16=4096 rays shot before...
|
||||
float normInv = Mth::invSqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
|
||||
float hurtPercent = m_pLevel->getSeenPercent(m_pos, pEnt->m_hitbox) * (1.0f - distPowerRatio);
|
||||
float hurtPercent = m_pLevel->getSeenPercent(m_pos, entity->m_hitbox) * (1.0f - distPowerRatio);
|
||||
|
||||
pEnt->hurt(m_pEntity, int((hurtPercent * hurtPercent + hurtPercent) / 2.0f * 8.0f * this->m_power + 1.0f));
|
||||
entity->hurt(m_pEntity, int((hurtPercent * hurtPercent + hurtPercent) / 2.0f * 8.0f * this->m_power + 1.0f));
|
||||
|
||||
pEnt->m_vel.x += deltaX * normInv * hurtPercent;
|
||||
pEnt->m_vel.y += deltaY * normInv * hurtPercent;
|
||||
pEnt->m_vel.z += deltaZ * normInv * hurtPercent;
|
||||
entity->m_vel.x += deltaX * normInv * hurtPercent;
|
||||
entity->m_vel.y += deltaY * normInv * hurtPercent;
|
||||
entity->m_vel.z += deltaZ * normInv * hurtPercent;
|
||||
}
|
||||
|
||||
std::vector<TilePos> vec;
|
||||
|
||||
Reference in New Issue
Block a user