Match and link CRepulsor

This commit is contained in:
Henrique Gemignani Passos Lima 2022-10-21 15:52:22 +03:00
parent 9234899097
commit 6ead1d3fae
No known key found for this signature in database
GPG Key ID: E224F951761145F8
5 changed files with 41 additions and 8 deletions

View File

@ -3,8 +3,8 @@
.section .data .section .data
.balign 8 .balign 8
.global lbl_803E70E8 .global __vt__9CRepulsor
lbl_803E70E8: __vt__9CRepulsor:
# ROM: 0x3E40E8 # ROM: 0x3E40E8
.4byte 0 .4byte 0
.4byte 0 .4byte 0
@ -57,9 +57,9 @@ __dt__9CRepulsorFv:
/* 8020FC5C 0020CBBC 93 C1 00 08 */ stw r30, 8(r1) /* 8020FC5C 0020CBBC 93 C1 00 08 */ stw r30, 8(r1)
/* 8020FC60 0020CBC0 7C 7E 1B 79 */ or. r30, r3, r3 /* 8020FC60 0020CBC0 7C 7E 1B 79 */ or. r30, r3, r3
/* 8020FC64 0020CBC4 41 82 00 28 */ beq lbl_8020FC8C /* 8020FC64 0020CBC4 41 82 00 28 */ beq lbl_8020FC8C
/* 8020FC68 0020CBC8 3C A0 80 3E */ lis r5, lbl_803E70E8@ha /* 8020FC68 0020CBC8 3C A0 80 3E */ lis r5, __vt__9CRepulsor@ha
/* 8020FC6C 0020CBCC 38 80 00 00 */ li r4, 0 /* 8020FC6C 0020CBCC 38 80 00 00 */ li r4, 0
/* 8020FC70 0020CBD0 38 05 70 E8 */ addi r0, r5, lbl_803E70E8@l /* 8020FC70 0020CBD0 38 05 70 E8 */ addi r0, r5, __vt__9CRepulsor@l
/* 8020FC74 0020CBD4 90 1E 00 00 */ stw r0, 0(r30) /* 8020FC74 0020CBD4 90 1E 00 00 */ stw r0, 0(r30)
/* 8020FC78 0020CBD8 4B E4 5A 79 */ bl __dt__6CActorFv /* 8020FC78 0020CBD8 4B E4 5A 79 */ bl __dt__6CActorFv
/* 8020FC7C 0020CBDC 7F E0 07 35 */ extsh. r0, r31 /* 8020FC7C 0020CBDC 7F E0 07 35 */ extsh. r0, r31
@ -163,9 +163,9 @@ Accept__9CRepulsorFR8IVisitor:
/* 8020FDDC 0020CD3C 38 61 00 B8 */ addi r3, r1, 0xb8 /* 8020FDDC 0020CD3C 38 61 00 B8 */ addi r3, r1, 0xb8
/* 8020FDE0 0020CD40 38 80 FF FF */ li r4, -1 /* 8020FDE0 0020CD40 38 80 FF FF */ li r4, -1
/* 8020FDE4 0020CD44 4B F0 6C 69 */ bl __dt__10CModelDataFv /* 8020FDE4 0020CD44 4B F0 6C 69 */ bl __dt__10CModelDataFv
/* 8020FDE8 0020CD48 3C 80 80 3E */ lis r4, lbl_803E70E8@ha /* 8020FDE8 0020CD48 3C 80 80 3E */ lis r4, __vt__9CRepulsor@ha
/* 8020FDEC 0020CD4C 7F E3 FB 78 */ mr r3, r31 /* 8020FDEC 0020CD4C 7F E3 FB 78 */ mr r3, r31
/* 8020FDF0 0020CD50 38 04 70 E8 */ addi r0, r4, lbl_803E70E8@l /* 8020FDF0 0020CD50 38 04 70 E8 */ addi r0, r4, __vt__9CRepulsor@l
/* 8020FDF4 0020CD54 90 1F 00 00 */ stw r0, 0(r31) /* 8020FDF4 0020CD54 90 1F 00 00 */ stw r0, 0(r31)
/* 8020FDF8 0020CD58 D3 FF 00 E8 */ stfs f31, 0xe8(r31) /* 8020FDF8 0020CD58 D3 FF 00 E8 */ stfs f31, 0xe8(r31)
/* 8020FDFC 0020CD5C CB E1 01 28 */ lfd f31, 0x128(r1) /* 8020FDFC 0020CD5C CB E1 01 28 */ lfd f31, 0x128(r1)

