Batch #2457 by ragnarok-clanker: 0 byte-identical, 48 confirmed by peer review. - fn_00152 TextureCache::TextureCache: logic confirmed by peer review - fn_01952 DrawAlphaRectangle: logic confirmed by peer review - fn_01953 DrawBlendedRectangle: logic confirmed by peer review - fn_01954 DrawTexturedRectangle: logic confirmed by peer review - fn_01955 DrawTextureRegion: logic confirmed by peer review - fn_02237 CRendererDX9::SaveLogo: logic confirmed by peer review - fn_02353 CRenderSystemDX9::CRenderSystemDX9: logic confirmed by peer review - fn_02447 TextureCache::~TextureCache: logic confirmed by peer review (already on main) - fn_02449 TextureCache::Upload: logic confirmed by peer review - fn_02451 TextureCache::Clear: logic confirmed by peer review (already on main) - fn_02452 TextureCache::Remove: logic confirmed by peer review (already on main) - fn_02453 TextureCache::Default: logic confirmed by peer review - fn_02454 TextureCache::Load: logic confirmed by peer review (already on main) - fn_02455 TextureCache::Create: logic confirmed by peer review - fn_02456 TextureCache::Reload: logic confirmed by peer review - fn_02457 TextureCache::ClearUnused: logic confirmed by peer review - fn_07897 EZeffectClip::Texture: logic confirmed by peer review - fn_07898 EZeffectClip::Texture: logic confirmed by peer review - fn_07958 C3dAnimModelRes::Load: logic confirmed by peer review - fn_07996 ModelNode::~ModelNode: logic confirmed by peer review - fn_08010 C3dGrannyModelRes::CreateTexture: logic confirmed by peer review - fn_08020 C3dModelResV2::ReadVersion1: logic confirmed by peer review - fn_08021 C3dModelResV2::ReadVersion2: logic confirmed by peer review - fn_08022 C3dModelResV2::ReadVersion3: logic confirmed by peer review - fn_09166 BinkMovies::Update: logic confirmed by peer review - fn_10122 UIRPData::DrawNamed: logic confirmed by peer review - fn_12091 UIWhisperWnd::Slot43: logic confirmed by peer review - fn_17556 GroundGeometry::Build: logic confirmed by peer review - fn_17565 GroundGeometry::BuildLightmaps: logic confirmed by peer review - fn_17581 GroundWaterState::Update: logic confirmed by peer review - fn_17587 GroundGeometry::DrawGrid: logic confirmed by peer review - fn_17599 GroundWaterState::Import: logic confirmed by peer review - fn_17842 ModeFade::Draw: logic confirmed by peer review - fn_17847 FadeOutMode: logic confirmed by peer review - fn_20019 CRagEffect::Blessing: logic confirmed by peer review - fn_20023 CRagEffect::Bottom: logic confirmed by peer review - fn_20024 CRagEffect::BowlingBash: logic confirmed by peer review - fn_20025 CRagEffect::CartRevolution: logic confirmed by peer review - fn_20042 CRagEffect::Entry: logic confirmed by peer review - fn_20054 CRagEffect::FrostDiver: logic confirmed by peer review - fn_20058 CRagEffect::GrimTooth: logic confirmed by peer review - fn_20066 CRagEffect::Hit4: logic confirmed by peer review - fn_20088 UpdatePartyEffect: logic confirmed by peer review - fn_20105 CRagEffect::SonicBlowHit: logic confirmed by peer review - fn_20109 CRagEffect::SprayPond: logic confirmed by peer review - fn_20124 CRagEffect::Yufitel: logic confirmed by peer review - fn_20132 CRagEffect::AirTexture: logic confirmed by peer review - fn_20133 CRagEffect::AttackEnergy2: logic confirmed by peer review Reviewed-by: ragnarok-clanker
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
#include "Contents/Effects/RagEffect.h"
|
|
#include "Contents/Effects/EffectActor.h"
|
|
#include "Contents/Effects/EffectPrim.h"
|
|
#include "Contents/Effects/PartyEffect.h"
|
|
#include "Contents/Ground/TerrainHeight.h"
|
|
#include "Render/Textures/TextureCache.h"
|
|
|
|
#include <limits>
|
|
|
|
// OFFSET: 0x00C2CF20
|
|
// FUNCTION: fn_20088
|
|
bool UpdatePartyEffect(
|
|
CRagEffect& self, ResourceMgr& resources, std::list<CRenderObject*>& worldObjects, const TerrainHeight& ground,
|
|
int updateTick
|
|
) {
|
|
RagEffectState& effect = self.state;
|
|
RenderObjectState& render = self.render;
|
|
|
|
if (!effect.parent) {
|
|
return false;
|
|
}
|
|
|
|
if (updateTick == 0) {
|
|
return true;
|
|
}
|
|
|
|
if (updateTick > 0 && (effect.parent->render.unknown_00EC & 0xFFu) == 1) {
|
|
effect.parent->render.flags = 0;
|
|
effect.parent->render.unknown_00EC &= 0xFFFFFF00u;
|
|
}
|
|
|
|
const RenderObjectState& actor = effect.parent->render;
|
|
render.position.x = actor.position.x;
|
|
render.position.y = actor.position.y;
|
|
render.position.z = actor.position.z;
|
|
|
|
if (effect.stateCnt == 9998) {
|
|
effect.stateCnt = 0;
|
|
}
|
|
|
|
if (effect.stateCnt == 0) {
|
|
CEffectPrim* particle = CreateEffectParticle(self, render, 15, 0, 0, 0, worldObjects);
|
|
effect.unknown_11C84 = &particle->state;
|
|
EffectPrimitiveState& state = *effect.unknown_11C84;
|
|
state.duration = 9999;
|
|
state.longitude = 0;
|
|
state.roll = 90.0f;
|
|
state.widthSize = 4.0f;
|
|
state.heightSize = 4.0f;
|
|
state.red = 50;
|
|
state.blue = 253;
|
|
state.green = 50;
|
|
const auto bytes = state.totalTexture >> 30 != 0 ? std::numeric_limits<std::size_t>::max() : static_cast<std::size_t>(4u * state.totalTexture);
|
|
|
|
state.textures = static_cast<CTexture**>(::operator new(bytes));
|
|
state.textures[0] = g_texMgr.Load("effect\\party.tga", 0, false, true, false);
|
|
}
|
|
|
|
render.position.y = ground.Height(render.position.x, render.position.z) - 2.0f;
|
|
++effect.stateCnt;
|
|
return effect.stateCnt < effect.duration;
|
|
}
|