From edab01cdc425117584a3768e6f9a007e2c99094c Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 12:41:21 +0000 Subject: [PATCH] Decompile 7 functions in Source/Contents/Sound/SoundMaker.cpp, Source/Contents/Actors/GameActor.h, ... Batch #1420 by ragnarok-clanker: 0 byte-identical, 7 confirmed by peer review. - fn_22364 CNpc::~CNpc: logic confirmed by peer review - fn_22379 CPc::GetExtent: logic confirmed by peer review - fn_22419 CBlurPC::SendObjectMessage: logic confirmed by peer review - fn_22422 CHalluNPC::SendObjectMessage: logic confirmed by peer review - fn_22423 CHalluPC2::SendObjectMessage: logic confirmed by peer review - fn_22424 CHalluPC::SendObjectMessage: logic confirmed by peer review - fn_22425 CHalluPlant::SendObjectMessage: logic confirmed by peer review Reviewed-by: ragnarok-clanker --- Source/Contents/Sound/SoundMaker.cpp | 158 +++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/Source/Contents/Sound/SoundMaker.cpp b/Source/Contents/Sound/SoundMaker.cpp index 442b8bf7..3d87bc52 100644 --- a/Source/Contents/Sound/SoundMaker.cpp +++ b/Source/Contents/Sound/SoundMaker.cpp @@ -28,6 +28,18 @@ CSoundMaker::CSoundMaker(ResourceMgr& resources, JobNames& names, SoundMakerCont } // OFFSET: 0x00DA2220 +// FUNCTION: fn_22364 +CNpc::~CNpc() { + if (this->unknown_042C) { + g_windowMgr.Schedule(this->unknown_042C); + this->unknown_042C = nullptr; + } + + if (this->unknown_0430) { + g_windowMgr.Schedule(this->unknown_0430); + this->unknown_0430 = nullptr; + } +} // OFFSET: 0x00DA2370 // FUNCTION: fn_22365 @@ -126,6 +138,12 @@ bool CSoundMaker::Update() { } // OFFSET: 0x00DA2B00 +// FUNCTION: fn_22379 +float* CPc::GetExtent(float* extent) const { + extent[0] = this->unknown_04EC - this->unknown_04E4; + extent[1] = this->unknown_04F0 - this->unknown_04E8; + return extent; +} // OFFSET: 0x00DA4150 // FUNCTION: fn_22411 @@ -157,6 +175,35 @@ void CBlowEffect::SendObjectMessage( } // OFFSET: 0x00DA4A00 +// FUNCTION: fn_22419 +void CBlurPC::SendObjectMessage( + CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int +) { + if (a != 0) { + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + return; + } + + switch (message) { + case 0: + this->SetColor(180, b, d, f); + this->unknown_04FC = 0x8000000; + break; + case 1: + this->render.color &= (b << 24) + 0xFFFFFF; + this->unknown_04FC = d << 24; + break; + case 2: + this->unknown_04F8 = *reinterpret_cast(&b); + break; + case 3: + this->render.unknown_009C[2] = 1; + break; + default: + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + break; + } +} // OFFSET: 0x00DA4AD0 // FUNCTION: fn_22420 @@ -167,12 +214,123 @@ void CCorpse::SendObjectMessage( } // OFFSET: 0x00DA4BF0 +// FUNCTION: fn_22422 +void CHalluNPC::SendObjectMessage( + CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int +) { + if (a != 0) { + CNpc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + return; + } + + switch (message) { + case 0: + this->SetColor(180, b, d, f); + this->unknown_0444 = 0x8000000; + break; + case 1: + this->render.color &= (b << 24) + 0xFFFFFF; + this->unknown_0444 = d << 24; + break; + case 2: + this->unknown_0440 = *reinterpret_cast(&b); + break; + case 3: + this->render.unknown_009C[2] = 1; + break; + default: + CNpc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + break; + } +} // OFFSET: 0x00DA4CC0 +// FUNCTION: fn_22423 +void CHalluPC2::SendObjectMessage( + CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int +) { + if (a != 0) { + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + return; + } + + switch (message) { + case 0: + this->SetColor(180, 255, 55, 55); + this->unknown_04FC = 0x8000000; + break; + case 1: + this->render.color &= (b << 24) + 0xFFFFFF; + this->unknown_04FC = d << 24; + break; + case 2: + this->unknown_04F8 = *reinterpret_cast(&b); + break; + case 3: + this->render.unknown_009C[2] = 1; + break; + default: + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + break; + } +} // OFFSET: 0x00DA4D90 +// FUNCTION: fn_22424 +void CHalluPC::SendObjectMessage( + CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int +) { + if (a != 0) { + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + return; + } + + switch (message) { + case 0: + this->SetColor(180, b, d, f); + this->unknown_04FC = 0x8000000; + break; + case 1: + this->render.color &= (b << 24) + 0xFFFFFF; + this->unknown_04FC = d << 24; + break; + case 2: + this->unknown_04F8 = *reinterpret_cast(&b); + break; + case 3: + this->render.unknown_009C[2] = 1; + break; + default: + CPc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + break; + } +} // OFFSET: 0x00DA4E60 +// FUNCTION: fn_22425 +void CHalluPlant::SendObjectMessage( + CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int +) { + if (a != 0) { + CNpc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + return; + } + + switch (message) { + case 0: + this->SetColor(180, b, d, f); + break; + case 1: + this->render.color &= (b << 24) + 0xFFFFFF; + break; + case 3: + this->render.unknown_009C[2] = 1; + break; + default: + CNpc::SendObjectMessage(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); + break; + } +} // OFFSET: 0x00DA5610 // FUNCTION: fn_22427