d_t_heat_resist OK (#173)

* d_t_heat_resist OK
This commit is contained in:
Orstedra
2025-05-24 04:22:49 +02:00
committed by GitHub
parent 745d156153
commit b8b2375891
4 changed files with 50 additions and 7 deletions
@@ -2,10 +2,10 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dTgHeatResist_c_classInit__Fv = .text:0x00000070; // type:function size:0x4C
TgHeatResist__init = .text:0x000000C0; // type:function size:0x54
fn_444_120 = .text:0x00000120; // type:function size:0x8
TgHeatResist__update = .text:0x00000130; // type:function size:0x80
fn_444_1B0 = .text:0x000001B0; // type:function size:0x8
create__15dTgHeatResist_cFv = .text:0x000000C0; // type:function size:0x54
doDelete__15dTgHeatResist_cFv = .text:0x00000120; // type:function size:0x8
actorExecute__15dTgHeatResist_cFv = .text:0x00000130; // type:function size:0x80
draw__15dTgHeatResist_cFv = .text:0x000001B0; // type:function size:0x8
__dt__15dTgHeatResist_cFv = .text:0x000001C0; // type:function size:0x5C
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
+1 -1
View File
@@ -2475,7 +2475,7 @@ config.libs = [
Rel(NonMatching, "d_t_group_summon", "REL/d/t/d_t_group_summon.cpp"),
Rel(NonMatching, "d_t_group_test", "REL/d/t/d_t_group_test.cpp"),
Rel(NonMatching, "d_t_harp", "REL/d/t/d_t_harp.cpp"),
Rel(NonMatching, "d_t_heat_resist", "REL/d/t/d_t_heat_resist.cpp"),
Rel(Matching, "d_t_heat_resist", "REL/d/t/d_t_heat_resist.cpp"),
Rel(Matching, "d_t_holy_water", "REL/d/t/d_t_holy_water.cpp"),
Rel(NonMatching, "d_t_insect", "REL/d/t/d_t_insect.cpp"),
Rel(NonMatching, "d_t_ks", "REL/d/t/d_t_ks.cpp"),
+11 -2
View File
@@ -1,14 +1,23 @@
#ifndef D_T_HEAT_RESIST_H
#define D_T_HEAT_RESIST_H
#include "d/a/d_a_base.h"
#include "common.h"
#include "d/t/d_tg.h"
#include "m/m_mtx.h"
class dTgHeatResist_c : public dAcBase_c {
class dTgHeatResist_c : public dTg_c {
public:
dTgHeatResist_c() {}
virtual ~dTgHeatResist_c() {}
virtual int create() override;
virtual int doDelete() override;
virtual int draw() override;
virtual int actorExecute() override;
private:
/* 0x0FC */ mMtx_c matrix;
/* 0x12C */ u8 mInverted;
};
#endif
+34
View File
@@ -1,3 +1,37 @@
#include "d/t/d_t_heat_resist.h"
#include "d/a/d_a_player.h"
#include "f/f_base.h"
#include "toBeSorted/area_math.h"
SPECIAL_ACTOR_PROFILE(TAG_HEAT_RESIST, dTgHeatResist_c, fProfile::TAG_HEAT_RESIST, 0x223, 0, 4);
int dTgHeatResist_c::create() {
mInverted = static_cast<u8>(params & 0x3);
matrixCreateFromPosRotYScale(matrix, position, rotation.y, mScale, nullptr, 0.0f);
return SUCCEEDED;
}
int dTgHeatResist_c::doDelete() {
return SUCCEEDED;
}
int dTgHeatResist_c::actorExecute() {
dAcPy_c *player = dAcPy_c::LINK;
if (mInverted == 1) {
if (!checkIfVec3fInMatrix(matrix, player->position)) {
player->onForceOrPreventActionFlags(0x8000000);
}
} else {
if (checkIfVec3fInMatrix(matrix, player->position)) {
player->onForceOrPreventActionFlags(0x8000000);
}
}
return SUCCEEDED;
}
int dTgHeatResist_c::draw() {
return SUCCEEDED;
}