mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-10 07:47:42 +00:00
New code style refactor
This commit is contained in:
@@ -1,56 +1,50 @@
|
||||
#include "CEntity.hpp"
|
||||
#include "CStateManager.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace urde {
|
||||
const std::vector<SConnection> CEntity::NullConnectionList;
|
||||
|
||||
CEntity::CEntity(TUniqueId uniqueId, const CEntityInfo& info, bool active, std::string_view name)
|
||||
: x4_areaId(info.GetAreaId()), x8_uid(uniqueId), xc_editorId(info.GetEditorId()), x10_name(name),
|
||||
x20_conns(info.GetConnectionList())
|
||||
{
|
||||
x30_24_active = active;
|
||||
x30_27_inUse = x4_areaId != kInvalidAreaId;
|
||||
: x4_areaId(info.GetAreaId())
|
||||
, x8_uid(uniqueId)
|
||||
, xc_editorId(info.GetEditorId())
|
||||
, x10_name(name)
|
||||
, x20_conns(info.GetConnectionList()) {
|
||||
x30_24_active = active;
|
||||
x30_27_inUse = x4_areaId != kInvalidAreaId;
|
||||
}
|
||||
|
||||
void CEntity::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case EScriptObjectMessage::Activate:
|
||||
if (!GetActive())
|
||||
{
|
||||
SetActive(true);
|
||||
SendScriptMsgs(EScriptObjectState::Active, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
case EScriptObjectMessage::Deactivate:
|
||||
if (GetActive())
|
||||
{
|
||||
SetActive(false);
|
||||
SendScriptMsgs(EScriptObjectState::Inactive, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
case EScriptObjectMessage::ToggleActive:
|
||||
if (GetActive())
|
||||
{
|
||||
SetActive(false);
|
||||
SendScriptMsgs(EScriptObjectState::Inactive, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetActive(true);
|
||||
SendScriptMsgs(EScriptObjectState::Active, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
void CEntity::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) {
|
||||
switch (msg) {
|
||||
case EScriptObjectMessage::Activate:
|
||||
if (!GetActive()) {
|
||||
SetActive(true);
|
||||
SendScriptMsgs(EScriptObjectState::Active, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
case EScriptObjectMessage::Deactivate:
|
||||
if (GetActive()) {
|
||||
SetActive(false);
|
||||
SendScriptMsgs(EScriptObjectState::Inactive, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
case EScriptObjectMessage::ToggleActive:
|
||||
if (GetActive()) {
|
||||
SetActive(false);
|
||||
SendScriptMsgs(EScriptObjectState::Inactive, stateMgr, EScriptObjectMessage::None);
|
||||
} else {
|
||||
SetActive(true);
|
||||
SendScriptMsgs(EScriptObjectState::Active, stateMgr, EScriptObjectMessage::None);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CEntity::SendScriptMsgs(EScriptObjectState state, CStateManager& stateMgr, EScriptObjectMessage skipMsg)
|
||||
{
|
||||
for (const SConnection& conn : x20_conns)
|
||||
if (conn.x0_state == state && conn.x4_msg != skipMsg)
|
||||
stateMgr.SendScriptMsg(x8_uid, conn.x8_objId, conn.x4_msg, state);
|
||||
}
|
||||
void CEntity::SendScriptMsgs(EScriptObjectState state, CStateManager& stateMgr, EScriptObjectMessage skipMsg) {
|
||||
for (const SConnection& conn : x20_conns)
|
||||
if (conn.x0_state == state && conn.x4_msg != skipMsg)
|
||||
stateMgr.SendScriptMsg(x8_uid, conn.x8_objId, conn.x4_msg, state);
|
||||
}
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user