View File

@ -316,7 +316,7 @@ LIBS = [
"MetroidPrime/ScriptObjects/CScriptStreamedAudio", "MetroidPrime/ScriptObjects/CScriptStreamedAudio",
"MetroidPrime/CRagDoll", "MetroidPrime/CRagDoll",
"MetroidPrime/Player/CGameOptions", "MetroidPrime/Player/CGameOptions",
"MetroidPrime/ScriptObjects/CRepulsor", ["MetroidPrime/ScriptObjects/CRepulsor", True],
"MetroidPrime/CEnvFxManager", "MetroidPrime/CEnvFxManager",
"MetroidPrime/Weapons/CEnergyProjectile", "MetroidPrime/Weapons/CEnergyProjectile",
"MetroidPrime/ScriptObjects/CScriptGunTurret", "MetroidPrime/ScriptObjects/CScriptGunTurret",

View File

@ -0,0 +1,18 @@
#ifndef _CREPULSOR
#define _CREPULSOR
#include "MetroidPrime/CActor.hpp"
class CRepulsor : public CActor {
float xe8_affectRadius;
public:
CRepulsor(TUniqueId, bool, const rstl::string&, const CEntityInfo&, const CVector3f&, float);
void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
float GetAffectRadius() const { return xe8_affectRadius; }
};
#endif // _CREPULSOR

View File

@ -281,7 +281,7 @@ METROIDPRIME :=\
$(BUILD_DIR)/asm/MetroidPrime/ScriptObjects/CScriptStreamedAudio.o\ $(BUILD_DIR)/asm/MetroidPrime/ScriptObjects/CScriptStreamedAudio.o\
$(BUILD_DIR)/asm/MetroidPrime/CRagDoll.o\ $(BUILD_DIR)/asm/MetroidPrime/CRagDoll.o\
$(BUILD_DIR)/asm/MetroidPrime/Player/CGameOptions.o\ $(BUILD_DIR)/asm/MetroidPrime/Player/CGameOptions.o\
$(BUILD_DIR)/asm/MetroidPrime/ScriptObjects/CRepulsor.o\ $(BUILD_DIR)/src/MetroidPrime/ScriptObjects/CRepulsor.o\
$(BUILD_DIR)/asm/MetroidPrime/CEnvFxManager.o\ $(BUILD_DIR)/asm/MetroidPrime/CEnvFxManager.o\
$(BUILD_DIR)/asm/MetroidPrime/Weapons/CEnergyProjectile.o\ $(BUILD_DIR)/asm/MetroidPrime/Weapons/CEnergyProjectile.o\
$(BUILD_DIR)/asm/MetroidPrime/ScriptObjects/CScriptGunTurret.o\ $(BUILD_DIR)/asm/MetroidPrime/ScriptObjects/CScriptGunTurret.o\

View File

@ -0,0 +1,15 @@
#include "MetroidPrime/ScriptObjects/CRepulsor.hpp"
#include "MetroidPrime/CActorParameters.hpp"
CRepulsor::CRepulsor(TUniqueId uid, bool active, const rstl::string& name, const CEntityInfo& info,
const CVector3f& pos, float radius)
: CActor(uid, active, name, info, CTransform4f::Translate(pos), CModelData::CModelDataNull(), CMaterialList(kMT_NoStepLogic),
CActorParameters::None(), kInvalidUniqueId)
, xe8_affectRadius(radius) {}
void CRepulsor::Accept(IVisitor& visitor) { visitor.Visit(*this); }
void CRepulsor::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) {
CActor::AcceptScriptMsg(msg, objId, stateMgr);
}